2015年7月27日 星期一

《DDoS分散式阻斷服務攻擊深度解析》筆記

1.殭屍網路的組建:

(1)節點:
  • PC
  • 伺服器
  • 移動設備
(2)控制(參考資料):
  • IRC:為當主機受到感染成為 Bot,Bot 會嘗詴連線到 IRC 協定的封包所預先定義的 IRC 伺服器,並加入聊天頻道等候 Botmaster 的命令;當接收到命令時,Bot 即會對目標發動攻擊行為,再將結果回傳於頻道上。
  • HTTP:當主機遭感染成為了 Bot 後,Bot 會連向 Botmaster 所指定的 C&C Server 註冊並 等候命令,Botmaster 將可以控制這群 Bot 進行管理與攻擊的動作,再經由 Bot 將攻擊的結果回報給 C&C Server。
  • P2P:透過一組同儕清單(Peer List)連線至殭屍網路,Client Bot 便可以從 Server Bot 下載特定檔案執行,取得 Botmaster 的命令。

2.攻擊網路頻寬資源

(1)反射和放大攻擊分散式阻斷服務攻擊(DRDos):利用路由器、伺服器等設施對請求產生應答,從而反射攻擊流量並隱藏來源。

其特別之處在於目的 IP 位址指向反射器的伺服器,來源 IP 位址被偽造成被攻擊目標的 IP 位址。

(2)ACK 反射攻擊:攻擊者將 SYN 的來源 IP 位址偽造成被攻擊目標的 IP 位址,伺服器的應答就會直接發送給被攻擊目標。

(3)DNS 放大攻擊:攻擊者偽造被攻擊目標的 IP 位址,向開放 DNS 解析器發送 dig 查詢,伺服器的應答就會直接發送給攻擊目標。更有效的方法是利用 EDNS0(參考資料)。攻擊者能利用dig(Domain Information Groper)和 EDNS0 進行高效的放大攻擊。

(4)NTP 放大攻擊:攻擊者偽造被攻擊目標的 IP 位址,向 NTP 伺服器發送 monlist 請求,伺服器的應答就會直接發送給攻擊目標。

(5)SNMP 放大攻擊:攻擊者偽造被攻擊目標的 IP 位址,向網路設備發送 GetBulk 請求,伺服器的應答就會直接發送給攻擊目標。

(6)攻擊鏈路(Coremelt 攻擊):首先,攻擊者透過 traceoute 等手段判斷各個殭屍主機和將要攻擊鏈路之間的位置關係,並根據結果將殭屍主機分為兩個部分。然後,攻擊者控制殭屍主機,使其與鏈路另一側的每一台殭屍主機進行通訊並收發大量資料。如此一來,大量的網路封包就會經過骨幹往上的被攻擊鏈路。


3.攻擊系統資源:

(1)TCP 連接洪水攻擊:建立大量惡意的 TCP 連接,占滿被攻擊目標的連接表,使目標無法接受新的 TCP 連接請求。

(2)SYN 洪水攻擊:發送大量的 TCP SYN 封包,使伺服器打開大量的半開連接,占滿伺服器的連接表,從而影響使用者與伺服器建立對話。更好的方式,是攻擊者將 SYN 封包的來源 IP 位址隨機偽造成其他主機的 IP 位址或不存在的 IP 位址,從而占用連接資源並隱藏攻擊者來源。

(3)PSH + ACK 洪水攻擊:發送大量的 PSH + ACK 資料包,以使攻擊目標消耗大量的系統資源不斷地進行接收緩衝區的清空處理。更有效的方式,是利用 SYN 洪水攻擊與 ACK 洪水攻擊相結合。

(4)RST 洪水攻擊:發送偽造的帶有 RST 標誌位元的 TCP 封包,強制中斷使用者端與伺服器的 TCP 連接。

(5)Stockstress 攻擊:
  • 攻擊者在三次握手的最後一次 ACK 應答中,將其 TCP 視窗大小設定為 0,隨後進行一次資料請求,使攻擊目標一直維持 TCP 連接等待資料發送,並不斷進行視窗更新的探測。
  • 將 TCP 視窗設定為一個非常小的值,使攻擊目標不得不把需要發送的資料切分成大量的分片,以消耗目標的資源。

