高一為,賴英旭,吳 歡,陳偉桐
(北京工業(yè)大學 計算機學院,北京 100124)
現(xiàn)有的基于網絡流量的DDoS攻擊檢測方法可以按照對時間尺度的敏感程度進行劃分,通常將小于100 ms的網絡模型稱為小尺度網絡模型,將以小時(hour)或天(day)作為時間單位的網絡模型稱為大尺度網絡模型。基于大尺度網絡模型的檢測方法主要有方差分析法(ANVOA)[1]、泛化似然比檢驗法(Generalized Likelihood Ratio Test)[2]、自適應殘差比較法[3]等,這些方法雖然有較好的檢測率和較低的誤報率,但是因其以hour或day為統(tǒng)計單位而不具備實時檢測的能力。相比之下小尺度網絡模型更適合于實時檢測,但因其表現(xiàn)出多分形性[4]而難以觀測。參考文獻[5]提出的Holder指數(shù)檢測法雖然檢測延時短,但是受到短相關性質對網絡流量整體觀測能力不足的影響,誤報率過高。針對這一問題,參考文獻[6]提出了一種基于傳統(tǒng)Hurst指數(shù)和Holder指數(shù)的分形檢測法,通過判斷網絡流量的實時分形特性,分別采用兩種不同方法進行檢測,雖然提高了分形模型中長相關部分的檢測準確率,但是當流量數(shù)據(jù)表現(xiàn)出短相關時,誤報問題仍沒有解決。參考文獻[7]提出了一種基于Hurst指數(shù)的方差-時間圖法VTP(Variance-Time Plots),試圖利用多分形模型中包含的長相關特性進行檢測。受多分形模型中長相關特性并不明顯的影響,誤報率雖然有所下降,但是檢測率上還存在不足。
現(xiàn)有小尺度網絡模型通常采用Holder、Hurst等指數(shù)進行檢測,Holder指數(shù)觀測尺度狹窄、誤報率高;Hurst指數(shù)能夠在整體上對流量的自相似性進行刻畫,具有較高的檢測精度,但要求觀測的時間尺度寬,不利于實時檢測。本文提出的基于數(shù)據(jù)預處理的DDoS攻擊檢測方法在Hurst指數(shù)檢測的基礎上,通過提高流量間相關度,滿足了Hurst指數(shù)定義對模型長相關程度的要求,從而能夠更準確地對具有多分形特性的流量進行分析。
小尺度網絡模型中包含的網絡業(yè)務信息相比大尺度網絡模型少但更為細致,因而也更易受流量的突發(fā)性影響。基于流量的DDoS攻擊檢測技術正是利用了流量突發(fā)性對統(tǒng)計特性造成的奇異點進行檢測,因此為了降低誤報率就需要降低正常流量發(fā)生時對小尺度模型統(tǒng)計特性的影響。最直接的方法就是增加小尺度模型各節(jié)點包含的信息量,增強其長相關性。參考文獻[8]就可能影響流量性能的因素提出了假設,并認為均值和方差對多分形有較大影響。本文在參考文獻[8]的基礎上,提出采用滑動平均值來代替原有采樣值的方法,在保證不丟失原有信息特性的前提下,將前后時間節(jié)點的特性包含進來,提高了節(jié)點中包含的信息量,使得小尺度網絡模型的長相關性增強,同時降低了正常流量發(fā)生時對統(tǒng)計特性可能造成的影響。流量預處理方法如式(1)所示:

式中,t(n)為進行預處理前時間序列;g(n)為采用滑動平均變換后的時間序列;m為增加關聯(lián)度的權系數(shù),m值越大,經過預處理后的時間序列長相關性質越強。
利用式(1),將參數(shù) m設為 100,從時間序列 t(n)中取100個序列值(總時長為1 s的流量數(shù)據(jù)),作滑動平均計算得到序列g(n)。
由于傳統(tǒng)的模型和分析工具不適用多分形模型,本文利用小波分解法對小尺度網絡模型進行分解獲得網絡流量的高頻系數(shù)(或稱細節(jié)系數(shù)),為求解Hurst指數(shù)提供基礎。 將 g(n)分為 i個子區(qū)域 g′(n),i=1,2,…,n,如式(2)所示:

每次獲得的新采樣數(shù)據(jù)插入到序列末尾,這種序列構造方式減少了獲取定長數(shù)據(jù)的等待時間,提高了構造速度。
第i個子區(qū)的j級分解低頻系數(shù) (或稱為近似系數(shù))和j級分解高頻系數(shù)(或稱為細節(jié)系數(shù))分別用 aig(j,k)和dig(j,k)表示,如 式(3)所 示:

