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