天天看點

DDoS攻擊與防禦

       DDoS攻擊是目前非常流行的黑客攻擊方式,本文将對DDoS攻擊定義、常用手段以及防禦方法進行分析和介紹。

       在網上經常看到黑客通過技術手段攻擊網站,導緻網站無法為網民提供正常服務,給網站帶來巨大經濟損失。這種攻擊方式就是DDoS攻擊,目前黑客利用DDoS攻擊勒索網站管理人員已經成為網際網路黑色産業鍊的一部分,而且由于實施DDoS攻擊的成本低、技術門檻低等特點,導緻DDoS攻擊事件的發生率也越來越高。

DDoS攻擊概述

       DDoS攻擊的中文名稱是分布式拒絕服務(Distributed Denial of Service)攻擊,也就是我們經常說的洪水攻擊。DDoS攻擊可以實作在不同位置的多個攻擊者同時向一個或者幾個目标發起攻擊,而在目前的網際網路環境中,更為常見的情況是由黑客控制多台位于不同位置的計算機并利用這些計算機對目标發起攻擊,這些被黑客控制的計算機就是我們所說的殭屍電腦。

       目前,DDoS攻擊已經成為網際網路黑色産業鍊中成熟的一部分,它也是黑客謀取暴利的最簡單手法。黑客通過木馬軟體控制殭屍電腦,然後利用殭屍電腦去連接配接目标伺服器,進行大量的流量攻擊和資源攻擊,導緻被攻擊伺服器将大量的資源和帶寬用于應付這些垃圾流量上,導緻伺服器無法為真正需要服務的網民提供服務。

DDoS攻擊發展趨勢

       DDoS攻擊并不是新技術,該攻擊方式最早可以追溯到1996年,2002年時在我國就已經開始頻繁出現。在DDoS攻擊發展的這十幾年間,DDoS攻擊也在不斷變化。DDoS攻擊的發展趨勢,主要可以展現在以下幾方面:

  1.  DDoS攻擊流量越來越大。

    随着網際網路規模和網民數量的不斷擴大,整體網絡流量也在不斷增加,黑客控制的殭屍電腦總數也在不

    斷增長,黑客控制用于實施DDoS攻擊的流量從幾年前幾十上百兆的流量到後來的幾十上百G流量,再到現在的幾百G的DDoS攻擊流量的出現,DDoS攻擊流量的不斷增加,無疑給DDoS攻擊防禦工作帶來了更大挑戰。

2. 針對應用層的攻擊越來越多。

       随着網際網路環境中防火牆裝置應用範圍的不斷擴大,傳統的DDoS攻擊手段被防火牆裝置攔截,導緻類似SYN Flood攻擊方式的傳統DDoS的攻擊效果并不是很明顯,是以黑客在這種背景下研究出了針對應用層的DDoS攻擊,如針對網站伺服器的HTTP GET攻擊以及針對DNS伺服器的DNS放大攻擊等。這類攻擊針對的目标是工作在應用層的服務程式,導緻服務程式占用了大量的CPU資源和網絡帶寬,進而無法為網民提供正常服務。

3. 商業化DDoS攻擊越來越多。

       正如網上介紹的黑客利用技術手段竊取商業機密并買給競争對手的新聞一樣,DDoS攻擊也已經成為商業化競争手段的一部分。在網際網路行業中,有很多公司為了遏制競争對手,花錢雇傭黑客通過DDoS攻擊的方式,攻擊對方的網站伺服器或者是背景提供支援的伺服器,實作對方伺服器因拒絕服務攻擊導緻網絡交易的無法進行而造成巨大的經濟損失。

4. 實施DDoS攻擊成本越來越小。

       目前網際網路環境中實施DDoS攻擊基本上不需要什麼技術手段,也不需要投入太多的成本就可以實作,隻需要手中有一套DDoS攻擊軟體和大量的殭屍電腦就可以實作實施DDoS攻擊。而這兩個實施DDoS攻擊的必需品在網上花很低的價錢就可以買到,甚至某些賣家針對沒有任何技術基礎的“小黑客”提供視訊教程等輔助材料,在購買了軟體和殭屍電腦以後,隻需要跟着視訊教程按步驟操作就可以實作對目标的DDoS攻擊。

