JSOF 研究人员正在开源DNS 转发软件dnsmasq 发现7个安全漏洞,影响使用dnsmasq约40家制造商和产品。
Dnsmasq
Dnsmasq是用来缓存DNS一个非常流行的响应软件。本地保存之前收到的DNS可以加速请求响应DNS解析过程。Dnsmasq广泛应用于网络设备和小型网络。Dnsmasq还可以提供DNS服务来支持WiFi热点、企业访客网络等。
DNSpooq漏洞
DNSpooq漏洞可分为两类:
- DNS 缓存投毒漏洞,可以引发DNS缓存投毒;
- 远程代码执行可以导致缓存溢出漏洞。
DNS缓存投毒漏洞
DNS缓存投毒攻击可以破坏dnsmasq企业或设备DNS查询。也就是说,攻击者可以通过通信到特征网站。DNSpooq 缓存投毒漏洞CVE编号为CVE-2020-25686、CVE-2020-25684和CVE-2020-25685。
漏洞会减少TXID或源端口的熵。本来应该是随机的,提供32位熵,但是用弱哈希来识别DNS以及宽松匹配的请求和响应,熵大大降低,只有大约19人需要猜测,使缓存投毒成为可能。Dnsmasq处理CNAME 记录的方式也使攻击者能够伪造CNAME 同时记录9条链DNS记录有效的毒。攻击者需要一些复杂的设备来执行攻击。缓存投毒不使用Dnsmasq 具有缓存特性的设备影响较小。
缓存溢出漏洞
4缓存溢出漏洞分别是CVE-2020-25687、CVE-2020-25683、CVE-2020-25682和CVE-2020-25681。最严重的漏洞会导致设备上有漏洞的远程代码执行,但缓存溢出漏洞的作用非常有限,一旦与缓存中毒漏洞结合,就会导致潜在的攻击。
在dnsmasq配置为使用DNSSEC可能导致远程代码执行。这个漏洞存在于DNSSEC 验证的早期阶段使DNSSEC的防御对于DNS无效。在DNSSEC使用时,基于堆的其他缓存溢出漏洞只会引起DOS攻击。
攻击场景
目前,约有100万元dnsmasq互联网可以访问服务器,通过互联网攻击非常容易。根据设备配置可能会导致许多可能的攻击场景:
(1) DNS缓存投毒:路由设备DNS转发服务器DNS缓存投毒可能会导致不同类型的欺诈,因为用户可能会被路由到恶意网站。
可能被破坏的流量包括普通的互联网流量和电子邮件SSH、远程桌面、RDP视频、音频通话、软件更新等流量。
(2) 设备接管:除缓存投毒外,每个都可以进行DNS攻击者可以接管缓存投毒设备。例如,对于路由器设备,攻击者可以完全控制进出网络的所有流量。
此外,攻击者还可能发起其他攻击,如:
(A) 大规模DDOS攻击:攻击者控制的大量网站web流量可以用来产生大量的基础JS的DDOS攻击。
(B) 反向DDOS: 攻击者可以防止特定用户访问网站或登录特定域名。
(C) 蠕虫攻击:攻击者可以在有漏洞的设备中传播,无需用户交互。以前使用过感染dnsmasq 服务器网络中的移动设备将收到恶意DNS记录。当设备进入新网络时,会感染新网络。
总结
近年来,研究人员发现DNS许多漏洞,DNSpooq 证明DNS实现仍然不安全。虽然也开发了很多DNS但是DNSSEC这种安全机制仍在大规模部署美元。
参见完整技术报告:
https://www.jsof-tech.com/wp-content/uploads/2021/01/DNSpooq_Technical-Whitepaper.pdf
本文翻译自:https://www.jsof-tech.com/disclosures/dnspooq/