宋元章,何俊婷,張波,王俊杰,王安邦
(1.中國科學院 長春光學精密機械與物理研究所,吉林 長春 130033;2.中國第一汽車股份有限公司 技術中心汽車電子部電控產品設計室,吉林 長春 130011)
僵尸網絡(botnet)是攻擊者(botmaster)通過bot程序控制的惡意計算機群。它是從傳統惡意代碼形態進化而來的目前對Internet最有效的攻擊方式。攻擊者可以通過改變botnet的負載方便地發起DDoS攻擊、發送垃圾郵件(spamming)等。非集中控制的分散式網絡結構將是botnet未來的發展趨勢。2007年出現的Storm botnet是新型P2P botnet的代表,它使用基于P2P的Overnet/eDonkey網絡維持C&C(command and control)[1]。
新型分散式botnet將P2P網絡的分散式拓撲結構引入到botnet的C&C機制中,在整個botnet中沒有控制中心,即使一部分bot節點被剔除,剩余的bot節點仍能構成有效的攻擊網絡,因此針對傳統的集中式botnet的單個控制中心的檢測和防御方法已經失效。新型P2P botnet的檢測已成為當前網絡安全研究的重大問題。
在詳細分析Storm botnet行為與特征的基礎上,本文提出了一種新型的基于流角色的實時檢測P2P botnet模型—RF。流角色是指基于網絡流自身的特性所決定的其在檢測P2P botnet時所起的作用,假設P2P botnet發動攻擊時會導致某種網絡流的異常,那么就可通過檢測該網絡流的特征來檢測P2P botnet導致的“攻擊異?!?,這就可以看作是該網絡流在檢測P2P botnet時的角色。本文提出的RF模型從流本身的特性出發,使其在檢測P2P botnet時處于不同的角色,以發現P2P botnet的本質異常和攻擊異常:通過對UDP流和ICMP流的處理發現botnet的固有特征導致的“本質異?!保驗閁DP流和ICMP流與botnet的C&C機制直接相關;通過對SMTP流的處理發現是botnet的攻擊流導致的異常,因為P2P botnet經常用來發動垃圾郵件攻擊,從而導致SMTP流的異常;考慮到網絡應用程序對檢測的影響,利用TCP流的特征來區分流量異常是由網絡應用程序引起的還是因為爆發P2P botnet引起的。為了進一步降低檢測的誤報率和漏報率,本文提出了一種基于滑動窗口的實時估算Hurst指數的方法,并且采用Kaufman算法來動態調整閾值。實驗表明,該模型能夠有效檢測新型P2P botnet,適應更復雜的網絡環境。
目前,對新型分散式P2P botnet的分析和檢測研究剛剛展開。
Grizzard J B等人[2]對P2P botnet的特征進行了詳細分析,以Storm botnet為例對其感染、傳播和通信機制進行了深入研究和闡述,對以后的研究工作有很大的啟發意義。
Sarat S等人[3]和Holz T等人[4]使用類似的方法分析Storm botnet。前者的研究結果表明Storm的Peer ID非常不規律,有很多不可達的IP地址,為檢測和防御提供了一定的基礎。后者通過發布偽造的key來混淆bot主機間的通信以抑制botnet規模。
STEGGINK M等人[5]通過對比Storm與其他軟件的流量情況,提出了基于網絡特征(例如Storm分組特定長度)的檢測方法。
Phillip Porras等人[6]通過分析Storm會話特征,提出通過使用BotHunter對會話和交互過程進行模式匹配以檢測P2P botnet的方法。
王海龍等人[7]提出了一種botnet檢測層次協同模型,它能夠在信息、特性以及決策3個級別上進行協同。
王勁松等人[8]提出了一種基于組特征過濾器的檢測botnet的方法,使用多個成員特征對內網主機數據分組進行過濾,可以在不需要開發新的模式匹配算法的前提下實現對bot主機間的通信數據的識別以檢測bot主機。
考慮到僵尸網絡的遷移問題,臧天寧[9]等人關注的是不同的僵尸群之間的關系,利用云模型對僵尸群的通信特征進行分析,從而判斷它們是否屬于同一個僵尸網絡。
諸葛建偉等人[10,11]分析和總結了botnet的演化過程,國內外目前跟蹤、檢測和防御botnet的方法,并對botnet的發展趨勢和進一步的研究方向進行了探討。
綜上所述,當前P2P botnet分析和檢測研究仍處于初期階段,主要存在以下問題。
1) 對于網絡流采取類似的處理方法,忽視了網絡流本身的特性,使得它們在P2P botnet檢測中的充當相同的角色:UDP流異常是botnet的C&C過程導致的,這是botnet本質的流量異常;ICMP流異常是bot主機固有的bootstrap過程導致的,這也是botnet本質的流量異常;SMTP流異常是攻擊者利用botnet發送大量垃圾郵件導致的,這是botnet的攻擊流導致的異常,所以不同種類的流在檢測P2P botnet時應處于不同的角色。
2) 沒有考慮到網絡應用程序,尤其是P2P應用對P2P botnet檢測的影響。從本質上看,P2P botnet是一個可以發動網絡攻擊的P2P網絡,所以兩者有較強的相似性,因此正常P2P應用對P2P botnet的檢測會產生很大的誤差影響。
Storm botnet是P2P botnet的典型代表,其生命周期如下。
1) 侵染受害主機。
① 通過傳播bot程序侵染網絡中易感主機。
② bootstrap過程:主機感染bot程序后,會周期性通過連接相應bot節點嘗試加入P2P botnet。
③ 二次注入過程:bot主機通過P2P網絡查詢事先約定的key以下載攻擊負載、更新自身代碼和更新P2P節點列表等。
④ keep alive:bot主機通過定期與其他bot主機通信來保證其一直處于P2P botnet中。
2) 攻擊者發送攻擊命令,以催動botnet中的bot主機執行攻擊負載向攻擊目標發動攻擊。
這些過程中有幾個流量方面的特征。
1) UDP流主要用來C&C:在botnet中keep alive、發現其他bot節點等,這會導致UDP流大量增加,由于botnet固有的特性C&C過程導致的UDP流異常是botnet的本質異常。
2) 在bootstrap過程中,bot主機會隨機連接某些bot節點,這時會發生較多的連接失敗,導致ICMP流異常,這是botnet固有的特性(bot主機的bootstrap過程)導致的本質異常。
3) bot主機發送大量垃圾郵件會大量使用SMTP協議[5]進而導致SMTP流異常,這是botnet發動的攻擊流導致的異常。
因此,對于網絡流應從流本身的特性出發,使其在檢測P2P botnet時處于不同的角色,不應不做區分就做相似的處理。在第4章將從流本身的特性出發,使其在檢測P2P botnet時處于不同的角色,分別檢測P2P botnet的本質異常和攻擊異常,并用一定的手段消除正常P2P應用對P2P botnet的檢測產生的誤差影響。
4.1.1 C&C機制導致的異常
由第3節知,C&C過程是botnet的根本,而UDP流是botnet進行C&C過程的主要手段,盡管實現C&C過程的P2P協議和botnet發動的攻擊多種多樣,但是從UDP流的角度來看是類似的,所以UDP流異常是最能反映botnet流量特征的本質異常。在RF模型中,通過檢測UDP流的異常來發現botnet的本質異常,首先采用反映網絡自相似性的Hurst指數來獲取UDP流的情況以發現其異常,再將處理后的數據輸入到Multi-chart CUSUM中以提高檢測的靈敏度。
4.1.1.1 網絡自相似性
近年來,許多研究發現,相比于傳統短時相關模型,網絡流量自相似性過程能更好地描述網絡流量的特征[12,13]。特別地,KIM J S 等人[14]研究發現UDP流有明顯的自相似性,這是UDP流自身所固有的特征。
自相似性指的是總體結構和局部結構在某種程度上有一致性。網絡流量可以看作是在時間維度上具有自相似性的時間序列。
若對所有的a>0,一個連續時間隨機過程X(t)都有

