INFRA:HALT在NicheStack中发现14个新的安全漏洞

INFRA_HALT

NicheStack是一个TCP / IP网络堆栈通常用于世界各地数以百万计的操作技术(OT)设备,包括在关键基础设施如制造工厂、发电/输配电、水处理等。

JFrog的安全研究团队(以前是Vdoo),以及Forescout研究实验室,最近发现了14个新的安全漏洞影响NicheStack TCP/IP栈。这些漏洞使远程代码执行拒绝服务信息泄漏TCP欺骗,或DNS缓存中毒

本文将详细介绍这14个漏洞,我们将其命名为INFRA:HALT,并提供缓解它们的建议。

NicheStack是什么?

NicheStack是一种用于嵌入式系统的常用的专有TCP/IP堆栈,由InterNiche Technologies公司于1996年开发。2003年,NicheStack扩展了对IPv6的支持。

NicheStack作为其他TCP/IP栈的基础,也为oem提供了不同的版本,包括意法半导体飞思卡尔(NXP),阿尔特拉(英特尔)而且微芯片

NicheStack协议支持

以下是NicheStack目前支持的协议:

NicheStack协议支持

NicheStack分布

NicheStack是常用于OT设备世界各地。例如,它被用于西门子S7 PLC,它拥有最大的PLC市场份额。此外,根据我们的研究,我们发现使用~ 200设备供应商包括大多数顶级工业自动化公司,以及6,400个运行NicheStack的设备实例Shodan搜索结果。

14新的NicheStack安全漏洞

我们分析了NicheStack的两个版本:4.0.1版本的二进制示例(可通过遗留的InterNiche网站公开)和3版本的源代码(可通过为嵌入式项目公开源文件的网站公开)。JFrog利用静态和动态专有技术,手动和自动分析了二进制版本。

下表详细说明了我们发现的所有14个新漏洞。所有NicheStack最新版本4.3之前的版本(包括NicheLite)均受影响。

CVE ID 供应商ID 描述 受影响的组件 的潜在影响 CVSSv3.1得分
2020 - 25928 hccsec - 000002

hccsec - 000010

解析DNS响应的例程不检查单个DNS响应的“响应数据长度”字段,这可能会导致OOB-R/W。 DNSv4客户 远端控制设备 安全漏洞9.8
2021 - 31226 hccsec - 000003 由于缺少大小验证,解析HTTP POST请求的代码中存在堆缓冲区溢出。 HTTP服务器 远端控制设备 安全漏洞9.1
2020 - 25767 hccsec - 000007 解析DNS域名的例程不检查压缩指针是否指向包的边界内,这会导致OOB-R。 DNSv4客户 DoS

Infoleak

安全漏洞-橙色7.5
2020 - 25927 hccsec - 000009 解析DNS响应的例程不检查包头中指定的查询/响应的数量是否与DNS包中可用的查询/响应数据相对应,从而导致OOB-R。 DNSv4客户 DoS 安全漏洞-橙色8.2
2021 - 31227 hccsec - 000004 由于错误的带符号整数比较,解析HTTP POST请求的代码中存在堆缓冲区溢出。 HTTP服务器 DoS 安全漏洞-橙色7.5
2021 - 31400 hccsec - 000014 如果指向带外紧急数据末端的指针指向TCP段的数据外,则TCP带外紧急数据处理函数调用panic函数,这会导致DoS(无限循环或抛出中断,取决于NicheStack版本)。 TCP DoS 安全漏洞-橙色7.5
2021 - 31401 hccsec - 000015 TCP报头处理代码不会清除IP长度(报头+数据)的长度。对于一个精心制作的IP包,当IP数据的长度是通过总IP包的长度减去头的长度来计算时,就会发生整数溢出。 TCP App-dependent 安全漏洞-橙色7.5
2020 - 35683 hccsec - 000011 解析ICMP包的代码依赖于未检查的IP有效载荷大小值(从IP头提取)来计算ICMP校验和。当IP有效载荷大小设置为小于IP头大小时,ICMP校验和计算函数可能读取越界。 ICMP DoS 安全漏洞-橙色7.5
2020 - 35684 hccsec - 000012 解析TCP数据包的代码依赖于IP有效载荷大小的未检查值(从IP头提取),以在TCP校验和计算函数中计算TCP有效载荷的长度。当IP有效载荷大小设置为小于IP头大小时,TCP校验和计算函数可能读取越界。也可以进行低影响的越界写操作。 TCP DoS 安全漏洞-橙色7.5
2020 - 35685 hccsec - 000013 TCP isn以可预测的方式生成。 TCP TCP欺骗 安全漏洞-橙色7.5
2020 - 27565 hccsec - 000017 每当接收到未知的HTTP请求时,就会调用panic。 HTTP DoS 安全漏洞-橙色7.5
2021 - 36762 hccsec - 000016 TFTP包处理函数不确保文件名以空结束,因此后续对文件名的strlen()调用可能读取到超出协议包缓冲区的边界。 TFTP DoS 安全漏洞-橙色7.5
2020 - 25926 hccsec - 000005

