吳金龍,石曉飛,許 佳,史 軍
(江南計算技術研究所,江蘇 無錫 214083)
?
基于隨機森林的分層木馬檢測技術研究*
吳金龍,石曉飛,許佳,史軍
(江南計算技術研究所,江蘇 無錫 214083)
摘要:為了應對以未知木馬為核心的APT類攻擊帶來的威脅,對基于數據流的木馬檢測技術進行了研究。提出一種基于分層的多維通信特征的木馬檢測方法,檢測網絡數據流中的木馬數據。在對已有分類檢測算法調研的基礎上,創新的將隨機森林算法應用于訓練集,以建立檢測模型,創新的建立了分層評分策略,為分析人員提供可信的檢測結果。通過實驗將該方法與三種常用的機器學習算法對比,在數據流的檢測方面,該方法的準確率至少提高了1.8%,誤報率最少降低了2.77%。
關鍵詞:木馬檢測; 隨機森林; 多維特征; APT攻擊;分層檢測
0引言
隨著網絡的普及和廣泛應用,隨之而來的安全問題日益凸出。近年來,網民的上網呈現出網民規模化和上網方式多樣化的特點,網民的上網環境異常復雜。據瑞星報告指出,2015 年,新增病毒樣本3,715萬余個,其中木馬病毒占總體病毒的 61.79%,報告期內,共有 4.75 億人次網民被病毒感染,人均病毒感染次數為 35.65 次。(數據引自《瑞星 2015 年中國信息安全報告》[1])。面對如此規模的網民數和多樣的上網方式,保護用戶隱私數據,降低上網風險的問題尤為凸出。
除個人終端外,企業用戶終端也常成為木馬的受害者。據FireEye的調查報告指出[2]。在企業網絡中,有95%以上的主機曾被木馬植入。然而,在這些被植入的主機中,僅不到10%的木馬樣本被安全軟件和防護設備檢測。未知木馬由于較難及時捕獲,因而是控制和實施APT等高危攻擊的核心環節。因此,傳統的木馬檢測方法都很難發揮有效的作用。
本文旨在提出一種基于隨機森林的木馬檢測方法,通過對網絡數據流的分類,提前檢測出木馬行為,及時為用戶預警,以降低用戶上網的風險,加強用戶網絡環境的安全性。
1研究現狀
1.1現有的木馬檢測技術
目前木馬檢測技術主要分為以下兩類[3]。
1.1.1基于主機端
根據上一節介紹,目前上網主機平臺多樣,且操作系統種類和版本繁雜,其復雜性和多樣性導致了檢測存在較大的實現難度,且基于主機系統行為的檢測方法要求對主機系統平臺有非常深入的了解。因此,在現有的技術條件下,單靠主機端的防護軟件尚無法實現對木馬進行有效檢測。
1.1.1基于網絡端
目前,基于網絡端的數據流木馬檢測主要分為三種。
一是基于特征匹配及信譽值的檢測技術,該類檢測基于已有樣本的特征和信譽值判定未知數據的屬性。二是基于協議分析的檢測技術,以數據流中采用的協議與已知協議對比,如有不同則認為異常。這兩類的檢測方法的缺陷在于對偽裝和變形的木馬數據檢測效果較差,如隧道加密或采用代理方式通信,此類技術提高了各木馬程序的隱蔽性和生存周期,隱藏了木馬的特征[4]。三是基于通信行為分析的檢測技術。該檢測技術是基于木馬通信的網絡數據流進行檢測分類,具有較強的通用性。該技術被認為是最有前景的木馬檢測方法,代表著該領域未來的發展趨勢。文獻[5]是基于此類檢測技術。本文的研究也是基于此類檢測技術。
1.2隨機森林用于檢測分類現狀
隨機森林分類器是在決策樹這種單一分類器基礎上的一種組合分類器。隨機森林分類器有以下優點:
(1)其性能和檢測率方面,優于單一的分類器。
(2)對異常值和噪聲的容忍度好。
(3)不易出現過度擬合[6-9]。
故而,隨機森林提出至今,已廣泛應用于文本和語言的驗證處理、醫療和臉部識別等諸多領域。同時,隨機森林的分類方法也較好的應用于郵件過濾、入侵檢測等安全領域。然而,目前尚未發現將隨機森林的分類方法單純用于檢測網絡數據流中的木馬數據。
1.3基本思路
不難發現隨機森林在入侵檢測領域已得到較好的應用,且目前的木馬檢測領域中,尚未使用隨機森林進行數據的分類檢測。木馬雖是一種廣義上的病毒,屬于一種特殊的入侵行為,但木馬與病毒、蠕蟲等其他惡意程序的行為特征有較大的區別。通常病毒、蠕蟲等惡意程序會對用戶終端系統造成明顯的破壞,然而木馬行為特點主要是潛伏在用戶電腦,監視用戶操作,竊取用戶文件,收集系統信息。基于木馬與普通病毒、蠕蟲等其他病毒行為特征的不同,其檢測技術不能一概而論,否則,在檢測木馬數據時,會有較高的誤報率和漏報率,無法完成細粒度的木馬檢測。故,隨機森林的方法應用于木馬檢測領域與應用于入侵檢測、異常檢測等安全領域是不同的。本文將側重關注隨機森林應用于木馬檢測領域。
通過加密、變形等技術實現自身隱藏,躲避查殺是木馬程序存活的重要特征,然而此類特征是經常變換,不易作為檢測依據。然而,木馬要實現其完整功能,必有一些可以從端到端的數據流中提取的固定不變的特征。如:基于流量的上傳下載特征、基于連接的 “心跳”特征、基于時間的通聯時間特征等。因此從數據流的角度進行檢測,可以有效解決木馬免殺和未知木馬檢測的問題,也為APT攻擊檢測提供新的思路。木馬在運行中,服務端與客戶端的交互更多的是人工的控制和干預。故,基于網絡流木馬的檢測的核心是區分正常通信行為(自動行為)與木馬通信行為(人工干預行為)。
本文提出一種快速的基于通信行為多維特征的木馬檢測方法。分層提取的木馬通信行為的多維特征,結合機器學習技術中的隨機森林分類算法,建立木馬數據流特征模型。創建可以區分木馬程序和正常應用程序數據流特征的判定規則集。參照該模型實現的原型系統可通過網絡數據流特征判定規則集,有效檢測未知木馬,并可根據實際環境進行自學習和調整優化,使得該檢測方法具有較強的適應能力。
2木馬通信行為檢測模型
木馬要實現自身功能,必然無法使自身通信行為與正常通信行為一致,例如,上傳/下載數據量的比例、客戶端與服務端之間的“Keep-Alive” 機制(也稱為保活機制)等造成了木馬與正常數據流的特征差異。木馬的功能及自身的特殊性讓基于通信行為分析的木馬檢測技術可行且有效。
2.1分析木馬通信行為
不同的木馬程序在功能上,針對不同操作系統、不同應用平臺,其采用的網絡通信協議方面存在很大差異,但它們在通信行為上又具有一定的相似性。通過對大量木馬樣本進行分析發現:木馬通信過程大致分為兩個階段,即連接保持階段和命令控制階段。
連接保持階段不僅包括植入木馬后的上線通知,還包括了木馬上線之后保持通聯的“心跳”機制。攻擊者將木馬程序植入到目標系統后,攻擊者需等待木馬植入成功的消息,然后進行遠程控制。所以,木馬程序植入的成功與否則需要一種通知機制,即上線通知。實際上,上線通知也是一種前期特殊的“心跳”行為,有些木馬在上線通知的數據包里包含了“心跳”包。
2.2木馬通信行為描述
定義1用D表示所有網絡通信數據,C表示正常網絡通信數據,T表示木馬通信數據,對網絡通信行為特征向量F定義如下:
F(D)=F1(D)×F2(D)×…×Fn(D);
D=C∪T;
其中,隨機變量Fi(i=1,2,…,n)表示網絡通信的單一行為特征屬性,并且是多項式時間可計算的。
定義2定義函數SF為與F(D)一致的分類器,其中
SF:F1×F2×…×Fn→{0,1};
其中,SF是多項式時間可計算的, 0是正常通信,1是木馬通信,(F,SF)稱為木馬通信行為檢測模型。因此,網絡通信行為特征屬性提取和分類器設計是實現木馬檢測的關鍵。
分析木馬通信行為,將木馬的通信全過程劃分為:連接保持和命令控制這兩個階段。故,檢測木馬通信行為按照這兩個階段分別定義并檢測。相關定義和檢測過程如下:
首先,根據木馬通信行為分析分階段提取木馬通信行為特征屬性Fki和Foi。其中,Fki(i=1,2,…,n)表示木馬連接保持階段的網絡通信的行為特征屬性,Foi(i=1,2,…,n)表示木馬命令控制階段的網絡通信行為特征屬性。
然后,根據行為特征屬性Fki和Foi的數據類型特點和實際檢測要求,選擇分類算法構造分類器SFk和SFo,其中,SFk表示木馬連接保持階段的分類器,SFo表示木馬命令控制階段的分類器。


