基于注意力机制的病毒软件可视化检测方法

2021-07-20 11:31赵晨洁左羽崔忠伟李亮亮吴恋王永金韦萍萍
软件工程 2021年6期
关键词:注意力机制深度学习可视化

赵晨洁 左羽 崔忠伟 李亮亮 吴恋 王永金 韦萍萍

摘  要:针对当前的病毒软件检测方法难以应对大数据时代下病毒软件快速分类问题,提出一种病毒可视化检测的分类方法。详细阐述了病毒软件可视化过程,并提出一种卷积神经网络结合注意力机制的模型(即CNN_CBAM模型)进行病毒软件家族分类的深度学习方法。病毒软件样本采用BIG2015和Malimg数据集,将其进行可视化,并将CNN_CBAM模型在可视化后的数据集上进行训练。实验结果显示,CNN_CBAM模型能够有效地对病毒软件家族进行分类,且效果优于其他深度学习模型,其准确率比CNN_SVM病毒分析的方法提升16.77%。

关键词:病毒软件;深度学习;灰度图;可视化;注意力机制

中图分类号:TP391.41     文献标识码:A

Abstract: Current virus software detection methods have difficulty in grappling with the rapid classification of virus software in big data era. In view of this issue, this paper proposes a classification method for virus visual detection, which elaborates on the visualization process of virus software. It proposes a deep learning method of convolutional neural network combined with attention mechanism model (ie CNN_CBAM model, Convolutional Neural Network_Convolutional Block Attention Module) to classify virus software families. Virus software samples use the BIG2015 and Malimg datasets, which are visualized in this paper. The proposed CNN_CBAM model is trained on the visualized dataset. The experimental results show that the CNN_CBAM model proposed in this paper can effectively classify the virus software families, and it is better than other deep learning models. Its accuracy rate is 16.77% higher than that of CNN_SVM virus analysis method.

Keywords: virus software; deep learning; grayscale image; visualization; attention mechanism

1   引言(Introduction)

病毒軟件是一种破坏计算机系统的软件产品,又称恶意软件[1]。2020年7月McAfee Labs发布的威胁报告[2]显示,在2019年第一季度,病毒软件已经突破9 亿;而在病毒二进制可执行文件方面,从2017年至2019年间,单季度最高新增量高于110 万。计算机病毒的数量一直趋于增长状态,造成的损失也在一直增加。

随着网络的大量智能化软件兴起,病毒软件开发者为了防止被检测系统发现,不断修改现有的病毒软件,使得病毒的特征难以确定。常用的病毒软件检测方法是将检测修改后的病毒软件的特征进行存储,再通过匹配来检测新的病毒软件,但由于存储病毒的特征价格昂贵并且低效,因此研究如何不使用存储特征识别病毒软件是很有必要的。

2  病毒软件检测算法(Virus software detection algorithm)

2.1   静态方法

静态分析[3]是对病毒软件不执行,直接分析其行为,对该宿主机的操作系统不进行破坏。静态分析常用方式包括语法库调用、操作码频率分布、字节序列、n-gram、字符串签名等。

MA[4]等人提出的语库法调用,与示例恶意软件数据进行语义比较得出分类结果;CHARIKAR[5]等人提出的字符串签名,是将可移植可执行文件(PE)、字符串和字节序列三种不同的静态特性结合起来对病毒软件进行分类;LI[6]等人提出的字符串签名,根据字符串签名的功能长度结合其特征识别病毒软件;SANTOS[7]等人提出操作码频率分布,通过掌握每个操作码的相关性,衡量操作码序列频率来检测恶意软件;KANG[8]等人提出基于n-gram特征,利用机器学习识别病毒软件。

2.2   动态方法

动态分析是在宿主机安全的情况下(如模拟器、沙箱或虚拟机等)对病毒软件进行执行并分析,但对病毒软件的进程监视、安装、激活等需要大量的时间和计算。ZOLKIPLI[9]等人提出的基于行为方法,是将病毒软件进行动态分析,使用HoneyClients和Amun收集恶意软件的行为;ANDERSON[10]等人提出的基于行为检测,是在CWSandbox和Anubis两个虚拟平台上执行每个样本,根据动态收集指令踪迹构建图形的分析识别;LIN[11]等人提出的API调用监控,是应用无监督非负矩阵分解(NMF)进行聚类分析,从大量API调用监控中提取API检测出类似的恶意软件样本;SHAHZAD[12]等人提出的交通流序列模式,是一种基于流特征聚类和序列比对的算法,分析了交通流序列模式之间的序列相似性。