式(1)中的等號代表統計意義上的相等,則X(t)具有自相似性。式(1)中的參數H(0.5≤H<1)稱為Hurst指數,反映自相似的程度。自相似程度越低,H值越接近0.5。
假設當前時刻為k,定義

由第3節知,Storm會導致UDP分組增多,而且bot主機在bootstrap、keep alive時,會周期性地與某些bot節點聯系,這會導致UDP流自相似性的減弱,進而引起Hurst值減小,HPk增大,故可通過檢測參數HPk來發現這些異常:首先對UDP流量采樣,然后計算其Hurst值,再計算參數HPk,當HPk增大時表示UDP流發生了異常。計算Hurst指數的方法詳見4.1.1.2節。為了提高檢測的靈敏度,將HPk輸入到Multi-chart CUSUM中以放大異常,詳見4.1.2節。
4.1.1.2 一種基于滑動窗口的實時估算Hurst指數的方法
Karagiannis等人[15,16]對估算Hurst指數的方法研究發現,相比于小波分析法(abry-veitch method)和周期圖法(periodogram method), R/S法(rescaled range method)受噪聲等因素的影響更小,具有更好的穩定性,因此本文使用R/S法。為了進一步提高估算的精度,保證實時性,本文對R/S方法進行了改進,提出了一種基于滑動窗口的實時估算Hurst指數的方法,如圖1所示。

