與其他的攻擊方式不同的是,連線耗盡攻擊使用真實的IP位址與伺服器建立連線。攻擊者操控了大量的傀儡
主機或者使用
代理伺服器來發起大規模的連線。當連線數達到一定規模,超過了伺服器的能力時,正常的連線請求將無法建立。通過不斷地與伺服器建立大量的連線,最終伺服器的記憶體資源將被耗盡。應該說,連線耗盡攻擊比以上的攻擊更為複雜,手段和變化更為豐富多彩。判斷連線耗盡攻擊需要對netstat ?Can顯示的連線狀態進行分析,可能出現的情況有:
1) 若干個源IP與伺服器建立了大量的連線;
2) 大量的連線處於TIME_WAIT, FIN_WAIT狀態;
除了建立大量的連線之外,攻擊程式在與伺服器建立連線之後可能始終不放棄連線,並間隔地向伺服器傳送垃圾數據包使得連線狀態始終保持,拖延伺服器釋放連線的時間,這種連線也可以稱之為"空連線"。
顯然,如果攻擊者掌握的傀儡
主機數量不夠的話,就需要每個傀儡主機與伺服器建立相當數量的連線才能使攻擊效果比較明顯。
防火牆就可以通過限制每個源IP的連線數來將攻擊的影響降到最低點。但是當傀儡
主機數量足夠多的時候,幾乎是每個源IP只與伺服器同時保持2到3個連線,如果限制源IP的連線數,就有可能使得正常的服務無法正常訪問。大多數的網站內容豐富多彩,打開一個頁面就可能需要向伺服器發起數十個連線,限制連線就有可能使得頁面上的內容無法正常打開。
連線耗盡攻擊對
防火牆帶來的衝擊也是很明顯的,由於連線數量巨大,占用了大量的連線表項,防火牆的負載和記憶體使用率將會明顯上升。如果在
防火牆前面部署具有防護連線耗盡攻擊能力的設備,在傀儡
主機向伺服器發起連線請求的時候,防護設備是無法簡單的根據SYN包來判斷是否是正常連線的,從而只能讓連線通過,只有當連線建立之後才有可能判斷是否惡意的連線,但此時已經對伺服器和防火牆造成了一定的影響。所以防護設備在連線建立之後,如果一斷時間內沒有有效的數據包從
客戶端到達,則可以判定此連線為"空連線",同時應當儘快地主動清除已經建立的連線,使得防火牆和伺服器釋放連線表項。