2.3   可视化分析方法

在网络安全空间中,病毒软件样本数据量激增、二进制可执行文件特征量庞大等因素使得大量研究人员尝试将病毒二进制文件进行可视化并用深度学习方法来检测病毒软件。

YOO[13]等人提出的映射,是使用自组织映射来可视化和检测病毒;LORENZO[14]等人提出的动态分析、可视化,是一个可视化地表示程序的总体流程,它依赖以太虚拟机监控程序来基于动态分析秘密地监控程序的执行;RIECK[15]等人提出的API调用监控、可视化,是使用树状图和线程图收集有关API调用的信息和在沙箱中执行的操作;ZHANG[16]等人提出的操作码序列可视化,其操作码是二进制可执行文件分解而成的,他们使用卷积神经网络(CNN)的方法来识别一个二进制可执行文件是否是恶意的;NATARAJ[17]等人,首次将恶意软件的二进制文件可视化为灰度图像;SHANKARPANI[18]等人,采用近邻算法并融合欧氏距离方法,将可执行文件转化为灰度图像,使用支持向量机(SVMs)对其进行检测。为了解决宿主机安全环境搭建复杂、传统机器学习方法提取高维度特征困难的问题,提供更精准的识别病毒的软件家族,本文提出了使用二进制可视化将二进制文件进行关键信息提取,而后进行灰度图像的转化,并通过CNN_CBAM模型进行病毒软件家族分类。

3  构建CNN_CBAM病毒检测模型(Construction of virus detection model CNN_CBAM)

3.1   注意力机制

注意力机制模块(Convolutional Block Attention Module,简称CBAM模块)[19],结合空间和通道注意力机制,通过上一层输出的特征作为通道注意力模块的输入,经过通道注意力模块后得到的权值,是空间注意力模块的输入,回溯到原始的灰度图像,分析出病毒存在的具体位置,最后输出相关的特征值。CBAM模块整体流程,如图1所示。

3.2   模型搭建

本文在卷积神经网络中添加CBAM模块(注意力机制),对病毒的图像关注通道的同时也关注了空间,对病毒图像进行更深层的学习,从而识别出病毒图像种族。整体的病毒训练模型是将原始病毒文件进行可视化转化,将转化后的图像放入本文设计的CNN_CBAM模型中进行训练识别。病毒检测整体框架,如图2所示。

将病毒文件转化为灰度图像作为CNN_CBAM模型的输入,经过四层卷积核大小为、padding=“same”的卷积层。为了病毒图像特征更好地展示,便于识别,加入CBAM模块得到哪些病毒特征需要关注和需要关注病毒图像位置的权重。将权重与第四层卷积后的特征相乘,得到的病毒特征更加有效,最后通过Softmax函数进行病毒种族分类,采用测试集数据验证模型。

3.3   模型训练

本文病毒检测模型主要是将病毒软件转化为图像后,传入本文设计的CNN_CBAM模型中。CNN_CBAM模型由四層卷积、一个CBAM和一个全连接层构成。

图6和图8是不同数据集在CNN_CBAM中的损失,能明显看出训练集的损失一直在降低,验证集的损失与训练集的损失高度契合。图7和图9是Malimg数据集和BIG2015数据集在CNN_CBAM中的准确率,发现在BIG2015数据集中第8轮epoch之后开始趋于稳定在98%左右。在Malimg数据集训练中第6轮的epoch有低谷出现,主要是测试样本有一些病毒软件的图像比较特殊,在训练集里没有包含测试集中的样本,导致无法准确学习到该样本的特征值。

图10和图11是Malimg数据集在Inception V3模型中的训练结果,从图中能明显发现在第5轮epoch中Loss和ACC大幅度升降,并且验证集的ACC不稳定,虽然最后训练达到了98.5%。同样,在BIG2015数据集中也是类似的情况,在Inception V3中BIG2015的准确率只达到了91.32%,但还是证明Inception V3对于处理病毒图像有一定效果。综上所述,无论是在Malimg数据集还是BIG2015数据集中,本文CNN_CBAM模型的训练精确度高于Inception V3,病毒识别效果有较大的提升。

