SYN foold攻擊原理及解決方法

SYN foold攻擊

原理

SYN foold攻擊主要針對tcp通信三次握手期間做的手腳,所以要弄懂這個攻擊的原理我們首先必須知道tcp三次握手的詳細過程
tcp連接三次握手詳情
由上圖可知tcp三次握手顧名思義要經過三個步驟,這三個步驟分別是

  1. 客戶端向服務端發送SYN J(同步信號假設序號爲J),相當於通知服務端我要開始建立連接了;
  2. 服務端收到客戶端的SYN J信號後將發送確認信號ACK J+1和一個新的同步信號SYN K作爲迴應
  3. 客戶端收到服務端的迴應之後發送最後的確認信號ACK J+1

那我我們重點看第二個步驟:服務端在收到SYN信號後會將ACK信號和新的SYN信號返回給客戶端,並將該連接計入半連接隊列數目中,當半連接數目大於系統設定的最大值(/proc/sys/net/ipv4/tcp_max_syn_backlog)時系統將不能再接收其他的連接,所以攻擊者利用這個原理,在服務器向客戶端發送SYN和ACK信號後不做任何迴應,這樣鏈接將一直不會被釋放,直到累計到鏈接最大值而不能再創建新的鏈接,從而達到了讓服務器無法響應正常請求的目的。

解決方法

使syncookies生效,將/proc/sys/net/ipv4/tcp_syncookies值置改爲1即可,這樣即使是半連接隊列syn queue已經滿了,也可以接收正常的非惡意攻擊的客戶端的請求,
但是這種方法只在無計可施的情況下使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章