“拒絕服務”攻擊

拒絕服務攻擊即攻擊者想辦法讓目標機器停止提供服務或資源訪問。這些資源包括磁碟空間、記憶體、進程甚至網路頻寬,從而阻止正常用戶的訪問。其實對網路頻寬進行的消耗性攻擊只是拒絕服務攻擊的一小部分,只要能夠對目標造成麻煩,使某些服務被暫停甚至主機當機,都屬於拒絕服務攻擊。拒絕服務攻擊問題也一直得不到合理的解決,究其原因是因為這是由於網路協定本身的安全缺陷造成的,從而拒絕服務攻擊也成為了攻擊者的終極手法。

幾種攻擊原理,
“拒絕服務”攻擊 (denial of service attack)
一種攻擊方法,它通過消耗過多的時間、記憶體或其他資源,阻止對資源的正當訪問。

攻擊者進行拒絕服務攻擊,實際上讓伺服器實現兩種效果:一是迫使伺服器的緩衝區滿,不接收新的請求;二是使用IP欺騙,迫使伺服器把合法用戶的連線復位,影響合法用戶的連線。

幾種攻擊原理

1.SYN Foold
SYN Flood是當前最流行的DoS(拒絕服務攻擊)與DDoS(Distributed Denial Of Service分散式拒絕服務攻擊)的方式之一,這是一種利用TCP協定缺陷,傳送大量偽造的TCP連線請求,使被攻擊方資源耗盡(CPU滿負荷或記憶體不足)的攻擊方式。
SYN Flood攻擊的過程在TCP協定中被稱為三次握手(Three-way Handshake),而SYN Flood拒絕服務攻擊就是通過三次握手而實現的。
(1) 攻擊者向被攻擊伺服器傳送一個包含SYN標誌的TCP報文,SYN(Synchronize)即同步報文。同步報文會指明客戶端使用的連線埠以及TCP連線的初始序號。這時同被攻擊伺服器建立了第一次握手。
(2) 受害伺服器在收到攻擊者的SYN報文後,將返回一個SYN+ACK的報文,表示攻擊者的請求被接受,同時TCP序號被加一,ACK(Acknowledgement)即確認,這樣就同被攻擊伺服器建立了第二次握手。
(3) 攻擊者也返回一個確認報文ACK給受害伺服器,同樣TCP序列號被加一,到此一個TCP連線完成,三次握手完成。
具體原理是:TCP連線的三次握手中,假設一個用戶向伺服器傳送了SYN報文後突然當機或掉線,那么伺服器在發出SYN+ACK應答報文後是無法收到客戶端的ACK報文的(第三次握手無法完成),這種情況下伺服器端一般會重試(再次傳送SYN+ACK給客戶端)並等待一段時間後丟棄這個未完成的連線。這段時間的長度我們稱為SYN Timeout,一般來說這個時間是分鐘的數量級(大約為30秒~2分鐘);一個用戶出現異常導致伺服器的一個執行緒等待1分鐘並不是什麼很大的問題,但如果有一個惡意的攻擊者大量模擬這種情況(偽造IP位址),伺服器端將為了維護一個非常大的半連線列表而消耗非常多的資源。即使是簡單的保存並遍歷也會消耗非常多的CPU時間和記憶體,何況還要不斷對這個列表中的IP進行SYN+ACK的重試。實際上如果伺服器的TCP/IP棧不夠強大,最後的結果往往是堆疊溢出崩潰—— 既使伺服器端的系統足夠強大,伺服器端也將忙於處理攻擊者偽造的TCP連線請求而無暇理睬客戶的正常請求(畢竟客戶端的正常請求比率非常之小),此時從正常客戶的角度看來,伺服器失去回響,這種情況就稱作:伺服器端受到了SYN Flood攻擊(SYN洪水攻擊)。
2.IP欺騙DOS攻擊
這種攻擊利用RST位來實現。假設現在有一個合法用戶(61.61.61.61)已經同伺服器建立了正常的連線,攻擊者構造攻擊的TCP數據,偽裝自己的IP為61.61.61.61,並向伺服器傳送一個帶有RST位的TCP數據段。伺服器接收到這樣的數據後,認為從61.61.61.61傳送的連線有錯誤,就會清空緩衝區中建立好的連線。這時,如果合法用戶61.61.61.61再傳送合法數據,伺服器就已經沒有這樣的連線了,該用戶就必須從新開始建立連線。攻擊時,攻擊者會偽造大量的IP位址,向目標傳送RST數據,使伺服器不對合法用戶服務,從而實現了對受害伺服器的拒絕服務攻擊。
3. UDP洪水攻擊
攻擊者利用簡單的TCP/IP服務,如Chargen和Echo來傳送毫無用處的占滿頻寬的數據。通過偽造與某一主機的Chargen服務之間的一次的UDP連線,回復地址指向開著Echo服務的一台主機,這樣就生成在兩台主機之間存在很多的無用數據流,這些無用數據流就會導致頻寬的服務攻擊。
4. Ping洪流攻擊
由於在早期的階段,路由器對包的最大尺寸都有限制。許多作業系統對TCP/IP棧的實現在ICMP包上都是規定64KB,並且在對包的標題頭進行讀取之後,要根據該標題頭裡包含的信息來為有效載荷生成緩衝區。當產生畸形的,聲稱自己的尺寸超過ICMP上限的包也就是載入的尺寸超過64K上限時,就會出現記憶體分配錯誤,導致TCP/IP堆疊崩潰,致使接受方當機。
5. 淚滴(teardrop)攻擊
淚滴攻擊是利用在TCP/IP堆疊中實現信任IP碎片中的包的標題頭所包含的信息來實現自己的攻擊。IP分段含有指明該分段所包含的是原包的哪一段的信息,某些TCP/IP(包括service pack 4以前的NT)在收到含有重疊偏移的偽造分段時將崩潰。
6. Land攻擊
Land攻擊原理是:用一個特別打造的SYN包,它的原地址和目標地址都被設定成某一個伺服器地址。此舉將導致接受伺服器向它自己的地址傳送SYN-ACK訊息,結果這個地址又發回ACK訊息並創建一個空連線。被攻擊的伺服器每接收一個這樣的連線都將保留,直到逾時,對Land攻擊反應不同,許多UNIX實現將崩潰,NT變的極其緩慢(大約持續5分鐘)。
7. Smurf攻擊
一個簡單的Smurf攻擊原理就是:通過使用將回復地址設定成受害網路的廣播地址的ICMP應答請求(ping)數據包來淹沒受害主機的方式進行。最終導致該網路的所有主機都對此ICMP應答請求作出答覆,導致網路阻塞。它比ping of death洪水的流量高出1或2個數量級。更加複雜的Smurf將源地址改為第三方的受害者,最終導致第三方崩潰。
8.Fraggle攻擊
原理:Fraggle攻擊實際上就是對Smurf攻擊作了簡單的修改,使用的是UDP應答訊息而非ICMP。

相關詞條

熱門詞條

聯絡我們