一种基于深度学习的恶意样本程序分类方法及系统与流程

文档序号:15115705发布日期:2018-08-07 20:03阅读:164来源:国知局

本发明涉及信息安全技术,具体涉及一种基于深度学习的恶意样本程序分类方法及系统。



背景技术:

近年来,根据不同杀毒软件厂商的调查报告,不同种类的恶意软件正在成倍的增长。所谓的恶意软件,指的是旨在破坏计算机系统或者在计算机系统上执行不良行为的软件程序,如中断计算机操作,收集敏感信息,绕过访问控制,非法访问私人计算机以及显示各种广告信息等。根据样本的不同目的可以将其分为不同种类的恶意软件,目前常见的恶意软件家族分类有:广告、间谍、病毒、蠕虫、木马、后门、勒索等。mcafee最近的报告显示,每天都有数以万计的新的病毒样本被提交。同时,根据virustotal的统计页面显示,仅在一天之内,就有超过百万的样本需要进行分析。造成这一现象的原因之一是,为了逃避检测,病毒制作者开始使用各种多态及变形技术。

目前,恶意软件的检测主要是基于启发式和基于签名的方法。基于签名的检测技术主要基于模式匹配的思想,为每种已知恶意代码产生一个唯一的签名特征标记来创建恶意代码库。这种技术无疑需要不断人为去更新签名库。而基于启发式的检测技术主要是基于动态分析专家确定的一些规则,它可以处理一些未知的恶意软件。但由于并不是每一个被检测的可疑文件都是恶意软件,因此它也比基于签名的检测方法产生更多的误报。

恶意软件样本的数量和种类的增加扩大了对恶意软件变体的自动检测和分类的改进需求。机器学习是应对这种增长的自然选择,因为它解决了在大规模数据集中发现潜在模式的需求。而目前,神经网络方法已经发展到可以超越以前的机器学习方法,如隐马尔可夫模型和支持向量机的局限性。因此,神经网络现在可以在诸如计算机视觉或自然语言处理等许多领域提供出色的分类准确性。这种改进来自于构建具有更多潜在不同层次的神经网络的可能性,并被称为深度学习。



技术实现要素:

本发明的目的在于提供一种基于深度学习的恶意样本程序分类方法及系统,基于当前主流的深度学习的模型和算法,组合cnn卷积神经网络以及lstm长短期记忆神经网络,通过构建神经网络模型,提取样本程序对系统api的操作序列信息并进行数值化向量转换,得出恶意样本的家族分类结果。

为实现上述目的,本发明的技术方案为:一种基于深度学习的恶意样本程序分类方法,所述分类方法包括:将收集的恶意程序集分别通过虚拟沙箱环境进行运行分析,针对每一个恶意程序样本生成对应的样本报告,对样本报告分别解析并提取特征信息,生成相应的数值化特征向量,将数值化特征向量输入神经网络模型中进行训练。

如上所述的一种基于深度学习的恶意样本程序分类方法,提交至虚拟沙箱环境运行分析后的样本生成json格式的样本报告,所述样本报告包括api行为信息、网络行为信息和注册表操作信息。

如上所述的一种基于深度学习的恶意样本程序分类方法,将采集到的恶意程序集分别提交至病毒分析系统进行分析,在分析结果中,取反病毒引擎的扫描结果作为该样本程序的家族标记,在反病毒引擎扫描结果均不相同的情况下,由人工对样本程序进行分析并标记家族信息。

如上所述的一种基于深度学习的恶意样本程序分类方法,将样本程序对系统api的调用序列信息传入神经网络模型之前,提取api序列的变长n-gram作为特征并删除api信息重复大于2次的子序列。

如上所述的一种基于深度学习的恶意样本程序分类方法,将api序列输入神经网络模型之前,通过one-hot编码,将每一个api序列表示成1*n的行向量,n为统计的所有样本报告中不重复的api的个数。

如上所述的一种基于深度学习的恶意样本程序分类方法,所述神经网络模型包括cnn卷积神经网络模型和lstm长短期记忆网络模型,cnn卷积神经网络模型包含卷积层和池化层,神经网络模型将已经数值化特征向量的数据输入给cnn卷积神经网络模型,cnn卷积神经网络的输出作为一个序列,输入给包含若干个lstm单元的模型,长短期记忆网络模型的输出端连接有均值池化层,所述均值池化层后连接有dropout层,长短期记忆网络模型通过softmax多分类器,识别出样本程序的家族分类结果。

