DDoS是作為黑客、政治黑客行為和國(guó)際計(jì)算機(jī)恐怖分子可選擇的一種武器而出現(xiàn)。由于很容易對(duì)有限的防御發(fā)起進(jìn)攻,DDoS攻擊目標(biāo)并不僅僅是個(gè)人網(wǎng)站或其他網(wǎng)絡(luò)邊緣的服務(wù)器,他們征服的是網(wǎng)絡(luò)本身。攻擊明確地指向網(wǎng)絡(luò)的基礎(chǔ)設(shè)施,例如提供商網(wǎng)絡(luò)中的集中或核心路由 器、DNS服務(wù)器。2002年10月,一次嚴(yán)重的DDoS攻擊影響了13個(gè)根DNS(Domain Name Sevice) 服務(wù)器中的8個(gè)以及作為整個(gè)Internet通信路標(biāo)的關(guān)鍵系統(tǒng),這一事件預(yù)示了大規(guī)模攻擊的到來(lái)。
因?yàn)镈DoS攻擊是最難防御的攻擊之一,用合適的、有效的方法來(lái)響應(yīng)它們,給依靠因特網(wǎng) 的組織提出了一個(gè)巨大的挑戰(zhàn)。網(wǎng)絡(luò)設(shè)備和傳統(tǒng)周邊安全技術(shù),例如防火墻和IDSs(Intrusion Detection Systems)無(wú)法提供足夠的針對(duì)DDoS保護(hù)。面對(duì)當(dāng)前DDoS的沖擊,要保護(hù)因特網(wǎng)有效性,需要一個(gè)能檢測(cè)和阻止日益狡猾、復(fù)雜、欺騙性攻擊的下一代體系結(jié)構(gòu)。
成功的DDos攻擊影響是很廣泛的。網(wǎng)絡(luò)站點(diǎn)的表現(xiàn)尤其受影響,可以造成客戶和其它使用 者訪問(wèn)失敗。SLAs(服務(wù)水平承諾)被違反,促使服務(wù)信用損失慘重。公司名譽(yù)受損,有時(shí)甚至是永久的。
DDoS
攻擊類型DDoS攻擊分為兩種:要么大數(shù)據(jù),大流量或者大量無(wú)法完成的不完全請(qǐng)求來(lái)攻擊,快速耗盡服務(wù)器資源,要么發(fā)送大量的異常報(bào)文讓被攻擊設(shè)備作異常的處理。有效防止DDoS攻擊的關(guān)鍵困難是無(wú)法將攻擊包從合法包中區(qū)分出來(lái):IDS進(jìn)行的典型“簽名”模式匹配起不到有效的作用;許多攻擊使用源 IP 地址欺騙來(lái)逃脫源識(shí)別,很難搜尋特定的攻擊源頭。
有兩類最常見(jiàn)的 DDoS 攻擊:
●資源耗盡型:這種攻擊消耗網(wǎng)絡(luò)帶寬或使用大量數(shù)據(jù)包淹沒(méi)一個(gè)或多個(gè)路由器、服務(wù)器和防火墻;帶寬攻擊的普遍形式是大量表面看合法的 TCP、UDP 或 ICMP 數(shù)據(jù)包被傳送到特定目的地;為了使檢測(cè)更加困難,這種攻擊也常常使用源地址欺騙,并不停地變化。這種攻擊相對(duì)而言更加難以防御,因?yàn)楹戏〝?shù)據(jù)包和無(wú)效數(shù)據(jù)包看起來(lái)非常類似
●導(dǎo)致異常型:利用TCP和HTTP等協(xié)議定義的行為來(lái)不斷占用計(jì)算資源以阻止它們處理正常事務(wù)和請(qǐng)求。HTTP 半開(kāi)和 HTTP 錯(cuò)誤就是應(yīng)用攻擊的兩個(gè)典型例子,緩存溢出攻擊-試圖在一個(gè)緩存中存儲(chǔ)超出其設(shè)計(jì)容量的數(shù)據(jù)。這種多出的數(shù)據(jù)可能會(huì)溢出到其他的緩存之中,破壞或者覆蓋其中的有效數(shù)據(jù)。
1.TCP SYN泛洪攻擊-一個(gè)正常的 TCP 連接需要進(jìn)行三方握手操作。首先,客戶 端向服務(wù)器發(fā)送一個(gè) TCP SYN 數(shù)據(jù)包。而后,服務(wù)器分配一個(gè)控制塊,并響應(yīng) 一個(gè) SYN ACK 數(shù)據(jù)包。服務(wù)器隨后將等待從客戶端收到一個(gè) ACK 數(shù)據(jù)包。如果服務(wù)器沒(méi)有收到ACK 數(shù)據(jù)包,TCP連接將處于半開(kāi)狀態(tài),直到服務(wù)器從客戶端收到ACK數(shù)據(jù)包或者連接因?yàn)?time-to-live(TTL)計(jì)時(shí)器設(shè)置而超時(shí)為止。在連接超時(shí)的情況下,事先分配的控制塊將被釋放。當(dāng)一個(gè)攻擊者有意地、重復(fù)地向服務(wù)器發(fā)送 SYN 數(shù)據(jù)包,但不對(duì)服務(wù)器發(fā)回的SYN ACK 數(shù)據(jù)包答復(fù) ACK 數(shù)據(jù)包時(shí),就會(huì)發(fā)生 TCP SYN 泛洪攻擊。這時(shí),服務(wù)器將會(huì)失去對(duì)資源的控制,無(wú)法建立任何新的合法TCP連接,下面顯示了一次普通的TCP連接開(kāi)始時(shí)交換數(shù)據(jù)包的過(guò)程
為了避免syn-flood引起的內(nèi)存耗盡,操作系統(tǒng)通常給監(jiān)聽(tīng)接口關(guān)聯(lián)了一個(gè)"backlog"隊(duì)列參數(shù),它同時(shí)維護(hù)連接的TCB上限數(shù)量和SYN-RECEIVED狀態(tài)。盡管這種方案使主機(jī)的可用內(nèi)存免遭攻擊,但是backlog隊(duì)列本身就帶來(lái)了一個(gè)(小的)受攻擊源。當(dāng)backlog中沒(méi)有空間時(shí),就不可能再響應(yīng)新的連接請(qǐng)求,除非TCB能被回收或者從SYN-RECIEVE狀態(tài)中移除。試圖發(fā)送足夠多的SYN包而耗盡backlog是TCP SYN洪泛的目的。攻擊者在SYN包中加入源IP地址,這樣就不會(huì)導(dǎo)致主機(jī)將已分配的TCB從SYN-RECEVIED狀態(tài)隊(duì)列中移除(因?yàn)橹鳈C(jī)將響應(yīng)SYN-ACK)。因?yàn)門CP是可靠的,目的主機(jī)在斷開(kāi)半開(kāi)連接并在SYN-RECIEVED隊(duì)列中移除TCB之前將等待相當(dāng)長(zhǎng)的時(shí)間。在此期間,服務(wù)器將不能響應(yīng)其他應(yīng)用程序合法的新TCP連接請(qǐng)求,下面是TCP SYN
洪泛攻擊的過(guò)程:下面還有變種的TCP SYN
攻擊的過(guò)程:2.UDP flood 又稱UDP洪水攻擊或UDP淹沒(méi)攻擊,UDP是沒(méi)有連接狀態(tài)的協(xié)議,因此可以發(fā)送大量的 UDP 包到某個(gè)端口,如果是個(gè)正常的UDP應(yīng)用端口,則可能干擾正常應(yīng)用,如果是沒(méi)有正常應(yīng)用,服務(wù)器要回送ICMP,這樣則消耗了服務(wù)器的處理資源,而且很容易阻塞上行鏈路的帶寬。常見(jiàn)的情況是利用大量UDP小包沖擊DNS服務(wù)器或Radius認(rèn)證服務(wù)器、流媒體視頻服務(wù)器。100k pps的UDPFlood經(jīng)常將線路上的骨干設(shè)備例如防火墻打癱,造成整個(gè)網(wǎng)段的癱瘓。在UDPFLOOD攻擊中,攻擊者可發(fā)送大量偽造源IP地址的小UDP包。但是,由于UDP協(xié)議是無(wú)連接性的,所以只要開(kāi)了一個(gè)UDP的端口提供相關(guān)服務(wù)的話,那么就可針對(duì)相關(guān)的服務(wù)進(jìn)行攻擊,正常應(yīng)用情況下,UDP包雙向流量會(huì)基本相等,而且大小和內(nèi)容都是隨機(jī)的,變化很大。出現(xiàn)UDPFlood的情況下,針對(duì)同一目標(biāo)IP的UDP包在一側(cè)大量出現(xiàn),并且內(nèi)容和大小都比較固定。
3.ICMP flood 通過(guò)高速發(fā)送大量的ICMP Echo Reply數(shù)據(jù)包,目標(biāo)網(wǎng)絡(luò)的帶寬瞬間就會(huì)被耗盡,阻止合法的數(shù)據(jù)通過(guò)網(wǎng)絡(luò)。ICMP Echo Reply數(shù)據(jù)包具有較高的優(yōu)先級(jí),在一般情況下,網(wǎng)絡(luò)總是允許內(nèi)部主機(jī)使用PING命令。這將導(dǎo)致系統(tǒng)不斷地保留它的資源,直到無(wú)法再處理有效的網(wǎng)絡(luò)流量。攻擊者可以通過(guò)發(fā)送一個(gè)偽造的ICMP Destination Unreachable或Redirect消息來(lái)終止合法的網(wǎng)絡(luò)連接。更具惡意的攻擊,如puke和smack,會(huì)給某一個(gè)范圍內(nèi)的端口發(fā)送大量的數(shù)據(jù)包,毀掉大量的網(wǎng)絡(luò)連接,同時(shí)還會(huì)消耗受害主機(jī)CPU的時(shí)鐘周期。還有一些攻擊使用ICMP Source Quench消息,導(dǎo)致網(wǎng)絡(luò)流量變慢,甚至停止。Redirect和Router Announcement消息被利用來(lái)強(qiáng)制受害主機(jī)使用一個(gè)并不存在的路由器,或者把數(shù)據(jù)包路由到攻擊者的機(jī)器,進(jìn)行攻擊
4.Smurf 攻擊---攻擊時(shí),攻擊者會(huì)向接收站點(diǎn)中的一個(gè)廣播地址發(fā)送一個(gè)IP ICMP ping(即“請(qǐng)回復(fù)我的消息”)。Ping 數(shù)據(jù)包隨后將被廣播到接收站點(diǎn)的本地網(wǎng)絡(luò)中的所有主機(jī)。該數(shù)據(jù)包包含一個(gè)“偽裝的”源地址,即該DoS攻擊的對(duì)象的地址。每個(gè)收到此 ping 數(shù)據(jù)包的主機(jī)都會(huì)向偽裝的源地址發(fā)送響應(yīng),從而導(dǎo)致這個(gè)無(wú)辜的、被偽裝的主機(jī)收到大量的ping 回復(fù)。如果收到的數(shù)據(jù)量過(guò)大,這個(gè)被偽裝的主機(jī)就將無(wú)法接收或者區(qū)分真實(shí)流量。
5.Fraggle
攻擊---
它與
Smurf攻擊類似,只是利用UDP協(xié)議。攻擊者掌握著大量的廣播地址,并向這些地址發(fā)送假冒的
UDP包,通常這些包是直接到目標(biāo)主機(jī)的7號(hào)端口——也就是Echo端口,而另一些情況下它卻到了Chargen端口,攻擊者可以制造一個(gè)在這兩個(gè)端口之間的循環(huán)來(lái)產(chǎn)生網(wǎng)絡(luò)阻塞6.Land:采用目標(biāo)和源地址相同的UDP包攻擊目標(biāo)。在Land攻擊中,一個(gè)特別打造的SYN包中的原地址和目標(biāo)地址都被設(shè)置成某一個(gè)服務(wù)器地址,這時(shí)將導(dǎo)致接受服務(wù)器向它自己的地址發(fā)送SYN一ACK消息,結(jié)果這個(gè)地址又發(fā)回ACK消息并創(chuàng)建一個(gè)空連接,每一個(gè)這樣的連接都將保留直到超時(shí)掉。對(duì)Land攻擊反應(yīng)不同,許多UNIX實(shí)現(xiàn)將崩潰,而 Windows NT 會(huì)變的極其緩慢(大約持續(xù)五分鐘)。Land 攻擊發(fā)生的條件是攻擊者發(fā)送具有相同IP源地址、目標(biāo)地址和TCP端口號(hào)的偽造TCP SYN數(shù)據(jù)包信息流。必須設(shè)置好SYN標(biāo)記。其結(jié)果是該計(jì)算機(jī)系統(tǒng)將試圖向自己發(fā)送響應(yīng)信息,而受害系統(tǒng)將會(huì)受到干擾并會(huì)癱瘓或重啟。最近的研究發(fā)現(xiàn)Windows XP SP2和Windows 2003 的系統(tǒng)對(duì)這種攻擊的防范還是非常薄弱的。事實(shí)上,Sun的操作系BSD和Mac對(duì)這種攻擊的防范都是非常薄弱的,所有這些系統(tǒng)都共享基于 TCP/IP 協(xié)議棧的BSD。
7.Trinoo 的攻擊方法是向被攻擊目標(biāo)主機(jī)的隨機(jī)端口發(fā)出全零的4字節(jié) UDP 包,在處理這些超出 其處理能力的垃圾數(shù)據(jù)包的過(guò)程中,被攻擊主機(jī)的網(wǎng)絡(luò)性能不斷下降,直到不能提供正常服務(wù),乃至崩潰。它對(duì)IP 地址不做假,采用的通訊端口是:攻擊者主機(jī)到主控端主機(jī):27665/TCP 主控端主機(jī)到代理端主機(jī):27444/UDP 代理端主機(jī)到主服務(wù)器主機(jī):31335/UDP
8.Stacheldraht也是基于TFN和trinoo一樣的客戶機(jī)/服務(wù)器模式,其中Master程序與潛在的成千個(gè)代理程序進(jìn)行通訊。在發(fā)動(dòng)攻擊時(shí),侵入者與master程序進(jìn)行連接。Stacheldraht增加了新的功能:攻擊者與master程序之間的通訊是加密的,對(duì)命令來(lái)源做假,而且可以防范一些路由器用RFC2267過(guò)濾,若檢查出有過(guò)濾現(xiàn)象,它將只做假IP地址最后8位,從而讓用戶無(wú)法了解到底是哪幾個(gè)網(wǎng)段的哪臺(tái)機(jī)器被攻擊;同時(shí)使用rcp (remote copy,遠(yuǎn)程復(fù)制)技術(shù)對(duì)代理程序進(jìn)行自動(dòng)更新。Stacheldraht 同TFN一樣,可以并行發(fā)動(dòng)數(shù)不勝數(shù)的DoS攻擊,類型多種多樣,而且還可建立帶有偽裝源IP地址的信息包。Stacheldraht所發(fā)動(dòng)的攻擊包括UDP 沖擊、TCP SYN 沖擊、ICMP 回音應(yīng)答沖擊
9.TFN2K :TFN2K 是由德國(guó)著名黑客Mixter編寫的同類攻擊工具 TFN 的后續(xù)版本,在 TFN 所具有的 特性上,TFN2K 又新增一些特性,TFN2K 通過(guò)主控端利用大量代理端主機(jī)的資源進(jìn)行對(duì)一個(gè) 或多個(gè)目標(biāo)進(jìn)行協(xié)同攻擊。當(dāng)前互聯(lián)網(wǎng)中的 UNIX、Solaris 和 Windows NT 等平臺(tái)的主機(jī)能被 用于此類攻擊,而且這個(gè)工具非常容易被移植到其它系統(tǒng)平臺(tái)上。
TFN2K 由兩部分組成:在主控端主機(jī)上的客戶端和在代理端主機(jī)上的守護(hù)進(jìn)程。主控端向 其代理端發(fā)送攻擊指定的目標(biāo)主機(jī)列表。代理端據(jù)此對(duì)目標(biāo)進(jìn)行拒絕服務(wù)攻擊。由一個(gè)主控端控制的多個(gè)代理端主機(jī),能夠在攻擊過(guò)程中相互協(xié)同,保證攻擊的連續(xù)性。主控央和代理端的網(wǎng)絡(luò)通訊是經(jīng)過(guò)加密的,還可能混雜了許多虛假數(shù)據(jù)包。整個(gè) TFN2K 網(wǎng)絡(luò)可能使用不同的 TCP、 UDP 或 ICMP 包進(jìn)行通訊。而且主控端還能偽造其 IP 地址。所有這些特性都使發(fā)展防御 TFN2K 攻擊的策略和技術(shù)都非常困難或效率低下。
導(dǎo)致異常型攻擊Ping of Death:是一種拒絕服務(wù)攻擊,方法是由攻擊者故意發(fā)送大于65535字節(jié)的ip數(shù)據(jù)包給對(duì)方。 TCP/IP的特征之一是碎裂;它允許單一IP包被分為幾個(gè)更小的數(shù)據(jù)包。在1996年,攻擊者開(kāi)始利用那一個(gè)功能,當(dāng)他們發(fā)現(xiàn)一個(gè)進(jìn)入使用碎片包可以將整個(gè)IP包的大小增加到ip協(xié)議允許的65536比特以上的時(shí)候。當(dāng)許多操作系統(tǒng)收到一個(gè)特大號(hào)的ip包時(shí)候,它們不知道該做什么,因此,服務(wù)器會(huì)被凍結(jié)、當(dāng)機(jī)或重新啟動(dòng)。ICMP的回送請(qǐng)求和應(yīng)答報(bào)文通常是用來(lái)檢查網(wǎng)路連通性,對(duì)于大多數(shù)系統(tǒng)而言,發(fā)送ICMP echo request 報(bào)文的命令是ping ,由于ip數(shù)據(jù)包的最大長(zhǎng)度為65535字節(jié)。而ICMP報(bào)頭位于數(shù)據(jù)報(bào)頭之后,并與ip數(shù)據(jù)包封裝在一起,因此ICMP數(shù)據(jù)包最大尺寸不超過(guò)65515字節(jié)利用這一規(guī)定,可以向主機(jī)發(fā)動(dòng) ping of death 攻擊。ping of death 攻擊 是通過(guò)在最后分段中,改變其正確的偏移量和段長(zhǎng)度的組合,使系統(tǒng)在接收到全部分段并重組報(bào)文時(shí)總的長(zhǎng)度超過(guò)了65535字節(jié),導(dǎo)致內(nèi)存溢出,這時(shí)主機(jī)就會(huì)出現(xiàn)內(nèi)存分配錯(cuò)誤而導(dǎo)致TCP/IP堆棧崩潰,導(dǎo)致死機(jī).
Tear drop---攻擊利用UDP包重組時(shí)重疊偏移(假設(shè)數(shù)據(jù)包中第二片IP包的偏移量小于第一片結(jié)束的位移,而且算上第二片IP包的Data,也未超過(guò)第一片的尾部,這就是重疊現(xiàn)象。)的漏洞對(duì)系統(tǒng)主機(jī)發(fā)動(dòng)拒絕服務(wù)攻擊,最終導(dǎo)致主機(jī)菪掉;對(duì)于Windows系統(tǒng)會(huì)導(dǎo)致藍(lán)屏死機(jī),并顯示STOP 0x0000000A錯(cuò)誤。對(duì)付這種類型得攻擊最好的方法就是要及時(shí)為操作系統(tǒng)打補(bǔ)丁了,但是Teardrop攻擊仍然會(huì)耗費(fèi)處理器的資源和主機(jī)帶寬。
WinNuke攻擊就是又稱“帶外傳輸攻擊”,它的特征是攻擊目標(biāo)端口,被攻擊的目標(biāo)端口通常是
139,而且URG位設(shè)為1,即緊急模式。WinNuke攻擊就是利用了Windows操作系統(tǒng)的一個(gè)漏洞,向這些端口發(fā)送一些攜帶TCP帶外(OOB)數(shù)據(jù)報(bào)文,但這些攻擊報(bào)文與正常攜帶OOB數(shù)據(jù)報(bào)文不同的是,其指針字段與數(shù)據(jù)的實(shí)際位置不符,即存在重合。這樣Windows操作系統(tǒng)在處理這些數(shù)據(jù)的時(shí)候,就會(huì)崩潰。jolt2:基于因特網(wǎng)協(xié)議
(IP)分組破壞的拒絕服務(wù)(DoS)攻擊,利用一個(gè)死循環(huán)不停的發(fā)送一個(gè)
ICMP/UDP的IP碎片,讓設(shè)備不斷的處理這些分片,jolt2
的影響相當(dāng)大,通過(guò)不停的發(fā)送這個(gè)偏移量很大的數(shù)據(jù)包,不僅死鎖未打補(bǔ)丁的Windows系統(tǒng),同時(shí)也大大增加了網(wǎng)絡(luò)流量ICMP重定向攻擊,ICMP重定向報(bào)文是當(dāng)主機(jī)采用非最優(yōu)路由發(fā)送數(shù)據(jù)報(bào)時(shí),設(shè)備會(huì)發(fā)回ICMP重定向報(bào)文來(lái)通知主機(jī)最優(yōu)路由的存在。一般情況下,設(shè)備僅向主機(jī)而不向其它設(shè)備發(fā)送
ICMP重定向報(bào)文,但一些惡意的攻擊可能跨越網(wǎng)段向另外一個(gè)網(wǎng)絡(luò)的主機(jī)發(fā)送虛假的重定向報(bào)文,以改變主機(jī)的路由表,破壞路由,干擾主機(jī)正常的
IP報(bào)文轉(zhuǎn)發(fā),并以此增強(qiáng)其竊聽(tīng)能力。通過(guò)下述配置,可以有效地進(jìn)行該類攻擊的防御
蠕蟲-蠕蟲是一些獨(dú)立的程序,可以自行攻擊系統(tǒng)和試圖利用目標(biāo)的漏洞。在 成功地利用漏洞之后,蠕蟲會(huì)自動(dòng)地將其程序從攻擊主機(jī)復(fù)制到新發(fā)現(xiàn)的系統(tǒng), 從而再次啟動(dòng)循環(huán)。蠕蟲會(huì)將自身的多個(gè)復(fù)本發(fā)送到其他的計(jì)算機(jī),例如通過(guò) 電子郵件或者互聯(lián)網(wǎng)多線交談(IRC)。有些蠕蟲(例如眾所周知的紅色代碼和 NIMDA 蠕蟲)具有 DDoS 攻擊的特征,可能導(dǎo)致終端和網(wǎng)絡(luò)基礎(chǔ)設(shè)施的中斷。
當(dāng)然 DDoS 攻擊的手段不止這些。但 DDoS 攻擊和病毒攻擊的方式完全不同:病毒是要求 用最新的代碼,以繞過(guò)防病毒軟件,一旦被反病毒軟件識(shí)破,病毒就失去了生命力, 而 DDoS 可以說(shuō)是不需要‘新’技術(shù),一個(gè)10年前發(fā)明的TCP SYN照樣造成今天的網(wǎng)站癱瘓。這也是DDoS非常難于防范的原因:DDoS 的請(qǐng)求表面上和正常的請(qǐng)求沒(méi)有什么不同,大量的請(qǐng)求因?yàn)闊o(wú)法區(qū)分而無(wú)法拒絕。
至于DDOS的防御技術(shù),以后再寫個(gè)總結(jié)文檔吧,這個(gè)是本人的總結(jié)文檔,當(dāng)然也參照了大量的網(wǎng)上DDOS的資料,IT需要分享,開(kāi)源,共贏