一种蠕虫同源性分析方法和装置与流程

文档序号:11251273阅读:491来源:国知局
一种蠕虫同源性分析方法和装置与流程

本发明涉及网络信息安全技术领域,特别涉及一种蠕虫同源性分析方法和装置。



背景技术:

随着互联网的普及和网络信息技术的日益发展,网民数量的急剧膨胀,致使恶意代码的传播更加便利,这也使得恶意代码的攻击行为所带来的负面影响进一步扩大。蠕虫作为恶意代码的一大家族,其显著特征是具有自我复制和快速传播能力,能够在没有人为干预行为的情况下,通过大量自我复制来实现快速传播,给网络安全乃至国家安全带来的极大的冲击,几乎每一次爆发都会带来巨大的经济损失。此外,随着国际apt(高级持续性威胁)事件的不断曝光升级,对蠕虫等恶意代码的同源性分析也逐渐成为了研究热点,但目前同源性的判定方法效率较低,不适用于大量蠕虫样本的同源性判定,实际应用价值不高。

现有的蠕虫等恶意代码的同源性分析方法主要集中在通过提取蠕虫等恶意代码静态特征和动态特征,通过计算特征距离来衡量样本相似度,再采用分类或聚类等方法来进行蠕虫等恶意代码的同源性分析。这类方法多为解决恶意代码的同源性判定问题,目前尚未提出针对蠕虫这类恶意代码的同源性分析方法。若将现有的同源性分析方法应用到蠕虫的同源性分析领域中,由于现有方法使用的特征覆盖了所有种类恶意代码通用行为结构,未能突出蠕虫在攻击传播过程中独有的特性,大量的无关特征不仅降低了相似性度量的准确性,还导致了特征库数量较为庞大,增加了特征相似度计算的时间复杂度,从而降低了蠕虫同源性分析的效率。此外,现有方法多采取单一的分析方法进行同源性分析,如针对所有已提取的特征,使用相同的方法进行样本相似度的计算,缺乏多样性。

因此,亟需开发对蠕虫进行同源性分析的解决方案。



技术实现要素:

有鉴于此,本发明提供了一种基于蠕虫攻击传播特性的蠕虫同源性分析方法和装置,以解决对蠕虫进行同源性分析的问题。

本发明公开了一种蠕虫同源性分析方法,所述方法包括:

从蠕虫样本中提取静态特征和动态特征;所述动态特征包括:网络行为特征和应用程序编程接口api调用序列;

对静态特征和网络行为进行预处理,得到蠕虫特征集;以及根据api调用序列构建敏感行为特征库;

利用第一同源性分析算法对所述蠕虫特征集进行处理,输出预测各蠕虫样本分属于各家族的第一概率分布矩阵;

利用第二同源性分析算法对于所述api调用序列和所述敏感行为特征库进行处理,输出预测各蠕虫样本分属于各家族的第二概率分布矩阵;

对第一概率分布矩阵和第二概率分布矩阵进行权重调整,得到第三概率分布矩阵;

根据第三概率分布矩阵,得到同源分析结果。

进一步地,

所述对静态特征和网络行为特征进行预处理,得到蠕虫特征集包括:

对静态特征和网络行为特征进行特征量化与归一化处理,以及进行特征选择与降维处理,得到蠕虫特征集。

进一步地,

所述根据api调用序列构建敏感行为特征库包括:

根据api调用序列构造频繁模式树;

通过遍历所述频繁模式树得出各蠕虫家族的api调用序列频繁模式;

每条api调用序列的频繁模式构成敏感行为特征库中的一条记录。

进一步地,

所述第一同源性分析算法为随机森林算法;

所述第二同源性分析算法为敏感行为匹配算法;

进一步地,

所述利用第二同源性分析算法对于所述api调用序列和所述敏感行为特征库进行处理,输出预测各蠕虫样本分属于各家族的第二概率分布矩阵包括:

将所述api调用序列与所述敏感行为特征库进行匹配,计算命中率,再将命中率分布矩阵转换为蠕虫样本分属于各家族的概率分布矩阵,得到所述第二概率分布矩阵。

本发明还公开了一种蠕虫同源性分析装置,所述装置包括:

特征提取单元,用于从蠕虫样本中提取静态特征和动态特征;所述动态特征包括:网络行为特征和应用程序编程接口api调用序列;

特征预处理单元,用于对静态特征和网络行为特征进行预处理,得到蠕虫特征集;以及根据api调用序列构建敏感行为特征库;

第一同源性分析单元,用于利用第一同源性分析算法对所述蠕虫特征集进行处理,输出预测各蠕虫样本分属于各家族的第一概率分布矩阵;

