对恶意代码检测的方法及系统技术方案

技术编号:22330527 阅读:30 留言:0更新日期:2019-10-19 12:21
本发明专利技术涉及对恶意代码检测的方法及系统,方法包括:A.对训练数据集中单个PE文件的二进制数据提取相应特征;B.对所述特征降维处理;C.通过门控卷积网络提取二进制数据的特征为深度学习模型前半部分;D.将降维后的特征与步骤C得到的特征向量组合后,输入到作为深度学习模型后半部分的全连接神经网络中,生成最终的待分类特征向量;E.所有的PE文件都生成了对应的待分类特征向量;F.对所有待分类特征向量分类后与测试数据集中已知的类别进行比较以验证深度学习模型的正确性,并通过调整参数获得最优的深度学习模型。本发明专利技术能够不受恶意代码指令变换的影响,准确检测出未知软件中是否包含恶意代码,并且还提高了检测效率。

【技术实现步骤摘要】
对恶意代码检测的方法及系统
本专利技术涉及软件安全检测的方法和系统,具体讲是对恶意代码检测的方法及系统。
技术介绍
在反病毒研究与恶意代码的对抗过程中,恶意代码技术的不断发展也促使了恶意程序检测技术的不断发展与进步,新型恶意代码编写技术也导致了新型检测技术的出现。深度学习在计算机视觉和语音识别方面都取得了良好的效果。在计算机视觉方面,Krizhevsky等人提出了采用深度卷积神经网络来进行图片分类,Farabet提出了层次学习场景标签的方法,Kavukcuoglu提出了视觉功能的卷积识别方法。n-gram是自然语言处理领域的概念,早期的语音识别技术和统计语言模型与它密不可分。n-gram基于一个简单的假设,即认为一个词出现的概率仅与它之前的n-1个词有关,这个概率可从大量语料中统计得到。例如“吃”的后面出现“苹果”或“披萨”的概率就会比“公路”的概率大(正常的语料中基本不会出现“吃公路”这种组合)。可以看出n-gram在一定程度上包含了部分语言特征。将n-gram应用于恶意代码识别的想法最早由Tony等人在2004年的论文N-gram-basedDetectionofNewMaliciousCode中提出,不过他们的方法是基于ByteCode的。2008年Moskovitch等人的论文UnknownMalcodeDetectionUsingOPCODERepresentation中提出利用opcode(操作码)代替ByteCode更加科学。传统的基于机器学习进行恶意代码的检测分类方法基本都是进行精确检测,一般方式为提取恶意代码中具有相同点的opcode序列(操作码)作为特征,检测符合特征的恶意代码。而现今的反病毒是一个对抗的过程。众所周知,完成同样功能的opcode指令并不唯一,有些功能存在几个甚至十几个完成同样功能的指令。传统方法是提取精确的opcode指令序列,而一旦其中某个功能的指令被其他指令所替代,则无法检出,因此传统方法很难对抗这种指令变换的恶意代码。
技术实现思路
本专利技术提供了一种对恶意代码检测的方法及系统,可以不受恶意代码指令变换的影响,准确检测出软件中是否包含恶意代码,以解决现有技术中无法准确识别一个未知软件是否是恶意软件的问题。本专利技术对恶意代码检测的方法,包括步骤:A.预处理:将预先已获取的包含PE文件(PortableExecutable,可移植的可执行的文件)的训练数据集中具有恶意代码的PE文件和正常PE文件分开,对单个PE文件的二进制数据提取相应的特征,包括对应的操作码、API(应用程序接口)调用序列和PE文件头部字段;B.对所述特征通过层叠降噪自编码器进行降维处理,得到降维后的特征向量;C.将门控卷积网络作为深度学习模型的前半部分,通过门控卷积网络提取二进制数据的特征,作为深度学习模型前半部分的特征向量;D.将步骤B得到的降维后的特征向量输入到所述门控卷积网络中,与步骤C得到的深度学习模型前半部分的特征向量进行组合后,作为新的特征输入到作为深度学习模型后半部分的全连接神经网络中,生成最终的待分类特征向量;E.循环步骤A~步骤D,直到所有的PE文件都生成了对应的待分类特征向量;F.设置测试数据集,在测试数据集中包含正常PE文件和具有恶意代码的PE文件;将测试数据集中的PE文件通过步骤A~步骤E得到的所有待分类特征向量输入分类器进行分类,并将分类结果与测试数据集中已知的PE文件类别进行比较以验证深度学习模型的正确性是否达到期望值,并通过对所述门控卷积网络和全连接神经网络的参数调整获得最优化的深度学习模型。由于在对PE文件进行处理的时候,很多PE文件都会加壳(对可执行程序资源压缩、加密,压缩后的程序可以直接运行),所以导致不能直接看到其内部真正的指令,因此在特征提取之前需要对PE文件进行脱壳处理,从而获取PE文件真正执行时所获得的代码。因此,在步骤A中将训练数据集中具有恶意代码的PE文件和正常PE文件分开后,分别对单个PE文件进行查壳处理,例如通过PEID软件,并做标记,然后根据标记确定每类壳的脱壳工具,得到各PE文件的二进制数据。进一步的,步骤A中对得到PE文件的二进制数据进行反汇编,得到该PE文件反汇编后的汇编指令,该汇编指令为所述的操作码;将单个PE文件的操作码按照3-gram的形式依次组成相应的序列,计算每个序列的TF-IDF(termfrequency–inversedocumentfrequency,用以评估一个字词对于一份文件的重要程度);然后提取每个PE文件二进制数据的API调用序列和PE文件头部字段;每个序列的TF-IDF与对应的API调用序列以及PE文件头部字段组合为该PE文件的组合特征;步骤B中对所有PE文件的组合特征分别进行所述的降维处理。优选的,步骤B得到维度为30的指纹特征类型的特征向量。进一步的,步骤C中,将一个PE文件的二进制数据通过词嵌入算法生成一个embbding矩阵,将所述的embbding矩阵输入到门控卷积网络,通过门控卷积网络提取二进制数据的特征。门控卷积网络这也是目前处理大量文本型比较高效的神经网络。本专利技术还提供了一种用于上述方法的对恶意代码检测的系统,包括:预处理模块:用于获取PE文件的特征,包括操作码、API调用序列和PE文件头部字段;特征处理模块:用于接收预处理模块的输出,对所述特征通过层叠降噪自编码器进行降维处理,得到降维后的特征向量;深度学习建模模块:根据PE文件的二进制数据的特征和降维后的特征向量,通过门控卷积网络和全连接神经网络得到深度学习模型,并最终生成待分类特征向量;分类器:对深度学习建模模块生成的待分类特征向量分类。本专利技术对恶意代码检测的方法及系统的有益效果包括:1、能够准确得到二进制程序执行所需要的原始指令代码,不会因为代码混淆技术而使得结果发生偏差,不会受到恶意代码指令变换的影响,能够准确检测出软件中是否包含恶意代码。2、因为在同一个二进制文件中所使用指令代码都是同一种风格,不会出现不同指令表达同一个程序行为的情况,因此依据不同操作码、API调用以及PE文件头部字段计算得到的类别概率能够更准确的展现这个程序的风格,进而能够更准确的描述这个文件特征。3、通常一个二进制文件的二进制字节之间存在时序上的依赖关系,但是因为一个二进制的序列长度太长了,使用普通的循环神经网络进行判断会非常耗时;因此通过卷积神经网络进行并行处理,从而极大提升了对深度学习模型的训练及检测效率。4、使用深度学习作为训练方法,能够从大量的训练数据集中得到一个非常精准的模型。其中既使用了基于原始PE文件的二进制序列提取的特征,又使用了经额外概率统计算法提取并降维的指纹特征,即在用到局部特征的同时还自动学习到了全局特征,具有极高的检测精度。以下结合实施例的具体实施方式,对本专利技术的上述内容再作进一步的详细说明。但不应将此理解为本专利技术上述主题的范围仅限于以下的实例。在不脱离本专利技术上述技术思想情况下,根据本领域普通技术知识和惯用手段做出的各种替换或变更,均应包括在本专利技术的范围内。附图说明图1为本专利技术对恶意代码检测的系统的结构框图。图2为本专利技术对恶意代码检测的方法的路程图。具体实施方式因为所涉及的样本数据集的其中一部分是恶意程序,可能会对终端计算机产生危害本文档来自技高网
...

