一份针对 BitLocker 的公开攻击列表。任何可能攻击 BitLocker、但具体方法尚未公开的公开攻击(如 baton drop)不在范围内。
大多数攻击针对的是 VMK 仅由 TPM 封存的情况,这是默认设置,也是 自动 BitLocker 在将恢复密钥托管到 Microsoft 帐户时所使用的方案。
默认情况下,从 Windows 8 开始,如果启用了 Secure Boot,则会使用 Secure Boot 完整性验证。
如果必须仅由 TPM 封存 VMK,最安全的配置是使用 PCR 0、2、4、7、11 的旧式完整性验证(并保持系统完全更新)。
请注意,这只能防御软件攻击。
硬件攻击通常仅在攻击者能够物理接触系统,且该系统 VMK 仅由 TPM 封存时才有用。
| 摘要 | 描述 | 已修复 | 公开披露时间 | 发现者 |
|---|---|---|---|---|
| TPM 嗅探:bootmgr 与 TPM 之间以明文通信 | Windows 引导管理器与 TPM 之间以明文通信,因此如果使用的是 LPC 总线上的独立 TPM 芯片(即非 fTPM,也非 "Pluton"/HSP),则可以通过该总线上的逻辑分析仪转储 VMK。 另见 Pulse Security 的博客文章、LPC 嗅探器 Verilog 代码。 | 无,但固件 TPM 本来就不受影响 | 2019 年 1 月 | marcan |
| 硬件调试器:某些系统在启用硬件调试器之前不会将其度量到 PCR7 | 适用于 TPM 的 TCG EFI 平台规范(第 6.4 节)包含以下内容: "如果平台提供了可在 UEFI 环境之前使用的固件调试器模式,或者平台为 UEFI 环境提供了调试器,则平台应在允许使用调试器之前将 EV_EFI_ACTION 事件扩展到 PCR[7]" 某些系统在启用某些硬件调试器(如 Intel DCI)之前不会执行此度量。 因此,在这样存在漏洞的系统上,可以利用 Secure Boot 绕过(物理访问至少可提供两种在 Secure Boot 仍启用状态下的绕过方式)或硬件攻击(直接写入 SPI 闪存)来启用硬件调试器;随后可在 bootmgr!FvebUnsealCallback 内设置断点(例如)以转储 VMK。另见 2023 年欧洲数字取证研究会议上的这篇文章。 | 对于存在漏洞的系统,无修复方案。 存在漏洞系统的确切列表未知。 | 2023 年 3 月 | 巴西联邦警察 |
| fTPM 毛刺攻击:通过毛刺攻击获得代码执行以完全破坏 fTPM 状态 | 如果实现 fTPM 的片上处理器/微控制器容易受到毛刺攻击,从而可在引导早期获得代码执行,则整个 fTPM 状态都可能被破坏,进而导致 VMK 转储等。另见 研究文章、适用于 AMD PSP 的载荷等 | IntelME:2021 年 11 月 / Alder Lake AMD:未知,没有? 其他(ARM64、ARMv7 等):未知 | 2023 年 4 月 | 柏林工业大学 SecT 的 Hans Niklas Jacob、Christian Werling、Robert Buhren、Jean-Pierre Seifert |
| 引导时禁用 IOMMU:通过闪存转储/重写修改 UEFI 非易失性变量存储可在引导时禁用 IOMMU | 某些 UEFI 固件会根据变量数据决定是否在引导时启用 IOMMU。通过转储闪存、修改这些变量并重新写入,IOMMU 将在引导时被禁用,而 TPM 非易失性状态仍然有效。此时,攻击者可以在 bootmgr 启动之前通过 PCI DMA 覆盖 DMAR ACPI 表,进入安全模式,然后再次使用 PCI DMA 获得 SYSTEM shell。见 相关文章。 该问题属于哪个组件尚不清楚;该文章使用 Intel 系统,相关代码由 Intel Firmware Support Package 提供。AMD 对应的组件(AGESA/CBS)是否也受影响未知。 | Intel Firmware Support Package:未知 AMD AGESA/CBS:未知 | 2026 年 3 月 | MDSec 的 Craig S. Blackie |
软件攻击通常是 bootmgr 或其他引导应用程序中的漏洞,攻击者可以在内存中获取任意卷的派生 BitLocker 密钥后进行利用。
如果可以在引导应用程序中获得代码执行,那么"邪恶清理者"攻击者就有可能安装一个引导套件,该套件本身会在内存中存在派生密钥时运行(或在仍可派生密钥时运行),从而危及使用密码或启动密钥(代替 TPM 或作为 TPM 的补充)的系统。