论文部分内容阅读
同族恶意软件在行为上表现出趋同性和一致性,因此针对同族软件行为具有相似性的特点,我们可以利用已知行为模式评估软件的恶意性和可能产生的危害。基于行为相似的代码检测又划分为动态和静态两种方法。动态检测方法通过在真实或者模拟环境中运行软件,但是检测效率低且不易全面触发恶意行为,很难进行自动化测试;静态检测方法不需要执行程序,通过反编译技术对汇编代码进行控制流和数据流分析,但是无法完全还原经过加密混淆过的代码,无法检测在运行过程中释放的恶意行为,因此静态检测准确率较低。针对上述问题,本文综合当前恶意代码检测技术的研究成果,提出了基于混合特征的Android恶意代码行为相似性检测技术,综合了静态检测执行效率高和动态检测准确率高的优点,论文的研究内容和创新点如下:1.提出了基于程序行为子图的图同构行为判别方式,从静态方面对程序行为的相似性进行度量。首先利用代码转换框架将反编译得到的高级语言代码转换成统一的中间语言代码表示,优化了程序内部的指令格式,进而绘制出程序的行为子图;其次利用子图过滤算法筛除掉与行为相似性度量无关的子图,解决了图匹配为NP问题将会消耗大量的计算资源和占用大量内存的问题,提高了系统运行效率;最终利用图同构算法完成程序静态特征的行为相似性度量。2.设计了Android应用程序动态运行的完整事件流,利用静态检测出的可疑组件作为动态检测运行的指导路径,完善了应用程序内以及应用程序与系统间交互的事件流,解决了动态运行程序覆盖率较低的问题,提高了应用程序执行路径的覆盖率。3.改进了基于文本无关的压缩算法,根据程序运行时的局部性原理对原始的系统调用序列进行压缩处理,压缩后结果集形成不定长的行为序列片段,它们完整地保存了程序行为语义,解决了动态运行程序时产生巨量trace记录带来度量困难的难题,通过对软件行为序列片段的相似性度量,最终完成程序动态特征的行为相似性检测。