当前位置: 首页 > 专利查询>广州大学专利>正文

一种恶意代码检测方法及系统技术方案

技术编号:24122252 阅读:46 留言:0更新日期:2020-05-13 03:26
本发明专利技术公开了一种恶意代码检测方法及系统,方法包括:S1、将每个恶意代码运行过程中的WindowsAPI动作序列视作一个具有上下文关系的文本,分别使用TF‑IDF和Doc2vec进行特征抽取;S2、在分别获得TF‑IDF和Doc2vec特征矩阵后,将TF‑IDF和Doc2vec抽取到的特征进行拼接,降维后获得恶意代码的特征矩阵;S3、构造基于聚类的集成分类改进模型,采用多个基学习器对数据集进行分类,并在最后采用投票的方式获得最终分类结果,S4、在预测阶段将样本分别输入每个基学习器中与之最近的单一类别类簇/SVM分类器中并输出预测类别,最后根据投票原则,学习器输出类别中占多数的类别为最终预测类别。本发明专利技术将TF‑IDF和Doc2vec结合,不仅考虑恶意代码动作序列中API的频率,也考虑动作序列的上下文关联,提高恶意代码检测的准确性。

A malicious code detection method and system

【技术实现步骤摘要】
一种恶意代码检测方法及系统
本专利技术属于网络安全的
,具体涉及一种恶意代码检测方法及系统。
技术介绍
恶意代码检测一直是网络安全领域关注的焦点之一,木马病毒、蠕虫病毒、挖矿病毒、勒索病毒等恶意程序通过隐匿地注入和运行恶意代码,入侵系统、篡改文件、窃取信息等,对政府、企业、个人的隐私安全和财产安全有巨大威胁。随着恶意代码攻防技术之间不断对抗和升级,恶意代码的发展逐渐趋向多变种、高隐蔽性、数量多、更新快。目前对与恶意代码的分析技术可分为静态分析和动态分析,其中动态分析技术注重代码运行过程中的行为特征,较静态分析不受加壳、多态等影响,在恶意代码检测中被普遍应用。不同类型的恶意代码因其原理机制或获取权限的路径不同,代码特征呈现出多样化的特点,而部分隶属于同一家族的恶意代码及其变种则在代码特征上通常具有相似之处。基于上述特点,要利用机器学习从规模大、分布结构复杂、特征多样化的代码中检测出恶意代码,简单的分类算法已经不能满足需求,人们倾向于使用性能更高的智能检测模型来处理这一问题。现有技术中,Tian等人通过研究运行程序时的WindowsAPI调用日志来统计API调用的数量及特定的API调用频率提取代码特征,从而识别恶意程序和正常程序。ShifuHou、LifeiChen等人提出了一个基于聚类的恶意软件分类模型,该模型首先将数据集按不同的特征子集划分为多个基学习器,在每个学习器中利用k-means聚类算法将数据集划分为多个单一类别的类簇和一个混合类别的类簇并对混合类别类簇的数据训练相应的SVM分类器,最后将多个学习器用简单投票的方式进行集成。但是,Tian等人提出的模型只关注了WindowsAPI的数量和频率,而没有考虑API调用序列中包含的上下文关系,丢失了数据的部分特征。ShifuHou等人提出的模型将聚类后包含多种类别数据的类簇合并为一个大的混合类簇,这些类簇中有一部分是由于数据分布为非球状簇或类别边界模糊而导致类簇之间掺杂了彼此的部分数据点,但也有一部分类簇是由于包含少量异常点或噪音点而导致纯度降低。对于后者,混合类簇对应的数据子集往往数据分布高度不平衡,且在类簇合并后并无明显改善,在这种情况下,小样本数据分类易导致过拟合,并且这些在采集过程中产生的噪音点也有可能影响分类的准确度。因此,应根据不同的情况对这类混合类簇进行过滤等不同操作。
技术实现思路
本专利技术的主要目的在于克服现有技术的缺点与不足,提供一种恶意代码检测方法及系统,本专利技术采用了TF-IDF和Doc2vec结合的方法,并基于聚类的分类方法进一步提高恶意代码检测的准确性。为了达到上述目的,本专利技术采用以下技术方案:一种恶意代码检测方法,包括下述步骤:S1、将每个恶意代码运行过程中的WindowsAPI动作序列视作一个具有上下文关系的文本,分别使用TF-IDF和Doc2vec进行特征抽取;TF-IDF是用来评估特定词语在语料库中重要程度,其中TF计算词语出现的频率,IDF用以衡量词语对于文本类型的区分度;TF-IDF算法流程具体为:S11、计算每个WindowsAPI函数在动作序列中出现的频率TF以及包含该WindowsAPI的动作序列所占总数据集的比例IDF;S12、根据TF和IDF计算WindowsAPI函数在动作序列中的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中包含节点的个数;路径pt中的lt个节点,其中表示根节点,表示词t对应的叶子节点;其中d∈{0,1}:词t对应的Huffman编码代表路径pt中第j个节点对应的编码(根节点不对应编码);其中路径pt中非叶子节点对应的向量,表示路径pt中第j个非叶子节点对应的向量;对于词典中任意词t,Huffman树中必然存在唯一一条从根节点到t对应叶子节点的路径pt,路径pt上存在lt-1个分支,将每个分支看作一次二分类,则每一次分类对应一个概率,本文档来自技高网
...

