微软Azure负责IoT安全研究的Section 52团队,最近于物联网(Internet of Things,IoT)与运营技术(Operational Technology,OT)设备上,发现了一系列的内存分配漏洞,可用来执行恶意程序或造成系统崩溃,这群漏洞被Section 52统称为BadAlloc,由超过25个个别的漏洞所组成。
其实Section 52团队所发现的漏洞,是存在于各种平台的内存分配功能中,从即时操作系统(RTOS)、嵌入式软件开发组件(SDKs),以及C标准函数库(libc)实例等,而这些平台又被应用在消费者IoT设备、医疗IoT设备、工业IoT设备、工业控制系统,以及OT设备上。
Section 52团队说明,BadAlloc漏洞都是起因于使用了含有漏洞的内存功能,涵盖malloc、calloc、realloc、memalign、valloc与pvalloc等,研究显示,作为物联网设备与嵌入式软件的一部分,多年来的内存分配实例并未执行适当的输入验证,缺乏输入验证便将允许黑客开采内存分配功能,造成堆积溢出,进而让黑客可于目标设备上执行任意程序。
美国国土安全部已列出了所有的BadAlloc漏洞,以及受到BadAlloc漏洞波及的各式产品(如下图),从Amazon FreeRTOS、Apache Nuttx OS、Google Cloud IoT Device SDK、Media Tek LinkIt SDK、IOT OS、到德仪的SimpleLink都在风险名单中。
由于含有BadAlloc漏洞的IoT与OT设备非常普及,倘若被成功开采将对组织造成巨大的安全风险,幸好微软迄今尚未看到BadAlloc遭到开采的迹象。
微软在公布漏洞之前便已先行知会各平台或SDK的开发商,目前多数企业皆已发布更新程序,Section 52团队建议部署相关IoT与OT设备的组织应尽快更新,假设无法立即更新,也应监控设备的行为,并移除相关设备不必要的联网能力以减少攻击表面,或是通过防火墙把IoT/OT设备网络与企业IT网络隔离。