本发明还提供一种基于深度学习的恶意样本程序分类系统,所述分类系统包括恶意程序收集单元、沙箱运行分析单元、报告解析处理单元和神经网络训练单元,所述恶意程序收集单元用于对恶意程序集进行收集,恶意程序收集单元与所述沙箱运行分析单元建立连接关系,恶意程序收集单元将收集的恶意程序集输送至所述沙箱运行分析单元;所述沙箱运行分析单元用于对每个恶意程序集中的样本程序进行分析并生成的样本报告,所述沙箱运行分析单元与所述报告解析处理单元建立连接关系,沙箱运行分析单元将生成的样本报告输送至所述报告解析处理单元;所述报告解析处理单元用于对样本报告进行解析并提取特征信息,所述报告解析处理单元与所述神经网络训练单元建立连接关系;所述神经网络训练单元用于对输入神经网络模型中的特征信息进行训练,识别恶意程序家族分类结果。

如上所述的一种基于深度学习的恶意样本程序分类系统,所述报告解析处理单元包括api信息处理模块,所述api信息处理模块用于提取样本报告中api序列的变长n-gram作为特征,并删除api信息重复大于2次的子序列;所述报告解析处理单元还包括api序列数值化模块,所述api序列数值化模块通过one-hot编码,将api信息序列表示成1*n的行向量。

如上所述的一种基于深度学习的恶意样本程序分类系统,所述神经网络训练单元连接有归一化单元,所述归一化单元用于恶意程序的分类和归一化。

本发明通过收集带有病毒分类标记的恶意程序集,利用虚拟沙箱环境运行分析,并生成相应的样本报告,从样本报告中提取样本行为信息作为特征集,并将特征集进行数值向量化处理,组合cnn卷积神经网络和lstm长短期记忆神经网络,构建神经网络模型,提取样本程序对系统api的操作序列信息并进行数值化向量转换,输入该模型,从而得出恶意样本的家族分类结果。本发明结合各种深度学习模型的优势和特点,能够准确识别恶意样本所属的类别,提高了对恶意样本识别的效率和准确率。

附图说明

图1为基于深度学习的恶意样本程序分类方法流程图;

图2为基于深度学习的恶意样本程序分类方法api信息处理示意图;

图3为基于深度学习的恶意样本程序分类方法api信息数值化示意图;

图4为基于深度学习的恶意样本程序分类方法中神经网络模型拓扑结构示意图;

图5为基于深度学习的恶意样本程序分类系统示意图。

具体实施方式

以下实施例用于说明本发明,但不用来限制本发明的范围。

如图1所示,一种基于深度学习的恶意样本程序分类方法,所述分类方法包括:将收集的恶意程序集分别通过虚拟沙箱环境进行运行分析,针对每一个恶意程序样本生成对应的样本报告,对样本报告分别解析并提取特征信息,生成相应的数值化特征向量,将数值化特征向量输入神经网络模型中进行训练。本发明基于深度学习的模型和算法,将采集的恶意程序集提交至虚拟沙箱环境,针对每一个样本程序运行分析后的报告,分别解析并提取特征信息,生成相应的数值化特征向量后,输入构建的神经网络模型中进行训练,最终达到识别恶意程序家族分类结果。本发明中所述家族分类结果可分为广告、间谍、病毒、蠕虫、木马、后门、勒索七个类别。

基于深度学习的恶意样本程序分类方法的一个实施例中,提交至虚拟沙箱环境运行分析后的样本生成json格式的样本报告,所述样本报告包括api行为信息、网络行为信息和注册表操作信息。本发明中,将收集的恶意程序集分别提交至虚拟沙箱环境进行运行分析,针对每一个样本都会生成一份json格式的样本报告。样本报告中收集了样本运行过程中对操作系统各种资源的操作,诸如api行为信息、网络行为信息、注册表操作信息等。本发明主要关注并利用了api行为信息,解析报告,并基于线程,提取出样本对系统api的调用序列信息作为特征。与此同时,由于本发明的目的最终是对样本程序进行分类识别,也就是传统意义上的监督学习,因此需要对样本程序进行类别标记。为此将采集到的恶意程序集分别提交至病毒分析系统进行分析,在分析结果中,取多数反病毒引擎的扫描结果作为该样本程序的家族标记。若遇到多数反病毒引擎扫描结果均不相同的情况,则由人工对样本进行分析并标记样本程序的家族信息。

基于深度学习的恶意样本程序分类方法的一个实施例中,将采集到的恶意程序集分别提交至病毒分析系统进行分析,在分析结果中,取反病毒引擎的扫描结果作为该样本程序的家族标记,在反病毒引擎扫描结果均不相同的情况下,由人工对样本程序进行分析并标记家族信息。

参见图2,基于深度学习的恶意样本程序分类方法的一个实施例中,将样本程序对系统api的调用序列信息传入神经网络模型之前,提取api序列的变长n-gram作为特征并删除api信息重复大于2次的子序列。在将样本对系统api的调用序列信息传入神经网络之前,提取api序列的变长n-gram作为特征并删除api信息重复多次的子序列。本发明实施例中,主要对api序列进行3-grams提取,因此在形成子序列之前,剔除重复的api信息,保证相连的api序列中,同一个api最多只出现2次。如序列中api001连续出现了3次,删除一次,最终只保留两次,基于处理后的api序列再进行3-grams提取。