第二同源性分析单元,用于利用第二同源性分析算法对于所述api调用序列和所述敏感行为特征库进行处理,输出预测各蠕虫样本分属于各家族的第二概率分布矩阵;

第三同源性分析单元,用于对第一概率分布矩阵和第二概率分布矩阵进行权重调整,得到第三概率分布矩阵;并根据第三概率分布矩阵,得到同源分析结果。

进一步地,

所述特征预处理单元,用于对静态特征和网络行为特征进行特征量化与归一化处理,以及进行特征选择与降维处理,得到蠕虫特征集。

进一步地,

所述特征预处理单元,用于根据api调用序列构造频繁模式树,以及通过遍历所述频繁模式树得出各蠕虫家族的api调用序列频繁模式;其中,每条api调用序列的频繁模式构成敏感行为特征库中的一条记录。

进一步地,

所述第一同源性分析算法为随机森林算法;

所述第二同源性分析算法为敏感行为匹配算法;

进一步地,

第二同源性分析单元,用于将所述api调用序列与所述敏感行为特征库进行匹配,计算命中率,再将命中率分布矩阵转换为蠕虫样本分属于各家族的概率分布矩阵,得到所述第二概率分布矩阵。

本发明实施例的有益效果是:本发明通过降低蠕虫特征库的规模,降低了进行样本相似度计算时的复杂度,同时还改善了样本相似性度量结果准确性,从而提高了蠕虫同源性分析的效率。此外,本发明通过结合随机森林分类算法与敏感行为匹配算法对蠕虫同源性进行分析判定,避免了分析方式的单一性,同时也提高了同源性分析结果的精确度。

附图说明

图1为本发明实施例提供的一种蠕虫同源性分析方法的流程图;

图2为本发明实施例提供的具有自我复制行为的api调用序列图;

图3为本发明实施例提供的api频繁模式树构造的流程图;

图4是本发明实施例提供的随机森林算法的流程图;

图5是本发明实施例提供的同源性分析器的主要工作流程图;

图6是本发明实施例提供的一种蠕虫同源性分析装置的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

图1为本发明实施例提供的一种蠕虫同源性分析方法的流程图。如图1所示,该方法包括:

步骤s11,从蠕虫样本中提取静态特征和动态特征。

其中,所述静态特征是指蠕虫的语义结构特征,该部分特征提取自蠕虫样本的反汇编文件,由汇编指令和可执行文件分节名称构成;

所述动态特征包括:网络行为特征和应用程序编程接口api调用序列。其中网络行为特征是从蠕虫运行过程中的网络抓包报告中提取协议名称、目标端口号和报文长度作为有效特征,以三元组<协议名称,目标端口号,报文长度>来进行标记,api调用序列为能够体现蠕虫自我复制行为的敏感api调用序列。

步骤s12,对静态特征和网络行为特征进行预处理,得到蠕虫特征集,以及根据api调用序列构建敏感行为特征库。

其中,所述对静态特征和网络行为特征进行预处理包括特征量化与归一化、特征选择与降维。

特征量化是使用词频-逆文档频率tf-idf算法对提取到的蠕虫网络行为特征的三元组进行量化处理。归一化是使用均值-方差方法对蠕虫的语义结构特征与量化后的网络行为特征进行特征融合操作后,对合并后的特征进行归一化处理。特征选择使用递归特征消除算法,具体是通过使用一个基模型来进行多轮训练,并在每轮训练后消除若干权值系数的特征,再基于消除后的特征集进行下一轮训练,最终得到目标特征数,可消除总特征的50%;通过使用该方法,能够排除特征集中对样本区分不明显的特征,在保留样本特征发散度的同时还能有效降低特征维度。特征降维使用主成分分析法,具体是以递归特征消除算法输出的特征集合作为算法的输入,其目的是寻找特征分布的最优子空间,降掉那些噪声或冗余数据的维度。

所述根据api调用序列构建敏感行为特征库包括:根据api调用序列构造频繁模式树,通过遍历所述频繁模式树得出各蠕虫家族的api调用序列频繁模式;每条api调用序列的频繁模式构成敏感行为特征库中的一条记录。

根据api调用序列构建敏感行为特征库的核心在于api调用序列频繁模式的挖掘,在本发明中使用频繁模式增长fp-growth(频繁模式增长)算法对api调用序列频繁模式进行充分挖掘,而频繁模式增长fp-growth算法的核心在于频繁模式树的构造。

步骤s13,利用第一同源性分析算法对所述蠕虫特征集进行处理,输出预测各蠕虫样本分属于各家族的第一概率分布矩阵。

步骤s14,利用第二同源性分析算法对于所述api调用序列和所述敏感行为特征库进行处理,输出预测各蠕虫样本分属于各家族的第二概率分布矩阵。

