论文部分内容阅读
对软件进行行为分析并确定其功能是检测未知恶意软件的一个关键环节。基于静态的行为分析技术虽然可以较为完整地获取程序信息,但也面临着许多挑战,这些挑战包括加壳、加密等传统软件保护技术和恶意软件变种技术。基于动态的行为分析技术可以有效地绕过这些挑战,并可以在较高的系统抽象度层次上获取恶意软件的信息,但动态行为分析系统也受到反调试与反跟踪技术的挑战。在传播过程中,恶意软件通常会使用各种变种技术来逃避检测,如加密、多态和变形技术。针对上述问题,本文对基于动态行为分析的恶意软件变种检测技术进行了研究。主要研究内容如下:首先针对动态行为分析系统的完整性需求,从理论层面分析构建一个合理动态行为分析系统所需要的必要条件。基于这些必要条件,我们给出了一个基于Intel VT的动态行为分析系统实例。该系统将目标恶意软件和分析工具分别安装在两个不同的操作系统中,通过虚拟机监视器技术进行实时系统调用跟踪,并使用我们提出的最大模式挖掘算法从系统调用序列中挖掘最大模式来对程序进行行为建模。最大模式是指一段系统调用子序列,它反复出现在程序的执行序列中,代表着某个特定的系统功能或程序模块。实验证明:基于Intel VT的行为分析系统能够高效地对恶意程序进行动态行为跟踪和程序行为描述。其次,对恶意软件变种检测中的关键技术——软件相似度计算技术进行了研究,提出了三种计算方法。(1)基于系统调用序列排列的相似度计算方法使用我们提出的进化相似度算法计算相似度;(2)基于最大模式序列排列的相似度计算方法使用最大模式挖掘算法从系统调用序列中挖掘最大模式序列,然后使用进化相似度算法计算相似度;(3)基于最大模式覆盖率的相似度计算方法忽略程序的线性执行顺序,使用最大模式集合表现程序行为,通过两个恶意软件之间的最大模式交集计算相似度。最后,在软件相似度计算方法基础之上,对恶意软件变种检测技术进行了研究,提出了三种检测方法:基于系统调用序列排列的变种检测、基于最大模式序列排列的变种检测和基于最大模式覆盖率的变种检测。对比实验结果表明基于序列的方法能够更准确地刻画程序行为和检测恶意变种。其中基于最大模式序列的方法具有更低的误报率,具有更高的实用性。