[论文解读] Insecure Until Proven Updated: Analyzing AMD SEV's Remote Attestation
本文表明,AMD SEV 远程认证协议在 Epyc Naples CPU 上根本上是不安全的,原因在于 PSP 固件中存在可提取的平台特定密钥。通过攻破固件,攻击者可以伪造 SEV 存在性,解密客户机内存,并绕过所有加密保护机制——这使得 SEV 无法有效抵御不受信的云服务提供商,且不存在可行的纯软件缓解方案。
Customers of cloud services have to trust the cloud providers, as they control the building blocks that form the cloud. This includes the hypervisor enabling the sharing of a single hardware platform among multiple tenants. AMD Secure Encrypted Virtualization (SEV) claims a new level of protection in cloud scenarios. AMD SEV encrypts the main memory of virtual machines with VM-specific keys, thereby denying the higher-privileged hypervisor access to a guest's memory. To enable the cloud customer to verify the correct deployment of his virtual machine, SEV additionally introduces a remote attestation protocol.This paper analyzes the firmware components that implement the SEV remote attestation protocol on the current AMD Epyc Naples CPU series. We demonstrate that it is possible to extract critical CPU-specific keys that are fundamental for the security of the remote attestation protocol.Building on the extracted keys, we propose attacks that allow a malicious cloud provider a complete circumvention of the SEV protection mechanisms. Although the underlying firmware issues were already fixed by AMD, we show that the current series of AMD Epyc CPUs, i.e., the Naples series, does not prevent the installation of previous firmware versions. We show that the severity of our proposed attacks is very high as no purely software-based mitigations are possible. This effectively renders the SEV technology on current AMD Epyc CPUs useless when confronted with an untrusted cloud provider. To overcome these issues, we also propose robust changes to the SEV design that allow future generations of the SEV technology to mitigate the proposed attacks.
研究动机与目标
- 分析 AMD Epyc Naples CPU 上实现 SEV 远程认证的固件组件。
- 识别 PSP 安全启动机制中的漏洞,这些漏洞允许未经授权的固件访问。
- 展示如何利用提取的密钥伪造 SEV 存在性并解密客户机内存。
- 证明回滚至易受攻击的固件版本是可能的,从而破坏对 SEV 的信任。
- 提出一种重新设计的远程认证协议,即使在固件存在缺陷的情况下,也能为未来提供信任保障。
提出的方法
- 逆向分析了 AMD Epyc Naples CPU 上的 PSP 固件,以识别安全启动过程中的缺陷。
- 开发了修补后的固件镜像,以获得对 PSP 内存的任意读写访问权限。
- 从三个不同型号的 AMD Epyc 处理器的 PSP 内存中成功提取了芯片背书密钥(CEK)。
- 利用提取的 CEK 构建攻击,以伪装成受 SEV 保护的平台并解密客户机内存。
- 演示了一种迁移攻击,可利用 CEK 提取加密的虚拟机状态。
- 提出了一种重新设计的远程认证协议,包含固件版本强制机制,以防止信任降级。
实验结果
研究问题
- RQ1能否从 AMD Epyc Naples CPU 的 PSP 固件中提取 SEV 远程认证所用的平台特定私钥?
- RQ2缺乏回滚保护在多大程度上破坏了 SEV 远程认证的安全性?
- RQ3恶意云服务提供商是否可利用提取的 CEK 来解密客户机内存或伪造 SEV 存在性?
- RQ4为何纯软件缓解措施对这些固件级漏洞无效?
- RQ5未来 SEV 设计应如何确保在潜在 PSP 固件被攻破的情况下仍具备可信性?
主要发现
- 芯片背书密钥(CEK)已成功从三款不同 AMD Epyc Naples 处理器的 PSP 固件中提取。
- 提取的 CEK 允许攻击者伪装成合法的 SEV 保护平台,从而实现对远程认证的完全伪造。
- 通过修补后的 SEV 固件,攻击者获得了对 PSP 内存的任意内存访问权限,从而可明文提取加密的客户机内存。
- 可回滚至易受攻击的 PSP 固件版本,且提取的 CEK 始终有效,导致密钥永久性泄露。
- 无任何纯软件缓解措施可恢复安全性,因为漏洞存在于固件和硬件信任根中。
- 当前的 SEV 设计无法保证在 Epyc Naples 系统上正确部署虚拟机,实际上已使 SEV 的安全保证失效。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。