1 基于IcMP協(xié)議的DDoS攻擊
IcMP協(xié)議用于錯(cuò)誤處理和傳遞控制信息,它的主要功能是用于主機(jī)之間的聯(lián)絡(luò)。它通過發(fā)送一個(gè)“回復(fù)請求”(echo request)信息包請求主機(jī)響應(yīng),以判斷與主機(jī)之間的連接是否正常。大多數(shù)系統(tǒng)將TcP/IP協(xié)議簇中的ICMP的數(shù)據(jù)報(bào)的數(shù)量規(guī)定為64k字節(jié)左右,例如Windows2000系統(tǒng)規(guī)定的最大值是65527字節(jié),當(dāng)數(shù)據(jù)報(bào)的數(shù)釜超過最大值時(shí),系統(tǒng)將會產(chǎn)生內(nèi)存分配錯(cuò)誤。
攻擊者可以利用系統(tǒng)的這個(gè)漏洞,偽造目標(biāo)主機(jī)的IP地址向局域網(wǎng)內(nèi)主機(jī)發(fā)布廣播分組,當(dāng)局域網(wǎng)內(nèi)的主機(jī)接受到廣播分組后,都會向目標(biāo)主機(jī)發(fā)送echo響應(yīng)信息包,而目標(biāo)主機(jī)在處理ICMP時(shí)將會被大量的信息包淹沒。
這種攻擊可以摧毀目標(biāo)服務(wù)器,阻塞目標(biāo)網(wǎng)絡(luò),致使合法用戶無法登錄網(wǎng)絡(luò)。ping洪水攻擊軟件和smurf攻擊軟件就是典型基于IcMP協(xié)議的攻擊軟件。
2 基于UDP協(xié)議的DDoS攻擊
uDP協(xié)議是用來定義在網(wǎng)絡(luò)環(huán)境中提供數(shù)據(jù)包交換的計(jì)算機(jī)通信協(xié)議,處在TCP/IP協(xié)議中IP(網(wǎng)絡(luò))層的上層。它為用戶程序之間的信息傳輸提供了簡便的協(xié)議機(jī)制,但不提供提交和復(fù)制的保護(hù)功能。
UDP模塊必須能夠決定源主機(jī)和目標(biāo)主機(jī)的網(wǎng)絡(luò)地址,而且必須能夠從報(bào)頭中獲得所使用的協(xié)議類型。可能的方式就是返回整個(gè)數(shù)據(jù)報(bào),包括接收操作返回的數(shù)據(jù)報(bào)頭,還應(yīng)該允許UDP向IP傳送帶完整報(bào)頭的數(shù)據(jù)報(bào)用于IP傳送,由IP來確定數(shù)據(jù)的一致性和計(jì)算校驗(yàn)碼。
由于uDP不會臉證其發(fā)送的數(shù)據(jù)報(bào)是否被正確接收就會發(fā)送新的數(shù)據(jù)報(bào),因此,就可以偽造大量的數(shù)據(jù)報(bào)用于攻擊目標(biāo)主機(jī)。UDPnooder是基于該協(xié)議的攻擊軟件。
3 基于TcP協(xié)議的DDoS攻擊
TCP與UDP不同,它是基于連接的協(xié)議。TCP協(xié)議要求在傳送數(shù)據(jù)前必須在服務(wù)器與客戶機(jī)之間建立連接。而建立代P連接必須經(jīng)過“三次握手”,即:
第一次:客戶機(jī)發(fā)送帶燈N的連接請求。sYN(Synchronize)是同步的意思,同步連接將指出客戶建立連接使用的端口號和TcP連接的初始序號。
第二次:服務(wù)器在接收到sYN報(bào)文后,將響應(yīng)一個(gè)SYN+ACK(Acknowledgement)的報(bào)文,表示接受請求,同時(shí)TCP序號加1。
第三次:客戶端接收到服務(wù)器的確認(rèn)信息后,同樣返回一個(gè)ACK報(bào)文給服務(wù)器,同樣TcP序號加1,至此,TCP連接建立。
而在建立TCP連接的過程中,如果在第二次握手以后,由于客戶端或網(wǎng)路出現(xiàn)故障以及其它原因,致使服務(wù)器沒有接收到來自客戶端的第三次握手信息,服務(wù)器一般會重新發(fā)送SYN+ACK報(bào)文給客戶端,并在等待一段時(shí)間后丟棄這個(gè)沒有建立連接的請求。
值得注意的是:服務(wù)器的用于等待來自客戶機(jī)的ACK信息包的TCP/IP堆棧是有限的,如果緩沖區(qū)被等待隊(duì)列充滿,它將拒絕下一個(gè)連接請求。
那么,攻擊者就可以利用這個(gè)漏洞,在瞬間偽造大量的SYN數(shù)據(jù)報(bào),而又不回復(fù)服務(wù)器的sYN+AcK信息包,就可實(shí)現(xiàn)攻擊企圖。
這類攻擊軟件有SYNn flood攻擊軟件等。此外,還有利用應(yīng)用程序的漏洞實(shí)施的拒絕服務(wù)攻擊,如Telnet漏洞等。
DDoS 攻擊主要種類
受害主機(jī)在 DDoS 攻擊下,明顯特征就是大量的不明數(shù)據(jù)報(bào)文流向受害主機(jī),受害主機(jī)的網(wǎng)絡(luò)接入帶寬被耗盡,或者受害主機(jī)的系統(tǒng)資源(存儲資源和計(jì)算資源)被大量占用,甚至發(fā)生死機(jī)。前者可稱為帶寬消耗攻擊,后者稱為系統(tǒng)資源消耗攻擊。兩者可能單獨(dú)發(fā)生,也可能同時(shí)發(fā)生。
1 帶寬消耗攻擊
DDoS帶寬消耗攻擊主要為直接洪流攻擊。 直接洪流攻擊采取了簡單自然的攻擊方式,它利用了攻擊方的資源優(yōu)勢,當(dāng)大量代理發(fā)出的攻擊流匯聚于目標(biāo)時(shí),足以耗盡其 Internet 接入帶寬。通常用于發(fā)送的攻擊報(bào)文類型有:TCP報(bào)文(可含TCP SYN報(bào)文),UDP報(bào)文,ICMP報(bào)文,三者可以單獨(dú)使用,也可同時(shí)使用。
1.1 TCP洪流攻擊
在早期的DoS攻擊中,攻擊者只發(fā)送TCP SYN報(bào)文,以消耗目標(biāo)的系統(tǒng)資源。而在 DDoS 攻擊中,由于攻擊者擁有更多的攻擊資源,所以攻擊者在大量發(fā)送TCP SYN報(bào)文的同時(shí),還發(fā)送ACK, FIN, RST報(bào)文以及其他 TCP 普通數(shù)據(jù)報(bào)文,這稱為 TCP 洪流攻擊。該攻擊在消耗系統(tǒng)資源(主要由 SYN,RST 報(bào)文導(dǎo)致)的同時(shí),還能擁塞受害者的網(wǎng)絡(luò)接入帶寬。由于TCP協(xié)議為TCP/IP協(xié)議中的基礎(chǔ)協(xié)議,是許多重要應(yīng)用層服務(wù)(如WEB 服務(wù),F(xiàn)TP 服務(wù)等)的基礎(chǔ),所以TCP洪流攻擊能對服務(wù)器的服務(wù)性能造成致命的影響。據(jù)研究統(tǒng)計(jì),大多數(shù)DDoS攻擊通過TCP洪流攻擊實(shí)現(xiàn)。
1.2 UDP 洪流攻擊
用戶數(shù)據(jù)報(bào)協(xié)議(UDP)是一個(gè)無連接協(xié)議。當(dāng)數(shù)據(jù)包經(jīng)由UDP協(xié)議發(fā)送時(shí),發(fā)送雙方無需通過三次握手建立連接, 接收方必須接收處理該數(shù)據(jù)包。因此大量的發(fā)往受害主機(jī) UDP 報(bào)文能使網(wǎng)絡(luò)飽和。在一起UDP 洪流攻擊中,UDP 報(bào)文發(fā)往受害系統(tǒng)的隨機(jī)或指定端口。通常,UDP洪流攻擊設(shè)定成指向目標(biāo)的隨機(jī)端口。這使得受害系統(tǒng)必須對流入數(shù)據(jù)進(jìn)行分析以確定哪個(gè)應(yīng)用服務(wù)請求了數(shù)據(jù)。如果受害系統(tǒng)在某個(gè)被攻擊端口沒有運(yùn)行服務(wù),它將用 ICMP 報(bào)文回應(yīng)一個(gè)“目標(biāo)端口不可達(dá)”消息。通常,攻擊中的DDoS工具會偽造攻擊包的源IP地址。這有助于隱藏代理的身份,同時(shí)能確保來自受害主機(jī)的回應(yīng)消息不會返回到代理。UDP洪流攻擊同時(shí)也會擁塞受害主機(jī)周圍的網(wǎng)絡(luò)帶寬(視網(wǎng)絡(luò)構(gòu)架和線路速度而定)。因此,有時(shí)連接到受害系統(tǒng)周邊網(wǎng)絡(luò)的主機(jī)也會遭遇網(wǎng)絡(luò)連接問題。
1.3 ICMP洪流攻擊
Internet 控制報(bào)文協(xié)議傳遞差錯(cuò)報(bào)文及其它網(wǎng)絡(luò)管理消息,它被用于定位網(wǎng)絡(luò)設(shè)備,確定源到端的跳數(shù)或往返時(shí)間等。一個(gè)典型的運(yùn)用就是 Ping 程序,其使用 ICMP_ECHO REQEST 報(bào)文,用戶可以向目標(biāo)發(fā)送一個(gè)請求消息,并收到一個(gè)帶往返時(shí)間的回應(yīng)消息。ICMP 洪流攻擊就是通過代理向受害主機(jī)發(fā)送大量ICMP_ECHO_ REQEST)報(bào)文。這些報(bào)文涌往目標(biāo)并使其回應(yīng)報(bào)文,兩者合起來的流量將使受害主機(jī)網(wǎng)絡(luò)帶寬飽和。與UDP洪流攻擊一樣,ICMP洪流攻擊通常也偽造源IP地址。
2 系統(tǒng)資源消耗攻擊
DDoS系統(tǒng)資源消耗攻擊包括惡意誤用 TCP/IP 協(xié)議通信和發(fā)送畸形報(bào)文兩種攻擊方式。兩者都能起到占用系統(tǒng)資源的效果。具體有以下幾種:
TCP SYN攻擊。DoS的主要攻擊方式,在DDoS攻擊中仍然是最常見的攻擊手段之一。只不過在 DDoS 方式下,它的攻擊強(qiáng)度得到了成百上千倍的增加。
TCP PSH+ACK 攻擊。在 TCP 協(xié)議中,到達(dá)目的地的報(bào)文將進(jìn)入 TCP棧的緩沖區(qū),直到緩沖區(qū)滿了,報(bào)文才被轉(zhuǎn)送給接收系統(tǒng)。此舉是為了使系統(tǒng)清空緩沖區(qū)的次數(shù)達(dá)到最小。然而,發(fā)送者可通過發(fā)送 PSH 標(biāo)志為 1 的TCP 報(bào)文來起強(qiáng)制要求接受系統(tǒng)將緩沖區(qū)的內(nèi)容清除。TCP PUSH+ACK 攻擊與 TCP SYN 攻擊一樣目的在于耗盡受害系統(tǒng)的資源。當(dāng)代理向受害主機(jī)發(fā)送PSH和ACK標(biāo)志設(shè)為1的TCP報(bào)文時(shí), 這些報(bào)文將使接收系統(tǒng)清除所有 TCP 緩沖區(qū)的數(shù)據(jù)(不管緩沖區(qū)是滿的還是非滿),并回應(yīng)一個(gè)確認(rèn)消息。如果這個(gè)過程被大量代理重復(fù),系統(tǒng)將無法處理大量的流入報(bào)文。 畸形報(bào)文攻擊。顧名思義,畸形報(bào)文攻擊指的是攻擊者指使代理向受害主機(jī)發(fā)送錯(cuò)誤成型的IP報(bào)文以使其崩潰。有兩種畸形報(bào)文攻擊方式。一種是IP 地址攻擊,攻擊報(bào)文擁有相同的源 IP 和目的 IP 地址。它能迷惑受害主機(jī)的操作系統(tǒng),并使其消耗大量的處理能力。另一個(gè)是IP報(bào)文可選段攻擊。攻擊報(bào)文隨機(jī)選取IP報(bào)文的可選段并將其所有的服務(wù)比特值設(shè)為1。對此,受害系統(tǒng)不得不花費(fèi)額外的處理時(shí)間來分析數(shù)據(jù)包。當(dāng)發(fā)動(dòng)攻擊的代理足夠多時(shí),受害系統(tǒng)將失去處理能力。
3 應(yīng)用層攻擊
典型如國內(nèi)流行的傳奇假人攻擊,這種攻擊利用傀儡機(jī),模擬了傳奇服務(wù)器的數(shù)據(jù)流,能夠完成普通傳奇戲服務(wù)器的注冊、登陸等功能,使得服務(wù)器運(yùn)行的傳奇游戲內(nèi)出現(xiàn)大量的假人,影響了正常玩家的登陸和游戲,嚴(yán)重時(shí)完全無法登陸。