李 蓬
(北京建筑工程學院 電氣與信息工程學院,北京 100044)
目前,拒絕服務(Denial of Service,DoS)攻擊是一種被黑客廣泛應用的系統(tǒng)攻擊方式,其通過耗盡CPU、網(wǎng)絡帶寬以及磁盤空間等系統(tǒng)資源,來達到減弱或阻止正常用戶對系統(tǒng)授權使用的目的[1]。2006年,根據(jù)CSI/FBI的調(diào)查,有25%的用戶遭受過不同類型的DoS攻擊。隨著攻擊技術的不斷發(fā)展,出現(xiàn)了分布式拒絕服務(Distributed Denial of Service,DDoS)攻擊[2]。在DDoS攻擊中,一個攻擊者控制著大量的主機對目標同時發(fā)起攻擊。由于DDoS攻擊會給用戶造成極大的危害,所以檢測和防御DDoS攻擊具有重要的意義。
本文首先給出 DDoS攻擊的原理和分類,然后針對DDoS攻擊的方式,提出了一種檢測和防御DDoS攻擊的模型,本文還利用入侵檢測和數(shù)據(jù)包過濾技術,設計了一個DDoS攻擊的檢測與防御系統(tǒng),該系統(tǒng)具有配置簡單、易于擴展等優(yōu)點。
DDoS攻擊原理是:攻擊者首先控制“攻擊僵尸機”,在其上面安裝拒絕服務攻擊軟件,然后控制“控制僵尸機”,在該機上安裝控制軟件。這樣“控制僵尸機”就能根據(jù)攻擊者指令激發(fā)大量的“攻擊僵尸機”同時向目標發(fā)動拒絕服務攻擊,其攻擊結構如圖1所示。這時攻擊者能夠很好地隱藏自己[3]。
圖1 DDoS攻擊體系結構
DDoS攻擊的攻擊過程為:攻擊者首先利用掃描程序和各種滲透技術,尋找安全性差的計算機;然后在那些未受保護的計算機上安裝控制軟件和攻擊軟件;這樣攻擊者利用加密后的指令,控制這些控制軟件和攻擊軟件,使大量的攻擊軟件同時向被攻擊者發(fā)起攻擊。此時,被攻擊目標由于忙于處理大量的攻擊數(shù)據(jù)包,而無法響應正常的服務請求,嚴重的可能導致整個網(wǎng)絡癱瘓。
DDoS攻擊手段有許多種,現(xiàn)對最常見的DoS攻擊進行分析。
(1)TCP SYN攻擊
TCP SYN攻擊是多臺攻擊主機向目的主機發(fā)送 SYN包,在收到被攻擊主機的SYN ACK后不發(fā)送確認,這樣被攻擊主機就在緩存中建立了大量連接隊列,造成了系統(tǒng)資源的消耗而無法向正常請求提供服務。
(2)Land攻擊
Land攻擊是攻擊者向被攻擊主機發(fā)送一個經(jīng)過特殊構造的TCP數(shù)據(jù)報。該數(shù)據(jù)報帶有SYN標志,同時具有相同的源IP地址和目的IP地址及相同的源端口號和目的端口號。IP地址和端口號都為被攻擊主機的,這樣當被攻擊主機收到這樣的 TCP數(shù)據(jù)報后,就會在本地不斷的收發(fā) SYN包和ACK包,從而導致被攻擊主機崩潰。
(3)Teardrop攻擊
Teardrop攻擊是利用數(shù)據(jù)包分解實現(xiàn)的。攻擊者向被攻擊目標發(fā)送兩個連續(xù)的IP數(shù)據(jù)報。由于這兩個數(shù)據(jù)包是相互重疊的,導致在目的系統(tǒng)發(fā)生大量的數(shù)據(jù)復制,從而耗盡被攻擊主機的CPU和內(nèi)存資源,導致拒絕服務。
(4)Smurf攻擊
Smurf攻擊采用發(fā)送源地址是被攻擊主機的IP地址,目的地址為廣播地址的ICMP數(shù)據(jù)包。目的系統(tǒng)收到ICMP數(shù)據(jù)包后,返回ICMP應答包。這樣將會向被攻擊主機返回大量的應答包,造成被攻擊主機資源耗盡。
(5)UDP 淹沒攻擊
由于 UDP協(xié)議是一個面向無連接的傳輸層協(xié)議,所以數(shù)據(jù)傳送過程中,不需要建立連接和進行認證。UDP Flood攻擊正是利用這一點,攻擊主機向被攻擊主機發(fā)送大量的UDP數(shù)據(jù)包,這樣一方面會使被攻擊主機所在的網(wǎng)絡資源被耗盡,還會使被攻擊主機忙于處理 UDP數(shù)據(jù)包,而使系統(tǒng)崩潰。
從攻擊方式來看,可以把DDoS攻擊分為畸形數(shù)據(jù)報攻擊和淹沒攻擊[4]兩種形式?;螖?shù)據(jù)報攻擊是指利用操作系統(tǒng)、TCP/IP網(wǎng)絡協(xié)議、應用程序等的缺陷,構造某種特殊的數(shù)據(jù)包,使系統(tǒng)停止對正常用戶的訪問請求或使操作系統(tǒng)、應用程序崩潰。主要的攻擊形式有:Land攻擊、TCP SYN攻擊、Ping of Death攻擊、Teardrop攻擊等。淹沒攻擊是指攻擊者利用比被攻擊網(wǎng)絡更大的帶寬,生成大量發(fā)向被攻擊網(wǎng)絡的數(shù)據(jù)包,從而耗盡被攻擊網(wǎng)絡的有效帶寬,使被攻擊網(wǎng)絡發(fā)生擁塞。主要的攻擊形式有:Smurf攻擊、UDP 淹沒攻擊、ICMP 淹沒攻擊、DNS 淹沒攻擊等。
由上面的分析可以看出,要實現(xiàn)對DDoS攻擊的檢測,既要實現(xiàn)對畸形數(shù)據(jù)報攻擊的檢測,又要實現(xiàn)對淹沒攻擊的檢測。
對于畸形數(shù)據(jù)包攻擊,由于其數(shù)據(jù)包中帶有較明顯的特征(如Smurf攻擊,其數(shù)據(jù)包的目的IP地址為廣播地址),所以可以采用入侵特征匹配的方法進行檢測。其具體做法是:對已知網(wǎng)絡攻擊特征進行提取,構建特征規(guī)則庫,將捕獲到的數(shù)據(jù)包與特征規(guī)則庫進行匹配,如匹配則說明存在DDoS攻擊。
對于淹沒攻擊,利用統(tǒng)計學的方法,對被保護網(wǎng)絡的正常流量進行統(tǒng)計分析,計算網(wǎng)絡的正常流量行為,由此得出網(wǎng)絡的正常流量模型。通過檢測被保護網(wǎng)絡的實際流量,當發(fā)現(xiàn)實際流量與正常流量發(fā)生偏離后,即認為網(wǎng)絡受到了淹沒攻擊[5]。
為了實現(xiàn)對DDoS的檢測和防御,把基于特征檢測的誤用檢測與基于統(tǒng)計學的異常檢測結合起來,構成一個完整的入侵檢測系統(tǒng)。為了提高檢測結果的效率和準確性,數(shù)據(jù)在提交之前需要預處理去掉無用和干擾數(shù)據(jù)。DDoS攻擊檢測與防御模型如圖2所示。
圖2 DDoS攻擊檢測與防御模型
首先將捕獲到的數(shù)據(jù)送到預處理器進行處理,預處理器分析數(shù)據(jù),過濾那些特大及數(shù)據(jù)報碎片等不合法的數(shù)據(jù),如特大型的ICMP、UDP數(shù)據(jù)包等。然后數(shù)據(jù)送交特征檢測器進行進一步處理。對于特征檢測,如果數(shù)據(jù)包的特征與特征域漏洞庫一致,則說明是攻擊數(shù)據(jù)包,立即發(fā)出警告信息,通知路由器截斷攻擊流[6]。然后對通過特征檢測的數(shù)據(jù)流進行流量統(tǒng)計檢測,將數(shù)據(jù)流量與正常流量模型比較,如果出現(xiàn)明顯超出網(wǎng)絡正常流量的極限流量或短時間內(nèi)出現(xiàn)大量相同的數(shù)據(jù)包,則說明存在淹沒攻擊,立刻發(fā)出警告信息,通知路由器截斷攻擊流。
根據(jù)前面提出的檢測和防御模型,文章結合入侵檢測技術、IP數(shù)據(jù)報過濾技術,設計了在一個園區(qū)網(wǎng)內(nèi)部防御DDoS攻擊的系統(tǒng)。該系統(tǒng)具有可以有效防御各類常見的DDoS攻擊,且具有易于部署、可擴展性強、系統(tǒng)開銷小等優(yōu)點。
該系統(tǒng)采用分布式結構,各功能部件在一個分布式的環(huán)境下利用安全的通信協(xié)議協(xié)同工作。圖 3描述了該系統(tǒng)的架構。
圖3 DDoS檢測與防御系統(tǒng)
該系統(tǒng)包括以下部分:網(wǎng)絡檢測引擎、網(wǎng)絡管理器和路由器。其中,分布在各處的網(wǎng)絡檢測引擎和網(wǎng)絡管理器構成一個分布式的入侵檢測系統(tǒng)。網(wǎng)絡檢測引擎的功能是截獲網(wǎng)絡上的數(shù)據(jù)流,進行實時的數(shù)據(jù)流分析,匹配安全規(guī)則。網(wǎng)絡管理器的主要功能是控制檢測引擎,生成安全規(guī)則,接受報警和日志信息,同時控制邊界路由器。路由器具有數(shù)據(jù)包過濾功能,可以根據(jù)規(guī)則或網(wǎng)絡管理器的指令過濾數(shù)據(jù)包。
網(wǎng)絡檢測引擎安放在如下位置:首先是DMZ區(qū),這是攻擊者首要攻擊的目標;然后是內(nèi)網(wǎng)入口,這里可以檢測突破路由器過濾規(guī)則的攻擊;還有內(nèi)網(wǎng),可以檢測內(nèi)網(wǎng)的異常活動,防止攻擊者在內(nèi)部進行攻擊。如果內(nèi)部網(wǎng)絡比較復雜,可以在每個子網(wǎng)部署一個檢測引擎。
該系統(tǒng)的工作過程是:當分布在各處的網(wǎng)絡檢測引擎檢測到針對主機或網(wǎng)絡的DDoS攻擊時,向網(wǎng)絡管理器發(fā)出攻擊警告信息。網(wǎng)絡管理器負責接收DDoS攻擊警告信息,并控制具有數(shù)據(jù)包過濾功能的邊界路由器。路由器收到過濾指令之后,則對攻擊流進行過濾,從而阻止DDoS攻擊。
目前,各種類型的 DDoS攻擊對系統(tǒng)造成了極大的危害。盡管路由器和防火墻能夠在網(wǎng)絡邊界執(zhí)行檢測和防御的功能,抵御DDoS攻擊。但是由于DDoS攻擊手段多樣化,攻擊工具種類繁多,且數(shù)據(jù)的通信經(jīng)過保密,所以檢測和防御DDoS攻擊十分困難。本文根據(jù)DDoS攻擊的方式,利用入侵檢測和數(shù)據(jù)過濾技術,提出了一個在園區(qū)網(wǎng)內(nèi)部檢測和防御DDoS攻擊的方法,該方法具有易于配置、擴展性強等優(yōu)點。
[1] 呂振肅,薛力偉.一種新的分布式拒絕服務攻擊檢測方法[J].通信技術,2008,41(11):129-130.
[2] 蓋凌云,黃樹來. 分布式拒絕服務攻擊及防御機制研究[J].通信技術,2007,40(06):40-41.
[3] Dietrich S, Long N, Dittrich D. Analyzing Distributed Denial of Service Attack Tools:The Shaft Case[C].In:14th Systems Administration Conference.CA.USA: USENIX Association Berkeley,2000:329-340.
[4] Lee R B.CE-L2003-003,Taxonomies of Distributed Denial of Service Networks. Attacks, Tools and Countermeasures[R]. New Jersey:Department of Electrical Engineering, Princeton University, 2003.
[5] Barford P, Kline J, Plonka D.A Signal Analysis of Network Traffic Anomalies[C]// Proceedings of ACM SIGCOMM Internet Measurement Workshop.NY,USA:ACM,2002:71-82.
[6] Park K, Lee H. On the Effectiveness of Route-based Packet Filtering for Distributed DoS Attack Prevention in Power-law Internets[C]//Proceedings of ACM SIGCOMM.NY,USA:ACM,2001:15-26.