張福勇, 秦 勇(東莞理工學院 計算機與網絡安全學院, 廣東 東莞 523808)
基于屬性相似度的惡意代碼檢測方法*
張福勇, 秦 勇
(東莞理工學院 計算機與網絡安全學院, 廣東 東莞 523808)
針對未知惡意代碼數量急劇增長,現有的檢測方法不能有效檢測的問題,提出一種基于屬性相似度的惡意代碼檢測方法.該方法將樣本文件轉換成十六進制格式,提取樣本文件的所有n-gram,計算每個n-gram的信息增益,并選擇具有最大信息增益的N個n-gram作為特征屬性,分別計算惡意代碼和正常文件每一維屬性的平均值,通過比較待測樣本屬性與惡意代碼和正常文件兩類別屬性均值的相似度來判斷待測樣本類別.結果表明,該方法對未知惡意代碼的檢測性能優于基于n-gram的惡意代碼檢測方法.
惡意代碼檢測; 屬性相似度; 網絡與信息安全; 入侵檢測; 數據挖掘; 機器學習; 未知惡意代碼; 靜態分析
據Symantec 2016年6月公布的數據稱:2015年新增惡意代碼數量為4.3億,較2014年的3.17億增加了36%,惡意代碼總數目前已超過21億,并且其正朝著頑固化、隱匿化的方向發展,攻擊更加精準隱蔽,造成的損失也更加嚴重[1].2015年發現并報告的9次大型數據泄露事故中,總計4.29億條身份信息遭遇曝光,規模最大的一項事故已經造成1.91億條記錄外泄[1].
惡意代碼的數量繼續呈高速增長的態勢,其危害已滲透到社會生活的很多方面,給經濟生活造成了諸多不便及巨大的損失.但目前的商業化安全防護軟件仍是以特征碼檢測為主,這種方法僅能識別已知惡意代碼,而且隨著惡意代碼數量的急劇增長,特征碼庫日趨臃腫,檢測效率越來越低.雖然一些商業化安全防護軟件開始加入了基于代碼行為分析的檢測方法,但這些方法僅通過對系統中文件、注冊表等行為的監控來發現未知惡意代碼,對未知惡意代碼的檢測率較低(僅為50%~80%).
目前,機器學習技術已經被廣泛應用在惡意代碼檢測領域[2-3].很多研究人員通過分析惡意代碼與正常文件的靜態特征差異來檢測惡意代碼.如Ding等人[4]通過對惡意代碼二進制文件樣本進行反匯編,從匯編代碼中得到API調用序列,并采用基于目標導向的關聯挖掘算法對API調用序列建模,從而實現惡意代碼的檢測;Sheen等人[5]提出一種基于和聲搜索的惡意代碼檢測方法,該方法采用靜態API特征和PE文件特征來檢測惡意代碼;Shamsul等人[6]提出一種支持向量機包裝和過濾相結合的惡意代碼檢測框架,該框架通過統計分析API調用實現惡意代碼檢測;Cesare等人[7]通過惡意代碼中包含的一系列控制流圖來描述惡意代碼特征,并提出基于字符串特征向量間距的距離度量方法,采用特征向量的最小匹配距離來識別惡意代碼;Zhao等人[8]提出采用靜態操作碼特征來檢測惡意代碼;另外,還有提取樣本文件的n-gram字節特征檢測方法[9-11],通過挖掘PE文件靜態格式信息實現惡意代碼檢測的方法[12]及多特征結合的檢測方法等[13-14].
本文提出一種基于屬性相似度的惡意代碼檢測方法(MDMAS),該方法首先提取訓練數據的特征屬性,生成特征向量,并分別計算兩個類別各維度屬性的平均值,然后根據屬性的平均值計算測試樣本與訓練數據的屬性相似度,最后根據屬性相似度的大小判斷其所屬類別.實驗結果表明,該方法可有效檢測未知惡意代碼,檢測性能優于Jeremy等人[9]提出的基于n-gram字節的惡意代碼檢測方法.
本文提出的基于屬性相似度的惡意代碼檢測方法假設如下:惡意代碼和正常文件存在某些差異特征,且可以提取這些差異特征,并通過判斷待測樣本與這兩個類別特征屬性的相似度來識別惡意代碼.識別過程需要兩個主要步驟:特征提取和屬性相似度計算.
1.1 特征提取

