DDoS的攻擊例項

來源:酷知科普網 2.32W

SYN攻擊是DDoS攻擊的一種,它利用TCP協議缺陷,通過傳送大量的半連線請求,耗費CPU和記憶體資源。TCP協議建立連線的時候需要雙方相互確認資訊,來防止連線被偽造和精確控制整個資料傳輸過程資料完整有效。所以TCP協議採用三次握手建立一個連線,下面簡單講解一下。

操作方法

(01)SYN-Flood是目前最流行的DDoS攻擊手段,早先的DoS的手段在向分散式這一階段發展的時候也經歷了浪裡淘沙的過程。SYN-Flood的攻擊效果最好,應該是眾黑客不約而同選擇它的原因吧。

DDoS的攻擊例項

(02)Syn Flood利用了TCP/IP協議的固有漏洞。面向連線的TCP三次握手是Syn Flood存在的基礎。如圖,客戶端向服務端提出連線請求。這時TCP SYN標誌置位。客戶端告訴服務端序列號區域合法,需要檢查。客戶端在TCP報頭的序列號區中插入自己的ISN。服務端收到該TCP分段後,在第二步以自己的ISN迴應(SYN標誌置位),同時確認收到客戶端的第一個TCP分段(ACK標誌置位)。在第三步中,客戶端確認收到服務端的ISN(ACK標誌置位)。到此為止建立完整的TCP連線,開始全雙工模式的資料傳輸過程。

DDoS的攻擊例項 第2張

(03)假設一個使用者向伺服器傳送了SYN報文後突然宕機或掉線,那麼伺服器在發出SYN+ACK應答報文後是無法收到客戶端的ACK報文的(第三次握手無法完成),這種情況下伺服器端一般會重試(再次傳送SYN+ACK給客戶端)並等待一段時間後丟棄這個未完成的連線,這段時間的長度我們稱為SYN Timeout,一般來說這個時間是分鐘的數量級(大約為30秒-2分鐘);一個使用者出現異常導致伺服器的一個執行緒等待1分鐘並不是什麼很大的問題,但如果有一個惡意的攻擊者大量模擬這種情況,伺服器端將為了維護一個非常大的半連線列表而消耗非常多的資源----數以萬計的半連線,即使是簡單的儲存並遍歷也會消耗非常多的CPU時間和記憶體,何況還要不斷對這個列表中的IP進行SYN+ACK的重試。實際上如果伺服器的TCP/IP棧不夠強大,最後的結果往往是堆疊溢位崩潰---即使伺服器端的系統足夠強大,伺服器端也將忙於處理攻擊者偽造的TCP連線請求而無暇理睬客戶的正常請求(畢竟客戶端的正常請求比率非常之小),此時從正常客戶的角度看來,伺服器失去響應,這種情況我們稱做:伺服器端受到了SYN Flood攻擊。

DDoS的攻擊例項 第3張
熱門標籤