4.4.2   不同数据集对比

本实验采用Malimg数据集、BIG2015数据集分别在Inception V3、本文CNN_CBAM模型中进行对比,最终结果为混淆矩阵,对角线上的数字在该行数字的值越大说明效果越好。图14至图17是各个模型的结果。

从图14和图15中可以看出,模型Inception V3在病毒图像Malimg数据集和BIG2015数据集中预测效果不佳,无法准确识别Malimg数据集类型为Lolyda.AA3和BIG2015数据集类型为Simda。这是因为Lolyda.AA3和Simda病毒种族的样本数量小,在训练时无法对其中的特征进行提取,造成无法识别,同时也说明了现在流行的深度学习模型不能通用于病毒图像的识别。

从图16分析可知,本文设计的模型对Malimg数据集的分类有较高的准确率,在样本较少的Lolyda.AA3种族中也可以进行准确的识别,说明本文在卷积神经网络后加入的注意力机制可以准确地提取病毒灰度图像的特征,无论样本大小,能够准确地对需要特别关注的特征进行提取。

从图17中可以看出,本文设计的CNN_CBAM模型在BIG2015数据集中的效果比Inception V3模型的效果较好,只是无法准确预测到Simda病毒种类。由于该病毒种类的样本较少,因此训练时无法达到精确度非常高的水平,但本文模型对其他病毒种类的识别精确度相对较高,较Inception V3模型有很大的提升。

為了更好地说明本文提出的CNN_CBAM模型的检测效果,找到与本文相对应的BIG2015数据集,文献[22]用CNN_SVM对病毒软件进行检测与之对比,如表4所示。

从表4中可以发现,本文CNN_CBAM模型在BIG2015数据集中的准确率较CNN_SVM模型提升0.1677;精确率较Inception V3模型提升0.09,较CNN_SVM模型提升0.05;召回率提升至0.85;F1-Score提升至0.86,充分说明将病毒特征放入CNN_CBAM模型中能够更加准确地识别细微的特征,使得识别病毒更加准确。

5   结论(Conclusion)

本次实验说明了深度学习对病毒识别是很有帮助的,通过将病毒转化为可视化图像,能够让网络学习到更多人工无法提取的特征,并且本文加入了CNN_CBAM模型,通过将病毒特征放入通道注意力模块中,确定具体哪些病毒特征值得关注,再经过空间注意力机制,确定具体哪些位置的病毒特征需要加强学习,使得病毒特征能更好地被学习到。

但有些病毒软件的无效信息太多,直接转化为图像使得图像的信息量过大,在卷积神经网络中学习会影响学习的特征,以后在病毒软件检测可视化中可以考虑将病毒文件的特征提取后再进行可视化对其进行分类。

参考文献(References)

[1] YASSINE L, LANET J L, SOUIDI E M. A behavioural in-depth analysis of ransomware infection[J]. IET Information Security, 2020, 15(1):38-58.

[2] 瑞星.2020年上半年中国网络安全报告[EB/OL].[2020-04-28].     http://it.rising.com.cn/d/file/it/dongtai/20210113/2020.pdf.

[3] FIRDAUS A, ANUAR N B, KARIM A, et al. Discovering optimal features using static analysis and a genetic search based method for Android malware detection[J]. Frontiers of Information Technology & Electronic Engineering, 2018, 19(06):712-737.

[4] MA X, GUO S, BAI W, et al. An API semantics-aware malware detection method based on deep learning[J]. Security and Communication Networks, 2019(1):1-9.

[5] CHARIKAR M S. Similarity estimation techniques from rounding algorithms[J]. Applied and Computational Harmonic Analysis, 2016, 2(3):380-388.

[6] LI D, LI Q, YE Y, et al. A framework for enhancing deep neural networks against adversarial malware[J]. Ijcsa, 2020, 2(3):315-321.

[7] SANTOS I, BREZO F, NIEVES J, et al. Idea: Opcode-sequence-based malware detection[C]// Engineering Secure Software and Systems. Computer Science. Berlin, Heidelberg: Springer, 2010:6-13.

