專利名稱:一種阻止網(wǎng)絡(luò)拒絕服務(wù)攻擊的高速檢測和控制機制的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種在高速路由器上識別和實時控制拒絕服務(wù)攻擊(DoS)的機制,它可以高速的識別出可疑的高帶寬攻擊流量,通過為流維持狀態(tài)更加準(zhǔn)確的實時控制攻擊流量,主要適用于核心高速路由器上防御拒絕服務(wù)攻擊。
背景技術(shù):
最近幾年,DoS攻擊已經(jīng)成為威脅因特網(wǎng)正常運行的重要威脅,[1]中在3個星期內(nèi)就觀察到12000次DoS攻擊。拒絕服務(wù)(DoS)攻擊是一種針對信息可用性的網(wǎng)絡(luò)攻擊方式,它通過發(fā)送惡意流量來消耗處理器、緩存、帶寬等網(wǎng)絡(luò)資源,使得合法用戶無法正常的使用這些資源和提供的服務(wù)。分布式拒絕服務(wù)(DDoS)攻擊是指攻擊流量源分布十分廣泛的一種DoS攻擊,比DoS更具破壞性,也更難防御。攻擊代理產(chǎn)生的典型攻擊流量主要有TCP SYN、UDP、ICMP,并且使用偽造的源地址,使得無法根據(jù)攻擊分組的源地址反推出攻擊主機。2000年Yahoo等知名網(wǎng)站遭受了大規(guī)模的DDoS攻擊,使得網(wǎng)站服務(wù)中斷。2003以來年FBI/CSI由DDoS攻擊造成的損失已經(jīng)躍居第二[2,3]。
對付DoS攻擊的現(xiàn)有方案主要有三種。一種是通過丟棄惡意分組的方法保護網(wǎng)絡(luò),例子是在防火墻或路由器中設(shè)置過濾規(guī)則過濾掉所有的ICMP報文,但這種一刀切的方法只限于已知的攻擊特征,不適合動態(tài)變化的攻擊模式,本身造成了對合法流量的拒絕服務(wù);另一種是在源端控制DoS攻擊,由客戶端或源端ISP進行入口檢測,過濾可疑報文,如ingress filter[4],這種方法依賴于系統(tǒng)部署的廣泛性,如果能在所有的入口處都進行過濾,可以很好的防止源地址偽造;第三種是追溯(traceback)發(fā)起攻擊的源端,由客戶提供的信息或路由器感知的信息,倒推攻擊發(fā)起的源端,但這種方法在追溯源端分布較廣的DDoS攻擊時效果不佳。
從流量上看,DDoS攻擊流量表現(xiàn)為從大量分散的源經(jīng)過鏈路逐漸聚集到受害者的流量聚合。這種逐漸聚集的攻擊流量將引起網(wǎng)絡(luò)中瓶頸路由器的擁塞,但是因特網(wǎng)中現(xiàn)有的端到端擁塞控制算法[5,6]并不能控制這些流量。基于網(wǎng)絡(luò)節(jié)點的以流(Flow)為單位的調(diào)度機制[7,8]和近似上述調(diào)度的優(yōu)先丟棄策略對于防止某個參與攻擊流占用過高帶寬是有效的,但對于分布式的DoS攻擊這種由很多本身符合端到端流量控制規(guī)范的流向某個特定資源的聚集而造成的攻擊則無能為力。如果QoS(Quality of Service)機制得到實施,那么那些具有較高QoS要求或級別的業(yè)務(wù)就可以不受較低級別或盡力而為(best-effort)業(yè)務(wù)的影響,由于盡力而為業(yè)務(wù)仍然會是網(wǎng)絡(luò)上占絕大部分比例的業(yè)務(wù)[9],這種業(yè)務(wù)卻仍然會受到DoS攻擊。
雖然DoS攻擊分組可能來源于多個流,但這些流肯定有某種共同的特征,如共同的目的地址或源地址(或地址前綴)。這些有著共同特征的流可以稱為流聚集(aggregate)。通過在路由器上動態(tài)檢測和識別出這些高速度的流聚集,并對其進行實時的流量控制,就能夠限制攻擊流量,為合法流量提供更多帶寬。
在高速路由器上,為了識別出高速的流或流聚集,目前的方法是通過采樣的方法,如cisco路由器中的NetFlow系統(tǒng)。這種基于采樣的流量監(jiān)測方法最大缺點是會產(chǎn)生較大程度的漏報。高速、準(zhǔn)確地識別出高帶寬的攻擊流量是DoS控制系統(tǒng)的一個重要前提。
在對識別出的流聚集進行控制時,現(xiàn)在的路由器中實施的概率丟包策略并不對攻擊分組和合法分組加以區(qū)分,因而會傷害流聚集內(nèi)的合法流量。如何快速、準(zhǔn)確辨識出攻擊流量,從而更好的保護合法流量,是DoS控制系統(tǒng)的一個核心問題。
發(fā)明內(nèi)容
本發(fā)明提供一種在高速路由器上識別和控制DoS流量的機制,它能夠高速準(zhǔn)確的識別出占用高帶寬的攻擊流量,同時能夠通過維持流的狀態(tài)來區(qū)分流內(nèi)的合法和攻擊分組,從而有效的控制DoS攻擊流量。該系統(tǒng)主要特征是1.通過multistage filter結(jié)構(gòu)和算法識別高帶寬流聚集Estan在[11]中提出的multistage filter結(jié)構(gòu)可以線速的識別出超過指定帶寬的流,并且能夠較準(zhǔn)確的記錄流的大小。multistage filter結(jié)構(gòu)中流的定義可以根據(jù)目的地址,源地址,端口的組合來確定。在DoS攻擊中,所有的攻擊分組都聚集到受害者,因此流聚集可以用目的地址前綴和目的端口的組合來標(biāo)識。因此使用multistage filter就可以識別出高帶寬的攻擊流聚集。
2.通過維持流狀態(tài)信息區(qū)分流聚集內(nèi)的合法流量和攻擊流量在DoS攻擊中,攻擊代理發(fā)送的攻擊分組通常偽造其源地址,并且使用同一地址發(fā)送的分組數(shù)量很少[12]。即這些攻擊流數(shù)量巨大,但持續(xù)長度很短,每個流的分組數(shù)很少。而正常的用戶會話產(chǎn)生的流通常持續(xù)時間較長,產(chǎn)生的分組數(shù)較多。利用這一明顯的區(qū)別,本系統(tǒng)通過使用簡化的SCBF算法對合法流量和攻擊流量加以區(qū)分。SCBF是一種表示多重集合的概率型數(shù)據(jù)結(jié)構(gòu),其得到的流長度是概率意義上的,但其具有常數(shù)復(fù)雜度,使用的存儲空間較小,滿足實時控制和高速實現(xiàn)的要求[13]。
3.根據(jù)流狀態(tài)信息控制聚集內(nèi)分組控制方法分組到達時,通過查詢SCBF得到流的長度,并根據(jù)流的長度計算出丟包概率。流的長度越短,是攻擊流的可能性越大,因此采用較高的丟包率。隨著長度的增加采用的丟包率迅速降低,如果流長度超過一定值k,可以認(rèn)為是合法流,這時這個流內(nèi)的分組可以直接進入輸出隊列。
整個算法作為路由器輸出隊列的前置部分,如圖1。其中MFilter模塊負(fù)責(zé)流聚集識別。SCBF模塊負(fù)責(zé)維持流的狀態(tài)信息。Agent負(fù)責(zé)監(jiān)測輸出隊列的擁塞情況來檢測攻擊情況,啟動和關(guān)閉Limiter控制模塊,同時還作為與其它路由器的Agent或網(wǎng)管等外部系統(tǒng)的接口。Limiter模塊計算分組丟棄概率,進行實時控制。
圖1整體結(jié)構(gòu)示意2multistage filter示意3SCBF的偽碼具體實施方式
下面對算法的主要模塊的實施方法進行詳細(xì)介紹。
Multistage filter由若干個并行操作的stage組成,各個stage使用一個獨立的哈希函數(shù),每個stage是一個數(shù)組,數(shù)組的值用作計數(shù)器,通過對流ID進行哈希計算得到該流在每個stage中的索引位置。分組到達時,將分組大小累加到所有stage的相應(yīng)位置中。如果所有stage中的相應(yīng)計數(shù)值都超過指定閾值,我們就將這個流加入到流記錄表中。流記錄表是記錄有流ID和流的大小的哈希表。如果該分組所屬的流已經(jīng)記錄在流記錄表中,則直接更新流記錄表中的該流的大小,見圖1。最終,所有超過指定帶寬的流都記錄在流記錄表中。通過比較流記錄表中記錄的流的大小,可以找出實際流量高的若干聚集。實現(xiàn)中,要求所有哈希函數(shù)是獨立的。對于其它參數(shù),stage的個數(shù)d,每個stage的大小b,可以根據(jù)實際鏈路帶寬和活動流的數(shù)目進行調(diào)整。b=k×C/T,其中k是容錯因子,設(shè)為正值,C是鏈路帶寬,T是高帶寬流聚集的門限。設(shè)活動流的估計數(shù)為n,則流記錄表的大小估計為E≤max(bk-1,n(nkn-b)d)+n(nkn-d)d.]]>每隔一定時間間隔t,重新初始化整個結(jié)構(gòu)。
SCBF使用l組哈希函數(shù)h1l(x),h2l(x),...,hkl(x),h12(x),h22(x),...,hk2(x),h1l(x),h2l(x),...,hkl(x)。SCBF使用一個大小為m的比特數(shù)組,插入元素時隨機在l組中選擇一組哈希函數(shù)h1i(x),h2i(x),...,hki(x),根據(jù)流ID計算并設(shè)置相應(yīng)的比特位A[h1i(x)],A[h2i(x)],...,A[hki(x)]。查詢流的長度時,依次檢查所有哈希函數(shù)組,如果某組的所有比特位A[h1i(x)],A[h2i(x)],...,A[hki(x)]都是1,則該組置位了,由此得到置位的組數(shù)的個數(shù)θ,θ即為流長度的估計值。根據(jù)流長度的估計值計算分組的丟棄概率。當(dāng)SCBF表占空比達到50%時,為了保證準(zhǔn)確性,應(yīng)該對其重新初始化。為了保持流狀態(tài)的平穩(wěn)過渡和優(yōu)化處理合法流量,我們設(shè)計一個預(yù)過濾表。預(yù)過慮表是一個簡化的SCBF結(jié)構(gòu),即只使用一組哈希函數(shù),這樣就只能查詢流是否存在于預(yù)過濾表中。當(dāng)一個流的到達分組數(shù)超過閾值(如匹配組數(shù)達到5),就將其插入預(yù)過濾表中。分組到達控制模塊后,先查詢預(yù)過濾表,過濾表中的流不計算丟包概率,直接到達輸出隊列。如果不在預(yù)過濾中,再經(jīng)過原來的控制模塊,計算丟包概率。當(dāng)預(yù)過濾表滿時,進行重新初始化。適當(dāng)調(diào)整SCBF和預(yù)過濾表的大小使得它們的初始化是交錯的。
本領(lǐng)域人員在本發(fā)明方案基礎(chǔ)上,以選取不同參數(shù)而做出的其它方案,亦在本發(fā)明保護的范圍之內(nèi)。
參考文獻[1]D.Moore,G.Voelker,and S.Savage.Inferring Internet Denial-ofService Activity,in Proceedings of the 10thUSENIX Security Symposium,August 2001,pp.9--22. CSI/FBI.Computer crime and security survey,2003[3]CSI/FBI.Computer crime and security survey,2004[4]P.Ferguson and D.Senie.Network ingress filtering,January 1998,Internet RFC 2267[5]V.Jacobson.Congestion Avoidance and Control,ACM SIGCOMM’88,August 1988. M.Allman,V.Paxson,And W.Stevens.TCP Congestion Control,RFC2581,April 1999. A.Demers,S.Keshav,and S.Shenker. Analysis and Simulation of a Fair Queueing Algorithm,In ACMSIGCOMM,1989. M.Shreedhar and G.Varghese.Efficient Fair Queuing using Deficit Round Robin,In ACM SIGCOMM,1995. K.Nichols,V.Jacobson and L.Zhang.A Two-bit Differentiated Services Architecture for the Internet,InternetDraftdraft-nichols-diff-svc-arch-00.txt,November 1997. A.Feldmann,A.Greenberg,C.Lund,N.Reingold,J.Rexford,and F.True.Deriving traffic demands foroperational IP networksMethodology and experience.In IEEE/ACM Transactions on Neworking,2001[11]Estan,C.,Varghese,G.New directions in traffic measurement and accounting,In Proceedings of the ACMSIGCOMM 2002[12]A.Kumar,J.Xu,L.Li,J.Wang,and O.Spatschek.Space-code Bloom filter for efficient per-flow trafficmeasurement,In Proc.IEEE Infocom,Mar.2004.
權(quán)利要求
1.本發(fā)明公開了一種在高速路由器上檢測和實時控制DoS攻擊流量的機制,主要包括高帶寬流聚集的識別算法、高速區(qū)分攻擊分組和合法分組并區(qū)別控制的算法。其特征在于(1)從擁塞控制的角度處理DoS攻擊,通過檢測高帶寬的流聚集,識別攻擊流量。基本思想是DoS攻擊造成的大量流量將在網(wǎng)絡(luò)中的路由器上造成嚴(yán)重?fù)砣?,這些攻擊分組的目的端信息(包括目的地址、端口及二者的組合)具有相同的特征,以這些特征為標(biāo)準(zhǔn)檢測流聚集可以很好的檢測到攻擊流量。方法是使用目的端信息作為Multistage Filter算法的輸入,保證識別的準(zhǔn)確性和高速實現(xiàn)的可行性。(2)根據(jù)DoS攻擊代理發(fā)送的攻擊分組通常偽造其源地址并且使用同一地址發(fā)送的分組數(shù)量很少的特征,對合法流量和攻擊流量加以區(qū)分。基本思想是通過維持端到端的流狀態(tài)信息,流持續(xù)時間長、分組數(shù)多的是合法流,持續(xù)時間短、只有個別分組的是攻擊流。由于控制模塊位于轉(zhuǎn)發(fā)路徑上,在滿足速度、成本和實時控制需求的約束的條件下,使用一種表示多重集合的概率型數(shù)據(jù)結(jié)構(gòu)SCBF,并簡化了其查詢步驟。(3)在控制模塊內(nèi)根據(jù)每個分組所屬流的狀態(tài)信息計算分組的丟棄概率。使用表示單集合SCBF作為預(yù)過濾表,維持流狀態(tài)的平穩(wěn)過度和加速處理滿足條件的流。
2.如權(quán)利要求1所述的路由器上檢測和實時控制DoS攻擊流量的機制,其特征在于在路由器上通過檢測擁塞的方法檢測DoS攻擊,以目的端信息,包括目的地址前綴、目的端口或兩者的組合作為檢測攻擊流聚集的標(biāo)準(zhǔn)。
3.如權(quán)利要求1所述的路由器上檢測和實時控制DoS攻擊流量的機制,其特征在于使用Multistage Filter檢測高帶寬的流聚集,能夠滿足線速實現(xiàn)。
4.如權(quán)利要求1所述的路由器上檢測和實時控制DoS攻擊流量的機制,其特征在于根據(jù)攻擊代理偽造源地址和同一地址發(fā)送分組少的特點,對合法流量和攻擊流量加以區(qū)分。
5.如權(quán)利要求1所述的路由器上檢測和實時控制DoS攻擊流量的機制,其特征在于使用簡化的SCBF維持流的狀態(tài)信息和作為預(yù)過濾表,能夠滿足線速實現(xiàn)。
6.如權(quán)利要求1所述的路由器上檢測和實時控制DoS攻擊流量的機制,其特征在于根據(jù)流的狀態(tài)信息,包括流的長度、分組個數(shù),對每個分組計算不同的丟棄概率,并使用預(yù)過濾表維持流狀態(tài)的平穩(wěn)過度和加速處理滿足條件的流。
全文摘要
本發(fā)明公開了一種在高速路由器上檢測和實時控制網(wǎng)絡(luò)拒絕服務(wù)攻擊流量的機制,主要包括高帶寬流聚集的識別算法、高速區(qū)分攻擊分組和合法分組并區(qū)別控制的算法。其方法是,監(jiān)視鏈路輸出隊列的擁塞狀態(tài)以發(fā)現(xiàn)攻擊,使用Multistage Filter算法和結(jié)構(gòu)保證線速地識別高帶寬的攻擊流量,在攻擊流量中使用SCBF結(jié)構(gòu)維持概率的流狀態(tài)信息,從而根據(jù)攻擊代理的特征對攻擊分組和合法分組加以區(qū)分,并進一步據(jù)此狀態(tài)信息對合法流量和攻擊流量區(qū)別對待,從而在實時控制攻擊流量的同時最大限度的保護合法流量。所有算法和結(jié)構(gòu)的時間和空間復(fù)雜度都滿足高速路由器的實現(xiàn)要求,適用于高速路由器/交換機。
文檔編號H04L29/06GK1838607SQ20051003853
公開日2006年9月27日 申請日期2005年3月23日 優(yōu)先權(quán)日2005年3月23日
發(fā)明者陳華, 齊望東 申請人:中國人民解放軍理工大學(xué)