茍 峰, 余 諒, 盛鐘松
(四川大學(xué)計(jì)算機(jī)學(xué)院, 成都 610065)
拒絕服務(wù)(Denial-of-Service, DoS)攻擊利用TCP三次握手的缺陷來(lái)消耗網(wǎng)絡(luò)、服務(wù)器集群或終端主機(jī)的資源,從而嚴(yán)重降低或拒絕對(duì)合法用戶的服務(wù).DoS攻擊的典型特征是實(shí)施攻擊過(guò)程中涉及大量機(jī)器,具有極高的數(shù)據(jù)率,其明顯的統(tǒng)計(jì)異常極易被入侵檢測(cè)系統(tǒng)(Intrusion Detection System, IDS)檢測(cè)到,并降低攻擊造成的影響.2001年,美國(guó)AstaNetworks在Internet2Abilene骨干網(wǎng)絡(luò)上檢測(cè)到一種新的DoS攻擊手段,與DoS、DDoS攻擊不同,該攻擊平均速率很低,難以被已有的DoS檢測(cè)手段發(fā)現(xiàn).這種低速率DoS(Low-rate DoS,LDoS)攻擊被Kuzmanovic等人稱為“地鼠攻擊”(ShrewAttacks)[1],后來(lái)也有研究者稱之為降質(zhì)攻擊(RoQ,Reduction-of-Quality)[2-3]、脈沖式拒絕服務(wù)攻擊(Pulsing DoS Attacks)[4]等.LDoS攻擊是利用TCP的超時(shí)重傳機(jī)制的漏洞,攻擊者通過(guò)惡意選擇攻擊周期、攻擊強(qiáng)度和攻擊持續(xù)時(shí)間來(lái)使TCP接收窗口維持較小值甚至近零.
簡(jiǎn)單LDoS攻擊的模型如圖1所示.該模型可用三元組(T,τ,δ)來(lái)表示,其中,T為攻擊周期,表示連續(xù)兩次攻擊之間的間隔,文獻(xiàn)[1]中建議的攻擊周期為1 s.但已有研究者表明攻擊周期T選擇可以由攻擊者通過(guò)鏈路狀態(tài)進(jìn)行預(yù)估[3];τ為攻擊持續(xù)時(shí)間,表示周期內(nèi)攻擊持續(xù)的時(shí)間長(zhǎng)度;δ為攻擊強(qiáng)度,表示LDoS攻擊流的速率.
圖1 LDoS攻擊模型Fig.1 The model of LDoS Attacks
自LDoS提出以來(lái),國(guó)內(nèi)外許多研究機(jī)構(gòu)對(duì)此進(jìn)行了研究.對(duì)LDoS的檢測(cè)普遍是利用數(shù)字信號(hào)處理的方法,提取網(wǎng)絡(luò)流量的頻域特征進(jìn)行檢測(cè)[5],其中典型的有基于小波變換[6-7]、基于協(xié)同檢測(cè)的檢測(cè)方法.雖然從頻域的角度能實(shí)現(xiàn)不錯(cuò)的檢測(cè)效果,但這種方式需要準(zhǔn)確的提取特征,并進(jìn)行復(fù)雜的運(yùn)算,這導(dǎo)致檢測(cè)過(guò)程時(shí)延較大,實(shí)時(shí)性達(dá)不到要求.此外,在當(dāng)前網(wǎng)絡(luò)大數(shù)據(jù)的情況下,該方法也有一定的局限性.因此,結(jié)合機(jī)器學(xué)習(xí)的檢測(cè)方法成為新的選擇,但是應(yīng)用此方法缺少有效的數(shù)據(jù)集,主要是通過(guò)仿真工具產(chǎn)生實(shí)驗(yàn)數(shù)據(jù),規(guī)模性與多樣性不足.從時(shí)域的角度對(duì)網(wǎng)絡(luò)層的鏈路狀態(tài)特征分析[8-10]實(shí)現(xiàn)LDoS的檢測(cè)是目前一種新的思路,本文的方法也是基于這一角度出發(fā),對(duì)路由器的入口流量進(jìn)行分析,利用基于累計(jì)和(Cumulative Sum,CUSUM)算法累積異常,累積值超過(guò)閾值即觸發(fā)報(bào)警,實(shí)現(xiàn)異常檢測(cè).目前,針對(duì)低速率拒絕服務(wù)攻擊的研究已經(jīng)從這種攻擊方式的仿真實(shí)現(xiàn)[5,11-12]進(jìn)入到檢測(cè)和預(yù)防[13],應(yīng)用領(lǐng)域逐漸深入到域間路由系統(tǒng)[14-15]與數(shù)據(jù)中心[16].
目前已有許多研究者提出了不同的檢測(cè)方法.Bhuyan等[17]提出一種利用廣義總變差的方法來(lái)檢測(cè)多維度的LDDoS攻擊,該方法利用抖動(dòng)窗口計(jì)算每個(gè)時(shí)間周期內(nèi)的廣義總變差,從而定位異常.吳志軍等[18]通過(guò)研究網(wǎng)絡(luò)中正常情況和存在LDoS攻擊時(shí)ACK序號(hào)步長(zhǎng)的波動(dòng)差異,利用排列熵算法實(shí)現(xiàn)了對(duì)LDoS攻擊的檢測(cè).Zhang等[19]提出利用核心主成分算法對(duì)隊(duì)列特征進(jìn)行降維,再結(jié)合機(jī)器學(xué)習(xí)算法根據(jù)網(wǎng)絡(luò)狀態(tài)來(lái)檢測(cè)LDoS攻擊.Hayashi等[20]證明突發(fā)攻擊流量的持續(xù)時(shí)間是從正常流量中區(qū)別LDoS流量的較好特征,提出利用路由器快速分組匹配功能來(lái)檢測(cè)LDoS攻擊.Xiang等[21]提出了利用廣義熵和信息距離為度量,量化不同概率分布的差異,通過(guò)計(jì)算廣義熵和信息距離來(lái)檢測(cè)LDoS攻擊流量.Rashed等人[22]提出了利用優(yōu)化的Sigmoid濾波器來(lái)檢測(cè)LDoS攻擊的方法,在允許通過(guò)指定帶寬的路由器上設(shè)置帶寬閾值,超過(guò)該閾值的流量則丟棄,或者重定向到蜜罐服務(wù)器.何炎祥等[23]提出了一種基于小波特征提取的LDoS檢測(cè)方法,通過(guò)小波多尺度分析,提取LDoS攻擊規(guī)律的特征,采用BP神經(jīng)網(wǎng)絡(luò)來(lái)訓(xùn)練檢測(cè)模型.Chen等[24]提出了協(xié)同檢測(cè)過(guò)濾的方法檢測(cè)LDDoS攻擊的方法,該方法利用離散傅里葉變換DFT對(duì)采樣時(shí)間內(nèi)的自相關(guān)序列進(jìn)行頻域轉(zhuǎn)換,利用能量譜密度PSD來(lái)區(qū)分合法流量與LDoS攻擊流量.Chen等[25]提出了一個(gè)使用(Field Programmable Gate Array,F(xiàn)PGA)進(jìn)行能量譜密度分析的嵌入式加速器,它利用強(qiáng)大的計(jì)算能力和與軟件相似的靈活性.該方法能在復(fù)雜背景流量中提供高質(zhì)量的惡意流量檢測(cè),但是需要較高的硬件成本.
雖然LDoS攻擊具有很強(qiáng)的隱蔽性,但是其攻擊仍然會(huì)造成正常流量的統(tǒng)計(jì)異常.本文在對(duì)LDoS攻擊原理及特征分析的基礎(chǔ)上,結(jié)合CUSUM算法對(duì)統(tǒng)計(jì)異常進(jìn)行累積,一旦累積值超過(guò)設(shè)定的閾值即可觸發(fā)異常警報(bào).
CUSUM算法[26-28]屬于基于假設(shè)檢驗(yàn)的變點(diǎn)檢測(cè)算法族,針對(duì)獨(dú)立同分布的隨機(jī)變量設(shè)計(jì),對(duì)過(guò)程均值有無(wú)漂移進(jìn)行檢驗(yàn).令y1,y2,…,yθ為獨(dú)立同分布N(0,1)變量,而yθ+1,yθ+2,yθ+3,…為獨(dú)立同分布N(δ,1)變量,其中變點(diǎn)θ未知,對(duì)給定觀察序列y1,y2,…,yn,備選假設(shè)θ=ν(ν (1) (2) 若已知δ>0,則上述似然比統(tǒng)計(jì)量等價(jià)于下述統(tǒng)計(jì)量,如下式. (3) 在正常情況下,Zn<0,對(duì)于給定門(mén)限值h,如果Zi (4) 計(jì)算可得Zn的遞推公式 (5) 由于因特網(wǎng)是一個(gè)復(fù)雜的動(dòng)態(tài)實(shí)體,因此采用非參數(shù)的CUSUM算法更利于分析,非參數(shù)CUSUM算法的核心思想是累積明顯高于正常情況下平均水平的Yn值.該算法的優(yōu)點(diǎn)之一是能持續(xù)監(jiān)控輸入的隨機(jī)變量,達(dá)到實(shí)時(shí)檢測(cè)的效果. 對(duì)路由器入口流量觀察序列{yn},yi為第i時(shí)刻到達(dá)的流量大小(以字節(jié)為單位),μi為第i時(shí)刻到達(dá)的平均流量大小,μn由指數(shù)加權(quán)移動(dòng)平均EWMA(Exponentially Weighted Moving Average)的方式得出,具體表達(dá)式如(6)式所示. μn=β1yn+(1-β1)μn-1,μ0=y0 (6) 其中,β1為EWMA因子. dn=max{0,dn-1+yn-(μn+K)},d0=0 (7) 通常情況下,K是保證E(dn-1+yn-(μn+K))在正常情況下小于0的值,即dn=0. 由于網(wǎng)絡(luò)中流量模式是動(dòng)態(tài)變化的,在應(yīng)用CUSUM算法檢測(cè)LDoS攻擊時(shí),如果固定異常計(jì)數(shù)器dn的閾值將會(huì)限制檢測(cè)性能與應(yīng)用范圍,因此該閾值為動(dòng)態(tài)確定的,如(8)式所示. (8) 其中,β2為EWMA因子;σn為yn的標(biāo)準(zhǔn)差;H為判決門(mén)限;h為決策因子,h的取值對(duì)CUSUM檢測(cè)算法的性能有較大影響,如果h取值太小,那么檢測(cè)表現(xiàn)過(guò)于激進(jìn),將會(huì)導(dǎo)致較高的誤報(bào),如果h取值太大,那么檢測(cè)表現(xiàn)過(guò)于保守,將會(huì)導(dǎo)致較高的漏報(bào).當(dāng)dn>H時(shí),說(shuō)明檢測(cè)到異常. 上述算法涉及的參數(shù)取值參考范圍如表1所示. 表1 參數(shù)取值范圍 根據(jù)上述內(nèi)容,應(yīng)用CUSUM算法實(shí)現(xiàn)LDoS檢測(cè)的步驟如下. (1) 對(duì)路由器入口流量進(jìn)行采樣; (2) 將采樣數(shù)據(jù)根據(jù)式(6)和式(7)式計(jì)算出采樣時(shí)刻的平均流量大小μn與異常累積計(jì)數(shù)器dn; (3) 根據(jù)(8)式,結(jié)合步驟(2)分析得到的數(shù)據(jù)判斷dn>H是否成立,若是,則檢測(cè)系統(tǒng)發(fā)起警報(bào),并將異常寫(xiě)入日志;若否,則轉(zhuǎn)入步驟(4); (4) 判斷檢測(cè)是否結(jié)束,若是,則轉(zhuǎn)入步驟(5);若否,則轉(zhuǎn)入步驟(1); (5) 結(jié)束檢測(cè). 在檢測(cè)系統(tǒng)運(yùn)行前,需要在仿真環(huán)境中瓶頸鏈路速率穩(wěn)定時(shí)再進(jìn)行攻擊.根據(jù)TCP擁塞管理機(jī)制,初始階段發(fā)送方的發(fā)送速率是逐漸增大的過(guò)程,而本文提出的CUSUM檢測(cè)算法本身是基于網(wǎng)絡(luò)流量異常累積的,因此在仿真過(guò)程開(kāi)始階段進(jìn)行檢測(cè)具有較高的誤報(bào)率.雖然在實(shí)驗(yàn)中有設(shè)定的條件限制,但是在實(shí)際環(huán)境中網(wǎng)絡(luò)狀態(tài)是處于穩(wěn)定的,所以并不影響該檢測(cè)算法的實(shí)際應(yīng)用.檢測(cè)實(shí)現(xiàn)過(guò)程的流程如圖2所示. 圖2 檢測(cè)流程圖Fig.2 The detection flow chart 已有研究表明,正常網(wǎng)絡(luò)中有80%的流量為T(mén)CP[29].因此本文以TCP流量代表正常流量,以UDP流量代表LDoS攻擊流量.本文實(shí)驗(yàn)測(cè)試環(huán)境參考美國(guó)萊斯大學(xué)Kuzmanovic教授實(shí)驗(yàn)團(tuán)隊(duì)基于NS-2的網(wǎng)絡(luò)拓?fù)洵h(huán)境[1,11],攻擊流量采用ShrewAttack攻擊工具生成,實(shí)驗(yàn)拓?fù)淙鐖D3所示. 圖3 實(shí)驗(yàn)拓?fù)浣Y(jié)構(gòu)Fig.3 The topology of experiment 圖3中,TCP流量的產(chǎn)生服從指數(shù)分布,TCP窗口大小設(shè)置為128 byte,TCP報(bào)文大小為1 040 byte,UPD攻擊報(bào)文為40 byte.根據(jù)圖3所示的拓?fù)浣Y(jié)構(gòu),其中關(guān)鍵參數(shù)設(shè)置表2所示. 表2 拓?fù)浣Y(jié)構(gòu)關(guān)鍵參數(shù) 本文定義性能檢測(cè)指標(biāo)為檢測(cè)率、漏警率、誤警率,具體如下. 圖2中,設(shè)定節(jié)點(diǎn)數(shù)N=5,實(shí)驗(yàn)時(shí)長(zhǎng)60 s,攻擊流量在第30 s開(kāi)始,此時(shí)鏈路狀態(tài)趨于穩(wěn)定,第50 s結(jié)束,實(shí)驗(yàn)總次數(shù)120次.圖4顯示了鏈路速率和攻擊模式,圖4(a)為正常情況下的鏈路速率,圖4(b)為遭受LDoS攻擊后的鏈路速率,圖4(c)為相應(yīng)的LDoS攻擊流量.由圖4可知,在正常情況下,鏈路速率趨于平穩(wěn),帶寬利用率為90%左右,受LDoS攻擊1.4 s之后速率開(kāi)始下降,攻擊停止2.5 s后開(kāi)始恢復(fù),在攻擊期間鏈路速率下降25%左右. 圖4 鏈路速率和攻擊Fig.4 The rate of links and attack 由式(7)和式(8)知參數(shù)h和K是影響檢測(cè)性能的主要因素,實(shí)驗(yàn)中分別設(shè)置了不同的h、K值進(jìn)行比較,并取EMWA因子β1=0.8,β2=0.95.圖5顯示了不同h、K的取值時(shí)檢測(cè)率TP和誤警率FP的情況,當(dāng)K值小于5、h值小于0.07時(shí)檢測(cè)誤警率FP偏高,圖5表明當(dāng)h=0.1,K=8時(shí)檢測(cè)性能最好,此時(shí)檢測(cè)率為96%,誤警率為8%.在實(shí)驗(yàn)中,繼續(xù)增大K時(shí),誤警率會(huì)降低,但是檢測(cè)率也會(huì)大幅度下降. 圖5 不同的h和K值對(duì)檢測(cè)性能的影響Fig.5 The impact of different value of h and K on detection performance 圖6顯示了應(yīng)用CUSUM算法進(jìn)行檢測(cè)時(shí)累積值dn及門(mén)限值H的變化圖.由圖6(a)可知,在LDoS攻擊期間累積值dn明顯偏高.注意到在0至5 s內(nèi)累積值dn也明顯高于門(mén)限值H,這主要是在此期間,進(jìn)入路由鏈路的流量還逐漸增加至鏈路帶寬引起,同時(shí)這也是誤警率較高的主要原因,因此本文實(shí)驗(yàn)選擇在路由帶寬利用率穩(wěn)定時(shí)進(jìn)行攻擊,以此來(lái)驗(yàn)證攻擊性能與檢測(cè)性能.由圖6(b)可知,該檢測(cè)方法的平均檢測(cè)時(shí)延約2.6 s,在可接受范圍內(nèi). 圖6 應(yīng)用CUSUM算法后的檢測(cè)結(jié)果Fig.6 The detection result of applying CUSUM algorithm 本文方法與該領(lǐng)域已有相關(guān)檢測(cè)方法性能比較如表3所示. 表3 不同算法的檢測(cè)結(jié)果 從表3可知,本文方法比歸一化功率密度譜NCPSD方法的檢測(cè)性能更優(yōu).雖然誤警率比基于網(wǎng)絡(luò)流量奇異性特征的檢測(cè)方法偏高,但是本文方法的檢測(cè)率更高,總體性能更優(yōu).相對(duì)于FIR濾波器檢測(cè)方法,本文方法具有更低的誤警率.本文方法雖在性能上略差于基于ACK步長(zhǎng)的檢測(cè)方法,但是本文方法的計(jì)算復(fù)雜度更低.所以,本文提出的方法雖然在檢測(cè)早期存在一定的誤報(bào)率,但是對(duì)LDoS攻擊的檢測(cè)性能較為理想,總體計(jì)算復(fù)雜度更低. 本文針對(duì)路由器遭受LDoS攻擊時(shí)進(jìn)入鏈路隊(duì)列的流量特征進(jìn)行了時(shí)域上的分析,提出了一種基于累積和CUSUM算法的LDoS檢測(cè)方法.該方法基于假設(shè)檢驗(yàn),分析了不同的參數(shù)取值對(duì)檢測(cè)性能的影響,將累積值與鏈路狀態(tài)突變前后的閾值相比較,從而實(shí)現(xiàn)LDoS攻擊檢測(cè)的目的.該方法占用系統(tǒng)資源少,易于嵌入部署到路由器上進(jìn)行LDoS攻擊的實(shí)時(shí)檢測(cè).本文方法與其他已提出方法相比檢測(cè)率較高,有較好的檢測(cè)性能.但該方法也有不足之處,在流量發(fā)生的初期會(huì)產(chǎn)生誤報(bào),檢測(cè)到攻擊之后沒(méi)有對(duì)應(yīng)的對(duì)抗策略來(lái)緩解攻擊造成的影響,這也是后續(xù)研究的重點(diǎn)內(nèi)容.3.2 CUSUM算法在LDoS檢測(cè)中的應(yīng)用
3.3 實(shí)驗(yàn)環(huán)境及參數(shù)的設(shè)置
3.4 實(shí)驗(yàn)結(jié)果分析
4 結(jié) 論