安全研究人员最近披露了9个漏洞,影响至少1亿台设备域名系统协议的实现。研究人员现在将这些漏洞统一命名为NAME:WRECK,攻击者可以利用这些漏洞使受影响的设备离线或控制它们。这些漏洞存在于广泛的TCP/IP协议栈中,该协议栈运行在从高性能服务器和网络设备到监视和控制工业设备的操作技术(OT)系统等产品上。四个TCP/IP堆栈中的漏洞名称:WRECK的发现是物联网企业安全公司Forescout和以色列安全研究小组JSOF的共同努力,影响了以下TCP/IP堆栈中DNS的实施:FreeBSD(易受攻击版本:12.1):BSD系列中最流行的操作系统之一;IPnet(易受攻击的版本:VxWorks6.6):最初由Interpeak开发,现由WindRiver维护,由VxWorks实时操作系统(RTOS)提供支持使用;NetX(存在漏洞的版本:6.0.1):ThreadXRTOS的一部分,现在是微软维护的一个开源项目,名称为AzureRTOSNetX;NucleusNET(易受攻击的版本:4.3):SiemensAG由MentorGraphics维护的NucleusRTOS的一部分,用于医疗、工业、消费、航空航天和物联网设备。据Forescout称,在一个假设但可行的场景中,攻击者可以利用NAME:WRECK漏洞通过窃取敏感数据、修改设备或使设备离线来对政府或企业服务器、医疗机构、零售商或制造企业造成损害.重大损害。攻击者还可以篡改住宅或商业场所的关键建筑功能以控制供暖和通风、禁用安全系统或篡改自动照明系统名称:WRECK漏洞研究人员分析了上述TCP/IP堆栈中的DNS实现,重点关注消息压缩功能。DNS响应数据包多次包含相同域名或部分域名的情况并不少见,因此存在压缩机制来减小DNS消息的大小。不仅DNS解析器受益于这种编码,它还存在于多播DNS(mDNS)、DHCP客户端和IPv6路由器通告中。Forescout在一份报告中解释说,尽管某些协议并未正式支持压缩,但该功能在许多实现中都存在。发生这种情况是由于代码重用或对规范的特定理解。研究人员指出,实施压缩机制一直是一项艰巨的任务,尤其是自2000年以来发现了十多个漏洞。必须注意的是,并非所有NAME:WRECK都可以被利用来获得相同的结果。最严重的潜在影响之一是远程代码执行,计算得出的最高严重性得分为9.8(满分10分)。以下是九个漏洞的标识号和严重性得分的摘要。如上表所示,并非所有漏洞都与消息压缩有关。这些例外是研究的副产品,可以与其他例外联系起来以放大攻击的影响。另一个例外是CVE-2016-20009。该漏洞于2016年由ExodusIntelligence首次发现,但未获得追踪编号。虽然该产品不再维护(退役),但今天仍在使用。Forescout要求WindRiver申请CVE,但该公司数月未采取任何行动。因此,该公司向ExodusIntelligence提出了同样的要求,该漏洞终于在2021年1月获得了一个标识符。利用单个漏洞的攻击者可能无法取得太大效果,但通过将它们组合在一起,他们可能会造成严重破坏。例如,攻击者可以利用一个漏洞将任意数据写入易受攻击设备上的敏感存储位置,将另一个数据注入数据包,然后使用第三个漏洞将数据包发送到目标。Forescout的报告深入探讨了该技术如何利用该公司在开源TCP/IP堆栈中发现的NAME:WRECK漏洞和AMNESIA:33漏洞集成功导致远程代码执行攻击的技术细节。2020年12月8日,ForescoutLabs公布了四个开源TCP/IP协议栈中的33个漏洞,统称为AMNESIA:33。这些漏洞的严重性超出了传统的安全级别,并一直延伸到开发级别。AMNESIA:33影响DNS、IPv6、IPv4、TCP、ICMP、LLMNR、mDNS等7个不同组件,其影响包括远程代码执行、拒绝服务、信息泄露、DNS缓存中毒等。该公司还讨论了在DNS消息解析器中重复出现的多个实施缺陷,称为反模式,以下是导致NAME:WRECK缺陷的原因:1.缺乏TXID验证、随机TXID和源UDP端口不足;2.缺乏域名字符验证;3.缺少标签和名称长度验证;4.缺少NULL终止验证;5.缺少记录计数字段验证;6.缺少域名压缩指针和偏移验证;名称:WRECK的补丁可用于FreeBSD、NucleusNET和NetX,如果补丁到达受影响的产品则可以防止漏洞利用。因此,现在由设备供应商对仍可更新的产品进行更正。然而,由于一些障碍,该过程不太可能100%成功。首先,运营商需要确定受影响设备上运行的TCP/IP堆栈。这并不总是一件容易的事,因为有时连设备供应商都不知道。另一个障碍是应用补丁,在许多情况下需要手动安装,因为没有集中管理。此外,关键设备无法离线更新,100%的补丁率几乎不可能实现。更糟糕的是,研究人员发现新固件有时会运行不受支持的RTOS版本,这些版本可能存在已知漏洞,例如CVE-2016-20009。这非常令人担忧,因为假设新固件不易受到攻击可能会导致网络风险评估中出现严重的盲点。但是,安全工程师可以使用一些缓解信息来开发检测DNS漏洞的签名:1.发现并清点运行易受攻击堆栈的设备;2.实施分段控制和适当的网络安全检查;3.关注设备供应商发布的受影响补丁;4.配置设备依赖内部DNS服务器;5.监控所有网络流量是否有恶意数据包;此外,Forescout提供了两个开源工具,可以帮助识别目标网络设备是否运行特定的嵌入式TCP/IP堆栈(ProjectMemoriaDetector),并检测像NAME:WRECK这样的漏洞。本文翻译自:https://www.bleepingcomputer.com/news/security/name-wreck-dns-vulnerabilities-affect-over-100-million-devices/如有转载请注明出处。
