Dnsmasq中发现的漏洞允许欺骗DNS缓存中的内容

最近,有关 在Dnsmasq软件包中发现了7个漏洞, 它结合了一个缓存的DNS解析器和DHCP服务器,它们被分配了代号DNSpooq。 问题允许恶意DNS缓存攻击或缓冲区溢出 可能导致远程执行攻击者的代码。

即使最近 默认情况下,Dnsmasq在常规Linux发行版中不再用作求解器,但仍在Android中使用 以及OpenWrt和DD-WRT等专业发行版以及许多制造商的无线路由器固件。 在正常发行版中,可能会隐式使用dnsmasq,例如,在使用libvirt时,可以启动它来在虚拟机上提供DNS服务,也可以通过更改NetworkManager配置器中的设置来激活它。

由于无线路由器升级文化尚待改进, 研究人员担心发现的问题可能仍未解决 长期以来,它们将参与对路由器的自动攻击,以控制它们或将用户重定向到恶意恶意网站。

有大约40个基于Dnsmasq的公司包括Cisco,Comcast,Netgear,Ubiquiti,Siemens,Arista,Technicolor,Aruba,Wind River,Asus,AT&T,D-Link,华为,Juniper,Motorola,Synology,Xiaomi,ZTE和Zyxel。 可以警告此类设备的用户不要使用其上提供的常规DNS查询重定向服务。

第一部分漏洞 在Dnsmasq发现 是指针对DNS缓存中毒攻击的防护, 基于Dan Kaminsky在2008年提出的方法。

发现的问题使现有保护无效 并允许欺骗缓存中任意域的IP地址。 Kaminsky的方法可控制DNS查询ID字段的大小可忽略,只有16位。

要找到欺骗主机名所需的正确标识符,只需发送大约7.000个请求并模拟大约140.000个虚假响应即可。 攻击归结为向DNS解析器发送了大量伪造的IP绑定数据包 具有不同的DNS事务标识符。

识别出的漏洞降低了32位熵级别 预计需要猜测19位,这使得高速缓存中毒攻击非常现实。 此外,dnsmasq对CNAME记录的处理使您可以欺骗CNAME记录链,以一​​次有效地欺骗多达9个DNS记录。

  • CVE-2020-25684: 在处理来自外部服务器的DNS响应时,缺少对请求ID以及IP地址和端口号的验证。 此行为与RFC-5452不兼容,RFC-XNUMX要求在匹配响应时使用其他请求属性。
  • CVE-2020-25686: 无法验证具有相同名称的未决请求,从而允许使用生日方法来显着减少伪造响应所需的尝试次数。 结合CVE-2020-25684漏洞,此功能可以大大降低攻击的复杂性。
  • CVE-2020-25685: 在不使用DNSSEC进行编译的情况下(SHA-32与DNSSEC配合使用),在验证响应时使用不可靠的CRC1哈希算法。 通过允许您利用具有与目标域相同的CRC32哈希值的域,此漏洞可用于大大减少尝试次数。
  • 第二组问题(CVE-2020-25681,CVE-2020-25682,CVE-2020-25683和CVE-2020-25687)是由在处理某些外部数据时导致缓冲区溢出的错误引起的。
  • 对于CVE-2020-25681和CVE-2020-25682漏洞,有可能创建可能导致系统上代码执行的漏洞利用。

最后提到 Dnsmasq更新2.83中解决了漏洞 解决方法是,建议使用命令行选项禁用DNSSEC和查询缓存。

数据来源: https://kb.cert.org


成为第一个发表评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。