基于机器学习的恶意代码检测与分类技术研究
【摘要】:随着互联网技术的迅猛发展,信息安全成为了维护社会与经济发展的重要手段。近年来大规模的网络攻击事件层出不穷,严重的损害了个人的隐私与经济利益。同时以APT为代表的高级攻击模式的出现使得社会基础设施、国家的公共服务部门以及军事科技组织等都面临巨大的潜在威胁。从现有的攻击手段分析可知,恶意代码的变种以及零日漏洞已经成为了信息安全面临的最迫切的问题之一。尤其是,海量的网络信息以及恶意代码自保护技术使得传统的以人工分析为基础的反病毒检测系统遭到前所未有的挑战。因此基于机器学习的恶意代码自动化检测与分析技术成为了信息安全领域的热点之一。本文主要针对恶意代码分析技术中自动化的特征提取技术、恶意代码检测技术、恶意家族分类技术以及未知的恶意代码检测技术等四个方面展开研究。主要的研究成果如下:1.由于不同的特征提取技术只能够从单一的角度分析恶意代码,因此本文分别基于静态分析和动态分析技术提出了三种特征提取方法。它们包括基于Gabor滤波器的灰度图纹理特征提取方法、基于控制流程图的Opcode特征提取方法以及基于动态行为轨迹的API特征提取方法等。基于Gabor滤波器的特征提取方法是本文从图像纹理结构的视角出发提出的一种新方法。这种方法首先需要将二进制的恶意代码转化为灰度图的形式,然后使用Gabor滤波器从不同频度与角度去提取样本的纹理特征。基于控制流程图的Opcode特征提取方法的主要目的是为了准确地获得恶意代码中包含的功能函数以及代码块之间的调用关系和上下文语义。它首先通过反汇编工具将二进制的文件逆向的转化为汇编文件,然后使用n-gram方法将汇编文件中的操作码以控制流的形式提取出来。基于动态行为轨迹的API特征提取方法属于动态分析法。本文首先部署蜜网系统以捕获样本的行为轨迹,然后使用基于频度度量方法提取出行为轨迹中关于API的信息。最终,文章通过对不同特征提取方法进行实验对比发现,基于纹理特征与opcode特征的综合特征更适合应用于恶意代码分析。2.目前应用于自动化恶意代码检测技术的机器学习模型主要分为浅层学习模型和深度学习模型。相对于浅层学习模型,深度学习对复杂函数的表达能力更强,这就意味着深度学习更适合被应用于挖掘高维的、复杂的特征空间的分布规律。并且本文针对综合特征的特点,提出了一种深度卷积神经网络模型。虽然该模型已经被广泛的应用于图像处理领域,但是该方法与其他深度模型一样存在过拟合问题。所谓过拟合就是指由于训练样本空间中追求假设的高度一致性,而导致假设的泛化能力变弱。为了缓解过拟合问题,本文提出了一种名为DBCNN的优化深度卷积神经网络模型。不同于经典的深度卷积模型,该模型的各层之间增加一个Dropout层,同时在卷积层与抽样层之间又增加了一个归一化层。该归一化层使用Batch-normalization方法对每一个过滤层的输出进行归一化,而归一化的结果并不会改变数据原有的分布规律。实验结果证明优化模型不仅能够缓解深度学习的过拟合问题,还比其他经典的机器学习模型具有更高的综合性能。3.为了解决恶意代码的自动化分类问题,本文提出了一种基于KNEM选择性集成模型的恶意代码分类技术。KNEM选择性集成模型的提出主要是针对两个问题:一个是单个多分类学习模型存在分类能力有限、欠拟合以及泛化能力不足等问题;另一个是集成学习模型存在内在冲突问题,即集成模型的多样性与准确性之间的矛盾。为此,本文提出的选择性集成模型在训练阶段使用负相关原理对各子模型进行协同训练,在选择阶段使用K-means算法选择具有更强差异性的子分类模型。同时,在KNEM模型的决策阶段,一种具有自适应性的Weight-Decision Strategy决策系统被提出。该决策系统能够根据子分类模型在不同样本家族上的表现进行自适应地调整各自在每次决策中的权重关系,从而提高决策结果的合理性。通过第四章的实验可以看出,我们的方法与经典的机器学习模型相比不仅具有更高的分类准确率,而且在每一个恶意家族的识别率上都有较好的表现。4.未知的恶意代码或零日漏洞检测技术采用的主要方法是聚类算法。本文针对聚类算法在高维样本空间的低效性,设计了一个名为KNNSC的聚类算法。与经典的聚类算法采用的基于欧式距离和密度的样本相似度度量方法不同,该方法采用了一种基于分享最近邻的方法来度量样本相似度。如果两个样本是相似的,那么它们之间必然存在K个相同的最近邻样本。同时,该方法还通过计算核心点以及样本的吸引力,从而实现对边缘点和离群点的区分。实验结果表明该聚类算法不仅能够准确的检测出未知的恶意代码,而且还能够发现新的恶意家族。