本文采用Jeremy等人[9]提出的基于n-gram字節的特征提取方法,該方法計算訓練數據每個n-gram字節的信息增益,并選擇信息增益最大的N個n-gram作為分類特征.
對于一個n-gram特征屬性T,其信息增益IG(T)的計算公式為
IG(T)=H(C)-H(C|T)
(1)
式中:H(C)為類別C的熵;H(C|T)為屬性為T時類別C的條件熵.假設類別C有n個不同取值C1,C2,…,Cn,則H(C)的計算公式為
(2)
式中,P(Ci)為Ci出現的概率.H(C|T)的計算公式為
(3)

特征向量的生成步驟如下:
1) 提取所有訓練樣本的n-gram,這里n-gram指的是將樣本文件轉換成十六進制后的連續n個字節.假設n=3,一個樣本文件轉換成十六進制后的字節序列為:25 50 44 46 2D 31,則該文件的3-gram為:255044,504446,44462D,462D31.
2) 計算每個n-gram的信息增益,并將其按信息增益由大到小排序.
3) 選擇排序后的前N個n-gram作為分類特征,比較樣本文件是否存在這N個n-gram,如果存在,則對應屬性值為1,否則為0,最終得到一個N維特征向量.例如,取N=10,最終得到的N維向量的形式為(1,0,1,1,1,0,0,0,1,1).
1.2 屬性相似度計算
屬性相似度計算分為3個步驟,具體過程如下:
1) 分別對兩個類別訓練數據的每一維屬性取平均值.惡意代碼類別得到平均值M={m1,m2,…,mN},正常代碼類別得到平均值B={b1,b2,…,bN}.假設惡意代碼類別有3個訓練樣本,特征向量分別為:(0,0,0,0,0,0,0,0,1,1),(0,0,0,0,0,0,0,0,0,1)和(0,0,0,0,0,0,0,0,1,0);正常代碼類別也有三個訓練樣本,特性向量分別為:(1,1,1,1,1,1,1,1,0,0),(1,1,1,1,1,1,1,1,1,0)和(1,1,1,1,1,1,1,1,0,1),則惡意代碼類別的平均值向量為:(0,0,0,0,0,0,0,0,0.67,0.67),正常代碼類別的平均值向量為:(1,1,1,1,1,1,1,1,0.33,0.33).
2) 計算待測樣本與這兩個類別平均值向量的屬性相似度.設待測樣本的特征向量為(u1,u2,…,uN),屬性相似度計算方法為:
如果|ui-mi|<|ui-bi|(其中,ui為待測樣本的第i個屬性值;mi為惡意代碼類別平均值第i個屬性值;bi為正常代碼類別平均值第i個屬性值),則待測樣本的第i個屬性與M相似.
如果|ui-mi|=|ui-bi|,則待測樣本的第i個屬性不與任何類別相似.
如果|ui-mi|>|ui-bi|,則待測樣本的第i個屬性與B相似.
3) 比較待測樣本與兩個類別相似屬性的個數,待測樣本的類別與相似屬性多的類別一致.若與兩個類別的相似屬性個數相同,則采用決策樹方法判斷其類別.
2.1 實驗數據集
為了更好地驗證所提方法的有效性,本文采用兩組實驗數據.第1組數據中的惡意代碼為2014年間收集的樣本,用作訓練數據;第2組數據中的惡意代碼為2015年間收集的樣本,作為測試數據,用于檢驗方法對未知惡意代碼的檢測性能,并評估相關參數對檢測結果的影響.所有的正常文件樣本均來自Windows XP系統文件,且兩組實驗數據均沒有重復.第1組數據的信息如表1所示,第2種數據的信息如表2所示,所有數據均為Win32 PE格式.
綜合考慮樣本訓練過程中的計算復雜度及檢測性能,本文選取n=3,即提取樣本文件的3-gram計算信息增益.采用第1組數據作為訓練數據,共提取互不相同的3-gram數量為376 942.

表1 第1組實驗數據Tab.1 First set of experimental data

