论文部分内容阅读
随着移动互联网产业的飞速发展,面向Android平台的应用程序也越来越复杂,各种各样的应用程序蜂拥而现。与此同时,针对Android平台的恶意程序也大量涌现,不法分子在暴利的驱使下,开发并大肆传播Android恶意程序,轻则窃取用户隐私,重则消耗用户流量,骗取用户话费,因此,很有必要在Android用户安装应用程序前对应用程序的安全性进行分析并对应用的敏感行为进行检测。由于Android应用程序加固技术的风行,传统的静态检测技术已经很难有效的检测出经过加固的Android恶意应用,因此,目前针对Android恶意应用的检测多采用动态检测技术。目前在Android应用程序动态检测领域,普遍采用PC端自动化运行应用加Android设备端记录应用行为的方式进行检测。由于Android应用程序界面信息复杂,要实时获取并进行有逻辑的自动化运行非常困难,因此当前自动化测试方案主要采用针对单个应用定制自动化测试脚本的方案,即通过记录人工运行软件的过程,为每个应用定制一个测试脚本,但这种方案在实际进行大量应用测试时,若应用样本中出现未知应用,就不得不中断测试,重新录制脚本,因此在检测时仍然需要大量的人工干预,这使得检测效率难以提高。另一方面,由于Android应用基数庞大,如果选择用真机去做测试,会耗费大量的真机资源,这势必带来很高的成本,因此很多测试方案选择用模拟器进行测试,但是由于模拟器和真机在系统属性上以及硬件版本上存在差异,这些差异很容易被应用程序所利用,作为应用程序对抗模拟器的手段,这使得使用系统原生模拟器作为测试环境的方案无法有效的展开。针对上述问题,本文提出了一种基于Android模拟器系统源代码定制修改和基于Android辅助功能的自动化测试检测方案。该方案通过修改Android系统源码然后重新编译,将模拟器与真机的属性修改一致,使其可以运行反模拟器应用。该方案的自动化测试算法,可以通过程序实时获取应用程序的界面信息并进行有逻辑的判断处理,完成应用的自动化运行,无需提前进行脚本录制,大大减少了测试中的人工干预。本文工作将从如下几个方面展开:首先,本文对当前Android应用程序自动化测试检测技术进行了分析总结,在总结其实现原理的基础上,结合Android应用程序的特点,分析并总结目前Android应用程序自动化测试检测技术遇到瓶颈的原因。然后,结合Android系统源代码及Android恶意应用程序的基本特征,针对自动化测试检测中存在的瓶颈给出解决思路。最后,通过实验验证该方案的合理性和有效性,针对检测效率、检测成本以及检测准确率进行测试,实验证明,此方案切实有效。