常見DDoS攻擊手段

       在了解了DDoS攻擊定義以及DDoS攻擊發展趨勢後,接下來對目前常見的DDoS攻擊手段進行分析和描述。常見DDoS攻擊手段主要包括以下幾種:

1. SYN Flood攻擊

       SYN Flood攻擊是網絡環境中最常見的DDoS攻擊方式,它利用了TCP協定的缺陷,在建立連接配接的三次握手過程中,通過向目标服務所在的端口發送大量僞造源IP位址的資料封包,造成目标伺服器中半開連接配接隊列被占滿,進而導緻合法使用者無法進行正常通路。為了更好地了解SYN Flood攻擊以及後續介紹的常見攻擊方式,我們首先對TCP協定相關的一些資訊進行介紹。TCP資料包首部結構如下圖1所示。

DDoS攻擊與防禦

圖1

       我們比較關注的是TCP首部中的6個标志位。其中SYN标志位用來建立連接配接,讓連接配接雙方同步序列号。如果SYN=1而ACK=0,則表示該資料包為連接配接請求,如果SYN=1而ACK=1則表示接受連接配接。FIN标志位表示發送端已經沒有資料要求傳輸了,希望釋放連接配接。RST标志用來複位一個連接配接。RST标志置位的資料包稱為複位包。一般情況下,如果TCP收到的一個分段明顯不是屬于該主機上的任何一個連接配接,則向遠端發送一個複位包。URG标志位為緊急資料标志。如果它為1,則表示本資料包中包含緊急資料。此時緊急資料指針有效。ACK标志位為确認标志位,如果為1,表示包中的确認号時有效的。否則,包中的确認号無效。PSH标志位如果置位,則接收端應盡快把資料傳送給應用層,不必等緩沖區滿再發送。

SYN Flood攻擊則是利用TCP的缺陷,在建立連接配接過程中實作的攻擊。正常情況下,建立TCP連接配接需要用戶端和服務端進行三次通信,也就是我們常說的三次握手,過程如下圖2所示。

DDoS攻擊與防禦

圖2

       首先,用戶端發送一個帶有SYN标志位的資料封包給服務端,表示詢問服務端是否可以與其建立連接配接。然後服務端會傳回SYN+ACK标志的封包用于确認用戶端的SYN請求和發送建立連接配接的請求,最後用戶端接收到服務端的資料封包後,會對服務端的SYN标志進行确認,至此TCP連接配接就建立成功了。

SYN Flood的攻擊則是用戶端發送SYN請求時,資料包中的源IP位址是經過僞造的,也就是說服務端在接收到用戶端的SYN請求以後,會将含有SYN+ACK标志位的封包發送至僞造的IP位址,而該位址會認為沒有請求與該位址建立連接配接,是以不會予以回應。伺服器因為沒有收到回應,會繼續嘗試三到五次發送請求并且等待一個SYN逾時以後丢棄這個連接配接。該過程如下圖3所示。

DDoS攻擊與防禦

圖3

       SYN Flood攻擊就是利用了TCP的這一缺陷,發送大量的僞造源IP位址的資料封包至服務端,服務端因為把持着大量的沒有接受回應的SYN請求導緻半開連接配接隊列被占滿而無法為合法使用者提供服務。

2. ACK Flood攻擊

       ACK Flood攻擊是發生在TCP連接配接建立以後,用戶端向服務端發送大量帶有ACK标志位的資料封包,服務端在接收到這種封包以後,會檢查該資料封包的源IP位址、目的IP位址、源端口和目的端口是否存在,如果存在則檢查資料包所表示的狀态是否合法,進而再向應用層發送這個資料包。如果檢查發現該資料包不合法,則服務端系統協定棧會傳回一個RST資料包通知用戶端目标端口不存在。ACK Flood攻擊就是利用協定處理方式的特點,發送大量的帶有ACK标志的資料包至服務端,使得服務端發送大量的CPU時間片來做檢查和處理的工作,導緻資源被占滿無法提供正常服務。

