论文部分内容阅读
恶意软件的爆炸性增长对计算机安全造成了巨大的威胁,但大多数恶意软件是已知家族的恶意软件的变体,行为上具有相似性。恶意软件需要借助系统提供的API去完成其恶意行为,现有对恶意行为的检测和同源性分析主要是基于API调用序列,这些分析方法对行为的定义缺乏API调用控制结构信息,然而处在不同控制结构下的API调用可能具有不同的行为语义,如若不能准确的定义行为,则会导致恶意软件的家族来源误判,降低恶意软件同源性分析的效果。另外,恶意软件作者可通过在API调用序列中加入噪声躲避传统的基于序列方法的检测。针对上述问题,本文提出了一种基于行为树的恶意软件同源性分析方法(简称,HAMBT)。本文主要贡献如下:(1)提出了一种反映系统API调用的控制结构信息的行为树,用来表示恶意软件的行为模型。恶意软件对系统API调用时,系统API调用存在顺序、并行、循环、互斥关系,即系统API调用的控制结构。本文提出的行为树模型包含了这四种控制结构关系,解决了现有基于API调用序列相关方法,在同源性分析中仅考虑API调用的顺序关系的不足。(2)提出了一种基于行为树的恶意软件家族分类方法。首先,使用一种行为树的挖掘算法构建恶意软件的行为模型,为了发现恶意软件的行为以及行为之间的关系,本文从行为树中提取恶意软件的行为模式,构成恶意软件的行为特征,该方法具有一定的抗噪性,在一定噪声情况下,能有效避免噪声对恶意软件的行为特征的干扰。其次,为了获取同家族的恶意软件中统计性强的行为模式,以构成家族的加权行为特征,本文使用行为模式在家族中出现的频率以及在其它家族中出现的平均频率衡量行为模式的权重。在计算恶意软件与家族在行为属性上的相似度时,本文考虑了行为模式的权重值,并使用了行为树的线性序列表达,避免了图匹配的问题。基于恶意软件与各个家族的相似度,本文构造恶意软件的相似度向量。最后,由于相似度向量的每一维之间相关性较小,与机器学习中的朴素贝叶斯分类算法的属性之间无关的假设条件一致,本文选用朴素贝叶斯分类算法训练恶意软件家族分类模型。本文在公开数据集上进行了实验,实验结果表明,本文方法家族分类准确率达81.97%,比传统的基于API调用序列的方法提高了10%,本文在大样本家族上具有较高的识别率及较低的误报率,平均每个家族的识别率、精确率、F1-score、误报率分别为69.1%、69.4%、70.1%与0.45%。当API调用序列中存在噪声时,本文方法仍能保持81.11%的分类准确率,说明了本方法在恶意软件的同源性分析中具有较好的效果。