一种基于多特征融合的恶意代码检测方法及系统的制作方法

文档序号:10725517阅读:945来源:国知局
一种基于多特征融合的恶意代码检测方法及系统的制作方法
【专利摘要】本发明公开了一种基于多特征融合的恶意代码检测方法及系统,其中,所述检测方法包括:步骤A:提取训练集和测试集中代码序列的N?gram及变长N?gram,分别作为训练集基本特征集合及测试集基本特征集合;步骤B:通过信息增益的方式由所提取的训练集基本特征集合及测试集基本特征集合中分别筛选出训练集有效特征集合及测试集有效特征集合;步骤C:通过Boosting算法对所筛选出的训练集有效特征集合进行特征融合以得到融合特征分类器;步骤D:利用融合特征分类器检测所筛选出的测试集有效特征集合。本发明所提供的检测方法,使得最终得到的融合特征具有更强的鉴别性及鲁棒性,能够更好的分类出恶意代码。
【专利说明】
一种基于多特征融合的恶意代码检测方法及系统
技术领域
[0001] 本发明涉及恶意代码检测技术领域,尤其涉及的是一种基于多特征融合的恶意代 码检测方法及系统。
【背景技术】
[0002] 恶意代码(Unwanted Code)是指没有作用却会带来危险的代码,定义一:恶意代 码又称恶意软件。这些软件也可称为广告软件(adware )、间谋软件(spyware )、恶意共享软 件(malicious shareware),是指在未明确提示用户或未经用户许可的情况下,在用户计算 机或其他终端上安装运行,侵犯用户合法权益的软件,有时也称作流氓软件。定义二:恶意 代码是指故意编制或设置的、对网络或系统会产生威胁或潜在威胁的计算机代码,最常见 的恶意代码有计算机病毒(简称病毒)、特洛伊木马(简称木马)、计算机蠕虫(简称蠕虫)、后 门、逻辑炸弹等。
[0003] 恶意代码的检测是目前恶意代码防范的重点和难点。恶意代码在实现上可分为两 类:一类是基于基础技术的共用,恶意代码开发人员通过重用基础模块实现变种;一类是恶 意代码专门针对现有防范技术而设计开发的混淆技术。
[0004] 恶意代码的检测方法一般分为两大类:基于启发式的方法和基于特征的检测方 法。基于启发式的检测方法可检测新恶意代码,但是,启发式规则依赖于分析人员的经验, 因此,这种检测方法容易引发高误报率和漏报率。而基于特征的检测方法,是通过简单的模 式识别方法来检测恶意代码,一个程序代码的二进制表述序列和某种规则匹配,那么就认 为此代码为恶意代码。基于特征检测的恶意代码检测器必须用不同的模式来评测代码,所 以这种检测方法通常准确率很高。
[0005] 因此,基于特征的检测被广泛应到恶意代码检测工具中,是目前恶意代码检测的 主流方法。传统的基于特征的恶意代码检测方法,由于需要拟合训练集进行特征选择,而选 择出来的特征过分容易出现拟合训练集,导致其在训练集上进行检测效果较好,一旦需要 在不同的测试集上进行检测,其分类效果往往不尽如人意。
[0006] 因此,现有技术还有待于改进和发展。

【发明内容】

