JSOF研究人员在开源DNS转发软件dnsmasq中发现了7个安全漏洞,影响了大约40家使用dnsmasq的厂商和产品。DnsmasqDnsmasq是一款非常流行的缓存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记录链,有效地同时毒害九个DNS记录。为了进行这种攻击,攻击者需要一些相当复杂的设备。不使用Dnsmasq缓存功能的设备受缓存中毒的影响较小。缓冲区溢出漏洞四个缓冲区溢出漏洞分别是CVE-2020-25687、CVE-2020-25683、CVE-2020-25682和CVE-2020-25681。最严重的漏洞会导致在易受攻击的设备上远程执行代码,但缓冲区溢出漏洞非常有限,当与缓存中毒漏洞结合使用时,会打开一个潜在的攻击媒介。在缓冲区溢出漏洞中,有一个高危的基于堆的缓冲区溢出漏洞,当dnsmasq配置为使用DNSSEC时,可能会导致远程代码执行。此漏洞存在于DNSSEC验证的早期阶段,导致DNSSEC防御无法有效对抗DNS。其他基于堆的缓冲区溢出漏洞只能在使用DNSSEC时导致DOS攻击。攻击场景目前大约有100万台dnsmasq服务器可以访问Internet,通过Internet进行攻击非常容易。根据设备配置的不同,可能会触发多种可能的攻击场景:(1)DNS缓存中毒:路由设备的DNS转发服务器的DNS缓存中毒可能会导致不同类型的欺诈,因为用户可能会被路由到恶意网站.可能受到威胁的流量包括正常的Internet流量,还包括电子邮件、SSH、远程桌面、RDP视频和音频呼叫、软件更新等流量。(2)设备接管:除了缓存投毒,凡是具备DNS缓存投毒能力的设备都可能被攻击者接管。例如,对于路由器设备,攻击者可以完全控制所有进出网络的流量。此外,攻击者还可能发起其他攻击,例如:(A)大规模DDOS攻击:攻击者控制的网站的大量网络流量可用于产生大量基于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/