【技术保护点】
1.对恶意代码检测的方法,其特征包括步骤:A.预处理:将预先已获取的包含PE文件的训练数据集中具有恶意代码的PE文件和正常PE文件分开,对单个PE文件的二进制数据提取相应的特征,包括对应的操作码、API调用序列和PE文件头部字段;B.对所述特征通过层叠降噪自编码器进行降维处理,得到降维后的特征向量;C.将门控卷积网络作为深度学习模型的前半部分,通过门控卷积网络提取二进制数据的特征,作为深度学习模型前半部分的特征向量;D.将步骤B得到的降维后的特征向量输入到所述门控卷积网络中,与步骤C得到的深度学习模型前半部分的特征向量进行组合后,作为新的特征输入到作为深度学习模型后半部分的全连接神经网络中,生成最终的待分类特征向量;E.循环步骤A~步骤D,直到所有的PE文件都生成了对应的待分类特征向量;F.设置测试数据集,在测试数据集中包含正常PE文件和具有恶意代码的PE文件;将测试数据集中的PE文件通过步骤A~步骤E得到的所有待分类特征向量输入分类器进行分类,并将分类结果与测试数据集中已知的PE文件类别进行比较以验证深度学习模型的正确性是否达到期望值,并通过对所述门控卷积网络和全连接神经网络的参数调整获得最优化的深度学习模型。...

