CN105138913A - 一种基于多视集成学习的恶意软件检测方法 - Google Patents
一种基于多视集成学习的恶意软件检测方法 Download PDFInfo
- Publication number
- CN105138913A CN105138913A CN201510444323.4A CN201510444323A CN105138913A CN 105138913 A CN105138913 A CN 105138913A CN 201510444323 A CN201510444323 A CN 201510444323A CN 105138913 A CN105138913 A CN 105138913A
- Authority
- CN
- China
- Prior art keywords
- feature
- grams
- integrated
- characteristic view
- characteristic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于多视集成学习的恶意软件检测方法,对训练样本集中的可执行文件提取字节码n-grams特征视图、操作码n-grams特征视图、格式信息特征视图;对三个特征视图分别或合并后采用不同的分类算法训练出多个基分类器,利用集成学习方法集成出分类模型;从待检测样本集中提取出与上述三种特征视图相应的特征;根据提取到的待检测样本集的特征,用所述集成的分类模型对待检测样本进行分类,得到检测结果。本发明集成了表示可执行文件的字节码特征、操作码特征、格式信息特征,实现了特征的互补;使用集成学习取代了单个分类器,修正了单分类器的归纳偏置,实现了各分类算法的互补;能有效的检测新出现恶意软件,具备较好的泛化性能。
Description
技术领域
本发明涉及网络安全中的恶意软件检测方法,具体为一种基于多视集成学习的恶意软件检测方法。
背景技术
恶意软件通常指带有恶意目的的程序,常被用于破坏数据、运行入侵程序、窃取敏感信息、控制受害者的电脑、为恶意软件控制者谋取非法利益等。此外,恶意软件相当多数扮演着“间谍软件”的角色,它们侵蚀着各国的政治、经济、文化、军事等各个领域的信息安全。恶意软件包括病毒、木马、蠕虫、后门程序、Rootkit、Dos、Exploit等。据Symantec公司发布的2015互联网安全威胁报告,2014年该公司共捕获3.17亿个新恶意软件,平均每天接近100万个新的恶意软件释放到互联网。如此数目庞大的恶意软件已经成为互联网的最大安全威胁,严重影响了世界各国的信息安全。
当前的杀毒软件主要使用特定的字节序列作为特征码检测已知的恶意软件,但这种方法对新的、未知的恶意软件通常是无效的,能检测的恶意软件经过简单加壳或混淆后又不能检测,使用多态和变形技术的恶意软件在传播的过程中不断随机的改变着二进制文件内容,没有固定的特征,使用该方法也不能检测。据Symantec公司发布的2015互联网安全威胁报告,基于特征码的方法仅能检测2014年捕获的所有恶意软件中的13.9%。除此之外,分析人员手动提取恶意软件特征码的速度已经不能匹配恶意软件增长速度,这些都给恶意软件的检测工作带来了严峻挑战。
由于当前杀毒软件存在较多的局限性,迫切需要研究新的有效的恶意软件检测方法。近年来研究人员提出了基于数据挖掘和机器学习的恶意软件检测方法,这些方法从大量的恶意软件样本中学习识别规则,以实现恶意软件的智能检测。这些方法都是通过随机抽样的方法划分训练集和测试集,测试集对于训练集是未知的,可以验证所提出的方法检测未知恶意软件的性能。但现实场景中,恶意软件检测方法必须基于已存在的样本集训练分类模型,使用训练好的分类模型检测新出现的未知恶意软件。现有的检测方法中,无论训练集还是测试集,都是新旧样本混合,无法评估检测新出现的未知恶意软件的性能。
基于数据挖掘和机器学习的恶意软件检测方法将可执行文件表示成不同抽象层次的特征,使用这些特征来训练分类模型。某一种类型的特征都从不同的侧面反映刻画了可执行文件的一些性质,部分捕捉到了恶意软件和良性软件的区分信息,但都存在着一定的局限性,不能充分、综合、整体的表示可执行文件的本质。各种类型的特征具有自身的优势,特征类型间存在着互补,融合这些不同抽象层次的特征可更好的发现软件的真正性质。此外,由于学习算法的假设是各不相同的,不存在对各种类型问题都最优的学习算法。针对不同的特征,选择适合的分类算法并不是一项容易的工作。不同的分类算法都存在着归纳偏置,融合各种学习算法也可发挥各自优势,克服其不足,从而提高分类算法的准确率,降低误报率,改进分类算法的泛化性能。
集成学习指按照多样和准确的原则产生多个具有独立决策能力的分类器,并按照某种策略组合这些独立的分类器解决一个同样的问题。在真实情况下,每个分类算法都有其局限性,都会犯错误,组合多个分类算法将修正单个分类器的错误,降低总体的错误率,从而有效地提高学习系统的泛化能力。集成学习的原理是专家委员会思想,把具有独立决策能力的分类器当作专家。在日常生活中进行重要决策前,征询多个专家观点,然后权衡每个观点,组合这些观点形成最终决策,其中蕴含的哲学思想是“三个臭皮匠,顶一个诸葛亮”。大量的实验和理论研究显示:集成学习一般比单个学习算法取得更好的分类准确率,当存在更多样性的基分类器时,提升更明显。严格来说,集成学习并不算是一种分类器,而是一种分类器组合的方法。集成学习可从多个层次构建,从而产生各具特色的集成学习方法。图1显示了构建集成学习的四个层次,集成学习可单独在某个层次构建,也可同时在多个层次构建。
数据层控制提交到学习算法的数据,确保产生足够多样且准确的分类模型。该方法通过抽样技术操纵训练集生成不同训练子集,不同训练子集用于训练多个基分类器,然后使用不同的集成策略组合基分类器。这种技术对不稳定的学习算法很有用,特别是训练数据中微小的变化容易导致分类器输出发生明显的变化的学习算法。Bagging和Boosting是这种方法最典型的例子。
特征层提取、选择、变换、划分特征,从而产生多样、互补的特征视图。该方法采用各种技术获得同一数据源的不同特性视图,如构建多种不同的特性表示,将原始特征集划分为多个特征子集,变换原始单特征视图为多个特征视图等。可用两种不同的方式集成多个特征视图:(a)在每一个特征视图训练不同的分类模型,组合多个特征视图的输出分类模型产生最终的分类模型;(b)合并多个特征视图为一个特征超集,然后使用合并后的特征集训练分类器。总的来说,该方法充分利用了多特征视图和不同分类算法的一致性和互补性,比单一特征视图方法更有效,具备更好的泛化性能。
分类器层选择基分类器的类型及数量,确定训练基分类器的方式,如迭代方式或并行方式。该方法构建多样且相对准确的基分类器集合,如使用不同的学习算法训练不同分类模型,在学习算法注入随机产生不同的分类模型,相同学习算法使用不同的参数产生不同的分类模型,也可同时使用多个机制。通过对多个分类器进行适当的组合,从而改善学习算法的准确性。这种方法组合了异质的或同质的分类算法的决策,克服不同算法的归纳偏置。
集成层确定组合基分类器的方法和策略。该方法可以使用不同的方式来组合基分类器产生最终的决策。包括Voting、Stacking、EnsembleSelection等。这些方法简要介绍如下:
Voting(投票法)
假设集成学习系统由L个基分类器组成,记作D={D1,…,DL};x是具有t个特征的实例,记作x∈Rt;基分类器需要将实例x分类到c个可能的类别之一,类别集合Ω={ω1,…,ωc};L个基分类器对实例x处理,输出矩阵M=[mp,q],p=1,…,L,q=1,…,c。
如果mp,q∈{0,1},当基分类器Dp将实例x分为ωq类时,mp,q=1,否则mp,q=0。如果
则实例x将被分到类别ωk,这种投票规则称作大多数投票规则(MajorityVoting),每个基分类器的权重大小一样,少数服从多数,类别得票数最多的作为分类结果。
如果mp,q∈[0,1],mp,q是基分类器Dp对实例x属于类别ωq的支持度,记作mp,q=P(ωq|x,Dp)。如果
则实例x将被分到类别ωk,这种投票规则称作平均概率投票规则(AverageofProbabilities)。
Stacking(叠加法)
Stacking构造一组同质的或异质的基分类器,基分类器的输出用于训练元分类器(meta-classifier),元分类器输出最终的分类结果。元分类器可修正基分类器的错误,取得最小化泛化误差。可以使用任何分类算法训练基分类器或元分类器。Stacking算法的步骤简单描述如下:(1)数据集划分为三个不相交的子集:训练集、验证集和测试集;(2)在训练集构建一组基分类器;(3)使用训练好的基分类器分类验证集;(4)利用(3)的输出结果以及真正的类标签训练元分类器;(5)在测试集对训练好的元分类器性能进行评估。
EnsembleSelection(选择性集成)
大多数集成学习算法组合了所有的基分类器,但很难确定应该包含哪些基分类器、需要多少个基分类器、应该使用什么集成策略。研究表明,组合一部分基分类器而不是所有基分类器可能会更好,这样的集成学习方法称作选择性集成(EnsembleSelection)。选择性集成学习可以使用较少的基分类器实现较强的泛化性能。选择性集成学习包括两个步骤:首先,训练一组同质的或异质的基分类器;其次,采用启发式算法来计算基分类器的权重,将权重大于设定阈值的基分类器进行组合,组合后的模型用于对测试样本进行分类。
基于机器学习的恶意软件检测方法需要把恶意软件表示成各种类型的特征,这些特征被用来训练能预测未知软件性质的分类模型。然而在大量的特征类型中选择最适合的特征和使用适合的分类算法并不是一项容易的工作。受文本分类方法的启发,研究人员提出了基于可执行文件字节码n-grams的恶意软件检测方法,该方法提取的特征覆盖了整个可执行文件,但这些特征都是语法模式信息,没有明显的语义信息。可执行文件可反汇编得到汇编代码,汇编代码由指令序列构成。指令包括操作码和可选的操作数,操作码确定指令的功能操作。研究人员提出了基于操作码n-grams的恶意软件检测方法,但该方法只从代码节提取特征,提取的操作码序列有较丰富的语义信息(如控制流和功能等),但可执行文件的大量重要信息被丢弃。恶意软件和被感染可执行文件格式信息上存在一些异常,这些异常是检测恶意软件的关键点。研究人员提出了基于可执行文件格式信息的恶意软件检测方法,该方法从可执行文件的文件头、节头部、资源节、导入表提取特征,但该方法没有提取决定软件行为的代码节和数据节信息作为特征。字节码n-grams、操作码n-grams、格式特征都部分捕捉到了恶意软件和良性软件间的可区分信息,但都不完整。
发明内容
针对上述问题,本发明的目的在于提供一种基于多视集成学习的恶意软件检测方法,该方法能有效的检测新出现恶意软件,同时具备较好的泛化性能。技术方案如下:
一种基于多视集成学习的恶意软件检测方法,包括:
步骤A:抽取训练样本集,对训练样本集中的可执行文件提取字节码n-grams特征视图、操作码n-grams特征视图,以及格式信息特征视图;
步骤B:对字节码n-grams特征视图采用不同的分类算法训练出多个基分类器,构成第一基分类器集合;
对操作码n-grams特征视图采用不同的分类算法训练出多个基分类器,构成第二基分类器集合;
对格式信息特征视图采用不同的分类算法训练出多个基分类器,构成第三基分类器集合;
利用集成学习方法处理上述三个基分类器集合,得到集成的分类模型;
步骤C:从待检测样本集中提取出与上述三种特征视图相应的特征;
步骤D:根据提取到的待检测样本集的特征,用所述集成的分类模型对待检测样本进行分类,得到检测结果。
进一步的,将所述步骤B替换为:
合并所述字节码n-grams特征视图、操作码n-grams特征视图以及格式信息特征视图,构成特征超集;
对上述特征超集采用不同的分类算法训练出多个基分类器;
利用集成学习方法处理上述多个基分类器,得到集成的分类模型。
更进一步的,所述集成学习方法为:Voting算法、Stacking算法或EnsembleSelection算法。
更进一步的,所述字节码n-grams特征视图的提取方法包括:
将二进制的可执行文件转换为十六进制的文本文件,得到十六进制字节码序列;
用n-grams法处理上述字节码序列,生成大量短序列;
根据每个短序列特征的文档频率,过滤出相关特征集;
用特征的权重表示相关特征集中对应特征的值;
根据特征的值采用特征选择算法对相关特征集进行特征选择,得到相关特征子集,作为字节码n-grams特征视图。
更进一步的,所述特征的权重用二值法、TF或TF.IDF表示。
更进一步的,所述操作码n-grams特征视图的提取方法包括:
使用IDAPro对样本文件进行反汇编处理,得到汇编语言文件;
从汇编语言文件提取操作码序列;
用n-grams法处理上述操作码序列,生成大量短操作码序列;
根据每个短序列特征的文档频率,过滤出相关特征集;
用特征的权重表示相关特征集中对应特征的值;
根据特征的值采用特征选择算法对相关特征集进行特征选择,得到相关特征子集,作为操作码n-grams特征视图。
更进一步的,所述特征的权重用二值法、TF或TF.IDF表示。
更进一步的,所述格式信息特征视图的提取方法包括:
从可执行文件中提取出和恶意软件检测相关的格式属性:引用的DLLs、引用的APTs、PE文件头部、节头部以及资源目录表,以及每个格式属性的值,构成格式特征集;
用特征选择算法对格式特征集进行特征选择,得到格式特征子集,作为格式信息特征视图。
更进一步的,所述PE文件头部不包括以下属性:机器类型、链接器信息、操作系统信息和时间戳;节头部属性包括以下节的节头部属性:.text、.data、.rsrc、.rdata和.reloc。
本发明的有益效果是:本发明一方面,集成了表示可执行文件的字节码特征、操作码特征、格式信息特征,实现了特征的互补;另一方面,使用集成学习取代了单个分类器,修正了单分类器的归纳偏置,实现了各分类算法的互补;能有效的检测新出现恶意软件,同时具备较好的泛化性能。
附图说明
图1构建集成学习的四个层次。
图2为本发明基于多视集成学习的恶意软件检测方法采用集成方案1的流程框图。
图3为本发明基于多视集成学习的恶意软件检测方法采用集成方案2的流程框图。
图4为实施例1的检测结果对比图。
图5为实施例2的检测结果对比图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步说明。本发明提供的恶意软件检测步骤如下:
步骤A:提取训练样本集特征视图。
抽取训练样本集,对训练样本集中的可执行文件提取字节码n-grams特征视图、操作码n-grams特征视图,以及格式信息特征视图。
(1)提取字节码n-grams特征视图:将二进制的可执行文件转换为十六进制的文本文件,得到十六进制字节码序列;用n-grams法处理上述字节码序列,生成大量短序列;根据每个短序列特征的文档频率,过滤出相关特征集;用特征的权重表示相关特征集中对应特征的值;根据特征的值采用特征选择算法对相关特征集进行特征选择,得到相关特征子集,作为字节码n-grams特征视图。
可执行文件通常以字节为单位进行存储,连续的几个字节可能是完成特定功能的一段代码,或者是可执行文件的结构信息,也可能是某个恶意软件中特有的字节序列。但是可执行文件通常是二进制文件,需要把二进制文件转换为十六进制的文本文件,就得到可执行文件的十六进制字节码序列。在不知道多长的子序列能更好的表示可执行文件的情况下,只能以固定窗口大小在字节码序列中滑动,产生大量的短序列,由机器学习方法选择可能区分恶意软件和良性软件的短序列作为特征,产生短序列的方法叫n-grams。字节码序列“080074FF13B2”,如果以3-grams产生连续重叠的短序列,将得到“080074”、“0074FF”、“74FF13”、“FF13B2”四个短序列。
n-grams中滑动窗口的长度n取多大会得到较好的实验结果,本实施例用同样的实验过程进行了n=3,4,5的实验,以确定较优的n值。n-grams产生的短序列非常庞大,以n=4为例,将产生2^32(4,294,927,296)个特征,如此庞大的特征集在计算机内存中存储和算法效率上都是问题。本发明统计了每个特征的文档频率DF(documentfrequency),文档频率DF指包含该特征之样本文件的数目。如果特征的DF较小,对机器学习可能没有意义,本实施例选取了DF最高的15000个特征。
初次过滤后剩余的15000个特征对分类学习仍然过多,本发明使用特征选择算法选择最相关的一组特征子集。同时对学习算法来说,有效的特征选择可以降低学习问题的复杂性,提高学习算法的泛化性能,简化学习模型。
特征选择算法是基于每个特征的特征值来计算的,本发明用特征的权重来表示对应特征的值。每个短序列特征的权重表示有多种方法。最简单的方法是二值法:如果该特征在该样本文件中出现,就表示为1;如果没有出现,就表示为0。也可以把特征的权重表示为词频(termfrequency,TF),即某一个特征在该样本文件中出现的频率。较好的权重表示方法是TF.IDF值,TF是词频,定义如下:
ni,j是短序列特征i在文件j中出现的次数。为了防止偏向较长的文件,用∑knk,j进行了归一化,∑knk,j指在样本文件dj中所有短序列出现次数之和。
逆向文件频率(inversedocumentfrequency,IDF)是一个短序列特征普遍重要性的度量。某一短序列特征的IDF,可以由总样本文件数目除以包含该短序列特征之样本文件的数目,再将得到的商取对数得到:
|D|指样本文件的总数,|{j:ti∈dj}|指包含特征ti的样本文件数目。IDF的主要思想是:如果包含短序列特征ti的样本越少,也就是|{j:ti∈dj}|越小,IDF越大,则说明短序列特征ti具有很好的类别区分能力。
TF.IDF定义如下:
TF.IDF=TF×IDF
关于特征选择算法本发明对比了信息增益(informationgain)、信息增益比(informationgainratio)、过滤式特征选择方法CfsSubsetEval三种方法。信息增益和信息增益比特征选择算法保留的特征个数很难确定,和CfsSubsetEval性能相当时特征个数明显较多,所以使用CfsSubsetEval进行了特征选择。选择后的特征使用四种分类算法(J48,RandomForest,Bagging(J48),AdboostM1(J48))进行了分类实验,4-grams特征表示取得了较好的实验结果,包括87个特征,字节码4-grams被选为第一个特征视图:字节码n-grams特征视图。
(2)提取操作码n-grams特征视图:使用IDAPro对样本文件进行反汇编处理,得到汇编语言文件;从汇编语言文件提取操作码序列;用n-grams法处理上述操作码序列,生成大量短操作码序列;根据每个短操作码序列特征的文档频率,过滤出相关特征集;用特征的权重表示相关特征集中对应特征的值;根据特征的值采用特征选择算法对相关特征集进行特征选择,得到相关特征子集,作为操作码n-grams特征视图。
可执行文件的功能实现在其代码节,代码节由机器语言指令组成。机器语言指令由操作码和可选的操作数组成。操作码是机器语言指令的主要部分,指定了机器指令进行的操作。操作码的操作包括算术运算、逻辑运算、数据处理、程序控制等。操作数通常是立即数、寄存器、内存地址、IO端口等。操作数比较随机,很少有语义信息。软件通过连续的多条机器指令实现特定功能,去掉机器指令中相对随机的操作数,操作码序列具备较强的语义信息。恶意软件可能重用了早期恶意软件的部分代码,或者恶意软件实现特定恶意行为的操作码序列可能是相似的,操作码序列在恶意软件和良性软件间具备一定的区分度。
使用IDAPro对样本文件进行反汇编处理,得到汇编语言文件。反汇编后的汇编语言文件片段如下:
然后从汇编语言文件提取操作码序列,以上汇编语言文件片段提取的操作码序列为(movpushpushpushcallpushpushpushpushpushcallpushcallpushcalladd)。尽管丢弃操作数后丢失了一些语义信息,但提取的操作码序列保留了汇编语言文件的主要语义信息。基于n-grams模型以固定窗口大小在操作码码序列中滑动,产生大量的短操作码序列。使用和字节码n-grams相同的方法,用同样的实验过程进行了n=2,3,4,5的实验,以确定较优的n值。经过实验结果对比,4-grams特征表示取得了较好的实验结果,包括112个特征,操作码4-grams被选为第二个特征视图:操作码n-grams特征视图。
(3)提取格式信息特征视图:从可执行文件中提取出和恶意软件检测相关的格式属性:引用的DLLs、引用的APTs、PE文件头部、节头部以及资源目录表;对每种格式属性提取相应数量的格式特征,构成格式特征集;用特征选择算法对格式特征集进行特征选择,得到格式特征子集,作为格式信息特征视图。
PE就是PortableExecutable(可移植可执行文件)的缩写,初衷是希望能开发一个在所有Windows平台上和所有CPU上都可执行的通用文件格式。恶意软件或被恶意软件感染的可执行文件,它本身也遵循格式要求的约束,但存在一些特定格式异常,在格式上表现出和正常文件的一些差异。如代码不从代码节开始执行、节头部异常Characteristics值、PE可选头部有效大小的值不正确、节之间的间缝、可疑的代码重定向、存在非标准节、导入节被修改、多个PE头部、SizeOfCode取值不正确等等。PE文件很多属性没有强制限制,文件完整性约束松散,存在着较多的冗余属性和冗余空间,为PE格式恶意软件的传播和隐藏创造了条件。此外,由于恶意软件为了方便传播和隐藏,尽一切可能的减小文件大小,如文件结构的某些部分重叠,很少使用图形界面资源,导入节很小和几乎没有导出节,很少带有调试信息,同时对一些属性进行了特别设置以达到Anti-Dump、Anti-Debug或干扰反汇编。综合上面的分析可以看出,恶意软件的格式信息和正常文件是有很多差异性的,以可执行文件的格式信息作为特征,从而识别已知和未知恶意软件是可行的。
PE文件的格式属性很多,基于对恶意软件的分析和各个格式属性的深入认识,初步提取出可能和恶意软件检测相关的格式属性见表1。
对表1提取的特征简单描述如下:
引用的DLLs和引用的APIs:通过一个可执行程序引用的动态链接库(DLL)和应用程序接口(API)可以粗略的预测该程序的功能和行为。统计所有样本导入节中引用的DLL和API的频率,留下引用频率大于100次的DLL和API,然后计算每个DLL或API的信息增益,选择信息增益最高的30个DLL和30个API。每个样本的导入节里存在选择出的DLL或API,以1表示,不存在则以0表示。
PE文件头部:PE文件头部是定义整个PE文件“轮廓”的属性。本发明排除了有可能误导结果的部分属性,如机器类型、链接器信息、操作系统信息、时间戳等,然后选择了剩下的所有字段。
节头部:本实施例提取了5个节(.text、data、.rsrc、.rdata和.reloc)的节头部属性,这5个节在大部分PE文件中都存在。如果某个样本不存在相应节,该节头部的信息都以0表示。
资源目录表:提取了较常见的21种资源类型的个数,如果没有相应类型的资源,该资源的个数以0值表示,同时还提取了资源节中总的资源个数。
对于提取的197个格式特征,使用CfsSubsetEval算法进行特征选择,共选出28个特征,这些特征作为第三个特征视图:格式特征视图。
表1.可能和PE格式恶意软件检测相关的属性
特征描述 | 数量(个) |
引用的DLLs | 30 |
引用的APIs | 30 |
引用DLL的总数 | 1 |
引用API的总数 | 1 |
导出表中符号的总数 | 1 |
重定位节的项目总数 | 1 |
IMAGE_FILE_HEADER | 7 |
IMAGE_OPTIONAL_HEADER | 16 |
IMAGE_DATA_DIRECTORY | 32 |
.text节头 | 11 |
.data节头 | 11 |
.rsrc节头 | 11 |
.rdata节头 | 11 |
.reloc节头 | 11 |
资源目录表 | 22 |
合计 | 197 |
步骤B:集成分类模型。
由于特征层提取到的特征,如字节码n-grams、操作码n-grams、格式特征都部分捕捉到了恶意软件和良性软件间的可区分信息,都不完整,而这些特征具有相对的独立性,同时也存在着互补。本发明提供两种方案集成这三种类型的特征,两种方案的说明如下。
集成方案1:对字节码n-grams特征视图采用不同的分类算法训练出多个基分类器,构成第一基分类器集合;对操作码n-grams特征视图采用不同的分类算法训练出多个基分类器,构成第二基分类器集合;对格式信息特征视图采用不同的分类算法训练出多个基分类器,构成第三基分类器集合;利用集成学习方法处理上述三个基分类器集合,得到集成的分类模型。
如图2所示,基于字节码4-grams的87个特征,使用J48(决策树算法)、RandomForest(随机森林算法)、Bagging(REPTree)(袋装算法)三种分类算法训练了3个基分类器。基于操作码4-grams的112个特征,使用RandomForest(随机森林算法)、LogitBoost(DecisionStump)(Logit推进算法)、MutilBoostAB(DecisionStump)(Multi推进算法)三种分类算法训练了3个基分类器。基于28个格式信息特征,使用RandomForest(随机森林算法)、RotationForests(J48)(旋转森林算法)、RandomSubspace(REPTree)(随机子空间算法)三种分类算法训练了3个基分类器。使用集成学习方法Voting、Stacking或EnsembleSelection集成9个基分类器,其中Vote使用AverageofProbabilities、MajorityVoting两种集成策略,Stacking使用J48(决策树算法)、RandomForest(随机森林算法)、BayesNet(贝叶斯网络算法)三种分类算法集成9个基分类器,此外还可以使用选择性集成方法EnsembleSelection对9个基分类器进行选择性集成。
集成方案2:合并所述字节码n-grams特征视图、操作码n-grams特征视图以及格式信息特征视图,构成特征超集;对上述特征超集采用不同的分类算法训练出多个基分类器;利用集成学习方法处理上述多个基分类器,得到集成的分类模型。
如图3所示,合并字节码4-grams、操作码4-grams、格式信息特征,共得到227个特征。基于合并后的特征,使用7种分类算法J48、RandomForest、Bagging(REPTree)、LogitBoost(DecisionStump)、MutilBoostAB(DecisionStump)、RotationForests(J48)、RandomSubspace(REPTree)训练7个基分类器。然后使用集成学习方法Voting、Stacking或EnsembleSelection集成7个基分类器,其中Vote使用AverageofProbabilities、MajorityVoting两种集成策略,Stacking使用J48、RandomForest、BayesNet三种分类算法集成7个基分类器,此外还可以使用选择性集成方法EnsembleSelection对7个基分类器进行选择性集成。
步骤C:从待检测样本集中提取出与上述三种特征视图相应的特征。
步骤D:根据提取到的待检测样本集的特征,用所述集成的分类模型对待检测样本进行分类,得到检测结果。
实施例一:本实施例主要评估本发明提供的方法是否能有效的检测新出现的恶意软件。本实施例使用了7871个良性软件样本和8269个恶意软件样本。训练集由2011年以前发现的4103个恶意软件和新安装的XPSP3操作系统收集的3918个良性软件组成,测试集由最近发现的4166个恶意软件和新安装的Windwos732位版操作系统收集的3953个良性软件组成。三种单特征视图方法和本发明提供的两种方案的结果如图4所示,使用不同算法或参数的同类型方法,最好的实验结果被选出和其它方法进行对比。
如图4所示,Stacking(叠加法)集成方法的结果明显弱于Voting(投票法)和EnsembleSelection(选择性集成)集成方法,可能的原因是Stacking集成方法训练的模型过于复杂,存在过拟合训练数据。Voting集成方法的集成策略相对简单鲁棒,取得了较好的实验结果,有相对较好的泛化能力。Stacking和Voting集成方法都是按照一定策略集成所有的基分类器,没有对基分类器进行取舍,而基分类器是主观选择的结果,把较好的基分类器进行集成,并不一定获得更好的实验结果,基分类器的选择受研究人员对集成学习主观认识和经验影响较大。选择性集成方法EnsembleSelection对基分类器进行组合取舍,选择较优的基分类器子集进行集成,简化了分类模型的复杂度,具备较好的泛化能力,实验结果明显优于Stacking和Voting集成方法。
总体而言,本发明提供的两种多视集成方案明显优于三种单特征视图方法,恶意软件的检测率和总体的准确率有较大幅度的提升。考虑到本实施例是基于早期的样本检测新出现的样本,具有较大的挑战性,训练样本和测试样本有显著的差异,使用多视集成方法取得了不错的实验结果。
实施例二:本实施例主要评估本发明提供的方法是否有较好的泛化性能。本实施例使用了7871个良性软件样本和114,447个恶意软件样本。训练集由5202个恶意软件和3918个良性软件组成,测试集由109,245个恶意软件和3953个良性软件组成。本实施例使用了小的训练集和大的测试集,无论是训练集还是测试集,都是新旧样本的混合,可有效评估检测方法的泛化性能。三种单特征视图方法和本发明提供的两种方案的结果如图5所示,使用不同算法或参数的同类型方法,最好的实验结果被选出和其它方法进行对比。
如图5所示,本发明提供的两种多视集成方案明显优于三种单特征视图方法,各项性能指标已非常接近最优值,以小的训练集构建集成学习模型,可正确检测大测试集中99%的恶意软件,且误报率达到0%。在本实施例中,各种集成学习方法和集成策略没有显著的差异,考虑到样本集可能存在噪声,本发明提供的方法已取得了非常理想的结果。
Claims (9)
1.一种基于多视集成学习的恶意软件检测方法,其特征在于,包括:
步骤A:抽取训练样本集,对训练样本集中的可执行文件提取字节码n-grams特征视图、操作码n-grams特征视图,以及格式信息特征视图;
步骤B:对字节码n-grams特征视图采用不同的分类算法训练出多个基分类器,构成第一基分类器集合;
对操作码n-grams特征视图采用不同的分类算法训练出多个基分类器,构成第二基分类器集合;
对格式信息特征视图采用不同的分类算法训练出多个基分类器,构成第三基分类器集合;
利用集成学习方法处理上述三个基分类器集合,得到集成的分类模型;
步骤C:从待检测样本集中提取出与上述三种特征视图相应的特征;
步骤D:根据提取到的待检测样本集的特征,用所述集成的分类模型对待检测样本进行分类,得到检测结果。
2.根据权利要求1所述的基于多视集成学习的恶意软件检测方法,其特征在于,将所述步骤B替换为:
合并所述字节码n-grams特征视图、操作码n-grams特征视图以及格式信息特征视图,构成特征超集;
对上述特征超集采用不同的分类算法训练出多个基分类器;
利用集成学习方法处理上述多个基分类器,得到集成的分类模型。
3.根据权利要求1或2所述的基于多视集成学习的恶意软件检测方法,其特征在于,所述集成学习方法为:Voting算法、Stacking算法或EnsembleSelection算法。
4.根据权利要求1或2所述的基于多视集成学习的恶意软件检测方法,其特征在于,所述字节码n-grams特征视图的提取方法包括:
将二进制的可执行文件转换为十六进制的文本文件,得到十六进制字节码序列;
用n-grams法处理上述字节码序列,生成大量短序列;
根据每个短序列特征的文档频率,过滤出相关特征集;
用特征的权重表示相关特征集中对应特征的值;
根据特征的值采用特征选择算法对相关特征集进行特征选择,得到相关特征子集,作为字节码n-grams特征视图。
5.根据权利要求4所述的基于多视集成学习的恶意软件检测方法,其特征在于,所述特征的权重用二值法、TF或TF.IDF表示。
6.根据权利要求1或2所述的基于多视集成学习的恶意软件检测方法,其特征在于,所述操作码n-grams特征视图的提取方法包括:
使用IDAPro对样本文件进行反汇编处理,得到汇编语言文件;
从汇编语言文件提取操作码序列;
用n-grams法处理上述操作码序列,生成大量短操作码序列;
根据每个短操作码序列特征的文档频率,过滤出相关特征集;
用特征的权重表示相关特征集中对应特征的值;
根据特征的值采用特征选择算法对相关特征集进行特征选择,得到相关特征子集,作为操作码n-grams特征视图。
7.根据权利要求6所述的基于多视集成学习的恶意软件检测方法,其特征在于,所述特征的权重用二值法、TF或TF.IDF表示。
8.根据权利要求1或2所述的基于多视集成学习的恶意软件检测方法,其特征在于,所述格式信息特征视图的提取方法包括:
从可执行文件中提取出和恶意软件检测相关的格式属性:引用的DLLs、引用的APTs、PE文件头部、节头部以及资源目录表,以及每个格式属性的值,构成格式特征集;
用特征选择算法对格式特征集进行特征选择,得到格式特征子集,作为格式信息特征视图。
9.根据权利要求8所述的基于多视集成学习的恶意软件检测方法,其特征在于,所述PE文件头部不包括以下属性:机器类型、链接器信息、操作系统信息和时间戳;节头部属性包括以下节的节头部属性:.text、.data、.rsrc、.rdata和.reloc。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510444323.4A CN105138913A (zh) | 2015-07-24 | 2015-07-24 | 一种基于多视集成学习的恶意软件检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510444323.4A CN105138913A (zh) | 2015-07-24 | 2015-07-24 | 一种基于多视集成学习的恶意软件检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105138913A true CN105138913A (zh) | 2015-12-09 |
Family
ID=54724258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510444323.4A Pending CN105138913A (zh) | 2015-07-24 | 2015-07-24 | 一种基于多视集成学习的恶意软件检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105138913A (zh) |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106096413A (zh) * | 2016-06-21 | 2016-11-09 | 康佳集团股份有限公司 | 一种基于多特征融合的恶意代码检测方法及系统 |
CN106529220A (zh) * | 2016-11-17 | 2017-03-22 | 四川长虹电器股份有限公司 | iOS应用数据安防系统及方法 |
CN107392022A (zh) * | 2017-07-20 | 2017-11-24 | 北京小度信息科技有限公司 | 爬虫识别、处理方法及相关装置 |
CN107895117A (zh) * | 2017-11-29 | 2018-04-10 | 四川无声信息技术有限公司 | 恶意代码标注方法和装置 |
CN108205624A (zh) * | 2016-12-20 | 2018-06-26 | 宏碁股份有限公司 | 电子装置及检测恶意文件的方法 |
CN108628873A (zh) * | 2017-03-17 | 2018-10-09 | 腾讯科技(北京)有限公司 | 一种文本分类方法、装置和设备 |
CN109063478A (zh) * | 2018-07-19 | 2018-12-21 | 中国人民解放军61660部队 | 可移植的可执行文件的病毒检测方法、装置、设备及介质 |
CN109308413A (zh) * | 2018-11-28 | 2019-02-05 | 杭州复杂美科技有限公司 | 特征提取方法、模型生成方法及恶意代码检测方法 |
CN110008701A (zh) * | 2019-03-20 | 2019-07-12 | 北京大学 | 基于elf文件特征的静态检测规则提取方法及检测方法 |
CN110009045A (zh) * | 2019-04-09 | 2019-07-12 | 中国联合网络通信集团有限公司 | 物联网终端的识别方法和装置 |
CN110175456A (zh) * | 2019-06-04 | 2019-08-27 | 网御安全技术(深圳)有限公司 | 软件行为取样方法、相关设备及软件系统 |
CN110263539A (zh) * | 2019-05-15 | 2019-09-20 | 湖南警察学院 | 一种基于并行集成学习的安卓恶意应用检测方法及系统 |
CN111259397A (zh) * | 2020-02-12 | 2020-06-09 | 四川大学 | 一种基于马尔科夫图和深度学习的恶意软件分类方法 |
CN111310185A (zh) * | 2020-03-11 | 2020-06-19 | 合肥工业大学 | 一种基于改进stacking算法的Android恶意软件检测方法 |
CN111382439A (zh) * | 2020-03-28 | 2020-07-07 | 玉溪师范学院 | 基于多模态深度学习的恶意软件检测方法 |
CN111414863A (zh) * | 2020-03-23 | 2020-07-14 | 国家海洋信息中心 | 一种增强型集成遥感影像分类方法 |
CN111651768A (zh) * | 2020-08-05 | 2020-09-11 | 中国人民解放军国防科技大学 | 计算机二进制程序的链接库函数名识别方法及装置 |
CN112733144A (zh) * | 2021-01-18 | 2021-04-30 | 公安部第一研究所 | 一种基于深度学习技术的恶意程序智能检测方法 |
CN112883995A (zh) * | 2020-12-30 | 2021-06-01 | 华北电力大学 | 基于集成学习的闭源电力工控系统恶意行为识别方法及装置 |
CN112948834A (zh) * | 2021-03-25 | 2021-06-11 | 国药(武汉)医学实验室有限公司 | 一种用于恶意WebShell检测的深度集成学习模型构建方法 |
CN113705616A (zh) * | 2021-07-30 | 2021-11-26 | 三维通信股份有限公司 | 模型构建方法、软件缺陷预测方法、装置以及电子装置 |
CN113709134A (zh) * | 2021-08-24 | 2021-11-26 | 中国电子科技集团公司第二十八研究所 | 一种基于N-gram和机器学习的恶意软件检测方法及系统 |
CN113918942A (zh) * | 2020-07-10 | 2022-01-11 | 深信服科技股份有限公司 | 一种安全文件的识别方法、装置、电子设备及存储介质 |
CN114330935A (zh) * | 2022-03-10 | 2022-04-12 | 南方电网数字电网研究院有限公司 | 基于多种结合策略集成学习的新能源功率预测方法和系统 |
CN114386511A (zh) * | 2022-01-11 | 2022-04-22 | 广州大学 | 基于多维度特征融合和模型集成的恶意软件家族分类方法 |
CN114499980A (zh) * | 2021-12-28 | 2022-05-13 | 杭州安恒信息技术股份有限公司 | 一种钓鱼邮件检测方法、装置、设备及存储介质 |
CN117034274A (zh) * | 2023-10-08 | 2023-11-10 | 广东技术师范大学 | 基于特征融合的恶意软件分类方法、装置、设备及介质 |
CN117079059A (zh) * | 2023-10-13 | 2023-11-17 | 云南师范大学 | 一种基于多源卫星图像的树种自动分类方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346829A (zh) * | 2011-09-22 | 2012-02-08 | 重庆大学 | 基于集成分类的病毒检测方法 |
US20130152200A1 (en) * | 2011-12-09 | 2013-06-13 | Christoph Alme | Predictive Heap Overflow Protection |
-
2015
- 2015-07-24 CN CN201510444323.4A patent/CN105138913A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346829A (zh) * | 2011-09-22 | 2012-02-08 | 重庆大学 | 基于集成分类的病毒检测方法 |
US20130152200A1 (en) * | 2011-12-09 | 2013-06-13 | Christoph Alme | Predictive Heap Overflow Protection |
Non-Patent Citations (2)
Title |
---|
冯本慧: "《基于数据挖掘与机器学习的恶意代码检测技术研究》", 《中国优秀硕士学位论文全文数据库-信息科技辑》 * |
白金荣等: "《基于PE静态结构特征的恶意软件检测方法》", 《计算机科学》 * |
Cited By (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106096413A (zh) * | 2016-06-21 | 2016-11-09 | 康佳集团股份有限公司 | 一种基于多特征融合的恶意代码检测方法及系统 |
CN106096413B (zh) * | 2016-06-21 | 2019-01-29 | 康佳集团股份有限公司 | 一种基于多特征融合的恶意代码检测方法及系统 |
CN106529220A (zh) * | 2016-11-17 | 2017-03-22 | 四川长虹电器股份有限公司 | iOS应用数据安防系统及方法 |
CN108205624A (zh) * | 2016-12-20 | 2018-06-26 | 宏碁股份有限公司 | 电子装置及检测恶意文件的方法 |
CN108628873A (zh) * | 2017-03-17 | 2018-10-09 | 腾讯科技(北京)有限公司 | 一种文本分类方法、装置和设备 |
CN108628873B (zh) * | 2017-03-17 | 2022-09-27 | 腾讯科技(北京)有限公司 | 一种文本分类方法、装置和设备 |
CN107392022A (zh) * | 2017-07-20 | 2017-11-24 | 北京小度信息科技有限公司 | 爬虫识别、处理方法及相关装置 |
CN107392022B (zh) * | 2017-07-20 | 2020-12-29 | 北京星选科技有限公司 | 爬虫识别、处理方法及相关装置 |
CN107895117A (zh) * | 2017-11-29 | 2018-04-10 | 四川无声信息技术有限公司 | 恶意代码标注方法和装置 |
CN109063478A (zh) * | 2018-07-19 | 2018-12-21 | 中国人民解放军61660部队 | 可移植的可执行文件的病毒检测方法、装置、设备及介质 |
CN109308413A (zh) * | 2018-11-28 | 2019-02-05 | 杭州复杂美科技有限公司 | 特征提取方法、模型生成方法及恶意代码检测方法 |
CN110008701B (zh) * | 2019-03-20 | 2020-11-03 | 北京大学 | 基于elf文件特征的静态检测规则提取方法及检测方法 |
CN110008701A (zh) * | 2019-03-20 | 2019-07-12 | 北京大学 | 基于elf文件特征的静态检测规则提取方法及检测方法 |
CN110009045A (zh) * | 2019-04-09 | 2019-07-12 | 中国联合网络通信集团有限公司 | 物联网终端的识别方法和装置 |
CN110263539A (zh) * | 2019-05-15 | 2019-09-20 | 湖南警察学院 | 一种基于并行集成学习的安卓恶意应用检测方法及系统 |
CN110175456A (zh) * | 2019-06-04 | 2019-08-27 | 网御安全技术(深圳)有限公司 | 软件行为取样方法、相关设备及软件系统 |
CN111259397A (zh) * | 2020-02-12 | 2020-06-09 | 四川大学 | 一种基于马尔科夫图和深度学习的恶意软件分类方法 |
CN111259397B (zh) * | 2020-02-12 | 2022-04-19 | 四川大学 | 一种基于马尔科夫图和深度学习的恶意软件分类方法 |
CN111310185A (zh) * | 2020-03-11 | 2020-06-19 | 合肥工业大学 | 一种基于改进stacking算法的Android恶意软件检测方法 |
CN111310185B (zh) * | 2020-03-11 | 2022-10-04 | 合肥工业大学 | 一种基于改进stacking算法的Android恶意软件检测方法 |
CN111414863B (zh) * | 2020-03-23 | 2023-01-17 | 国家海洋信息中心 | 一种增强型集成遥感影像分类方法 |
CN111414863A (zh) * | 2020-03-23 | 2020-07-14 | 国家海洋信息中心 | 一种增强型集成遥感影像分类方法 |
CN111382439A (zh) * | 2020-03-28 | 2020-07-07 | 玉溪师范学院 | 基于多模态深度学习的恶意软件检测方法 |
CN113918942A (zh) * | 2020-07-10 | 2022-01-11 | 深信服科技股份有限公司 | 一种安全文件的识别方法、装置、电子设备及存储介质 |
CN111651768A (zh) * | 2020-08-05 | 2020-09-11 | 中国人民解放军国防科技大学 | 计算机二进制程序的链接库函数名识别方法及装置 |
CN112883995A (zh) * | 2020-12-30 | 2021-06-01 | 华北电力大学 | 基于集成学习的闭源电力工控系统恶意行为识别方法及装置 |
CN112733144A (zh) * | 2021-01-18 | 2021-04-30 | 公安部第一研究所 | 一种基于深度学习技术的恶意程序智能检测方法 |
CN112733144B (zh) * | 2021-01-18 | 2024-05-24 | 公安部第一研究所 | 一种基于深度学习技术的恶意程序智能检测方法 |
CN112948834A (zh) * | 2021-03-25 | 2021-06-11 | 国药(武汉)医学实验室有限公司 | 一种用于恶意WebShell检测的深度集成学习模型构建方法 |
CN113705616A (zh) * | 2021-07-30 | 2021-11-26 | 三维通信股份有限公司 | 模型构建方法、软件缺陷预测方法、装置以及电子装置 |
CN113705616B (zh) * | 2021-07-30 | 2024-05-10 | 三维通信股份有限公司 | 模型构建方法、软件缺陷预测方法、装置以及电子装置 |
CN113709134A (zh) * | 2021-08-24 | 2021-11-26 | 中国电子科技集团公司第二十八研究所 | 一种基于N-gram和机器学习的恶意软件检测方法及系统 |
CN114499980A (zh) * | 2021-12-28 | 2022-05-13 | 杭州安恒信息技术股份有限公司 | 一种钓鱼邮件检测方法、装置、设备及存储介质 |
CN114386511A (zh) * | 2022-01-11 | 2022-04-22 | 广州大学 | 基于多维度特征融合和模型集成的恶意软件家族分类方法 |
CN114330935A (zh) * | 2022-03-10 | 2022-04-12 | 南方电网数字电网研究院有限公司 | 基于多种结合策略集成学习的新能源功率预测方法和系统 |
CN117034274A (zh) * | 2023-10-08 | 2023-11-10 | 广东技术师范大学 | 基于特征融合的恶意软件分类方法、装置、设备及介质 |
CN117079059A (zh) * | 2023-10-13 | 2023-11-17 | 云南师范大学 | 一种基于多源卫星图像的树种自动分类方法 |
CN117079059B (zh) * | 2023-10-13 | 2023-12-19 | 云南师范大学 | 一种基于多源卫星图像的树种自动分类方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105138913A (zh) | 一种基于多视集成学习的恶意软件检测方法 | |
Mahdavifar et al. | Application of deep learning to cybersecurity: A survey | |
JP5183483B2 (ja) | データ列の自動比較に用いられる方法およびその装置 | |
Smutz et al. | Malicious PDF detection using metadata and structural features | |
CN111652290B (zh) | 一种对抗样本的检测方法及装置 | |
CN111382439A (zh) | 基于多模态深度学习的恶意软件检测方法 | |
CN102420723A (zh) | 一种面向多类入侵的异常检测方法 | |
He et al. | An effective cost-sensitive XGBoost method for malicious URLs detection in imbalanced dataset | |
CN111259219B (zh) | 恶意网页识别模型建立方法、识别方法及系统 | |
CN104899230A (zh) | 舆情热点自动监测系统 | |
Liu et al. | A statistical pattern based feature extraction method on system call traces for anomaly detection | |
US20230353585A1 (en) | Malicious traffic identification method and related apparatus | |
CN105516128A (zh) | 一种Web攻击的检测方法及装置 | |
Mimura et al. | Using LSI to detect unknown malicious VBA macros | |
Aghaei et al. | Ensemble classifier for misuse detection using N-gram feature vectors through operating system call traces | |
Jin et al. | Payload-based web attack detection using deep neural network | |
Assefa et al. | Intelligent phishing website detection using deep learning | |
Aljabri et al. | Fake news detection using machine learning models | |
Wojnowicz et al. | SUSPEND: Determining software suspiciousness by non-stationary time series modeling of entropy signals | |
Masabo et al. | Improvement of malware classification using hybrid feature engineering | |
CN109284465A (zh) | 一种基于url的网页分类器构建方法及其分类方法 | |
CN117176433A (zh) | 网络数据的异常行为检测系统及方法 | |
Meng et al. | A survey on machine learning-based detection and classification technology of malware | |
CN115758388A (zh) | 一种基于低维字节码特征的智能合约的漏洞检测方法 | |
Cybersecurity | Machine learning for malware detection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151209 |
|
RJ01 | Rejection of invention patent application after publication |