其中j為小波分解層數(shù),k為小波的移動尺度,φjk為小波尺度函數(shù),ψjk為小波函數(shù)。
[9,10]的研究表明,消失矩與小波分解求自相似參數(shù)Hurst的準確性有著密切關系。根據(jù)參考文獻[9]中的研究結果,db小波(Daubechies)在求解 Hurst值的過程中準確性普遍優(yōu)于一般方法(如R/S)。因此本文選取db(3)作為小波消失矩,小波分解層數(shù)為j=10,小波移動尺度k=1。
小波分解過程中通常采用二進制伸縮的方式,如式(4)所示:

參考文獻[11]中的研究表明,利用小波高頻系數(shù)dig(j,k)求解Hurst指數(shù)的方法主要有方差法、譜估計法和能量法等。本文選擇方差法求解Hurst指數(shù),如式(5)所示:

根據(jù)式(5)的定義對小波高頻系數(shù)(或稱細節(jié)系數(shù))dig(j,k)做零值化處理,以達到均方誤差最小的目的,如式(6)所示。

經過小波變換分解和零值化處理后,通過對式(5)兩邊取對數(shù)進行線性擬合,如式(7)所示:

得到以 j為自變量,以 log2Var?dig′(j,k)」,k=1,2,…,100 為函數(shù)的直線,其斜率b=2H+1,即為Hurst指數(shù)。
對于小尺度網絡模型而言,當平穩(wěn)的DDoS攻擊流量發(fā)生時,網絡流量整體的波動性下降,突發(fā)性減弱,自相似性增強。經過本文提出的預處理方法處理,Hurst指數(shù)升高并趨于平穩(wěn)。本文方法正是利用這一原理對DDoS攻擊進行檢測,并通過計算方差的方法來檢測Hurst指數(shù)的平穩(wěn)性。
本文提出,對經過預處理的流量采用Hurst指數(shù)方差平均值 Var[H′]來量化其變化程度,如式(8)所示。

式中E為計算平均值的尺度大小,V為計算方差的尺度大小。E和V的選取將會對算法的檢測延遲和誤報率產生影響。取值越高,觀測越準確,誤報率越低,但也會造成檢測延遲上升。相反則會降低檢測延遲,提高誤報率。在此本文將閾值設定為
本文采用模擬攻擊的方法對文中提出的網絡異常檢測算法進行測試。
實驗數(shù)據(jù)由正常的背景流量和模擬的攻擊流量匯聚而成。
以北京工業(yè)大學某樓層的真實流量為正常流量樣本,采用Wireshark截取上午 10:30~11:17之間的全部流量。時間精度為1 ms,包括各類正常訪問的數(shù)據(jù)包1 620 400個。分別匯聚為精度10 ms的BJUT-10流量和精度為1 s的BJUT-1000流量。
利用Sprient公司的ThreatEx2600作為攻擊流量的產生工具,模擬了DDoS攻擊中最經典的SYN-Flood攻擊流量,并將攻擊強度以1 000 threats/s的幅度逐漸增加。將攻擊行為分為兩次,分別在小背景流量和大背景流量下進行,小背景流量攻擊發(fā)生在100 000 ms,大背景流量發(fā)生在200 000 ms。每次攻擊持續(xù)180 s,其中流量上升階段30 s,峰值攻擊 120 s,流量下降階段30 s。測試環(huán)境如圖1所示。

通過第2.3節(jié)中所描述的檢測算法對實驗數(shù)據(jù)進行檢測,Hurst值的結果如圖2所示。

在框內的部分發(fā)生DDoS攻擊(攻擊發(fā)生于100 000 ms~117 998 ms及 200 000 ms~217 998 ms之間),Hurst值在攻擊發(fā)生時段明顯趨于穩(wěn)定。
經過方差處理后,在低流量背景情況下,Hurst指數(shù)方差值明顯趨于0,比較容易檢測出攻擊。但是在高流量背景下(后一個框),攻擊時Hurst方差值同正常流量的Hurst方差值大小并無明顯區(qū)別,只能從趨勢和前后節(jié)點數(shù)據(jù)關聯(lián)性上看出一定特性。
用式(8)方法對Hurst指數(shù)進行方差和均值處理后,如圖3、圖4所示。從圖中可以看出當DDoS攻擊發(fā)生時,Hurst指數(shù)方差均值處于所設的閾值之下。
定義 1:誤報率 σ,攻擊發(fā)生的次數(shù)為 T,誤報攻擊的次數(shù)為t。誤報率為誤報攻擊的次數(shù)與實際攻擊發(fā)生次數(shù)的比值,即
定義2:檢測延遲T,即攻擊被檢測出的時間與攻擊發(fā)生時間之間的延遲。

