一种优化特征提取的恶意软件分类方法技术

技术编号:21247544 阅读:46 留言:0更新日期:2019-06-01 07:43
本发明专利技术属于信息安全领域,具体涉及一种优化特征提取的恶意软件分类方法。本发明专利技术优化了恶意软件的提取方式并且以深度学习中的卷积神经网络为主要分类器。单一的静态特征无法全面地体现恶意软件的特征,比如灰度图仅能表示恶意软件的整体轮廓,API调用图仅能表示恶意软件的控制结构。针对以上问题,本发明专利技术方法提取了这两种特征,并且将这两种特征组合成一张双通道图片特征矩阵作为卷积神经网络的输入,这样既可以将恶意软件的整体轮廓表现出来,也可以将恶意软件可能执行的流程完整的表现出来。本发明专利技术方法有效地解决了样本特征提取时不能完整体现恶意软件本身的情况,并且具有较好的分类效果。

A Malware Classification Method for Optimizing Feature Extraction

The invention belongs to the field of information security, and specifically relates to a malware classification method for optimizing feature extraction. The invention optimizes the extraction method of malware and takes convolutional neural network in deep learning as the main classifier. Single static features can not fully reflect the characteristics of malicious software, such as gray-scale image can only represent the overall outline of malicious software, API call graph can only represent the control structure of malicious software. To solve the above problems, the method of the present invention extracts these two features and combines them into a two-channel picture feature matrix as input of convolution neural network, which can not only show the overall outline of malware, but also show the possible execution process of malware. The method of the invention effectively solves the problem that the malware itself can not be fully reflected when extracting sample features, and has good classification effect.

