Hotdry.

Article

Fabricked:AMD Infinity Fabric 配置错误导致的 SEV-SNP 安全隔离绕过分析

通过 Infinity Fabric 配置错误实现 AMD SEV-SNP 安全隔离绕过的硬件级攻击路径与防御边界分析。

2026-05-18security

在云原生计算场景中,机密计算(Confidential Computing)是保障数据在使用过程中隐私安全的核心技术。AMD SEV-SNP(Secure Encrypted Virtualization-Secure Nested Paging)通过硬件隔离的机密虚拟机(CVM)为云租户提供强安全边界,使其 workloads 在云端运行时不受云服务商本身的影响。然而,来自苏黎世联邦理工学院(ETH Zurich)安全与可信系统团队的最新研究表明,这一安全模型存在根本性缺陷 —— 攻击者可以在不接触物理硬件的情况下,仅通过软件层面的固件篡改实现 100% 成功率的隔离绕过。这一攻击被命名为 Fabricked(CVE-2025-54510),已被 AMD 确认为在 Zen 3、Zen 4 和 Zen 5 EPYC 处理器上均可利用。

Chiplet 时代的高速互联与安全盲区

理解 Fabricked 的攻击原理,需要首先理解现代 AMD SoC 的架构演变趋势。当芯片制程逼近物理极限,单芯片容纳的晶体管数量受到良率与成本的严重制约,AMD 率先在其 EPYC 服务器处理器家族中大规模采用 chiplet(小芯片)设计:CPU 核心、内存控制器、I/O 控制器各自在独立硅片上制造,再通过高速互联绑定在一起。这一设计显著提升了制造良率,但也引入了前所未有的复杂性 —— 原本在单芯片内部通过固定金属线完成的核间通信,如今必须在芯片间通过可编程的互联结构完成。

AMD 为此设计了 Infinity Fabric—— 一种双平面架构的高速互联系统。其 Data Fabric 负责在核心、内存控制器和 I/O 子系统之间路由内存读写事务,追求高带宽与低延迟;Control Fabric(也称 SMN,System Management Network)则作为内部配置总线,将 SoC 上所有组件的配置寄存器暴露给固件和虚拟机监控器(hypervisor)。通过 Control Fabric,云服务商可以在平台启动时动态配置内存路由规则、地址映射关系和组件行为。这种灵活性正是 chiplet 架构正常运作的基础,但同时也是 AMD SEV-SNP 安全模型中的一个隐性裂缝。

SEV-SNP 的信任传递链条与 PSP 的角色

在 AMD SEV-SNP 的威胁模型中,云租户必须假设云服务商的控制平面完全不可信 —— 包括 UEFI/BIOS 和 hypervisor 均被视为潜在攻击者。硬件本身则通过 Platform Security Processor(PSP)建立根信任:PSP 是一个驻留在 CPU 芯片上的安全协处理器,在每次系统启动时独立完成初始化,负责建立和验证 CVM 的安全边界。其核心任务是初始化 RMP(Reverse Map Table)—— 一个强制执行内存访问控制规则的关键数据结构。RMP 记录了每个物理页面的所有者信息,确保只有持有正确权限的 CVM 才能访问其对应的内存区域。

这条信任链的关键假设是:PSP 发出的内存读写事务将被正确地路由到 DRAM 中的目标地址。RMP 初始化的每一步都依赖于 PSP 对内存写入的完成确认 —— 如果某些关键写入被无声地丢弃或重定向,PSP 将继续执行后续的验证步骤,而不会察觉到安全数据结构实际上从未被正确初始化。这就是 Fabricked 攻击的核心思路。

Fabricked 的四步攻击路径

Fabricked 的攻击执行分为四个精确的阶段,每一个阶段都利用了 AMD 安全架构中的特定配置时序。

第一步:破坏 Infinity Fabric 锁定机制。 在标准平台启动流程中,UEFI 负责在 SEV-SNP 激活前锁定 Infinity Fabric 的关键配置寄存器。一旦被锁定,即使后续运行的 hypervisor 也无法修改这些路由规则 —— 这是 AMD 期望的安全边界构建方式。Fabricked 攻击者首先修改 UEFI 固件,删除或跳过这些锁定 API 调用。由于 AMD 在威胁模型中明确将 UEFI 视为不可信组件(云服务商通常使用定制 UEFI 实现),攻击者完全可以实施此类修改而不超出既定的攻击者能力假设。

