淺談DDos攻擊與防禦

FLy_鵬程萬里發表於2018-06-23
最近重新拜讀了道哥的經典力作《白帽子講Web安全》一書,發覺好書看一遍是不夠的,每次品味都有不同的味道。道哥此書側重於企業安全,即所講所寫偏重企業內部的安全建設,而不是針對某些漏洞大書特書。再次細讀,深感需要做點筆記加強加強記憶,於是便以本篇開始,記錄一些曾經看過的經典書籍的筆記。本篇主要用於記錄《白帽子講Web安全》讀後感之DDos攻擊與防禦相關的知識。本篇記錄的絕大部分內容來自《白帽子講Web安全》,感謝道哥!

DDos簡介

  DDos又叫分散式拒絕服務,全稱Distributed Denial of Service,利用DDos造成的攻擊稱為拒絕服務攻擊,其原理就是利用大量的請求造成資源過載,導致服務不可用。
  DDos攻擊從層次上可分為網路層攻擊與應用層攻擊,從攻擊手法上可分為快型流量攻擊與慢型流量攻擊,但其原理都是造成資源過載,導致服務不可用。

網路層DDos攻擊

網路層DDos攻擊包括SYN flood、UDP flood、ICMP flood等。

SYN flood攻擊

  SYN flood攻擊主要利用了TCP三次握手過程中的bug,我們知道TCP三次握手過程是要建立連線的雙方傳送SYN,SYN+ACK,ACK資料包,而當攻擊方隨意構造源ip去傳送SYN包時,伺服器返回的SYN+ACK就不能得到應答(因為ip是隨意構造的),此時伺服器就會嘗試重新傳送,並且會有至少30s的等待時間,導致資源飽和服務不可用,此攻擊屬於慢型dos攻擊。

UDP flood攻擊

  由於udp是一種無連線的協議,因此攻擊者可以偽造大量的源IP地址去傳送udp包,此種攻擊屬於大流量攻擊。正常應用情況下,UDP包雙向流量會基本相等,因此在消耗對方資源的時候也在消耗自己的資源。

ICMP flood攻擊

  此攻擊屬於大流量攻擊,其原理就是不斷髮送不正常的ICMP包(所謂不正常就是ICMP包內容很大),導致目標頻寬被佔用,但其本身資源也會被消耗。並且目前很多伺服器都是禁ping的(在防火牆在可以遮蔽icmp包),因此這種方式已經落伍。

網路層DDos防禦

  • 網路架構上做好優化,採用負載均衡分流。
  • 新增抗DDos裝置,流量清洗。
  • 限制單ip請求頻率。
  • 防火牆等防護設定禁止icmp包等

網路層的DDos攻擊究其本質其實是無法防禦的,我們能做得就是不斷優化自身的網路架構,以及提升網路頻寬。

應用層DDos攻擊

應用層DDos攻擊不是發生在網路層,是發生在TCP建立握手成功之後,應用程式處理請求的時候。

CC攻擊

  CC攻擊還有一段比較有趣的來歷,據說當時綠盟為了防禦DDos攻擊研發了一款產品,叫做“Collapasar”,能夠有效的防禦SYN flood攻擊。然而黑客為了挑釁,研發了一款Challenge Collapasar工具(簡稱CC)。
  CC攻擊的原理,就是針對消耗資源比較大的頁面不斷髮起不正常的請求,導致資源耗盡。因此在傳送CC攻擊前,我們需要尋找載入比較慢,消耗資源比較多的網頁,比如需要查詢資料庫的頁面、讀寫硬碟檔案的等。通過cc攻擊,使用爬蟲對某些載入需要消耗大量資源的頁面發起http請求。

slowloris

  這是由於webserver中介軟體漏洞引發的拒絕服務攻擊,其原理是以極低的速度往伺服器傳送HTTP請求。apache等中介軟體預設會設定最大併發連結數,而這種攻擊就是會持續保持連線,導致服務飽和不可用。slowloris有點類似基於HTTP協議的SYN flood攻擊。

poc

構造以下畸形http請求包

GET / HTTP/1.1\r\n
Host: Victim host\r\n
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12)\r\n
Content-Length: 42\r\n

完整的http請求頭結尾應該是兩次的\r\n\r\n,這裡少了一次,因此伺服器將會一直等待。

HTTP POST DOS

  其原理是在傳送HTTP POST包時,指定一個非常大的Content-Length值,然後以極低的速度發包,保持連線不斷,導致服務飽和不可用。

poc

構造以下畸形http請求包

GET / HTTP/1.1\r\n
Host: Victim host\r\n
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12)\r\n
Content-Length: 9999999999\r\n\r\n

