这25个安全漏洞被统称为 BadAlloc,是由内存分配整数溢出( Integer Overflow)或环绕错误(Wraparound)引起的。攻击者可以利用这些漏洞导致系统奔溃,并在受感染的IoT和OT系统上远程执行恶意代码。
Microsoft的研究人员在多个实时操作系统(RTOS)、C标准库(libc)实现和嵌入式软件开发工具包(SDK)里被广泛使用的标准内存分配功能中发现了这些漏洞。微软安全响应中心团队表示:作为物联网设备和嵌入式软件的一部分,多年来编写的内存分配实现并未进行适当的输入验证,导致攻击者可以利用内存分配功能来执行堆溢出,从而在目标设备上执行恶意代码。
“ BadAlloc”示例如下:
容易受到BadAlloc攻击的设备
易受BadAlloc漏洞攻击的IoT和OT设备主要在消费、医疗和工业网络上。 受影响的设备完整列表如下:
- Amazon FreeRTOS 10.4.1
- Apache Nuttx OS 9.1.0
- ARM CMSIS-RTOS2 2.1.3之前的版本
- ARM Mbed OS 6.3.0
- ARM mbed-uallaoc 1.3.0
- Cesanta Software Mongoose OS v2.17.0
- eCosCentric eCosPro RTOS 2.0.1至4.5.3版本
- Google Cloud IoT设备SDK 1.0.2
- Linux Zephyr RTOS 2.4.0之前的版本
- Media Tek LinkIt SDK 4.6.1之前的版本
- Micrium OS 5.10.1及更低版本
- Micrium uCOS II / uCOS III 1.39.0及更低版本
- NXP MCUXpresso SDK 2.8.2之前的版本
- NXP 浦MQX 5.1及更低版本
- Redhat newlib 4.0.0之前的版本
- RIOT OS 2020.01.1
- Samsung Tizen RT RTOS 3.0.GBB之前的版本
- TencentOS-tiny 3.1.0
- 德州仪器(TI)CC32XX 4.40.00.07之前的版本
- 德州仪器(TI)SimpleLink MSP432E4XX
- 德州仪器(TI)SimpleLink-CC13XX 4.40.00之前的版本
- 德州仪器(TI)SimpleLink-CC26XX 4.40.00之前的版本
- 德州仪器(TI)SimpleLink-CC32XX 4.10.03之前的版本
- Uclibc-NG 1.0.36之前的版本
- Windriver VxWorks 7.0之前的版本
缓解措施
目前,漏洞已经报告给了CISA与相关供应商。虽然暂时未发现相关漏洞的野外利用,但为了降低利用风险,CISA建议组织进行以下操作:
- 应用可用的供应商更新。
- 减少所有控制系统设备及其系统的网络暴露,并确保不能从Internet访问它们。
- 把控制系统网络和远程设备置于防火墙之后,并将其与业务网络隔离。
- 需要远程访问时,使用虚拟专用网等安全方法。
如果无法立即修补易受攻击的设备,Microsoft建议:
- 最大程度地减少或消除易受攻击的设备在互联网上的暴露
- 实施网络安全监控,检测危害的行为指标;
- 加强网络分段以保护关键资产。
参考来源:bleepingcomputer