参见图3,基于深度学习的恶意样本程序分类方法的一个实施例中,将api序列输入神经网络模型之前,通过one-hot编码,将每一个api序列表示成1*n的行向量,n为统计的所有样本报告中不重复的api的个数。在将api序列输入神经网络模型之前,需要将序列进行数值化。本发明中,使用one-hot编码,将每一个api最终表示成1*n的行向量,其中n是统计的所有样本报告中不重复的api的个数。本发明实施例中所有样本报告统计的不重复的api个数为75个,故n即为75。

基于深度学习的恶意样本程序分类方法的一个实施例中,所述神经网络模型包括cnn卷积神经网络模型和lstm长短期记忆网络模型,cnn卷积神经网络模型包含卷积层和池化层,神经网络模型将已经数值化特征向量的数据输入给cnn卷积神经网络模型,cnn卷积神经网络的输出作为一个序列,输入给包含若干个lstm单元的模型,长短期记忆网络模型的输出端连接有均值池化层,所述均值池化层后连接有dropout层,长短期记忆网络模型通过softmax多分类器,识别出样本程序的家族分类结果。

参见图4,本发明结合cnn卷积神经网络和lstm长短期记忆网络各自的特点,并将二者组合,构建能够识别样本家族信息的网络拓扑模型。cnn卷积神经网络能够捕获相邻输入向量之间的相关性,并产生新的特征,属于一种空间意义上的扩展模型。而lstm模型具有一定的记忆效应,适用于序列数据,属于一种时间意义上的扩展模型。而本发明中,样本对系统api的调用即存在先后顺序关系,lstm模型能够记忆api调用的顺序依赖关系。因此,结合二者模型特点,本发明构建了cnn+lstm模型。在该模型中,首先将已经向量化的数据输入给cnn卷积神经网络,其中包含一个卷积层和一个池化层。由于对api序列进行了3-grams的提取,因此,卷积核为一个3*75的二维矩阵。为了减少特征数据的维度,紧接着卷积层之后为最大池化层,并采用了最大值区域采样,过滤窗口为2*2,将数据的维度降低了一倍。随后将卷积神经网络的输出作为一个序列,并输入给包含若干个lstm单元的模型。同时,在lstm模型的输出端连接了一个均值池化层。均值池化层的作用主要是为了从lstm的输出中提取出相对最重要的特征信息。为了防止过拟合,均值池化层后连接了一个dropout层。最后,使用softmax多分类器,并结合交叉熵损失函数,反复训练,最终识别出样本的家族分类结果。

参见图5,本发明还提供一种基于深度学习的恶意样本程序分类系统,所述分类系统包括恶意程序收集单元1、沙箱运行分析单元2、报告解析处理单元3和神经网络训练单元4,所述恶意程序收集单元1用于对恶意程序集进行收集,恶意程序收集单元1与所述沙箱运行分析单元2建立连接关系,恶意程序收集单元1将收集的恶意程序集输送至所述沙箱运行分析单元2;所述沙箱运行分析单元2用于对每个恶意程序集中的样本程序进行分析并生成的样本报告,所述沙箱运行分析单元2与所述报告解析处理单元3建立连接关系,沙箱运行分析单元2将生成的样本报告输送至所述报告解析处理单元3;所述报告解析处理单元3用于对样本报告进行解析并提取特征信息,所述报告解析处理单元3与所述神经网络训练单元4建立连接关系;所述神经网络训练单元4用于对输入神经网络模型中的特征信息进行训练,识别恶意程序家族分类结果。

基于深度学习的恶意样本程序分类系统的一个实施例中,所述报告解析处理单元3包括api信息处理模块301,所述api信息处理模块301用于提取样本报告中api序列的变长n-gram作为特征,并删除api信息重复大于2次的子序列;所述报告解析处理单元3还包括api序列数值化模块302,所述api序列数值化模块302通过one-hot编码,将api信息序列表示成1*n的行向量。

基于深度学习的恶意样本程序分类系统的一个实施例中,所述神经网络训练单元4连接有归一化单元5,所述归一化单元5用于恶意程序的分类和归一化。

本发明通过收集带有病毒分类标记的恶意程序集,利用虚拟沙箱环境运行分析,并生成相应的样本报告,从样本报告中提取样本行为信息作为特征集,并将特征集进行数值向量化处理,组合cnn卷积神经网络和lstm长短期记忆神经网络,构建神经网络模型,提取样本程序对系统api的操作序列信息并进行数值化向量转换,输入该模型,从而得出恶意样本的家族分类结果。本发明结合各种深度学习模型的优势和特点,能够准确识别恶意样本所属的类别,提高了对恶意样本识别的效率和准确率。

虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1