攻擊性質
在黑客攻擊事件中,SYN攻擊是最常見又最容易被利用的一種攻擊手法。
SYN攻擊屬于DDOS攻擊的一種,它利用TCP協議缺陷,通過發送大量的半連接請求,耗費CPU和内存資源。TCP協議建立連接的時候需要雙方相互确認信息,來防止連接被僞造和精确控制整個數據傳輸過程數據完整有效。所以TCP協議采用三次握手建立一個連接。
攻擊原理
關于SYN攻擊防範技術,人們研究得比較早。歸納起來,主要有兩大類,一類是通過防火牆、路由器等過濾網關防護,另一類是通過加固TCP/IP協議棧防範
SYNFlood利用TCP協議缺陷,發送了大量僞造的TCP連接請求,使得被攻擊方資源耗盡,無法及時回應或處理正常的服務請求。一個正常的TCP連接需要三次握手,首先客戶端發送一個包含SYN标志的數據包,其後服務器返回一個SYN/ACK的應答包,表示客戶端的請求被接受,最後客戶端再返回一個确認包ACK,這樣才完成TCP連接。
在服務器端發送應答包後,如果客戶端不發出确認,服務器會等待到超時,期間這些半連接狀态都保存在一個空間有限的緩存隊列中;如果大量的SYN包發到服務器端後沒有應答,就會使服務器端的TCP資源迅速耗盡,導緻正常的連接不能進入,甚至會導緻服務器的系統崩潰。
攻擊器
SYN攻擊實現起來非常的簡單,互聯網上有大量現成的SYN攻擊工具。
windows系統下的SYN工具
以synkill.exe為例,運行工具,選擇随機的源地址和源端囗,并填寫目标機器地址和TCP端囗,激活運行,很快就會發現目标系統運行緩慢。如果攻擊效果不明顯,可能是目标機器并未開啟所填寫的TCP端囗或者防火牆拒絕訪問該端囗,此時可選擇允許訪問的TCP端囗,通常,windows系統開放tcp139端囗,UNIX系統開放tcp7、21、23等端囗。
檢測攻擊
檢測SYN攻擊非常的方便,當你在服務器上看到大量的半連接狀态時,特别是源IP地址是随機的,基本上可以斷定這是一次SYN攻擊。我們使用系統自帶的netstat工具來檢測SYN攻擊:
上面是在LINUX系統中看到的,很多連接處于SYN_RECV狀态(在WINDOWS系統中是SYN_RECEIVED狀态),源IP地址都是随機的,表明這是一種帶有IP欺騙的SYN攻擊。
我們也可以通過下面的命令直接查看在LINUX環境下某個端囗的未連接隊列的條目數:
顯示TCP端囗22的未連接數有324個,雖然還遠達不到系統極限,但應該引起管理員的注意。
防範技術
關于SYN攻擊防範技術,人們研究得比較早。歸納起來,主要有兩大類,一類是通過防火牆、路由器等過濾網關防護,另一類是通過加固TCP/IP協議棧防範。
注冊表設置
在“開始->運行->鍵入regedit”
啟用SYN攻擊保護的命名值位于注冊表項HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices之下。值名稱:SynAttackProtect。推薦值:2。
以下部分中的所有項和值均位于注冊表項HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices之下。
指定必須在觸發SYNflood保護之前超過的TCP連接請求阈值。值名稱:TcpMaxPortsExhausted。推薦值:5。
啟用SynAttackProtect後,該值指定SYN_RCVD狀态中的TCP連接阈值,超過SynAttackProtect時,觸發SYNflood保護。值名稱:TcpMaxHalfOpen。推薦值數據:500。
啟用SynAttackProtect後,指定至少發送了一次重傳的SYN_RCVD狀态中的TCP連接阈值。超過SynAttackProtect時,觸發SYNflood保護。值名稱:TcpMaxHalfOpenRetried。推薦值數據:400
豐富帶寬資源
不難看出syn攻擊消耗帶寬資源所以要想防禦synflood一個豐富的帶寬資源是必要的,通常的流量攻擊,攻擊者也是利用肉雞的帶寬資源來達到攻擊堵死網絡的,所以這個是一個前提。
防火牆
利用防火牆來進行防護攻擊是目前最有效的方法,當然前提是攻擊在防護帶寬範圍之内,也就是為什麼第二條推薦帶寬資源,這是保證在防火牆前面不會造成堵塞,來達到防火牆的防護目的,筆者測試了國内的防火牆,以天鷹ddos防火牆的防護功能最為全面,syn帶寬範圍可以100%全部過濾,适合網站、網吧、IDC機房等行業安裝,他們擁有多年攻擊防護經驗,可以防禦已知未知的網絡攻擊,而且基于行為分析法達到誤封最小的領先水平!



