圖1 滑動窗口示意
假設滑動窗口的長度為L,每使用R/S法估算一次Hurst指數需要一個滑動窗口大小的時間序列,每估算完一次Hurst指數后向前滑動步長step,即:使用原先的L-step長度的數據和新采樣的step長度的數據計算下一個Hurst指數。
假設長度L的時間序列為{X1,…,XL},利用R/S法估算Hurst值的過程具體如下:將該時間序列劃分成長度為n的子序列,那么得到子序列的個數d=L/n。對于每一個子序列m=1,…,d。
1) 求其期望Em:

2) 求其標準差Sm:

3) 求其極差Rm:

Yj,m代表第m個子序列第j個元素的值。Zi,m代表第m個子序列前i個元素與Em偏差的累計。
4) 求各子序列的Rm/Sm(m=1,…,d)的期望

研究表明,(R/S)n與子序列長度n的關系可表示為

C為常數,H為Hurst值(式(8)中的等號代表統計意義上的相等)。
式(8)兩邊取對數得

對于一個給定的n值,可得一個(R/S)n。對于不同的n值,若以logn為橫坐標,log(R/S)n為縱坐標,則在直角坐標系中可得到許多點,那么Hurst指數的估算值就是進行直線擬合后所得直線的斜率。
4.1.2 Bootstrap過程導致的異常
在bootstrap過程中,bot主機會隨機連接某些bot節點,這時會發生較多的連接失敗,導致ICMP流異常,這是botnet固有的特性導致的本質異常。在RF模型中,通過利用Multi-chart CUSUM來檢測ICMP流的異常以檢測該botnet本質異常。
一維非參數CUSUM算法已經在異常檢測和改變點檢測方面有廣泛的應用,本文將其擴展為Multi-chart CUSUM[17],它可以同時考慮網絡流量多種特征,放大流量異常,以提高檢測的靈敏度。
對于隨機序列{X1,…,Xn},令Pki代表第i(i=1,…,n)個觀測序列在k時刻檢測到異常,P∞代表未檢測到異常。代表ikP的累計評價,第i個觀測序列的累計評價和Sn(i)為

為使用CUSUM算法,需要對gi,s(Xi(n))做如下變換,使得正常情況下觀測序列的均值為負數,在變化發生后其均值為正數:

式(11)中,μi=E∞Xi(n)代表在正常情況下觀測序列的均值??蓪⑹剑?0)遞歸表示如下:

定義判定函數

當Sn(i)大于閾值時,表示發生異常。為了提高檢測精度,使用Kaufman算法[18]動態調整M。
當上述的隨機序列{X1,…,Xn}是ICMP流的比例值CICMP和UDP流在第一階段處理后的結果HPk時,Multi-chart CUSUM可以及時檢測到ICMP流和UDP流的異常。
Bot主機在發送大量垃圾郵件時會大量使用SMTP協議進而導致SMTP流異常,這是botnet發動的攻擊流導致的異常。在RF模型中,通過檢測SMTP流的異常來發現botnet的攻擊異常,對于SMTP流采用與ICMP流相同的處理方式,詳見4.1.2節。
從本質上看,P2P botnet是一個可以發動網絡攻擊的P2P網絡,所以P2P botnet和P2P應用程序有較強的相似性,應采用一定的手段消除正常P2P應用對P2P botnet的檢測產生的誤差影響。
正常P2P應用大多用來進行文件的傳輸和共享,通常利用超過1 300byte的TCP長分組傳輸數據。而botnet大多數的數據傳輸是二次注入時下載負載利用HTTP協議進行的,數據量不大。因此,可利用時間Δt內剔除與正常網絡應用程序相關的TCP分組后的TCP長分組的比例PTCP來區分導致第3節中流量異常出現的原因,TCP長分組的比例越小,異常是P2P botnet爆發引起的概率越大。
假設當前要處理的TCP分組記為Pi,TCP分組的數目為N,TCP長分組的數目為NTCP,具體處理過程如圖2所示。
定義判定函數

