论文部分内容阅读
随着计算机技术的不断发展和计算机网络覆盖率的增加,互联网技术已经渗透到人们生活的方方面面。近年来移动通信技术的发展,更是使得人们可以随时随地通过智能移动终端接入互联网,通过互联网来进行社交、游戏、收发邮件、在线交易等活动,改变了人们使用互联网的方式,极大的方便了人们的生活。在众多移动智能终端操作系统中,基于Linux内核开发的Android系统自诞生之初就受到各大生产厂商和开发者的关注和支持,并迅速发展和普及,时至今日已经一跃成为智能移动终端上占有率最高的操作系统。而随着Android系统的不断发展和普及,Android系统和Android应用程序也开始成为恶意攻击者和黑客的目标。虽然Android系统提供了诸如文件访问控制、安全沙箱(Sandbox)、权限机制、应用程序签名机制等措施来保护系统与应用程序的安全,但是在安全研究人员的研究和恶意攻击者的不断攻击之下,Android系统暴露出系统漏洞、权限机制漏洞、隐私泄露、应用程序漏洞等各种严重的安全威胁问题。恶意攻击者利用Android安全漏洞进行的恶意行为屡见不鲜。Android系统及应用程序安全漏洞的存在,已经严重威胁到Android系统生态环境的安全以及用户的个人利益。为此,本文根据Android系统应用程序框架及Android应用程序组件间的通信机制的特性研究了一种通过使用模测试技术对Android应用程序组件进行漏洞测试的方法,设计并实现了该方法。最后,使用该方法对大量应用程序进行了漏洞测试,通过分析漏洞测试产生的数据,挖掘出几种组件暴露漏洞。该方法分为逆向分析和模糊测试两个阶段。逆向分析阶段对Android应用程序进行了反编译,根据分编译获得的源代码对构成应用程序的组件的配置信息进行分析,从而发现可能存在组件暴露漏洞的组件以及该组件在进行组件通信过程中所携带消息的基本特征。模糊测试阶段使用Ruby语言编程来自动生成测试数据和测试用例,通过使用Robotium Android应用程序黑盒测试框架,来对应用程序组件进行模糊测试测试,避免了模糊测试过程中占用大量系统资源造成的系统崩溃。最后根据模糊测试的结果进行漏洞分析和挖掘。实验结果表明,本文提出的使用模糊测试对Android组件漏洞进行挖掘的方法能够有效的挖掘出应用程序中所存在的组件漏洞。