其中,這里0表示正常網絡通信,1表示木馬通信。
最后,判斷分類器的輸出結果SFk∪SFo,檢測到任意階段產生報警,就認為存在木馬通信行為。
3隨機森林分層檢測木馬
根據定義的木馬通信行為,本節將介紹構建隨機森林的步驟及基于分層思路的多維特征的選取。
3.1C4.5決策樹的局限性
C4.5決策樹是一種典型的單分類器,使用單分類器檢測木馬通信行為具有一些局限性,主要體現在:
(1)C4.5決策樹分類器的精度在到達一定指標后,難以繼續提高,其檢測精度存在不易突破的瓶頸。
(2)一種給定的分類器,其檢測的準確率較為依賴實際的檢測環境,同樣的算法和檢測模型在不同的環境,其檢測準確率可能差別很大。
(3)在有監督的學習訓練過程中,C4.5這類單分類器需要大量的訓練數據。
由機器學習領域的研究結論可知,就檢測分類效果而言,基于單一分類分類器弱于基于由多分類器組合集成的檢測分類器。隨機森林檢測方法是一種建立在統計分析理論上集成的組合檢測分類器。隨機森林由多顆決策樹組成,它通過組合多個弱分類器,集成一個強分類器的方法克服決策樹的局限性,多個分類器通過投票決定最終分類屬性,既起到了互補作用提高了檢測的穩定性,又降低了個別分類器錯誤所帶來的影響,進而提高了檢測分類的準確率。
3.2構建隨機森林
本文提出將Random-SMOTE方法結合隨機森林算應用于木馬通信行為檢測。采用Random-SMOTE方法的目的是對數據集抽樣預處理,將數量較少的木馬樣本進行過抽樣,以提高稀有類數據所占的比重,降低大類數據的比例,提高稀有類數據中木馬行為的識別率。隨后用隨機森林的方法訓練預處理后的數據集,生成檢測模型。
定義T為原訓練數據集中的木馬數據流樣本集,S為正常應用數據流樣本集,隨機森林的生成步驟如下:
(1)首先對木馬數據流樣本集T進行過抽樣,根據Random-SMOTE方法和過抽樣倍率N,為每個木馬數據流樣本隨機生成N個新樣本;將新的樣本加入原訓練數據集,形成新的木馬數據流樣本集T′,以減少樣本集中木馬樣本和正常樣本在個數上的不平衡。