fTCP值為1,說明第3節中流量異常是P2P botnet爆發引起的概率較大。閾值MTCP可通過Kaufman算法[18]進行動態修改。
假設當前時刻為k,RF模型處理流程如圖3所示。
1) 獲取ICMP流的比例值CICMP、SMTP流的比例值CSMTP和UDP流的比例值CUDP,同時計算得出TCP流的fTCP值,以消除網絡應用對P2P botnet檢測產生的誤差影響。

圖2 處理TCP流的流程

圖3 RF模型示意
2) 從流本身的特性出發,使其在檢測P2P botnet時處于不同的角色,發現botnet導致不同的流量異常。
① 利用基于滑動窗口的實時估算Hurst指數的方法得到HPk;
② 將CICMP、CSMTP和HPk輸入到Multi-chart CUSUM中計算出d(Si(ICMP))、d(Si(SMTP))和d(Si(HPk))。
3) 最終判定:

T是判定P2P botnet是否存在的閾值,當D≤T時表示網絡狀態正常,否則表示P2P botnet存在。
該實驗主要是監測網絡流量:每10s采集一次網絡數據分組,在一段時間后注入Storm bot程序。
分析圖4可得,當bot主機開始通信時,UDP分組數目比一般情況下增多了20倍左右,主要因為botnet的C&C機制通過UDP流進行。ICMP分組數目從100增加到900,主要因為bot主機在bootstrap過程連接某些bot節點時發生了較多的連接失敗。因為botnet在Spamming時發送垃圾郵件的延遲,該實驗幾乎未發現SMTP流,所以接下來的實驗暫不考慮SMTP流。

圖4 網絡流量數據
該實驗主要觀測UDP流自相似性程度的變化。一般情況下UDP流自相似性程度非常明顯,Hurst指數保持在[0.65, 0.85],參數HP保持在[0.15, 0.35],同時會有一定的波動。
分析圖5可得,在一段時間注入Storm bot程序后,參數HP在420s增大到了0.45,在460s甚至增大到了最高點0.59,這充分說明UDP流已經喪失了自相似性,出現了異常。因為bot主機數目的逐步增大,P2P botnet規模的逐步擴大,原先UDP流表現出的與一般情況不同的異常特征卻變成了它的一種新的自相似性行為,進而導致參數HP下降。
將實驗1中UDP流、ICMP流輸入到RF模型中的處理結果如圖6所示。與實驗1相比,圖6中檢測到UDP分組和ICMP分組增加的時刻均有一定的延遲,基本在[25s,50s]區間內。因此,RF模型具有較小的檢測延遲,可以滿足實時檢測P2P botnet的要求。

圖6 基于UDP流和ICMP流的RF的輸出
為檢驗本文提出的RF模型在不同情況下的檢測能力,該實驗選擇了4組數據,分別使用不同的檢測方法檢測botnet:前2組未注入bot程序,僅僅改變了各種數據分組的流量比,其中第2組數據中有大量網絡應用程序和P2P應用程序的數據分組;后2組注入了bot程序,其中第4組數據有大量網絡應用程序和P2P應用程序的數據分組。實驗結果如表1所示。

