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。
BIND 查詢日誌格式
您是否在關注 Alan Clegg在 BIND Logging 上的 (ISC) 幻燈片?在第 16 頁上,它錯誤地指出:
發送響應的地址(括號內)
BIND 9 管理員參考手冊告訴它實際上是發送查詢的地址,即****您的 DNS 伺服器的 IP 地址。手冊結構不是最容易閱讀和參考的,因此這裡是相關文件的完整路徑:
從參考手冊版本 9.14.11,
第 5 章 BIND 9 配置參考,
配置文件語法,
logging
語句定義和用法,
category
片語, _
queries
更清晰的格式和重點是我的:
- 查詢日誌條目首先以
@0x<hexadecimal-number>
格式報告客戶端對象標識符。- 接下來,它會報告客戶端的 IP 地址和埠號,以及
- 查詢名稱、類和類型。
- 接下來,它報告
- 是否設置了 Recursion Desired 標誌(
+
如果設置,-
如果未設置),- 查詢是否已簽名 (
S
),- EDNS 是否與 EDNS 版本號 (
E(#)
) 一起使用,- 是否使用 TCP (
T
),- 是否設置了 DO (DNSSEC Ok) (
D
),- 是否設置了 CD (Checking Disabled) (
C
),- 是否收到了有效的 DNS 伺服器 COOKIE (
V
),以及- 是否存在沒有有效伺服器 COOKIE 的 DNS COOKIE 選項 (
K
)。
- 在此之後,報告發送查詢的目標地址。
- 最後,如果客戶端查詢中存在任何 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 時間。
為了減輕這種情況,根據您的情況:
- 如果這是權威伺服器,則不允許開放遞歸。這直接來自 IANA對權威域名伺服器的技術要求:
沒有開放的遞歸名稱服務
權威名稱伺服器不得提供遞歸名稱服務。這個要求是通過在權威的管轄範圍之外發送一個設置了“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.