紀鴻旭+張培+李璐
摘要:隨著惡意代碼的不斷變種,安全問題日趨嚴峻,對惡意代碼進行分類以便于分析惡意代碼從而進行防范顯得尤為重要。在數以千計的大量惡意代碼面前,傳統的分類方式已經不能滿足我們的快速分類高效分析數據的目的。本文針對惡意程序檢測分類中面對數據量大,病毒家族變種繁多等問題,提出了一種利用機器學習——支持向量機算法的方法來對惡意代碼進行分類。該方法通過提取對惡意代碼利用IDA反匯編工具生成的二進制代碼的概率統計模型特征,通過SVM算法進行分類操作。通過結果分析與對比分析,可以驗證,本文所使用的此種算法來檢測惡意代碼并對其分類是有效的。
關鍵詞:惡意軟件分類;概率統計模型;支持向量機;機器學習
中圖分類號:G350 文獻標識碼:A 文章編號:1007-9416(2017)06-0110-02
惡意代碼的大肆傳播,已成為嚴重的安全隱患。特別是近年來,隨著惡意代碼制造機、多態和變形技術的不斷成熟,惡意代碼的發作逐漸呈現變種速度快、模塊重復使用度高的特點。從惡意代碼的生成技術上,可以看到大部分“新”的惡意代碼是在原來惡意代碼的基礎上產生而來的,只是原惡意代碼的一個新變種。因此,當新的惡意代碼產生時,對惡意代碼的相似性進行自動化分析、識別和快速分類以及檢測,已經成為目前國內外研究的熱點和難點問題之一,同時也是亟待解決的問題。
1 惡意代碼分析技術
按照不同的信息獲取方式,通常采用兩種不同的分析方法,即動態分析和靜態分析。兩種分析方法獲取的信息量是不同的,而且在消耗的時間和資源上差別也很大。動態分析是指惡意代碼執行的情況下,利用程序調試工具對惡意代碼實施跟蹤和觀察,確定惡意代碼的行為;靜態分析是指在不執行二進制的前提下進行分析,如反匯編分析、源代碼分析、指令分析、反編譯等,這些方法都屬于逆向工程分析方法。其中在靜態分析中,指令分析技術最為常見、最為重要。本文的概率統計模型屬于靜態分析方法。
2 概率統計模型
2.1 模型建立
變值檢測的檢測方法為分段變值測量圖示。該方法具體描述如圖1所示。
對任意長的0-1序列,按照給定的長度分為多個分段,從第i段m長0-1序列獲取一對變值測度:分段中1的數目(P變量)和01的數目(Q變量)。將待測量序列分為M個定長段落,形成一組能夠按照次序先后編號的有序測度序列。該測量序列,在保持編號測序條件下可以分離為兩組獨立的測度序列。兩組測度序列分別映射為2種1維統計直方圖:{1PD,1DQ}。兩組測度序列在重疊移位的條件下行程有序對測度序列,構成2種2維直方圖分布:{2DP,2DQ}。除了所形成的2種1維圖示和2種2維圖示之外,變值測度序列,行成一種2為變值統計直方圖:{2DPQ}。
處理流程為:
(1)輸入N長0-1序列X,按m為長分段,形成M個段落,每個段落測出兩個參數。
(2)第i段形成二元測度組(pi,qi),2PQ:{(pi,qi)},0=
(3)將二元測度序列分離為兩個M組一元測度獨立序列,一元測度序列1P:{pi},0=
(4)利用龐加萊模型,將兩組一元序列轉化為二元序列,i-1 mod M。二元測度序列2P:{p,pi},0=
(5)將測度序列轉化為統計分布圖示,兩種一維經典圖示1P:1PM:1Q:1QM,三種二維變值圖示2P:2PM:2Q:2QM:2PQ:2PQM。
最后得出結論,從量化組合的角度來看變值模型,m=1-4時投影低維組合高維特征比較弱,最佳的轉折條件為m=8。
2.2 結果分析
(1)對于數據集的預處理,使用數據集中的byte文件,把十六進制文件轉換為2進制文件進行表示。
(2)train數據集中共包括多個分類,每個分類中又包括多個不同文件。使用抽樣學習的方法,對每類樣本中隨機抽取4個樣本進行檢測統計。
(3)對隨機抽樣得到的文件用模型進行測試。使用8bit分段值。
(4)使用二維和三維圖像分別可視化檢測結果,如圖2所示。
(5)提取相同種類的特征,比較不同種類特征。
3 基于SVM的惡意代碼分類
3.1 支持向量機
支持向量機SVM(Support Vector Machine)是在統計學習理論(Statistical Learning Theory)基礎上提出來的通用算法。其模型是定義在特征空間上的間隔最大的線性分類器,主要用于線性可分和近似可分的樣本數據中。而近年來,由于很多學者在SVM理論分析和算法實現等方面開展了大量的研究工作,現已把其擴展到了線性不可分,以及核函數的領域中。
通常情況下,同一家族的惡意程序會具有部分相同的功能或代碼[1]。所以可以通過基于數據挖掘的分類方法對惡意代碼的樣本進行分類[2]。通過學習已知惡意代碼的類別及行為信息,根據惡意代碼家族共享的特征訓練樣本,從而生成分類器或者分類模型,然后利用訓練好的分類器對未知的樣本進行分類。
3.2 結果分析
對4類惡意代碼進行SVM訓練,正確分類691例,正確率為83.8592%,如表1所示。
對數據使用PCA進行降維處理,投影到三維空間如圖3所示和二維空間如圖4所示,可以看到4類惡意代碼的分布情況。
經過研究實踐,本文已經實現了利用概率統計模型和SVM對惡意代碼分類的目的,并獲得了較為優秀的精確度。
4 結語
本文首先對惡意代碼及其相關知識作了概念性的介紹,提出基于概率統計模型的惡意代碼分析,把二進制文件以折線圖和三維圖的形式展現出來。同一個家族的惡意代碼在可視化模型上有著較為明顯的區別。對模型進行特征提取,通過SVM進行機器學習,對四類惡意代碼進行分類與檢測,獲得了較為優秀的精確度。
本文提出的方法是屬于靜態技術的一種,靜態分析不能很好地應對加殼、加密和多態的惡意代碼,因此將來的工作需要結合動態分析,提取出更為準確的特征。而且隨著惡意代碼生成和生存技術變得越來越復雜,程序的隱蔽性會更強,在傳播過程中也會改變程序本身的功能,而不僅僅是外形的變化,這些都需要我們提高重視,做好反惡意代碼的檢測工作。
參考文獻
[1]王毅.惡意代碼聚類中的特征選取研究[A].中國計算機學會.第31次全國計算機安全學術交流會論文集[C].中國計算機學會,2016:5.
[2]黃海新,張路,鄧麗.基于數據挖掘的惡意代碼檢測綜述[J].計算機科學,2016,(07):13-18+56.