在本发明的一个实施例中,所述第一同源性分析算法为随机森林算法,所述第二同源性分析算法为敏感行为匹配算法。

步骤s15,对第一概率分布矩阵和第二概率分布矩阵进行权重调整,得到第三概率分布矩阵。

步骤s16,根据第三概率分布矩阵,得到同源分析结果。

在图1所述的方法中,通过降低特征库的数据规模,在提高相似性度量结果准确性的同时降低了计算的复杂度。使用api调用序列频繁模式挖掘的方式,充分利用了蠕虫自我复制的行为特征,提高了蠕虫同源性分析的准确性。并且针对不同的特征采取不同的相似性度量方法,最后再综合不同的相似度度量方法的结果给出最后的度量结果,进而提高了度量的准确性。

在本发明的一个实施例中,步骤s14中所述利用第二同源性分析算法对于所述api调用序列和所述敏感行为特征库进行处理,输出预测各蠕虫样本分属于各家族的第二概率分布矩阵,具体是:

通过提取待分析蠕虫样本中的api调用序列,将api调用序列与敏感行为特征库中每个家族的频繁模式集进行匹配,计算命中率,再将命中率分布矩阵转换为蠕虫样本分属于各个家族的概率分布矩阵。

所述命中率的计算,是输入每个待匹配蠕虫样本的api调用序列,判断若输入的蠕虫样本命中了敏感行为特征库中的某一条记录,则记为1;反之,记为0,遍历敏感行为特征库中的每张表之后将命中记录加和,加和结果和敏感行为特征库中每张表的总长度的比值即为命中率。其中所述判断输入的蠕虫样本是否命中了敏感行为特征库中的某一条记录,具体是遍历敏感行为特征库中的每张表每一行,若出现某张表中某行的存储内容包含于待匹配蠕虫样本的api调用序列,则判断为输入的蠕虫样本命中了敏感行为特征库中的某一条记录;反之,则判断为没有命中。

通过公式来描述,即命中率的计算公式是:

其中函数

h是某一蠕虫样本的命中率;x表示待匹配的蠕虫样本的api调用序列,是敏感行为匹配算法的输入;χ(x)表示这个蠕虫样本是否命中敏感行为特征库的表中的其中一条记录;表示频繁模式库中第m张表的第k行,m代表敏感行为特征库中表的数量(即蠕虫家族的类别数);n代表敏感行为特征库中的每张表(即每个蠕虫家族的频繁模式集)的总长度,k的取值范围为[1,n]。算法这一部分的输出是由命中率h构成的命中率分布矩阵h,h表示待匹配蠕虫样本集合命中每个家族频繁模式集的百分比。

所述将命中率分布矩阵转换为蠕虫样本分属于各个家族的概率分布矩阵,具体地,计算命中率矩阵中的某项和该项所在行所有命中率的加和的比值,并且该项所对应的蠕虫样本和家族类别即是蠕虫样本分属于各个家族的概率分布矩阵中所对应的蠕虫样本和家族类别,相应地,该比值即是蠕虫样本分属于各个家族的概率分布矩阵中的某项,对命中率矩阵中的每项进行换算,即得到蠕虫样本分属于各个家族的概率分布矩阵。

通过公式来描述,即将命中率分布矩阵转换为蠕虫样本分属各个家族的概率分布矩阵的转换需满足公式:其中,pi,j代表第i个样本属于第j个家族的概率;hi,j代表第i个样本在第j个家族的命中率;m代表概率分布矩阵的列数,即蠕虫家族的类别数;代表概率分布矩阵第i行的求和,即第i个样本命中各个家族的命中率之和。i表示该算法的第i个样本的api序列,j的取值范围为[1,m]。该公式的主要作用是使得每个蠕虫样本属于每个家族的概率之和等于1。

步骤s15中所述对第一概率分布矩阵和第二概率分布矩阵进行权重调整,得到第三概率分布矩阵,其中,所述权重调整是设置5组实验,分别取权重比例为0、0.25、0.5、0.75和1,进行实验,取实验结果的平均值,通过准确率、精确率、召回率、f值以及算法运行时间对实验结果进行评价,最终确定最佳权重分配比例,最佳权重分配比例为0.5,即随机森林算法输出的第一概率矩阵和敏感行为匹配算法输出的第二概率矩阵的比值为1∶1。

图2为本发明实施例提供的具有自我复制行为的api调用序列图,是对图1中步骤s11所述api调用序列的具体描述,即包括得到系统目录、设置当前目录、发现第一个文件、发现下一个文件、打开文件、书写文件和关闭文件。

图3是本发明实施例提供的api频繁模式树构造的流程图,是对图1中步骤s12所述fp-growth算法的核心的具体描述,包括以下步骤:

步骤s31:设置最小支持度,即fp-growth算法的输入阈值。

步骤s32:扫描蠕虫api调用序列集合,统计每个api的支持度。

步骤s33:判断每个api的支持度是否大于最小支持度,若不大于,则运行步骤s34;若大于,则运行步骤s35。

步骤s34:删除api。

步骤s35:根据api支持度逆序排列,得到l,l指将首次计算后的api序列进行筛选与降序排列之后,得到的新的api序列(也称作频繁1项集)。

步骤s36:根据l删除api序列集合中的不频繁项,并对api序列进行重新排列,形成新的api调用序列集合。

步骤s37:将集合中的api调用序列依次插入到频繁模式树分支中。

步骤s38:判断新形成的api调用序列集合中的api调用序列和频繁模式树的分支是否具有相同前缀,若是,则运行步骤s39;若否,则运行步骤s310。

步骤s39:复用节点,节点数加1。

步骤s310:创建新节点。

步骤s311:得到频繁模式树。

图4是本发明实施例提供的随机森林算法的流程图,包括以下步骤:

步骤s41:输入进行过特征选择与降维后的蠕虫特征集。

步骤s42:输出预测每个蠕虫样本的分属于各个家族的概率分布矩阵。

图5是本发明实施例提供的同源性分析器的主要工作流程图,是对图1中步骤s15和步骤s16进行的详细描述,包括以下步骤:

步骤s51:接收第一概率分布矩阵和第二概率分布矩阵,进行权重调整,得到新的家族预测概率分布矩阵:随机森林算法和敏感行为匹配算法输出的预测每个蠕虫样本的分属于各个家族的概率分布矩阵,根据预先设置的权重分配比例进行随机森林算法和敏感行为匹配算法的权重调整,得到新的家族预测概率分布矩阵。

步骤s52:进行逐行依次扫描概率分布矩阵中的概率。

步骤s53:是否是当前行的最大值:判断扫描的每项家族预测概率是否是当前行的最大值,若是,则运行步骤s54;若否,则运行步骤s52.

步骤s54:查看该项所在的列,记录该列所对应的家族类别。

步骤s55:输出同源性分析结果。

图6是本发明实施例提供的一种蠕虫同源性分析装置的示意图。如图6所示,该装置包括:特征提取单元61、特征预处理单元61、第一同源性分析单元63、第二同源性分析单元64和第三同源性分析单元65;

其中,

特征提取单元61,用于从蠕虫样本中提取静态特征和动态特征;所述动态特征包括:网络行为特征和应用程序编程接口api调用序列;

特征预处理单元62,用于对静态特征和网络行为特征进行预处理,得到蠕虫特征集;以及根据api调用序列构建敏感行为特征库;

第一同源性分析单元63,用于利用第一同源性分析算法对所述蠕虫特征集进行处理,输出预测各蠕虫样本分属于各家族的第一概率分布矩阵;

第二同源性分析单元64,用于利用第二同源性分析算法对于所述api调用序列和所述敏感行为特征库进行处理,输出预测各蠕虫样本分属于各家族的第二概率分布矩阵;

第三同源性分析单元65,用于对第一概率分布矩阵和第二概率分布矩阵进行权重调整,得到第三概率分布矩阵;并根据第三概率分布矩阵,得到同源分析结果。

在本发明的一个实施例中,特征预处理单元62,用于对静态特征和网络行为特征进行特征量化与归一化处理,以及进行特征选择与降维处理,得到蠕虫特征集。

在本发明的一个实施例中,所述特征预处理单元62,用于根据api调用序列构造频繁模式树,以及通过遍历所述频繁模式树得出各蠕虫家族的api调用序列频繁模式;其中,每条api调用序列的频繁模式构成敏感行为特征库中的一条记录。

在本发明的一个实施例中,所述第一同源性分析算法为随机森林算法;所述第二同源性分析算法为敏感行为匹配算法。

在本发明的一个实施例中,第二同源性分析单元64,用于将所述api调用序列与所述敏感行为特征库进行匹配,计算命中率,再将命中率分布矩阵转换为蠕虫样本分属于各家族的概率分布矩阵,得到所述第二概率分布矩阵。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可,这里不再复述。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本发明通过提取蠕虫特征,进行特征预处理,结合两种同源性分析方法对预处理后的蠕虫特征矩阵进行同源性分析后,经过权重调整,进一步分析得到同源性分析结果,降低了蠕虫特征库的规模,降低了进行样本相似度计算时的复杂度,改善了样本相似性度量结果准确性,避免了分析方式的单一性,从而达到提高蠕虫同源性分析的效率和准确度的目的。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1