一种基于多视集成学习的恶意软件检测方法

文档序号:9417745阅读:265来源:国知局
一种基于多视集成学习的恶意软件检测方法
【技术领域】
[0001] 本发明涉及网络安全中的恶意软件检测方法,具体为一种基于多视集成学习的恶 意软件检测方法。
【背景技术】
[0002] 恶意软件通常指带有恶意目的的程序,常被用于破坏数据、运行入侵程序、窃取敏 感信息、控制受害者的电脑、为恶意软件控制者谋取非法利益等。此外,恶意软件相当多数 扮演着"间谍软件"的角色,它们侵蚀着各国的政治、经济、文化、军事等各个领域的信息安 全。恶意软件包括病毒、木马、懦虫、后门程序、Rootkit、Dos、Exploit等。据Symantec公 司发布的2015互联网安全威胁报告,2014年该公司共捕获3. 17亿个新恶意软件,平均每天 接近100万个新的恶意软件释放到互联网。如此数目庞大的恶意软件已经成为互联网的最 大安全威胁,严重影响了世界各国的信息安全。
[0003] 当前的杀毒软件主要使用特定的字节序列作为特征码检测已知的恶意软件,但这 种方法对新的、未知的恶意软件通常是无效的,能检测的恶意软件经过简单加壳或混淆后 又不能检测,使用多态和变形技术的恶意软件在传播的过程中不断随机的改变着二进制文 件内容,没有固定的特征,使用该方法也不能检测。据Symantec公司发布的2015互联网安 全威胁报告,基于特征码的方法仅能检测2014年捕获的所有恶意软件中的13. 9%。除此之 外,分析人员手动提取恶意软件特征码的速度已经不能匹配恶意软件增长速度,这些都给 恶意软件的检测工作带来了严峻挑战。
[0004] 由于当前杀毒软件存在较多的局限性,迫切需要研究新的有效的恶意软件检测方 法。近年来研究人员提出了基于数据挖掘和机器学习的恶意软件检测方法,这些方法从大 量的恶意软件样本中学习识别规则,以实现恶意软件的智能检测。这些方法都是通过随机 抽样的方法划分训练集和测试集,测试集对于训练集是未知的,可以验证所提出的方法检 测未知恶意软件的性能。但现实场景中,恶意软件检测方法必须基于已存在的样本集训练 分类模型,使用训练好的分类模型检测新出现的未知恶意软件。现有的检测方法中,无论训 练集还是测试集,都是新旧样本混合,无法评估检测新出现的未知恶意软件的性能。
[0005] 基于数据挖掘和机器学习的恶意软件检测方法将可执行文件表示成不同抽象层 次的特征,使用这些特征来训练分类模型。某一种类型的特征都从不同的侧面反映刻画了 可执行文件的一些性质,部分捕捉到了恶意软件和良性软件的区分信息,但都存在着一定 的局限性,不能充分、综合、整体的表示可执行文件的本质。各种类型的特征具有自身的优 势,特征类型间存在着互补,融合这些不同抽象层次的特征可更好的发现软件的真正性质。 此外,由于学习算法的假设是各不相同的,不存在对各种类型问题都最优的学习算法。针对 不同的特征,选择适合的分类算法并不是一项容易的工作。不同的分类算法都存在着归纳 偏置,融合各种学习算法也可发挥各自优势,克服其不足,从而提高分类算法的准确率,降 低误报率,改进分类算法的泛化性能。
[0006] 集成学习指按照多样和准确的原则产生多个具有独立决策能力的分类器,并按照 某种策略组合这些独立的分类器解决一个同样的问题。在真实情况下,每个分类算法都有 其局限性,都会犯错误,组合多个分类算法将修正单个分类器的错误,降低总体的错误率, 从而有效地提高学习系统的泛化能力。集成学习的原理是专家委员会思想,把具有独立决 策能力的分类器当作专家。在日常生活中进行重要决策前,征询多个专家观点,然后权衡 每个观点,组合这些观点形成最终决策,其中蕴含的哲学思想是"三个臭皮匠,顶一个诸葛 亮"。大量的实验和理论研究显示:集成学习一般比单个学习算法取得更好的分类准确率, 当存在更多样性的基分类器时,提升更明显。严格来说,集成学习并不算是一种分类器,而 是一种分类器组合的方法。集成学习可从多个层次构建,从而产生各具特色的集成学习方 法。图1显示了构建集成学习的四个层次,集成学习可单独在某个层次构建,也可同时在多 个层次构建。
[0007] 数据层控制提交到学习算法的数据,确保产生足够多样且准确的分类模型。该方 法通过抽样技术操纵训练集生成不同训练子集,不同训练子集用于训练多个基分类器,然 后使用不同的集成策略组合基分类器。这种技术对不稳定的学习算法很有用,特别是训练 数据中微小的变化容易导致分类器输出发生明显的变化的学习算法。Bagging和Boosting 是这种方法最典型的例子。
[0008] 特征层提取、选择、变换、划分特征,从而产生多样、互补的特征视图。该方法采用 各种技术获得同一数据源的不同特性视图,如构建多种不同的特性表示,将原始特征集划 分为多个特征子集,变换原始单特征视图为多个特征视图等。可用两种不同的方式集成多 个特征视图:(a)在每一个特征视图训练不同的分类模型,组合多个特征视图的输出分类 模型产生最终的分类模型;(b)合并多个特征视图为一个特征超集,然后使用合并后的特 征集训练分类器。总的来说,该方法充分利用了多特征视图和不同分类算法的一致性和互 补性,比单一特征视图方法更有效,具备更好的泛化性能。
[0009] 分类器层选择基分类器的类型及数量,确定训练基分类器的方式,如迭代方式或 并行方式。该方法构建多样且相对准确的基分类器集合,如使用不同的学习算法训练不同 分类模型,在学习算法注入随机产生不同的分类模型,相同学习算法使用不同的参数产生 不同的分类模型,也可同时使用多个机制。通过对多个分类器进行适当的组合,从而改善学 习算法的准确性。这种方法组合了异质的或同质的分类算法的决策,克服不同算法的归纳 偏置。
[0010] 集成层确定组合基分类器的方法和策略。该方法可以使用不同的方式来组合基分 类器产生最终的决策。包括Voting、Stacking、Ensemble Selection等。这些方法简要介 绍如下:
[0011] Voting (投票法)
[0012] 假设集成学习系统由L个基分类器组成,记作D= (D1,…,DJ ;x是具有t个特征 的实例,记作X e Rt;基分类器需要将实例X分类到C个可能的类别之一,类别集合Ω = {ω1;…,ω。} ;L个基分类器对实例X处理,输出矩阵M = [mp,q],p = 1,…,L, q = 1,…,c。
[0013] 如果mp,qG {〇, 1},当基分类器D p将实例X分为ω q类时,mp,q= 1,否则mp,q= 0。 如果
[0014]
[0015] 则实例X将被分到类别COk,这种投票规则称作大多数投票规则(Majority Voting),每个基分类器的权重大小一样,少数服从多数,类别得票数最多的作为分类结果。
[0016] 如果[0, ILmp q是基分类器Dp对实例X属于类别ω q的支持度,记作Hlp q = P(coq|x,Dp)。如果
[0017]
[0018] 则实例X将被分到类别cok,这种投票规则称作平均概率投票规则(Average of Probabilities)〇
[0019] Stacking (叠加法)
[0020] Stacking构造一组同质的或异质的基分类器,基分类器的输出用于训练元分类器 (meta-classifier),元分类器输出最终的分类结果。元分类器可修正基分类器的错误,取 得最小化泛化误差。可以使用任何分类算法训练基分类器或元分类器。Stacking算法的步 骤简单描述如下:(1)数据集划分为三个不相交的子集:训练集、验证集和测试集;(2)在训 练集构建一组基分类器;(3)使用训练好的基分类器分类验证集;(4)利用(3)的输出结果 以及真正的类标签训练元分类器;(5)在测试集对训练好的元分类器性能进行评估。
[0021] Ensemble Selection (选择性集成)
[0022] 大多数集成学习算法组合了所有的基分类器,但很难确定应该包含哪些基分类 器、需要多少个基分类器、应该使用什么集成策略。研究表明,组合一部分基分类器而不是 所有基分类器可能会更好,这样的集成学习方法称作选择性集成(Ensemble Selection)。 选择性集成学习可以使用较少的基分类器实现较强的泛化性能。选择性集成学习包括两个 步骤:首先,训练一组同质的或异质的基分类器;其次,采用启发式算法来计算基分类器的 权重,将权重大于设定阈值的基分类器进行组合,组合后的模型用于对测试样本进行分类。
[0023] 基于机器学习的恶意软件检测方法需要把恶意软件表示成各种类型的特征,这些 特征被用来训练能预测未知软件性质的分类模型。然而在大量的特征类型中选择最适合的 特征和使用适合的分类算法并不是一项容易的工作。受文本分类方法的启发,研究人员提 出了基于可执行文件字节码n-grams的恶意软件检测方法,该方法提取的特征覆盖了整个 可执行文件,但这些特征都是语法模式信息,没有明显的语义信息。可执行文件可反汇编得 到汇编代码,汇编代码由指令序列构成。指令包括操作码和可选的操作数,操作码确定指令 的功能操作。研究人员提出了基于操
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1