(3)基于每個自助樣本,構建一棵決策樹。采用Forest-RI(ForestRandomInputs,隨機選擇輸入變量)方法。假設屬性特征有M維,從M維特征中隨機抽取Mca維特征作為候選特征。選擇這Mca個特征上最好的分裂方式對決策樹每個節點進行分裂,使每個決策樹都得到最大限度的生長,不進行剪枝。
(4)重復步驟(2)和步驟(3),可以得到多棵決策樹,并且在隨機森林生長過程中Mca值保持不變。
(5)讓每一棵決策樹對輸入的未知數據流X進行投票。計算所有的投票數,找出其中票數最高的一個就是數據流X的分類標簽。
3.3分層檢測
作者在設計分層提取多維通信設計的基礎上,設計了可信度評分策略,為分析人員提供結果可信度的結果。
3.3.1基本思路
上文描述的是單個隨機森林的生成過程。在此基礎上,作者從基于IP協議的網絡層會話數據流、基于TCP協議的傳輸層會話數據流和基于HTTP協議的應用層會話數據流三個層面分別提取木馬的多維特征屬性。在數據預處理時,對原始捕獲的PCAP數據包,按照IP會話、TCP會話和HTTP會話三個層次分別提取數據流通信特征,進而構建三個隨機森林分類器,分別記為RFip、RFtcp和RFhttp,用以從不同層面檢測數據流行為特征屬性。判斷三個分類器的輸出結果RFip∪RFtcp∪RFhttp,檢測到任意層面產生異常數據流報警,就認為存在木馬通信行為。
3.3.2分層多維特征選取
分別按照網絡層、傳輸層和應用層簡單例舉選取的多維特征:
基于IP協議的網絡層會話特征:
(1)IP會話下載數據量/IP會話上傳數據量特征:控制端流向被控端的字節數與反方向字節數的比較,該行為特征值一般小于1。
(2)IP會話時長/主連接時長:IP會話數據流的持續時間與主連接持續時間之比,該行為特征值一定大于1,但是木馬程序的取值會顯著小于正常網絡應用。
基于TCP協議的傳輸層會話特征:
(1)TCP會話時長:命令交互、文件資源搜索和文件傳輸需要大量的等待時間,再加上人類的思考時間,使得通信會話持續時間較長。
(2)TCP會話上傳數據量:木馬程序根據控制命令將被控主機的信息和文件資源不斷上傳,導致會話上傳數據量偏大。
基于HTTP協議的應用層會話特征:
(1)HTTP會話數據包集參差度:正常HTTP應用的數據包集參差度對其總尺寸的分布體現出分段性和有界性,而HTTP隧道卻跟其差異很大。
(2)HTTPRequest數據包信息熵特征:在信息層面提供一個評估正常HTTP通信和HTTP隧道通信行為的一個指標。
以上從3個會話層例分別舉了2個特征作為隨機森林決策樹的判斷條件。類似的特征可以選取很多,然而,需要根據實驗和實際情況決定在每一層采用哪些特征。
3.3.3可信度評分策略

