最后更新:2022-04-28 10:31:02 手机定位技术交流文章
Armis研究人员发现VxWorks11个零日脆弱性。最广泛使用的实时操作系统是VxWorks。超过20亿个装置利用了它。这一类别包括任务关键设备,如工业、医疗和创业设备。他们被称为UGRENT/11洞。这些缺陷可在IPnet和TCP/IP堆叠中找到。它影响了过去13年的版本。这也是发现影响操作系统的缺陷的罕见例子。在32年的职业生涯中麻省理工学院只列出影响VxWorks的13个CVE。所有这些缺陷,包括UGENT/11,都没有对基本网络层产生重大影响。
近年来,在实现广泛使用的TCP/IP堆叠方面存在着差距,这已变得极为罕见。尤其是那些有能力运行目标系统远程密码的人这种缺口就是袭击者的圣杯。他们之所以这样做,是因为他们不依赖在易流失的堆叠上开发的具体应用程序。相反,他们只是要求攻击者与目标个人电脑有互联网连接。因此,它们几乎可以远程进入。当发现TCP实现过程中的某些缺陷时,它们甚至可以用来绕过防火墙和NT解决方案。因为他们被隐藏在看似无害的TCP交流中。
在11个发现的漏洞中,有6个是足够大的,足以保证远程代码执行:
还有五个缺陷 可能导致拒绝服务 逻辑错误 或信息泄露
本文将详细介绍在网络堆叠过程中发现有漏洞的深层和被广泛遗忘的TCP/IP技术,以及这些漏洞本身,白皮书还将说明这些漏洞的重大影响,这些漏洞将影响到各种设备。
有关UGGENT/11的更多信息可查阅https://armis.org,这是我们对2011年埃及抗议的特别报道的一部分。
Armis Labs(Armis Labs)是Armis的研究团队,其工作重点是混合和分解构成我们周围物品网络的原子 — — 不管是智能个人助理、时髦打印机、SCADA控制器,还是像病人监视器这样的医院床边生活支持设备。
之前的研究包括:
你为什么对 RTOS 网页堆放感兴趣?
就原始数据而言,据我们所知,RTO上运行的嵌入式微控制器和CPU的数目远远超过成熟操作系统运行的CPU或装置的数目。在当今世界,这些综合装置和组件逐步与局域网(世界上最重要的网络)连接。即使你和互联网没有直接联系此外,至少部分构成我们基础设施的关键设备可能使用RTOS。
因此,广受欢迎的RTOS系统存在重大缺陷,其影响相当大,而且人们仍然不太了解。
最重要的是,这些RTOS储存库往往是封闭源代码,没有对其进行安全研究。
执行摘要
UGENT/11是11个TCP/IP堆叠物的集合物,发现它们影响IPnet和VxWorks。其中6项缺陷被认为至关重要,有助于远程代码执行。其余差距被归类为拒绝服务、信息破坏或逻辑缺陷。因为每个问题都影响到网络堆叠的单独组成部分因此,它们对一套单独的VxWorks版本产生了影响。作为一个整体,UGENT/11对VxWorks.5及以上都有影响。每个版本至少有一次 RCE 错误撞击 。在过去13年中,出现了若干种受到影响的版本。这在互联网上是不寻常的。这是因为VxWorks在研究界相对隐蔽。这一时限可以延长。C. 风风河索赔2006年从Interpeak购买IPnet时无法购买因特网。其中三个漏洞已经存在。
UGENT/11根据网络设备和攻击者的位置,支持三种攻击情景。
最初的进攻现场 撞击了网络区域中 任何受损的VxWorks设备它不只是关于互联网,它关于互联网,它关于互联网, 它关于互联网,它关于互联网,它关于互联网,它关于互联网,它关于互联网,它关于互联网,它关于互联网,它关于互联网,它关于全球,它关于世界,它关于世界,它关于世界,它关于世界,它关于世界,它关于世界,它关于世界,它关于世界,它关于世界,它关于世界,它关于世界,它关于世界,它关于世界,它关于世界,它关于世界防火墙、调制解调器和路由器就是例子。攻击者可以通过互联网直接攻击这些装置。首先消灭它们,然后消灭它们所保护的网络。
第二种攻击情景将损害网络外环中任何受损的VxWorks设备。防火墙或网络解决方案将这些装置连接到互联网上。UGGENT/11使攻击者能够控制装备。通过拦截他们与互联网建立的TCP连接,他们得以和由防火墙或NT 解决方案返回的 TCP 页眉中的某些字段这是因为泄漏是TCP标头分辨率和处理中唯一低层地点。
在最后一种情况下,由于先前的攻击,已经上因特网的攻击者可以发送一个特定广播IP数据包。该数据包将对当地网络上任何易感染的VxWorks装置发动即时攻击。这是因为在分析和处理知识产权标头时发现了一种同类缺陷。即使在传输期间,也启用了这一空白。差距也是RCE差距,可能导致远程接管。
基础工作准备
过去的研究
过去,在TCP/IP堆叠层的水平上,成绩差距非常普遍。不出所料,1990年软件和操作系统的网络堆叠有多种多斯和RCE问题。当时,连通互联网的计算机刚刚成为主流。因此,根据今天的标准,即使是很小的错误也是可以预见的。然而,多年来,该网络经过了彻底的审查和测试。这种漏洞越来越少见。
在这一研究中,我们审视了TCP/IP协议书房的最新最新执行情况。 令人惊讶的是,我们在现代RTOS中发现的错误和那些与旧的错误完全相同的错误都属于同一个陷阱式新做法研究,我们审视了TCP/IP协议书房的最新最新执行情况。 令人惊讶的是,我们在现代RTOS中发现的错误和那些与旧的类似错误都属于同一个陷阱。
例如,Windows 95和NT的远程DoS差距被称为WinNuke差距,已经广为人知并被利用。只需向 Windows PCs 发送一个与一个出口点(用 URL 标记指定) 连接的单一 TCP 连接。即可触发该漏洞,这造成了生物安保组织问题。
这与这里所描述的CVE-2019-12255(TCP紧急点=0导致整数溢出)脆弱性极为相似,然而,就我们而言,缺陷被指定为RCE(死亡伤害)。
Ping Of Death是旧的TCP/IP实现问题的另一个例子。恐怕是多斯攻击许多不同的操作系统,包括Windows、Linux、Mac和Unix,都很脆弱。这一基本攻击是用64KB数据(数据包IP部分的最大允许有效载荷)提供国际CMP回声有效载荷(回声有效载荷)。早在1997年,这就是远程关闭各种操作系统所需要的。
令人惊讶的是,最常用的操作系统仍然有远程触发TCP/IP问题的例子。然而,这是极为不寻常的。例如,CVE-2019-0547是Windows 10 DHCP客户端的远程代码执行弱点。此错误可能是格式错误的 DHCP 选项造成的 。这与本条所述CVE-2019-1257(DHCP Explace/ACK in ipdhcpc)的溢出量类似。
苹果的堆叠错误是另一个例子,它自2018年以来影响到所有苹果产品和操作系统。即CVE-2018-4407这是因为国际CMP错误数据包的设计存在缺陷。针对错误生成的 IPv4 数据包, 带有特定的自定义 IP 选项, 错误数据包会被传输 。这也与我们的CVE-2019-12256(IPv4数据包IP选项解决堆叠溢出)非常相似。在我们的假想中,有违反RCE的情况。
关于执行亚马逊河流域预警系统(RTOS)TCP/IP协议的进一步研究,还查明了若干区域环境评估问题(CVE 2018-16522至CVE 2018-16528)。
调查VxWorks。
VxWorks不是自由开放源码软件。风河是VxWorks的创始人, 正在不断升级和销售。不允许客户购买将VxWorks RTOS嵌入其货物的许可。他们经常得到风河工作网的IDE。这一综合发展经济学包括VxWorks源代码以及各种硬件小组级一揽子支援计划。
过去,我们可直接访问VMaware网站上的BSP图像文件。如本文所述。如今,与销售团队联系后一个可比的评价工具仍然可以使用。然而,这一技术对安全研究人员可能并不有效。虽然法律上很难获得用于研究的源代码,但获取源代码也很难,很难获得用于研究的源代码,也很难获得源代码。然而,就VxWorks研究而言,二元分析是有效的。市场上有几种真实世界的产品 经营最新的VxWorks他们的固体通常可以免费下载到网上。由于工作台的性质, 默认情况下创建二进制文件,这些固体往往附有ELF文件,包括所有调试符号。这使得他们很容易使用当前反向编辑工具。这产生了高质量的成果。
查明TCP/IP协议实际执行中的缺陷
过去在许多不同的操作系统和软件实现过程中出现的TCP/IP差距存在基本缺陷。协定的若干规定包括了太多的执行缺陷。在某些情况下,在实现完全独立时,也可能犯下同样的过失。当负责发现VxWorks TCP/IP堆叠中的安全缺陷时,下面的脆弱程度图为我们提供了指导。我们发现的大多数错误都是轻微的。与1990年代的错误不同。但是,所有这些都与TCP/IP的下列方面有关:
发现了六大RCE缺陷。
如前所述,6个未发现的漏洞极为危险,因为它们可能造成记忆受损的脆弱性,从而造成远程代码执行的影响,这6个漏洞是在VxWorks TCP/IP Protocol Lodge(IPnet)的3个独立子系统中发现的。
以下各节将就发现这些差距的技术提供一些背景资料,并详细介绍差距本身。
处理 IPv4 数据报告 IP 选项时堆叠溢是一个缺陷 。
TL;DR
当将 IP 数据包传输到有错误格式化的多源日志路径设置设置的脆弱 VxWorks 设备时,作为回应,将建立一个国际CMP误差应对工具包。安保部门改革备选方案将重复纳入一揽子应对措施的综合方案备选方案。它不是只要它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长,它长这会让攻击者控制溢出
需要了解IPCMP误差数据包、IP选项和松散源路径。
ICMP error packets
ICMP虚假数据报告是针对IP数据处理过程中发生的故障发送的。他们经常到软件包的源IP地址虽然大多数国际CMP失败表明网上存在问题,例如,可能存在循环或无法获取目的地知识产权的情况。然而,其中一些问题是由于上载(错误)数据包本身所引起的问题。例如,IP 数据包有错误的 IP 选项格式化,对 IP 数据包做出响应时, 参数错误被发送 。
许多这些返回的错误包还将包含导致问题的有缺陷的输入数据包的副本。 此副本将包括原IP页眉、 TCP 或 UDP 页眉, 以及数据包内容中的字节 。
ICMP 错误数据包的结构
某些TCP/IP执行可能不允许将这些报告正确重组为国际CMP错误数据组,因为当数据处理方式不正确时,可能会出现某些边际性。
2018年,苹果公司经历了XNU内核溢出错误(CVE-2018-4407),作为这种脆弱性的一个实例。函数中存在整数溢出问题(bsd/netinet/ip_icmp.c:313)。如果无效数据包的 IP + TCP 标题超过 84 字节,就会触发该错误。回想一下,IP和TCP各包含一个选项字段。因此,每个区最高可达60字节。
如果 TCP 数据包有一个有效的 40 字节 TCP 选项字段和一个无效的 40 字节 IP 选项字段, 就会发生 ICMP 错误 。此外,还造成整数泄漏。反过来,这又可能导致累积的通配符过多。提交人对这一差距进行了调查。
将多种IP选项与因错误格式化的数据集而交付的IPC错误包结合起来,可能造成特定的边际,可能导致错误。 但IP方案本身的真正目的是什么?
IP选择和无限制源路线
每个 IPv4 数据包都有一个非强制性选项字段。允许最多40字节。该领域的每一项选择都以TLV(类型、长度、价值)为代表。此外,所有参数必须都装在40字节之内。如果在处理这些参数过程中发生错误,将提供一份关于国际CMP参数问题的报告。
一些最著名的替代办法是:
众所周知,任何支持上述有争议的LSRR和SSRR设置的路由器都将有安全问题。因为他们允许攻击者绕过数据包的默认路径,把恶意路线强加在包含这些路径的数据集上。由于这个问题,几乎所有路由器都默认禁用了它们。然而,在大多数TCP/IP执行中,在停止之前,这些有些困难的替代办法将得到解决。尽管如此,他们还有第二个进攻战略
每种LSRRSSRR备选方案的结构如下:
此选项指定一个 IP 地址列表, 供数据集路由( 严格或松散) 。 选项中的偏转是一个指针, 指向软件包应该过境的下一个 IP 地址, 由通过软件包的每个路由器增加 。
RFC 1122规定随着数据组到达最终目的地选项中的 IP 地址列表必须记录并发送到传输层或 ICMP 信件处理处。记录路径将被逆转,用于生成答复数据报告的返回路径。将 ICMP 错误返回发件人
可以用以下可复制的逻辑执行这一逻辑:
支持源路线选项路由器和接收载有这些数据包的主机的逻辑很复杂,因此,在解释这种选择时有可能出现错误。
在Wiresark, 以下是一个LSRR选项的例子:
据RFC 1122称,对作为源主机的设备的支持在实践中从未实现,然而,出于某种原因,VxWorks也存在这种支持,这暴露出袭击的以下漏洞。
脆弱性(CVE-2019-12256)
IPv4 协议是 VxWorks IPnet 堆栈中的模块 。ipnet2/src/ipnet_ip4.c中实现。函数ipnet_ip4_input是一个输入 IPv4 数据报告的切入点。该函数在调用该函数之前先进行基本数据报告员验证。ipnet_dst_cache_get这将被调回基于软件包源和目标地址的处理程序。 例如, 如果目标地址与本地地址匹配, 它将被调回 。ipnet_ip4_local_rx处理程序. 否则,数据包可能被传输(路线)或可能导致目标无法达到。
例如,有几种错误情况,例如,如果未达到目标,将使用函数。ipnet_icmp4_send发送 ICMP 错误数据包。 当因参数错误发生错误并交付 ICMP 参数错误数据包而发生错误时, 此函数也被称为 IP 错误 数据包 。 这可以在分析 IP 选项的许多过程中发生 : 函数、 函数、 函数、 函数、 函数、 函数、 函数、 函数、 函数、 函数、 函数、 函数、 函数、 函数、 函数、 函数、 函数、 函数、 函数、 函数、 函数、 函数、 函数、 函数 、 函数 、 、 函数 、 函数 、 函数 、 、 函数 、 、 函数 、 、 函数 、 函数 、 、 函数 、 函数 、 函数 、 函数 、 函数 、 、 函数 、 函数 、 、 函数、 函数、 函数、 、 函数、 函数、 、 函数、 函数、 、 函数、 、 函数、 函数、 函数、 函数、 、 、 、 函数、 函数、 函数、 函数、 、 、 函数、 、 、 函数、 函数、 函数、 、 函数、 函数、 函数、 、 、 函数、 函数、 函数、 函数、 函数、 、 函数、 函数、 函数、 、 函数、 函数、 、 、 函数、 函数、 、 、 、 、 、 函数、 、 、 、 、 、 、 、 、 、 、 、 函数、 函数、 、 函数、 、 、 、 、 、 、 函数、 函数、 、 、 、 、 、 函数、 、 、 函数、 、 、 、 、 、 函数、 函数、 、 、 、 、 函数、 函数、 、 、 、 、 、 、 、 、 函数、 函数、 函数、 函数、 函数、 、 、 函数、 函数、 函数、 函数、 函数、 函数、 ipnet_ip4_multiple_srr_opt_check用于确保选项字段仅包含一个 LSRR 或 SSRR 选项,或用于解释每个选项中的功能 --ipnet_ip4_opt__rx *. in_rx *. in_rx *. in_rx *. in_ipnet_icmp4_send
函数生成不正确的数据包,并复制提供给数据包的某些选项字段的值(格式错误)。ipnet_icmp4_copyopts完成的,
以下图表说明了上述过程:
如前所述,在处理接收的 IPv4 数据包过程中出现若干代码流,可能导致因数据包不正确(如格式化错误)而发送IPCMP 信息。ipnet_icmp4_send这将用于响应国际CMP数据包,该数据包将试图援引这一功能。ipnet_icmp4_copyopts将某些 IP 设置从输入软件包复制到输出软件包 。在至少两个代码流中输入的《国际CMP》数据包将在即将提交的《国际CMP》数据包交付之前全部消化。不论进口的知识产权选择是否已得到完全认证,或者,即使证明他们失败了。在这一过程中,这一设计缺陷可能导致油管溢出溢出。
VxWorks第6版中有9.3个问题的例子。
这种差分可能由两种不同的流造成:
第一个流发生在函数ipnet_ip4_input中,发生在根据函数ipnet_dst_cache_new当回回复表示发送包件的目的地尚未到达时ipnet_dst_cache_new返回值决定如何选择数据包。
来自函数ipnet_ip4_input的反编译片段:
函数ipnet_ip4_dst_unreachable将会调用函数ipnet_icmp4_send另外,连接原始数据包到icmp_param结构体中。在函数ipnet_icmp4_send,输入不正确的数据包中的 IP 选项将在一个结构中引用,并提供给函数。ipnet_icmp4_copyopts。
如下图所示:
默认情况下,options_to_copy结构会指导函数options_to_copy当一个失败的数据包没有被核实为有效的 IP 选项(如前一程序所详述)时,此函数将 SSRR 和 LSRR 选项从失败的数据包复制到输出数据包。ipnet_icmp4_copyopts将要求将数个SSRR或LSRR选项从故障数据包复制为函数。ipnet_icmp4_send此外,这些复制选择可能包括不应允许的非法结构。
例如,当在 IP 选项字段中传输 IP 数据包时, 将会发生堆叠溢出 :
在这个例子中,在此示例中,在 IP 选项字段中存在两种 LSRR 可能性。这些 LSRR 选项不包括任何路线条目(每个选项只有3字节长)。SRR- 指针字段指向选项终止后的位置 。如前所述,所有已记录的路线条目都是获得SRR选项的主机要求的。反转它们的顺序,然后合并它们 产生一个新的SRR选项,此选项将包含在返回的任何数据包中 。
可以在函数ipnet_icmp4_copyopts中查看此功能:

