DNS 放大攻擊

DNS 是放大一種 DDoS 攻擊,它利用 DNS 解析器產生大量流量,使受害者不堪重負。

學習目標

閱讀本文後,您將能夠:

  • 定義 DNS 放大攻擊
  • 解釋 DNS 放大攻擊的原理
  • 了解針對 DNS 放大攻擊的一些緩解策略

複製文章連結

什麼是 DNS 放大攻擊?

這種 DDoS 攻擊是基於反射的大規模分散式阻斷服務 (DDoS) 攻擊,其中,攻擊者利用開放 DNS 解析器的功能產生大量流量,使目標伺服器或網路不堪重負,導致伺服器及其周圍基礎設施無法存取。

DNS 放大攻擊的原理是什麼?

所有放大攻擊都利用攻擊者和目標 Web 資源之間的頻寬消耗差異。當消耗差異經過多次請求而被放大時,所產生的流量可導致網路基礎設施中斷。通過發送小型請求來導致大規模回應,惡意用戶就能達到四兩撥千斤的效果。當通過某個僵屍網路中的每個機器人發出類似請求來使這種放大效果倍增時,攻擊者既能躲避檢測,又能收穫攻擊流量大增的好處。

對於 DNS 放大攻擊中的一個機器人,可比作一個懷有惡意的青少年電話給一個餐廳說,「我要每樣東西都點一份,請給我回電並告訴我整個訂單的內容。」餐廳要求提供回撥號碼時,所給號碼就是目標受害人的電話號碼。然後目標會接到來自餐廳的電話,提供其并未請求的大量信息。

由於每個機器人向開放 DNS 解析器提出請求時都提供欺騙性 IP 位址,也就是目標受害者的真實源 IP 位址,目標隨後會收到來自 DNS 解析器的回應。為了產生大量流量,攻擊者會以某種方式來構造請求,以便讓 DNS 解析器產生盡可能大的響應。因此,目標接收攻擊者的初始流量的放大結果,其網路被虛假流量堵塞,導致阻斷服務。

DNS 放大可分為四步:

  1. 攻擊者使用受損的端點將有欺騙性 IP 位址的 UDP 封包發送到 DNS 遞迴程式。封包上的欺騙性位址指向受害者的真實 IP 位址。
  2. 每個 UDP 封包都向 DNS 解析器發出請求,通常傳遞一個參數(例如“ANY”)以接收盡可能最大的回應。
  3. DNS 解析器收到請求後,會向欺騙性 IP 位址發送大規模回應。
  4. 目標的 IP 位址接收響應,其周邊的網路基礎設施被大量流量淹沒,從而導致阻斷服務。

儘管少量請求不足以導致網路基礎設施下線,但在這一過程通過多個請求和 DNS 解析器翻倍後,目標最終接收的資料量變得非常大。進一步瞭解反射攻擊的技術詳情

如何緩解 DNS 放大攻擊?

對於運行網站或服務的個人或公司來說,緩解選擇並不多。這是因為,儘管個人或公司的伺服器可能是攻擊目標,但其並非容量耗盡攻擊影響最大的地方。鑒於攻擊所產生的大量流量,伺服器周圍的基礎設施感受到影響。網際網路服務提供者(ISP)或其他上游基礎設施提供商可能無法處理傳入流量而不堪重負。因此,ISP 可能會將向受害者 IP 位址發送的所有流量傳送到一個黑洞路由,以保護自己並將目標網站下線。除了象 Cloudflare DDoS 防護這樣的異地保護服務外,緩解策略大多是預防性的網際網路基礎設施解決方案。

減少開放 DNS 解析器的總數

DNS 放大攻擊的一個重要組成部分是對開放 DNS 解析器的存取權限。如果網際網路上有配置不當的 DNS 解析器,那麼攻擊者僅僅需要找到這種 DNS 解析器即可利用。理想情況下,DNS 解析器應僅向源自受信任域名的裝置提供服務。對於基於反射的攻擊,開放 DNS 解析器將回應網際網路上任何位置的查詢,因此有可能被利用。限制 DNS 解析器,使其僅回應來自受信任來源的查詢,即可使伺服器無法被用於任何類型的放大攻擊。

源 IP 驗證 —— 阻止僞造封包離開網路。

由於攻擊者僵屍網路發送的 UDP 請求必須有一個偽造為受害者 IP 位址的源 IP 位址,對於基於 UDP 的放大攻擊,降低其有效性的一個關鍵是網際網路服務提供者(ISP)拒絕帶有偽造 IP 位址的所有內部流量。如果一個從網路內部發送的資料包帶有一個看起來像來自網路外部的源位址,那麼它可能是偽造資料包並可被丟棄。Cloudflare 強烈建議所有提供商實施入口篩選,並不時聯繫無意中參與了 DDoS 攻擊的 ISP,幫助其瞭解自己的漏洞。

Cloudflare 如何緩解 DNS 放大攻擊?

擁有正確配置的防火牆和足夠的網路容量(這不一定是易事,除非您達到 Cloudflare 的規模),阻止 DNS 放大攻擊等反射攻擊就易如反掌了。儘管攻擊會針對單一 IP 位址,我們的 Anycast 網路將把所有攻擊流量分散到不再具有破壞力的地步。Cloudflare 能利用其規模優勢來將攻擊的力度分散到眾多資料中心,平衡負載,這樣服務就始終不會中斷,攻擊永遠無法導致目標伺服器的基礎設施超載。在最近一個六個月期間,我們的 DDoS 緩解系統「Gatebot」檢測到 6,329 次簡單反射攻擊(相當於每 40 分鐘一次),我們的網路成功緩解了所有攻擊。進一步瞭解 Cloudflare 的進階 DDoS 防護。