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

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是常用于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* | 解析DNS响应的例程不检查单个DNS响应的“响应数据长度”字段,这可能会导致OOB-R/W。 | DNSv4客户 | 远端控制设备 | ||
| 2021 - 31226 | hccsec - 000003 | 由于缺少大小验证,解析HTTP POST请求的代码中存在堆缓冲区溢出。 | HTTP服务器 | 远端控制设备 | ||
| 2020 - 25767 | hccsec - 000007 | 解析DNS域名的例程不检查压缩指针是否指向包的边界内,这会导致OOB-R。 | DNSv4客户 | DoS Infoleak |
||
| 2020 - 25927 | hccsec - 000009 | 解析DNS响应的例程不检查包头中指定的查询/响应的数量是否与DNS包中可用的查询/响应数据相对应,从而导致OOB-R。 | DNSv4客户 | DoS | ||
| 2021 - 31227 | hccsec - 000004 | 由于错误的带符号整数比较,解析HTTP POST请求的代码中存在堆缓冲区溢出。 | HTTP服务器 | DoS | ||
| 2021 - 31400 | hccsec - 000014 | 如果指向带外紧急数据末端的指针指向TCP段的数据外,则TCP带外紧急数据处理函数调用panic函数,这会导致DoS(无限循环或抛出中断,取决于NicheStack版本)。 | TCP | DoS | ||
| 2021 - 31401 | hccsec - 000015 | TCP报头处理代码不会清除IP长度(报头+数据)的长度。对于一个精心制作的IP包,当IP数据的长度是通过总IP包的长度减去头的长度来计算时,就会发生整数溢出。 | TCP | App-dependent | ||
| 2020 - 35683 | hccsec - 000011 | 解析ICMP包的代码依赖于未检查的IP有效载荷大小值(从IP头提取)来计算ICMP校验和。当IP有效载荷大小设置为小于IP头大小时,ICMP校验和计算函数可能读取越界。 | ICMP | DoS | ||
| 2020 - 35684 | hccsec - 000012 | 解析TCP数据包的代码依赖于IP有效载荷大小的未检查值(从IP头提取),以在TCP校验和计算函数中计算TCP有效载荷的长度。当IP有效载荷大小设置为小于IP头大小时,TCP校验和计算函数可能读取越界。也可以进行低影响的越界写操作。 | TCP | DoS | ||
| 2020 - 35685 | hccsec - 000013 | TCP isn以可预测的方式生成。 | TCP | TCP欺骗 | ||
| 2020 - 27565 | hccsec - 000017 | 每当接收到未知的HTTP请求时,就会调用panic。 | HTTP | DoS | ||
| 2021 - 36762 | hccsec - 000016 | TFTP包处理函数不确保文件名以空结束,因此后续对文件名的strlen()调用可能读取到超出协议包缓冲区的边界。 | TFTP | DoS | ||
| 2020 - 25926 | hccsec - 000005 | DNS客户端没有设置足够的随机事务id。 | DNSv4client | DNS缓存中毒 | ||
| 2021 - 31228 | hccsec - 000006 | 攻击者可以预测DNS查询的源端口,发送伪造的DNS响应报文,被DNS客户端接受为有效的DNS响应。 | DNSv4客户 | DNS缓存中毒 | ||
CVSS评分颜色编码:
-中或高
——关键
缓解建议
完全解决所有NicheStack安全问题的最好方法是升级到NicheStack v4.3.
如果这是不可能的-这里有一些实际的方法来缓解漏洞:
- 运行开源脚本由Forescout研究实验室用于检测运行NicheStack的设备。该脚本不断更新,使用新的签名以跟上最新的发展。
- 限制和分割易受攻击的设备从网络的其他部分,直到他们可以打补丁。根据下面的列表进行减轻。
| 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报文流量,并阻断。 |
- 监控设备供应商发布的补丁,并创建业务连续性计划,直到完全修复完成。由收购InterNiche Technologies的HCC Embedded公司发布的补丁已经可用要求.
- 要注意试图利用这些漏洞或其他漏洞的恶意数据包。
下一个步骤
我们打算以透明的方式与受影响的供应商合作。我们的目标是帮助他们确定受影响的产品,并为社区准备建议。hth华体会最新官方网站JFrog和Forescout的详细研究技术报告可以在这里找到在这里.
JFrog和Forescout的研究团队将实现这一目标8月19日的联合网络研讨会,以提供有关漏洞的更多信息,以及漏洞是如何发现的,以及如何消除漏洞。了解更多信息并进行注册点击这里.
JFrog和Forescout也将在Hack In The Box (HITB)新加坡8月份以后。
有关将安全软件交付到边缘的更多信息以及JFrog DevOps平台安全特性的最新更新-点击这里.
