一种基于轻量级深度网络模型的计算机病毒检测方法

文档序号:26103305发布日期:2021-07-30 18:14阅读:220来源:国知局
一种基于轻量级深度网络模型的计算机病毒检测方法

本发明涉及病毒检测领域,具体为一种基于轻量级深度网络模型的计算机病毒检测方法。



背景技术:

目前,盗取个人信息数据、获取网上交易密码、比特币勒索等事件频频出现。根据av-test协会发布的调查结果,大数据时代下每天出现的新型病毒数量高达39万,安全形势相当严峻。现有的通过特征码对比、签名或者基于启发式等病毒检测安全机制已无法很好的处理大数据时代下大量未知、且使用了高新混淆反检测技术的病毒[3][4]。已有研究显示,基于深度学习的自主学习检测恶意程序是病毒检测技术的发展趋势,将改变未来反病毒行动的游戏规则。然而当前常规的深度学习网络模型几乎是运行在服务器或台式机上,其庞大的参数权重网络模型结构决定其对运行环境有非常大容量存储空间及较高硬件计算性能的要求,这使得深度神经网络模型难以部署在嵌入式系统或硬件资源受限的系统上。而现实社会中的实际任务场景很多时候为“端”应用,就是一些嵌入式系统或硬件资源有限的平台。鉴于此,亟需研发满足嵌入式系统或硬件资源受限系统条件下的深度学习算法模型。



技术实现要素:

本发明的主要目的在于提供一种基于轻量级深度网络模型的计算机病毒检测方法,基于轻量级深度网络squeezenet,解决深度网络模型难以部署在嵌入式设备上应用的问题,并对squeezenet进行卷积结构和特征增强的改进,使之运行速度更快、资源消耗更低且检测精度更高。

为达到以上目的,本发明采用的技术方案为:一种基于轻量级深度网络模型的计算机病毒检测方法,具体包括如下步骤:

步骤一:对待检测的文件进行预处理;

步骤二:将预处理后的文件映射为可视化的二进制灰度图像并计算灰度共生矩阵;

步骤三:将得到的灰度共生矩阵输入到squeezenet网络结构中进行检测识别。

优选地,所述步骤一的预处理包括对待检测的文件进行查壳,如果查到待检测的文件进行了加壳,对加壳的待检测文件进行脱壳。

优选地,步骤二具体包括如下步骤:

步骤2.1:将预处理后的文件映射为灰度图像;

步骤2.2:提取灰度图像中的灰度共生矩阵。

优选地,步骤2.1具有包括如下步骤:

步骤2.1.1:将预处理后的文件作为可执行二进制文件;

步骤2.1.2:以每8位为一组将所述二进制文件转换成一个无符号的整数,所述整数的取值范围为0-255,设定固定的行宽为一个向量,将所述整数生成为一个二维数组;

步骤2.1.3:将所述二维数组映射为一个灰度图像。

优选地,步骤2.2具体包括如下步骤:

步骤2.2.1:取所述灰度图像中任意一像素点i,其位置为(x,y)、该点的灰度值记为gi,另取偏离i点的另一像素点j,其位置为(x+δx,y+δy)、该点灰度值记为gj,则该像素对的灰度值为(gi,gj);

步骤2.2.2:令点i在整个画面上移动,点j保持与点i之间的空间关系随之移动,得到多个像素对的灰度值(gi,gj),其中gi和gj的取值范围为0-255,即,gi和gj有256种取值,则(gi,gj)的组合共有256*256种可能;

步骤2.2.3:统计出所述灰度图像中每一种(gi,gj)组合值出现的次数,然后排列成一个256*256的方阵a,方阵a的元素agigj对应的是一种(gi,gj)出现的总的次数;