參數λ的圖像如圖1所示

圖1 λ的圖像
記檢測結果中,分別命中網絡層、傳輸層、應用層的協議為0x0001、0x0010、0x0100,三層均命中則為0x0111,分別定義Credit1、Credit2、Credit3表示協議命中一層、兩層和三層。
(1)檢測結果,協議命中其中一層。
If(protocol == (0x0001, 0x0010, 0x0100))
Credit1=Standpoint*λ;
則,48.4≤Credit1≤55
(2)檢測結果,協議命中其中兩層。
If(protocol == (0x0011, 0x0101, 0x0110))
Credit2=Credit1*1.35*λ;
則,57.5≤Credit2≤74.25
(3)檢測結果,協議三層全部命中
If(protocol == (0x0111))
Credit3=Credit2*1.25*λ;
則,63.25≤Credit3≤92.81
4實驗分析
為了更好的驗證本文的方法。本文采用兩組試驗分析對比實驗結果。
4.1實驗一
第一組實驗數據是:綜合搜集結合網絡上2015年以前相關文獻實驗數據或有代表性的61款樣本,包括:PcShell、灰鴿子、Gh0st、ZXShell等,共325個木馬通信數據流作為樣本數據。選取MSN、ICQ、QQ、skype等65款正常應用的通信數據,共1 175個數據流作為正常數據。正常和樣本數據合計1 500個數據流。
為了對比試驗結果,更好的評價本文的方法。選取:C4.5決策樹[10]、SVM[11-12]、Naive Bayes[5,11]作為木馬檢測算法。通過開源機器學習模塊“scikit-learn”[13]實現了對應算法。將這些方法與本文分層檢測的隨機森林(記為MRF)的檢測方法進行對比。將C4.5決策樹(記為C4.5)、SVM和Naive Bayes算法(記為NB)用于檢測木馬數據,四種方法對1500個數據流的檢測結果,按照性能評價指標參數匯總如表1所示。