從實驗結果可以得出,在利用BJUT-10流量模型進行異常檢測時,當攻擊流量達到背景流量36.90%時,攻擊被檢測出來,但檢測完整性較差,僅為2.10%,檢測延遲91.28 s。
當攻擊增強而背景流量不變時,攻擊的檢測率提高,攻擊檢測完整性也相應提高;當攻擊流量占到總流量91.36%時,檢測率達到100%,檢測完整性達到75.18%,檢測延遲為26.1 s。
當攻擊強度不變,背景流量發(fā)生變化時,在大流量背景下,檢測的完整性較小流量背景下攻擊的檢測完整性和檢測率差距較大,檢測延遲明顯降低。
為了驗證本文算法的性能,采用相同的實驗數(shù)據(jù)與典型檢測方法進行了對比測試。
本文重現(xiàn)了參考文獻[6]中的Holder指數(shù)計算方法,并將關鍵實驗參數(shù)設置為λ=0.9,s=10。
根據(jù)參考文獻[6-7]中的 Hurst指數(shù)檢測法,因Hurst指數(shù)檢測法只適用于大尺度的網絡模型,即時間敏感度大于1s的網絡模型,因此本文采用BJUT-1000流量進行模擬檢測。采用db(3)小波分解,小波分解層數(shù)為j=10,小波移動尺度 k=1,時間區(qū)間n=10。
本文模擬的DDoS攻擊包含了30 s攻擊速率上升的過程,因此檢測延遲在一定程度上反應了檢測算法對攻擊發(fā)生初期(0 s~30 s)的檢測能力。
從圖5可以看出本文方法在檢測延遲上同Holder指數(shù)檢測法性能相當。從算法誤報率上看,本文方法誤報率較Holder指數(shù)檢測法有明顯改善。因而本文方法在檢測率和檢測完整性上優(yōu)于其他兩種檢測算法。如圖6所示。

本文提出了一種基于多分形模型數(shù)據(jù)預處理的異常檢測方法。利用小波分解的方法對網絡流量進行分析。通過增加數(shù)據(jù)間相關性使得短相關的流量數(shù)據(jù)具備一定的長相關特性,而長相關數(shù)據(jù)的特性更加明顯。同時使用Hurst指數(shù)方差平均值對攻擊流量進行檢測。相比于現(xiàn)有的實時檢測算法,其誤報率明顯降低,并保持較低的檢測延遲,提高了檢測率和檢測完整性。
參考文獻
[1]JOSEPH L H,FAN Z,PEIWEZ S.Characterizing normal operation of a Web Server:application to workload forecasting and problem detection[C].Proceedings of the Computer Measurement Grouy,1998.
[2]THOTTAN M,JI C Y.Statistical detection of enterprise network problem[J].Journal of Network and Systems Management,1999,7(1):27-45.
[3]曹敏,程東年,張建輝,等.基于自適應閾值的網絡流量異常檢測算法[J].計算機工程,2009,35(19):164-167.
[4]ABRY P,VEITCH D,Wavelet analysis of long-range dependence traffic[J].IEEE Trans on Information Theory,1998,44(1):2-15.
[5]任義龍,劉淵,一種基于Holder指數(shù)的DDoS攻擊檢測方法[J].計算機應用研究,2011,28(2):724-727.
[6]任義龍,劉淵.一種基于小波分析的DDoS攻擊檢測方法[J/OL].[2011-09-29].http://www.cnki.net/kcms/detail/11.2127.tp.20110929.1037.054.html.
[7]李金明,王汝傳.基于VTP方法的 DDoS攻擊實時監(jiān)測技術研究[J].電子學報,2007,35(4):791-796.
[8]胡俊,譚獻海,覃宇飛.基于小波技術的網絡流量分析與刻畫[J].計算機應用,2007,27(11):2659-2665.
[9]任勛益,王汝傳,祁正華.消失矩對小波分析求解自相似參數(shù)Hurst的影響研究[J],電子與信息學報,2007,29(9):2257-2261.
[10]任勛益,王汝傳,王海艷.基于自相似檢測DDoS攻擊的小波分析方法[J].通信學報,2006,27(5):6-11.
[11]李永利,劉貴忠,王海軍,等.自相似數(shù)據(jù)流的 Hurst指數(shù)小波求解法分析[J].電子與信息學報,2003,25(1):100-105.