表2 第2組實驗數據Tab.2 Second set of experimental data
2.2 參數N的敏感性分析
本節采用第2組數據作為測試數據,驗證所提方法的有效性,并評估算法中僅剩的可變參數N對檢測性能的影響.圖1顯示了N取值范圍為100~1 000時的分類準確率情況.從圖1可以看出,N取不同值時,分類準確率有一定的波動,但波動不大,分類準確率范圍在91.3%~93.48%之間,而且N取值在100~500時的分類準確率要高于N取值在600~1 000的范圍,這說明對MDMAS方法而言,分類準確率不會隨著N取值的增加而提高.由圖1中結果可以看出,N的最佳取值范圍應該在100~500之間.

圖1 N對分類準確率的影響Fig.1 Effect of N on classification accuracy
圖2給出了N取值范圍為100~1 000時的檢測率情況.由圖2可以看出,N取值對檢測率的影響要大于對分類準確率的影響,檢測率的波動范圍為92%~97.5%,尤其是當N取值大于600時,檢測率呈明顯下降趨勢.另外,與N對分類準確率的影響情況類似,N取值范圍為100~500時的檢測率要明顯高于取值范圍為600~1 000的情況.N取值范圍為100~500時,檢測率的波動范圍為96.5%~97.5%,分類準確率的波動范圍為92.39%~93.48%,浮動范圍均約為1%,相對比較平穩.從分析結果可知,N的最佳取值范圍為100~500,而且在這個取值范圍內對檢測性能的影響不大.

圖2 N對檢測率的影響Fig.2 Effect of N on detection rate
2.3 不同算法實驗結果比較與分析
為驗證所提方法的檢測性能,將MDMAS算法與基于Jeremy的n-gram字節惡意代碼檢測方法[7]進行比較.其中Jeremy方法中包括樸素貝葉斯(na?ve bayes,NB)、貝葉斯網絡(bayesian networks,BN)、支持向量機(support vector machine,SVM)和C4.5決策樹(C4.5 decision tree,DT)4種分類算法.實驗中這4種方法分別采用WEKA平臺[15]的Na?ve Bayes、BayesNet、SMO和J48實現,并且都采用WEKA平臺的默認參數.
比較實驗采用第1組數據作為訓練數據,第2組數據作為測試數據,用于測試幾種方法對未知惡意代碼的檢測性能.圖3給出了N取值范圍為100~1 000時5種方法的分類準確率情況.可以看出MDMAS算法的分類準確率都優于其他方法,而且對其他4種方法而言,N取值在100~500之間的結果也優于N取值在500~1 000之間的結果,這個結論與之前對MDMAS算法分析得出的結論是一致的.
圖4給出了N取值范圍為100~1 000時5種方法的檢測率情況,跟分類準確率相比,MDMAS算法在檢測率上的優勢更加明顯.同樣N取值在100~500之間的結果整體上也較N取值在500~1 000之間的結果要好.表3所列實驗結果為N取值分別為100、200、300、400和500時,不同算法檢測率和準確率的平均值.從表3的結果也可以更直觀地看出MDMAS算法相比其他4種方法的檢測性能優勢.總體而言,本文所提出的MDMAS算法可實現對未知惡意代碼的有效檢測,且檢測結果優于其他方法.

圖4 檢測率Fig.4 Detection rate

