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

INFRA_HALT

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

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

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

什么是NicheStack?

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

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

NicheStack协议支持

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

NicheStack协议支持

NicheStack分布

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

14个新的NicheStack安全漏洞

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

下表详细介绍了我们发现的所有14个新发现的漏洞。所有最新版本4.3之前的NicheStack版本,包括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带外紧急数据处理函数会调用一个panic函数,如果指向带外紧急数据结束的指针指向TCP段的数据之外,这会导致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客户端请求的有效应答。 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中概述的建议数量:杰克报告,只要是可行的。
2020 - 35683 ICMPv4 监控ICPMv4畸形报文的流量并阻断。

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

下一个步骤

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

JFrog和Forescout的研究团队将交付8月19日的联合网络研讨会,以提供有关漏洞的更多信息、如何发现漏洞以及如何减轻漏洞。了解更多信息和注册点击这里

JFrog和Forescout也将在Hack In The Box (HITB)新加坡八月晚些时候。

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