摘 要:SYN LLOOD是現在比較常見的攻擊方式,它可以利用TCP協議的缺陷來對TCP連接請求進行偽造,進而導致CPU在資源方面出現耗盡的情況,或者是導致CPU出現內存不足的情況。在對SYN FLOOD攻擊進行分析的時候可以從TCP三次握手和握手的時候出現的缺陷,同時在IP方面出現的欺騙進行分析,這樣可以更好的對SYN FLOOD 進行分析,進而找到檢測的方法和防御的方法。
關鍵詞:SYN Flood攻擊;檢測;防御
拒絕服務攻擊和分布式拒絕服務攻擊是網絡攻擊方式中危害極大的攻擊,和其他的網絡攻擊不同,拒絕服務攻擊不是對攻擊目標的系統和數據進行危害,而是對攻擊目標的網絡進行耗盡,同時對系統的操作面臨著資源不斷減少的情況,這樣就會導致攻擊目標的服務器系統出現崩潰的情況,使得用戶無法使用網絡服務。SNY FLOOD就是拒絕服務攻擊和分布式拒絕服務攻擊的重要方式之一,如果攻擊的目標是支持TCP應用的,那么這種攻擊方式就可以對攻擊目標的所有網絡連接進行攻擊,同時使用戶無法正常進行網絡的訪問,SNY FLOOD攻擊的原理就是利用TCP協議在建立連接的時候三次握手的缺陷,同時利用IP的欺騙技術。為了更好的解決這種攻擊方式,對SYN FLOOD攻擊進行必要的檢測是非常重要的,在檢測方面人們已經在使用一些方法的,同時在防御方法上人們也找到了一些措施,可以通過修改系統的配置,采用必要的防火墻或者只允許合法的IP源在設備上進行使用,這樣進行網絡連接的時候才能避免出現IP欺騙的情況。
1 TCP三次握手
TCP是傳輸控制協議的簡稱,它是一種傳輸層協議,在使用的時候主要是進行面向連接。面向連接是一種數據在傳輸的時候建立起來的虛電路連接,在進行連接的時候主要是對客戶端和服務器之間進行連接。這個連接的過程通常被人們稱作為TCP的三次握手。TCP的第一次握手是客戶端向服務器發送SYN包,并且要在系統緩存中開辟一個空間來對服務器的請求進行處理,這時候連接的狀態表現為SYN 的發送狀態。TCP的第二次握手是服務器收到SYN包之后,對客戶發送的SYN包進行確認,然后向客戶端發送SYN+ACK包這時在系統的緩存區域同時也是要開辟一塊空間對客戶端的請求進行處理,這時的連接狀態是SYN 的接收狀態。TCP的第三次握手是客戶端收到服務器發送的SYN+ACK包,然后將ACK包重新發送給服務器,服務器收到ACK包以后,客戶端和服務器的連接就完成了,三次握手也就完成了,這時客戶端和服務器就可以進行數據的傳輸了。
2 SYN FLOOD攻擊原理
2.1 TCP握手缺陷
TCP的第二次握手時,服務器在收到客戶端發送的SYN 包以后,要在系統的緩存中對客戶的請求進行處理,同時服務器要向客戶端發送SYN+ACK包,在沒有SYN FLOOD 攻擊的情況下,也可能會出現因為網絡的原因導致服務器在一定的時間內無法收到ACK包,在收到SYN FLOOD 攻擊以后,服務器會不斷的進行SYN+ACK包的傳輸,這樣就會導致緩存不斷要進行空間的預留,進而出現系統緩存不斷釋放的情況,這時的SYN FLOOD 攻擊就是利用的TCP 握手時出現的缺陷。
2.2 IP欺騙
在網絡中,路由設備要根據數據包的目標IP地址進行數據包的傳輸,使數據包傳輸到目的端,在這個過程中,對源IP地址是不會進行檢查的,這樣也就為SYN FLOOD 的攻擊提供了一個便利的條件。SYN FLOOD 進行攻擊的時候,可以對源IP 的地址進行隨意的偽造,使源IP 地址在進行追蹤的時候非常難進行,盡管SYN FLOOD可以通過這種方式來進行攻擊,同時也可以找到防御的方法。
2.3 SYN FLOOD攻擊
SYN FLOOD 進行攻擊的時候主要是利用TCP協議的三次握手缺陷和IP 欺騙,這樣就可以向服務器發送大量的偽造源IP地址,而且這種發送還可以是持續來進行的,這樣就會導致系統在資源使用上出現問題。偽造的源IP 地址通常都是不存在的,這樣就使得服務器無法收到ACK包,使得服務器要不斷的向客戶端發送SYN+ACK 包,這樣就使得客戶端要在系統中不斷進行空間的開辟來進行客戶端的處理,這樣就會使得網絡出現堵塞的情況,導致系統出現癱瘓的情況,使正常的SYN請求在系統中被丟棄。
3 SYN Flood攻擊檢測
3.1 傳統檢測方法
一種是查看本地連接是否有大量的半開連接隊列,但這個方法不是很準確。另一種是給每一個請求連接的IP地址分配一個Cookie.如果短時間內連續受到某個IP的重復SYN包,就認定是受到了攻擊,以后從這個IP地址來的包會被丟棄。由于SYN包的源IP地址可以隨意偽造,SYN FIood攻擊可以很容易規避SYNCookie檢測。
3.2 牛頓均差插值檢測法
插值法利用函數f(x)在某區間中若干點的函數值,作出適當的特定函數,在這些點上取已知值,在區間的其他點上用這特定函數的值作為函數f(x)的近似值。如果這特定函數是多項式,就稱它為插值多項式。利用插值基函數很容易得到拉格朗日插值多項式,公式結構緊湊,在理論分析中甚為方便,但當插值節點增減時全部插值基函數均要隨之變化,整個公式也將發生變化, 這在實際計算中是很不方便的,為了克服這一缺點,提出了牛頓插值。
4 攻擊防御
只要服務器提供TCP應用,攻擊者就可以進行SYN Flood攻擊,而且SYN Flood攻擊一般很難以防御和追蹤,現介紹幾種防御辦法。
4.1 修改系統配置
我們可以修改系統支持的最大TCP連接數以及通過負載均衡等來提高防御SYN Flood攻擊能力。
4.2 采用防火墻
防火墻通常用于保護內部網絡不受外部網絡的非授權訪問,它位于客戶端和服務器之間。由于防火墻所能處理的半開連接數遠大于服務器所能處理的半開連接數以及根據SYN Flood攻擊特性,因此防火墻可以用來阻止DDOS攻擊有效地保護內部的服務器。
4.3 邊緣路由設備只允許合法源IP進入網絡
通過在邊界路由設備上配置訪問控制列表只允許合法源IP地址才能訪問網絡.這樣會大大過濾掉SYNFlood攻擊流量.即使部分利用合法源IP地址進行的攻擊.也非常容易被追蹤。這是目前解決互聯網SYNFlood攻擊最有效的辦法。
5 結束語
為了更好的對SYN FLOOD 攻擊原理進行掌握,同時對傳統的攻擊檢測方法進行分析,進而找到更加準確的檢測方法,在檢測方法進行分析的時候對防御的方法也能進行必要的分析。SYN FLOOD 攻擊方式是與其他攻擊方式不同的攻擊,在進行攻擊的時候,不需要使用木馬等程序就能對攻擊目標進行攻擊,只是需要攻擊目標在使用TCP服務即可。現在,網絡應用規模越來越大,為了更好的利用網絡,一定要提高網絡的使用安全,拒絕服務攻擊的危害越來越嚴重,需要提高全網用戶的網絡安全防護意識和技術水平以及需要網絡服務提供商和用戶進行共同防御。拒絕服務攻擊將仍是我們必須重點防范和研究的網絡安全的威脅之一。
參考文獻
[1]胡偉棟,汪為農.分布式拒絕服務攻擊及其防范[J].計算機工程,2000(10).
[2]韋衛.Internet網絡層安全協議理論研究與實現[J].計算機學報,1999(3).
[3]于泠.DoS攻擊原理與對策的進一步研究[J].計算機工程與應用,2001(10).
[4]趙開新,李曉月.SYN Flooding網絡攻擊的原理、檢測及防御技術,2010(5).
[5]胡兵,李清朗.現代科學與工程計算基礎[M].成都:四川大學出版社,2003(9).