论文部分内容阅读
恶意代码的数量和种类日趋增多,加上代码迷惑技术的兴起,使得检测恶意代码变得越来越困难。传统的基于签名的检测技术被商业杀毒防毒软件普遍使用,但是它必须要在获取一类病毒的签名之后才能有效的检测这类病毒,而签名一般都在感染后才被获取。这个特点使得计算机系统受到恶意代码威胁的可能性提高了。近年来,数据挖掘和机器学习技术应用于恶意代码检测领域,它之所以成为研究的重点,是因为它可以利用数据挖掘从已存在的大量代码数据中挖掘出有意义的模式,利用机器学习可以帮助归纳出已知恶意代码的识别知识,以此来进行相似性搜索,帮助发现未知恶意代码。本文采用数据挖掘和机器学习技术检测恶意代码。在介绍了恶意代码、数据挖掘和机器学习的相关背景和理论知识之后,详细阐述了特征提取方法和特征选择方法。本文的主要贡献如下:1.本文实现了一个恶意代码检测系统,采用机器代码的字节序列变长N-gram作为特征提取方法,加权信息增益作为特征选择方法,使用决策树、支持向量机、朴素贝叶斯等多种分类器进行恶意代码检测。2.本文使用变长N-gram作为恶意代码特征提取方法,能够提取相关的不同长度的有效特征,弥补了定长N-gram可能拆分有效特征的缺陷,通过实验与Kolter采用定长N-gram方法的实验结果进行比较。实验证明变长N-gram在检测性能指标上确实优于定长N-gram。3.本文提出了一种基于加权信息增益(WIG)的特征选择方法。该方法综合考虑特征频率(CF)和信息增益(IG)的作用,利用特征是否出现以及出现的频率这两个因素来综合评价一个特征所含的信息量,弥补了信息增益只考虑特征出现与否的不足,能够更加准确的选取有效特征,从而提高检测性能。实验结果与Reddy采用类域频率方法的实验结果进行比较,证明本文的方法能够更加有效的提高恶意代码的检测率和准确率。通过上述研究和实践,进一步证明了基于数据挖掘和机器学习的恶意代码检测技术的高效性和准确性。