3. ICMP Flood攻擊

       對于ping指令,網民使用者一定都不會太陌生,很多時候網民使用者使用ping指令去嘗試與百度或新浪等大型網站建立連接配接來測試本地網絡是否處于可連接配接狀态,ping指令利用的就是ICMP協定。ICMP Flood攻擊則是與ACK Flood攻擊方式很類似,屬于流量型攻擊方式,通過構造大量的ICMP協定資料包發送至服務端,借此給服務端造成較大負載進而影響到服務端的正常服務。早在2001年中美黑客大戰時期,中國紅客集合廣大網絡安全愛好者就嘗試使用名為“死亡之Ping”的工具,對美國白宮的網站進行攻擊,該工具利用的就是ICMP Flood攻擊。目前,很多的防火牆的安全政策都是直接過濾掉ICMP協定的資料封包,是以導緻ICMP Flood攻擊效果并不是很明顯,而且出現頻率也越來越低。

4. Connection Flood攻擊

       Connection Flood攻擊是原理簡單但是功效效果很明顯的一種利用小流量沖擊大帶寬網絡服務的DDoS攻擊方式。黑客控制大量殭屍電腦并将這些殭屍電腦發起真實的資料連接配接請求,在與服務端建立之後,用戶端長時間保持連接配接不釋放,長時間占用服務端的資源,造成伺服器上的連接配接數過多而導緻效率降低、資源耗盡,導緻服務端無法相應其他合法使用者建立連接配接的請求。

5. UDP Flood攻擊

       UDP協定是一種面向無連接配接的網絡協定,UDP Flood的攻擊原理也相當簡單,黑客向服務端發送大量僞造源IP位址的UDP資料封包發送至服務端,進而對服務端應用服務造成壓力。目前,UDP Flood攻擊更多地被用于攻擊DNS伺服器、流媒體視訊伺服器等。

6. HTTP Get攻擊(CC攻擊)

       HTTP GET攻擊(CC攻擊)主要是針對Web應用程式設計的,尤其是針對使用動态腳本語言和資料庫結合的應用,黑客通過控制大量殭屍電腦或者線上代理伺服器與目标伺服器建立正常的TCP連接配接,并不斷地向服務端Web應用程式送出查詢、列資料等大量消耗資料庫資源的調用,導緻伺服器無法提供正常服務。

7. UDP DNS Query Flood攻擊

       UDP DNS Query Flood攻擊是指黑客向域名解析伺服器發送大量的域名解析請求,而這些請求解析的域名通常是随機的或者是不存在的,DNS伺服器在接收到黑客發送的域名解析請求以後首先會在伺服器上查找是否存在對應的資訊,如果不存在,伺服器會将該請求向上一層DNS伺服器遞歸查詢域名資訊。大量的域名解析的過程會給DNS伺服器帶來很大的負載壓力,當每秒鐘域名解析請求超過一定的數量時,就會造成DNS伺服器解析域名逾時。

DDoS攻擊實施全過程

       在了解了常見的DDoS攻擊手段以後,我們結合攻擊執行個體來描述實施DDoS攻擊的全過程。利用殭屍電腦實作攻擊的操作本身沒有什麼太多需要描述的,這裡我們選擇利用網上公布的免費代理伺服器和使用CC攻擊工具實作的CC攻擊。CC攻擊網絡流量圖如下圖4所示。

DDoS攻擊與防禦

圖4

      利用代理伺服器實施CC攻擊的目的是解決單一用戶端無法實作控制過多連接配接數和連接配接請求的操作,而利用代理伺服器可以将大量的請求首先發送到代理伺服器作為中轉,然後再由代理伺服器将資料内容轉發至目标伺服器,實作有更多用戶端請求的目的。那麼如何擷取到更多的代理就成為攻擊的關鍵,代理越多,攻擊的效果就會更明顯。

       擷取代理伺服器的方法有很多種,可以通過使用代理掃描工具掃描的方式,也可以通過通路免費代理線上公布網站擷取免費代理位址的方法。我們這裡使用第二種方法擷取免費的代理伺服器位址,如下圖5所示,很容易擷取到大量的免費的代理伺服器位址。

