译者 | 晶颜
审校 | 重楼
如今,所有主流的操作系统和软件程序都会自动接收安全更新,以帮助用户保护他们的系统免受每月发现的大量漏洞的攻击。但对于影响我们日常生活的数十亿嵌入式设备来说,情况却并非如此。
从关键基础设施和医院中所用的设备到我们家中使用的设备,其中许多都依赖于称为“固件”的低级软件来运行。所谓“固件”是直接与硬件组件交互和控制的代码,它通常存储于附加在电路板上的特殊只读存储器芯片中。和其他形式的软件一样,固件同样存在安全问题。
更新固件的过程通常被称为“刷机”(flashing),其复杂性差异很大,通常需要手动步骤和对设备的物理访问,有些设备甚至无法被最终用户更新。这使得修补固件漏洞成为一个漫长而复杂的过程,这就是固件漏洞往往会在设备中保持多年(通常是永远)未修补的原因所在。
以下是近年来发现的一些关键固件漏洞,这些漏洞影响了大量设备和行业,需要更新固件进行修复。
1.BlueBorne
2017年,国外安全厂商Armis公布了8个蓝牙漏洞,允许攻击者无视蓝牙版本完全控制设备和数据。Armis将这组漏洞合为名叫“BlueBorne”的攻击媒介,危及支持蓝牙功能的移动、桌面和物联网操作系统,包括Linux、Android、Windows和macOS等设备。
凭借这些漏洞,黑客能够通过无线方式利用蓝牙协议攻击和控制设备、访问数据和网络,甚至渗透到某些安全的物理隔离网络,并在设备间传播恶意软件。期间,攻击者无需与目标设备进行配对。
据估计,这些漏洞影响了超过50亿台设备。在电脑上,通过操作系统更新更容易修复,而支持蓝牙的智能手表、电视、医疗设备、汽车信息娱乐系统、可穿戴设备和其他物联网设备则需要固件更新。
2.KRACK
KRACK,即密钥重装攻击(Key Reinstallation Attack),是由Wi-Fi安全研究员、鲁汶大学教授Mathy Vanhoef于2016年设计的一种攻击。它利用了当时用于保护大多数无线网络的WPA2无线安全标准的一个弱点。
在密钥重装攻击当中,攻击者会诱导受害者重新安装已经被使用过的密钥。具体实现方法是操纵并重播密码握手消息。当受害者重新安装密钥时,增量发送分组号(即随机数)以及接收分组号(即重播计数器)等相关参数将被重置为初始值。从本质上来讲,为了保证安全性,每条密钥只能安装并使用一次。遗憾的是,WPA2协议中并不包含这一强制要求。通过操纵加密握手过程,攻击者将能够在实践当中利用这一致命缺陷。
具体来说,攻击者能够利用这种攻击方法读取此前被认为是安全加密的信息,进而窃取各类敏感信息,具体包括信用卡号码、密码、聊天信息、电子邮件以及图片等等。
由于该标准本身存在缺陷,WPA2在所有类型设备(包括家庭路由器和其他物联网设备)中的实现都受到了影响。修复该漏洞需要固件更新,因此许多不受支持的设备直到今天仍然容易受到攻击。
3.FragAttacks
2021年,安全研究人员Mathy Vanhoef发现的一系列安全漏洞,合称为“碎片聚合攻击”(FragAttacks),这些漏洞影响了许多设备(包括电脑、智能手机和智能设备)上的Wi-Fi实现,且最早可以追溯到1997年。这意味着,自1997年以来的所有Wi-Fi设备无一幸免。
新发现的漏洞中,有三个是影响大部分设备的帧聚合和帧碎片功能Wi-Fi 802.11标准设计缺陷,其他的则是Wi-Fi产品的编程错误。这些漏洞影响所有Wi-Fi安全协议,包括WPA3身份验证,它们允许攻击者在易受攻击的Wi-Fi网络范围内窃取用户信息并攻击和控制设备。
4.SSID混淆
2024年5月,Mathy Vanhoef和一位鲁汶大学的同事发现了另一种名为“SSID混淆”的攻击。该攻击利用Wi-Fi标准的一个弱点,诱骗用户设备连接到非法接入点,影响了所有操作系统上的所有Wi-Fi客户端。
据了解,该设计缺陷的根因在于IEEE 802.11标准并不总是要求网络的SSID进行连接认证。SSID识别唯一的无线访问点和网络,因此与临近区域的其它网络有所不同。问题在于,IEEE 802.11标准并不强制要求SSID包含在密钥衍生流程中。换句话说,SSID并不总是客户端设备连接到SSID时认证流程的一部分。在这些实现中,攻击者有机会设置恶意访问点、嗅探可信网络的SSID,并利用它将受害者降级到可信度更低的网络中,从而可能导致数据拦截和其他安全漏洞。
5.BadUSB
BadUSB最早是在2014年的黑帽大会上研究人员JakobLell和Karsten Nohl提出并展示的。不同于老式的U盘病毒,它利用了USB协议中的一个漏洞,用户只需插入BadUSB,就会自动执行预置在固件中的恶意代码。
BadUsb插入后,会模拟键盘鼠标对电脑进行操作,通过这些操作打开电脑的命令终端,并执行一条命令,这条命令将从指定网址下载其他代码并于后台静默运行。这些代码功能包括:窃取信息、反弹shell、发送邮件等,从而实现控制目标机或者窃取信息的目的。
恶意代码存在于U盘的固件中,PC上的杀毒软件无法访问到U盘存放固件的区域,因此也就意味着杀毒软件和U盘格式化都无法防御BadUSB的攻击。
6.Thunderstrike和Thunderstrike 2
2015年初,编程专家Trammell Hudson在德国汉堡举办的“年度混沌计算机大会”上展现这种名为“Thunderstrike(雷击)”的攻击方式。它实际上利用了一个在ThunderboltOption ROM中有些历史的漏洞,该漏洞在2012年首次被发现但仍未修补。
一旦安装Thunderstrike恶意软件,它会替换Mac下的引导固件程序,以高优先级的指令获得系统控制权限。这款恶意软件(bootkit)可以绕过固件程序密码验证及硬盘密码验证,在操作系统启动时就预装上后门。该恶意软件安装以后,将独立于操作系统和硬盘驱动,因此格式化硬盘和重装操作系统也拿它没办法。
几个月后,LegbaCorp安全研究团队又制造出了Thunderstrike 2,它可以在固件层面对受感染的Mac进行攻击,也就是说一旦设备被感染将很难移除,即使重装OS X,或者升级,甚至是重装硬盘都无法解决。此外,Thunderstrike 2还能够通过Thunderbolt设备进行传播,从而产生蠕虫的可能性。
7.Thunderclap
2019年,剑桥大学、计算机科学技术部、莱斯大学、SRI国际的研究人员发现,配有Thunderbolt接口并运行Windows、macOS、Linux或FreeBSD的现代计算机易受大量直接内存访问(DMA) 攻击。这些漏洞被统称为“Thunderclap”,可被利用以系统上可能的最高权限级别运行任意代码,可能访问或窃取密码、银行登录凭据、加密密钥、私人文件、浏览其他敏感数据。
这些Thunderclap漏洞使得攻击者能够拥有对机器内存的直接且不受限的访问权限,因为这些端口具有底层且权限特别高的直接内存访问权限(DMA),从而为任意恶意外围设备提供多于常规USB设备的权限。
8.ROCA
2017年10月中旬,来自捷克共和国Masaryk大学、英国网络安全管理公司Enigma Bridge和意大利Ca' Foscari大学的安全研究员发现RSA加密部署中存在一个安全漏洞,他们将该漏洞称为Return of Coppersmith's Attack(简称ROCA)。经发现,在德国半导体制造商英飞凌科技公司(Infineon Technologies AG)生产的各类广泛的密码芯片所使用的密码库中,RSA密钥对生成过程存在该漏洞。
利用该漏洞,攻击者可以进行实际的因数分解攻击,计算RSA密钥的私钥部分。对于常用的密钥长度(包括1024和2048位),该攻击是可实现的,并且会影响2012年之前生产的芯片,这种芯片非常常见。研究人员估计,恢复这些设备生成的单个2048位RSA密钥的成本约为2万美元,1024位RSA密钥的成本约为40美元。
9.Intel管理引擎(ME)缺陷
Intel 管理引擎(ME)是许多Intel CPU中存在的专用协处理器和子系统,用于带外管理任务。Intel ME运行自己的轻量级操作系统,完全独立于用户安装的操作系统,这就是它经常被安全社区描述为“后门”的原因所在。多年来,在Intel ME中发现了很多严重的漏洞,修复它们需要安装计算机制造商的固件更新。因此,不受支持的系统不太可能收到这样的更新。
2022年从Conti勒索软件团伙泄露的日志显示,该网络犯罪组织正在研究如何利用Intel ME漏洞,在CPU的高度特权执行环境“系统管理模式”(System Management Mode)中获得代码执行权限,目的是将恶意代码部署到计算机固件深处,以逃避安全产品的检测。泄露的内部聊天记录表明,该团伙已经为此类攻击开发了概念验证代码(PoC)。
10.iLOBleed和其他BMC缺陷
许多服务器主板都有基板管理控制器(BMC),它允许在主操作系统关闭时对机器进行带外管理。BMC是专门的微控制器,有自己的固件和操作系统、专用内存、电源和网络端口。它们公开了一个标准化的接口和协议,即智能平台管理接口(IPMI)。管理员可以通过它远程执行维护任务,例如重新安装操作系统、重新启动无响应的服务器和部署固件更新等。多年来,在多个服务器供应商的BMC固件和IPMI实现中已经发现了许多严重的漏洞。
2024年4月,思科修补了其集成管理控制器(IMC)中的两个特权升级漏洞,该控制器用于对其许多服务器产品和设备进行带外管理。这些漏洞已经公开提供了概念验证漏洞利用代码,并可能允许经过身份验证的攻击者在底层操作系统上以root身份执行命令。
2023年7月,固件安全公司Eclypsium的研究人员发现并披露了MegaRAC的两个漏洞。MegaRAC是世界上最大的BIOS/UEFI和BMC固件供应商美国大趋势公司(AMI)开发的一种BMC固件。长期以来,在其部分产品中使用AMI MegaRAC的服务器制造商包括AMD、安培计算、ASRock、华硕、ARM、戴尔EMC、技嘉、惠普企业、华为、浪潮、联想、英伟达、高通、广达和泰安。早在2022年12月,Eclypsium就已经披露了AMI MegaRAC的另外五个缺陷。
2022年1月,一种名为iLOBleed的恶意软件植入物被发现感染了惠普企业的第8代和第9代服务器,它利用了惠普集成的Lights-Out (iLO)BMC技术中的已知漏洞。
2018年,研究人员发现了来自X9、X10和X11平台的超微服务器BMC实现中的漏洞。当时,有来自90多个国家的4.7万台超微服务器及其BMC接口暴露在互联网上。
虽然BMC漏洞可能是特定于供应商的,但它们也可能影响多个供应商,AMI MegaRAC漏洞就是这种情况。虽然这些接口不应该直接暴露给互联网,但是公开暴露BMC的服务器数量已达数万甚至数十万。
11.LogoFAIL和其他BIOS/UEFI漏洞
统一可扩展固件接口(UEFI)是计算机系统中固件的标准化规范——相当于旧的BIOS——包括负责在加载安装在硬盘驱动器上的操作系统之前初始化计算机硬件的低级代码。
攻击者长期以来一直在开发感染计算机BIOS或UEFI的恶意软件植入物,为他们提供低级持久性和隐身性,并且即便重新安装操作系统或更换硬盘驱动器也能重新感染计算机。因此,现代UEFI大多带有加密代码验证功能,如安全启动(Secure Boot)和英特尔启动保护(Intel Boot Guard),但安全漏洞仍然存在,允许攻击者绕过这些机制。
2024年7月,研究人员从美国大趋势国际公司(AMI)处发现了一个泄露的安全启动私有平台密钥,该密钥被7家制造商用于数百台笔记本电脑、台式机和服务器主板型号。
大多数PC厂商在他们的主板上使用reference UEFI实现,这些实现来自三家专业软件公司,即独立的BIOS供应商(IBV)——American megtrends International(AMI)、Insyde software和Phoenix Technologies——然后他们根据自己的需要进行配置和定制。因此,UEFI漏洞可以影响特定的PC制造商或特定的产品线,或者它们可以影响IBV的所有UEFI代码,因此可以同时影响多个制造商,或者可以影响所有IBV。
最近一个影响广泛的UEFI攻击的例子是LogoFAIL,它允许攻击者通过允许PC制造商在启动过程中在BIOS启动屏幕上显示自定义图形的功能,轻松地将恶意代码注入UEFI。这种攻击是由Insyde、AMI和Phoenix固件使用的图像解析器中的内存损坏和缓冲区溢出漏洞导致的。
2024年披露的另一种跨IBV和跨厂商UEFI攻击是PixieFail。这种攻击利用了广泛使用的预启动执行环境(PXE)实现中的漏洞,PXE是UEFI的一种功能,允许通过网络从映像启动系统,也称为网络启动或netboot。事实证明,Arm、Insyde、AMI、Phoenix和微软都使用了来自开源reference UEFI实现的PXE网络堆栈,称为TianoCore EDK II,研究人员在代码中发现了拒绝服务、信息泄露、远程代码执行、DNS缓存中毒和网络会话劫持的漏洞。
2022年,Binarly的研究人员发现了12个漏洞,这些漏洞可能导致英特尔、惠普和独立固件供应商AMI在UEFI实现中执行预启动远程代码。在此之前,他们还发现了42个与来自多个制造商的固件的SMM(系统管理模式)和DXE(驱动程序执行环境)相关的高影响漏洞。
可以肯定地说,UEFI漏洞并不缺乏,即使其中一些漏洞可能特定于一个供应商或IBV,问题是PC制造商不会为过期的主板发布UEFI更新。此外,用户没有手动安装UEFI更新的习惯,这些更新不会通过Windows Update等机制自动执行。
有时,PC制造商在其UEFI固件中添加的定制功能不安全,还可能成为后门。UEFI笔记本电脑跟踪和防盗技术“Computrace LoJack”就是一个例子,该技术被与俄罗斯军事情报机构GRU有关联的网络间谍组织APT28滥用。
2023年5月,安全研究人员发现,数百GB主板型号的UEFI在启动过程中向Windows注入了一个可执行程序。这个可执行文件与一个名为APP Center Download & Install的功能捆绑在一起,可能会被欺骗来下载和执行恶意软件。换句话说,就像Computrace LoJack一样,它可以被改造成一个高度持久的恶意软件植入物,即使在重新安装操作系统后也会重新出现。
12.Project Memoria和嵌入式TCP/IP栈缺陷
如今,许多消费类物联网设备,如路由器、调制解调器、网络附加存储(NAS)盒和网络视频录像机(NVR)都使用基于Linux内核的固件。但是工业和医疗嵌入式设备的固件仍然依赖于专有的实时操作系统(RTOSes),比如VxWorks。
尽管这意味着工业物联网世界中的固件更加多样化,但仍然有一些组件可以由不同的RTOSes共享,包括TCP/IP堆栈。这些复杂的代码库实现了Internet的一些核心协议——DNS、HTTP、FTP、ARP、ICMP等——并且是在几十年前作为专有库编写的,然后出售给嵌入式操作系统供应商。
2020年,安全公司Forescout的研究人员与大学和其他公司合作,启动了一个名为“Project Memoria”的项目,旨在分析工业设备中使用的专有TCP/IP堆栈。该项目的研究持续了18个月,共计发现了104个漏洞,其中许多是关键漏洞,这些漏洞存在于来自500多家供应商的25万多款嵌入式设备模型中。
TCP/IP漏洞非常严重,因为它们位于解析网络数据包的代码中,所以通常可以被未经身份验证的攻击者在网络上滥用。由于代码库十分古老,它们影响的设备的数量和类型可能非常广泛。许多受影响的设备已达到使用寿命,无法再接收固件更新来修复这些缺陷。
Forescout并不是唯一关注TCP/IP协议栈的公司。2019年,安全公司Armis在VxWorks的TCP/IP堆栈中也发现了11个严重漏洞。VxWorks是一个嵌入式操作系统,广泛应用于许多行业的20多亿台设备中。
原文标题:12 wide-impact firmware vulnerabilities and threats,作者:Lucian Constantin