[0007] 鉴于上述现有技术的不足,本发明的目的在于提供一种鉴别性及鲁棒性强,能够 更好的分类出恶意代码的基于多特征融合的恶意代码检测方法及系统。
[0008] 本发明的技术方案如下: 一种基于多特征融合的恶意代码检测方法,其中,所述基于多特征融合的恶意代码检 测方法包括: 步骤A:提取训练集和测试集中代码序列的N-gram及变长N-gram,分别作为训练集基本 特征集合及测试集基本特征集合; 步骤B:通过信息增益的方式由所提取的训练集基本特征集合及测试集基本特征集合 中分别筛选出训练集有效特征集合及测试集有效特征集合; 步骤C:通过Boosting算法对所筛选出的训练集有效特征集合进行特征融合以得到融 合特征分类器; 步骤D:利用融合特征分类器检测所筛选出的测试集有效特征集合。
[0009] 所述的基于多特征融合的恶意代码检测方法,其中,所述步骤C具体包括: 步骤C1:针对训练集有效特征集合中的每个有效特征创建一个贝叶斯分类器; 步骤C2:利用带有恶意代码标签及正常代码标签的训练集训练所创建的贝叶斯分类 器; 步骤C3:将训练后的各个贝叶斯分类器按照正确率从小到大进行排序; 步骤C4:利用Boosting算法根据所排列次序对训练后的贝叶斯分类器进行二次训练并 进行特征融合。
[0010] 所述的基于多特征融合的恶意代码检测方法,其中,所述步骤C4具体包括: 步骤C41:利用Boosting算法根据所排列次序对训练后的贝叶斯分类器进行二次训练 并得到各个贝叶斯分类器的权重; 步骤C42:根据所得到的权重融合各个贝叶斯分类器所对应的有效特征。
[0011] 所述的基于多特征融合的恶意代码检测方法,其中,所述步骤B具体包括: 步骤B1:通过信息增益的方式由所提取的训练集基本特征集合中筛选出训练集有效特 征集合; 步骤B2:通过信息增益的方式由所提取的测试集基本特征集合中筛选出测试集有效特 征集合。
[0012] 所述的基于多特征融合的恶意代码检测方法,其中,所述步骤B1包括: 步骤B11:计算所有基本特征的信息增益; 步骤B12:根据计算结果将所有基本特征按照递减顺序排列,并选取前若干个基本特征 作为有效特征。
[0013] -种基于多特征融合的恶意代码检测系统,其中,所述基于多特征融合的恶意代 码检测系统包括: 提取模块,用于提取训练集和测试集中代码序列的N-gram及变长N-gram,分别作为训 练集基本特征集合及测试集基本特征集合; 筛选模块,用于通过信息增益的方式由所提取的训练集基本特征集合及测试集基本特 征集合中分别筛选出训练集有效特征集合及测试集有效特征集合; 融合模块,用于通过Boosting算法对所筛选出的训练集有效特征集合进行特征融合以 得到融合特征分类器; 检测模块,用于利用融合特征分类器检测所筛选出的测试集有效特征集合。
[0014] 所述的基于多特征融合的恶意代码检测系统,其中,所述融合模块具体包括: 创建子模块,用于针对训练集有效特征集合中的每个有效特征创建一个贝叶斯分类 器; 训练子模块,用于利用带有恶意代码标签及正常代码标签的训练集训练所创建的贝叶 斯分类器; 排序子模块,用于将训练后的各个贝叶斯分类器按照正确率从小到大进行排序; 融合子模块,用于利用Boosting算法根据所排列次序对训练后的贝叶斯分类器进行二 次训练并进行特征融合。
[0015] 所述的基于多特征融合的恶意代码检测系统,其中,所述融合子模块具体包括: 训练单元,用于利用Boosting算法根据所排列次序对训练后的贝叶斯分类器进行二次 训练并得到各个贝叶斯分类器的权重; 融合单元,用于根据所得到的权重融合各个贝叶斯分类器所对应的有效特征。
[0016] 所述的基于多特征融合的恶意代码检测系统,其中,所述筛选模块具体包括: 第一筛选子模块,用于通过信息增益的方式由所提取的训练集基本特征集合中筛选出 训练集有效特征集合; 第二筛选子模块,用于通过信息增益的方式由所提取的测试集基本特征集合中筛选出 测试集有效特征集合。
[0017] 所述的基于多特征融合的恶意代码检测系统,其中,所述第一筛选子模块具体包 括: 计算单元,用于计算所有基本特征的信息增益; 筛选单元,用于根据计算结果将所有基本特征按照递减顺序排列,并选取前若干个基 本特征作为有效特征。
[0018] 本发明所提供的基于多特征融合的恶意代码检测方法,由于采用了提取训练集及 测试集特征,并通过信息增益进行训练集特征进行初步筛选,然后利用Boosting算法进行 多特征融合以进行测试集样本检测的方式,使得最终得到的融合特征具有更强的鉴别性及 鲁棒性,能够更好的分类出恶意代码。
【附图说明】
[0019] 图1是本发明中基于多特征融合的恶意代码检测方法的主要流程示意图; 图2是本发明基于多特征融合的恶意代码检测方法中步骤S100-实施例的N-gram提取 示意图; 图3是本发明中基于多特征融合的恶意代码检测系统的结构示意图。
【具体实施方式】
[0020] 本发明提供一种基于多特征融合的恶意代码检测方法及系统,为使本发明的目 的、技术方案及效果更加清楚、明确,以下参照附图并举实例对本发明进一步详细说明。应 当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0021] 如图1所示,一种基于多特征融合的恶意代码检测方法,其中,所述基于多特征融 合的恶意代码检测方法包括: S100:提取训练集和测试集中代码序列的N-gram及变长N-gram,分别作为训练集基本 特征集合及测试集基本特征集合; 研究中实际观测或调查的一部分个体称为样本(sample),研究对象的全部称为总体。 一般将样本分为独立的三部分:训练集(train set),验证集(validation set)及测试集 (test set);其中,训练集用于建立模型,测试集用于检验最终所选择最优模型的性能。 [0022]如图2所示,本发明实施例中,代码序列是指代码二进制序列或其他序列,优选为 代码二进制序列,在此基础上使用N-gram及变长N-gram滑动窗口提取特征。N-gram可以指 连续的N个字节或由一个长度为N的滑动窗口收集的一系列重叠的子字符串,这个窗口每次 滑动一个单位长度,优选为后者;例如…10 18 17 21 15 27···,其对应的3-gram为(10 18 17),(18 17 21),(17 21 15)及(21 15 27)等等。N-gram可以捕获到一些潜在的其他方法 很难准确提取的特征,但N-gram很难同时捕获不同长度的字节序列,若一个有意义的字节 序列不是N的倍数时,会产生边缘无匹配,从而造成无法提取该特征。故,本发明同时采用提 取变长N-gram的方法弥补N-gram的不足。
[0023]变长N-gram也称为段落,是一串有意义的连续字节序列,与N-gram不同,其长度是 不固定的,可以避免一个有意义的序列被拆分开来。
[0024]在该步骤之前还可以包括步骤:选取一定数量的恶意代码及正常代码作为训练集 合。则步骤S100可具体为:由训练集合中提取训练集和测试集中代码序列的N-gram及变长 N-gram,分别作为训练集基本特征集合及测试集基本特征集合 S200:通过信息增益的方式由所提取的训练集基本特征集合及测试集基本特征集合中 分别筛选出训练集有效特征集合及测试集有效特征集合; 经步骤S100所提取的训练集基本特征集合及测试集基本特征集合包含有很多冗余特 征,所以有必要从中选取利于区分代码类型的特征即有效特征。
[0025] 信息增益也可称为平均互信息量,又称information divergence,information gain,relative entropy或者KLIC。利用信息增益筛选特征是通过信息增益值,在信息增 益中,衡量标准是看特征能够为分类系统带来多少信息,带来的信息越多,该特征越重要。 对一个特征而言,系统有它和没它时信息量将发生变化,而前后信息量的差值就是这个特 征给系统带来的信息量,即信息增益值,又称为熵。其定义为I(X;Y)=H(X)-H(X/Y),其中,Η (X)是X的信息熵,Η(Χ/Υ)是一直Υ情况下X的条件熵。
[0026] S300:通过Boosting算法对所筛选出的训练集有效特征集合进行特征融合以得到 融合特征分类器; Boosting算法是一种用来提高弱分类算法及任意给定学习算法准确度的方法,这种方 法通过构造一个预测函数系列,然后以一定的方式将他们组合成一个预测函数。其主要是 通过对样本集的操作获得样本子集,然后用弱分类算法在样本子集上训练生成一系列的基 分类器。他可以用来提高其他弱分类算法的识别率,也就是将其他的弱分类算法作为基分 类算法放于Boosting框架中,通过Boosting框架对训练样本集的操作,得到不同的训练样 本子集,用该样本子集去训练生成基分类器;每得到一个样本集就用该基分类算法在该样 本集上产生一个基分类器,这样在给定训练轮数η后,就可产生η个基分类器,然后 Boosting框架算法将这η个基分类器进行加权融合,产生一个最后的结果分类器,在这η 个基分类器中,每个单个的分类器的识别率不一定很高,但他们联合后的结果有很高的识 别率,这样便提高了该弱分类算法的识别率。在产生单个的基分类器时可用相同的分类算 法,也可用不同的分类算法,优选为使用相同的分类算法。
[0027] S400:利用融合特征分类器检测所筛选出的测试集有效特征集合。
[0028]综上,本发明步骤可具体为:分别由测试集及训练集中提取基本特征,所述基本特 征为N-gram及变长N-gram;从所提取的两组基本特征分别通过信息增益的方法提取有效特 征;将由训练集所提取的有效特征通过Boosting算法进行训练并融合;利用最终融合特征 检测由测试集中所提取的有效特征;输入检测结果,所输出结果为所检测有效特征是否为 恶意代码或是否为正常代码。
[0029] 本发明所提供的基于多特征融合的恶意代码检测方法,由于采用了提取训练集及 测试集特征,并通过信息增益进行训练集特征进行初步筛选,然后利用Boosting算法进行 多特征融合以进行测试集样本检测的方式,使得最终得到的融合特征具有更强的鉴别性及 鲁棒性,能够更好的分类出恶意代码。
[0030] 进一步地,所述的基于多特征融合的恶意代码检测方法,其中,所述S300具体包 括: S310:针对训练集有效特征集合中的每个有效特征创建一个贝叶斯分类器; 贝叶斯分类器的分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概 率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类。也就是 说,贝叶斯分类器是最小错误率意义上的优化。
[0031] 应用贝叶斯网络分类器进行分类主要分成两阶段。第一阶段是贝叶斯网络分类器 的学习,即从样本数据中构造分类器,包括结构学习和CPT学习;第二阶段是贝叶斯网络分 类器的推理,即计算类结点的条件概率,对分类数据进行分类。这两个阶段的时间复杂性均 取决于特征值间的依赖程度,甚至可以是NP完全问题,因而在实际应用中,往往需要对贝 叶斯网络分类器进行简化。
[0032] S320:利用带有恶意代码标签及正常代码标签的训练集训练所创建的贝叶斯分类 器; 该步骤具体包括:提取等数量的带有恶意代码标签及正常代码标签的所有有效特征; 分别利用所提取有效特征的训练样本训练其所对应的分类器。
[0033] S330:将训练后的各个贝叶斯分类器按照正确率从小到大进行排序; S340:利用Boosting算法根据所排列次序对训练后的贝叶斯分类器进行二次训练并进 行特征融合。
[0034]本发明实施例中,Boosting算法首先对每个样本赋予一个相同的初始权重,然后 在此后的迭代过程中不断调整权重。整个过程进行多次迭代,每次迭代首先根据样本的权 重构造训练集,权重越大的样本出现在训练集中的概率越高。
[0035]进一步地,所述的基于多特征融合的恶意代码检测方法,其中,所述S340具体包 括: S341:利用Boosting算法根据所排列次序对训练后的贝叶斯分类器进行二次训练并得 到各个贝叶斯分类器的权重; 权重是一个相对的概念,针对某一指标而言。某一指标的权重是指该指标在整体评价 中的相对重要程度。权重是要从若干评价指标中分出轻重来,一组评价指标体系相对应的 权重组成了权重体系。
[0036]该步骤具体为:利用Boosting算法根据所排列次序对训练后的贝叶斯分类器进行 二次训练,并调整训练样本的权重,训练得出各个贝叶斯分类器的权重。
[0037] S342:根据所得到的权重融合各个贝叶斯分类器所对应的有效特征。
[0038]进一步地,所述的基于多特征融合的恶意代码检测方法,其中,所述S200具体包 括: S210:通过信息增益的方式由所提取的训练集基本特征集合中筛选出训练集有效特征 集合; S220:通过信息增益的方式由所提取的测试集基本特征集合中筛选出测试集有效特征 集合。
[0039] 进一步地,所述的基于多特征融合的恶意代码检测方法,其中,所述S210包括: S211:计算所有基本特征的信息增益; 本发明实施例中,基本特征的信息增益定义可以如下公式所示:
其中,C为类别数目,在本发明实施例中取值为2;v(f)表示f出现与否的样本集合,当v (f)取值为1时表示特征f出现在样本中,当v(f)取值为1时表示特征f没有出现在样本中;Pi 表示集合S中各类别的比例,qi表示集合Sv(f)中各类别的比例。
[0040] S212:根据计算结果将所有基本特征按照递减顺序排列,并选取前若干个基本特 征作为有效特征。
[0041] 如图3所示,一种基于多特征融合的恶意代码检测系统,其中,所述基于多特征融 合的恶意代码检测系统包括: 提取模块100,用于提取训练集和测试集中代码序列的N-gram及变长N-gram,分别作为 训练集基本特征集合及测试集基本特征集合,具体如上所述; 筛选模块200,用于通过信息增益的方式由所提取的训练集基本特征集合及测试集基 本特征集合中分别筛选出训练集有效特征集合及测试集有效特征集合,具体如上所述; 融合模块300,用于通过Boosting算法对所筛选出的训练集有效特征集合进行特征融 合以得到融合特征分类器,具体如上所述; 检测模块400,用于利用融合特征分类器检测所筛选出的测试集有效特征集合,具体如 上所述。
[0042] 进一步地,所述的基于多特征融合的恶意代码检测系统,其中,所述融合模块具体 包括: 创建子模块,用于针对训练集有效特征集合中的每个有效特征创建一个贝叶斯分类 器,具体如上所述; 训练子模块,用于利用带有恶意代码标签及正常代码标签的训练集训练所创建的贝叶 斯分类器,具体如上所述; 排序子模块,用于将训练后的各个贝叶斯分类器按照正确率从小到大进行排序,具体 如上所述; 融合子模块,用于利用Boosting算法根据所排列次序对训练后的贝叶斯分类器进行二 次训练并进行特征融合,具体如上所述。
[0043] 进一步地,所述的基于多特征融合的恶意代码检测系统,其中,所述融合子模块具 体包括: 训练单元,用于利用Boosting算法根据所排列次序对训练后的贝叶斯分类器进行二次 训练并得到各个贝叶斯分类器的权重,具体如上所述; 融合单元,用于根据所得到的权重融合各个贝叶斯分类器所对应的有效特征,具体如 上所述。
[0044] 进一步地,所述的基于多特征融合的恶意代码检测系统,其中,所述筛选模块具体 包括: 第一筛选子模块,用于通过信息增益的方式由所提取的训练集基本特征集合中筛选出 训练集有效特征集合,具体如上所述; 第二筛选子模块,用于通过信息增益的方式由所提取的测试集基本特征集合中筛选出 测试集有效特征集合,具体如上所述。
[0045] 进一步地,所述的基于多特征融合的恶意代码检测系统,其中,所述第一筛选子模 块具体包括: 计算单元,用于计算所有基本特征的信息增益,具体如上所述; 筛选单元,用于根据计算结果将所有基本特征按照递减顺序排列,并选取前若干个基 本特征作为有效特征,具体如上所述。
[0046] 应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可 以根据上述说明加以改进或变换,例如信息增益计算公式等,所有这些改进和变换都应属 于本发明所附权利要求的保护范围。
【主权项】
1. 一种基于多特征融合的恶意代码检测方法,其特征在于,所述基于多特征融合的恶 意代码检测方法包括: 步骤A:提取训练集和测试集中代码序列的N-gram及变长N-gram,分别作为训练集基本 特征集合及测试集基本特征集合; 步骤B:通过信息增益的方式由所提取的训练集基本特征集合及测试集基本特征集合 中分别筛选出训练集有效特征集合及测试集有效特征集合; 步骤C:通过Boosting算法对所筛选出的训练集有效特征集合进行特征融合以得到融 合特征分类器; 步骤D:利用融合特征分类器检测所筛选出的测试集有效特征集合。2. 根据权利要求1所述的基于多特征融合的恶意代码检测方法,其特征在于,所述步骤 C具体包括: 步骤C1:针对训练集有效特征集合中的每个有效特征创建一个贝叶斯分类器; 步骤C2:利用带有恶意代码标签及正常代码标签的训练集训练所创建的贝叶斯分类 器; 步骤C3:将训练后的各个贝叶斯分类器按照正确率从小到大进行排序; 步骤C4:利用Boosting算法根据所排列次序对训练后的贝叶斯分类器进行二次训练并 进行特征融合。3. 根据权利要求2所述的基于多特征融合的恶意代码检测方法,其特征在于,所述步骤 C4具体包括: 步骤C41:利用Boosting算法根据所排列次序对训练后的贝叶斯分类器进行二次训练 并得到各个贝叶斯分类器的权重; 步骤C42:根据所得到的权重融合各个贝叶斯分类器所对应的有效特征。4. 根据权利要求1所述的基于多特征融合的恶意代码检测方法,其特征在于,所述步骤 B具体包括: 步骤B1:通过信息增益的方式由所提取的训练集基本特征集合中筛选出训练集有效特 征集合; 步骤B2:通过信息增益的方式由所提取的测试集基本特征集合中筛选出测试集有效特 征集合。5. 根据权利要求4所述的基于多特征融合的恶意代码检测方法,其特征在于,所述步骤 B1包括: 步骤B11:计算所有基本特征的信息增益; 步骤B12:根据计算结果将所有基本特征按照递减顺序排列,并选取前若干个基本特征 作为有效特征。6. -种基于多特征融合的恶意代码检测系统,其特征在于,所述基于多特征融合的恶 意代码检测系统包括: 提取模块,用于提取训练集和测试集中代码序列的N-gram及变长N-gram,分别作为训 练集基本特征集合及测试集基本特征集合; 筛选模块,用于通过信息增益的方式由所提取的训练集基本特征集合及测试集基本特 征集合中分别筛选出训练集有效特征集合及测试集有效特征集合; 融合模块,用于通过Boosting算法对所筛选出的训练集有效特征集合进行特征融合以 得到融合特征分类器; 检测模块,用于利用融合特征分类器检测所筛选出的测试集有效特征集合。7. 根据权利要求6所述的基于多特征融合的恶意代码检测系统,其特征在于,所述融合 模块具体包括: 创建子模块,用于针对训练集有效特征集合中的每个有效特征创建一个贝叶斯分类 器; 训练子模块,用于利用带有恶意代码标签及正常代码标签的训练集训练所创建的贝叶 斯分类器; 排序子模块,用于将训练后的各个贝叶斯分类器按照正确率从小到大进行排序; 融合子模块,用于利用Boosting算法根据所排列次序对训练后的贝叶斯分类器进行二 次训练并进行特征融合。8. 根据权利要求7所述的基于多特征融合的恶意代码检测系统,其特征在于,所述融合 子模块具体包括: 训练单元,用于利用Boosting算法根据所排列次序对训练后的贝叶斯分类器进行二次 训练并得到各个贝叶斯分类器的权重; 融合单元,用于根据所得到的权重融合各个贝叶斯分类器所对应的有效特征。9. 根据权利要求6所述的基于多特征融合的恶意代码检测系统,其特征在于,所述筛选 模块具体包括: 第一筛选子模块,用于通过信息增益的方式由所提取的训练集基本特征集合中筛选出 训练集有效特征集合; 第二筛选子模块,用于通过信息增益的方式由所提取的测试集基本特征集合中筛选出 测试集有效特征集合。10. 根据权利要求9所述的基于多特征融合的恶意代码检测系统,其特征在于,所述第 一筛选子模块具体包括: 计算单元,用于计算所有基本特征的信息增益; 筛选单元,用于根据计算结果将所有基本特征按照递减顺序排列,并选取前若干个基 本特征作为有效特征。
【文档编号】G06F21/56GK106096413SQ201610455269
【公开日】2016年11月9日
【申请日】2016年6月21日
【发明人】杨卫国, 范娜娜, 何震宇
【申请人】康佳集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1