漏洞簡介:
該漏洞為DNS 放大攻擊,是 DDoS 攻擊,攻擊者利用 DNS 服務器中的漏洞將小查詢轉換為可能破壞目標服務器的更大負載。
在 NXNSAttack 的情況下,遠程攻擊者可以通過向易受攻擊的解析器發送 DNS 查詢來放大網絡流量,而要查詢的權威域名服務器由攻擊者所控制。攻擊者的服務器響應虛假域名服務器名稱(NS記錄)指向受害者 DNS 域,導致解析器生成對受害者 DNS 服務器的查詢。攻擊可導致放大系數超過 1620。
DNS解析過程:
假設從瀏覽器訪問www.mircrosoft.com,需要去得到它的ip地址。首先是查看自己的瀏覽器緩存,再查看存根解析器(OS內)的緩存,如果有轉發器,還會去查看轉發器的緩存,再去查看遞歸解析器的緩存。①遞歸解析器向根域名服務器發出查詢。②根域名服務器作出NS 響應,告訴.com域 的頂級域名服務器。③遞歸解析器接着向.com頂級域名服務器發出查詢。④DNS頂級域名服務器 進行NS記錄的響應,告訴microsoft.com 的權威域名服務器的地址。⑤DNS解析器向 權威域名服務器發出查詢,權威域名服務器,作出A記錄的響應。
具體解析過程,可看博客之前DNS的相關內容。
攻擊原理:
1.攻擊者作為客戶端,向解析器發出查詢rand123.sub.attacker.com 的ip地址
2.解析器向攻擊者控制的權威域名服務器發出查詢。
3.攻擊者控制權威域名服務器,應答好多個rand x.vitcim.com 假冒的ns記錄,指向受害者的域名。
4.解析器根據返回的ns記錄向受害者權威域名服務器做出查詢。大大占用受害者的資源,形成放大攻擊,可造成DDOS攻擊。
復現代碼:
poc:https://github.com/sischkg/nxnsattack
防御措施:
在流量設備側對DNS響應包中對滿足如下條件的包進行攔截
- 含有大量的NS轉發查詢請求
- 復數指向同一服務器的二級/多級子域名請求
不響應非信任服務器的 DNS 查詢結果
- 同傳統的防護策略采用流量黑白名單進行