概述
Armis研究团队在VxWorks中发现了11个零日漏洞,VxWorks可能是使用的最广泛的操作系统。VxWorks被超过20亿台设备使用,包括关键的工业,医疗和企业设备。
被称为“URGENT/11”的漏洞存在于VxWorks的TCP / IP堆栈(IPnet)中,影响自6.5版本以来的所有版本。但不会影响安全认证产品版本--VxWorks 653和VxWorks Cert Edition。
其中六个漏洞被归类为关键漏洞并可远程执行代码(RCE)。其余漏洞为拒绝服务,信息泄露、逻辑缺陷。URGENT/11被攻击会造成很严重影响,因为它使攻击者能够接管用户设备,甚至可以绕过防火墙和NAT等安全设备。导致攻击者可以将恶意软件传播到网络内部中去。这种攻击威力极大,类似于EternalBlue漏洞,可用于传播WannaCry恶意软件。
建议运行VxWorks设备的制造商检查公司安全中心发布的Wind River Security Alert中的最新更新,并立即对其进行修补。有关URGENT/11漏洞的完整技术细节可以在URGENT/11技术白皮书中找到。
VxWorks:实时操作系统
VxWorks是世界上使用最广泛的实时操作系统(RTOS)。RTOS由需要高精度和可靠性的设备使用,例如关键基础设施,网络设备,医疗设备,工业系统甚至航天器。因此,VxWorks有非常广泛的用途,从PLC到MRI机器,到防火墙和打印机,再到飞机,火车等等。VxWorks设备还包括西门子,ABB,Emerson Electric, Rockwell,三菱电子,三星,Ricoh, Xerox, NEC和Arris等。
VxWorks于1987年首次发布,是目前仍在广泛使用的最成熟的操作系统之一,由于其运行的设备的性质以及升级困难而维护了大量版本。尽管是传统的RTOS,但只有少数漏洞被发现,没有一个像URGENT/11严重。研究表明, VxWorks的内部工作方式仍处于不明确的状态,其缺陷也是如此,导致了严重的URGENT/11漏洞。其次,RTOS是由许多关键设备使用,使得在其中发现的漏洞会更具有影响力。
URGENT/11影响
URGENT/11对目前使用所有VxWorks连接的设备构成重大风险。有三种攻击方案,具体取决于网络设备位置和攻击者位置。攻击者可以使用URGENT/11来控制位于网络周边或内部的设备。即使是远程登的设备也可受到攻击并被接管。或者已经渗透到网络内部的攻击者可以使用URGENT/11来定位其中特定设备,也可以通过广播同时接管网络中所有受影响的VxWorks设备。
在所有情况下,攻击者都可以远程完全控制目标设备,无需用户交互,区别仅在于攻击者如何到达目标设备。
场景1——攻击网络防御设备
第一个攻击情形是攻击网络边界的VxWorks设备,例如防火墙,这些设备可以直接从Internet进行攻击。使用URGENT / 11漏洞,攻击者可以对这些设备直接发起攻击,并对其完全控制,然后穿透到内部网络。
根据Shodan搜索,有超过80万的SonicWall防火墙连接到互联网,表示这些设备正在防护相似数量的内部网络。使用URGENT / 11和Internet连接,攻击者可以使用特制的TCP数据包发起直接攻击,并立即控制所有防火墙,形成的僵尸网络规模几乎无法衡量,其内部网络也会遭到破坏。
场景2 - 从网络外部攻击绕过安全防护
第二种攻击情形会影响任何具有外部网络连接的VxWorks设备,攻击者能够接管此类设备,无论在网络外围实施任何防火墙或NAT都难以抵御攻击。
攻击示例:对安全网络(例如Xerox打印机)内连接到云的IoT设备进行攻击。打印机不直接暴露于Internet,因为它受防火墙和NAT的保护。攻击者可以拦截打印机与云的TCP连接,并触发打印机上的URGENT / 11 RCE漏洞,最终完全控制它。一旦攻击者接管了网络中的设备,就可以横向扩散,控制其他VxWorks设备,如下一个攻击情形所述。
场景3 - 从网络内部进行攻击
在这种情况下,攻击者已经可控目标网络内的VxWorks设备。对网络内其他VxWorks设备的攻击时,攻击者不需要目标设备的任何信息,因为URGENT / 11允许在整个网络中广播恶意数据包,攻击者可以通过广播数据包攻击所有存在漏洞的设备。
攻击示例:医院中的患者监护仪。它没有连接到互联网,但通过渗透网络,攻击者可以接管它。另一个例子是可编程逻辑控制器(PLC)。由于plc在受影响的VxWorks上运行,攻击者使用URGENT / 11漏洞可以在网络中广播攻击,并有效地控制整个工厂,无需任何前期信息收集工作。
技术细节
URGENT / 11是一组11个漏洞,它们会影响VxWorks的TCP / IP堆栈(IPnet)。其中六个漏洞被归类为关键漏洞并可远程执行代码(RCE)。其余漏洞分为拒绝服务,信息泄露或逻辑缺陷。由于每个漏洞都会影响网络堆栈的不同部分,因此会影响一组不同的VxWorks版本。
URGENT / 11是迄今为止VxWorks中发现的最严重的漏洞,在其32年的历史中仅有13个CVE。URGENT / 11是一组独特的漏洞,允许攻击者绕过NAT和防火墙,并通过未检测到的TCP / IP堆栈远程控制设备,无需用户交互。
如前所述,URGENT / 11由11个漏洞组成,分为两类:
六个关键漏洞,允许远程执行代码
解析IPv4选项时堆栈溢出(CVE-2019-12256)
此漏洞可以由发送到目标设备的IP数据包触发,广播或多播数据包也会触发漏洞。该漏洞在处理IPv4标头中的IP选项时导致堆栈溢出,从而可以RCE。它不需要在设备上运行任何特定的应用程序或配置。
错误处理TCP的紧急指针字段而导致的四个内存损坏漏洞(CVE-2019-12255,CVE-2019-12260,CVE-2019-12261,CVE-2019-12263)
以下漏洞都源于错误处理TCP的紧急指针字段,该TCP字段很少出现在如今的应用程序中。攻击者可以通过直接连接到目标设备上的开放TCP端口,或者通过劫持目标设备的TCP连接来触发设备对该字段的错误处理。一旦触发,这些漏洞将导致目标设备上的应用程序从系统的recv()函数接收比预期更多的字节,从而导致内存损坏。
由于紧急指针字段是TCP的内置功能,因此路由器,NAT甚至防火墙会完整地传输它。即使数据通过多个路由器,NAT和防火墙设备仍然可被攻击者劫持并用于触发漏洞。
影响不同VxWorks版本的四种变体:
1、TCP紧急指针 ‘= 0’ 导致整数下溢(CVE-2019-12255),影响VxWorks版本6.5到6.9.3。 2、由于TCP AO选项格式错误(CVE-2019-12260)导致TCP紧急指针状态混淆,影响VxWorks版本6.9.4及更高版本。 3、TCP由于竞争条件引起的紧急指针状态混乱(CVE-2019-12263),影响VxWorks版本6.6及更高版本。 4、连接到远程主机(CVE-2019-12261)时TCP紧急指针状态混淆,影响VxWorks版本6.7及更高版本。
DHCP Offer / ACK解析中的堆溢出(CVE-2019-12257)
此漏洞是易受攻击的设备分析特定DHCP响应数据包时触发的堆溢出漏洞。当它尝试从DHCP服务器获取IP地址时,这些数据包由ipdhcpc(VxWorks的内置DHCP客户端)解析。与目标设备位于同一子网中的攻击者可以等待它发送DHCP请求,并使用特制的DHCP响应快速回复。在这种情况下,等待来自网络的原始DHCP服务器的响应的目标设备很容易被攻击者欺骗,并解析特制的DHCP响应消息,导致攻击者可远程代码执行。此漏洞影响VxWorks版本从6.5到6.9.3。
导致拒绝服务,信息泄露或某些逻辑缺陷的五个漏洞
利用格式错误的TCP选项进行TCP连接DoS(CVE-2019-12258)
此漏洞影响VxWorks 6.5及更高版本,并允许对受影响的VxWorks设备任何TCP连接进行拒绝服务攻击。可以通过使用现有连接的4元组发送包含某些TCP选项的特制TCP数据包来触发此漏洞,但不知道该连接的序列号,从而导致TCP连接断开。
处理未经请求的反向ARP回复(逻辑缺陷)(CVE-2019-12262)
此漏洞是影响VxWorks 6.5及更高版本的逻辑错误,可以允许同一子网上的攻击者通过未经请求的RARP回复数据包向目标设备添加多个IPv4地址。这将破坏目标设备的路由表,可能导致其使用的应用程序拒绝服务。多次触发此漏洞也会导致内存耗尽,从而导致目标设备上的其他执行失败。
ipdhcpc DHCP客户端分配IPv4的逻辑缺陷(CVE-2019-12264)
此漏洞是VxWorks内置DHCP客户端(如果包含)(ipdhcpc)中的逻辑错误,该错误会影响VxWorks 6.5及更高版本。易受攻击的设备将接受DH分配给它的任何IPv4地址。
在IGMP解析中的DoS(CVE-2019-12259)
此漏洞是影响VxWorks 6.5及更高版本的拒绝服务漏洞,可能导致目标设在解析本地子网内的攻击者发送的未经身份验证的数据包时崩溃。
IGMP信息泄漏(CVE-2019-12265)
此漏洞是影响VxWorks版本6.9.3及更高版本的信息泄漏。可通过上述DHCP客户端漏洞(CVE-2019-12264)实现。要触发此漏洞,攻击者可以将分段的IGMPv3成员资格查询报告发送到目标设备,使目标数据包堆的信息泄漏,导致IGMPv3成员身份报告发送回攻击者。
受影响范围
URGENT / 11漏洞影响自6.5版以来的所有VxWorks版本,不包括认证产品版本,例如VxWorks 653和VxWorks Cert Edition。
受影响的设备的部分列表包括:
SCADA devices Industrial controllers Patient monitors MRI machines Firewalls VOIP phones Printers
除上述设备外,还有大量公开列表可识别哪些制造商使用VxWorks:
Wind River Customer Page Wikipedia VxWorks Page SlideShare Online Presentations
医疗和工业部门可能面临风险
由于VxWorks常被工业和医疗行业使用,因此它们都处于极其严重的风险之中。受损的工业控制器可能会导致关闭工厂,而监护仪受损会对生命造成威胁。
解决方案
VxWorks更新
使用VxWorks设备的组织和设备制造商应立即修补受影响的设备。更新和补丁信息可在公司安全中心发布的Wind River Security Alert中找到。
防火墙设置
1、检测对紧急指针的任何使用。在极少数情况下合法应用程序使用紧急指针会导致一些误报。 2、检测包含SYN,URG和FIN标志的数据包。这种组合永远不会出现在合法的TCP流量中 3、检测包含LSRR或SSRR选项的任何IP数据包。
*本文作者:Kriston,转载请注明来自FreeBuf.COM