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

【发明授权】一种基于卷积神经网络的恶意软件识别方法及系统_东北大学秦皇岛分校_201810730246.2 

申请/专利权人:东北大学秦皇岛分校

申请日:2018-07-05

公开(公告)日:2020-09-15

公开(公告)号:CN109002715B

主分类号:G06F21/56(20130101)

分类号:G06F21/56(20130101)

优先权:

专利状态码:有效-授权

法律状态:2020.09.15#授权;2019.01.08#实质审查的生效;2018.12.14#公开

摘要:本发明公开了一种基于卷积神经网络的恶意软件识别方法及系统。该方法包括:获取样本软件的操作码和权限信息;将操作码转换为十进制数;将转换后的操作码进行预处理;将预处理后的操作码与权限信息混合;将混合后的数据作为特征矩阵输入卷积神经网络,对卷积神经网络进行训练;判断卷积神经网络输出的恶意概率或非恶意概率的准确度是否达到设定值;如果是,则停止训练卷积神经网络,采用训练好的卷积神经网络对待识别软件进行识别;如果否,则根据卷积神经网络输出的恶意概率或非恶意概率的准确度调整训练过程中的权重参数,继续训练卷积神经网络。本发明提供的基于卷积神经网络的恶意软件识别方法及系统具有识别精度高、操作简便的特点。

主权项:1.一种基于卷积神经网络的恶意软件识别方法,其特征在于,所述方法包括:获取样本软件的操作码和权限信息,所述样本软件为已知类型的软件,所述类型包括恶意软件和非恶意软件;将所述操作码转换为十进制数;将转换后的操作码进行预处理;将预处理后的操作码与所述权限信息混合;将混合后的数据作为特征矩阵输入卷积神经网络,对所述卷积神经网络进行训练,所述卷积神经网络的输出为所述样本软件的恶意概率和非恶意概率;判断所述卷积神经网络输出的恶意概率或非恶意概率的准确度是否达到设定值;如果是,则停止训练卷积神经网络,采用训练好的卷积神经网络对待识别软件进行识别;如果否,则根据所述卷积神经网络输出的恶意概率或非恶意概率的准确度调整训练过程中的权重参数,继续训练卷积神经网络;所述将所述操作码转换为十进制数,具体包括:将所述操作码两两分割;将每两个代码为一组转换为十进制数;所述将转换后的操作码进行预处理,具体包括:将每个十进制数加2,换行用1代替;所述对所述卷积神经网络进行训练,具体包括:将混合后的数据作为特征矩阵输入卷积神经网络,对所述卷积神经网络进行训练,其中,将卷积层的输出矩阵平均分为三份,每份矩阵的每行中选取三个值组成reshape层的输入矩阵,三个值为所在行排前三大的数值;对卷积神经网络各层的训练过程,具体如下:将特征混合得到的一维矩阵N*1乘以一个1*256权重后变为N*256的矩阵后输入卷积神经网络,权重先随机初始化,然后在训练期间通过反向传播进行更新,并与其余网络参数一起进行更新;EmbeddingLayer:将N*256的矩阵乘以256*8的权重矩阵得到N*8的矩阵;Reshape层:将N*8的矩阵变为1*N*8*1的矩阵;卷积层:将1*N*8*1的矩阵经过k*8*64的卷积核得到1*N-k+1*1*64的矩阵;trunkk层:将卷积层输出的矩阵平均分为三份,在每份中取最大的三个值,得到1*9*1*64的矩阵;Reshape层:将1*9*1*64的矩阵变成9*64的矩阵;全连接层:用1*9的全连接权重矩阵乘以上一步得到的9*64的矩阵变成1*64的矩阵;全连接层:将1*64的矩阵乘以64*16的全连接权重矩阵变成1*16的矩阵;全连接层:将1*16的矩阵乘以16*2的全连接矩阵变成1*2的矩阵获得最终解果x,y即预测应用是恶意和非恶意的概率;在上述过程中权重开始是随机初始化的,然后根据神经网络的误测精度反向传播进行权重的调整直至神经网络的精度达到要求。