[8] KANG B J, YERIMA S Y, SEZER S, et al. N-gram opcode analysis for android malware detection[J]. Ijcsa, 2016, 1(1):      231-255.

[9] ZOLKIPLI M F, JANTAN A. A framework for defining malware behavior using run time analysis and resource monitoring[C]// Software Engineering and Computer Systems. Communications in Computer and Information Science. Berlin, Heidelberg: Springer, 2011:199-209.

[10] ANDERSON B, QUIST D, NEIL J, et al. Graph-based malware detection using dynamic analysis[J]. Journal in Computer Virology, 2011, 7(4):247-258.

[11] LIN Q G, LI N, QI Q, et al. Using API call sequences for IoT malware classification based on convolutional neural networks[J]. International Journal of Software Engineering and Knowledge Engineering, 2021, 31(04):587-612.

[12] SHAHZAD F, SHAHZAD M, FAROOQ M. In-execution dynamic malware analysis and detection by mining information in process control blocks of Linux OS[J]. Information Sciences, 2013, 231(9):45-63.

[13] YOO S, KIM S, KIM S, et al. AI-HydRa: Advanced hybrid approach using random forest and deep learning for malware classification[J]. Information Sciences, 2020, 546(2):420-435.

[14] LORENZO A D, MARTINELLI F, MEDVET E, et al. Visualizing the outcome of dynamic analysis of android malware with VizMal[J]. Information Security Technical Report, 2020, 50(2):1-9.

[15] RIECK K, TRINIUS P, Willems C, et al. Automatic analysis of malware behavior using machine learning[J]. Journal of Computer Security, 2011, 19(4):639-668.

[16] ZHANG T R, YANG L X, YANG X F, et al. Dynamic malware containment under an epidemic model with alert[J]. Physica A: Statistical Mechanics and its Applications, 2017, 3(470):249-260.

[17] NATARAJ L, KARTHIKEYAN S, JACOB G, et al. Malware images: Visualization and automatic classification[C]// International Conference Proceeding Series (ICPS). 2011 International Symposium on Visualization for Cyber Security. New York, USA: ACM, 2011:11-20.

[18] SHANKARPANI M K, KANCHERLA K, MOVVA R, et al. Computational intelligent techniques and similarity measures for malware classification[J]. Computational Intelligence for Privacy and Security, 2012, 394(1):215-236.

[19] WOO S, PARK J, LEE J Y, et al. CBAM: Convolutional block attention module[J]. European Conference on Computer Vision, 2018, 10(8):168-203.

[20] KAGGLE. Microsoft malware classi?cation challenge(BIG2015)[EB/OL]. [2015-3-19]. https://www.kaggle.com/c/malware-classification.

[21] SWAMI A, JAIN R. Scikit-learn: Machine learning in python[J]. Journal of Machine Learning Research, 2013, 12(10):2825-2830.

[22] AGARAP A F. Towards building an intelligent anti-malware system: A deep learning approach using support vector machine (svm) for malware classification[J]. ArXiv Preprint, 2017, 8(1):45-52.

作者简介:

赵晨洁(1995-),女,硕士生.研究领域:图像处理,深度学习.

左   羽(1962-),男,硕士,教授.研究领域:网络安全,机器学习,图像处理,深度学习.

崔忠伟(1980-),男,博士,副教授.研究领域:物联网技术,机器学习.

李亮亮(1994-),男,硕士生.研究领域:图像处理,深度学习.

吴  恋(1986-),女,博士,副教授.研究领域:通信与信息系统,机器学习,图像处理.

王永金(1994-),男,硕士生.研究领域:图像处理,深度学习.

韦萍萍(1975-),女,博士,副教授.研究领域:图像处理,深度学习.

猜你喜欢
注意力机制深度学习可视化
基于CiteSpace的足三里穴研究可视化分析
基于Power BI的油田注水运行动态分析与可视化展示
基于CGAL和OpenGL的海底地形三维可视化
“融评”:党媒评论的可视化创新
基于深度学习的问题回答技术研究
基于LSTM?Attention神经网络的文本特征提取方法
基于注意力机制的双向LSTM模型在中文商品评论情感分类中的研究
InsunKBQA:一个基于知识库的问答系统
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望