步骤2.2.4将方阵a里的每一元素除以(gi,gj)所有组合出现的总次数之和,将方阵里的每个元素归一化为出现的概率p(gi,gj),得到灰度共生矩阵g,所述灰度共生矩阵g表示的是所述灰度图像中满足(i,j)两点相对空间位置关系的两点灰度值出现的联合概率分布,可用如下公式来表示:

其中s表示一张图片中满足(i,j)两点空间位置关系的两点的集合,n{…}表示集合中的点对的数目。

优选地,所述灰度功能矩阵选取水平灰度共生矩阵、垂直灰度共生矩、45度灰度共生矩阵和135度灰度共生矩阵,将这四个度灰度共生矩阵的平均值作为最终的度灰度共生矩阵。

优选地,squeezenet网络结构中的卷积操作采用深度可分离卷积对卷积操作进行优化。

优选地,squeezenet网络结构将的最后一层卷积层采用基于多分支膨胀卷积结构的特征增强结构,所述膨胀卷积结构的膨胀比率采用1、3、5,并将这三种比率膨胀卷积结构进行通道融合,并采用残差单元的方式进行连接。

与现有技术相比,本发明具有以下有益效果:

本发明的方法,基于轻量级深度网络squeezenet,解决了深度网络模型难以部署在嵌入式设备上应用的问题,并对squeezenet进行卷积结构和特征增强的改进,使之运行速度更快、资源消耗更低且检测精度更高;本发明的方法中将样本映射为灰度图像并计算出灰度共生矩阵后再送入深度网络模型中进行处理,其能够引导深度网络模型提取纹理信息特征的作用而又避免了传统的由人工经验提取具体纹理特征的弊端。

附图说明

图1是本发明的病毒检测方法的原理图;

图2是本发明的squeezenet网络的结构图;

图3是本发明的squeezenet网络中的fire模块示意图;

图4是本发明的膨胀卷积结构的卷积操作原理图。

具体实施方式

以下描述用于揭露本发明以使本领域技术人员能够实现本发明。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。

实施例一

如图1所示,一种基于轻量级深度网络模型的计算机病毒检测方法,具体包括如下步骤:

步骤一:对待检测的文件进行预处理。

所述预处理包括对使用了加壳技术为隐藏其真实意图躲避杀毒软件检测或为压缩体积便于传播渗透的病毒进行查壳、对查到的加壳文件进行脱壳。

步骤二:采用b2m算法将预处理后的文件映射为可视化的二进制灰度图像并计算灰度共生矩阵。

步骤二具体又包括:

步骤2.1:将预处理后的文件映射为灰度图像。

具体为:将预处理后的文件作为可执行二进制文件,以每8位为一组转换成一个无符号的整数,所述整数的取值范围为0-255,设定固定的行宽,最终整个文件将生成为一个二维数组;所述二维数组中的每一个元素其取值范围为0-255,对应灰度图像中每个像素的取值范围(0表示黑色、255表示白色),因此可将二维数组映射为一个灰度图像。

步骤2.2:提取灰度图像中的灰度共生矩阵。

具体又包括如下步骤:

步骤2.2.1:取所述灰度图像(n×n)中任意一像素点i,其位置为(x,y)、该点的灰度值记为gi,另取偏离i点的另一像素点j,其位置为(x+δx,y+δy)、该点灰度值记为gj,则该像素对的灰度值为(gi,gj)。优选地,可以将δx=1,δy=0,此时,像素对是水平的,计算的是水平灰度共生矩阵。

步骤2.2.2:令点i在整个画面上移动,点j保持与点i之间的空间关系随之移动,则会得到多个像素对的灰度值(gi,gj),其中gi和gj的取值范围为0-255,即,gi和gj有256种取值,则(gi,gj)的组合共有256*256种可能。

步骤2.2.3:统计出所述灰度图像中每一种(gi,gj)组合值出现的次数,然后排列成一个256*256的方阵a,即方阵a的元素agigj对应的是一种(gi,gj)出现的总的次数。

