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