DNSpooq:dnsmasq 中發(fā)現(xiàn)了7個安全漏洞
JSOF 研究人員在開源DNS 轉發(fā)軟件dnsmasq 中發(fā)現(xiàn)了7個安全漏洞,漏洞影響使用dnsmasq的約40個廠商和產(chǎn)品。
Dnsmasq
Dnsmasq是用來緩存DNS響應的一款非常流行的軟件。本地保存之前收到的DNS請求響應可以加速DNS解析過程。Dnsmasq廣泛應用于網(wǎng)絡設備和小型網(wǎng)絡中。Dnsmasq還可以提供DNS服務來支持WiFi熱點、企業(yè)級訪客網(wǎng)絡等。
DNSpooq漏洞
DNSpooq漏洞可以分為兩種類型:
- DNS 緩存投毒漏洞,可以引發(fā)DNS緩存投毒;
- 緩存溢出漏洞,可以引發(fā)遠程代碼執(zhí)行。
DNS緩存投毒漏洞
DNS緩存投毒攻擊可以破壞使用dnsmasq的企業(yè)或設備的DNS查詢。也就是或,攻擊者可以路由到特點網(wǎng)站的通信。DNSpooq 緩存投毒漏洞的CVE編號為CVE-2020-25686、CVE-2020-25684和CVE-2020-25685。
漏洞會減少TXID或源端口的熵。本來應該是隨機化的和提供32位的熵,但是由于使用弱哈希來識別DNS查詢,以及請求和響應的寬松匹配,熵值大量減少,只有約19位需要猜測,使得緩存投毒成為可能。Dnsmasq處理CNAME 記錄的方式也使得攻擊者可以偽造CNAME 記錄鏈,同時對9個DNS記錄有效投毒。為了執(zhí)行該攻擊,攻擊者需要進行一些比較復雜的設備。對緩存投毒來說,不使用Dnsmasq 緩存特征的設備的影響比較小。
緩存溢出漏洞
4個緩存溢出漏洞分別是CVE-2020-25687、CVE-2020-25683、CVE-2020-25682和CVE-2020-25681。最嚴重的漏洞會引發(fā)有漏洞的設備上的遠程代碼執(zhí)行,但是緩存溢出漏洞的作用非常有限,一旦與緩存投毒漏洞相結合就會引發(fā)潛在的攻擊方式。
緩存溢出漏洞中含有一個高危的基于堆的緩存溢出漏洞,在dnsmasq配置為使用DNSSEC時可能會引發(fā)遠程代碼執(zhí)行。該漏洞存在于DNSSEC 驗證的早期階段,使得DNSSEC的防御對于DNS無效。在DNSSEC使用時,其他基于堆的緩存溢出漏洞只能引發(fā)DOS攻擊。
攻擊場景
目前有大約100萬的dnsmasq服務器是互聯(lián)網(wǎng)可訪問的,通過互聯(lián)網(wǎng)的攻擊是非常容易的。根據(jù)設備配置情況可能會引發(fā)許多可能的攻擊場景:
(1) DNS緩存投毒:路由設備DNS轉發(fā)服務器的DNS緩存投毒可能會引發(fā)不同類型的欺詐,因為用戶可能會被路由到一個惡意網(wǎng)站。
可能被破壞的流量包括普通的互聯(lián)網(wǎng)流量,也包括郵件、SSH、遠程桌面、RDP視頻和音頻通話、軟件更新等流量。
(2) 設備接管:除了緩存投毒外,每個可以進行DNS緩存投毒的設備都可能會被攻擊者接管。比如對路由器設備,攻擊者可以完全控制進出網(wǎng)絡的所有流量。
此外,攻擊者還有可能會發(fā)起其他攻擊,比如:
(A) 大規(guī)模DDOS攻擊:到攻擊者控制的網(wǎng)站的大量web流量可以用來生成大量基于JS的DDOS攻擊。
(B) 反向DDOS: 攻擊者可以防止特定用戶訪問網(wǎng)站或登陸特定域名。
(C) 蠕蟲攻擊:攻擊者可以在無需用戶交互的情況下在有漏洞的設備中傳播。之前在使用受感染的dnsmasq 服務器的網(wǎng)絡中的移動設備會接收到一個惡意的DNS記錄。當設備進入新的網(wǎng)絡后,就會感染新的網(wǎng)絡。
總結
近年來,研究人員發(fā)現(xiàn)了DNS中的許多漏洞,DNSpooq 證明DNS的實現(xiàn)仍然是不安全的。雖然也開發(fā)了許多的DNS的安全增強價值,但DNSSEC這樣的安全機制仍然美元大規(guī)模部署。
完整技術報告參見:
https://www.jsof-tech.com/wp-content/uploads/2021/01/DNSpooq_Technical-Whitepaper.pdf
本文翻譯自:https://www.jsof-tech.com/disclosures/dnspooq/