使用 ntp 伺服器進行 DDOS

使用 ntp 伺服器進行 DDOS

我聽說過新型 DDOS,其中ntp用於反射

我的問題很簡單:

  1. 您能否詳細說明它們的工作原理並進行澄清?由於 ntp 是透過 UDP 運作的,我想某處一定存在某種偽造的資料包?

  2. 如何徹底檢查某些 ntp 伺服器是否易受攻擊(並且不能參與任何攻擊)?

  3. 如果我們成為此類攻擊的目標,​​有什麼辦法可以緩解?


由於這種攻擊在2014年已經被廣泛使用,這裡有一些更多的細節:

預防和緩解此類問題的簡單方法是預設監聽 127.0.0.1?我想這對於任何服務都是如此(bind9,mysql,...)?

答案1

這些攻擊已經存在很長時間了,最近幾個月才再次流行起來。它們的運作方式與任何常規放大攻擊類似:主機欺騙查詢,使來源 IP 位址看起來像是目標主機。 NTP 伺服器將其應答傳送到欺騙的位址。由於特定查詢類型的答案可能非常大且通常是 UDP,因此這很快就會成為目標主機的問題:它正被 NTP 封包淹沒。

不幸的是,這不是 NTP 伺服器中的漏洞,它只是一個被濫用的功能。需要考慮的一件事是您是否需要運行可以從整個互聯網查詢的 NTP 伺服器。如果不需要,請建立存取清單或防火牆策略來封鎖來自不受信任來源的查詢。然後,您可以透過從不受信任的來源進行 NTP 查詢來檢查您的 NTP 伺服器是否容易受到攻擊,並驗證您是否得到答案。但不幸的是,有相當多的 NTP 伺服器是故意公開的(例如 中的所有伺服器pool.ntp.org)。如果您需要執行公用 NTP 伺服器,可以考慮實作查詢速率限制,以減少濫用情況下對目標主機的影響。

該解決方案的另一個更通用的部分是網路需要實現BCP38,這告訴他們過濾離開網路的流量,因此不可能發送欺騙資料包。不幸的是,仍然有大量網路沒有實現這種過濾,因此所有使用欺騙來源資料包(使用任何協議,如 NTP、DNS 或 chargen)的攻擊仍然是可能的。

您可以採取哪些措施來減輕此類攻擊,這在一定程度上取決於您的網路和可用工具,但您應該考慮的一件事是阻止來自不受信任來源的傳入NTP 封包(因此請檢查您正在使用哪些NTP 伺服器)。當然,如果您的上行鏈路擁塞,這並沒有幫助。在這種情況下,您需要請 ISP 協助您過濾流量。

答案2

我的回答:

  1. 攻擊使用 monlist 指令(在 tcpdump 中將顯示為 ntpv2 保留)。這些命令不受正常速率限制的速率限制。 Monlist(和其他監控命令)只能在允許「查詢」伺服器的 IP 上工作,因此將「noquery」新增至預設值。
  2. 嘗試從外部 IP 執行 ntpdc -nc monlist yourip 來查看您的伺服器是否應答。
  3. 對傳入的 ntp 流量進行速率限制。不是在 ntpd 本身中,而是在它到達守護程序之前。如何在 Linux 中進行設定的討論見ntp 池郵件清單中的“我的速率限制設定”

答案3

  1. 您能否詳細說明它們的工作原理並進行澄清?由於 ntp 是透過 UDP 運作的,我想某處一定存在某種偽造的資料包?

US-CERT 在“警報 (TA14-017A) 基於 UDP 的放大攻擊“ 和 ”警報 (TA14-013A) 使用 CVE-2013-5211 的 NTP 放大攻擊」。

TA14-013A 說得最好:

描述

從設計上來說,UDP 是一種無連接協議,不驗證來源 IP 位址。除非應用層協定使用諸如會話發起之類​​的對策,否則很容易偽造IP分組資料封包以包含任意來源IP位址[7]。當許多 UDP 封包的來源 IP 位址被偽造為單一位址時,伺服器會回應該受害者,從而建立反射拒絕服務 (DoS) 攻擊。

最近,某些 UDP 協定被發現對某些比初始請求大得多的命令有特定的回應。以前,攻擊者進行 DoS 攻擊時受到直接發送到目標的資料包數量的線性限制,而現在單一資料包可以在其回應中產生數十或數百倍的頻寬。這稱為放大攻擊,當與大規模反射 DoS 攻擊結合使用時,可以相對容易地進行 DDoS 攻擊。

包含的有關「頻寬放大係數 (BAF)」的圖表顯示 NTP 表現出最差的行為。由於 NTP 是一種極其常見的協議,並且許多 Linux 作業系統都附帶了活動的 NTP 伺服器,因此這個問題特別嚴重。

相關內容