Slow Read attack

  Slow Read attack攻擊方式是採用調整TCP協議中的滑動視窗大小,來對伺服器單次傳送傳送的資料大小進行控制,使得伺服器需要對一個回應分成很多個包來傳送。

Server Limit Dos

  這是由於cookie導致的dos攻擊,當然其原理還是基於webserver的特性。apache預設最大的http包頭長度為8192位元組,如果超出此長度,則會返回4xx錯誤。如果我們利用儲存型xss漏洞,將一個超長的cookie寫入客戶端頁面,則使用者再訪問此頁面後,由於請求頭載入了惡意的超長cookie,導致其不能訪問該站的頁面(除非清空cookie)

ReDos

  這是由於程式碼寫得有缺陷,導致使用正則時,會出現大量佔用資源的情況,導致服務不可用,這是利用了正規表示式在匹配時的某些特性決定的。

應用層DDos防禦

  • 判斷User-Agent欄位(不可靠,因為可以隨意構造)
  • 網頁中鑲嵌js程式碼(不可靠,因為爬蟲也可攜帶瀏覽器引擎,或者執行js程式碼)
  • 針對ip+cookie,限制訪問頻率(由於cookie可以更改,ip可以使用代理,或者肉雞,也不可靠)
  • 關閉apache最大連線數等,合理配置中介軟體,緩解ddos攻擊。
  • 頁面中新增驗證碼,比如搜尋資料庫時。
  • 編寫程式碼時,儘量實現優化,併合理使用快取技術,減少資料庫的讀取操作。

  應用層的防禦有時比網路層的更難,因為導致應用層被dos攻擊的因素非常多,有時往往是因為程式設計師的失誤,導致某個頁面載入需要消耗大量資源,有時是因為中介軟體配置不當等等。而應用層DDos防禦的核心就是區分人與機器(爬蟲),因為大量的請求不可能是人為的,肯定是機器構造的。因此如果能有效的區分人與爬蟲行為,則可以很好地防禦此攻擊。

無線DDOS

@更新於2017年5月31日
參考:http://www.freebuf.com/articles/wireless/135598.html

Auth Flood攻擊

Auth Flood攻擊:即身份驗證洪水攻擊。該攻擊目標主要針對那些處於通過驗證、和AP建立關聯的關聯客戶端,攻擊者將向AP傳送大量偽造的身份驗證請求幀(偽造的身份驗證服務和狀態程式碼),當收到大量偽造的身份驗證請求超過所能承受的能力時,AP將斷開其他無線服務連線。

Deauth Flood攻擊

Deauth Flood攻擊即為取消驗證洪水攻擊,它旨在通過欺騙從AP到客戶端單播地址的取消身份驗證幀來將客戶端轉為未關聯/未認證的狀態。對於目前的工具來說,這種形式的攻擊在打斷客戶無線服務方面非常有效和快捷。一般來說,在攻擊者傳送另一個取消身份驗證幀之前,客戶端會重新關聯和認證以再次獲取服務。攻擊者反覆欺騙取消身份驗證幀才能使所有客戶端持續拒絕服務。

Association Flood攻擊

Association Flood攻擊即為關聯洪水攻擊。在無線路由器或者接入點內建一個列表即為連線狀態表,裡面可顯示出所有與該AP建立連線的無線客戶端狀態。它試圖通過利用大量模仿和偽造的無線客戶端關聯來填充AP的客戶端關聯表,從而達到淹沒AP的目的。
由於開放身份驗證(空身份驗證)允許任何客戶端通過身份驗證後關聯。利用這種漏洞的攻擊者可以通過建立多個到達已連線或已關聯的客戶端來模仿很多客戶端,從而淹沒目標AP的客戶端關聯表。

Disassociation Flood攻擊

Disassociation Flood攻擊即為取消關聯洪水攻擊,和deauthenticaiton flood攻擊表現方式很相似。它通過欺騙從AP到客戶端的取消關聯幀來強制客戶端成為未關聯/未認證的狀態。一般來說,在攻擊者傳送另一個取消關聯幀之前,客戶端會重新關聯以再次獲取服務。攻擊者反覆欺騙取消關聯幀才能使客戶端持續拒絕服務。
Disassociation Broadcast攻擊和Disassociation Flood攻擊原理基本一致,只是在傳送程度及使用工具上有所區別,前者很多時候用於配合進行無線中間人攻擊,而後者常用於目標確定的點對點無線DOS,比如破壞或干擾指定機構或部門的無線接入點等。

RF Jamming攻擊

RF Jamming攻擊即為RF干擾攻擊。該攻擊是通過發出干擾射頻達到破壞正常無線通訊的目的。而前面幾種攻擊主要是基於無線通訊過程及協議的。RF為射頻,主要包括無線訊號發射機及收信機等。

相關文章