2023年3月,一个称为“Money Message”的勒索组织攻击了MSI的内网系统。在实施攻击期间,攻击者设法提取了超过1.5TB的公司内部数据,其中包括微星的CTMS和ERP数据库,以及各类源代码,私钥、固件和相关工具。

据BleepingComputer 报道,勒索组织向MSI索要 400 万美元赎金的同时承诺不披露获取的数据,但MSI拒绝了勒索组织的要求,在未支付赎金后,“Money Message”开始在其数据泄露网站上泄露MSI 的数据。

可以看到在泄露的数据中,包括一个源码文件夹,和3个较大的转储文件。在源码目录中,分为BIOS、BMC、EC等目录。

Money Message数据泄露网站上泄露的MSI内部资料。来源:BleepingComputer

在公布的泄露数据中包含Intel(授权)给OEM厂商的私钥,这些私钥用于对发布的固件进行数字签名,并使用Intel Boot Guard技术提供基于硬件信任根的安全机制。

Intel Boot Guard 技术是 Intel公司在硬件中内置的一项安全机制,旨在防止加载恶意固件,如UEFI Bootkits。它是用于满足 Windows UEFI 安全启动要求的关键功能。

恶意固件在操作系统启动之前加载,它可以向内核和各类安全软件隐藏其活动和行为,即使在重新安装操作系统、更换硬盘后仍然保持存活;可对抗各类杀毒软件及主流EDR系统。

为了防止恶意固件,Intel Boot Guard 将验证是否使用合法的私钥对固件镜像进行了签名,而该私钥对应的公钥哈希则嵌入到PCH(Platform Controller Hub)硬件内置的OTP存储器中(FPFs),物理上无法修改。如果UEFI固件验签合法,Intel Boot Guard 将允许它继续加载。否则,如果验签失败将不允许设备继续加载UEFI固件。

在泄露的资料中,包括2类签名密钥,他们的作用如下:

  • Firmware Image Signing Keys “固件签名密钥”:官方升级程序在写入到flash前对固件进行签名验证的主要安全机制。如果泄露,则可以为恶意修改的固件生成正确的数字签名,以便MSI官方Flash工具将恶意修改的固件写入主板Flash中;

  • Intel BootGuard Keys “Intel BootGuard密钥”:在UEFI固件引导启动阶段,系统对每一个组件进行验签的机制。如果攻击者拿到BootGuard Keys,则可以破坏 UEFI 安全启动验证机制。

需要注意的是,Intel BootGuard密钥是由系统制造商(OEM)生成的,不是Intel签名的私钥。

在本次泄露中,至少有57种MSI产品受固件签名私钥泄露影响,166种 MSI产品受BootGuard私钥泄露影响。其中,大多数是笔记本设备。固件供应链安全专家Matrosov 表示,此次泄漏可能导致 Intel Boot Guard 在使用“11代 Tiger Lake、12代 Adler Lake 和 13代Raptor Lake”CPU 的 MSI 设备上无效。

值得注意的是,有消息称“Intel Boot Guard 密钥泄漏影响了整个Intel设备生态系统,而不仅是 MSI设备。BootGuard的密钥不仅限于破坏 MSI 产品,还可用于攻击使用11、12和 13 代Intel处理器的其他制造商的硬件(例如Intel、联想和超微主板)。此外,暴露的密钥可用于攻击使用Intel CSME(融合安全和管理引擎)控制器的其他验证机制,例如 OEM 解锁、ISH(集成传感器集线器)固件和 SMIP(签名主镜像配置文件)。

此次泄漏的最大问题是用于验证固件签名的公钥哈希被写入到Intel硬件中,且无法修改,导致使用这些泄露密钥的设备上的安全机制将不再值得信赖。说起x86固件安全机制,Intel架构系统中存在多项与UEFI相关的信任链和签名机制,其中部分如下所示:

·Intel"s ACM public key hash (in FPFs and updatable in microcode)

·Intel"s ACM public key in the ACM header

·OEM root public key hash (OTP fuses in the PCH, delivered from ME to x86)

·OEM root public key in the Bootguard Key Manifest in the flash

·OEM per-model public key stored in Bootguard Key Manifest in the flash

·OEM Key Manifest Security Version Number (KMSVN, stored in fuses in PCH)

·Bootguard Key Manifest(BKM或KM) signed by OEM root public key(协同KMSVN 防止回滚攻击)。

·Bootguard Boot Policy Manifest(BPM), signed by OEM per-model public key

·Bootguard region hashes, stored in Boot Guard ACM (决定Bootguard对哪些区域进行签名验证)

注:此处有2种情况:早期intel官方表示Bootguard Key Manifest (KM) 是由 Intel 公司签名,而不是由 OEM 签名。而新的官方声明表示:BootGuard公私钥是由系统制造商(OEM)生成的,即OEM root public key / OEM per-model public key,不是Intel签私钥。OEM 可以使用其root public key对 Bootguard Boot Policy Manifest (BPM) 进行签名。BPM 文件包含了一组启动策略,用于验证系统启动过程中的各个阶段。

Intel"s ACM public key 是指 Intel 公司的认证代码模块 (ACM) 所使用的公钥。ACM 是一种特殊的代码模块,用于验证系统启动过程中的各个阶段。ACM 由 Intel 公司签名,以确保其完整性和真实性。在系统启动过程中,ACM 使用其公钥来验证下一阶段的启动代码,并确保其来自于受信任的源。ACM 的公钥是存储在 Boot Guard Key Manifest (BKM) 文件中的一组公钥之一,用于验证 ACM 的签名。只有使用正确的公钥签名的 ACM 才能被 Boot Guard 所接受和使用。这样可以确保系统启动过程中的完整性。

Hardcore Matrix团队将持续关注本次MSI数据泄露事件,分析评估泄露的密钥对产业界的影响,并已在RedHarpoon基础架构威胁检测系统中加入相应的检测机制。

声明:本文来自Hardcore Matrix,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。