SYN Flood:這是壹種利用TCP協議缺陷,發送大量偽造的TCP連接請求,使被攻擊方資源耗盡(CPU滿負荷或內存不足)的攻擊方式。
SYN Flood攻擊的過程在TCP協議中被稱為三次握手(Three-way Handshake),而SYN Flood拒絕服務。
攻擊就是通過三次握手而實現的 。
1、攻擊者向被攻擊服務器發送壹個包含SYN標誌的TCP報文,SYN(Synchronize)即同步報文。同步報文會指明客戶端使用的端口以及TCP連接的初始序號。這時同被攻擊服務器建立了第壹次握手。
2、受害服務器在收到攻擊者的SYN報文後,將返回壹個SYN+ACK的報文,表示攻擊者的請求被接受,同時,TCP序號被加壹,ACK(Acknowledgment)即確認,這樣就同被攻擊服務器建立了第二次握手。
3、攻擊者也返回壹個確認報文ACK給受害服務器,同樣TCP序列號被加壹,到此壹個TCP連接完成,三次握手完成。
具體原理是:TCP連接的三次握手中,假設壹個用戶向服務器發送了SYN報文後突然死機或掉線,那麽服務器在發出SYN+ACK應答報文後是無法收到客戶端的ACK報文的(第三次握手無法完成),這種情況下服務器端壹般會重試(再次發送SYN+ACK給客戶端)並等待壹段時間後丟棄這個未完成的連接。
這段時間的長度我們稱為SYN Timeout,壹般來說這個時間是分鐘的數量級(大約為30秒-2分鐘);
壹個用戶出現異常導致服務器的壹個線程等待1分鐘並不是什麽很大的問題,但如果有壹個惡意的攻擊者大量模擬這種情況(偽造IP地址),那麽服務器端將為了維護壹個非常大的半連接列表而消耗非常多的資源。
即使是簡單的保存並遍歷也會消耗非常多的CPU時間和內存,何況還要不斷對這個列表中的IP進行SYN+ACK的重試。
實際上,如果服務器的TC P/IP棧不夠強大,那麽最後的結果往往是堆棧溢出崩潰——即使服務器端的系統足夠強大,服務器端也將忙於處理攻擊者偽造的TCP連接請求而無暇理睬客戶的正常請求(畢竟客戶端的正常請求比率非常之小);
此時,從正常客戶的角度看來,服務器失去響應,這種情況就稱做:服務器端受到了SYN Flood攻擊(SYN洪水攻擊)。
如果系統遭受SYN Flood,那麽第三步就不會有,而且無論在防火墻還是S都不會收到相應的第壹步的SYN包,所以我們就擊退了這次SYN洪水攻擊。
防禦方式
拒絕服務攻擊的防禦方式通常為入侵檢測,流量過濾和多重驗證,旨在堵塞網絡帶寬的流量將被過濾,而正常的流量可正常通過。
1、防火墻
防火墻可以設置規則,例如允許或拒絕特定通訊協議,端口或IP地址。當攻擊從少數不正常的IP地址發出時,可以簡單的使用拒絕規則阻止壹切從攻擊源IP發出的通信。
復雜攻擊難以用簡單規則來阻止,例如80端口(網頁服務)遭受攻擊時不可能拒絕端口所有的通信,因為其同時會阻止合法流量。
2、交換機
大多數交換機有壹定的速度限制和訪問控制能力。有些交換機提供自動速度限制、流量整形、後期連接、深度包檢測和假IP過濾功能,可以檢測並過濾拒絕服務攻擊。例如SYN洪水攻擊可以通過後期連接加以預防。基於內容的攻擊可以利用深度包檢測阻止。
以上內容參考?百度百科-拒絕服務攻擊