全文数据:一种基于卷积神经网络的恶意软件识别方法及系统技术领域[0001]本发明涉及恶意软件检测领域,特别是涉及一种基于卷积神经网络的恶意软件识别方法及系统。背景技术[0002]随着科学技术的发展,恶意软件的种类以及复杂度越来越高,对恶意软件的识别也越来越具有难度,尤其是在移动领域平台。鉴于移动设备和手机应用商店的快速增长。新应用程序的数量太大而无法手动检查每个程序的恶意行为。恶意软件检测传统基于手动检测已知恶意软件行为或编码来手动设计恶意软件签名,这个过程难以检测大量应用程序。而且这种基于签名的静态恶意软件检测意味着新的恶意软件可以被设计来逃避现有的签名。发明内容[0003]本发明的目的是提供一种基于卷积神经网络的恶意软件识别方法及系统,具有识别精度高、操作简便的特点。[0004]为实现上述目的,本发明提供了如下方案:[0005]一种基于卷积神经网络的恶意软件识别方法,所述方法包括:[0006]获取样本软件的操作码和权限信息,所述样本软件为已知类型的软件,所述类型包括恶意软件和非恶意软件;[0007]将所述操作码转换为十进制数;[0008]将转换后的操作码进行预处理;[0009]将预处理后的操作码与所述权限信息混合;[0010]将混合后的数据作为特征矩阵输入卷积神经网络,对所述卷积神经网络进行训练,所述卷积神经网络的输出为所述样本软件的恶意概率和非恶意概率;[0011]判断所述卷积神经网络输出的恶意概率或非恶意概率的准确度是否达到设定值;[0012]如果是,则停止训练卷积神经网络,采用训练好的卷积神经网络对待识别软件进行识别;[0013]如果否,则根据所述卷积神经网络输出的恶意概率或非恶意概率的准确度调整训练过程中的权重参数,继续训练卷积神经网络。[0014]可选的,所述将所述操作码转换为十进制数,具体包括:[0015]将所述操作码两两分割;[0016]将每两个代码为一组转换为十进制数。[0017]可选的,所述将转换后的操作码进行预处理,具体包括:[0018]将每个十进制数加2,换行用1代替。[0019]可选的,所述将预处理后的操作码与所述权限信息混合,具体包括:[0020]将预处理后的操作码排在所述权限信息后,得到一个一维矩阵。[0021]可选的,所述对所述卷积神经网络进行训练,具体包括:[0022]将混合后的数据作为特征矩阵输入卷积神经网络,对所述卷积神经网络进行训练,其中,将卷积层的输出矩阵平均分为三份,每份矩阵的每行中选取三个值组成作此叩6层的输入矩阵,三个值为所在行排前三大的数值。[0023]可选的,所述采用训练好的卷积神经网络对待识别软件进行识别,具体包括:[0024]获取待识别软件的操作码和权限信息;[0025]将所述待识别软件的操作码转换为十进制数;[0026]将所述待识别软件转换后的操作码进行预处理;[0027]将所述待识别软件预处理后的操作码与所述权限信息混合;_[0028]将所述待识别软件混合后的数据作为特征矩阵输入卷积神经网络,进行识别。[0029]本发明还提供了一种基于卷积神经网络的恶意软件识别系统,所述系统包括:[0030]样本获取模块,用于获取样本软件的操作码和权限信息,所述样本软件为已知类型的软件,所述类型包括恶意软件和非恶意软件;[0031]转换模块,用于将所述操作码转换为十进制数;[0032]预处理模块,用于将转换后的操作码进行预处理;[0033]混合模块,用于将预处理后的操作码与所述权限信息混合;[0034]训练模块,用于将混合后的数据作为特征矩阵输入卷积神经网络,对所述卷积神经网络进行训练,所述卷积神经网络的输出为所述样本软件的恶意概率和非恶意概率;[0035]准确度判断模块,用于判断所述卷积神经网络输出的恶意概率或非恶意概率的准确度是否达到设定值;[0036]识别模块,用于当所述卷积神经网络输出的恶意概率或非恶意概率的准确度达到设定值时,则停止训练卷积神经网络,采用训练好的卷积神经网络对待识别软件进行识别;[0037]所述训练模块还用于当所述卷积神经网络输出的恶意概率或非恶意概率的准确度没有达到设定值时,则根据所述卷积神经网络输出的恶意概率或非恶意概率的准确度调整训练过程中的权重参数,继续训练卷积神经网络。[0038]可选的,所述转换模块,具体包括:[0039]分割单元,用于将所述操作码两两分割;[0040]转换单元,用于将每两个代码为一组转换为十进制数。[0041]所述预处理模块,具体包括:[0042]预处理单元,用于将每个十进制数加2,换行用1代替。[0043]所述混合模块,具体包括:[0044]混合单元,用于将预处理后的操作码排在所述权限信息后,得到一个一维矩阵。[0045]可选的,所述训练模块,具体包括:[0046]训练单元,用于将混合后的数据作为特征矩阵输入卷积神经网络,对所述卷积神经网络进行训练,其中,将卷积层的输出矩阵平均分为三份,每份矩阵的每行中选取三个值组成reshape层的输入矩阵,三个值为所在行排則二大的数值。[0047]可选的,所述识别模块,具体包括:[0048]待识别软件获取单元,用于获取待识别软件的操作码和权限信息;[0049]待识别软件转换单元,用于将所述待识别软件的操作码转换为十进制数;[0050]待识别软件与处理单元,用于将所述待识别软件转换后的操作码进行预处理;[0051]待识别软件混合单元,用于将所述待识别软件预处理后的操作码与所述权限信息混合;[0052]待识别软件识别单元,用于将所述待识别软件混合后的数据作为特征矩阵输入卷积神经网络,进行识别。[0053]根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明提供的基于卷积神经网络的恶意软件识别方法及系统,采用软件的操作码和权限信息作为识别对象,通过将操作码转换为十进制数,并对十进制数加二,以及换行用一代替,使得卷积神经网络的输入数据更加的均匀,此外,本发明对卷积神经网络的trunkk层进行了分块处理,保留了更多的特征值。通过操作码与权限信息的混合以及对trunkk层的分块处理,提高了卷积神经网络的准确性。而且,相比于传统的手动识别,操作更加简便。附图说明[0054]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。[0055]图1为本发明实施例基于卷积神经网络的恶意软件识别方法流程图;[0056]图2为本发明实施例基于卷积神经网络的恶意软件识别系统结构图。具体实施方式[0057]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0058]本发明的目的是提供一种基于卷积神经网络的恶意软件识别方法及系统,具有识别精度高、操作简便的特点。[0059]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。_[0060]图1为本发明实施例基于卷积神经网络的恶意软件识别方法流程图,如图1所示,本发明提供的基于卷积神经网络的恶意软件识别方法包括以下步骤:[0061]步骤1〇1:获取样本软件的操作码和权限信息,所述样本软件为已知类型的软件,所述类型包括恶意软件和非恶意软件;[0062]步骤102:将所述操作码转换为十进制数;[0063]步骤103:将转换后的操作码进行预处理;[0064]步骤104:将预处理后的操作码与所述权限信息混合;[0065]步骤1〇5:将混合后的数据作为特征矩阵输入卷积神经网络,对所述卷积神经网络进行训练,所述卷积神经网络的输出为所述样本软件的恶意概率和非恶意概率;[0066]步骤1〇6:判断所述卷积神经网络输出的恶意概率或非恶意概率的准确度是否达到设定值;[0067]步骤107:所述卷积神经网络输出的恶意概率或非恶意概率的准确度达到设定值时,则停止训练卷积神经网络,采用训练好的卷积神经网络对待识别软件进行识别;[0068]步骤108:所述卷积神经网络输出的恶意概率或非恶意概率的准确度没有达到设定值时,则根据所述卷积神经网络输出的恶意概率或非恶意概率的准确度调整训练过程中的权重参数,继续训练卷积神经网络。[0069]其中,步骤102具体包括:[0070]将所述操作码两两分割;[0071]将每两个代码为一组转换为十进制数。[0072]步骤103具体包括:[0073]将每个十进制数加2,换行用1代替。[0074]步骤104具体包括:[0075]将预处理后的操作码排在所述权限信息后,得到一个一维矩阵。[0076]步骤105具体包括:[0077]将混合后的数据作为特征矩阵输入卷积神经网络,对所述卷积神经网络进行训练,其中,将卷积层的输出矩阵分为三份,每份矩阵的每行中选取三个值组成reshape层的输入矩阵,三个值为所在行排前三大的数值。[0078]下面对卷积神经网络各层的训练过程进行介绍:[0079]将特征混合得到的一维矩阵N*1乘以一个1*256权重后变为N*256的矩阵后输入卷积神经网络,权重先随机初始化,然后在训练期间通过反向传播进行更新,并与其余网络参数一起进行更新。[0080]EmbeddingLayer:将N*256的矩阵乘以256*8的权重矩阵得到N*8的矩阵;[0081]Reshape层:将N*8的矩阵变为的矩阵;[0082]卷积层:将1*N*8*1的矩阵经过k*8*64的卷积核得到1*N-k+1*1*64的矩阵;[0083]trunkk层将卷积层输出的矩阵分为k块,本发明选的是三块,以保留更多特征):将卷积层输出的矩阵平均分为三份,在每份中取最大的三个值t〇p3,得到1約*1树4的矩阵;[0084]Reshape层:将1*9*1*64的矩阵变成9*64的矩阵;[0085]全连接层:用1*9的全连接权重矩阵乘以上一步得到的9*64的矩阵变成1*M的矩阵;[0086]全连接层:将1*64的矩阵乘以64*16的全连接权重矩阵变成1*丨6的矩阵;[0087]全连接层:将1*16的矩阵乘以16*2的全连接矩阵变成I*2的矩阵获得最终解果X,y即预测应用是恶意和非恶意的概率;[0088]在上述过程中权重开始是随机初始化的,然后根据神经网络的误测精度反向传播进行权重的调整直至神经网络的精度达到要求。[0089]步骤106具体包括:[0090]获取待识别软件的操作码和权限信息;[0091]将所述待识别软件的操作码转换为十进制数;[0092]将所述待识别软件转换后的操作码进行预处理;[0093]将所述待识别软件预处理后的操作码与所述权限信息混合;[0094]将所述待识别软件混合后的数据作为特征矩阵输入卷积神经网络,进行识别。[0095]本发明提供的基于卷积神经网络的恶意软件识别方法,采用软件的操作码和权限信息作为识别对象,通过将操作码转换为十进制数,并对十进制数加二,以及换行用一代替,使得卷积神经网络的输入数据更加的均匀,此外,本发明对卷积神经网络的trunkk层进行了分块处理,保留了更多的特征值。通过操作码与权限信息的混合以及对trunkk层的分块处理,提高了卷积神经网络的准确性。而且,相比于传统的手动识别,操作更加简便。[0096]本发明还提供了一种基于卷积神经网络的恶意软件识别系统,图2为本发明实施例基于卷积神经网络的恶意软件识别系统结构图,如图2所示,本发明提供的基于卷积神经网络的恶意软件识别系统包括:[0097]样本获取模块201,用于获取样本软件的操作码和权限信息,所述样本软件为已知类型的软件,所述类型包括恶意软件和非恶意软件;[0098]转换模块202,用于将所述操作码转换为十进制数;[0099]预处理模块203,用于将转换后的操作码进行预处理;[0100]混合模块204,用于将预处理后的操作码与所述权限信息混合;[0101]训练模块205,用于将混合后的数据作为特征矩阵输入卷积神经网络,对所述卷积神经网络进行训练,所述卷积神经网络的输出为所述样本软件的恶意概率和非恶意概率;[0102]准确度判断模块206,用于判断所述卷积神经网络输出的恶意概率或非恶意概率的准确度是否达到设定值;[0103]识别模块207,用于当所述卷积神经网络输出的恶意概率或非恶意概率的准确度达到设定值时,则停止训练卷积神经网络,采用训练好的卷积神经网络对待识别软件进行识别;[0104]所述训练模块还用于当所述卷积神经网络输出的恶意概率或非恶意概率的准确度没有达到设定值时,则根据所述卷积神经网络输出的恶意概率或非恶意概率的准确度调整训练过程中的权重参数,继续训练卷积神经网络。[0105]其中,所述转换模块202,具体包括:[0106]分割单元,用于将所述操作码两两分割;[0107]转换单元,用于将每两个代码为一组转换为十进制数。[0108]所述预处理模块203,具体包括:[0109]预处理单元,用于将每个十进制数加2,换行用1代替。[0110]所述混合模块204,具体包括:[0111]混合单元,用于将预处理后的操作码排在所述权限信息后,得到一个一维矩阵。[0112]所述训练模块205,具体包括:[0113]训练单元,用于将混合后的数据作为特征矩阵输入卷积神经网络,对所述卷积神经网络进行训练,其中,将卷积层的输出矩阵分为三份,每份矩阵的每行中选取三个值组成reshape层的输入矩阵,三个值为所在行排前三大的数值。[0114]所述识别模块207,具体包括:[0115]待识别软件获取单元,用于获取待识别软件的操作码和权限信息;[0116]待识别软件转换单元,用于将所述待识别软件的操作码转换为十进制数;[0117]待识别软件与处理单元,用于将所述待识别软件转换后的操作码进行预处理;[01181待识别软件混合单元,用于将所述待识别软件预处理后的操作码与所述权限信息混合;[0119]待识别软件识别单元,用于将所述待识别软件混合后的数据作为特征矩阵输入卷积神经网络,进行识别。[0120]本发明提供的基于卷积神经网络的恶意软件识别系统,采用软件的操作码和权限信息作为识别对象,通过将操作码转换为十进制数,并对十进制数加二,以及换行用一代替,使得卷积神经网络的输入数据更加的均匀,此外,本发明对卷积神经网络的trunkk层进行了分块处理,保留了更多的特征值。通过操作码与权限信息的混合以及对trunkk层的分块处理,提高了卷积神经网络的准确性。而且,相比于传统的手动识别,操作更加简便。[0121]本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。[0122]本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

权利要求:1.一种基于卷积神经网络的恶意软件识别方法,其特征在于,所述方法包括:获取样本软件的操作码和权限信息,所述样本软件为己知类型的软件,所述类型包括恶意软件和非恶意软件;将所述操作码转换为十进制数;将转换后的操作码进行预处理;将预处理后的操作码与所述权限信息混合;将混合后的数据作为特征矩阵输入卷积神经网络,对所述卷积神经网络进行训练,所述卷积神经网络的输出为所述样本软件的恶意概率和非恶意概率;判断所述卷积神经网络输出的恶意概率或非恶意概率的准确度是否达到设定值;如果是,则停止训练卷积神经网络,采用训练好的卷积神经网络对待识别软件进行识别;如果否,则根据所述卷积神经网络输出的恶意概率或非恶意概率的准确度调整训练过程中的权重参数,继续训练卷积神经网络。2.根据权利要求1所述的恶意软件识别方法,其特征在于,所述将所述操作码转换为十进制数,具体包括:将所述操作码两两分割;将每两个代码为一组转换为十进制数。3.根据权利要求1所述的恶意软件识别方法,其特征在于,所述将转换后的操作码进行预处理,具体包括:将每个十进制数加2,换行用1代替。4.根据权利要求1所述的恶意软件识别方法,其特征在于,所述将预处理后的操作码与所述权限信息混合,具体包括:将预处理后的操作码排在所述权限信息后,得到一个一维矩阵。5.根据权利要求1所述的恶意软件识别方法,其特征在于,所述对所述卷积神经网络进行训练,具体包括:_将混合后的数据作为特征矩阵输入卷积神经网络,对所述卷积神经网络进行训练,其中,将卷积层的输出矩阵平均分为三份,每份矩阵的每行中选取三个值组成reshape层的输入矩阵,三个值为所在行排前三大的数值。_、、、6.根据权利要求1所述的恶意软件识别方法,其特征在于,所述采用训练好的卷积神经网络对待识别软件进行识别,具体包括:获取待识别软件的操作码和权限信息;将所述待识别软件的操作码转换为十进制数;将所述待识别软件转换后的操作码进行预处理;将所述待识别软件预处理后的操作码与所述权限信息混合;_将所述待识别软件混合后的数据作为特征矩阵输入卷积神经网络,进行识别。7.—种基于卷积神经网络的恶意软件识别系统,其特征在于,所述系统包括:样本获取模块,用于获取样本软件的操作码和权限信息,所述样本软件为已知类型的软件,所述类型包括恶意软件和非恶意软件;转换模块,用于将所述操作码转换为十进制数;预处理模块,用于将转换后的操作码进行预处理;混合模块,用于将预处理后的操作码与所述权限信息混合;训练模块,用于将混合后的数据作为特征矩阵输入卷积神经网络,对所述卷积神经网络进行训练,所述卷积神经网络的输出为所述样本软件的恶意概率和非恶意概率;准确度判断模块,用于判断所述卷积神经网络输出的恶意概率或非恶意概率的准确度是否达到设定值;识别模块,用于当所述卷积神经网络输出的恶意概率或非恶意概率的准确度达到设定值时,则停止训练卷积神经网络,采用训练好的卷积神经网络对待识别软件进行识别;所述训练模块还用于当所述卷积神经网络输出的恶意概率或非恶意概率的准确度没有达到设定值时,则根据所述卷积神经网络输出的恶意概率或非恶意概率的准确度调整训练过程中的权重参数,继续训练卷积神经网络。8.根据权利要求7所述的恶意软件识别系统,其特征在于,所述转换模块,具体包括:分割单元,用于将所述操作码两两分割;转换单元,用于将每两个代码为一组转换为十进制数。所述预处理模块,具体包括:预处理单元,用于将每个十进制数加2,换行用1代替。所述混合模块,具体包括:混合单元,用于将预处理后的操作码排在所述权限信息后,得到一个一维矩阵。9.根据权利要求7所述的恶意软件识别系统,其特征在于,所述训练模块,具体包括:训练单元,用于将混合后的数据作为特征矩阵输入卷积神经网络,对所述卷积神经网络进行训练,其中,将卷积层的输出矩阵平均分为三份,每份矩阵的每行中选取三个值组成reshape层的输入矩阵,三个值为所在行排如二大的数值。10.根据权利要求7所述的恶意软件识别系统,其特征在于,所述识别模块,具体包括:待识别软件获取单元,用于获取待识别软件的操作码和权限信息;待识别软件转换单元,用于将所述待识别软件的操作码转换为十进制数;待识别软件与处理单元,用于将所述待识别软件转换后的操作码进行预处理;待识别软件混合单元,用于将所述待识别软件预处理后的操作码与所述权限信息'混合;待识别软件识别单元,用于将所述待识别软件混合后的数据作为特征矩阵输入卷积祌经网络,进行识别。

百度查询: 东北大学秦皇岛分校 一种基于卷积神经网络的恶意软件识别方法及系统

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