CN111143842A - 一种恶意代码检测方法及系统 - Google Patents
一种恶意代码检测方法及系统 Download PDFInfo
- Publication number
- CN111143842A CN111143842A CN201911270920.4A CN201911270920A CN111143842A CN 111143842 A CN111143842 A CN 111143842A CN 201911270920 A CN201911270920 A CN 201911270920A CN 111143842 A CN111143842 A CN 111143842A
- Authority
- CN
- China
- Prior art keywords
- data
- class
- word
- idf
- cluster
- 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.)
- Granted
Links
Images
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
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2411—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Security & Cryptography (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种恶意代码检测方法及系统,方法包括:S1、将每个恶意代码运行过程中的WindowsAPI动作序列视作一个具有上下文关系的文本,分别使用TF‑IDF和Doc2vec进行特征抽取;S2、在分别获得TF‑IDF和Doc2vec特征矩阵后,将TF‑IDF和Doc2vec抽取到的特征进行拼接,降维后获得恶意代码的特征矩阵;S3、构造基于聚类的集成分类改进模型,采用多个基学习器对数据集进行分类,并在最后采用投票的方式获得最终分类结果,S4、在预测阶段将样本分别输入每个基学习器中与之最近的单一类别类簇/SVM分类器中并输出预测类别,最后根据投票原则,学习器输出类别中占多数的类别为最终预测类别。本发明将TF‑IDF和Doc2vec结合,不仅考虑恶意代码动作序列中API的频率,也考虑动作序列的上下文关联,提高恶意代码检测的准确性。
Description
技术领域
本发明属于网络安全的技术领域,具体涉及一种恶意代码检测方法及系统。
背景技术
恶意代码检测一直是网络安全领域关注的焦点之一,木马病毒、蠕虫病毒、挖矿病毒、勒索病毒等恶意程序通过隐匿地注入和运行恶意代码,入侵系统、篡改文件、窃取信息等,对政府、企业、个人的隐私安全和财产安全有巨大威胁。随着恶意代码攻防技术之间不断对抗和升级,恶意代码的发展逐渐趋向多变种、高隐蔽性、数量多、更新快。目前对与恶意代码的分析技术可分为静态分析和动态分析,其中动态分析技术注重代码运行过程中的行为特征,较静态分析不受加壳、多态等影响,在恶意代码检测中被普遍应用。不同类型的恶意代码因其原理机制或获取权限的路径不同,代码特征呈现出多样化的特点,而部分隶属于同一家族的恶意代码及其变种则在代码特征上通常具有相似之处。基于上述特点,要利用机器学习从规模大、分布结构复杂、特征多样化的代码中检测出恶意代码,简单的分类算法已经不能满足需求,人们倾向于使用性能更高的智能检测模型来处理这一问题。
现有技术中,Tian等人通过研究运行程序时的Windows API调用日志来统计API调用的数量及特定的API调用频率提取代码特征,从而识别恶意程序和正常程序。Shifu Hou、Lifei Chen等人提出了一个基于聚类的恶意软件分类模型,该模型首先将数据集按不同的特征子集划分为多个基学习器,在每个学习器中利用k-means聚类算法将数据集划分为多个单一类别的类簇和一个混合类别的类簇并对混合类别类簇的数据训练相应的SVM分类器,最后将多个学习器用简单投票的方式进行集成。
但是,Tian等人提出的模型只关注了Windows API的数量和频率,而没有考虑API调用序列中包含的上下文关系,丢失了数据的部分特征。Shifu Hou等人提出的模型将聚类后包含多种类别数据的类簇合并为一个大的混合类簇,这些类簇中有一部分是由于数据分布为非球状簇或类别边界模糊而导致类簇之间掺杂了彼此的部分数据点,但也有一部分类簇是由于包含少量异常点或噪音点而导致纯度降低。对于后者,混合类簇对应的数据子集往往数据分布高度不平衡,且在类簇合并后并无明显改善,在这种情况下,小样本数据分类易导致过拟合,并且这些在采集过程中产生的噪音点也有可能影响分类的准确度。因此,应根据不同的情况对这类混合类簇进行过滤等不同操作。
发明内容
本发明的主要目的在于克服现有技术的缺点与不足,提供一种恶意代码检测方法及系统,本发明采用了TF-IDF和Doc2vec结合的方法,并基于聚类的分类方法进一步提高恶意代码检测的准确性。
为了达到上述目的,本发明采用以下技术方案:
一种恶意代码检测方法,包括下述步骤:
S1、将每个恶意代码运行过程中的WindowsAPI动作序列视作一个具有上下文关系的文本,分别使用TF-IDF和Doc2vec进行特征抽取;TF-IDF是用来评估特定词语在语料库中重要程度,其中TF计算词语出现的频率,IDF用以衡量词语对于文本类型的区分度;TF-IDF算法流程具体为:
S11、计算每个Windows API函数在动作序列中出现的频率TF以及包含该WindowsAPI的动作序列所占总数据集的比例IDF;
S12、根据TF和IDF计算Windows API函数在动作序列中的TF-IDF,将动作序列向量化;
Doc2vec是Word2vec的扩展,通过训练神经网络学习文本的特定长度向量表示,文本向量不仅包含了上下文信息,还包含了文本整体的语义信息;Doc2vec算法流程具体为:
S13、构建Doc2vec模型结构,并设置模型参数,
S14、训练Doc2vec模型,利用随机梯度下降和反向传播从已知的训练数据中学习词向量、模型参数以及文本向量;
S15、推断过程,按照设置的参数和步骤更新文本矩阵D,学习新文本的向量表示;
S2、在分别获得TF-IDF和Doc2vec特征矩阵后,将TF-IDF和Doc2vec抽取到的特征进行拼接,降维后获得恶意代码的特征矩阵;
S3、构造基于聚类的集成分类改进模型,该集成分类改进模型基于集成学习的思想,分别采用多个基学习器对数据集进行分类,并在最后采用投票的方式获得最终分类结果,所述集成分类改进模型训练,在每个基学习器中采用基于聚类的分块分类方法进行训练,具体流程如下:
S31、用k-means算法将数据划分为k个数据子集,K个类簇中有一部分类簇只含有一种类别Ci的数据,将这种这种类簇视为单一类别类簇,标记类簇类别为Ci;
S32、对噪音点进行过滤,过滤掉类簇中其他数据类别不同且数量在簇中占比极小的点;
S33、将过滤后仍然含有多个类别数据的类簇合并为一个大的混合类簇,数据被划分为m个类簇,其中{C1,C2,…,Cm-1}为单一类簇,Cm为混合类簇,类簇向量用簇内向量的均值表示:
S34、训练SVM分类器,对于混合类簇Cm,训练对应的SVM分类器Sm用于预测数据类别;
S4、对模型进行预测,在模型预测阶段,将输入的数据分别输入各基学习器,在基学习器中,数据被划分到最近的类簇C中,如C为只含一种类别数据的单一类簇,则基学习器输出的预测类别为C类簇数据的类别;如C为混合类别类簇,则基学习器输出的预测为SVM分类器的输出类别,最后根据投票原则,基学习器输出类别中占多数的类别为最终预测类别。
作为优选的技术方案,TF-IDF具体为:
给定文本j中的一个词i,设ni,j为文本j中词i的数量,则该词的TF公式为:
设N为语料库中的文本总数,N(i)为包含词i的文本的数量,则该词的IDF公式为:
根据TF和IDF值,文本j中词i的TF-IDF计算公式为:
TF-IDFi,j=TFi,j*IDFi。
作为优选的技术方案,步骤S11中,所述构建Doc2vec模型结构共分为三层:输入层、投影层、输出层,
输入层包括2k个词的词向量w(t-k),…,w(t-1),w(t+1),…,w(t+k)和1个文本向量w(d),其中k为给定的滑动窗口大小;
投影层将输入的2k+1个词向量做求和平均处理:
输出层对应一棵Huffman树,Huffman树的每个叶子节点对应一个词,词频高的词在Huffman树中的深度比词频低的词更小。
作为优选的技术方案,步骤S11中,模型参数设置如下:
pt:从根节点出发到词t对应的的叶子节点的路径;
lt:路径pt中包含节点的个数;
对于词典中任意词t,Huffman树中必然存在唯一一条从根节点到t对应叶子节点的路径pt,路径pt上存在lt-1个分支,将每个分支看作一次二分类,则每一次分类对应一个概率,将这些概率连乘得到p(t|Context(t)):
作为优选的技术方案,步骤S12中,训练Doc2vec模型的步骤为:
(1)初始化词向量矩阵{w(t1),w(t2),…,w(tn)}、文本向量矩阵{w(d1),w(d2),…,w(dm)}、非叶节点向量Θ、梯度参数η、滑动窗口大小k;
(2)从t=1,2…,n迭代循环(3)-(4);
(4)从j=2,3,…,lt迭代循环(5)-(9);
(9)更新t的2k+1个上下文词向量/文本向量w(i)=w(i)+e。
作为优选的技术方案,步骤S31中,k-means算法步骤如下:
S311、随机选定K个数据样本作为聚类中心点;
S312、根据数据与聚类中心点的聚类,将每个数据分配至离自己最近的类簇;
S313、计算每个类簇中所有对象的均值作为该类簇的新聚类中心点;
S314、判断聚类中心是否变化,如果是转至步骤S312,如果否,聚类结束。
作为优选的技术方案,步骤S32中,噪音点的判别标准如下:
其中{C1,C2,...,Cm}为k-means划分后含有混合类别数据的类簇集合,Ci(x)为类簇Ci中与数据点x同类别的的数据集合,ε为阈值参数。
作为优选的技术方案,步骤S34中,训练SVM分类器的过程如下:
S341、支持向量机的建模过程;
分类超平面为ωTx+b=0,支持向量所在超平面与分类超平面的几何间隔为d,则可以求出支持向量所在的超平面方程
对任意数据点(x(i),y(i))根据点到平面的距离关系有如下式子成立
所以支持向量所在的超平面可记为
S 342、支持向量机的目标函数;
训练支持向量机模型也就是求解下列二次规划问题,其中x(j)为支持向量
根据支持向量所在的超平面方程可知|ωTx(j)+b|=1故上述模型可以写成
s.ty(i)(ωTx(i)+b)≥1
即
s.ty(i)(ωTx(i)+b)≥1
支持向量机的目标函数一般写为对偶形式下的二次优化模型,为了不失一般性引入核函数,即求解下述问题
作为优选的技术方案,步骤S34中,SVM算法的具体过程为:
(1)取初值α0=0,令k=0;
(5)计算bk+1和Ei;
若满足则转(7);否则令k=k+1转到步骤(2);
一种恶意代码检测系统,包括特征抽取模块、特征矩阵获取模块、集成分类改进模型构造模块以及模型预测模块;
所述特征抽取模块,用于将每个恶意代码运行过程中的WindowsAPI动作序列视作一个具有上下文关系的文本,分别使用TF-IDF和Doc2vec进行特征抽取;TF-IDF是用来评估特定词语在语料库中重要程度,其中TF计算词语出现的频率,IDF用以衡量词语对于文本类型的区分度;
所述特征获取模块,用于在分别获得TF-IDF和Doc2vec特征矩阵后,将TF-IDF和Doc2vec抽取到的特征进行拼接,降维后获得恶意代码的特征矩阵;
所述集成分类改进模型构造模块,基于集成学习的思想,分别采用多个基学习器对数据集进行分类,并在最后采用投票的方式获得最终分类结果;
所述模型预测模块,用于对模型进行预测,在模型预测阶段,将输入的数据分别输入各基学习器,在基学习器中,数据被划分到最近的类簇C中,如C为只含一种类别数据的单一类簇,则基学习器输出的预测类别为C类簇数据的类别;如C为混合类别类簇,则基学习器输出的预测为SVM分类器的输出类别,最后根据投票原则,基学习器输出类别中占多数的类别为最终预测类别。
本发明与现有技术相比,具有如下优点和有益效果:
本专利在恶意代码特征抽取过程中采用了TF-IDF和Doc2vec结合的方法,其中TF-IDF考虑了恶意代码动作序列中API出现的概率和频率,Doc2Vec考虑了动作序列的语义上下文关联,将二者结合起来有利于从恶意代码动作序列中获得更多特征信息,提高代码特征的完备性;采用基于聚类的分类方法减小了用于训练分类器的数据集复杂度,有助于提高分类器的准确率,本专利通过对噪点进行过滤,避免因分类器的训练数据不平衡而导致过拟合,并进一步降低训练数据的复杂度,从而提高恶意代码检测的准确性。
附图说明
图1是本发明恶意代码检测方法的流程图;
图2是本发明Doc2vec模型结构的示意图;
图3是本发明k-means算法的流程图;
图4是本发明分类超平面的示意图;
图5是本发明分类超平面方程和支持向量所在的超平面方程示意图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例
本实施例一种恶意代码检测方法,设计了一个基于特征集成和数据分区的恶意代码检测模型,模型主要分为两部分,第一部分利用TF-IDF(Term Frequency-InverseDocument Frequency,词频-逆文本频率)和Doc2vec算法对恶意代码的动作序列进行特征抽取,第二部分在第一部分的基础上,使用基于聚类的集成分类改进模型对恶意代码进行分类。如图1所示,本实施例的具体内容如下:
S1、TF-IDF和Doc2vec抽取恶意代码家族特征融合
将每个恶意代码运行过程中的WindowsAPI动作序列视作一个具有上下文关系的文本,分别使用TF-IDF和Doc2vec进行特征抽取;
TF-IDF是用来评估特定词语在语料库中重要程度的一种统计方法,其中TF计算词语出现的频率,IDF用以衡量词语对于文本类型的区分度。给定文本j中的一个词i,设ni,j为文本j中词i的数量,则该词的TF公式为:
设N为语料库中的文本总数,N(i)为包含词i的文本的数量,则该词的IDF公式为:
根据TF和IDF值,文本j中词i的TF-IDF计算公式为:
TF-IDFi,j=TFi,j*IDFi
Doc2vec是Word2vec的扩展,通过训练神经网络学习文本的特定长度向量表示,文本向量不仅包含了上下文信息,还包含了文本整体的语义信息;Doc2vec的训练方法分为PV-DM(the Distributed Memory Model of Paragraph Vectors,文本向量的分布式记忆模型)和PV-DBOW(the Distributed Bag of Words version of Paragraph Vector,文本向量的分布式词袋模型)两种,对于大多数任务,PV-DM的表现良好,因此本申请选用PV-DM作为训练方法。
设D为文本矩阵,其中每个列向量对应一个文本的向量表示;W为词矩阵,其中每个列向量对应一个词的向量表示。
Doc2vec算法流程具体为:
S11、构建Doc2vec模型结构,并设置模型参数;
如图2所示,Doc2vec模型结构和Word2vec相似,共分为三层:输入层、投影层、输出层;
输入层包括2k个词的词向量w(t-k),…,w(t-1),w(t+1),…,w(t+k)和1个文本向量w(d),其中k为给定的滑动窗口大小。
投影层将输入的2k+1个词向量做求和平均处理:
输出层对应一棵Huffman树,Huffman树的每个叶子节点对应一个词,词频高的词在Huffman树中的深度比词频低的词更小。
模型参数设置如下:pt:从根节点出发到词t对应的的叶子节点的路径;
lt:路径pt中包含节点的个数;
对于词典中任意词t,Huffman树中必然存在唯一一条从根节点到t对应叶子节点的路径pt,路径pt上存在lt-1个分支,将每个分支看作一次二分类,则每一次分类对应一个概率,将这些概率连乘得到p(t|Context(t)):
S12、训练Doc2vec模型,利用随机梯度下降和反向传播从已知的训练数据中学习词向量、模型参数以及文本向量;
训练Doc2vec模型的步骤为:
(1)初始化词向量矩阵{w(t1),w(t2),…,w(tn)}、文本向量矩阵{w(d1),w(d2),…,w(dm)}、非叶节点向量Θ、梯度参数η、滑动窗口大小k;
(2)从t=1,2…,n迭代循环(3)-(4);
(4)从j=2,3,…,lt迭代循环(5)-(9);
(9)更新t的2k+1个上下文词向量/文本向量w(i)=w(i)+e。
最后,在分别获得TF-IDF和Doc2vec特征矩阵后,将TF-IDF和Doc2vec抽取到的特征进行拼接,降维后获得恶意代码的特征矩阵。
S13、推断过程,按照设置的参数和步骤更新文本矩阵D,学习新文本的向量表示;
S2、在分别获得TF-IDF和Doc2vec特征矩阵后,将TF-IDF和Doc2vec抽取到的特征进行拼接,降维后获得恶意代码的特征矩阵;
S3、构造基于聚类的集成分类改进模型,该集成分类改进模型基于集成学习的思想,分别采用多个基学习器对数据集进行分类,并在最后采用投票的方式获得最终分类结果,具体为:
集成分类改进模型训练,在每个基学习器中采用基于聚类的分块分类方法进行训练,流程如下:
S31、用k-means算法将数据划分为k个数据子集,K个类簇中有一部分类簇只含有一种类别Ci的数据,将这种这种类簇视为单一类别类簇,标记类簇类别为Ci;如图3所示,k-means算法步骤如下:
S311、随机选定K个数据样本作为聚类中心点;
S312、根据数据与聚类中心点的聚类,将每个数据分配至离自己最近的类簇;
S313、计算每个类簇中所有对象的均值作为该类簇的新聚类中心点;
S314、判断聚类中心是否变化,如果是转至步骤S312,如果否,聚类结束。
S32、对噪音点进行过滤,数据集中可能会存在部分因数据采集或数据处理过程不当而产生的噪音点,这些噪音点的数据特征与所标记类别的数据的特征有很大差异,在类簇中体现为与簇中其他数据类别不同且数量在簇中占比极小。由于这些噪音点无法准确体现类别特征,影响分类精度,因此本发明对这些噪音点进行过滤;
值得注意的是,由于数据的分布结构各异,部分处于类别边界的数据点可能会被划分到其他类簇中,这部分数据在混合类簇中的表现和噪音点是相似的。
为了区分上述两种数据,噪音点的判别标准如下:
其中{C1,C2,...,Cm}为k-means划分后含有混合类别数据的类簇集合,Ci(x)为类簇Ci中与数据点x同类别的的数据集合,ε为阈值参数。
我们忽略噪音点对类簇性质的影响,将只含有某一个类别Ci的数据和噪音点的混合类别类簇视为单一类别类簇,类簇的对应类别标记为Ci。
S33、将过滤后仍然含有多个类别数据的类簇合并为一个大的混合类簇,数据被划分为m个类簇,其中{C1,C2,…,Cm-1}为单一类簇,Cm为混合类簇,类簇向量用簇内向量的均值表示:
S34、训练SVM分类器,对于混合类簇Cm,训练对应的SVM分类器Sm用于预测数据类别;对于混合类簇Cm,训练对应的SVM(Support Vector Machine,支持向量机)分类器Sm用于预测数据类别。
支持向量机算法有很多优势,它通过引入核函数巧妙的解决了对于原始数据线性不可分这一难题。支持向量机的基本思想是在样本数据中训练出一个间隔最大化的线性分类器,其学习策略为间隔最大化,最终转化为求解一个凸二次规划问题。
训练SVM分类器的过程如下:
S341、支持向量机的建模过程;
如图4所示,分类超平面为ωTx+b=0,支持向量所在超平面与分类超平面的几何间隔为,则可以求出支持向量所在的超平面方程
对任意数据点(x(i),y(i))根据点到平面的距离关系有如下式子成立
所以支持向量所在的超平面可记为
S 342、支持向量机的目标函数;
训练支持向量机模型也就是求解下列二次规划问题,其中x(j)为支持向量
根据支持向量所在的超平面方程可知|ωTx(j)+b|=1故上述模型可以写成
s.ty(i)(ωTx(i)+b)≥1
即
s.t y(i)(ωTx(i)+b)≥1
支持向量机的目标函数一般写为对偶形式下的二次优化模型,为了不失一般性引入核函数,即求解下述问题
SVM算法的具体过程为:
(1)取初值α0=0,令k=0;
(5)计算bk+1和Ei;
S4、对模型进行预测,在模型预测阶段,将输入的数据分别输入各基学习器,在基学习器中,数据被划分到最近的类簇C中,如C为只含一种类别数据的单一类簇,则基学习器输出的预测类别为C类簇数据的类别;如C为混合类别类簇,则基学习器输出的预测为SVM分类器的输出类别,最后根据投票原则,基学习器输出类别中占多数的类别为最终预测类别。
综上所述,本申请提出的一个恶意代码检测方法,目的在于提高恶意代码分类的准确度,主要分为两步:
第一步:针对传统的恶意代码检测的特征抽取只关注Windows API出现的频率或API序列的上下文信息,本发明通过矩阵拼接的方式将二者进行结合,从而获取恶意代码动作序列的更多特征信息,提高了恶意代码特征的完备性,可以提高分类的准确度。
第二步:为了降低数据集的规模和复杂度,并考虑到噪音点对分类模型造成的过拟合等影响,本发明采用基于聚类的分类模型,在该模型中增加了过滤噪音点的步骤,进一步简化了分类数据集,提高了分类的准确率。
本实施例还提供了一种恶意代码检测系统,系统运行上述恶意代码检测方法,系统包括:特征抽取模块、特征矩阵获取模块、集成分类改进模型构造模块以及模型预测模块;
所述特征抽取模块,用于将每个恶意代码运行过程中的WindowsAPI动作序列视作一个具有上下文关系的文本,分别使用TF-IDF和Doc2vec进行特征抽取;TF-IDF是用来评估特定词语在语料库中重要程度,其中TF计算词语出现的频率,IDF用以衡量词语对于文本类型的区分度;
所述特征获取模块,用于在分别获得TF-IDF和Doc2vec特征矩阵后,将TF-IDF和Doc2vec抽取到的特征进行拼接,降维后获得恶意代码的特征矩阵;
所述集成分类改进模型构造模块,基于集成学习的思想,分别采用多个基学习器对数据集进行分类,并在最后采用投票的方式获得最终分类结果;
所述模型预测模块,用于对模型进行预测,在模型预测阶段,将输入的数据分别输入各基学习器,在基学习器中,数据被划分到最近的类簇C中,如C为只含一种类别数据的单一类簇,则基学习器输出的预测类别为C类簇数据的类别;如C为混合类别类簇,则基学习器输出的预测为SVM分类器的输出类别,最后根据投票原则,基学习器输出类别中占多数的类别为最终预测类别。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (10)
1.一种恶意代码检测方法,其特征在于,包括下述步骤:
S1、将每个恶意代码运行过程中的WindowsAPI动作序列视作一个具有上下文关系的文本,分别使用TF-IDF和Doc2vec进行特征抽取;TF-IDF是用来评估特定词语在语料库中重要程度,其中TF计算词语出现的频率,IDF用以衡量词语对于文本类型的区分度;TF-IDF算法流程具体为:
S11、计算每个Windows API函数在动作序列中出现的频率TF以及包含该Windows API的动作序列所占总数据集的比例IDF;
S12、根据TF和IDF计算Windows API函数在动作序列中的TF-IDF,将动作序列向量化;
Doc2vec是Word2vec的扩展,通过训练神经网络学习文本的特定长度向量表示,文本向量不仅包含了上下文信息,还包含了文本整体的语义信息;Doc2vec算法流程具体为:
S13、构建Doc2vec模型结构,并设置模型参数,
S14、训练Doc2vec模型,利用随机梯度下降和反向传播从已知的训练数据中学习词向量、模型参数以及文本向量;
S15、推断过程,按照设置的参数和步骤更新文本矩阵D,学习新文本的向量表示;
S2、在分别获得TF-IDF和Doc2vec特征矩阵后,将TF-IDF和Doc2vec抽取到的特征进行拼接,降维后获得恶意代码的特征矩阵;
S3、构造基于聚类的集成分类改进模型,该集成分类改进模型基于集成学习的思想,分别采用多个基学习器对数据集进行分类,并在最后采用投票的方式获得最终分类结果,所述集成分类改进模型训练,在每个基学习器中采用基于聚类的分块分类方法进行训练,具体流程如下:
S31、用k-means算法将数据划分为k个数据子集,K个类簇中有一部分类簇只含有一种类别Ci的数据,将这种这种类簇视为单一类别类簇,标记类簇类别为Ci;
S32、对噪音点进行过滤,过滤掉类簇中其他数据类别不同且数量在簇中占比极小的点;
S33、将过滤后仍然含有多个类别数据的类簇合并为一个大的混合类簇,数据被划分为m个类簇,其中{C1,C2,…,Cm-1}为单一类簇,Cm为混合类簇,类簇向量用簇内向量的均值表示:
S34、训练SVM分类器,对于混合类簇Cm,训练对应的SVM分类器Sm用于预测数据类别;
S4、对模型进行预测,在模型预测阶段,将输入的数据分别输入各基学习器,在基学习器中,数据被划分到最近的类簇C中,如C为只含一种类别数据的单一类簇,则基学习器输出的预测类别为C类簇数据的类别;如C为混合类别类簇,则基学习器输出的预测为SVM分类器的输出类别,最后根据投票原则,基学习器输出类别中占多数的类别为最终预测类别。
4.根据权利要求1所述恶意代码检测方法,其特征在于,步骤S11中,模型参数设置如下:
pt:从根节点出发到词t对应的的叶子节点的路径;
lt:路径pt中包含节点的个数;
对于词典中任意词t,Huffman树中必然存在唯一一条从根节点到t对应叶子节点的路径pt,路径pt上存在lt-1个分支,将每个分支看作一次二分类,则每一次分类对应一个概率,将这些概率连乘得到p(t|Context(t)):
6.根据权利要求1所述恶意代码检测方法,其特征在于,步骤S31中,k-means算法步骤如下:
S311、随机选定K个数据样本作为聚类中心点;
S312、根据数据与聚类中心点的聚类,将每个数据分配至离自己最近的类簇;
S313、计算每个类簇中所有对象的均值作为该类簇的新聚类中心点;
S314、判断聚类中心是否变化,如果是转至步骤S312,如果否,聚类结束。
8.根据权利要求1所述恶意代码检测方法,其特征在于,步骤S34中,训练SVM分类器的过程如下:
S341、支持向量机的建模过程;
分类超平面为ωTx+b=0,支持向量所在超平面与分类超平面的几何间隔为d,则可以求出支持向量所在的超平面方程
对任意数据点(x(i),y(i))根据点到平面的距离关系有如下式子成立
所以支持向量所在的超平面可记为
S 342、支持向量机的目标函数;
训练支持向量机模型也就是求解下列二次规划问题,其中x(j)为支持向量
根据支持向量所在的超平面方程可知|ωTx(j)+b|=1故上述模型可以写成
s.t y(i)(ωTx(i)+b)≥1
即
s.t y(i)(ωTx(i)+b)≥1
支持向量机的目标函数一般写为对偶形式下的二次优化模型,为了不失一般性引入核函数,即求解下述问题
10.一种恶意代码检测系统,其特征在于,包括特征抽取模块、特征矩阵获取模块、集成分类改进模型构造模块以及模型预测模块;
所述特征抽取模块,用于将每个恶意代码运行过程中的WindowsAPI动作序列视作一个具有上下文关系的文本,分别使用TF-IDF和Doc2vec进行特征抽取;TF-IDF是用来评估特定词语在语料库中重要程度,其中TF计算词语出现的频率,IDF用以衡量词语对于文本类型的区分度;
所述特征获取模块,用于在分别获得TF-IDF和Doc2vec特征矩阵后,将TF-IDF和Doc2vec抽取到的特征进行拼接,降维后获得恶意代码的特征矩阵;
所述集成分类改进模型构造模块,基于集成学习的思想,分别采用多个基学习器对数据集进行分类,并在最后采用投票的方式获得最终分类结果;
所述模型预测模块,用于对模型进行预测,在模型预测阶段,将输入的数据分别输入各基学习器,在基学习器中,数据被划分到最近的类簇C中,如C为只含一种类别数据的单一类簇,则基学习器输出的预测类别为C类簇数据的类别;如C为混合类别类簇,则基学习器输出的预测为SVM分类器的输出类别,最后根据投票原则,基学习器输出类别中占多数的类别为最终预测类别。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911270920.4A CN111143842B (zh) | 2019-12-12 | 2019-12-12 | 一种恶意代码检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911270920.4A CN111143842B (zh) | 2019-12-12 | 2019-12-12 | 一种恶意代码检测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111143842A true CN111143842A (zh) | 2020-05-12 |
CN111143842B CN111143842B (zh) | 2022-07-01 |
Family
ID=70518145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911270920.4A Active CN111143842B (zh) | 2019-12-12 | 2019-12-12 | 一种恶意代码检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111143842B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111797393A (zh) * | 2020-06-23 | 2020-10-20 | 哈尔滨安天科技集团股份有限公司 | 基于gpu恶意挖矿行为的检测方法与装置 |
CN111797398A (zh) * | 2020-06-28 | 2020-10-20 | 韩山师范学院 | 恶意代码可视化及变种检测方法、系统、设备及存储介质 |
CN112306494A (zh) * | 2020-12-03 | 2021-02-02 | 南京航空航天大学 | 一种基于卷积和循环神经网络的代码分类及聚类方法 |
CN112380535A (zh) * | 2020-11-13 | 2021-02-19 | 重庆科技学院 | 一种基于cbow的恶意代码三通道可视化识别方法 |
CN113055372A (zh) * | 2021-03-09 | 2021-06-29 | 重庆邮电大学 | 一种恶意软件的传播预测方法 |
CN113256555A (zh) * | 2021-03-26 | 2021-08-13 | 东北大学 | 一种基于机器学习的外观异常gui控件检测方法 |
CN113591084A (zh) * | 2021-07-26 | 2021-11-02 | 福州大学 | 基于电路路径语句的Transformer恶意芯片识别方法及系统 |
CN113704756A (zh) * | 2021-07-19 | 2021-11-26 | 广州大学 | 基于集成策略的挖矿型恶意代码鲁棒性检测方法、系统及介质 |
CN113918942A (zh) * | 2020-07-10 | 2022-01-11 | 深信服科技股份有限公司 | 一种安全文件的识别方法、装置、电子设备及存储介质 |
CN113971285A (zh) * | 2020-07-24 | 2022-01-25 | 深信服科技股份有限公司 | 一种终端恶意进程识别方法、装置、设备及可读存储介质 |
CN118332552A (zh) * | 2024-06-12 | 2024-07-12 | 北京辰信领创信息技术有限公司 | 恶意代码聚类方法、计算机装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070239638A1 (en) * | 2006-03-20 | 2007-10-11 | Microsoft Corporation | Text classification by weighted proximal support vector machine |
US20150310211A1 (en) * | 2014-04-28 | 2015-10-29 | Baidu Online Network Technology (Beijing) Co., Ltd | Method, apparatus and system for detecting malicious process behavior |
CN109614795A (zh) * | 2018-11-30 | 2019-04-12 | 武汉大学 | 一种事件感知的安卓恶意软件检测方法 |
CN109670311A (zh) * | 2019-03-01 | 2019-04-23 | 中科信息安全共性技术国家工程研究中心有限公司 | 基于高级语义的恶意代码分析与检测方法 |
CN109829302A (zh) * | 2018-12-28 | 2019-05-31 | 中国科学院信息工程研究所 | Android恶意应用家族分类方法、装置与电子设备 |
CN110458187A (zh) * | 2019-06-27 | 2019-11-15 | 广州大学 | 一种恶意代码家族聚类方法和系统 |
US20210319179A1 (en) * | 2017-08-14 | 2021-10-14 | Dathena Science Pte. Ltd. | Method, machine learning engines and file management platform systems for content and context aware data classification and security anomaly detection |
-
2019
- 2019-12-12 CN CN201911270920.4A patent/CN111143842B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070239638A1 (en) * | 2006-03-20 | 2007-10-11 | Microsoft Corporation | Text classification by weighted proximal support vector machine |
US20150310211A1 (en) * | 2014-04-28 | 2015-10-29 | Baidu Online Network Technology (Beijing) Co., Ltd | Method, apparatus and system for detecting malicious process behavior |
US20210319179A1 (en) * | 2017-08-14 | 2021-10-14 | Dathena Science Pte. Ltd. | Method, machine learning engines and file management platform systems for content and context aware data classification and security anomaly detection |
CN109614795A (zh) * | 2018-11-30 | 2019-04-12 | 武汉大学 | 一种事件感知的安卓恶意软件检测方法 |
CN109829302A (zh) * | 2018-12-28 | 2019-05-31 | 中国科学院信息工程研究所 | Android恶意应用家族分类方法、装置与电子设备 |
CN109670311A (zh) * | 2019-03-01 | 2019-04-23 | 中科信息安全共性技术国家工程研究中心有限公司 | 基于高级语义的恶意代码分析与检测方法 |
CN110458187A (zh) * | 2019-06-27 | 2019-11-15 | 广州大学 | 一种恶意代码家族聚类方法和系统 |
Non-Patent Citations (1)
Title |
---|
张涛: "基于文本嵌入特征表示的恶意软件家族分类", 《四川大学学报(自然科学版)》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111797393A (zh) * | 2020-06-23 | 2020-10-20 | 哈尔滨安天科技集团股份有限公司 | 基于gpu恶意挖矿行为的检测方法与装置 |
CN111797393B (zh) * | 2020-06-23 | 2023-05-23 | 安天科技集团股份有限公司 | 基于gpu恶意挖矿行为的检测方法与装置 |
CN111797398A (zh) * | 2020-06-28 | 2020-10-20 | 韩山师范学院 | 恶意代码可视化及变种检测方法、系统、设备及存储介质 |
CN111797398B (zh) * | 2020-06-28 | 2024-02-02 | 韩山师范学院 | 恶意代码可视化及变种检测方法、系统、设备及存储介质 |
CN113918942A (zh) * | 2020-07-10 | 2022-01-11 | 深信服科技股份有限公司 | 一种安全文件的识别方法、装置、电子设备及存储介质 |
CN113971285A (zh) * | 2020-07-24 | 2022-01-25 | 深信服科技股份有限公司 | 一种终端恶意进程识别方法、装置、设备及可读存储介质 |
CN112380535A (zh) * | 2020-11-13 | 2021-02-19 | 重庆科技学院 | 一种基于cbow的恶意代码三通道可视化识别方法 |
CN112380535B (zh) * | 2020-11-13 | 2022-04-19 | 重庆科技学院 | 一种基于cbow的恶意代码三通道可视化识别方法 |
CN112306494A (zh) * | 2020-12-03 | 2021-02-02 | 南京航空航天大学 | 一种基于卷积和循环神经网络的代码分类及聚类方法 |
CN113055372A (zh) * | 2021-03-09 | 2021-06-29 | 重庆邮电大学 | 一种恶意软件的传播预测方法 |
CN113256555A (zh) * | 2021-03-26 | 2021-08-13 | 东北大学 | 一种基于机器学习的外观异常gui控件检测方法 |
CN113704756A (zh) * | 2021-07-19 | 2021-11-26 | 广州大学 | 基于集成策略的挖矿型恶意代码鲁棒性检测方法、系统及介质 |
CN113591084A (zh) * | 2021-07-26 | 2021-11-02 | 福州大学 | 基于电路路径语句的Transformer恶意芯片识别方法及系统 |
CN113591084B (zh) * | 2021-07-26 | 2023-08-04 | 福州大学 | 基于电路路径语句的Transformer恶意芯片识别方法及系统 |
CN118332552A (zh) * | 2024-06-12 | 2024-07-12 | 北京辰信领创信息技术有限公司 | 恶意代码聚类方法、计算机装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111143842B (zh) | 2022-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111143842B (zh) | 一种恶意代码检测方法及系统 | |
US8280915B2 (en) | Binning predictors using per-predictor trees and MDL pruning | |
CN110929029A (zh) | 一种基于图卷积神经网络的文本分类方法及系统 | |
CN110569366A (zh) | 文本的实体关系抽取方法、装置及存储介质 | |
US20070094216A1 (en) | Uncertainty management in a decision-making system | |
CN110297988A (zh) | 基于加权LDA和改进Single-Pass聚类算法的热点话题检测方法 | |
EP4035082A1 (en) | Deep neural architectures for detecting false claims | |
WO2016177069A1 (zh) | 一种管理方法、装置、垃圾短信监控系统及计算机存储介质 | |
Huang et al. | Harmonious genetic clustering | |
CN114896305A (zh) | 一种基于大数据技术的智慧互联网安全平台 | |
CN112347223A (zh) | 文档检索方法、设备及计算机可读存储介质 | |
CN113627151B (zh) | 跨模态数据的匹配方法、装置、设备及介质 | |
Bonaccorso | Hands-on unsupervised learning with Python: implement machine learning and deep learning models using Scikit-Learn, TensorFlow, and more | |
CN110489997A (zh) | 一种基于模式匹配算法的敏感信息脱敏方法 | |
CN115688024A (zh) | 基于用户内容特征和行为特征的网络异常用户预测方法 | |
CN116402166B (zh) | 一种预测模型的训练方法、装置、电子设备及存储介质 | |
CN114707517B (zh) | 一种基于开源数据事件抽取的目标跟踪方法 | |
CN115473726A (zh) | 一种识别域名的方法及装置 | |
CN115495744A (zh) | 威胁情报分类方法、装置、电子设备及存储介质 | |
CN113516189A (zh) | 基于两阶段随机森林算法的网站恶意用户预测方法 | |
CN117520543A (zh) | 一种文本单类别分类方法、系统、计算机设备及存储介质 | |
CN112632000A (zh) | 日志文件聚类方法、装置、电子设备和可读存储介质 | |
CN116205296A (zh) | 一种融合自顶向下与自底向上的abac策略工程方法 | |
CN116204647A (zh) | 一种目标比对学习模型的建立、文本聚类方法及装置 | |
CN114707483B (zh) | 基于对比学习和数据增强的零样本事件抽取系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |