SYN Flood(同步)溢出
類型:拒絕服務攻擊
控制臺名:SYN(同步)溢出
技術描述:一個TCP的會話是通過以下方式來建立的,源主機首先向目標主機發送一個SYN(同步)數據包,如果目標主機在一特定的端口(PORT)等待連接時,它會返回對應于同步數據包的響應數據包(SYN/ACK),源主機接收后再返回確認的響應數據包(ACK),這樣會話連接建立。當目標主機向源主機返回響應數據包(SYN/ACK)時,目標主機會分配一定的內存以存儲當前建立的會話連接的狀態信息。這部分內存會一直占用著以等待接收源主機發送來的更多信息,除非最終的響應數據包(ACK)到達或連接超時。當向一臺主機傳送大量的SYN(同步)數據包時,目標主機必定會使用很多的內存專門用來處理打開的連接,而其它的合法連接就無法與這臺主機建立了。如果主機檢測到有大量的無相應響應的SYN(同步)數據包存在,它會采取如下糾錯方式:主機首先向目標主機發送一重置(RST)數據包以初始化SYN(同步)數據包,隨后目標主機就可以釋放原本用來接收響應數據包的內存,騰出內存空間以接收其它合法的連接。
嚴重性:大多數系統會對激活的TCP連接有一預定義的限制設定,一旦TCP連接達到這一限制設定值,再有其它的連接就會被忽略。SYN(同步)溢出攻擊方式就是企圖使主機連接大批空閑的連接,而其它的連接無法連接上。
誤判斷:一些網絡應用程序(例如PointCast更新或者是向一個非常“繁忙”的網頁發出HTTP請求)應用時會觸發這種機制,他們會在很短的時間內與主機建立大量的TCP會話。管理員可以在引擎控制窗口里調整SYN(同步)溢出的定義參數。
受影響系統:任何對激活的TCP連接有限制的網絡設備。
采取措施:快速地重啟受影響的機器以釋放一些連接,并必須等到空的連接超時。實時監控可以關閉未激活的連接。配置實時監控里有關SYN(同步)溢出的Kill選項。實時監控會關閉可能造成機器SYN(同步)溢出的連接企圖。
補救措施:更新操作系統的版本或者應用相應的補丁程序。現在許多操作系統具備通過試探的方法來關閉閑置的連接, 并將SYN(同步)溢出的連接請求阻擋在合法的連接之外。另外也可以通過增加連接緩存缺省值以達到目的。