函数ipnet_icmp4_copyopts中的代码将使用这些SRR-Pointer字段被移动为安全部门改革选项中最后一条路线条目,所有路线条目被转到 " 过关包选项 ",其中选择功能为 " 选择 " 。ipnet_icmp4_send的堆栈上分配的。通过3字节,输入缓冲区内每个LSRR选项。然而,它生成了43个字节副本输出选项(3个字节页头,3个字节体)。路线入口长36字节。就目前路线而言,新路线入口为4字节)。因为没有检查被拒绝的数据是否包含多个SSRRLSRR选择(在此示例中),因此,提交其中不止一个选项将导致选择的溢出。书架被分配到一个40字节的阵列,称为“选择”。
如前所述,这一差距还可能由另一个流引发,如果包含上述选项的数据包直接传送到目标装置,则不会产生无法实现的目标,这是因为奖项以各种方法分发。ipnet_opt__r x* * 函数解析,也称为函数ipnet_ip4_multiple_srr_opt_check当分析过程中发生错误时,会以响应方式(按函数)发出IPCMP错误信息。ipnet_ip4_opt_icmp_param_prob)。发生这种情况时,这些认证例行程序尚未处理的参数可能仍然含有无效值。例如,上文讨论了几种SRR替代品。这将导致上述堆叠倒塌。由于溢出将包含攻击者控制的输入包中的数据,攻击者将无法访问数据包。由于这一差距,有可能在两个流中实施边远的法典。
幸运的是,因为问题取决于传输一个IP地址不正确的软件包,因此,无法在因特网上查阅。第一个在互联网上满足这种数据包的路由器会拒绝它。 因此,攻击局域网的人只能利用这种脆弱性。
由于在IP信头的处理过程中出现这一空白,因此有可能通过在广播数据包中提供带有错误IP选项的具体IP数据包而触发这一空白,这将使目标人能够同时攻击许多易感设备。
本文由 在线网速测试 整理编辑,转载请注明出处。