第二步:通过 Hypervisor 重路由内存事务。 UEFI 修改完成后,平台正常启动,hypervisor 获得控制权。由于 Infinity Fabric 的关键配置未被锁定,hypervisor 可以重新写入路由规则,将原本应该发往 DRAM 的内存事务重定向到其他位置。这一步骤是纯软件攻击,不需要任何物理访问或特权提升 ——hypervisor 权限在此场景下已属最高级别。

第三步:截获 PSP 的 RMP 初始化写入。 PSP 在 SEV-SNP 初始化过程中需要向 DRAM 写入关键数据结构,包括 RMP 的初始条目。由于 Infinity Fabric 路由规则已被篡改,PSP 发出的写事务被无声地丢弃 —— 它们从未到达 DRAM,但 PSP 也不会收到任何错误信号。这一行为源于 AMD 对 Infinity Fabric 的设计假设:在受信任的软件环境中,路由规则一旦设定便不会被恶意修改。

第四步:获得 CVM 内存的任意读写能力。 RMP 未被正确初始化后,其内部保留的是 hypervisor 预先植入的不安全默认条目。当后续云租户的 CVM 启动时,硬件的 RMP 检查机制看起来正常运行,但实际上无法阻止 hypervisor 访问任意 CVM 内存 ——hypervisor 可以通过控制 RMP 条目来映射任意物理页面为己所用。这意味着整个 SEV-SNP 的内存隔离保证被彻底瓦解。

技术定性与影响范围

研究团队将此攻击定性为完全确定性、软件层面的零点击漏洞利用,成功率为 100%。攻击不依赖任何运行在目标 CVM 内部的代码,也不要求攻击者拥有物理服务器访问权限 —— 这使其成为云环境下的高度实用威胁。所有条件归结为一点:攻击者需要具备修改 UEFI 和控制 hypervisor 的能力,而这正是 AMD 在 SEV-SNP 威胁模型中明确标注的不可信组件。

受影响硬件覆盖 AMD Zen 3、Zen 4 和 Zen 5 代 EPYC 处理器。AMD 已在官方安全公告(amd-sb-3034)中发布固件更新,要求云服务商更新其平台 UEFI 以强制锁定 Infinity Fabric 配置寄存器。值得注意的是,研究团队在同一研究线路上还发现了另一相关攻击 BreakFAST(IEEE S&P 2026),它针对 Infinity Fabric 的 I/O 交叉开关组件,可以将 PSP 读写事务重定向到片上控制结构,从而劫持 Control Fabric 本身。两者同属 XCA(Interconnect Corruption Attacks,互联腐败攻击)家族,但 Fabricked 侧重于破坏内存完整性,而 BreakFAST 侧重于控制平面劫持。

防御边界与缓解路径

Fabricked 的本质是固件层的配置完整性问题。在 AMD 推出硬件层面的修复(强制在硬件级别锁定关键 Infinity Fabric 寄存器)之前,云服务商必须确保 UEFI 固件的可信供应链 —— 这在多租户云环境中本身就是一个复杂的安全工程问题。对于选择 SEV-SNP 实例的用户而言,当前阶段最实际的缓解措施是依赖云服务商及时 apply AMD 发布的微码和固件更新,并验证其平台确实启用了最新的安全配置。

这一攻击也揭示了机密计算领域的深层挑战:当性能优化的互联设计遭遇严格的隔离要求时,原本属于硬件配置层面的错误假设会在安全边界上制造难以察觉的裂缝。随着 chiplet 架构成为主流、SoC 内部互联的复杂性持续增长,类似 Fabricked 的攻击类别可能在未来数年持续出现。

资料来源:Fabricked 研究页面(https://xca-attacks.github.io/fabricked/),USENIX Security 2026。

security

内容声明:本文无广告投放、无付费植入。

如有事实性问题,欢迎发送勘误至 i@hotdrydog.com