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