买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明公布】基于NIN神经网络的恶意代码变种检测方法_北京工业大学_201710808639.6 

申请/专利权人:北京工业大学

申请日:2017-09-09

公开(公告)日:2018-01-19

公开(公告)号:CN107609399A

主分类号:G06F21/56(2013.01)I

分类号:G06F21/56(2013.01)I;G06K9/62(2006.01)I;G06N3/04(2006.01)I

优先权:

专利状态码:失效-发明专利申请公布后的驳回

法律状态:2021.07.30#发明专利申请公布后的驳回;2018.02.13#实质审查的生效;2018.01.19#公开

摘要:本发明公开了基于NIN神经网络的恶意代码变种检测方法,属于信息安全领域的恶意代码防护技术。该方法主要包括恶意代码映射为灰度图像、数据增强、面向灰阶图像检测的NIN神经网络设计。首先,引入将恶意代码的二进制文件通过相应方法映射为无压缩的灰度图像。其次,为了使NIN神经网络能更好提取到恶意代码生成的灰度图像的特征以及解决图像数据规模过小的问题,提出使用数据增强方法提前处理灰度图片。最后,在现有数据的基础上,使用NIN神经网络模型进行训练。

主权项:基于NIN神经网络的恶意代码变种检测方法,首先,引入将恶意代码的二进制文件通过相应方法映射为无压缩的灰度图像;其次,为了使NIN神经网络能更好提取到恶意代码生成的灰度图像的特征以及解决图像数据规模过小的问题,提出使用数据增强方法提前处理灰度图片;最后,在现有数据的基础上,研究使用NIN神经网络模型进行训练;其特征在于:该方法包括以下流程,第一步,使用灰阶图像映射方法,将给定的恶意代码二进制文件,按照每八位顺序二进值组合成一个无符号空间矢量,按照图像设定的高度存储为一个二维数组并可视化为灰阶图像;设B=b0,b1,b2,b3,b4,b5,b6,b7为给定恶意代码的二进制文件中的顺序选择的八位二进值;其中,bi,i∈[0,7]表示一位二进制数,取值为0或者1,B为长度为8的一维数组;则根据B通过如下公式计算得到一个无符号空间矢量I,其中I的范围为[0~255],空间矢量I为灰度图像中的一个像素点;I=b0*27+b1*26+b2*25+b3*24+b4*23+b5*22+b6*21+b7*20按照上述方法遍历整个二进制文件按照图像设定的宽度组合成一个二维数组X[totallencolumn][column];其中,column为灰度图像的宽度,取决于二进制文件的大小,totallen为整个二进制文件转化为空间矢量个数;将这个二维数组X[totallencolumn][column]可视化为一个灰度图像;灰度图像的宽度是固定的,而灰度图像的高度取决于文件的大小;第二步,使用数据增强技术解决数据过少的问题,避免出现过拟合以及训练不够泛化的问题;面向图像的数据增强技术有很多种,设A=[a1,a2,...,a7]为数据增强技术的集合,其中,a1为旋转变换、a2为反射变换、a3为翻转变换、a4为缩放变换、a5为平移变换、a6为尺度变换、a7为对比度变换;令Mi=xm,....,xn代表逐次进行数据增强技术的操作序列;其中,i∈R表示操作序列的顺序,xn∈A,n∈[1,7]代表某一种数据增强技术;M=x1,x2代表使用旋转变换和反射变换进行数据增强进行分析;定义Mi=λ1x1+.....+λlxl为带权的数据增强技术的操作序列;结果的加权;其中,λl为每一种数据增强技术分配的权重;则灰阶图像的数据增强总模型操作序列顺序为:y1=M1my2=M2y1……yk=Mkyk‑1其中,m为输入的灰阶图像数据,yk为通过k次数据增强技术操作序列后得到的结果;定义Dm=Mkyk‑1,其中Dm代表输入数据m经历k次数据增强技术操作序列得到的最后结果;通过对多维灰阶图像进行数据增强,最终为恶意代码变种检测提供支撑;第三步,通过使用面向灰度图像的NIN神经网络对上一步经过数据增强之后的灰阶图像数据进行训练,输出一个用于恶意代码变种检测的判别模型;NIN神经网络中由多层的MLP层以及全局均值池化层组成;多层感知器层中每个卷积的局部感受野中还包含了一个微型的多层网络;利用多层MLP的微型网络,对每个局部感受野的神经元进行更加复杂的运算,而以前的卷积层,局部感受野的运算仅仅只是一个单层的神经网络罢了;对于多层感知器层中每张特征图的计算公式如下:fi,j,k11=maxwk11Txi,j+bk1,0.]]fi,j,knn=maxwknnTfi,jn-1+bkn,0.]]其中,i,j为特征图中的像素坐标,xi,j为i,j位置输入中心,k为特征图的通道数下标,n为多层感知器的数量,w为权重,b为偏置;全局均值池化层是在最后一个MLP层后综合空间信息生成健壮的用于分类的特征映射;全局均值池化层用来替代传统CNN中的全连接层;与全连接层不同,对每个特征图一整张图片进行全局均值池化,这样每张特征图都得到一个输出,每张特征图相当于一个输出特征,然后这个特征就表示输出类的特征。

