-
SYN
鎖定
- 中文名
- 同步序列編號
- 外文名
- Synchronize Sequence Numbers
- 所屬學科
- 計算機科學
- 詞語分類
- 計算機專業術語
- 解 釋
- TCP/IP建立連接時使用的握手信號
- 用 途
- 黑客的一種攻擊手法
- 攻擊性質
- DDoS攻擊的一種
SYN攻擊性質
在黑客攻擊事件中,SYN攻擊是最常見又最容易被利用的一種攻擊手法。
SYN攻擊屬於DDoS攻擊的一種,它利用TCP協議缺陷,通過發送大量的半連接請求,耗費CPU和內存資源。SYN攻擊除了能影響主機外,還可以危害路由器、防火牆等網絡系統,事實上SYN攻擊並不管目標是什麼系統,只要這些系統打開TCP服務就可以實施。服務器接收到連接請求(syn= j),將此信息加入未連接隊列,併發送請求包給客户(syn=k,ack=j+1),此時進入SYN_RECV狀態。當服務器未收到客户端的確認包時,重發請求包,一直到超時,才將此條目從未連接隊列刪除。配合IP欺騙,SYN攻擊能達到很好的效果,通常,客户端在短時間內偽造大量不存在的IP地址,向服務器不斷地發送syn包,服務器回覆確認包,並等待客户的確認,由於源地址是不存在的,服務器需要不斷的重發直至超時,這些偽造的SYN包將長時間佔用未連接隊列,正常的SYN請求被丟棄,目標系統運行緩慢,嚴重者引起網絡堵塞甚至系統癱瘓。
SYN攻擊原理
SYN Flood利用TCP協議缺陷,發送了大量偽造的TCP連接請求,使得被攻擊方資源耗盡,無法及時迴應或處理正常的服務請求。一個正常的TCP連接需要三次握手,首先客户端發送一個包含SYN標誌的數據包,其後服務器返回一個SYN/ACK的應答包,表示客户端的請求被接受,最後客户端再返回一個確認包ACK,這樣才完成TCP連接。在服務器端發送應答包後,如果客户端不發出確認,服務器會等待到超時,期間這些半連接狀態都保存在一個空間有限的緩存隊列中;如果大量的SYN包發到服務器端後沒有應答,就會使服務器端的TCP資源迅速耗盡,導致正常的連接不能進入,甚至會導致服務器的系統崩潰。
SYN攻擊工具
SYN攻擊實現起來非常的簡單,互聯網上有大量現成的SYN攻擊工具。
windows系統下的SYN工具
以synkill.exe為例,運行工具,選擇隨機的源地址和源端口,並填寫目標機器地址和TCP端口,激活運行,很快就會發現目標系統運行緩慢。如果攻擊效果不明顯,可能是目標機器並未開啓所填寫的TCP端口或者防火牆拒絕訪問該端口,此時可選擇允許訪問的TCP端口,通常,windows系統開放tcp139端口,UNIX系統開放tcp7、21、23等端口。
SYN檢測攻擊
檢測SYN攻擊非常的方便,當你在服務器上看到大量的半連接狀態時,特別是源IP地址是隨機的,基本上可以斷定這是一次SYN攻擊。我們使用系統自帶的netstat 工具來檢測SYN攻擊:
# netstat -n -p TCP
tcp 0 0 10.11.11.11:23 124.173.152.8:25882 SYN_RECV -
tcp 0 0 10.11.11.11:23 236.15.133.204:2577 SYN_RECV -
tcp 0 0 10.11.11.11:23 127.160.6.129:51748 SYN_RECV -
tcp 0 0 10.11.11.11:23 222.220.13.25:47393 SYN_RECV -
tcp 0 0 10.11.11.11:23 212.200.204.182:60427 SYN_RECV -
tcp 0 0 10.11.11.11:23 232.115.18.38:278 SYN_RECV -
tcp 0 0 10.11.11.11:23 239.116.95.96:5122 SYN_RECV -
tcp 0 0 10.11.11.11:23 236.219.139.207:49162 SYN_RECV -
...
上面是在LINUX系統中看到的,很多連接處於SYN_RECV狀態(在WINDOWS系統中是SYN_RECEIVED狀態),源IP地址都是隨機的,表明這是一種帶有IP欺騙的SYN攻擊。
我們也可以通過下面的命令直接查看在LINUX環境下某個端囗的未連接隊列的條目數:
#netstat -n -p TCP | grep SYN_RECV | grep :22 | wc -l
324
SYN防範技術
SYN註冊表設置
在“開始->運行->鍵入regedit”
啓用 SYN 攻擊保護的命名值位於註冊表項 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters之下。值名稱:SynAttackProtect。推薦值:2。
以下部分中的所有項和值均位於註冊表項 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters 之下。
指定必須在觸發 SYN flood 保護之前超過的 TCP 連接請求閾值。值名稱:TcpMaxPortsExhausted。推薦值:5。
啓用 SynAttackProtect 後,該值指定 SYN_RCVD 狀態中的 TCP 連接閾值,超過 SynAttackProtect 時,觸發 SYN flood 保護。值名稱:TcpMaxHalfOpen。推薦值數據:500。
啓用 SynAttackProtect 後,指定至少發送了一次重傳的 SYN_RCVD 狀態中的 TCP 連接閾值。超過 SynAttackProtect 時,觸發 SYN flood 保護。值名稱:TcpMaxHalfOpenRetried。推薦值數據:400
SYN豐富帶寬資源
不難看出syn攻擊時消耗大量帶寬資源,所以要想防禦syn洪水攻擊,一個豐富的帶寬資源是非常有必要的,通常的流量攻擊,攻擊者也是利用擁擠的帶寬資源來堵死目標網絡的,所以這個也是一個重要的防禦前提。