【技术实现步骤摘要】
一种优化特征提取的恶意软件分类方法
本专利技术属于信息安全领域,具体涉及一种优化特征提取的恶意软件分类方法。
技术介绍
恶意软件是指各种形式的恶意或者入侵软件,例如计算机病毒、蠕虫、间谍软件、木马、广告软件等。这些恶意软件通常以可执行程序、脚本等形式存在。在计算机系统安全领域,一个重要问题是进行恶意软件的检测与识别,以便能在恶意软件运行之前将其清除,避免给计算机系统造成破坏或者给用户造成损失。不仅仅黑帽黑客或者其他怀有恶意的软件作者,即使是信用良好的供应商提供的软件也可能包含恶意代码。比如索尼曾经在其出售的唱片中植入了Rootkit。这是一种特洛伊木马,它静默安装并隐藏在购买者的计算机上,目的是防止唱片被非法复制。它还收集用户的聆听习惯,并无意中创建了可以被其他恶意软件所利用的漏洞。恶意软件检测现今面临的主要挑战是需要对大量有潜在恶意目的的数据和文件进行评估。例如,微软的实时检测反恶意软件产品部署在全球超过1.6亿台计算机上,每天会产生数千万个数据点,需要作为潜在的恶意软件进行分析。传统的反病毒和恶意软件检测产品通常使用特征值扫描技术,这种方法有很大的局限性。越来越多的恶意软件通过加密、混淆或者打包等方法躲避基于特征值的检测,这给传统的恶意软件分析和检测方法带来挑战。恶意软件检测问题可以通过分类良性软件和恶意软件来解决,因此,研究高效的恶意软件分类方法对恶意软件分析技术具有极为重要的意义。然而,传统的恶意软件检测方法通常使用数字签名技术,在应对恶意软件数量激增的情况时存在一定的局限性。同时,越来越多的恶意软件通过混淆或打包等技术避免基于签名方法的检测。因此,需要研究一种高效的恶意软件检测方法评估和识别存在恶意行为的恶意软件。
技术实现思路
针对上述
技术介绍
中存在的问题,本专利技术的目的在于提出一种基于深度学习的优化特征提取的恶意软件分类方法,是一种提高恶意软件分类准确率的方法,是一种优化恶意软件特征提取并用卷积神经网络分类的高效分类方法。本专利技术的目的是这样实现的:一种优化特征提取的恶意软件分类方法,包括以下步骤:(1)原始数据特征处理,建立恶意代码的整体API调用图存储在邻接矩阵数据结构中;(2)将原始恶意软件二进制文件样本转化为十六进制流格式,将恶意软件二进制文件转化为灰度图特征矩阵;(3)将API调用图矩阵作为一个像素通道,将灰度图矩阵作为一个像素通道,如果这两个矩阵大小不同,则将小的那个矩阵的左边界和上边界与大矩阵对齐,其余位置上补0,然后合并为双通道特征图作为卷积神经网络的输入;(4)原始数据集中的样本都带有标签,首先将所有样本的特征矩阵每一行进行随机乱序排列,根据乱序排列数组,将标签对应追加到样本矩阵的最后一列,这样就完成了带有标签的样本乱序处理,再将所有样本进行数据集拆分,一部分作为训练样本,其余的作为测试样本,再对训练样本做交叉验证,将训练样本分成k分并且编号,取k-1份组合数据集作为训练样本,剩下1份作为验证数据集;(5)将k-1份数据中的每个样本都做双通道卷积处理,得到每个样本对应的特征图,再将特征图做最大池化处理,得到新的特征图,将新的特征图全连接并且输入到神经网络中,得到分类结果,将输出的分类结果和原始标签值代入交叉熵损失函数并利用反向传播算法多次迭代求出最佳的卷积核矩阵和最佳的神经网络权重矩阵,k次交叉验证后得到k个模型;(6)将测试数据集输入到交叉验证得到的k个模型当中,每个模型都给出样本的分类结果,最终投票得到样本的最终分类结果。原始数据特征处理包括以下过程:用IDApro反汇编所有恶意软件样本,恶意代码的二进制文件经过反汇编得到其对应的汇编代码,将汇编代码按照基本块进行划分,分别扫描每个基本块,选取包含call指令的语句以及包含跳转指令的语句,包括jz、jmp、jnz等,call指令调用的函数分为两类,自定义函数和API,如果调用目标为自定义函数,则进入该自定义函数内部,继续扫描其内部汇编语句,筛选其内部API,筛选结束后,根据API执行的先后顺序和跳转指令的跳转结构,将不同函数以及不同基本块中API连接,建立恶意代码的整体API调用图存储在邻接矩阵数据结构中。本专利技术的有益效果在于:本方法提高了在恶意软件分类的准确率和F1分数,而且降低了误报率;有效地解决了样本特征提取时不能完整体现恶意软件本身的情况,并且具有较好的分类效果。附图说明图1为本专利技术方法流程图;图2是合并API调用图和灰度图方法;图3是双通道卷积过程图;图4是合并为双通道输入过程图;图5是交叉验证过程图。具体实施方式下面结合附图对本专利技术进一步详细说明。结合图1,本方法的执行过程分为以下几个步骤:1.原始数据特征处理:用IDApro反汇编所有恶意软件样本,恶意代码的二进制文件经过反汇编得到其对应的汇编代码,将汇编代码按照基本块进行划分,分别扫描每个基本块,选取包含call指令的语句以及包含跳转指令的语句,如jz、jmp、jnz等。call指令调用的函数分为两类,自定义函数和API。如果调用目标为自定义函数,则进入该自定义函数内部,继续扫描其内部汇编语句,筛选其内部API。筛选结束后,根据API执行的先后顺序和跳转指令的跳转结构,将不同函数以及不同基本块中API连接,建立恶意代码的整体API调用图存储在邻接矩阵数据结构中。将邻接矩阵转化为numpy中的二维数组类型。2.将原始恶意软件二进制文件样本转化为十六进制流格式。一位十六进制数值大小的范围是0到15,将两个十六进制位作为一个数值,其大小范围是0到255,恰好可以作为灰度图像的像素值。并且为便于后续字节提取,在每个数值后插入空格作为分割符。将恶意软件二进制文件转化为灰度图特征矩阵。3.将API调用图矩阵作为一个像素通道,将灰度图矩阵作为一个像素通道,如果这两个矩阵大小不同,则将小的那个矩阵的左边界和上边界与大矩阵对齐,其余位置上补0,然后合并为双通道特征图作为卷积神经网络的输入,如图2所示。4.原始数据集中的样本都带有标签,首先将所有样本的特征矩阵每一行进行随机乱序排列,根据乱序排列数组,将标签对应追加到样本矩阵的最后一列,这样就完成了带有标签的样本乱序处理。再将所有样本进行数据集拆分,取前80%作为训练样本,后20%作为测试样本。在对前80%训练样本做交叉验证k-foid,将训练样本分成k分并且编号,取k-1份组合数据集作为训练样本,剩下1份作为验证数据集,如图5所示。5.将k-1份数据中的每个样本都做双通道卷积处理,如图3所示。得到每个样本对应的特征图,再将特征图做最大池化处理MaxPooling,得到新的特征图,将新的特征图全连接并且输入到神经网络中,得到分类结果,如图4所示。将输出的分类结果和原始标签值代入交叉熵损失函数并利用反向传播算法多次迭代求出最佳的卷积核矩阵和最佳的神经网络权重矩阵。k次交叉验证后得到k个模型。6.将测试数据集输入到交叉验证得到的k个模型当中,每个模型都给出样本的分类结果,最终投票得到样本的最终分类结果,如图5所示。经过上述6个步骤之后,形成了基于深度学习并且改进了特征提取方式的恶意软件分类方法。本方法提高了在恶意软件分类的准确率和F1分数,而且降低了误报率。以上是本专利技术的较佳实施方式,但本专利技术的保护范围并不仅仅局限在此,任何本文档来自技高网
...

