Domain-Name-System

DNS DDOS 攻擊 - 想了解日誌

  • May 17, 2020

作為 DOOS 攻擊的一部分(很大程度上是無效的),我目前看到以下形式的日誌消息:

<DATE> client <EXTERNAL-IP>#3074 (<NAME>): query: <SAME-NAME> IN RRSIG + (<ONE-OF-MY-IPs>)

我對 DNS 日誌的閱讀表明這是來自 <EXTERNAL-IP> 的查詢,結果將發送到 <ONE-OF-MY-IPs>。那是對的嗎?

我們正在執行一個較舊的 BIND,即將升級,但我希望了解此查詢實際上在做什麼(許多已發送)。

編輯:另外,很高興知道他們如何構造它以將結果發送到另一個 IP。

BIND 查詢日誌格式

您是否在關注 Alan Clegg在 BIND Logging 上的 (ISC) 幻燈片?在第 16 頁上,它錯誤地指出:

發送響應的地址(括號內)

BIND 9 管理員參考手冊告訴它實際上是發送查詢的地址,即****您的 DNS 伺服器的 IP 地址。手冊結構不是最容易閱讀和參考的,因此這裡是相關文件的完整路徑:

  • 從參考手冊版本 9.14.11,

    • 第 5 章 BIND 9 配置參考,

      • 配置文件語法,

更清晰的格式和重點是我的:

  1. 查詢日誌條目首先以@0x&lt;hexadecimal-number&gt;格式報告客戶端對象標識符。
  2. 接下來,它會報告客戶端的 IP 地址和埠號,以及
  3. 查詢名稱、類和類型。
  4. 接下來,它報告
  • 是否設置了 Recursion Desired 標誌(+如果設置,-如果未設置),
  • 查詢是否已簽名 ( S),
  • EDNS 是否與 EDNS 版本號 ( E(#)) 一起使用,
  • 是否使用 TCP ( T),
  • 是否設置了 DO (DNSSEC Ok) ( D),
  • 是否設置了 CD (Checking Disabled) ( C),
  • 是否收到了有效的 DNS 伺服器 COOKIE ( V),以及
  • 是否存在沒有有效伺服器 COOKIE 的 DNS COOKIE 選項 ( K)。
  1. 在此之後,報告發送查詢的目標地址。
  2. 最後,如果客戶端查詢中存在任何 CLIENT-SUBNET 選項,它會包含在格式中的方括號中[ECS address/source/scope]

所以在:

info: client @0xf00 203.0.113.88#3074 (example.com): query: example.com IN RRSIG + (192.0.2.1)
  • 203.0.113.88#3074是客戶端的IP地址和埠
  • example.com是查詢名稱、IN類和RRSIG類型 ( RFC 4034, 3 )
  • +告訴客戶要求遞歸
  • 192.0.2.1是查詢發送到的 DNS 伺服器的 IP 地址

DNS 放大攻擊以及如何緩解它們

此日誌條目本身沒有 DDoS 攻擊的跡象,並且響應被發送回客戶端203.0.113.88#3074。如果客戶端 IP 地址被欺騙,那麼放大攻擊就是對查詢的響應RRSIG比原始查詢大得多。

…攻擊者導致 UDP DNS 查詢被發送到反射解析器,查詢的源 IP 地址設置為目標(受害者)的地址。反射伺服器處理遞歸查詢並將響應發送到他們認為查詢源自的 IP 地址。由於欺騙的來源,回复實際上被發送到目標。- -

如果/當它們到達目標機器時,未請求的 DNS 響應將被丟棄,但到它們完成時,它們已經消耗了目標機器上的網路資源和一小部分 CPU 時間。

為了減輕這種情況,根據您的情況:

沒有開放的遞歸名稱服務

權威名稱伺服器不得提供遞歸名稱服務。這個要求是通過在權威的管轄範圍之外發送一個設置了“RD”位的查詢來測試的。

如果這是一個遞歸名稱伺服器,請將訪問權限限制在您自己的應該被允許使用此服務的網路中。這可以通過allow-query或來完成allow-recursion

allow-recursion

指定允許哪些主機通過此伺服器進行遞歸查詢。如果allow-recursion未設置則allow-query-cache使用如果設置,否則allow-query使用如果設置,否則使用預設值 ( localnets; localhost;)。

要使 RRL 能夠防禦這種情況,請編輯named.conf以下rate-limit子句並將其添加到全域選項中:

options {
         … 
          rate-limit {
              responses-per-second 10;
          };
      };

options這在Statement Definition and Usage : Response Rate Limiting下的官方文件中有更詳盡的解釋。在那裡你可以找到

- why and how to use `slip` to truncate responses (done by default with value `2`)
- use `qps-scale` to tighten defenses during attacks.

引用自:https://serverfault.com/questions/1017463