一种基于AlexNet网络模型的恶意软件分类方法及系统与流程

文档序号:31210268发布日期:2022-08-20 03:25阅读:136来源:国知局
一种基于AlexNet网络模型的恶意软件分类方法及系统与流程
一种基于alexnet网络模型的恶意软件分类方法及系统
技术领域
1.本发明涉及恶意软件检测技术领域,具体涉及一种基于alexnet网络模型的恶意软件分类方法及系统。


背景技术:

2.随着当今社会的飞速发展,互联网技术的发展水平也在飞速提升,已经渗透到我们生活的方方面面。然而人们在享受互联网带给我们便利的同时,也带来了网络安全风险。根据报告显示,2021上半年捕获恶意程序样本的数量约2307万个,日均传播次数为582万余次,恶意软件已经成为网络空间安全领域面临的最常见最重要的安全威胁之一。特别是变种、混淆、加壳等技术手段的应用,恶意软件数量的快速增长,以及恶意软件变体种类也在不断增加,因此对恶意软件分类检测技术提出了更高的要求。虽然我们每天可以识别大量样本,但单纯通过人工分类来对恶意软件进行检测与分类是一件非常不容易的事情。如何降低网络安全风险,对恶意软件样本进行快速、准确和高效的检测和分类,是我们当前亟需解决的问题。
3.近年来,在恶意软件样本的分类检测中,深度学习的快速发展避免了传统机器学习中手动特征提取的复杂性,降低了分析人员由于经验不足、能力不够而造成的对恶意软件分类检测的准确率降低的影响,可以有效地对抗恶意软件攻击。随着深度学习技术的发展,深度学习已被广泛应用于恶意软件分类,改变了传统机器学习依赖于手工制作的特征,这些特征需要依据专家知识和经验,构建表征恶意软件的行为,然后进行恶意软件分类,但这是一个非常耗时而且可能无法很好的推广到新型的恶意软件,而深度学习解决了特征难构建及人工参与的问题。同时深度学习在自然语言处理、图像识别等方面具有良好性能,因此,恶意软件可视化与深度学习相结合进行检测和分类成为一种有效方案。
4.目前,使用灰度图表示恶意软件,然后使用深度学习对图像进行分类受到广泛的关注。然而在将灰度图统一大小时,容易造成信息的丢失,影响恶意软件分类的准确率。nataraj等人最先提出了将恶意二进制文件转化成灰度图的方法对恶意软件进行分类,然而这种方法需要对生成的灰度图进行裁剪、缩放等方式统一大小,然后放到模型中对恶意软件进行分类。通过这种方式处理图像尺寸,容易丢失特征信息。另外,二进制可执行样本中并非所有的信息都是有用的,因此在转换成图像的过程中会造成信息冗余,比如二进制文件中的无关的特殊符号。同时大多数传统的卷积神经网络模型参数巨大,容易造成空间的消耗、训练时间长等问题。alex krizhevsky等人首次提出了alexnet模型,通过对其参数量进行计算,发现参数量巨大,其中全连接层占主要部分。这也就意味着需要更好的性能来对模型进行训练,所消耗的空间也会减少。
5.为了解决以上问题,提出一种新的基于alexnet网络模型的恶意软件分类方法,以此来解决上述问题。


技术实现要素:

6.恶意软件数量飞速增长,如何快速准确的识别、并对其进行分类是一个难题。大多数基于恶意软件图像的方法容易造成信息的冗余或丢失问题,同时有些卷积神经网络参数量巨大,训练时间长、消耗的空间大。针对现有技术的不足,本发明提供了基于alexnet网络模型的恶意软件分类方法,可以快速准确的对恶意软件进行分类。
7.本发明还提供了一种基于alexnet网络模型的恶意软件分类系统。
8.术语解释:
9.alexnet网络:如图3所示,alexnet网络结构最先由alex krizhevsky等人在2012年提出的,并且在imagenet 2012图像识别挑战赛中获得冠军。alexnet在lenet网络模型的基础上进行了改进,加深了网络结构,可以学习更加丰富和更高维的图像特征。图3采用两块gpu服务器进行alexnet网络模型训练,可以将网络模型分为上下两部分,这也是首次利用gpu进行网络加速训练。以一块gpu服务器为例进行描述,该模型总共具有8层:包括5个卷积层和3个全连接层,每个卷积层中都包含relu激活函数和局部响应归一化,在全连接层的前两层中使用了dropout随机失活神经元操作,最后一层全连接层直接连接softmax层,通过softmax层进行类别分类。
10.本发明的技术方案为:
11.一种基于alexnet网络模型的恶意软件分类方法,包括:
12.数据预处理:读取恶意软件,将恶意软件二进制文件可视化为恶意软件彩色图像;
13.训练恶意软件分类模型即alexnet网络模型:将恶意软件图像输入卷积神经网络进行训练,得到训练好的恶意软件分类模型;
14.将待检测的恶意软件通过所述数据预处理后输入训练好的恶意软件分类模型得到恶意软件分类结果;
15.其中,数据预处理,包括:以二进制方式读取恶意软件;求取转移概率矩阵,转移概率矩阵包括每个字节到其它字节的转移概率;标准化处理转移概率矩阵;在转移概率矩阵上应用色图,将恶意软件二进制文件可视化为恶意软件彩色图像,对恶意软件彩色图像进行增强处理。
16.根据本发明优选的,使用改进的clahe算法对彩色图像进行增强处理,包括:
17.首先,对图像进行分块处理,并计算每个块的直方图;
18.然后,定义一个阈值,如果每个块的直方图超过定义的阈值,则从顶部对其进行裁剪,裁剪出来的部分被均匀的分布在直方图的整个像素范围内,重复上述过程直到均衡化;
19.最后,对图像的像素值进行重构,得到增强后的恶意软件图像;步骤如下:将每个块的区域内距离待求点最近的十六个像素点的加权平均得到待求点(x,y)的像素值f(x,y)。
20.进一步优选的,像素值f(x,y)的求取公式如式(i)、式(ii)所示:
[0021][0022][0023]
式(i)、式(ii)中,每个像素点坐标的权重w(x)由该点到待求点的距离决定,包括x
轴和y轴两个方向的距离,系数a根据需要进行设置。
[0024]
根据本发明优选的,以二进制方式读取恶意软件,包括:
[0025]
以二进制方式读取特征文件,每8位比特为一个无符号整数,也就是1个字节;将二进制文件中的字节视为字节流,即字节b={b1,b2,...,bn},n表示恶意软件样本的字节数量;依次遍历恶意软件所有的字节,从而形成一维向量数组;按照一维向量数组中字节出现的先后顺序,依次统计相邻两字节的频率,即统计字节b
m-1
后是字节bm出现的次数,1≤m≤n。
[0026]
根据本发明优选的,求取转移概率矩阵,包括:
[0027]
通过相邻两字节的频率得到转移概率,计算每个字节到其它字节的转移概率,形成转移概率矩阵;恶意软件样本的图像像素值p
ij
如式(iii)所示:
[0028][0029]
式(iii)中,x
ij
表示第i行第j列字节的频率,yi表示第i行中所有相邻两字节的频率的和;由转移概率即每个字节到其它字节的转移概率组成的矩阵就是转移概率矩阵,构成转移概率矩阵的元素是每个字节到其它字节的转移概率。
[0030]
根据本发明优选的,标准化处理转移概率矩阵,包括:
[0031]
将数据按列进行标准化,处理转移概率矩阵,其中某一列的字节序列x={x
1j
,x
2j
,...,x
ij
...,x
nj
},第i行j列的标准化数值y
ij
的计算公式如式(iv)所示:
[0032][0033]
式(iv)中,均值标准差
[0034]
根据本发明优选的,卷积神经网络依次包括conv1+bn1+max pooling1层、conv2+bn2+max pooling2层、conv3层、conv4层、conv5+max pooling3层、fc1层、fc2层;
[0035]
conv1+bn1+max pooling1层依次包括卷积层、bn层、prelu激活函数、池化层;
[0036]
conv2+bn2+max pooling2层依次包括卷积层、bn层、prelu激活函数、池化层;
[0037]
conv3层依次包括卷积层、prelu激活函数;
[0038]
conv4层依次包括卷积层、prelu激活函数;
[0039]
conv5+max pooling3层依次包括卷积层、prelu激活函数、池化层;
[0040]
fc1层依次包括dropout层、全连接层、prelu激活函数;
[0041]
fc2层是指全连接层。
[0042]
一种基于alexnet网络模型的恶意软件分类系统,包括:
[0043]
数据预处理模块,被配置为,读取恶意软件,将恶意软件二进制文件可视化为恶意软件彩色图像;
[0044]
恶意软件分类模型训练模块,被配置为,将恶意软件图像输入卷积神经网络进行训练,得到训练好的恶意软件分类模型;
[0045]
检测模块,被配置为,将待检测的恶意软件通过所述数据预处理模块数据预处理后输入训练好的恶意软件分类模型,得到恶意软件分类结果。
[0046]
其中,读取恶意软件,将恶意软件二进制文件可视化为恶意软件彩色图像,包括:
以二进制方式读取恶意软件;求取转移概率矩阵,转移概率矩阵包括每个字节到其它字节的转移概率;标准化处理转移概率矩阵;在转移概率矩阵上应用色图,将恶意软件二进制文件可视化为恶意软件彩色图像,对恶意软件彩色图像进行增强处理。
[0047]
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现基于alexnet网络模型的恶意软件分类方法的步骤。
[0048]
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现基于alexnet网络模型的恶意软件分类方法的步骤。
[0049]
本发明的有益效果为:
[0050]
1)本发明提出的生成恶意软件图像的方法,可以有效的保留二进制文件中的信息,避免信息的冗余或丢失问题,在增强图像的对比度同时能够抑制噪声。
[0051]
2)本发明不需要逆向分析,与此同时使用数据增强方法,可以解决样本数量过少或者质量不佳等问题,防止过拟合问题的发生;模型使用prelu激活函数,解决了sigmod激活函数等的梯度消失问题,使收敛速度更快。
[0052]
3)将batch normalization与改进的卷积神经网络相结合,增强模型的泛化能力以及提高恶意软件分类的准确率;调参过程得以简化,初始化的要求降低,可以使用更大的学习率,避免了人工适应调整网络超参数;由于卷积神经网络中卷积核的个数设置成原来的一半,并减少了全连接层,训练时间明显减少,分类速度得到提升。
附图说明
[0053]
图1是基于alexnet网络模型的恶意软件分类方法的流程示意图;
[0054]
图2是本发明卷积神经网络的网络架构示意图;
[0055]
图3是现有的alexnet网络的网络架构示意图;
[0056]
图4(a)是在gcj数据集上,训练集准确率随训练周期的变化趋势示意图;
[0057]
图4(b)是在gcj数据集上,测试集准确率随训练周期的变化趋势示意图;
[0058]
图5(a)是在gcj数据集上,训练集损失值随训练周期的变化趋势示意图;
[0059]
图5(b)是在gcj数据集上,测试集损失值随训练周期的变化趋势示意图;
[0060]
图6是根据最近的十六个像素点的加权平均得到待求点的像素值的示意图。
具体实施方式
[0061]
下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。
[0062]
实施例1
[0063]
一种基于alexnet网络模型的恶意软件分类方法,如图1所示,包括:
[0064]
数据预处理:读取恶意软件,将恶意软件二进制文件可视化为恶意软件彩色图像;
[0065]
训练恶意软件分类模型即alexnet网络模型:将恶意软件图像输入卷积神经网络进行训练,得到训练好的恶意软件分类模型;
[0066]
将待检测的恶意软件通过所述数据预处理后输入训练好的恶意软件分类模型得到恶意软件分类结果;
[0067]
其中,数据预处理,包括:包括:以二进制方式读取恶意软件;求取转移概率矩阵,转移概率矩阵包括每个字节到其它字节的转移概率;标准化处理转移概率矩阵;在转移概
率矩阵上应用色图,将恶意软件二进制文件可视化为恶意软件彩色图像,使用改进的clahe算法对恶意软件彩色图像进行增强处理。
[0068]
实施例2
[0069]
根据实施例1所述的一种基于alexnet网络模型的恶意软件分类方法,其区别在于:
[0070]
使用改进的clahe(限制对比度的自适应直方图均衡化)算法对彩色图像进行增强处理,包括:
[0071]
首先,对图像进行分块处理,并计算每个块的直方图;
[0072]
然后,定义一个阈值,如果每个块的直方图超过定义的阈值,则从顶部对其进行裁剪,裁剪出来的部分被均匀的分布在直方图的整个像素范围内,重复上述过程直到均衡化;直方图,是一种二维统计图表,横坐标代表图像分块后的每个块,纵坐标代表每个块对应的像素点。
[0073]
最后,对图像的像素值进行重构,得到增强后的恶意软件图像;步骤如下:如图6所示,将每个块的区域内距离待求点最近的十六个像素点的加权平均得到待求点(x,y)的像素值f(x,y)。
[0074]
像素值f(x,y)的求取公式如式(i)、式(ii)所示:
[0075][0076][0077]
式(i)、式(ii)中,每个像素点坐标的权重w(x)由该点到待求点的距离决定,包括x轴和y轴两个方向的距离,系数a根据需要进行设置。利用了待求像素点在原图像中相邻的十六个像素点的值,即这十六个像素点的加权平均,通过已知数据计算出未知数据的值。
[0078]
改进的clahe通过插值算法增加了采样点的数量,使用分配权重的方式来确定相邻块之间的输出值;使得图像的边缘更加平滑、像素分布更为均匀,图像细节不会产生退化、保留图像更多的细节,图像质量损失减小,在增强图像的对比度同时能够抑制噪声。
[0079]
数据增强是一种对样本数量进行扩充的技术,通过增加样本数量使得现有数据变得丰富多样。数据增强技术可以分为两类:离线数据增强和在线数据增强。离线数据增强方法适用于数据集较小的情况,直接对数据集进行处理。当数据集较大时,采用离线数据增强方法会消耗非常多的空间,因此,本发明使用在线数据增强方法。每经历一次周期之前,便会对数据集进行平移、翻转、图像变换等数据增强操作,并且每个方式都包含随机因子,那么每次用于模型训练的数据是不一样的。也就是说,经历了多少的周期,数据就扩充了多少倍。
[0080]
以二进制方式读取恶意软件,包括:
[0081]
以二进制方式读取特征文件,每8位比特为一个无符号整数,也就是1个字节;将二进制文件中的字节(每个字节值范围是0≤k≤255)视为字节流,即字节b={b1,b2,...,bn},n表示恶意软件样本的字节数量;依次遍历恶意软件所有的字节,从而形成一维向量数组;按照一维向量数组中字节出现的先后顺序,依次统计相邻两字节的频率,即统计字节b
m-1
后是字节bm出现的次数,1≤m≤n。
[0082]
求取转移概率矩阵,包括:
[0083]
通过相邻两字节的频率得到转移概率,计算每个字节到其它字节的转移概率,形成转移概率矩阵;恶意软件样本的图像像素值p
ij
如式(iii)所示:
[0084][0085]
式(iii)中,x
ij
表示第i行第j列字节的频率,yi表示第i行中所有相邻两字节的频率的和;由转移概率即每个字节到其它字节的转移概率组成的矩阵就是转移概率矩阵,构成转移概率矩阵的元素是每个字节到其它字节的转移概率。
[0086]
标准化处理转移概率矩阵,包括:
[0087]
将数据按列进行标准化,处理转移概率矩阵,其中某一列的字节序列x={x
1j
,x
2j
,...,x
ij
...,x
nj
},第i行j列的标准化数值y
ij
的计算公式如式(iv)所示:
[0088][0089]
式(iv)中,均值标准差
[0090]
通过将两组或者多组数据转化为z-score值,使其数据标准规范化,提高了数据的可比性。
[0091]
实施例3
[0092]
根据实施例1所述的一种基于alexnet网络模型的恶意软件分类方法,其区别在于:
[0093]
卷积神经网络包括输入层、五个卷积层、三个池化层、两个bn(batch normalization)层、两个全连接层及输出层;每个卷积层中均包括prelu激活函数。
[0094]
具体的,如图2所示,卷积神经网络依次包括conv1+bn1+max pooling1层、conv2+bn2+max pooling2层、conv3层、conv4层、conv5+max pooling3层、fc1层、fc2层;
[0095]
conv1+bn1+max pooling1层依次包括卷积层、bn层、prelu激活函数、池化层;输入卷积神经网络的图像大小是256
×
256
×
3,经过卷积层之后输出的图像大小是63
×
63
×
48,接着是经过池化层进行池化操作,输出的图像大小是31
×
31
×
48;
[0096]
conv2+bn2+max pooling2层依次包括卷积层、bn层、prelu激活函数、池化层;将conv1+bn1+max pooling1层池化后大小为31
×
31
×
48的图像输入到卷积层,经过卷积之后输出的图像大小是31
×
31
×
128,接着是经过池化层进行池化操作,输出的图像大小是15
×
15
×
128;
[0097]
conv3层依次包括卷积层、prelu激活函数;将conv2+bn2+max pooling2层池化后大小为15
×
15
×
128的图像输入到卷积层,经过卷积之后输出的图像大小是15
×
15
×
192;
[0098]
conv4层依次包括卷积层、prelu激活函数;将conv3层输出的大小为15
×
15
×
192图像输入卷积层,经过卷积之后输出的图像大小是15
×
15
×
192;
[0099]
conv5+max pooling3层依次包括卷积层、prelu激活函数、池化层;将conv4层输出的大小为15
×
15
×
192图像输入卷积层,经过卷积层之后输出的图像大小是15
×
15
×
128,接着是经过池化层进行池化操作,输出的图像大小是6
×6×
128;
[0100]
fc1层依次包括dropout层、全连接层、prelu激活函数;将conv5+max pooling3层
输出的大小为6
×6×
128的图像输入dropout层,将其进行展平,该层有2048个卷积核,卷积后的像素层尺寸为2048
×1×
1,即有2048个神经元。
[0101]
fc2层是指全连接层。输出的2048个神经元与softmax中的1000个神经元进行全连接,经过训练后输出被训练的数值。
[0102]
bn(batch normalization)层:为了解决深度学习中内部协变量偏移问题,提出了通过调整每批数据的特征图,让每一层的特征图都满足某一分布规律。调参过程得以简化,初始化的要求降低,可以使用更大的学习率,避免了人工适应调整网络超参数。提升训练速度,收敛过程加快,可以进行深层网络的训练。不过于依赖dropout,减少过拟合,起到正则化的作用。
[0103]
prelu激活函数:为了提高训练速度,每个卷积层中都包含prelu激活函数,有效地避免了神经元坏死。解决了sigmod激活函数等的梯度消失问题,使收敛速度更快。prelu激活函数增加的计算量和过拟合的风险几乎为零,同时考虑了非线性因素的健壮初始化方法,可以训练很深的修正模型来研究更大更深的网络结构。
[0104]
卷积层可以提取输入图像的特征,保证了网络的稀疏性;池化层对卷积层提取的特征进行选择,减少卷积核的尺寸,避免平均池化产生模糊的效果,使提取出来的特征更加的丰富;全连接层将池化层的所有特征矩阵转化为一维特征向量,把提取到的特征综合起来;dropout层在模型训练时可以随机失活一些神经元,防止模型发生过拟合现象。
[0105]
设计的卷积神经网络架构基于alexnet网络,不同的是,取消了局部相应归一化,卷积神经网络中卷积核的个数设置成原来的一半,所提出的模型架构包含两个全连接层。最后一层全连接层直接连接输出层,通过softmax进行类别分类。
[0106]
利用pytorch库来编写模型代码,同时在模型中添加batch normalization层,每个卷积层中包括prelu激活函数,构建了一种新的深度卷积神经网络模型。
[0107]
恶意软件分类模型的训练过程如下:
[0108]
将恶意软件二进制文件中的十六进制字节,以8位长度为单位依次进行读取,转化成对应的十进制数值,范围在0-255之间,形成一个一维向量;统计相邻两字节前后出现的频率,即字节b
m-1
后是字节bm(1≤m≤n)出现的次数,得到转移概率;计算每个字节到其它字节的转移概率,形成转移概率矩阵;标准化处理转移概率矩阵,然后对标准化处理的转移概率矩阵应用色图,将恶意软件二进制文件可视化为恶意软件彩色图像;接着使用改进的clahe算法对彩色图像进行增强处理。将大小为256
×
256
×
3的恶意软件彩色图像放进卷积神经网络模型中进行训练,经过五个卷积层、两个bn层、三个池化层和两个全连接层,最后一层全连接层直接连接softmax层,通过softmax层进行类别分类。
[0109]
在训练阶段,使用交叉熵损失函数,本质上也是一种对数似然函数。计算损失之后,每次都会根据损失参数的值不断地实时更新,更新恶意软件分类模型的过程就是一直在不断学习的过程,直到学习到合理的值。同时,利用adam优化器的学习模型参数来对网络模型进行训练。
[0110]
根据不同的恶意软件样本设置不同的批尺寸、损失函数、优化器、训练周期和学习率。
[0111]
设计的卷积神经网络超参数设置如表1所示:
[0112]
表1
[0113]
超参数数值批尺寸128训练周期50学习率1e-4
优化器adam
[0114]
本实施例使用了google code jam(gcj)数据集进行验证,用于研究源代码作者归属问题,将未知的源代码与已知作者的源代码中的独特模式进行比较,通过识别不同语言编程的作者,完成分类问题。
[0115]
在gcj数据集上,本实验将标准化图像、马尔科夫图像以及本发明提出生成图像的方法进行对比。使用三种不同的方法对恶意软件图像分类,图4(a)是在gcj数据集上,训练集准确率随训练周期的变化趋势示意图;图4(b)是在gcj数据集上,测试集准确率随训练周期的变化趋势示意图;通过观察,本发明提出的生成恶意软件图像的方法要优于其他两种方法,收敛速度明显加快。当准确率趋于稳定时,主要在99.0%到99.5%之间上下轻微波动。
[0116]
图5(a)是在gcj数据集上,训练集损失值随训练周期的变化趋势示意图;图5(b)是在gcj数据集上,测试集损失值随训练周期的变化趋势示意图;随着训练周期的不断增加,损失函数的损失值不断降低,逐渐趋于稳定。可以观察到,本发明所提出方法的损失效果要优于其他两种方法,同时收敛速度也更快。通过对比数据集的准确率和损失值,发现测试集的效果要比训练集的效果好,原因是因为使用了正则化和数据增强的方法。
[0117]
实施例4
[0118]
一种基于alexnet网络模型的恶意软件分类系统,包括:
[0119]
数据预处理模块,被配置为,读取恶意软件,将恶意软件二进制文件可视化为恶意软件彩色图像;
[0120]
恶意软件分类模型训练模块,被配置为,将恶意软件图像输入卷积神经网络进行训练,得到训练好的恶意软件分类模型;
[0121]
检测模块,被配置为,将待检测的恶意软件通过所述数据预处理模块数据预处理后输入训练好的恶意软件分类模型,得到恶意软件分类结果。
[0122]
其中,读取恶意软件,将恶意软件二进制文件可视化为恶意软件彩色图像,包括:以二进制方式读取恶意软件;求取转移概率矩阵,转移概率矩阵包括每个字节到其它字节的转移概率;标准化处理转移概率矩阵;在转移概率矩阵上应用色图,将恶意软件二进制文件可视化为恶意软件彩色图像,使用改进的clahe算法对恶意软件彩色图像进行增强处理。
[0123]
实施例5
[0124]
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现实施例1-3任一所述的基于alexnet网络模型的恶意软件分类方法的步骤。
[0125]
实施例6
[0126]
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现实施例1-3任一所述的基于alexnet网络模型的恶意软件分类方法的步骤。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1