返回

文章详情

微软的安全启动已被破坏十年,直到现在无人察觉

Ars Technica2026年7月14日 22:20

安全启动需要重启 旧的被遗忘的“shim”微软未能撤销使得安全启动绕过变得简单。手指即将按下电源按钮。硬件设备概念。图片来源:Getty Images 微软发明的一个行业标准旨在保护 Windows 和后来的 Linux 设备免受固件感染,但在其存在的 14 年中,有 13 年的时间都很容易被绕过。安全公司 ESET 的研究人员发现了 11 个固件映像,其中至少有一个来自 2013 年,这些映像被认为是有缺陷的,但仍然被该软件公司签名。这些映像被称为”shim“,其目的是将安全启动扩展到 Linux 设备和实用软件。使用初学者黑客也能轻松执行的技术,这些旧的、被遗忘的 shim 可以完全绕过嵌入在设备主板的 UEFI(统一可扩展固件接口)中的保护。这一失误的根本原因是微软负责审批 shim 的签名,却未能在发现其漏洞后撤销公开可用的映像。 威胁扩展到 Windows 和 Linux 用户 由于 shim 可以安装在运行这两种操作系统的设备上,因此威胁同时扩展到 Windows 和 Linux 用户。从此,一名攻击者可以破坏规定的数字签名固件链,以安装恶意固件,该固件在启动过程中提前加载,在系统重装或硬盘更换后仍然存在。ESET 研究员马丁·斯莫拉(Martin Smolár)周二表示:“这些旧 shim 的危险之处并不是新颖的漏洞,而是绕过 UEFI 安全启动并不需要新的漏洞。攻击者不需要复杂的利用原语,只需一份旧的、仍然被信任但未被撤销的 shim 二进制文件副本,以及对 UEFI shim 工作原理的基本理解。这就足以绕过这样的关键安全特性,即 UEFI 安全启动。” 安全启动于 2012 年推出,旨在削弱启动引导木马的威胁,后者是指这种恶意固件。没有安全启动,攻击者即使在设备关闭的情况下,也可以进行短暂物理访问,安装类似于俄罗斯国家黑客在 2018 年使用的 LoJax、2020 年发现的 MosaicRegressor、2022 年的 CosmicStrand 和 2023 年的 BlackLotus 等启动引导木马。还有其他一些在野外的启动引导木马,其名称包括 ESpecter、FinSpy 和 MoonBounce。大多数但并非所有的启动引导木马恶意软件都要求攻击者对目标设备具有物理访问权限。这样的访问是安全启动明确要求保护的威胁模型之一。CERT 编制的所有 11 个 shim 的列表显示,其中一些被 Linux 发行版如 Redhat、OpenSuse 和 Oracle 使用。其他的则是第三方软件的一部分,例如 PC-Doctor 芬兰的入学考试委员会。许多 shim 在某些保护措施(包括 SBAT 和 MOK 拒绝列表)存在之前就已经构建。其他 shim 则在代码或它们授权的二级二进制文件中包含累积的漏洞。微软为 Windows 提供的数字签名的 UEFI 启动加载程序是 Windows 计算机的唯一信任锚。为确保某个组件在启动过程中加载,证书必须明确签署启动期间执行的所有其他代码。shim 的工作原理不同。它们是次级信任锚,由微软使用其其他 UEFI 证书签名。然后,嵌入到 shim 中的主板或软件制造商的证书授权后续加载的所有软件。当 shim 中发现漏洞时,微软会撤销它们。在这 11 个 shim 的情况下,该公司未能做到这一点,有些情况已超过十年。这家公司最终在更新的例行每月补丁中于 6 月撤销了它们,此后 ESET 将它们提请了 CERT 和微软的注意。 复杂性是执行的敌人 微软尚未解释这一失误是如何或为何发生的。一种可能的原因是安全启动工作方式的高度复杂性。Windows 启动管理器和 UEFI shim 都加载两个数据库。db 数据库列出所有允许的签名证书和 Authenticode 哈希。dbx 列出不再受信任的证书和哈希。为了加载一个组件,必须通过 db 授权,并且在 dbx 中没有被撤销。考虑到在启动过程中执行的大量 Linux 组件,无法在这些数据库中列出每个组件,因为 dbx 仅分配 32kb 的空间。因此,微软不得不求助于其他撤销方法,特别是 SBAT(安全启动高级定位)和安全启动版本号(SVN)。斯莫拉解释道:“简而言之,dbx 撤销二进制文件,而 SBAT 和微软的安全启动 SVN 撤销版本。当在支持这些基于版本的撤销机制之一的 UEFI 应用程序中发现漏洞时,真正需要阻止的是从此版本及以前的所有版本——这可以通过版本号轻松捕获。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