步骤2.2.4将方阵a里的每一元素除以(gi,gj)所有组合出现的总次数之和,将方阵里的每个元素归一化为出现的概率p(gi,gj),得到灰度共生矩阵g。该矩阵表示的是图像中满足(i,j)两点相对空间位置关系的两点灰度值出现的联合概率分布,可用如下公式来表示:

其中s表示一张图片中满足(i,j)两点空间位置关系的两点的集合,n{…}表示集合中的点对的数目。

上述(δx,δy)还可以设定为不同的取值,不同的组合可以得到不同的灰度共生矩。本文设计并计算了四种灰度共生矩阵:水平灰度共生矩阵(δx=1,δy=0)、垂直灰度共生矩阵(δx=0,δy=1)、45度灰度共生矩阵(δx=1,δy=1)和135度灰度共生矩阵(δx=1,δy=-1),然后取了这四个度灰度共生矩阵的平均值作为最终的度灰度共生矩阵。

步骤三:灰度共生矩阵计算出来后,将其送入到轻量级深度网络中,由轻量级深度网络提取灰度共生矩阵的特征,所述轻量级深度网络再根据提取的特征判断待检测的文件是否为病毒。

所述轻量级深度网络采用改进的squeezenet网络结构,squeezenet是一个超轻量级的深度神经网络,由若干个fire模块以及结合卷积网络中卷积层、降采样层、全连接层组成,参见图2。如图3所示,所述fire模块是squeezenet网络结构中的核心组件,是squeezenet网络模型轻量级、参数较少的原因所在。所述fire模块由squeeze部分和expand部分组成,squeeze部分是一组连续的1×1卷积,expand部分则是由一组连续的1×1卷积和一组连续的3×3卷积concatenate组成。

进一步,所述squeezenet网络结构进行改进,改进后的squeezenet网络结构中的卷积操作全部用深度可分离卷积对卷积操作进行优化,将标准的卷积操作划分为depthwise和pointwise两个部分分别进行卷积操作,从而降低计算负责度优化计算速度。此外,改进的squeezenet网络结构将原始squeezenet中最后一层卷积层conv10替换为基于多分支膨胀卷积结构的特征增强结构。所述膨胀卷积结构的膨胀比率可以采用1、3、5,将这三种膨胀卷积结构进行通道融合,并采用残差单元的方式进行连接,参见图4。

实施例二

该实施例是对实施例一的验证。

采用病毒样本23000个,正常样本12000个,并且选取病毒样本中的17250个、正常样本中的9000个作为训练集,选取病毒样本中的5750个、正常样本中的3000个作为测试集,训练集用做对squeezenet网络结构进行训练,测试集用于对训练后的squeezenet网络结构进行测试。

采用训练集进行训练。首先,采用实施例一种的步骤一、步骤二进行处理,得到每个样本的灰度共生矩阵;其次,将得到的灰度共生矩阵输入到squeezenet网络结构中。

训练完成之后,对squeezenet网络结构进行测试,为了能够更好的进行对比,采用了五种方法,方法1为本发明提出的病毒检测方法,方法2为本文提出的方法去除灰度图形提取灰度共生矩阵的步骤(直接将灰度图形作为网络结构的输入),方法3为本文提出的方法去除样本预处理的步骤,方法4为本发明提出的病毒检测方法但采用原squeezenet网络结构,方法5是基于传统机器学习分类的病毒检测方法。结果参见表1:

表1本文检测方法与其它方法对比

从表1可以看出,通过将灰度共生矩阵输入到squeezenet网络结构中得到的正确率更高,通过预处理后的方法的正确率相比于没有经过预处理的方法更高,改进后的squeezenet网络结构的方法的正确率更高。并且改进后的squeezenet网络结构的大小为6.1m,常用的alexnet网络模型的大小为240m,可以见改进后的squeezenet网络结构为一个轻量级的神经网络模型。

以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明的范围内。本发明要求的保护范围由所附的权利要求书及其等同物界定。

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