(6)THC SSL Dos 攻擊:在進行 SSL 連接並握手後,攻擊者不斷地進行金鑰重新協商過程,以消耗攻擊目標資源。

(7)SSL 洪水攻擊:利用 SSL 握手過程中,伺服器會對有效、無效的資料進行解密的特性。最好在資料傳輸之前,進行 SSL 握手的過程中發動攻擊。


4.攻擊應用資源:

(1)DNS QUERY 攻擊:不斷發送不同網域名稱的解析請求,以刷新 DNS 伺服器的快取,進而消耗資源。要點在於每一個 DNS 解析請求所查詢的網域名稱應是不同的,如此可避開 DNS 伺服器快取中的解析記錄,達到更好的資源消耗效果。

(2)DNS NXDOMAIN 洪水攻擊:同 DNS QUERY 攻擊,差異在於 NXDOMAIN 是查詢不存在的網域名稱。當 DNS 伺服器獲取不到網域名稱的解析結果時,還會再次進行遞迴查詢,更加重了資源的消耗。

(3)HTTP 洪水攻擊:發送大量 HTTP 請求給 Web 伺服器,使其不斷地進行身分驗證、資料庫查詢、文件存取的功能。

(4)Slowloris 攻擊:緩慢地發送無用的 header 欄位,並且一直不發送「\r\n\r\n」結束標誌,以長時間占用 Web 伺服器並保證該連接不會超時而被中斷。

(5)慢速 POST 請求攻擊:在請求標頭中將 Content-Length 設定為一個很大的值,並將 HTTP BODY 以非常緩慢的速度,一個位元組的向 Web 伺服器發送,以長時間佔用此連接。

(6)資料處理過程攻擊:Web 伺服器在收到 HTTP 請求之後,需要檢查並處理其中的資料,透過惡意構建請求資料的內容,攻擊者可以增加資料處理過程中的資源消耗。


5.工具:

(1)綜合性:
  • Hping:ICMP/UDP/SYN
  • PenTBox:SYN/TCP
  • Zarp:SYN

(2)壓力測試:
  • LOIC:UDP/TCP/HTTP GET
  • HOIC:HTTP GET
  • HULK:HTTP GET

(3)專業攻擊:
  • Slowloris:HTTP GET
  • R.U.D.Y.:HTTP POST
  • THC SSL DOS:SSL renegotiation


6.DDos 攻擊的治理:

(1)Open Resolver Project:
  • 限制允許造訪的位址範圍(參考資料
  • 採用 RRL
  • 使用者端設備不應在廣域網路介面監聽 DNS 資料包,包括網路和廣播位址

(2)回應速率限制(RRL,參考資料

(3)NIST SP 800-81:
  • 實施適當的系統和網路安全控制,確保 DNS 託管環境,如作業系統和應用程式安裝補丁程式、進程隔離和網路的容錯性
  • 保護 DNS transaction(參考資料),例如網域名稱解析資料的更新和備份
  • 使用基於非對稱加密的數位簽章以保護 DNS 的請求/應答 transaction(參考資料


7.DDos 攻擊流量的稀釋:

(1)CDN:在網際網路範圍內廣泛設定多個節點作為代理快取,並將使用者的造訪請求導向最近的快取節點,以加快存取速度。可透過智慧 DNS 實現。若攻擊者直接透過 IP 而非網域名稱進行攻擊,則無法進行智慧 DNS 分析,攻擊流量也無法分散到各個 CDN 節點上。

(2)Anycast:網路位址和網路節點是一對多的關係,每一個目的位址對應一群接收節點,但消息只會發送給拓樸結構上最近的節點。透過此技術,一組提供特定服務的主機可以使用相同的 IP 位址,同時,服務造訪方的請求封包將會被 IP 網路路由到這一組目標中拓樸結構最近的一台主機上。


8.DDos 攻擊流量的清洗:

(1)IP 信譽檢查
(2)攻擊特徵匹配
(3)速度檢查與限制
(4)TCP代理與驗證
(5)協定完整性驗證
(6)使用者端真實性驗證

沒有留言:

張貼留言