表3 實驗結果Tab.3 Experimental results %
針對當前未知惡意代碼數量急劇增長的現狀,本文提出一種基于屬性相似度的惡意代碼檢測方法.該方法首先提取并計算惡意代碼和正常文件的屬性均值,再通過比較待測樣本的屬性值與兩類樣本屬性均值的相似度大小來判斷待測樣本類別.與Jeremy的惡意代碼檢測方法實驗比較表明,該方法可實現未知惡意代碼的有效檢測,且檢測性能具有一定優勢.
[1] Symantec.2016 internet security threat report [EB/OL].2016-04-21 [2016-06-22].https://www.symantec.com/security-center/threat-report.
[2] Philip O,Sakir S,Kieran M,et al.SVM training phase reduction using dataset feature filtering for malware detection [J].IEEE Transactions on Information Forensics and Security,2013,8(3):500-509.
[3] Shan Z Y,Wang X.Growing grapes in your computer to defend against malware [J].IEEE Transactions on Information Forensics and Security,2014,9(2):196-207.
[4] Ding Y X,Yuan X B,Ke T,et al.A fast malware detection algorithm based on objective-oriented association mining [J].Computers & Security,2013,39:315-324.
[5] Sheen S,Anitha R,Sirisha P.Malware detection by pruning of parallel ensembles using harmony search [J].Pattern Recognition Letters,2013,34(14):1679-1686.
[6] Shamsul H,Jemal A,Mamoun A,et al.Hybrids of support vector machine wrapper and filter based framework for malware detection [J].Future Generation Computer Systems,2016,55:376-390.
[7] Cesare S,Xiang Y,Zhou W L.Control flow-based malware variant detection [J].IEEE Transactions on Dependable and Secure Computing,2014,11(4):304-317.
[8] Zhao Z Q,Wang J F,Bai J R.Malware detection method based on the control-flow construct feature of software [J].IET Information Security,2014,8(1):18-24.
[9] Jeremy Z,Kolter M,Marcus A.Learning to detect and classify malicious executables in the wild [J].Journal of Machine Learning Research,2006,7:2721-2744.
[10]張福勇,趙鐵柱.基于肯定選擇分類算法的惡意代碼檢測方法 [J].沈陽工業大學學報,2016,38(2):206-210.
(ZHANG Fu-yong,ZHAO Tie-zhu.Malware detection method based on positive selection classification algorithm [J].Journal of Shenyang University of Technology,2016,38(2):206-210.)
[11]Nir N,Robert M,Lior R,et al.Novel active learning methods for enhanced PC malware detection in windows OS [J].Expert Systems with Applications,2014,41(13):5843-5857.
[12]Bai J R,Wang J F,Zou G Z.A malware detection scheme based on mining format information [J].The Scientific World Journal,2014(3):1-11.
[13]Rafiqul I,Ronghua T,Lynn M,et al.Classification of malware based on integrated static and dynamic features [J].Journal of Network and Computer Applications,2013,36(2):646-656.
[14]Thomas E D,Richard A R ,Michael R,et al.Malware target recognition of unknown threats [J].IEEE Systems Journal,2013,7(3):467-477.
[15]Weka.Weka-3-6-12jre.exe [EB/OL].2015-03-30[2016-06-22].http://www.cs.waikato.ac.nz/ml/weka/.
Malwaredetectionmethodbasedonattributesimilarity
ZHANG Fu-yong, QIN Yong
(School of Computer Science and Network Security, Dongguan University of Technology, Dongguan 523808, China)
Aiming at the problem that the number of unknown malware has dramatically increased and the existing detection methods can not effectively detect them, a malware detection method based on attribute similarity was proposed. In the proposed method, the sample files were converted into the hexadecimal format, and alln-grams of sample files were extracted. The information gain of eachn-gram was calculated, andNn-grams with the maximum information gains were selected as the feature attributes. In addition, the average value of each dimension attribute in malware and normal files was calculated, respectively. The categories of samples to be detected were determined through comparing the attribute similarity of samples to be detected as well as the similarity of avarage attribute values of both malware and normal files. The results reveal that the proposed method is superior to the malware detection method based onn-grams for unknown malware detection.
malware detection; attribute similarity; network and information security; intrusion detection; data mining; machine learning; unknown malware; static analysis
2016-06-22.
國家自然科學基金資助項目(61402106); 廣東省普通高校國際暨港澳臺合作創新平臺及國際合作重大項目(2015KGJHZ027); 廣東省教育科學規劃資助項目(14JXN029).
張福勇(1982-),男,山東龍口人,講師,博士,主要從事網絡與信息安全等方面的研究.
* 本文已于2017-10-25 21∶12在中國知網優先數字出版. 網絡出版地址: http:∥www.cnki.net/kcms/detail/21.1189.T.20171025.2112.008.html
10.7688/j.issn.1000-1646.2017.06.11
TP 309
A
1000-1646(2017)06-0659-05
(責任編輯:景 勇 英文審校:尹淑英)