2012 年,一个由硬件和软件制造商组成的行业联盟采用了安全启动技术,以防范长期存在的安全威胁。这种威胁是恶意软件的幽灵,它可以感染 BIOS,即每次计算机启动时加载操作系统的固件。从那里,它可以保持不受检测和删除,甚至可以在操作系统和安全应用程序加载之前加载。
这种 BIOS 恶意软件的威胁在很大程度上是理论上的,很大程度上是由2007 年一位中国研究人员创建的ICLord Bioskit所推动的。ICLord 是一种rootkit ,这种恶意软件通过破坏操作系统内置的关键保护来获得并保持隐秘的 root 访问权限。
概念验证表明,这种 BIOS rootkit 不仅可行,而且功能强大。2011 年,随着Mebromi的发现,这种威胁变成了现实,这是第一个已知的在野外使用的 BIOS rootkit。
安全启动架构师敏锐地意识到 Mebromi及其可能引发的新型破坏性攻击,因此他们制定了一种复杂的新方法来加强预启动环境的安全性。安全启动内置于 UEFI(统一可扩展固件接口,将成为 BIOS 的后继者)中,使用公钥加密来阻止加载任何未使用预先批准的数字签名进行签名的代码。
直到今天,安全领域的主要参与者(其中包括微软和美国国家安全局)都将安全启动视为重要(甚至必不可少)的信任基础,用于保护某些最关键环境(包括工业控制和企业网络)中的设备。
无限安全启动绕过
周四,安全公司 Binarly 的研究人员透露,宏碁、戴尔、技嘉、英特尔和超微销售的 200 多种设备型号的安全启动功能已完全被攻破。原因:这些型号的安全启动功能所依赖的加密密钥在 2022 年遭到入侵。在当年 12 月提交的公共 GitHub 存储库中,为多家美国设备制造商工作的某人发布了所谓的平台密钥,即构成硬件设备与在其上运行的固件之间的信任根锚的加密密钥。该存储库已被删除。
该存储库以加密形式包含平台密钥的私有部分。然而,加密文件受四个字符的密码保护,这一决定使得 Binarly 以及任何好奇心强的人都能轻松破解密码并检索相应的纯文本。密钥的泄露在很大程度上没有引起人们的注意,直到 2023 年 1 月,Binarly 研究人员在调查一起供应链事件时发现了它。现在泄漏事件曝光,安全专家表示,这实际上破坏了安全启动提供的安全保障。
这是一个大问题,对于使用此平台密钥的设备来说,这基本上是一种不受限制的安全启动绕过。因此,在设备制造商或 OEM 提供固件更新之前,任何人基本上都可以……在系统启动期间执行任何恶意软件或不受信任的代码。当然,需要特权访问,但在很多情况下这不是问题。
Binarly 研究人员表示,他们对固件映像的扫描发现了 215 台使用被泄露密钥的设备,这些设备可以通过证书序列号 55:fb:ef:87:81:23:00:84:47:17:0b:b3:cd:87:3a:f4 来识别。本文末尾的表格列出了每台设备。
研究人员很快发现,密钥泄露只是更大规模供应链崩溃的开始,这引发了人们对几乎所有主要设备制造商的 300 多种其他设备型号的安全启动完整性的严重怀疑。与 2022 年 GitHub 泄漏中泄露的平台密钥一样,另外 21 个平台密钥包含字符串“请勿发货”或“请勿信任”。
安全启动简介
使安全启动发挥作用的四个关键资源是:
1. 平台密钥(PK):以嵌入系统固件的加密密钥形式提供信任根锚。它在平台硬件和在其上运行的所有固件之间建立信任。
2. 密钥交换密钥(KEK):这是在操作系统和平台固件之间建立信任的密钥。
3. 签名数据库或 DB:包含硬件制造商批准的第三方 UEFI 组件和引导加载程序的可信签名和证书的数据库。
4. 禁止签名数据库或 DBX:用于撤销先前受信任的启动组件的签名和证书数据库,以便它们不再可以在启动期间运行。
DB 和 DBX 的更新都必须由安全启动 KEK 数据库中的 KEK 签名。
以下三张图片分别由 Binarly、Microsoft 和 NSA 提供,直观地概述了这四种主要资源。