趙晨潔 左羽 崔忠偉 李亮亮 吳戀 王永金 韋萍萍
摘 ?要:針對(duì)當(dāng)前的病毒軟件檢測方法難以應(yīng)對(duì)大數(shù)據(jù)時(shí)代下病毒軟件快速分類問題,提出一種病毒可視化檢測的分類方法。詳細(xì)闡述了病毒軟件可視化過程,并提出一種卷積神經(jīng)網(wǎng)絡(luò)結(jié)合注意力機(jī)制的模型(即CNN_CBAM模型)進(jìn)行病毒軟件家族分類的深度學(xué)習(xí)方法。病毒軟件樣本采用BIG2015和Malimg數(shù)據(jù)集,將其進(jìn)行可視化,并將CNN_CBAM模型在可視化后的數(shù)據(jù)集上進(jìn)行訓(xùn)練。實(shí)驗(yàn)結(jié)果顯示,CNN_CBAM模型能夠有效地對(duì)病毒軟件家族進(jìn)行分類,且效果優(yōu)于其他深度學(xué)習(xí)模型,其準(zhǔn)確率比CNN_SVM病毒分析的方法提升16.77%。
關(guān)鍵詞:病毒軟件;深度學(xué)習(xí);灰度圖;可視化;注意力機(jī)制
中圖分類號(hào):TP391.41 ? ? 文獻(xiàn)標(biāo)識(shí)碼: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)
病毒軟件是一種破壞計(jì)算機(jī)系統(tǒng)的軟件產(chǎn)品,又稱惡意軟件[1]。2020年7月McAfee Labs發(fā)布的威脅報(bào)告[2]顯示,在2019年第一季度,病毒軟件已經(jīng)突破9 億;而在病毒二進(jìn)制可執(zhí)行文件方面,從2017年至2019年間,單季度最高新增量高于110 萬。計(jì)算機(jī)病毒的數(shù)量一直趨于增長狀態(tài),造成的損失也在一直增加。
隨著網(wǎng)絡(luò)的大量智能化軟件興起,病毒軟件開發(fā)者為了防止被檢測系統(tǒng)發(fā)現(xiàn),不斷修改現(xiàn)有的病毒軟件,使得病毒的特征難以確定。常用的病毒軟件檢測方法是將檢測修改后的病毒軟件的特征進(jìn)行存儲(chǔ),再通過匹配來檢測新的病毒軟件,但由于存儲(chǔ)病毒的特征價(jià)格昂貴并且低效,因此研究如何不使用存儲(chǔ)特征識(shí)別病毒軟件是很有必要的。
2 ?病毒軟件檢測算法(Virus software detection algorithm)
2.1 ? 靜態(tài)方法
靜態(tài)分析[3]是對(duì)病毒軟件不執(zhí)行,直接分析其行為,對(duì)該宿主機(jī)的操作系統(tǒng)不進(jìn)行破壞。靜態(tài)分析常用方式包括語法庫調(diào)用、操作碼頻率分布、字節(jié)序列、n-gram、字符串簽名等。
MA[4]等人提出的語庫法調(diào)用,與示例惡意軟件數(shù)據(jù)進(jìn)行語義比較得出分類結(jié)果;CHARIKAR[5]等人提出的字符串簽名,是將可移植可執(zhí)行文件(PE)、字符串和字節(jié)序列三種不同的靜態(tài)特性結(jié)合起來對(duì)病毒軟件進(jìn)行分類;LI[6]等人提出的字符串簽名,根據(jù)字符串簽名的功能長度結(jié)合其特征識(shí)別病毒軟件;SANTOS[7]等人提出操作碼頻率分布,通過掌握每個(gè)操作碼的相關(guān)性,衡量操作碼序列頻率來檢測惡意軟件;KANG[8]等人提出基于n-gram特征,利用機(jī)器學(xué)習(xí)識(shí)別病毒軟件。
2.2 ? 動(dòng)態(tài)方法
動(dòng)態(tài)分析是在宿主機(jī)安全的情況下(如模擬器、沙箱或虛擬機(jī)等)對(duì)病毒軟件進(jìn)行執(zhí)行并分析,但對(duì)病毒軟件的進(jìn)程監(jiān)視、安裝、激活等需要大量的時(shí)間和計(jì)算。ZOLKIPLI[9]等人提出的基于行為方法,是將病毒軟件進(jìn)行動(dòng)態(tài)分析,使用HoneyClients和Amun收集惡意軟件的行為;ANDERSON[10]等人提出的基于行為檢測,是在CWSandbox和Anubis兩個(gè)虛擬平臺(tái)上執(zhí)行每個(gè)樣本,根據(jù)動(dòng)態(tài)收集指令蹤跡構(gòu)建圖形的分析識(shí)別;LIN[11]等人提出的API調(diào)用監(jiān)控,是應(yīng)用無監(jiān)督非負(fù)矩陣分解(NMF)進(jìn)行聚類分析,從大量API調(diào)用監(jiān)控中提取API檢測出類似的惡意軟件樣本;SHAHZAD[12]等人提出的交通流序列模式,是一種基于流特征聚類和序列比對(duì)的算法,分析了交通流序列模式之間的序列相似性。
2.3 ? 可視化分析方法
在網(wǎng)絡(luò)安全空間中,病毒軟件樣本數(shù)據(jù)量激增、二進(jìn)制可執(zhí)行文件特征量龐大等因素使得大量研究人員嘗試將病毒二進(jìn)制文件進(jìn)行可視化并用深度學(xué)習(xí)方法來檢測病毒軟件。
YOO[13]等人提出的映射,是使用自組織映射來可視化和檢測病毒;LORENZO[14]等人提出的動(dòng)態(tài)分析、可視化,是一個(gè)可視化地表示程序的總體流程,它依賴以太虛擬機(jī)監(jiān)控程序來基于動(dòng)態(tài)分析秘密地監(jiān)控程序的執(zhí)行;RIECK[15]等人提出的API調(diào)用監(jiān)控、可視化,是使用樹狀圖和線程圖收集有關(guān)API調(diào)用的信息和在沙箱中執(zhí)行的操作;ZHANG[16]等人提出的操作碼序列可視化,其操作碼是二進(jìn)制可執(zhí)行文件分解而成的,他們使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)的方法來識(shí)別一個(gè)二進(jìn)制可執(zhí)行文件是否是惡意的;NATARAJ[17]等人,首次將惡意軟件的二進(jìn)制文件可視化為灰度圖像;SHANKARPANI[18]等人,采用近鄰算法并融合歐氏距離方法,將可執(zhí)行文件轉(zhuǎn)化為灰度圖像,使用支持向量機(jī)(SVMs)對(duì)其進(jìn)行檢測。為了解決宿主機(jī)安全環(huán)境搭建復(fù)雜、傳統(tǒng)機(jī)器學(xué)習(xí)方法提取高維度特征困難的問題,提供更精準(zhǔn)的識(shí)別病毒的軟件家族,本文提出了使用二進(jìn)制可視化將二進(jìn)制文件進(jìn)行關(guān)鍵信息提取,而后進(jìn)行灰度圖像的轉(zhuǎn)化,并通過CNN_CBAM模型進(jìn)行病毒軟件家族分類。
3 ?構(gòu)建CNN_CBAM病毒檢測模型(Construction of virus detection model CNN_CBAM)
3.1 ? 注意力機(jī)制
注意力機(jī)制模塊(Convolutional Block Attention Module,簡稱CBAM模塊)[19],結(jié)合空間和通道注意力機(jī)制,通過上一層輸出的特征作為通道注意力模塊的輸入,經(jīng)過通道注意力模塊后得到的權(quán)值,是空間注意力模塊的輸入,回溯到原始的灰度圖像,分析出病毒存在的具體位置,最后輸出相關(guān)的特征值。CBAM模塊整體流程,如圖1所示。
3.2 ? 模型搭建
本文在卷積神經(jīng)網(wǎng)絡(luò)中添加CBAM模塊(注意力機(jī)制),對(duì)病毒的圖像關(guān)注通道的同時(shí)也關(guān)注了空間,對(duì)病毒圖像進(jìn)行更深層的學(xué)習(xí),從而識(shí)別出病毒圖像種族。整體的病毒訓(xùn)練模型是將原始病毒文件進(jìn)行可視化轉(zhuǎn)化,將轉(zhuǎn)化后的圖像放入本文設(shè)計(jì)的CNN_CBAM模型中進(jìn)行訓(xùn)練識(shí)別。病毒檢測整體框架,如圖2所示。
將病毒文件轉(zhuǎn)化為灰度圖像作為CNN_CBAM模型的輸入,經(jīng)過四層卷積核大小為、padding=“same”的卷積層。為了病毒圖像特征更好地展示,便于識(shí)別,加入CBAM模塊得到哪些病毒特征需要關(guān)注和需要關(guān)注病毒圖像位置的權(quán)重。將權(quán)重與第四層卷積后的特征相乘,得到的病毒特征更加有效,最后通過Softmax函數(shù)進(jìn)行病毒種族分類,采用測試集數(shù)據(jù)驗(yàn)證模型。
3.3 ? 模型訓(xùn)練
本文病毒檢測模型主要是將病毒軟件轉(zhuǎn)化為圖像后,傳入本文設(shè)計(jì)的CNN_CBAM模型中。CNN_CBAM模型由四層卷積、一個(gè)CBAM和一個(gè)全連接層構(gòu)成。
圖6和圖8是不同數(shù)據(jù)集在CNN_CBAM中的損失,能明顯看出訓(xùn)練集的損失一直在降低,驗(yàn)證集的損失與訓(xùn)練集的損失高度契合。圖7和圖9是Malimg數(shù)據(jù)集和BIG2015數(shù)據(jù)集在CNN_CBAM中的準(zhǔn)確率,發(fā)現(xiàn)在BIG2015數(shù)據(jù)集中第8輪epoch之后開始趨于穩(wěn)定在98%左右。在Malimg數(shù)據(jù)集訓(xùn)練中第6輪的epoch有低谷出現(xiàn),主要是測試樣本有一些病毒軟件的圖像比較特殊,在訓(xùn)練集里沒有包含測試集中的樣本,導(dǎo)致無法準(zhǔn)確學(xué)習(xí)到該樣本的特征值。
圖10和圖11是Malimg數(shù)據(jù)集在Inception V3模型中的訓(xùn)練結(jié)果,從圖中能明顯發(fā)現(xiàn)在第5輪epoch中Loss和ACC大幅度升降,并且驗(yàn)證集的ACC不穩(wěn)定,雖然最后訓(xùn)練達(dá)到了98.5%。同樣,在BIG2015數(shù)據(jù)集中也是類似的情況,在Inception V3中BIG2015的準(zhǔn)確率只達(dá)到了91.32%,但還是證明Inception V3對(duì)于處理病毒圖像有一定效果。綜上所述,無論是在Malimg數(shù)據(jù)集還是BIG2015數(shù)據(jù)集中,本文CNN_CBAM模型的訓(xùn)練精確度高于Inception V3,病毒識(shí)別效果有較大的提升。
4.4.2 ? 不同數(shù)據(jù)集對(duì)比
本實(shí)驗(yàn)采用Malimg數(shù)據(jù)集、BIG2015數(shù)據(jù)集分別在Inception V3、本文CNN_CBAM模型中進(jìn)行對(duì)比,最終結(jié)果為混淆矩陣,對(duì)角線上的數(shù)字在該行數(shù)字的值越大說明效果越好。圖14至圖17是各個(gè)模型的結(jié)果。
從圖14和圖15中可以看出,模型Inception V3在病毒圖像Malimg數(shù)據(jù)集和BIG2015數(shù)據(jù)集中預(yù)測效果不佳,無法準(zhǔn)確識(shí)別Malimg數(shù)據(jù)集類型為Lolyda.AA3和BIG2015數(shù)據(jù)集類型為Simda。這是因?yàn)長olyda.AA3和Simda病毒種族的樣本數(shù)量小,在訓(xùn)練時(shí)無法對(duì)其中的特征進(jìn)行提取,造成無法識(shí)別,同時(shí)也說明了現(xiàn)在流行的深度學(xué)習(xí)模型不能通用于病毒圖像的識(shí)別。
從圖16分析可知,本文設(shè)計(jì)的模型對(duì)Malimg數(shù)據(jù)集的分類有較高的準(zhǔn)確率,在樣本較少的Lolyda.AA3種族中也可以進(jìn)行準(zhǔn)確的識(shí)別,說明本文在卷積神經(jīng)網(wǎng)絡(luò)后加入的注意力機(jī)制可以準(zhǔn)確地提取病毒灰度圖像的特征,無論樣本大小,能夠準(zhǔn)確地對(duì)需要特別關(guān)注的特征進(jìn)行提取。
從圖17中可以看出,本文設(shè)計(jì)的CNN_CBAM模型在BIG2015數(shù)據(jù)集中的效果比Inception V3模型的效果較好,只是無法準(zhǔn)確預(yù)測到Simda病毒種類。由于該病毒種類的樣本較少,因此訓(xùn)練時(shí)無法達(dá)到精確度非常高的水平,但本文模型對(duì)其他病毒種類的識(shí)別精確度相對(duì)較高,較Inception V3模型有很大的提升。
為了更好地說明本文提出的CNN_CBAM模型的檢測效果,找到與本文相對(duì)應(yīng)的BIG2015數(shù)據(jù)集,文獻(xiàn)[22]用CNN_SVM對(duì)病毒軟件進(jìn)行檢測與之對(duì)比,如表4所示。
從表4中可以發(fā)現(xiàn),本文CNN_CBAM模型在BIG2015數(shù)據(jù)集中的準(zhǔn)確率較CNN_SVM模型提升0.1677;精確率較Inception V3模型提升0.09,較CNN_SVM模型提升0.05;召回率提升至0.85;F1-Score提升至0.86,充分說明將病毒特征放入CNN_CBAM模型中能夠更加準(zhǔn)確地識(shí)別細(xì)微的特征,使得識(shí)別病毒更加準(zhǔn)確。
5 ? 結(jié)論(Conclusion)
本次實(shí)驗(yàn)說明了深度學(xué)習(xí)對(duì)病毒識(shí)別是很有幫助的,通過將病毒轉(zhuǎn)化為可視化圖像,能夠讓網(wǎng)絡(luò)學(xué)習(xí)到更多人工無法提取的特征,并且本文加入了CNN_CBAM模型,通過將病毒特征放入通道注意力模塊中,確定具體哪些病毒特征值得關(guān)注,再經(jīng)過空間注意力機(jī)制,確定具體哪些位置的病毒特征需要加強(qiáng)學(xué)習(xí),使得病毒特征能更好地被學(xué)習(xí)到。
但有些病毒軟件的無效信息太多,直接轉(zhuǎn)化為圖像使得圖像的信息量過大,在卷積神經(jīng)網(wǎng)絡(luò)中學(xué)習(xí)會(huì)影響學(xué)習(xí)的特征,以后在病毒軟件檢測可視化中可以考慮將病毒文件的特征提取后再進(jìn)行可視化對(duì)其進(jìn)行分類。
參考文獻(xiàn)(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年上半年中國網(wǎng)絡(luò)安全報(bào)告[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-),女,碩士生.研究領(lǐng)域:圖像處理,深度學(xué)習(xí).
左 ? 羽(1962-),男,碩士,教授.研究領(lǐng)域:網(wǎng)絡(luò)安全,機(jī)器學(xué)習(xí),圖像處理,深度學(xué)習(xí).
崔忠偉(1980-),男,博士,副教授.研究領(lǐng)域:物聯(lián)網(wǎng)技術(shù),機(jī)器學(xué)習(xí).
李亮亮(1994-),男,碩士生.研究領(lǐng)域:圖像處理,深度學(xué)習(xí).
吳 ?戀(1986-),女,博士,副教授.研究領(lǐng)域:通信與信息系統(tǒng),機(jī)器學(xué)習(xí),圖像處理.
王永金(1994-),男,碩士生.研究領(lǐng)域:圖像處理,深度學(xué)習(xí).
韋萍萍(1975-),女,博士,副教授.研究領(lǐng)域:圖像處理,深度學(xué)習(xí).