【技术保护点】
1.一种恶意代码检测方法,其特征在于,包括下述步骤:/nS1、将每个恶意代码运行过程中的WindowsAPI动作序列视作一个具有上下文关系的文本,分别使用TF-IDF和Doc2vec进行特征抽取;TF-IDF是用来评估特定词语在语料库中重要程度,其中TF计算词语出现的频率,IDF用以衡量词语对于文本类型的区分度;TF-IDF算法流程具体为:/nS11、计算每个Windows API函数在动作序列中出现的频率TF以及包含该Windows API的动作序列所占总数据集的比例IDF;/nS12、根据TF和IDF计算Windows API函数在动作序列中的TF-IDF,将动作序列向量化;/nDoc2vec是Word2vec的扩展,通过训练神经网络学习文本的特定长度向量表示,文本向量不仅包含了上下文信息,还包含了文本整体的语义信息;Doc2vec算法流程具体为:/nS13、构建Doc2vec模型结构,并设置模型参数,/nS14、训练Doc2vec模型,利用随机梯度下降和反向传播从已知的训练数据中学习词向量、模型参数以及文本向量;/nS15、推断过程,按照设置的参数和步骤更新文本矩阵D,学习新文本的向量表示;/nS2、在分别获得TF-IDF和Doc2vec特征矩阵后,将TF-IDF和Doc2vec抽取到的特征进行拼接,降维后获得恶意代码的特征矩阵;/nS3、构造基于聚类的集成分类改进模型,该集成分类改进模型基于集成学习的思想,分别采用多个基学习器对数据集进行分类,并在最后采用投票的方式获得最终分类结果,所述集成分类改进模型训练,在每个基学习器中采用基于聚类的分块分类方法进行训练,具体流程如下:/nS31、用k-means算法将数据划分为k个数据子集,K个类簇中有一部分类簇只含有一种类别Ci的数据,将这种这种类簇视为单一类别类簇,标记类簇类别为Ci;/nS32、对噪音点进行过滤,过滤掉类簇中其他数据类别不同且数量在簇中占比极小的点;/nS33、将过滤后仍然含有多个类别数据的类簇合并为一个大的混合类簇,数据被划分为m个类簇,其中{C...

【技术特征摘要】
1.一种恶意代码检测方法,其特征在于,包括下述步骤:
S1、将每个恶意代码运行过程中的WindowsAPI动作序列视作一个具有上下文关系的文本,分别使用TF-IDF和Doc2vec进行特征抽取;TF-IDF是用来评估特定词语在语料库中重要程度,其中TF计算词语出现的频率,IDF用以衡量词语对于文本类型的区分度;TF-IDF算法流程具体为:
S11、计算每个WindowsAPI函数在动作序列中出现的频率TF以及包含该WindowsAPI的动作序列所占总数据集的比例IDF;
S12、根据TF和IDF计算WindowsAPI函数在动作序列中的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分类器的输出类别,最后根据投票原则,基学习器输出类别中占多数的类别为最终预测类别。


2.根据权利要求1所述恶意代码检测方法,其特征在于,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。


3.根据权利要求1所述恶意代码检测方法,其特征在于,步骤S11中,所述构建Doc2vec模型结构共分为三层:输入层、投影层、输出层,
输入层包括2k个词的词向量w(t-k),…,w(t-1),w(t+1),…,w(t+k)和1个文本向量w(d),其中k为给定的滑动窗口大小;
投影层将输入的2k+1个词向量做求和平均处理:



输出层对应一棵Huffman树,Huffman树的每个叶子节点对应一个词,词频高的词在Huffman树中的深度比词频低的词更小。


4.根据权利要求1所述恶意代码检测方法,其特征在于,步骤S11中,模型参数设置如下:
pt:从根节点出发到词t对应的的叶子节点的路径;
lt:路径pt中包含节点的个数;

路径pt中的lt个节点,其中表示根节点,表示词t对应的叶子节点;

其中d∈{0,1}:词t对应的Huffman编码代表路径pt中第j个节点对应的编码(根节点不对应编码);

其中路径pt中非叶子节点对应的向量,表示路径pt中第j个非叶子节点对应的向量;
对于词典中任意词t,Huffman树中必然存在唯一一条从根节点到t对应叶子节点的路径pt,路径pt上存在lt-1个分支,将每个分支看作一次二分类,则每一次分类对应一个概率,将这些概率连乘得到p(t|Context(t)):






其中通过对数极大似然化处理可得模型目标函数为:



和Word2vec一样,Doc2vec极大化目标函数使用的算法是随机梯度上升法,关于的梯度计算如下:



则的更新公式为:


...

【专利技术属性】
技术研发人员:范美华李树栋吴晓波韩伟红杨航锋付潇鹏方滨兴田志宏殷丽华顾钊铨仇晶李默涵唐可可
申请(专利权)人:广州大学
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1