近些年恶意软件变体呈指数型骤涨的主要原因是恶意软件开发人员广泛使用混淆、加密或其他技术来避免反病毒检测,从而使恶意软件呈现出多样化和多态性。这种变化对恶意软件变体检测提出了严峻的挑战。
常用的恶意软件检测技术主要是基于静态,动态特征的,如权限,字节码,API序列,将特征转化为一维信息。但是容易受到模糊技术的影响,产生错误的判断。因此,将文件可视化技术与恶意软件检测技术相结合,有效的防止了混淆技术的干扰。
深度卷积神经网络是恶意软件检测可视化技术常用的卷积神经网络之一。深度卷积网络是由多个卷积层和池化层组成。与单卷积结构相比,该结构能自发的提取纹理特征还能学习图像更深层次的正高维特征。Cui等人[1]将卷积神经网络与恶意软件可视化技术相结合,构建了端到端的恶意软件变体检测模型,有效地提高了海量数据情况下恶意软件变体检测的准确性和效率。Kalash等人[2]提出通过增加卷积层的数量来提高模型提取恶意软件图像特征的能力。Ullah等人[3]采用了转移学习方法,他们使用GoogLeNet[4]和ResNet[5]等经典深度卷积网络对恶意软件图像进行分类。
虽然可以降低检测的误报率,但增加了计算量和参数数目,成本成为了恶意软件变体检测模型的一大挑战。
在上述研究的基础上,本文提出了一种新的研究思路分解深度卷积神经网络(Dec-DCNN)结合深度卷积网络和奇异值分解(SVD)检测恶意软件变种。Dec-DCNN能有效地降低深度卷积神经网络运算的高计算资源消耗,这是由于Dec-DCNN利用奇异值分解(SVD)将预先训练好的网络中的标准卷积分解为深度卷积和点卷积的两步卷积组合,计算量和参数较少。另外,新的两步卷积算法的权值是由预训练卷积层的权值计算出来的,因此不需要再训练就可以保持原来的检测精度。
深度卷积网络中每一层的卷积层和子采样层将学习恶意软件的图像特征,学习后提取灰度图像的高维正特征。可以看出,卷积层和子采样层是网络的核心卷积层可以有效地增强输入信号的特征,降低噪声,而子采样层有助于减少数据处理量,只保留有用的特征信息。
本文提出的卷积分解方法将深度卷积中预先训练好的标准卷积分解为深度卷积和点卷积的组合,并利用奇异值分解(SVD)计算出新卷积的权重。将标准卷积分解为深度层和点层。深度层和点层的结构上类似于深度可分卷积,但不同的是深度可分卷积需要重新训练。本方法是基于预训练网络,无需再训练即可保持较高精度。为了保持分解程度和精度的平衡,在奇异值分解基础上增加一个调整引子r。新层的权值是由奇异值分解的卷积函数权值确定。奇异值按从大到小的顺序进行排列,前面的奇异值就会占据大部分奇异值,通过尺度因子r,来保留前r个奇异值和卷积输入信道c结合表示网络检测精度和网络分解程度之间的平衡。r越小,模型参数越少,精度就会越小。
整个框架由两部分组成,一个是基于预训练深度卷积的检测网络,另一个是基于网络结合SVD方法分解卷积的优化网络。
首先将恶意软件的灰度图像的样本输入到深度卷积网络中进行预训练。在预训练之后,使用SVD分解方法对预训练网络中的标准卷积层进行分解,得到新的深度层和点层,并生成如图4b所示的网络。由于深度卷积网络的第一层和最后一层分别用于高维正特征的采样和输出,为了防止精度的大幅下降,我们只对网络的中间部分进行分解。
生成优化后的网络后,将测试样本输入图4b中的网络,优化后的深卷积层获得深层高维正特征。然后网络中的全连接层将前向高维特征转化为满足标准的一维特征,根据所获得的特征对恶意软件变种进行识别和分类。
本文选取的微软发布的BIG2015恶意软件数据集中恶意软件字节文件作为实验数据。包含10868个标记训练数据和10873个未标记测试数据,来自9个不同的家族,检测使用的灰度图像都是从恶意软件字节文件映射出来。比例因子r设为5,初始学习率(r)设为0.0005,最大迭代次数为1000次,采用退化学习率的训练策略,每20次迭代减少10次。
为了证明提出的方法在恶意软件变体检测方面的有效性,设计了不同的实验来验证其有效性。
(1)在迭代次数、学习速率等网络参数相同的情况下,从检测精度、损失、检测时间、参数个数等方面将Dec-DCNN方法与其他经典的基于深度卷积的恶意软件检测方法进行比较。
(2) 利用图像特征对不同种类的恶意软件进行检测,并与主流恶意软件检测方法的平均检测结果进行比较。
该处使用的url网络请求的数据。
本文提出的一种Dec-DCNN方法来检测恶意软件的变种。该方法利用奇异值分解(SVD)将基于DCNN的预训练网络中的标准卷积分解为深度层卷积和点层卷积的组合,以优化检测模型的计算资源消耗。
实验结果表明,基于Dec-DCNN的网络结构不仅能在相同参数设置下有效地保持DCNN网络方法的检测精度,而且能大大降低检测的时间开销和计算开销。同时,与SVM、KNN、RF等主流恶意软件检测方法相比,Dec-DCNN方法具有更强的恶意软件灰度图像纹理特征表达能力,能够更好地检测不同类型的恶意软件变种。
[1] Z. Cui, F. Xue, X. Cai, ”Detection of Malicious Code Variants Based on Deep Learning,” IEEE Transactions on Industrial Informatics, vol. 14(7), pp. 3187-3196, 2018.
[2] M. Kalash, M. Rochan, N. Mohammed, ”Malware classification with deep convolutional neural networks,” 2018 9th IFIP International Conference on New Technologies, pp. 1-5, 2018.
[3] KR. Ullah, Z. Xiaosong, K. Rajesh, ”Analysis of resnet and googlenet models for malware detection,” Journal of Computer Virology and Hacking Techniques, vol. 15(1), pp. 29-37, 2019.
[4] C. Szegedy, W. Liu, Y. Jia, ”Going deeper with convolutions,”
Proceedings of the IEEE conference on computer vision and pattern recognition, pp. 1-9, 2015.
[5] K. He, X. Zhang, S. Ren, ”Deep residual learning for image recognition,” Proceedings of the IEEE conference on computer vision and pattern recognition, pp. 770-778, 2016.