hccsec - 000008

DNS客户端没有设置足够的随机事务id。 DNSv4client DNS缓存中毒 安全漏洞-橙色4
2021 - 31228 hccsec - 000006 攻击者可以预测DNS查询的源端口,发送伪造的DNS响应报文,被DNS客户端接受为有效的DNS响应。 DNSv4客户 DNS缓存中毒 安全漏洞-橙色4

CVSS评分颜色编码:

  • 安全漏洞-橙色-中或高
  • 安全漏洞——关键

缓解建议

完全解决所有NicheStack安全问题的最好方法是升级到NicheStack v4.3

如果这是不可能的-这里有一些实际的方法来缓解漏洞:

  1. 运行开源脚本由Forescout研究实验室用于检测运行NicheStack的设备。该脚本不断更新,使用新的签名以跟上最新的发展。
  2. 限制和分割易受攻击的设备从网络的其他部分,直到他们可以打补丁。根据下面的列表进行减轻。
CVE ID 受影响的组件 缓解建议
2020 - 25928
2020 - 25767
2020 - 25927
2021 - 31228
2020 - 25926
DNSv4客户 如果不需要关闭DNSv4客户端,或阻断DNSv4流量。因为有几个漏洞会促进DNS欺骗攻击,使用内部DNS服务器可能是不够的(攻击者可能能够劫持请求-响应匹配)。
2021 - 31226
2021 - 31227
HTTP服务器 如果不需要,禁用HTTP服务器,或将HTTP连接加入白名单。
2021 - 31400
2021 - 31401
2020 - 35684
2020 - 35685
TCP 对于CVE-2021-31400、CVE-2021-31401和CVE-2020-35684,建议对IPv4/TCP畸形报文进行流量监控并阻断。例如,在一个正确配置的防火墙后面有一个易受攻击的设备就足够了。对于CVE-2020-35685,我们建议使用我们在Forescout’s中概述的建议数量:杰克只要可行就报告。
2020 - 35683 ICMPv4 监控畸形ICPMv4报文流量,并阻断。

  1. 监控设备供应商发布的补丁,并创建业务连续性计划,直到完全修复完成。由收购InterNiche Technologies的HCC Embedded公司发布的补丁已经可用要求
  2. 要注意试图利用这些漏洞或其他漏洞的恶意数据包。

下一个步骤

我们打算以透明的方式与受影响的供应商合作。我们的目标是帮助他们确定受影响的产品,并为社区准备建议。hth华体会最新官方网站JFrog和Forescout的详细研究技术报告可以在这里找到在这里

JFrog和Forescout的研究团队将实现这一目标8月19日的联合网络研讨会,以提供有关漏洞的更多信息,以及漏洞是如何发现的,以及如何消除漏洞。了解更多信息并进行注册点击这里

JFrog和Forescout也将在Hack In The Box (HITB)新加坡8月份以后。

有关将安全软件交付到边缘的更多信息以及JFrog DevOps平台安全特性的最新更新-点击这里