引言
惡意軟件分類致力于研究如何識別惡意軟件以及區(qū)分不同的惡意軟件家族,作為網(wǎng)絡(luò)安全研究領(lǐng)域中的一個重要分支,對于理解和防御不同類型的惡意軟件以及溯源網(wǎng)絡(luò)攻擊具有重要意義。惡意軟件分類方法大致可以分為:基于靜態(tài)特征[1]和動態(tài)特征[2]的傳統(tǒng)方法,以及引入機器學(xué)習(xí)[3]的新式方法。基于靜態(tài)特征的方法[4-6]依賴于復(fù)雜的特征工程,難以應(yīng)對惡意軟件的快速演化;基于動態(tài)特征的方法[7-9]涉及耗時的行為特征監(jiān)控[10],難以規(guī)模擴展。近年來,利用機器學(xué)習(xí)直接從文件字節(jié)序列中提取特征并進行惡意軟件分類的方法受到了廣泛關(guān)注[11-12]。該方法的框架如圖1所示,其研究核心是設(shè)計一個分類模型,將輸入樣本x的字節(jié)序列映射到一個范圍為[0,1]的概率分布c=[c0,c1,…,cM]上,其中∑cm=1。測試時,計算類別m=argmax(c),m=0表示良性軟件,m≥1表示相應(yīng)的惡意軟件家族。如果M=1,分類模型實現(xiàn)面向良性軟件與惡意軟件的二分類;如果M≥2,則分類模型實現(xiàn)面向惡意軟件家族的多分類,此時良性軟件被看作一類特殊的家族。
圖1基于字節(jié)序列分析的惡意軟件分類框架
通過機器學(xué)習(xí)模型自動地從序列中提取和編碼特征的技術(shù)路線能更好地適應(yīng)當(dāng)今惡意軟件的動態(tài)變化,也能更好地實現(xiàn)各類型和跨平臺的惡意軟件分類。然而,當(dāng)面對大數(shù)據(jù)場景下的海量文件樣本時,該路線面臨因惡意軟件的字節(jié)序列較長,直接輸入模型進行訓(xùn)練,導(dǎo)致時間和空間開銷巨大的挑戰(zhàn)。從形式上看,字節(jié)序列分類任務(wù)類似于時間序列分類任務(wù),借鑒其研究成果已被證明極具挑戰(zhàn)[12]。惡意軟件通常包含數(shù)十萬到數(shù)百萬長度的字節(jié)序列,以100萬長度的字節(jié)序列為例,其相當(dāng)于T=1 000 000步長的時間序列,而已知的最長時間序列分類任務(wù)步長≤16 000[13],這限制了現(xiàn)有時間序列分類模型的直接應(yīng)用。目前為止,能處理這種極端長度字節(jié)序列分類任務(wù)的實現(xiàn)是MalConv[11],其通過簡潔的模型設(shè)計,可以處理T=2 000 000步長的字節(jié)序列。遺憾的是,MalConv的訓(xùn)練開銷極大,例如在Ember[14]數(shù)據(jù)集60萬樣本上訓(xùn)練該模型,128 GB顯存的DGX1需要消耗一個月的時間。盡管MalConv2[12]通過優(yōu)化池化降低了訓(xùn)練的顯存開銷,但訓(xùn)練的時間開銷依然很大。本文針對上述如何提高字節(jié)序列分類模型的訓(xùn)練效率展開研究。通過引入離散傅里葉變換[15]分析文件字節(jié)序列的頻率分量發(fā)現(xiàn),字節(jié)序列中的能量主要集中在低頻部分。本文通過截取低頻分量來縮短輸入字節(jié)序列的長度,進而提出基于字節(jié)序列頻域采樣的惡意軟件分類方法。核心的設(shè)計思路為:設(shè)計頻域采樣策略,保留字節(jié)序列中的主要低頻分量,合成新的短信號,從而實現(xiàn)訓(xùn)練效率的提高。Windows和Android公開惡意軟件數(shù)據(jù)集上的實驗結(jié)果表明,與最先進的基于原始字節(jié)序列的MalConv2[12]相比,本文提出的方法與其分類效果相當(dāng),且將模型的訓(xùn)練時間和GPU顯存占用分別降低了90%和50%以上。綜上,本文的主要貢獻(xiàn)如下:(1)提出了一種基于字節(jié)序列頻域采樣的惡意軟件分類方法,通過設(shè)計頻域采樣策略,減小輸入字節(jié)序列的長度,實現(xiàn)模型訓(xùn)練效率的提高。(2)在公開數(shù)據(jù)集上進行了驗證,結(jié)果表明,提出的惡意軟件分類方法與最先進的基于原始字節(jié)序列的方法分類效果相當(dāng),且能將模型的訓(xùn)練時間和GPU顯存占用大幅降低。(3)分析了字節(jié)序列頻域采樣策略中采樣長度的影響,并對未來的研究方向進行了討論。
本文詳細(xì)內(nèi)容請下載:
http://www.j7575.cn/resource/share/2000006296
作者信息:
蔣永康,孫遜,楊玉龍
(貴州航天計量測試技術(shù)研究所,貴州貴陽550009)