表1 4種機器學習算法的性能評價指標
通過實驗的對比結果,不難看出,基于隨機森林的檢測方法其準確率(Accuracy,ACC)最高,假負率(False Negative Rate,FNR)最低,真正率(True Positive Rate,TPR) 最好,即靈敏度(sensitivity)最好。綜合對比分析,用隨機森林算法作為木馬檢測分類模型的效果最優。
4.2實驗二
第二組數據是:選取2015年以來的,基于漏洞利用的15款木馬數據,共36個數據流,對于訓練模型而言,該15款木馬均為未知屬性的數據。(數據來源:malware traffic analysis[14]網站)
近年來,通過系統及應用軟件的漏洞作為木馬傳播載體的方式廣泛且流行。此類木馬的傳播方式較為隱蔽,一般隱匿或捆綁在文檔、應用、鏈接等看似正常的文件中。包括:Angler-EK( 利用IE漏洞,如:CVE-2015-2419 )、 BizCN( 利用Flash漏洞,如: CVE-2015-0522等 ) 、Nuclear-EK(利用Flash漏洞)等。作者將搜集的2015年以來的數據流文件作為未知木馬樣本。在已有的檢測模型上,測試本方法對于未知數據流(未知木馬及未知的傳播方式)的檢測率,結果見表2。

表2 15款未知數據的檢測結果
實驗結果顯示,在15個未知應用數據中,檢測出14個,檢測率為93.3%,其中36個數據流中檢測出32個,數據流的檢測率為88.9%。與其他三種方法的對比結果如圖2所示。

