NTP 放大 DDoS 攻擊

一種利用 NTP 協議漏洞的容量耗盡型 DDoS 攻擊,旨在以 UDP 流量淹沒某個伺服器。

學習目標

閱讀本文後,您將能夠:

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

相關內容


想要繼續瞭解嗎?

訂閱 TheNET,這是 Cloudflare 每月對網際網路上最流行見解的總結!

請參閱 Cloudflare 的隱私權政策,了解我們如何收集和處理您的個人資料。

複製文章連結

什麼是 NTP 放大攻擊?

NTP 放大攻擊是一種基於反射的容量耗盡分散式拒絕服務(DDoS)攻擊。在這種攻擊中,攻擊者利用一種網路時間協定 (NTP) 伺服器功能,發送放大的 UDP 流量,使目標網路或伺服器不堪重負,導致正常流量無法到達目標及其周圍基礎設施。

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

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

DNS 洪水攻擊不同於 DNS 放大攻擊。與 DNS 洪水攻擊不同,DNS 放大攻擊反射並放大不安全 DNS 伺服器的流量,以便隱藏攻擊的來源並增加攻擊的有效性。DNS 放大攻擊使用連接頻寬較小的設備向不安全的 DNS 伺服器發送無數請求。這些設備對非常大的 DNS 記錄發出小型請求,但在發出請求時,攻擊者將返回位址偽造為目標受害者的位址。這種放大效果讓攻擊者能借助有限的攻擊資源來破壞較大的目標。

NTP 放大與 DNS 放大非常相似,可比作一個懷有惡意的青少年電話給一個餐廳說,「我要每樣東西都點一份,請給我回電並告訴我整個訂單的內容。」餐廳要求提供回撥號碼時,所給號碼就是目標受害人的手機號碼。然後目標會接到來自餐廳的電話,提供他/她並不需要的大量信息。

網路時間協定(NTP)旨在允許連接到網際網路的設備同步其內部時鐘,在網際網路架構中發揮重要作用。通過利用某些 NTP 伺服器啟用的 monlist 命令,攻擊者能夠成倍放大其初始請求流量,導致大型回應。這個命令在一些較老的設備上預設啟用,返回發送到 NTP 伺服器的請求中的最後 600 個源 IP 位址。針對伺服器記憶體中 600 個位址的 monlist 請求將比初始請求大 206 倍。這意味著,攻擊者使用 1 GB 網際網路流量就能發動一次超過 200 GB 的攻擊——所產生的攻擊流量大幅增加。

NTP 放大攻擊可分爲四步:

  1. 攻擊者使用僵屍網路將帶有偽造 IP 位址的 UDP 包發送到啟用了 monlist 命令的 NTP 伺服器。每個包的偽造 IP 位址都指向受害者的真實 IP 地址。
  2. 每個 UDP 包都使用 monlist 指令向 NTP 伺服器發出請求,導致大量回應。
  3. 然後伺服器將生成的數據返回僞造的 IP 地址。
  4. 目標的 IP 位址接收響應,其周邊的網路基礎設施被大量流量淹沒,從而導致阻斷服務。
NTP 放大 DDoS 攻擊

由於攻擊流量看起來像來自有效伺服器的合法流量,很難在不阻止 NTP 合法活動的情況下緩解這種攻擊流量。因爲 UDP 包不需要握手,NTP 伺服器將向目標伺服器發送大量響應,而不會驗證請求是否真實。這些事實加上默認發送大量響應的內置指令,使得 NTP 伺服器成爲 DDoS 攻擊的絕佳反射源。

如何緩解 NTP 放大攻擊?

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

禁用 monlist —— 減少支持 monlist 指令的 NTP 伺服器數量。

修補 monlist 漏洞的一種簡單解決方案是禁用這個指令。早於 4.2.7 版的所有版本 NTP 軟件都容易受到攻擊。將 NTP 伺服器升級到 4.2.7 或更高版本即可禁用這個指令,從而修補該漏洞。如果不可能進行升級,遵循 US-CERT 說明將允許伺服器管理員進行必須的修改。

源 IP 驗證 —— 阻止僞造數據包離開網絡。

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

禁用 NTP 伺服器上的 monlist 並在當前允許 IP 欺騙的網路上實施入口篩選,這是阻止此類攻擊到達其目標網路的有效方法。

Cloudflare 如何緩解 NTP 放大攻擊?

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