複製鏈接
請複製以下鏈接發送給好友

“拒絕服務”攻擊

鎖定
拒絕服務攻擊即攻擊者想辦法讓目標機器停止提供服務或資源訪問。這些資源包括磁盤空間、內存、進程甚至網絡帶寬,從而阻止正常用户的訪問。其實對網絡帶寬進行的消耗性攻擊只是拒絕服務攻擊的一小部分,只要能夠對目標造成麻煩,使某些服務被暫停甚至主機死機,都屬於拒絕服務攻擊。拒絕服務攻擊問題也一直得不到合理的解決,究其原因是因為這是由於網絡協議本身的安全缺陷造成的,從而拒絕服務攻擊也成為了攻擊者的終極手法。
“拒絕服務”攻擊 (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。 [1] 
參考資料