SNY

概述
SYN (synchronize)
SYN是TCP/IP建立連線時使用的握手信號。在客戶機和伺服器之間建立正常的TCP網路連線時,客戶機首先發出一個SYN訊息,伺服器使用SYN-ACK應答表示接收到了這個訊息,最後客戶機再以ACK訊息回響。這樣在客戶機和伺服器之間才能建立起可靠的TCP連線,數據才可以在客戶機和伺服器之間傳遞。 
TCP連線的第一個包,非常小的一種數據包。SYN 攻擊包括大量此類的包,由於這些包看上去來自實際不存在的站點,因此無法有效進行處理。每個機器的欺騙包都要花幾秒鐘進行嘗試方可放棄提供正常回響。
性質
在黑客攻擊事件中,SYN攻擊是最常見又最容易被利用的一種攻擊手法。 
SYN攻擊屬於DoS攻擊的一種,它利用TCP協定缺陷,通過傳送大量的半連線請求,耗費CPU和記憶體資源。SYN攻擊除了能影響主機外,還可以危害路由器、防火牆等網路系統,事實上SYN攻擊並不管目標是什麼系統,只要這些系統打開TCP服務就可以實施。伺服器接收到連線請求(syn= j),將此信息加入未連線佇列,並傳送請求包給客戶(syn=k,ack=j+1),此時進入SYN_RECV狀態。當伺服器未收到客戶端的確認包時,重發請求包,一直到逾時,才將此條目從未連線佇列刪除。配合IP欺騙,SYN攻擊能達到很好的效果,通常,客戶端在短時間內偽造大量不存在的IP位址,向伺服器不斷地傳送syn包,伺服器回復確認包,並等待客戶的確認,由於源地址是不存在的,伺服器需要不斷的重發直至逾時,這些偽造的SYN包將長時間占用未連線佇列,正常的SYN請求被丟棄,目標系統運行緩慢,嚴重者引起網路堵塞甚至系統癱瘓。 
SYN攻擊的防範 
關於SYN攻擊防範技術,人們研究得比較早。歸納起來,主要有兩大類,一類是通過防火牆、路由器等過濾網關防護,另一類是通過加固TCP/IP協定棧防範.但必須清楚的是,SYN攻擊100%能用防火牆完全阻止,不會設定防火牆者例外。 
syn flood利用TCP協定缺陷,傳送了大量偽造的TCP連線請求,使得被攻擊方資源耗盡,無法及時回應或處理正常的服務請求。一個正常的TCP連線需要三次握手,首先客戶端傳送一個包含SYN標誌的數據包,其後伺服器返回一個SYN/ACK的應答包,表示客戶端的請求被接受,最後客戶端再返回一個確認包ACK,這樣才完成TCP連線。在伺服器端傳送應答包後,如果客戶端不發出確認,伺服器會等待到逾時,期間這些半連線狀態都保存在一個空間有限的快取佇列中;如果大量的SYN包發到伺服器端後沒有應答,就會使伺服器端的TCP資源迅速耗盡,導致正常的連線不能進入,甚至會導致伺服器的系統崩潰。 
防火牆通常用於保護內部網路不受外部網路的非授權訪問,它位於客戶端和伺服器之間,因此利用防火牆來阻止DoS攻擊能有效地保護內部的伺服器。針對SYN Flood,防火牆通常有三種防護方式:SYN網關、被動式SYN網關和SYN中繼。 
SYN網關
防火牆收到客戶端的SYN包時,直接轉發給伺服器;防火牆收到伺服器的SYN/ACK包後,一方面將SYN/ACK包轉發給客戶端,另一方面以客戶端的名義給伺服器回送一個ACK包,完成TCP的三次握手,讓伺服器端由半連線狀態進入連線狀態。當客戶端真正的ACK包到達時,有數據則轉發給伺服器,否則丟棄該包。由於伺服器能承受連線狀態要比半連線狀態高得多,所以這種方法能有效地減輕對伺服器的攻擊。 
被動式SYN網關
設定防火牆的SYN請求逾時參數,讓它遠小於伺服器的逾時期限。防火牆負責轉發客戶端發往伺服器的SYN包,伺服器發往客戶端的SYN/ACK包、以及客戶端發往伺服器的ACK包。這樣,如果客戶端在防火牆計時器到期時還沒傳送ACK包,防火牆則往伺服器傳送RST包,以使伺服器從佇列中刪去該半連線。由於防火牆的逾時參數遠小於伺服器的逾時期限,因此這樣能有效防止SYN Flood攻擊。 
SYN中繼
防火牆在收到客戶端的SYN包後,並不向伺服器轉發而是記錄該狀態信息然後主動給客戶端回送SYN/ACK包,如果收到客戶端的ACK包,表明是正常訪問,由防火牆向伺服器傳送SYN包並完成三次握手。這樣由防火牆做為代理來實現客戶端和伺服器端的連線,可以完全過濾不可用連線發往伺服器。

熱門詞條

聯絡我們