技術(shù)
拒絕服務(wù)技術(shù)的創(chuàng)新已經(jīng)基本塵埃落定,而上個(gè)世紀(jì)最后十年的發(fā)明也逐漸遙遠(yuǎn)。然而,隨著寬帶接入、和如今家庭計(jì)算機(jī)功能的日益強(qiáng)大,使得對(duì)拒絕服務(wù)攻擊的研究有些多余。尤其是當(dāng)我們發(fā)現(xiàn)一些本已在90年代末銷(xiāo)聲匿跡的古老的攻擊方式,(例如land ,其使用類(lèi)似的源和目標(biāo) IP 地址和端口發(fā)送 UDP 信息包)這些攻擊技術(shù) 現(xiàn)在又卷土重來(lái)時(shí),這個(gè)結(jié)論就更加顯而易見(jiàn)。在這一方面唯一的進(jìn)步就是可以發(fā)起并行任務(wù),從而可以通過(guò)簡(jiǎn)單的 486所無(wú)法實(shí)現(xiàn)的方式來(lái)顯著提高攻擊強(qiáng)度。
另一個(gè)要考慮的重點(diǎn)是事實(shí)上IP堆棧似乎并未正確地安裝補(bǔ)丁程序。計(jì)算機(jī)不再會(huì)因?yàn)閱我坏男畔罎?但是,CPU操作會(huì)為了處理這種信息包而保持高速運(yùn)行。因?yàn)檠a(bǔ)丁失效期間生成的信息包是有限的,所以要實(shí)現(xiàn)有效的攻擊并不容易??赡苁羌夹g(shù)提高得太快。不管是什么原因,這些陳舊過(guò)時(shí)的攻擊方式現(xiàn)在又卷土重來(lái),而且還非常有效。
使用拒絕服務(wù)
拒絕服務(wù)攻擊開(kāi)始可能只是為了"取樂(lè)",對(duì)系統(tǒng)操作員進(jìn)行某種報(bào)復(fù)或是實(shí)現(xiàn)各種復(fù)雜的攻擊,例如對(duì)遠(yuǎn)程服務(wù)的隱形欺騙。某人因在某一信道上遭到侮辱后也經(jīng)常會(huì)將IRC作為攻擊目標(biāo)。這種情況下的網(wǎng)絡(luò)和因特網(wǎng)使用是"保密的",這些攻擊對(duì)其造成的影響微乎其微。
隨著時(shí)間的流逝,因特網(wǎng)逐漸成為一種渠道,hacktivism(網(wǎng)絡(luò)激進(jìn)主義)越來(lái)越流行。地理政治形勢(shì)、戰(zhàn)爭(zhēng)、宗教問(wèn)題、生態(tài)等任何動(dòng)機(jī)都可能成為對(duì)公司、政治組織或甚至國(guó)家的IT基礎(chǔ)架構(gòu)發(fā)動(dòng)進(jìn)攻的動(dòng)機(jī)。
最近的拒絕服務(wù)攻擊更多的是與聯(lián)機(jī)游戲有關(guān)。某些玩家對(duì)在游戲中被人殺死或丟失他們喜愛(ài)的武器不滿(mǎn)意,因此發(fā)動(dòng)拒絕服務(wù)攻擊,許多服務(wù)器已經(jīng)成為這種攻擊的犧牲品。
但是如今使用拒絕服務(wù)的目的大多數(shù)是純粹的敲詐勒索。越來(lái)越多的開(kāi)始依賴(lài)他們的IT基礎(chǔ)架構(gòu)。郵件、關(guān)鍵數(shù)據(jù)、甚至電話(huà)都通過(guò)網(wǎng)絡(luò)來(lái)處理。如果沒(méi)有這些主要的通信渠道,大多數(shù)公司都難以在競(jìng)爭(zhēng)中幸存。而且,因特網(wǎng)還是一種生產(chǎn)工具。例如,和博彩web 站點(diǎn)都完全依賴(lài)網(wǎng)絡(luò)連接。
因此,隨著公司直接或間接地依賴(lài)因特網(wǎng),原有的敲詐信逐漸轉(zhuǎn)變成數(shù)字形式。首先在短暫而非緊要的時(shí)間段內(nèi)發(fā)動(dòng)攻擊。然后受害者就不得不支付"保護(hù)費(fèi)"。
網(wǎng)絡(luò)協(xié)議攻擊
這些攻擊瞄準(zhǔn)傳輸信道,并因此以IP堆棧作為攻擊目標(biāo),IP堆棧是內(nèi)存和 CPU 之類(lèi)關(guān)鍵資源的進(jìn)入點(diǎn)。
SYN洪水
SYN洪水是典型的基于概念的拒絕服務(wù)攻擊,因?yàn)檫@種攻擊完全依賴(lài)于TCP連接的建立方式。在最初的 3 向握手期間,服務(wù)器填寫(xiě)保存內(nèi)存中會(huì)話(huà)信息的 TCB(傳輸控制塊)表。當(dāng)服務(wù)器收到來(lái)自客戶(hù)機(jī)的初始 SYN 信息包時(shí),向客戶(hù)機(jī)發(fā)送回一個(gè) SYN-ACK 信息包并在 TCB 中創(chuàng)建一個(gè)入口。只要服務(wù)器在等待來(lái)自客戶(hù)機(jī)的最終 ACK 信息包,該連接便處于 TIME_WAIT 狀態(tài)。如果最終沒(méi)有收到 ACK 信息包,則將另一個(gè) SYN-ACK 發(fā)送到客戶(hù)機(jī)。最后,如果經(jīng)多次重試后,客戶(hù)機(jī)沒(méi)有認(rèn)可任何 SYN-ACK 信息包,則關(guān)閉會(huì)話(huà)并從 TCB 中刷新會(huì)話(huà)。從傳輸?shù)谝粋€(gè) SYN-ACK 到會(huì)話(huà)關(guān)閉這段時(shí)間通常大約為 30 秒。
在這段時(shí)間內(nèi),可能會(huì)將數(shù)十萬(wàn)個(gè)SYN信息包發(fā)送到開(kāi)放的端口且絕不會(huì)認(rèn)可服務(wù)器的SYN-ACK 信息包。TCB 很快就會(huì)超過(guò)負(fù)荷,且堆棧無(wú)法再接受任何新的連接并將現(xiàn)有的連接斷開(kāi)。因?yàn)楣粽卟挥媒邮諄?lái)自服務(wù)器的 SYN-ACK 信息包,所以他們可以偽造初始 SYN 信息包的源地址。這就使得跟蹤攻擊的真實(shí)來(lái)源更加困難。此外,因?yàn)?SYN-ACK 信息包沒(méi)有發(fā)送到攻擊者,所以這樣還為攻擊者節(jié)省了帶寬。
生成這種攻擊很容易,只要在命令行輸入一條命令就足夠了。
#hping3--rand-source-S -L 0 -p
存在的變體也很少,通常為了增加CPU的使用率會(huì)將某些異常添加到SYN 信息包。這些可能是序列號(hào)或源端口0等合法的異常。
SYN-ACK洪水
SYN-ACK洪水的作用基礎(chǔ)是令CPU資源枯竭。從理論上講,這種信息包是 TCP 3 向握手的第二步,而且在 TCB 中應(yīng)該有對(duì)應(yīng)的入口。瀏覽 TCB 將會(huì)使用 CPU 資源,尤其 TCB 很大時(shí)會(huì)耗用更多的 CPU 資源。因此,負(fù)荷較重時(shí),這種對(duì)資源的使用會(huì)影響系統(tǒng)性能
這也就是SYN-ACK攻擊所仰仗的利器。向系統(tǒng)發(fā)送一個(gè)巨荷的SYN-ACK 信息包會(huì)顯著增加系統(tǒng) CPU 的使用率。因此,用于組織 TCB 的哈希算法和哈希表大小之選擇會(huì)影響攻擊的效率(請(qǐng)參閱"概念"和"邏輯缺陷")。而且,因?yàn)檫@些 SYN-ACK 信息包不屬于現(xiàn)有的連接,所以目標(biāo)機(jī)器不得不將 RST 信息包發(fā)送到源機(jī)器,從而增加了鏈路上的帶寬占用率。對(duì)于 SYN 洪水,攻擊者為了避免接收到 RST,當(dāng)然可以偽造源機(jī)器的 IP 地址,這樣還可以提高攻擊者的可用帶寬。
這也只需要一條簡(jiǎn)單的命令就可以進(jìn)行這種攻擊。
一個(gè)重要因子是由第三方服務(wù)器基于反射機(jī)制而生成SYN-ACK信息包的能力。在將SYN 信息包發(fā)送到服務(wù)器的開(kāi)放端口時(shí),該服務(wù)器將 SYN-ACK 信息包發(fā)送回源機(jī)器。此時(shí)任何服務(wù)器都可能為這種攻擊充當(dāng)中繼。發(fā)送到服務(wù)器的簡(jiǎn)單 SYN 信息包帶有偽造的源,其發(fā)送到目標(biāo)時(shí)生成 SYN-ACK 返回目標(biāo)。這種技術(shù)讓跟蹤更加困難。而且,在某些情況下,還可以繞過(guò)某些防偽機(jī)制。尤其當(dāng)目標(biāo)和攻擊者屬于同一干道而且部署的 uRPF (參閱"防偽") 距離目標(biāo)機(jī)器和攻擊者足夠遠(yuǎn)時(shí),更有可能避開(kāi)防偽機(jī)制。
通過(guò)與SYN洪水聯(lián)結(jié)還可以提高此種攻擊的強(qiáng)度。SYN洪水在TCB 中創(chuàng)建入口,而TCB因此變得越來(lái)越大。由于此時(shí)瀏覽 TCB 所需的時(shí)間更長(zhǎng),所以 SYN-ACK 洪水的功效大大增加。