【技术保护点】
1.一种优化特征提取的恶意软件分类方法,其特征在于,包括以下步骤:(1)原始数据特征处理,建立恶意代码的整体API调用图存储在邻接矩阵数据结构中;(2)将原始恶意软件二进制文件样本转化为十六进制流格式,将恶意软件二进制文件转化为灰度图特征矩阵;(3)将API调用图矩阵作为一个像素通道,将灰度图矩阵作为一个像素通道,如果这两个矩阵大小不同,则将小的那个矩阵的左边界和上边界与大矩阵对齐,其余位置上补0,然后合并为双通道特征图作为卷积神经网络的输入;(4)原始数据集中的样本都带有标签,首先将所有样本的特征矩阵每一行进行随机乱序排列,根据乱序排列数组,将标签对应追加到样本矩阵的最后一列,这样就完成了带有标签的样本乱序处理,再将所有样本进行数据集拆分,一部分作为训练样本,其余的作为测试样本,再对训练样本做交叉验证,将训练样本分成k分并且编号,取k‑1份组合数据集作为训练样本,剩下1份作为验证数据集;(5)将k‑1份数据中的每个样本都做双通道卷积处理,得到每个样本对应的特征图,再将特征图做最大池化处理,得到新的特征图,将新的特征图全连接并且输入到神经网络中,得到分类结果,将输出的分类结果和原始标签值代入交叉熵损失函数并利用反向传播算法多次迭代求出最佳的卷积核矩阵和最佳的神经网络权重矩阵,k次交叉验证后得到k个模型;(6)将测试数据集输入到交叉验证得到的k个模型当中,每个模型都给出样本的分类结果,最终投票得到样本的最终分类结果。...

【技术特征摘要】
1.一种优化特征提取的恶意软件分类方法,其特征在于,包括以下步骤:(1)原始数据特征处理,建立恶意代码的整体API调用图存储在邻接矩阵数据结构中;(2)将原始恶意软件二进制文件样本转化为十六进制流格式,将恶意软件二进制文件转化为灰度图特征矩阵;(3)将API调用图矩阵作为一个像素通道,将灰度图矩阵作为一个像素通道,如果这两个矩阵大小不同,则将小的那个矩阵的左边界和上边界与大矩阵对齐,其余位置上补0,然后合并为双通道特征图作为卷积神经网络的输入;(4)原始数据集中的样本都带有标签,首先将所有样本的特征矩阵每一行进行随机乱序排列,根据乱序排列数组,将标签对应追加到样本矩阵的最后一列,这样就完成了带有标签的样本乱序处理,再将所有样本进行数据集拆分,一部分作为训练样本,其余的作为测试样本,再对训练样本做交叉验证,将训练样本分成k分并且编号,取k-1份组合数据集作为训练样本,剩下1份作为验证数据集;(5)将k-1份数据中的每个样本都做双通道卷积处理,得到每个样本对应的特征图,再将特征图做最大池化处理,得到新的特征图,将新...

【专利技术属性】
技术研发人员:李静梅吕图吴辉
申请(专利权)人:哈尔滨工程大学
类型:发明
国别省市:黑龙江,23

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

1