圖2 未知數據檢測對比
實驗結果顯示,就預測性而言, 隨機森林的檢測方法對未知數據屬性的分類效果最好,預測性最佳。
6結語
本文創新的提出了將隨機森林引用于單一的木馬檢測領域,通過實驗驗證,本文的方法在提高檢測率和降低誤報率方面均優于目前已知的木馬檢測方法,對于未知數據有較好的檢測分類效果。此外,本文創新提出可信度評分策略,通過大量實踐驗證得到的行之有效的評分方法對檢測結果進行評分,為研判人員提供可信參考。但是,依然存在一些有待改進的地方,比如,檢測出來的結果中,誤告警所占比例達7.76%,下一步將嘗試通過數據挖掘算法對檢測結果分析,以去除誤告警,降低誤報率。
參考文獻:
[1]瑞星.瑞星2015年中國信息安全報告[EB/OL]. (2016-01-20)[2016-03-02]. http://it.rising.com.cn/dongtai/18131.html.
Rising. Rising 2015 China Information Security Report[EB/OL]. (2016-01-20)[2016-03-02]. http://it.rising.com.cn/dongtai/18131.html
[2]Fire Eye. Advanced Targeted Attacks: How to Protect Against the New Generation of Cyber Attacks.[EB/OL].[2016-03-02].http://www2.fireeye.com/rs/fireye/images/fireeye-advanced-targeted-attacks.pdf.
[3]李世淙,云曉春,張永錚.一種基于分層聚類方法的木馬通信行為檢測模型[J].計算機研究與發展,2012(S2):9-16.
LI Shi-cong, YUN Xiao-chun, ZHANG Yong-zheng. A Model of Trojan Communication Behavior Detection based Hierarchical Clustering Technique[J]. Journal of Computer Research and Development,2012,(S2):9-16 .
[4]周趙軍, 張劍, 彭春林. 多Web代理技術在木馬通信中的實現 [J]. 通信技術, 2012, 45(08):73-76.
ZHOU Zhao-jun, ZHANG Jian, PENG Chun-lin. Trojan Communication based on Multi-Web Proxy[J]. Communications Technology,2012,45(08):73-76.
[5]薛磊. 基于通信行為證據鏈的木馬檢測系統[D].南京:南京郵電大學,2013.
XUE Lei. Trojan Detection System based on Evidence of Communication Behaviors.[D].2013,Nanjing:Nanjing University of Posts and Telecommunications,2013.
[6]WOLPERT D H. Stacked Generalization [J]. Neural Networks, 1992, 5(2): 241-259.
[7]Breiman L. Bagging Predictors [J]. Machine Learning, 1996, 24(2): 123-140.
[8]Dietterich T G. Ensemble Methods in Machine Learning [M]. Multiple Classifier Systems. Springer Berlin Heidelberg,2000:1-15.
[9]方匡男, 吳見彬, 朱見平等. 隨機森林方法研究綜述[J]. 統計與信息論壇, 2011, 26(03): 32-38.
FANG Kuang-nan, WU Jian-bin, ZHU Jian-ping,et al. Research of Random Forest Method[J]. Statistics & Information Forum, 2011, 26(03): 32-38.
[10]ZHANG Xiao-chen, LIU Sheng-li, MENG Lei, SHI Yun-fang. Trojan Detection based on Network Flow Clustering. Multimedia Information Networking and Security (MINES), 2012 Fourth International Conference on DOI: 10.1109/MINES.2012.242[C]. 2012:947-950.
[11]Ponomarev S, Durand J, Wallace N, et al. Evaluation of Random Projection for Malware Classification[C] Software Security and Reliability-Companion(SERE-C), 2013 IEEE 7th International Conference on IEEE, 2013:68-73.
[12]李鵬,王汝傳,高德華.基于模糊識別和支持向量機的聯合Rootkit動態檢測技術研究[J].電子學報,2012(01):49-56.
LI Peng, WAGN Ru-chuan, GAO De-hua. Research on Rootkit Dynamic Detection based on Fuzzy Pattern Recognition and Support Virtual Machine Technology[J]. Acta Electronica Sinica, 2012(01):49-56.
[13]scikit-learn.[EB/OL]. [2015-10-09]. http://scikit-learn.org/stable/.
[14]Malware Traffic Analysis. [EB/OL]. [2015-10-09].http://www.malware-traffic-analysis.net/blog-entries.html
Hierarchical Detection of Trojan Behavior based on Random Forest
WU Jin-long,SHI Xiao-fei,XU Jia,SHI Jun
(Jiangnan Institute of Computing Technology,Wuxi Jiangsu 214083,China)
Abstract:In order to deal with the threat from APT attacks with unknown Trojan as the core,Trojan detection technology based on net flows is studied and discussed. A method based on multidimensional features from different layers for Trojan detection is proposed, thus to detect Trojan data in the network data flows. Based on intestigation of the existing detection technology,the random forest algorithm is applied to training data set,thus to construct the detection model,establish hierarchical scoring policy,and providing a trusted detection result for analysts.Experiment and comparison of the three learning algorithms indicate that this method could improve accuracy rate at least 1.8% and reduce the false alarm rate at least 2.77% in the detection of Trojans.
Key words:trojan detection;random forest;multi-dimensional features;APT attack;hierarchical detection
doi:10.3969/j.issn.1002-0802.2016.04.018
*收稿日期:2015-11-09;修回日期:2016-02-20Received date:2015-11-09;Revised date:2016-02-20
中圖分類號:TP393.08
文獻標志碼:A
文章編號:1002-0802(2016)04-0475-06
作者簡介:

吳金龍(1988—),男,碩士,研究實習員,主要研究方向為信息安全和網絡安全;
石曉飛(1976—),女,碩士,工程師,主要研究方向為信息安全和網絡安全;
許佳(1981—),男,博士,工程師,主要研究方向為信息安全和網絡安全;
史軍(1972—),男,碩士,高級工程師,主要研究方向為信息安全和網絡安全。