DDoS攻擊與防禦

圖5

       在擷取完代理伺服器以後,就是将擷取到的代理伺服器位址導入到CC攻擊工具中,并将配置相應的攻擊資訊。由于CC攻擊主要是針對Web應用程式将伺服器的資源浪費在查詢資料庫操作上的,是以配置過程中我們需要填寫相應的動态連結位址,并将其他資料資訊填寫完成以後進行攻擊即可實作大量的HTTP請求資料封包發送的效果,如下圖6所示。

DDoS攻擊與防禦

圖6

如何防禦DDoS攻擊

      就目前網際網路環境而言,對于DDoS攻擊的防範,一直都是網絡工程師們最為頭痛的問題之一。因為針對DDoS攻擊一直沒有一個根治的方法,尤其是針對大流量的DDoS攻擊來說,想依靠某些應用防護産品解決問題是不現實的,DDoS攻擊的防禦可以說是一個系統的工程,不僅需要購買大量的網絡裝置,還需要有較大的帶寬支援,作為應用伺服器或網站的管理人員對于DDoS攻擊的防禦可以從以下幾方面做起:

  1.  購置高性能的網絡裝置。

          對于很多企業來說,網絡裝置可能是其整個業務營運過程中的瓶頸,是以對網絡裝置的選用可能直接關系到整個網絡的營運,如路由器及硬體防火牆等裝置應該盡量選擇一些使用者反映比較不錯的産品,這類産品一般都會有比較好的過濾效果,當大流量的DDoS攻擊發生時候,可通過在網絡接入點的硬體裝置上對流量進行限制,或添加相應的規則進行過濾,而且這種限制和規則過濾的方法對于某些特定種類的DDoS攻擊來說效果非常明顯。

2. 配備較大的網絡帶寬。

      因為網絡帶寬的大小直接關系到網絡運作的快慢以及能夠抵禦DDoS攻擊的大小。例如某個小型公司網絡帶寬僅有10-20M,那麼如果有黑客通過惡意DDoS攻擊對其進行攻擊的話,無論該公司采取任何手段和措施也很難抵抗正常的DDoS攻擊。但是配備較大的帶寬的做法又是相對的,因為經濟的問題,網絡帶寬将是企業網絡營運中開銷的一部分,是以對帶寬大小的選擇和配備也隻能根據企業實際情況進行選擇。

3. 網絡裝置應避免使用網絡位址轉換。

      網絡位址轉換(NAT)雖然可以很好地解決因IP位址不足而存在的資源配置設定的問題,但是路由器和硬體防火牆等裝置應該盡量避免使用NAT功能,因為NAT功能會在很大程度上降低網絡的通信能力,在進行網絡位址轉換時,需要對網絡資料包進行校驗和計算,進而導緻過多此類工作占用了CPU的時間,導緻資源浪費。

4. 更新伺服器的硬體裝置。

      從上述我們對DDoS攻擊的原理和常用手段我們了解到,DDoS攻擊的目的就是浪費掉伺服器的資源,而伺服器資源性能主要是由伺服器的硬體裝置決定的,是以從伺服器硬體角度來說,CPU、記憶體、硬碟以及網卡的性能将直接影響到伺服器對抗DDoS攻擊的整體水準。

5. 将動态Web應用改為靜态頁面。

      目前網絡環境中,針對應用層的DDoS攻擊越來越多,而且現在主要的攻擊對象就是網站的營運,是以防禦CC攻擊也是防禦DDoS攻擊的一部分,而針對CC攻擊最有效的方法就是将動态應用修改為靜态頁面的方式,該方式不僅可以降低伺服器資源的消耗,同時還能在很大程度上減少黑客入侵的風險。

繼續閱讀