【技术特征摘要】
1.对恶意代码检测的方法,其特征包括步骤:A.预处理:将预先已获取的包含PE文件的训练数据集中具有恶意代码的PE文件和正常PE文件分开,对单个PE文件的二进制数据提取相应的特征,包括对应的操作码、API调用序列和PE文件头部字段;B.对所述特征通过层叠降噪自编码器进行降维处理,得到降维后的特征向量;C.将门控卷积网络作为深度学习模型的前半部分,通过门控卷积网络提取二进制数据的特征,作为深度学习模型前半部分的特征向量;D.将步骤B得到的降维后的特征向量输入到所述门控卷积网络中,与步骤C得到的深度学习模型前半部分的特征向量进行组合后,作为新的特征输入到作为深度学习模型后半部分的全连接神经网络中,生成最终的待分类特征向量;E.循环步骤A~步骤D,直到所有的PE文件都生成了对应的待分类特征向量;F.设置测试数据集,在测试数据集中包含正常PE文件和具有恶意代码的PE文件;将测试数据集中的PE文件通过步骤A~步骤E得到的所有待分类特征向量输入分类器进行分类,并将分类结果与测试数据集中已知的PE文件类别进行比较以验证深度学习模型的正确性是否达到期望值,并通过对所述门控卷积网络和全连接神经网络的参数调整获得最优化的深度学习模型。2.如权利要求1所述的对恶意代码检测的方法,其特征为:步骤A中将训练数据集中具有恶意代码的PE文件和正常PE文件分开后,分别对单个PE文件进行查壳处理,并做标记,然后根据标记确定每类壳的脱壳工具,得到各PE文件...

【专利技术属性】
技术研发人员:张小松牛伟纳赵凌园李子豪罗宇恒杨淳
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川,51

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

1