论文部分内容阅读
从2009年我国正式开展3G业务之后,3G建设进展迅速。伴随着3G网络的发展,越来越多的用户开始使用智能移动终端,而其中Android智能手机由于其开源性以及高性价比正在迅速抢占智能手机市场。随着Android市场份额的急剧扩大,针对Android智能手机的恶意程序数量正以惊人的速率增长,使得用户面临非常严峻的安全性问题。针对Android的安全性问题,现在已经提出了一些解决方法,但它们大多采用的仍是传统的静态分析方法,并不能分析程序运行期间执行的恶意操作,而少数提出的动态分析方法也在稳定性等方面存在缺陷。根据上述现状,本文提出了在虚拟机层应用动态分析技术来分析Android平台恶意代码的方法。该方法不同于传统的静态分析技术,而是主动监控并记录目标程序运行期间的各种行为特征。在该方法的基础上,本文还设计了一个新的基于沙箱的Android恶意代码行为分析系统,该系统是通过修改Android原生系统实现的,它可以对敏感数据源流出的数据进行跟踪。在实现该系统的过程中,首先需要分析恶意代码常用的数据源和程序接口库,并据此定义数据标签;然后在多个对象层次上设计了数据标签的嵌入方式,并通过Binder IPC机制完成了标签传递,使得标签能跟随数据在程序间进行传递;最后是标签提取功能的设计,通过标签提取功能可以从标签中获取有用的信息;此外在该系统中还有输出日志记录的功能,实现对相关数据的记录。同时为了验证该系统的正确性,本文设计了相关的测试。测试用的Android应用程序包括两部分,一是根据常见恶意代码的行为特征编写的样本,其行为特征包括文件访问、获取敏感信息以及后台自动连接网络等;二是从网络上获取的恶意代码样本。本文所设计的测试样本的优势在于调用了全部嵌入点提供的接口方法,相比真实恶意代码零散的行为特征,更能集中体现恶意代码常见的发作情况,反映测试样本使用各种数据的方式。本文实现的分析系统的优势体现在它能在虚拟机层分析运行时程序的行为,并动态地跟踪敏感数据的传递,能弥补静态分析技术不能发现程序在运行期间表现出的恶意操作的缺陷。并且使用模拟器构建沙箱能防止恶意代码对真实系统造成破坏,而将标签的使用限制在传递环节也使得恶意代码不易发现沙箱的存在。最后,通过在虚拟机层嵌入标签,而不是Linux内核,使得本系统易于日后的移植,能弥补不能跨平台操作的缺陷。