全文数据:基于NIN神经网络的恶意代码变种检测方法技术领域[0001]本发明属于信息安全领域,尤其涉及一种基于NIN神经网络的恶意代码变种检测方法,属于恶意代码防护技术。背景技术[0002]随着互联网的蓬勃发展,恶意代码的规模呈指数增长,已经成为威胁互联网安全的关键因素之一。中国互联网络信息中心CNNIC发布了第39次《中国互联网络发展状况统计报告》显示,数据显示,2016年遭遇过网络安全事件的用户占比达到整体网民的7成,其中设备中病毒或木马是网民遇到的首要网络安全问题之一。截止2016年12月,由360安全中心监测到全国感染过病毒木马程序的PC数量为2.47亿台。截止2016年12月,由360安全中心检测到全国感染恶意程序的恶意程序的安卓智能手机共1.08亿台。同时,恶意代码变种的数目急剧增长,恶意代码作者花费更多的时间在轻微改动或打包用以进一步传播以及规避检测。因此,因而恶意代码变种检测具有重要的研究意义。[0003]恶意代码变种大致可以分为2类:一类是重用基础模块实现恶意代码变种;另一类是恶意代码混淆技术。恶意代码混淆技术。按照其实现原理可分为2类:一类是干扰反汇编,使反汇编不能够得到正确的分析结果,从而阻碍进步机理分析;另一类是使用指令,这类混淆技术通常采用加壳、垃圾代码插入、等价指令替换、寄存器重新分配及代码变换等方式,改变恶意代码的语法特征,隐藏其内部调用逻辑关系。[0004]而针对以上的两种情况,恶意代码检测算法主要分为2类:基于恶意代码二进制的静态特征的静态检测和基于恶意代码运行时行为的动态检测。基于恶意代码静态特征的静态检测方法通过分析其PE文件结构、二进制字节码、反汇编后的代码、反汇编后系统调用等因素并利用基于学习的分类算法区分良性软件与恶意代码。但是,静态分析严重依赖反汇编技术,各种混淆技术可以阻碍反汇编分析,导致静态分析难以得到正确结果。基于动态特征的恶意代码检测方法主要原理是将待检代码放入一个沙箱或蜜罐中,通过检测目标程序运行过程的恶意行为来判断是否为恶意代码。但当前的动态分析技术多是采用行为序列的曼哈顿距离或加权曼哈顿距离进行检测,恶意代码可以使用系统调用重排和加入垃圾调用等方式增大行为之间的距离,进而绕过以行为序列为特征的检测方案。[0005]通常,在恶意代码检测技术分为静态分析和动态分析的基础上,主流的恶意代码检测技术可分为4类:基于主动学习的检测方法、基于特征码的检测方法、基于行为特征的检测方法和基于语义的特征检测方法。[0006]基于主动学习的恶意代码检测方法,该方法基于最小估计风险的策略,增量式地主动学习未知样本,不断完善恶意代码检测分类器,仅需要少量已知样本即可得到较理想的恶意代码检测效果。但是也存在主动学习步长的选取在一定程度上影响恶意代码检测效果以及少数恶意代码漏检的问题。基于特征码的恶意代码检测方法根据提取恶意代码二进制文件的形态特征,通过模式匹配的方式检测恶意代码。但是,当恶意代码经过简单变形或者混淆后,基于特征码的检测方法将不能正确识别该恶意代码。[0007]基于行为特征的恶意代码检测方法,该技术将恶意行为用一组自定义行为特征编码表示,通过对程序行为抽象后匹配特征编码,一定程度上能够降低代码混淆的影响,但该方法仍然不足以解决等价行为替换、系统调用重排等方法造成的漏报或误报问题。基于语义的特征检测从语义角度抽取特征,通过静态分析恶意代码,结合指令语义信息,使用三元操作符构造特征向量来进行检测,该方法可有效对抗指令重排、垃圾代码插入、寄存器重分配等混淆技术的干扰。但存在对行为混淆技术的抗干扰能力较弱,且其匹配判定过程比较复杂。[0008]基于恶意代码同源性分析方法,本发明提出基于NIN神经网络的恶意代码变种检测方法,通过结合图像纹理分析技术与恶意代码变种检测技术,将恶意代码映射为无压缩灰阶图像,然后运用深度学习NIN神经网络进行训练,最终输出一个用于恶意代码变种检测的判别模型。发明内容[0009]本发明的主要目的在于提出了基于深度学习NIN神经网络的恶意代码变种检测方法,主要包括恶意代码映射为灰度图像、数据增强、面向灰阶图像检测的NIN神经网络设计。[0010]为了实现使用深度学习NIN神经网络对恶意代码进行变种检测,首先,引入将恶意代码的二进制文件通过相应方法映射为无压缩的灰度图像。其次,为了使NIN神经网络能更好提取到恶意代码生成的灰度图像的特征以及解决图像数据规模过小的问题避免过拟合),提出使用数据增强方法提前处理灰度图片。最后,在现有数据的基础上,使用NIN神经网络模型进行训练。[0011]本发明所提出的恶意代码变种检测方法包括以下流程:[0012]第一步,使用灰阶图像映射方法,将给定的恶意代码二进制文件,按照每八位顺序二进值组合成一个无符号空间矢量,按照图像设定的高度存储为一个二维数组并可视化为灰阶图像。[0013]设B=bo,bi,b2,b3,b4,b5,b6,b7为给定恶意代码的二进制文件中的顺序选择的八位二进值。[0014]其中,bi,iG[0,7]表示一位二进制数,取值为0或者1,B为长度为8的一维数组。例如,(1,0,1,0,1,0,1,0,1,0〇[0015]则根据B通过如下公式计算得到一个无符号空间矢量I,其中I的范围为[0〜255],空间矢量I为灰度图像中的一个像素点。[0018]按照上述方法遍历整个二进制文件按照图像设定的宽度组合成一个二维数组X[totallencolumn][column]。其中,column为灰度图像的宽度,取决于二进制文件的大小,totalIen为整个二进制文件转化为空间矢量个数。将这个二维数组X[totallencoIumn][column]可视化为一个灰度图像。灰度图像的宽度是固定的,而灰度图像的高度取决于文件的大小。[0019]第二步,使用数据增强技术解决数据过少的问题,避免出现过拟合以及训练不够泛化的问题。面向图像的数据增强技术有很多种,设A=[ai,a2,...,a7]为数据增强技术的集合,其中,ai为旋转变换、a2为反射变换、a3为翻转变换、a4为缩放变换、a5为平移变换、a6为尺度变换、a7为对比度变换。[0020]令姐=,....,χη代表逐次进行数据增强技术的操作序列。其中,ieR表示操作序列的顺序,已4,11£[1,7]代表某一种数据增强技术。如:1=11^2代表使用旋转变换和反射变换进行数据增强进行分析。[0021]更一般的,可以定义M1=Aixi+.....+λ1Ή为带权的数据增强技术的操作序列。结果的加权。其中,心为每一种数据增强技术分配的权重。[0022]则灰阶图像的数据增强总模型操作序列顺序为:[0027]其中,m为输入的灰阶图像数据,yk为通过k次数据增强技术操作序列后得到的结果。[0028]定义Dm=Mky^,其中Dm代表输入数据m经历k次数据增强技术操作序列得到的最后结果。通过对多维灰阶图像进行数据增强,最终为恶意代码变种检测提供支撑。[0029]第三步,通过使用面向灰度图像的NIN神经网络对上一步经过数据增强之后的灰阶图像数据进行训练,输出一个用于恶意代码变种检测的判别模型。NIN神经网络中由多层的MLP层以及全局均值池化层组成。[0030]多层感知器层中每个卷积的局部感受野中还包含了一个微型的多层网络。利用多层MLP的微型网络,对每个局部感受野的神经元进行更加复杂的运算,而以前的卷积层,局部感受野的运算仅仅只是一个单层的神经网络罢了。对于多层感知器层中每张特征图的计算公式如下:[0032]其中,(iJ为特征图中的像素坐标,Xi,j为iJ位置输入中心,k为特征图的通道数下标,η为多层感知器的数量,w为权重,b为偏置。[0033]全局均值池化层是在最后一个MLP层后综合空间信息生成健壮的用于分类的特征映射。全局均值池化层用来替代传统CNN中的全连接层。与传统的全连接层不同,对每个特征图一整张图片进行全局均值池化,这样每张特征图都得到一个输出,每张特征图相当于一个输出特征,然后这个特征就表示输出类的特征。[0034]有益效果如下:[0035]1.基于NIN神经网络的恶意代码变种检测。基于深度学习的恶意代码变种检测方法是一种将恶意代码变种检测过程转换为图像检测的过程。其主要功能是按照恶意代码内部的组织结构特征将恶意代码划分为不同的恶意代码家族,使恶意代码防治过程具有更好的针对性。基于深度学习的恶意代码检测方法主要流程包括:恶意代码二进制文件转化为灰阶图像、数据增强以及使用面向灰阶图像的NIN神经网路进行最终的分类。[0036]2.本发明提出了灰阶图像映射方法。将给定的恶意代码二进制文件,按照每8位二进值组合成一个空间矢量。计算得到一个无符号整数。最后按照图像设定的宽度组合成一个二维数组,这样可以将这个二维图像映射为一个灰度图像。图像的宽度是固定的,而图像的高度是根据文件的大小而变化。[0037]3.本发明提出了数据增强。深层网络需要大量的训练图像实现令人满意的性能,如果原始图像数据集包含有限的训练图片,最好是需要使用数据增强技术进行扩展,以提高性能。图像增强也能有效抑制无用信息,提高图形的实用价值,突出对人或机器分析有意义的信息。数据增强方法在机器学习领域以及深度学习领域非常重要,合适的数据增强方法可以有效避免过拟合等问题并且能够有效的提高模型的健壮性。通过将不同的数据增强方法按照不同的权重进行组合,最终对数据集进行数据增强,以达到解决数据不均衡问题。[0038]4.本发明提出了面向灰阶图像的NIN神经网络。网络中的网络(NetworkInNetwork使用IX1卷积为卷积层的特征提供更组合性的能力。NIN架构在各个卷积之后使用空间MLP层,以便更好地在其他层之前组合特征。其中IX1卷积常常被用于在卷积之后的特征映射上对特征进行空间组合,所以它们实际上可以使用非常少的参数,并在这些特征的所有像素上共享,MLP的能力能通过将卷积特征组合进更复杂的组group来极大地增加单个卷积特征的有效性。NIN神经网络也使用了平均池化层作为最后分类器的一部分,这是通过在分类之前对网络对多个输入图像的响应进行平均完成的。附图说明[0039]图1针对恶意代码变种检测方法的基本流程图;[0040]图2灰度图像映射算法;[0041]图3MLP卷积层;[0042]图4NIN神经网络架构;[0043]图5训练得到的混淆矩阵[0044]图6本方法与传统方法时间效率对比具体实施方式[0045]为使本发明的目的、技术方案和特点更加清楚明白,以下结合具体实施例子,并参照附图,对本发明进行进一步的细化说明。针对恶意代码变种检测方法的基本流程图如图1所示。[0046]各个步骤解释如下:[0047]1提出一种对恶意代码进行处理并转换为无压缩的灰阶图像的方法,使原有的恶意代码检测技术转换为图像检测的问题。[0048]2提出了使用数据增强技术来克服数据缺乏的问题,并研究不同数据增强组合技术对试验结果的影响。[0049]3提出了面向灰阶图像检测的NIN神经网络模型,与其他基于机器学习人工提取特征的方法相比大大加快了检测的速度并有效提高检测精度。[0050]试验环境[0051]本节将过实验来验证本文提出的基于NIN神经网络的恶意代码变种检测方法的实际效果。试验环境为ubuntul4.04主机,8G内存,IT硬盘,实验数据来自于visionresearchlab的MalwareImages数据,具体挑选了其中20个家族进行试验。具体恶意代码类别以及训练样本数如下边所示:[0053]首先,按照每8位二进制转换一个空间矢量,然后映射为无压缩的灰度图像的方法,将所有的恶意代码二进制文件转换为NIN神经网络训练需要的灰度图像,图像的宽度是固定的,而图像的高度是根据文件的大小而变化。图像的固定大小与文件大小的对应关系如下表所示:[0056]使用数据增强组合技术对灰度图像进行数据增强,通过对所有样本使用数据增强组合扩充训练数据规模,用于解决训练数据量不够多课程造成的过拟合以及训练不全面的问题,其中,数据增强为在样本上组合如下所示:[0058]最后将经过预处理过的数据输入到NIN神经网路中进行训练,输入图像大小归一化为28*28.—共训练2000次迭代,相当于10个epoch。最终得到混淆矩阵如图5所示,其中从上往下各类表不为Adialer·C.UPX、Aliser·7825、Alueron·gen!j、Azero.A、Backdoor.Agent.AsPack、Benign、C2Lop、Dialplatform.B、Dontovo.A、Fakerean、Instantaccess、LoIyda、Luder·B、Malex·gen!j、0bfuscator.AD、Rbot·gen、Sality·AM、Swizzor、Virut、Yuner.A。从混淆矩阵中可以看到,除了Aliser.7825和Benign类分类效果不太理想,其他类别都能很好的被NIN神经网络正确分类。所以,本方法可以有效对恶意代码变种进行检测。[0059]从图6中可以看到,本发明提出的方法不需要经过人工选取分类特征相对来说比较耗时的步骤,所以相对于传统的经过人工选取特征后经由机器学习分类算法进行检测的方法在时间效率方面有了极大的提升。

权利要求:1.基于NIN神经网络的恶意代码变种检测方法,首先,引入将恶意代码的二进制文件通过相应方法映射为无压缩的灰度图像;其次,为了使NIN神经网络能更好提取到恶意代码生成的灰度图像的特征以及解决图像数据规模过小的问题,提出使用数据增强方法提前处理灰度图片;最后,在现有数据的基础上,研究使用NIN神经网络模型进行训练;其特征在于:该方法包括以下流程,第一步,使用灰阶图像映射方法,将给定的恶意代码二进制文件,按照每八位顺序二进值组合成一个无符号空间矢量,按照图像设定的高度存储为一个二维数组并可视化为灰阶图像;设B=bo,bi,b2,b3,b4,b5,b6,b7为给定恶意代码的二进制文件中的顺序选择的八位二进值;其中,bi,ie[〇,7]表示一位二进制数,取值为0或者I,B为长度为8的一维数组;则根据B通过如下公式计算得到一个无符号空间矢量I,其中I的范围为[0〜255],空间矢量I为灰度图像中的一个像素点;按照上述方法遍历整个二进制文件按照图像设定的宽度组合成一个二维数组X[totallencolumn][column];其中,column为灰度图像的宽度,取决于二进制文件的大小,totalIen为整个二进制文件转化为空间矢量个数;将这个二维数组X[totallencoIumn][column]可视化为一个灰度图像;灰度图像的宽度是固定的,而灰度图像的高度取决于文件的大小;第二步,使用数据增强技术解决数据过少的问题,避免出现过拟合以及训练不够泛化的问题;面向图像的数据增强技术有很多种,设A=[ai,a2,...,a7]为数据增强技术的集合,其中,ai为旋转变换、a2为反射变换、a3为翻转变换、a4为缩放变换、a5为平移变换、a6为尺度变换、a7为对比度变换;令姐=,....,χη代表逐次进行数据增强技术的操作序列;其中,iGR表示操作序列的顺序,XneA,ne[1,7]代表某一种数据增强技术;M=X1,X2代表使用旋转变换和反射变换进行数据增强进行分析;定义M1=Aixi+……+λιχι为带权的数据增强技术的操作序列;结果的加权;其中,\:为每一种数据增强技术分配的权重;则灰阶图像的数据增强总模型操作序列顺序为:其中,m为输入的灰阶图像数据,yk为通过k次数据增强技术操作序列后得到的结果;定义Dm=Mky^,其中Dm代表输入数据m经历k次数据增强技术操作序列得到的最后结果;通过对多维灰阶图像进行数据增强,最终为恶意代码变种检测提供支撑;第三步,通过使用面向灰度图像的NIN神经网络对上一步经过数据增强之后的灰阶图像数据进行训练,输出一个用于恶意代码变种检测的判别模型;NIN神经网络中由多层的MLP层以及全局均值池化层组成;多层感知器层中每个卷积的局部感受野中还包含了一个微型的多层网络;利用多层MLP的微型网络,对每个局部感受野的神经元进行更加复杂的运算,而以前的卷积层,局部感受野的运算仅仅只是一个单层的神经网络罢了;对于多层感知器层中每张特征图的计算公式如下:其中,(i,j为特征图中的像素坐标,为(i,j位置输入中心,k为特征图的通道数下标,η为多层感知器的数量,w为权重,b为偏置;全局均值池化层是在最后一个MLP层后综合空间信息生成健壮的用于分类的特征映射;全局均值池化层用来替代传统CNN中的全连接层;与全连接层不同,对每个特征图一整张图片进行全局均值池化,这样每张特征图都得到一个输出,每张特征图相当于一个输出特征,然后这个特征就表示输出类的特征。2.根据权利要求1所述的基于NIN神经网络的恶意代码变种检测方法,其特征在于:1提出一种对恶意代码进行处理并转换为无压缩的灰阶图像的方法,使原有的恶意代码检测技术转换为图像检测的问题;2提出使用数据增强技术来克服数据缺乏的问题,并研究不同数据增强组合技术对试验结果的影响;3提出面向灰阶图像检测的NIN神经网络模型,与其他基于机器学习人工提取特征的方法相比大大加快了检测的速度并有效提高检测精度。

百度查询: 北京工业大学 基于NIN神经网络的恶意代码变种检测方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。