论文部分内容阅读
Android系统是目前最受欢迎的智能手机操作系统,吸引大量的应用程序开发者为其开发应用程序。由于应用程序开发者良莠不齐,致使Android市场上存在大量的恶意应用程序,如何快速准确地识别这些恶意应用程序,使用户能够安全放心安装使用下载的应用程序已经被提上日程,成为极为迫切的需求和国内外学者的研究热点。
本文提出了一种检测应用程序中恶意行为的静态分析方法。首先,使用开源字节码反汇编工具Baksmali反汇编应用程序安装包中的Dex文件,针对Baksmali反汇编出来的字节码特点,提出了相应的控制流构建算法,同时恢复应用程序的高层语义和函数调用图。其次,对函数调用图进行修整,在此基础上模拟执行应用程序字节码指令,给出了函数摘要构建算法,使用该算法构建出应用程序中所有函数的摘要信息。紧接着,在构建的函数摘要基础上使用污点传播算法,检测出应用程序中存在的疑似恶意行为。最后,借助我们利用先验知识构建的恶意行为模式库,对疑似恶意行为进一步筛选,剔除不合理的结果,确认恶意行为的危险等级和危险行为。
依据此方法,我们设计并实现了应用程序恶意行为检测原型系统TripleA,且已经检测大量的应用程序。对典型和真实应用程序样本进行检测,将检测结果进行手工分析,证实了检测的结果是正确的,这些应用程序的确存在这些恶意行为,这说明TripleA是有效。文中对公开的恶意样本库中1260个恶意样本进行检测,综合分析了应用程序平均检测时间以及应用程序中的恶意行为检测结果,进一步说明了TripleA不仅是有效的,而且还是可用的。