德國資安研究機構同時也是歐洲最大的資安研究中心National Research Center for Applied Cybersecurity ATHENE,發現域名系統安全擴充(Domain Name System Security Extensions,DNSSEC)設計存在一個重大缺陷,允許攻擊者執行KeyTrap攻擊,發送有問題的封包就能讓所有實作DNSSEC驗證的DNS系統,以及公共DNS提供者如Google和Cloudflare癱瘓。

DNSSEC是一系列針對DNS設計的安全擴充,其主要的功能是要保證DNS查詢結果的真實性和完整性。DNS是可以將人類可讀的域名轉換成為機器可讀IP地址的系統,但是原始的DNS並未包含足夠的安全措施,存在DNS污染、中間人攻擊等安全風險,而DNSSEC增加了一系列重要的功能來解決這些問題。

ATHENE團隊所發現的KeyTrap新型攻擊,主要是利用受廣泛使用的DNS服務軟體BIND 9上的高嚴重性漏洞CVE-2023-50387,攻擊者只要使用特別製作的DNSSEC簽章區域回應,就能使DNSSEC驗證解析器CPU資源耗盡。CVE-2023-50387允許攻擊者透過洪水攻擊,攻擊目標解析器,大幅降低解析器的效能,達到阻擋合法用戶存取DNS解析服務的目的。

簡單來說,由於BIND 9在處理DNSSEC簽章區域的回應時存在問題,因此攻擊者只要向DNS發送大量濫用該缺陷的查詢,就可以迅速耗盡DNS解析器的CPU資源,進而導致服務中斷或是效能明顯下降。

CVE-2023-50387漏洞的CVSS分數為7.5,影響多個BIND 9版本,就連受支援的預覽版本也存在該漏洞。雖然透過完全停用DNSSEC驗證就可以免受該漏洞影響,但因為DNSSEC本身就是強化DNS安全的機制,因此停用DNSSEC驗證並非上策。目前更好的做法是更新BIND至9.16.48、9.18.24和9.19.21等版本。

而這些新版本也修正了BIND 9另一個CVSS分數同樣為7.5,作用類似KeyTrap的CVE-2023-50868漏洞,該漏洞會在DNSSEC驗證解析器處理使用NSEC3的DNSSEC簽章區域回應時,發生CPU耗盡的問題。NSEC3是一種DNSSEC的規範,主要用於證明DNS查詢的否定回應,也就是證明特定DNS記錄不存在的狀況,可以提供更好的保護機制避免區域走訪攻擊。

攻擊者同樣也可以利用CVE-2023-50868洪水攻擊目標解析器,由於解析器必須耗費大量CPU資源處理這些查詢,因此同樣也會降低解析器的效能,影響正常的DNS查詢服務。

KeyTrap漏洞並非新漏洞,早在1999年網際網路標準RFC 2535就已經存在,在2012年的時候,該漏洞就已經進入DNSSEC驗證、標準RFC 6781和RFC 6840的實作要求中。至少在2000年8月就已經出現在Bind9 DNS解析器中,並於2007年被帶入Unbound DNS解析器程式碼中。

不過,即便KeyTrap漏洞存在約25年,雖沒有被解決,但也沒有發現積極利用該漏洞的攻擊案例,研究團隊解釋,這其實並不奇怪,因為DNSSEC驗證要求使得要找出這個漏洞變得困難,要利用該漏洞需要結合許多要求。

KeyTrap要解決並不容易,因為KeyTrap的問題並非是軟體實作錯誤,而是DNSSEC設計的根本問題,研究團隊提到,他們一直與主要供應商合作,試圖解決實作的問題,但是要完全解決該漏洞,需要重新思考DNSSEC底層設計理念,也就是需要修改DNSSEC標準。

熱門新聞

Advertisement