漏洞簡介:
該漏洞為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 查詢結果
- 同傳統的防護策略採用流量黑白名單進行