劉偉山
關(guān)鍵詞:DDoS 攻擊;異常檢測(cè);流量控制
中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2023)10-0084-03
0 引言
DDoS(Distributed Denial-of-Service)攻擊是互聯(lián)網(wǎng)目前面臨的最嚴(yán)峻的威脅之一,也是近幾年網(wǎng)絡(luò)安全研究的熱點(diǎn)問(wèn)題。面對(duì)DDoS攻擊,雖然可以選擇提高網(wǎng)絡(luò)帶寬和增強(qiáng)網(wǎng)絡(luò)設(shè)備性能來(lái)抗衡,但帶寬容量不可能無(wú)限增長(zhǎng),而攻擊的規(guī)模則可以通過(guò)控制更多的僵尸主機(jī)(zombie)(實(shí)際執(zhí)行攻擊的機(jī)器)來(lái)大大加強(qiáng),而且隨著僵尸主機(jī)的性能的不斷增長(zhǎng),攻擊的強(qiáng)度也與日俱增,因此這種消極的應(yīng)對(duì)方法并不值得提倡[1]。目前不少研究人員在這個(gè)安全領(lǐng)域進(jìn)行了大量的研究,研究并總結(jié)出一些防御措施。這些方法根據(jù)其所處的防御階段可以分為攻擊發(fā)生前后的預(yù)防和追蹤以及攻擊時(shí)的控制。由于互聯(lián)網(wǎng)管理的分散性,攻擊前的預(yù)防通常不易實(shí)施[2]。而對(duì)攻擊機(jī)器的追蹤雖然在某種程度上可以制止攻擊的持續(xù)進(jìn)行,但由于這種方法必須要求對(duì)互聯(lián)網(wǎng)中眾多網(wǎng)絡(luò)設(shè)備進(jìn)行動(dòng)態(tài)設(shè)置,以使它們可以聯(lián)動(dòng)工作才可能取得預(yù)期的效果,所以現(xiàn)實(shí)中并不十分可行;于是人們紛紛將重點(diǎn)放在遭受攻擊過(guò)程中對(duì)攻擊的檢測(cè)與控制上。目前一個(gè)簡(jiǎn)易可行的檢測(cè)與防御辦法,就是在網(wǎng)絡(luò)中一些關(guān)鍵的出口或入口處設(shè)置一個(gè)防御監(jiān)控設(shè)備,這個(gè)設(shè)備有能力在攻擊到來(lái)時(shí)及時(shí)檢測(cè)出攻擊發(fā)生,并采取有效的控制措施以達(dá)到信息網(wǎng)絡(luò)系統(tǒng)的正常服務(wù)。
1 DDoS 攻擊原理
分布式阻斷服務(wù)(DDoS)攻擊的前身是所謂的阻斷服務(wù)(Denialof-Service,簡(jiǎn)稱(chēng)DoS)攻擊。DoS攻擊并不以篡改或竊取主機(jī)數(shù)據(jù)為目的,而是癱瘓系統(tǒng)主機(jī)使之無(wú)法正常運(yùn)作[3]。換言之,由于一般網(wǎng)絡(luò)系統(tǒng)的系統(tǒng)資源(例如內(nèi)存、磁盤(pán)空間以及網(wǎng)絡(luò)帶寬等)都有限,因此黑客可以根據(jù)部分網(wǎng)絡(luò)系統(tǒng)或者相關(guān)通信協(xié)議等的設(shè)計(jì)或?qū)崿F(xiàn)上的漏洞,在一段時(shí)間內(nèi)通過(guò)傳送大量且密集的數(shù)據(jù)包至特定網(wǎng)站,使該網(wǎng)站無(wú)法立即處理這些數(shù)據(jù)包而導(dǎo)致癱瘓,進(jìn)而造成網(wǎng)絡(luò)用戶無(wú)法連上該網(wǎng)站而被阻絕在外。這種攻擊對(duì)網(wǎng)站本身而言并不具破壞性,只是造成系統(tǒng)無(wú)法及時(shí)處理信息或者宕機(jī)。
DDoS攻擊主要過(guò)程如下:攻擊者(Attacker)通過(guò)掃描從網(wǎng)絡(luò)中找出存在漏洞的服務(wù)器或網(wǎng)絡(luò)系統(tǒng)作為入侵控制的主控設(shè)備(Masters),通過(guò)控制主控設(shè)備重復(fù)掃描、入侵的步驟,攻擊者掌握了為數(shù)眾多的攻擊執(zhí)行設(shè)備(Zombies)[4]。需要發(fā)動(dòng)攻擊時(shí),攻擊者只需操縱主控設(shè)備并植入攻擊指令和代碼在攻擊執(zhí)行設(shè)備中,后者即可對(duì)受害者發(fā)起DDoS攻擊。
2 DDoS 檢測(cè)和防御系統(tǒng)設(shè)計(jì)
本系統(tǒng)設(shè)計(jì)是一個(gè)可部署在網(wǎng)絡(luò)關(guān)鍵出入口或者骨干網(wǎng)絡(luò)出入口的網(wǎng)絡(luò)安全設(shè)備,用于抑制異常的網(wǎng)絡(luò)流量以保證網(wǎng)絡(luò)正常的通信,使網(wǎng)絡(luò)即使在遭受諸如SYN泛洪、ICMP泛洪等一種或者多種已知或者未知的分布式服務(wù)攻擊情況下仍然能夠提供最大限度的正常網(wǎng)絡(luò)服務(wù)。
2.1 系統(tǒng)架構(gòu)設(shè)計(jì)
本系統(tǒng)使用多位組統(tǒng)計(jì)檢測(cè)方法對(duì)網(wǎng)絡(luò)異常進(jìn)行監(jiān)測(cè)。多位組統(tǒng)計(jì)就是對(duì)IP網(wǎng)絡(luò)中的數(shù)據(jù)分組表頭的各位組進(jìn)行解析,并根據(jù)需求分別分項(xiàng)統(tǒng)計(jì)。本模塊設(shè)計(jì)是在系統(tǒng)所完成的多位組積累數(shù)據(jù)統(tǒng)計(jì)的基礎(chǔ)上,進(jìn)一步完成多位組檢測(cè)和數(shù)據(jù)流的分級(jí)控制。
整個(gè)系統(tǒng)設(shè)計(jì)主要包含下列三大模塊:
1)統(tǒng)計(jì)分類(lèi):由于網(wǎng)絡(luò)位組攜帶有網(wǎng)絡(luò)通信的各種重要信息,對(duì)它們進(jìn)行統(tǒng)計(jì)分析有助于深入了解網(wǎng)絡(luò)的運(yùn)行狀況。在網(wǎng)絡(luò)正常運(yùn)行的情況下,各位組會(huì)對(duì)應(yīng)網(wǎng)絡(luò)所提供的服務(wù)以及網(wǎng)絡(luò)狀況而各自出現(xiàn)特定統(tǒng)計(jì)特征,各個(gè)位組之間也會(huì)對(duì)應(yīng)網(wǎng)絡(luò)行為而出現(xiàn)在數(shù)量及比例上的種種特殊聯(lián)系。
2)異常檢測(cè):一旦發(fā)生攻擊,就極有可能破壞這些固有的特征或關(guān)系而顯現(xiàn)異常。針對(duì)這種特點(diǎn),本模塊對(duì)各項(xiàng)統(tǒng)計(jì)數(shù)據(jù)進(jìn)行異常性分析,并得出其異常程度指數(shù),當(dāng)有異常情況顯現(xiàn)并超出一定范圍時(shí)可以將異常程度指數(shù)最高的位組編號(hào)記錄下來(lái)(本設(shè)計(jì)中對(duì)異常指數(shù)最高的四個(gè)位組項(xiàng)進(jìn)行記錄),然后根據(jù)此數(shù)據(jù)把流經(jīng)本系統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)流程中含有這些異常位組項(xiàng)的數(shù)據(jù)分組,根據(jù)其異常程度指數(shù)的高低編入相應(yīng)的分級(jí)速率限制隊(duì)列進(jìn)行流量控制,從而抑制異常流量的影響,以保證在遭受攻擊時(shí)仍然能夠維持網(wǎng)絡(luò)的正常運(yùn)行。
3)流量控制:流量控制應(yīng)用于正常流量時(shí),就是對(duì)正常流量根據(jù)需求進(jìn)行數(shù)據(jù)流程分類(lèi)并引導(dǎo)到不同的控制隊(duì)列,以達(dá)到根據(jù)應(yīng)用需求進(jìn)行帶寬管理的目的。流量控制也可以應(yīng)用于異常流量的控制,這時(shí)則根據(jù)預(yù)定的策略對(duì)檢測(cè)到的異常流量進(jìn)行限制以避免或降低這些流量對(duì)網(wǎng)絡(luò)所造成的影響,而對(duì)合理占用的則給予較高QoS的隊(duì)列調(diào)度來(lái)達(dá)到限制攻擊的目的。
當(dāng)今最著名而被廣泛應(yīng)用的流量控制技術(shù)莫過(guò)于TCP協(xié)議中采用的滑動(dòng)窗口(Sliding Window);另外,令牌桶過(guò)濾器(Token Bucket Filter,TBF)流量控制也是一種比較常用的流量控制技術(shù)[5]。令牌桶過(guò)濾器的基本思想是通過(guò)控制令牌桶過(guò)濾器來(lái)調(diào)控網(wǎng)絡(luò)中流經(jīng)的數(shù)據(jù)包,從而達(dá)到調(diào)控?cái)?shù)據(jù)流速率,使網(wǎng)絡(luò)流量平滑,避免過(guò)大的突發(fā)流量,以達(dá)到防御的目的。
2.2 系統(tǒng)流程
本節(jié)系統(tǒng)流程以數(shù)據(jù)流程圖(Data Flow Chart)說(shuō)明,以下分別是異常檢測(cè)的流程和實(shí)現(xiàn)和異常防御的流程和實(shí)現(xiàn)。
2.2.1 異常檢測(cè)流程
1)異常性檢測(cè)處理器:對(duì)數(shù)據(jù)包的統(tǒng)計(jì)數(shù)據(jù)中的每一個(gè)位組項(xiàng)求異常程度指數(shù)并對(duì)超出一定范圍的異常程度指數(shù)進(jìn)行排序,得出前4位及其對(duì)應(yīng)的位組編號(hào),保存在異常指數(shù)排序表中。
2)結(jié)合異常檢測(cè)法(Anomaly Detection)和濫用檢測(cè)法(Misuse Detection)兩種檢測(cè)方法,并且采用以前者為主,后者為輔的檢測(cè)方式來(lái)對(duì)多元統(tǒng)計(jì)數(shù)據(jù)進(jìn)行監(jiān)控和分析。根據(jù)各種網(wǎng)絡(luò)協(xié)議自身的特點(diǎn)及協(xié)議之間關(guān)系的一些固有特點(diǎn)而顯現(xiàn)出特定的統(tǒng)計(jì)特征。
3)對(duì)正常數(shù)據(jù)流程各位組統(tǒng)計(jì)數(shù)據(jù)進(jìn)行均值及標(biāo)準(zhǔn)差分析,求出在沒(méi)有遭受攻擊的情況下,網(wǎng)絡(luò)流量統(tǒng)計(jì)中每一個(gè)多位組項(xiàng)的正常特征參數(shù)。根據(jù)以上學(xué)習(xí)獲得的參數(shù)作為正常狀況的標(biāo)準(zhǔn)參數(shù)來(lái)進(jìn)行異常數(shù)據(jù)流檢測(cè)。
4)數(shù)據(jù)庫(kù)控制處理器:負(fù)責(zé)對(duì)三組數(shù)據(jù)庫(kù)進(jìn)行讀取以及將運(yùn)算結(jié)果寫(xiě)回,同時(shí)負(fù)責(zé)根據(jù)預(yù)設(shè)的定時(shí)程序去更新其他模塊的數(shù)據(jù)結(jié)構(gòu)。
2.2.2 異常防御流程
異常防御的流程主要通過(guò)對(duì)令牌桶過(guò)濾器參數(shù)的控制和管理,以達(dá)到對(duì)流量進(jìn)行控制。
1)數(shù)據(jù)流程以等于權(quán)重流的速率到達(dá)令牌桶過(guò)濾器。這種情況下,每個(gè)到來(lái)的數(shù)據(jù)包都能對(duì)應(yīng)一個(gè)權(quán)重,然后無(wú)延遲地通過(guò)隊(duì)列。
2)數(shù)據(jù)流程以小于權(quán)重流的速度到達(dá)令牌桶過(guò)濾器。通過(guò)隊(duì)列的數(shù)據(jù)包只消耗了一部分權(quán)重,剩下的權(quán)重會(huì)在桶里積累下來(lái),直到桶被裝滿。
3)剩下的權(quán)重可以在需要以高于權(quán)重流速率來(lái)發(fā)送數(shù)據(jù)流程的時(shí)候消耗掉,這種情況下就會(huì)產(chǎn)生少量而且可控的隨機(jī)傳輸流。
4)數(shù)據(jù)流程以大于權(quán)重流的速率到達(dá)令牌桶過(guò)濾器。這時(shí)桶里的權(quán)重很快就會(huì)被耗盡,而且緩沖隊(duì)列將會(huì)被占滿。如果數(shù)據(jù)包持續(xù)超出限制地到來(lái),則超出的那部分?jǐn)?shù)據(jù)包將會(huì)被丟棄。這時(shí)雖然流進(jìn)令牌桶過(guò)濾器隊(duì)列的流量速率大于權(quán)重產(chǎn)生速率,但流出的流量將可以比較穩(wěn)定地維持在權(quán)重產(chǎn)生速率上。
實(shí)際應(yīng)用中,除了權(quán)重產(chǎn)生速率和桶深度外,還可以對(duì)緩沖等待隊(duì)列的長(zhǎng)度進(jìn)行調(diào)節(jié)來(lái)控制令牌桶過(guò)濾器的工作性能。一個(gè)令牌桶過(guò)濾器可以由2個(gè)基本參數(shù)描述:權(quán)重流入令牌桶過(guò)濾器的速度a(權(quán)重產(chǎn)生速率),令牌桶過(guò)濾器的深度(最大容量)b。
通過(guò)將數(shù)據(jù)流程關(guān)聯(lián)到權(quán)重流上,即每個(gè)到來(lái)的權(quán)重從數(shù)據(jù)隊(duì)列中收集一個(gè)數(shù)據(jù)包,然后從桶中被刪除,則某段時(shí)間t內(nèi)流過(guò)令牌桶過(guò)濾器的數(shù)據(jù)包的數(shù)目c最多只能為:c=at+b,這樣便可以調(diào)控?cái)?shù)據(jù)流達(dá)到防御的目的。
3系統(tǒng)評(píng)估
本實(shí)驗(yàn)?zāi)M在網(wǎng)絡(luò)中發(fā)動(dòng)針對(duì)郵件系統(tǒng)服務(wù)(25) 端口(非SYN分組)的DDoS攻擊,類(lèi)似于前兩個(gè)實(shí)驗(yàn),通過(guò)比較這些流量在通過(guò)本系統(tǒng)前后的變化便可以測(cè)試系統(tǒng)對(duì)其所做出的檢測(cè)與控制的表現(xiàn)情況。
混合端口泛洪攻擊的網(wǎng)絡(luò)流量進(jìn)入本系統(tǒng)時(shí)的流量如圖4所示,而從系統(tǒng)出來(lái)的流量如圖5所示。從圖5中可見(jiàn)攻擊流于以正常流后使流量大幅飆升。這時(shí)本系統(tǒng)能夠檢測(cè)到位組92(port25)出現(xiàn)異常并對(duì)其進(jìn)行了適當(dāng)?shù)牧髁靠刂啤9蚀?,與輸入端口的流量進(jìn)行對(duì)比后可知,經(jīng)過(guò)本系統(tǒng)的檢測(cè)與控制后,輸出端口的攻擊流量已經(jīng)得到極大的抑制。在本實(shí)驗(yàn)中雖然僅使用端口25作攻擊防御測(cè)試,但由于系統(tǒng)在做多元統(tǒng)計(jì)及檢測(cè)分析時(shí)對(duì)其他端口的處理與對(duì)端口25的處理類(lèi)似,因此可以表明即使在其他端口發(fā)生類(lèi)似的泛洪流量(例如針對(duì)某一未能在檢測(cè)前預(yù)知的應(yīng)用程序通信端口所進(jìn)行的網(wǎng)絡(luò)蠕蟲(chóng)攻擊或攻擊者為了逃避檢測(cè)而隨機(jī)選擇攻擊端口的攻擊),本系統(tǒng)也能夠?qū)ζ溥M(jìn)行同樣的抑制。由此可以驗(yàn)證本系統(tǒng)對(duì)一些未知或發(fā)生變種的分布式阻斷服務(wù)攻擊仍然具有良好的抵御能力。
4 總結(jié)
現(xiàn)代互聯(lián)網(wǎng)安全仍然面臨眾多威脅。DDoS攻擊所具有的破壞力強(qiáng),易于隱藏,特征較難提取以及難以預(yù)先防范等特點(diǎn),使其越來(lái)越成為互聯(lián)網(wǎng)的嚴(yán)峻威脅之一。而已有的DDoS攻擊檢測(cè)或控制系統(tǒng)均仍然存在各種不足,難以有效地抗御DDoS攻擊。
在充分研究正常流量以及DDoS攻擊流特性的基礎(chǔ)上,本文實(shí)現(xiàn)了多位組檢測(cè)控制系統(tǒng)模塊,采用多位組異常檢測(cè)及監(jiān)控方法監(jiān)測(cè)網(wǎng)絡(luò)流量,對(duì)異常網(wǎng)絡(luò)流量尤其是DDoS攻擊流進(jìn)行識(shí)別并利用令牌桶過(guò)濾器技術(shù)對(duì)其做出合適的流量控制。一系列的系統(tǒng)性能評(píng)估實(shí)驗(yàn)證明,本系統(tǒng)在令正常流量基本不受影響地通過(guò)的同時(shí),能夠非常敏感地對(duì)DDoS攻擊進(jìn)行識(shí)別并對(duì)攻擊流量做出非常有效的控制。