DNS DDOS 攻擊 - 想了解日誌

DNS DDOS 攻擊 - 想了解日誌

作為 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。

答案1

BIND 查詢日誌格式

您關注艾倫·克萊格 (ISC) 了嗎?BIND 日誌記錄幻燈片?第 16 頁指出不正確地

回應發送到的地址(在括號中)

BIND 9 管理員參考手冊告訴我們,它其實是詢問已發送,即您的 DNS 伺服器的 IP 位址。手冊結構不是最容易閱讀或參考的,因此這裡是相關文件的完整路徑:

  • 從參考手冊版本 9.14.11 開始,
    • 第 5 章 BIND 9 配置參考,
      • 設定檔語法,

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

  1. 查詢日誌條目首先以@0x<hexadecimal-number>格式報告客戶端物件識別碼。
  2. 接下來,它會報告客戶端的 IP 位址和連接埠號,以及
  3. 查詢名稱、類別和類型。
  4. 接下來,報道
  • 是否設置了 Recursion Desired 標誌(+如果設置,-如果未設置),
  • 查詢是否已簽署 ( S),
  • EDNS 是否正在使用以及 EDNS 版本號 ( E(#)),
  • 是否使用 TCP ( T),
  • 是否設定了 DO (DNSSEC Ok) ( D),
  • 是否設定了 CD(檢查停用)( 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 位址設定為目標(受害者)的位址。 。由於欺騙性來源,回復實際上被發送到目標。 - -

如果/當未請求的 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語句定義和用法回應率限制。在那裡你可以找到

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

相關內容