傳輸層DoS***

傳輸層DoS***
TCP SYN flooding是最常用的DoS***方式。TCP連接初始化過程稱爲三次握手(three-way handshake):A連接發起端發送標誌有SYN位的TCP數據包到目的端,用於協商參數,初始化連接;B目的端使用SYN/ACK來表明自己的連接參數並確認發起端的連接參數;C發起端收到SYN/ACK後,使用ACK確認目的端連接參數。這樣三次TCP包交換,發起端和接收端之前建立一條TCP連接。當目的端TCP/IP收到一個TCP SYN後,就位將要建立的連接預留資源並等待發起端確定連接參數,這對建立穩定高效的TCP連接是必要的。但是如果向目的主機發送大量的TCP SYN,而不迴應TCP  ACK,使大量連接處於半開狀態(half-open),導致預留資源長時間不能釋放(直到超時),最終致使目的端資源耗盡。
[img]http://img701.photo.wangyou.com/2008/08/26/1844806/20080826154058_0_2.jpg[/img]
而UDP flooding利用了UDP傳輸的無狀態性,通過發送大量擁有僞裝IP地址的UDP數據包,填滿網絡設備(主要是路由器或防火牆)的連接狀態表,造成服務被拒絕。
Crikey CRC flooding是新出現的一種DoS***方式,目標主要是防火牆等紀錄連接狀態的網絡安全設備。爲了加速數據包通過防火牆,防火牆通常不會使用Checksum對數據包進行效驗,只是把連接添加到連接狀態表中;Crikey CRC flooding在TCP和UDP頭部加入錯誤的Checksum值。當這些數據包到達目的主機時,因爲Checksum錯誤會被拒絕。這樣,實際上沒有建立起來的連接被紀錄到了連接狀態表中,如果防火牆大量接受到這樣的數據包,最終會導致連接狀態表被填滿,新的連接請求被拒絕。
[b]防範方法[/b]
首先在防火牆上限制TCP SYN的突發上限,因爲防火牆不能識別正常的SYN和惡意的SYN,一般把TCP SYN的突發量調整到內部主機可以承受的連接量,當超過這個預設的突發量的時候就自動清理或者阻止,這個功能目前很多寬帶路由都支持,如海蜘蛛路由,只不過每款路由設置項的名稱可能不一樣,原理和效果一樣。一些高端防火牆具有TCP SYN網關和TCP SYN中繼等特殊功能,也可以抵抗TCP SYN flooding,他們都是通過干涉建立過程來實現。具有TCP SYN網關功能的防火牆在收到TCP SYN後,轉發給內部主機並記錄該連接,當收到主機的TCP SYN/ACK後,以客戶機的名義發送TCP ACK給主機,幫助三次握手,把連接由半開狀態變成全開狀態(後者比前者佔用的資源少)。而具有TCP SYN中繼功能的防火牆在收到TCP SYN後不轉發給內部主機,而是代替內部主機迴應TCP SYN/ACK,如果收到TCP ACK則表示連接非惡意,否則及時釋放半連接所佔用資源。
[img]http://img701.photo.wangyou.com/2008/08/26/1844806/20080826164907_0_2.jpg[/img]
UDP SYN限制和TCP SYN限制差不多,一般也是設置UDP SYN的突發連接量,但UDP連接在防火牆上控制相對效果要稍差點,我們可以通過一些客戶端軟件來實現限制單機UDP併發連接數限制,最新發布的海蜘蛛的海盾2.4版就提供了這個功能,效果也還不錯。
Crikey CRC flooding主要目標是網絡安全設備,需要爲防火牆打上安全補丁,使數據包通過時用checksum進行校驗,對於checksum錯誤的TCP和UDP數據包丟棄;減小連接狀態條目老化時間,是不活動的連接數目要及時清除,防止填滿連接狀態表。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章