表1 漏報率和誤報率對比
在第1組和第3組數據中RF模型的檢測結果非常理想,接近真實情況。第2組數據和第4組數據分別是在正常和存在bot程序的網絡環境中注入了大量網絡應用程序和P2P應用程序的數據分組,此時所有的檢測方法都出現了一定的漏報和誤報,但是RF模型的漏報率和誤報率較低,因為RF模型充分考慮到了網絡中正在運行的應用程序對P2P botnet檢測的影響。特別地,表中的“113:77”表示RF模型在第4組數據中檢測到了113次攻擊,但是其中有77次是真正的攻擊。
綜上所述,利用RF模型檢測P2P botnet,其表現出較低的漏報率和誤報率,具有較小的檢測延遲。
本文在詳細分析Storm botnet行為與特征的基礎上,提出了一種新型的基于流角色的實時檢測P2P botnet模型—RF,該模型從流本身的特性出發,使其在檢測P2P botnet時處于不同的角色,同時考慮到了網絡應用程序對檢測的影響。為了進一步減小檢測的漏報率和誤報率,本文提出了一種基于滑動窗口的實時估算Hurst指數的方法,并且采用Kaufman算法來動態調整閾值。實驗表明,該模型能夠有效檢測新型P2P botnet,檢測的誤報率和漏報率較低,適應更復雜的網絡環境。
下一步的研究重點,更詳細地研究P2P應用與P2P botnet流量特征的差異,進一步提高檢測的精度和實時性。
[1] JOE STEWART. Storm Worm DDOS Attack[R]. SecureWorks, Inc,Atlanta GA, 2007.
[2] GRIZZARD J B, SHARMA V, NUNNERY C. Peer-to-peer botnets:overview and case study[A]. HotBots ’07 conference[C]. 2007.
[3] SARAT S, TERZIS A. Measuring the Storm Worm Network[R]. Technical Report 01-10-2007, HiNRG Johns Hopkins University, 2007.
[4] HOLZ T, STEINER M, DAHL F. Measurements and mitigation of peer-to-peer-based botnets: a case study on storm worm[A]. 1st USENIX Workshop on Large-Scale Exploits and Emergent Threats[C].San Francisco, 2008.
[5] STEGGINK M, IDZIEJCZAK I. Detection of Peer-to-Peer Botnets[R].University of Amsterdam, Netherlands, 2007.
[6] PORRAS P, SAIDI H, YEGNESWARAN V. A multi-perspective analysis of the storm (peacomm)worm[A]. Computer Science Laboratory, SRI International[C]. CA, 2007.
[7] 王海龍, 胡寧, 龔正虎. Bot_CODA:僵尸網絡協同檢測體系結構[J].通信學報, 2009, 30(10A): 15-22.WANG H L, HU N, GONG Z H. Bot_CODA: botnet collaborative detection architecture[J]. Journal on Communications, 2009, 30(10A):15-22.
[8] 王勁松,劉帆,張健. 基于組特征過濾器的僵尸主機檢測方法的研究[J]. 通信學報, 2010, 31(2): 29-35.WANG J S, LIU F, ZHANG J. Botnet detecting method based on group-signature filter[J]. Journal on Communications, 2010, 31(2):29-35.
[9] 臧天寧, 云曉春, 張永錚. 僵尸網絡關系云模型分析算法[J]. 武漢大學學報(信息科學版), 2012, 37(2): 247-251.ZANG T N, WANG X CCC, ZHANG Y Z. A botnet relationship analyzer based on cloud model[J]. Geomatics and Information Science of Wuhan University, 2012, 37(2): 247-251.
[10] 諸葛建偉, 韓心慧, 周勇林. 僵尸網絡研究[J]. 軟件學報, 2008,19(3): 702-715.ZHUGE J W, HAN X H, ZHOU Y L. Research and development of botnets[J]. Journal of Software, 2008, 19(3): 702-715.
[11] 江健, 諸葛建偉, 段海新. 僵尸網絡機理與防御技術[J].軟件學報,2012, 23(1): 82-96.JIANG J, ZHUGE J W, DUAN H X. Research on botnet mechanisms and defenses[J]. Journal of Software, 2012, 23(1): 82-96.
[12] LELAND W E, TAQQU M S, WILLINGER W. On the self-similar nature of Ethernet traffic(extended version)[J]. IEEE/ACM Trans on Networking, 1994, 2(1): 1-15.
[13] BERAN J, SHERMAN R, TRAQQU M S. Long range dependence in variable bit rate video traffic[A]. IEEE Trans on Communication[C].1995, 43(234): 1566-1579.
[14] KIM J S, KAHNG B, KIM D. Self-similarity in fractal and non-fractal networks[J]. Journal of the Korean Physical Society, 2008, 52:350-356.
[15] KARAGIANNIS T, MOLLE M, FALOUTSOS M. Understanding the Limitations of Estimation Methods for Long-range Dependence[R].University of Califomia,Tech ReP:TRUCR-CS-2006-10245,2006.
[16] KARAGIANNIS T, MOLLE M, FALOUTSOS M. Long-range dependence: Ten years of Internet traffic modeling[J]. IEEE Intenet Computing, 2004,8(5):57-64.
[17] TARTAKOVSKY A G, ROZOVSKII B, SHAH K. A Nonparametric Multichart CUSUM test for rapid intrusion detection[A]. Proceedings of Joint Statistical Meetings[C]. 2005.
[18] KASERA S, PINHEIRO J, LOADER C. Fast and robust signaling overload control[A]. Proceedings of Ninth International Conference on Network Protocols[C]. 2001. 323-331.
[19] SEN S, SPATSCHECK O, WANG D M. Accurate, scalable in-network identification of P2P traffic using application signatures[A]. Proceedings of the 13th international conference on World Wide Web[C]. New York, 2004.512-521.