从6月24日起,三枚用于加密验证系统启动时加载的固件和软件的证书将到期。这些由微软签署的证书是“安全启动”(Secure Boot)机制的核心。安全启动是微软设计的一条信任链,它通过检查启动时加载的所有固件的数字签名,确保其来自可信供应商,比如主板制造商。

安全启动旨在防止UEFI启动工具包(bootkits)攻击,这是一种恶意软件,会篡改统一可扩展固件接口(UEFI),UEFI是BIOS的继任者,负责启动序列的初始阶段。由于这些启动工具包在操作系统及其他代码之前加载,检测起来非常困难。一旦安装,它们通常会在操作系统中加载恶意软件,窃取凭证、设置后门或执行其他恶意操作。即使操作系统被清理,启动工具包仍能重新感染系统,并且能在操作系统重装后存活。

启动工具包简史

启动工具包的起源可以追溯到1980年代初,当时针对Apple II机器的恶意软件在启动过程中传播,通常通过包含盗版游戏的软盘传播。

2000年代初,Windows启动工具包开始被安全研究人员作为攻击概念展示。2005年黑帽大会上展示的BootRoot可能是首个此类工具包,它感染了网络驱动接口,影响TCP/IP网络适配器驱动的通信。随后出现了Vbootkit、Stoned Bootkit和Mebroot等多个类似概念验证工具。

2012年,出现了新型启动工具包,直接攻击Mac OS X的EFI固件,另有针对Windows 8的UEFI启动工具包。2013年,一名研究人员展示了名为Dreamboat的更先进Windows UEFI启动工具包。

2018年,首次发现真实世界中针对UEFI的攻击——LoJax恶意软件。它是由克里姆林宫支持的黑客组织开发,利用合法防盗软件LoJack的变种,通过远程工具读取并覆盖UEFI固件的闪存。

2020年,卡巴斯基发现了第二个真实UEFI攻击案例“MosaicRegressor”,恶意文件会在每次重启时检查Windows启动文件夹并自动安装。此后,ESpecter、FinSpy和MoonBounce等新的UEFI启动工具包陆续被发现。

应对之策

针对UEFI启动工具包的威胁,微软与设备制造商合作开发了安全启动标准,利用加密签名确保启动时加载的固件均为制造商信任的版本。安全启动通过建立信任链,阻止攻击者替换启动固件为恶意版本。如果启动链中任何环节不被识别,设备将无法启动。

2023年,研究人员发现了“LogoFail”漏洞,几乎影响所有Windows和Linux系统的UEFI启动。该漏洞源于启动时显示硬件制造商标志的软件中的图像解析缺陷,攻击者可借此绕过安全启动,植入恶意固件。

LogoFail的发现促使微软必须替换现有的安全启动加密签名。三枚2011年签发的旧证书将被2023年新证书取代。微软正在更新Windows 10和11系统,Linux发行版也在更新“shim”——一个作为安全启动密钥与Linux启动加载器之间可信桥梁的小型UEFI启动加载器。

未更新安全启动密钥的设备仍可运行,但将无法防御新的UEFI威胁。事实上,这些设备已暴露于利用LogoFail漏洞的攻击风险中。此次密钥更新旨在降低风险,并防止未来可能出现的其他UEFI攻击。

Windows用户可通过“Windows安全中心 > 设备安全 > 安全启动”查看密钥状态,绿色勾选表示更新完成。大多数Windows设备会在月度补丁更新时自动完成密钥更新,但较旧设备可能需要手动操作。Linux用户应关注新shim的发布。

微软建议用户保持固件更新,因为固件更新有时是安全启动证书顺利更新的前提。更多固件更新信息可参考微软官方说明。

本文最初发表于Ars Technica。