网络安全研究人员在 Dnsmasq 发现了 7 个漏洞,这是一个流行的开源软件服务器,用于缓存域名系统(DNS)响应。

这 7 个漏洞被以色列研究公司 JSOF 统称为“ DNSpooq”,与之前披露的 DNS 架构的弱点相呼应,使得 Dnsmasq 服务器无法抵御一系列攻击。恶意攻击者可以发起 DNS 缓存中毒攻击并远程执行恶意代码。

研究人员在今天发表的一份报告中指出: “我们发现,Dnsmasq 很容易受到偏离路径攻击者(也就是没有观察到 DNS 转发器与 DNS 服务器之间通信的攻击者)的 DNS 缓存中毒攻击。”

由于这 7 个漏洞,攻击者可以在几秒钟到几分钟的时间内同时攻击多个域名,而且没有任何特殊操作。此外,安全研究人员还发现,Dnsmasq 的许多实例被错误地配置为侦听 WAN 接口,黑客可以直接发起网络攻击。

Dnsmasq 是 DNS 伪装的缩写,是一个轻量级软件,具有 DNS 转发功能,用于本地缓存 DNS 记录,从而减少了上游名称服务器的负载,提高了性能。

JSOF发现,截至 2020 年 9 月,大约有 100 万个 Dnsmasq 漏洞实例,该软件包含在 Android 智能手机中,以及数百万个来自 Cisco、Aruba、Technicolor、Redhat、Siemens、Ubiquiti 和 Comcast 的路由器和其他网络设备。

再论 Kaminsky 攻击和 SAD DNS

DNS 缓存中毒的概念并不新鲜,2008年,安全研究员 Dan Kaminsky 提出了他的发现,该发现是一个广泛而关键的 DNS 漏洞,攻击者可以利用该漏洞对大多数域名服务器发起缓存中毒攻击。

它利用了 DNS 的一个基本设计缺陷(可能只有65,536个可能的交易 ID“TXID”),向 DNS 服务器发送大量伪造的响应,然后将其缓存起来,并利用这些响应将用户引向欺诈网站。

引入事务 ID 是为了防止权威命名服务器被模拟以制造恶意响应的可能性。通过这种新的设置,DNS 解析器将一个 16 位的 ID 附加到他们的请求到名称服务器,然后名称服务器将返回具有相同 ID 的响应。

image.png

但是事务 ID 的限制意味着每当递归解析器查询给定域名的权威解析器(例如,www.google. com)时,攻击者可能会向解析器发送部分或全部 6.5 万个左右可能的事务 ID 的 DNS 响应。

如果来自攻击者的带有正确事务 ID 的恶意应答在来自权威服务器的响应之前到达,那么 DNS 缓存将被有效地毒化,只要 DNS 响应有效,就返回攻击者选择的 IP 地址而不是合法地址。

这种攻击是基于整个查找过程未经身份验证这一事实,这意味着没有办法验证权威服务器的身份,而且 DNS 请求和响应使用 UDP(用户数据报协议协议)而不是 TCP,因此很容易欺骗响应。

为了解决这个问题,一个随机的 UDP 端口和事务 ID 一起被用作第二个标识符,而不是仅仅使用端口 53 进行 DNS 查找和响应,从而增加了数十亿的平均信息量,使攻击者几乎无法猜测源端口和事务 ID 的正确组合。

尽管由于前面提到的源端口随机化(SPR)和诸如DNSSEC(域名系统安全扩展)之类的协议,缓存中毒攻击的有效性受到了打击,但研究人员于去年 11 月发现了一种“新颖的”侧信道,通过使用 ICMP 速率限制作为侧信道来揭示给定的端口是否打开。

这些攻击称为“ SAD DNS”或侧信道攻击 DNS,包括向 DNS 解析器发送大量欺骗式 UDP 数据包,每个数据包通过不同的端口发送,然后使用 ICMP“ Port Unreachable”消息(或缺少该消息)作为识别速率限制是否已达到的指标,并最终缩小请求发出端口的确切来源。

允许设备接管的多阶段攻击

有趣的是,JSOF 详细介绍的 DNS 缓存中毒攻击与 SAD DNS 有相似之处,因为 CVE-2020-25684、 CVE-2020-25685 和 CVE-2020-25686 三个漏洞旨在减少事务 ID 的平均信息量和接受响应所需的源端口。

具体而言,研究人员指出,尽管 Dnsmasq 支持 SPR,但它“在一个端口上多路传输多个 TXID,并不将每个端口链接到具体的 TXID”,而且用于防止 DNS 欺骗的 CRC32 算法可能会被轻易地击败,导致出现“攻击者需要获得任何一个正确的端口和任何一个正确的 TXID”的情况。

安全研究人员发现,Dnsmasq 版本 2.78 到 2.82 都受这三个漏洞的影响。

image.png

JSOF 公布的其他四个漏洞是基于堆的缓冲区溢出,这可能导致在易受攻击的设备上执行潜在的远程代码。

研究人员说,“这些漏洞本身的风险有限,但会变得特别强大,因为它们可以与缓存中毒漏洞结合起来,产生强大的攻击,允许远程执行代码。”

更糟糕的是,这些弱点可以与其他网络攻击链接起来,比如 SAD DNS 和 NAT 滑流,从而对监听端口 53 的 Dnsmasq 解析器发起多阶段攻击。如果恶意代码通过网络浏览器或同一网络上的其他受感染设备传输,那么即使是那些被配置为只侦听内部网络中接收到的连接的恶意代码也会面临风险。

除了让它们容易受到高速缓存中毒的影响,这种攻击还可以让恶意攻击者控制路由器和网络设备,通过破坏恶意域名的流量来实施分布式拒绝服务(DDoS)攻击,甚至阻止用户访问合法网站(反向 DDoS)。

研究人员还提出了“蠕虫攻击”的可能性,即移动设备连接到一个使用受感染的 Dnsmasq 服务器的网络,接收到一个错误的 DNS 记录,然后在连接到新网络时用于感染新网络。

如何减轻 Dnsmasq 漏洞的风险

安全研究人员建议供应商将他们的 Dnsmasq 软件升级到最新到 2.83 版本或以上以减轻风险,这个版本将在今天晚些时候发布。

此外,研究人员还提出了一种解决方案,建议降低允许转发的最大查询数,并依靠 DNS-over-HTTPS(DoH)或 DNS-over-TLS (DoT)连接到上游服务器。

DNS 是一个互联网关键协议,其安全性极大地影响互联网用户的安全。这些问题使网络设备处于危险之中,影响到数以百万计的互联网用户,这些用户可能会受到域名服务器缓存中毒的影响。

这次发现的 7 个漏洞也凸显了 DNS 安全的重要性,特别是 DNS 转发器的安全性。研究人员强调了加快部署 DNS 安全措施,如 DNSSEC、 DNS 传输安全和 DNS Cookie 的必要性。