论文部分内容阅读
恶意代码生成技术的不断推陈出新,使得恶意代码制造者可以轻松的生产出大量可以逃避传统侦测手段的变种恶意代码,给反恶意代码工作带来了极大的挑战。变种恶意代码与其母体代码虽然在语法结构上的差异很大,但在功能上往往存在相似性。本文在基于静态方法的基础上,对恶意代码的汇编指令进行特征提取、恶意代码个体之间的相似性分析、及恶意代码的分类与检测等方面展开研究。首先,建立一个能反映程序功能的恶意代码特征模型。在深入研究代码复用和变形这两种常用的恶意代码生成技术的基础上,针对其改变程序代码而保持功能不变的特点,以能刻画恶意代码指令集合分布和结构特性的随机指令轮廓和函数调用图特征向量来构造恶意代码的特征模型。提出的特征模型能够建立起指令代码和功能之间的联系,反映出恶意代码的功能特性。其次,提出一种基于随机测试的恶意代码分类与检测方法。该方法采用两种随机测试算法,把连续的指令序列作为处理单元,刻画程序的随机指令轮廓描述样本特征,利用相似性计算方法比较个体间的相似性,运用智能分类工具实现恶意代码分类与检测。实验结果表明,该方法可以有效提取出恶意代码演化中的稳定特征,在恶意代码个体间相似性分析、分类和检测等方面有很强的可行性,对代码复用技术和字节级的变形技术有很好的抵制作用,但此方法对样本文件大小有很强的依赖性,影响了检测效果。最后,提出了一种基于图特征向量的恶意代码分类与检测方法。该方法以产生调用关系的指令为出发点,提取函数调用图作为恶意代码的特征,再把函数调用图转化为线性特征向量,采用基于最长公共子序列的方法对个体间的相似性进行分析,同样运用智能分类工具实现恶意代码分类与检测。实验结果表明,该方法能有效的抵抗复杂变形技术带来的混淆影响,更准确地处理个体间相似性分析、恶意代码分类和检测等问题。相对于现存的图匹配技术,在保证较高正确率的前提下,有效的降低了时间复杂度,同时扩大了适用性。本文针对恶意代码的生成技术,分别提出基于随机测试和基于图特征向量的恶意代码分类与检测方法。研究结果表明,这些基于指令分析的方法能够有效地提取恶意样本的特征,在解决恶意代码分类和检测问题上有很好的可行性。