一个故障统治一切:针对 AMD 安全加密虚拟化的故障注入攻击
密码学与安全
2021-08-27 v4
摘要
AMD 安全加密虚拟化 (SEV) 通过内存和寄存器加密,为不可信环境中的虚拟机提供保护机制。为了将安全敏感操作与在主 x86 核心上执行的软件隔离开来,SEV 利用了 AMD 安全处理器 (AMD-SP)。本文提出了一种通过针对 AMD-SP 来攻击受 SEV 保护的虚拟机 (VMs) 的新方法。我们提出了一种电压毛刺攻击,允许攻击者在目前市场上所有支持 SEV 的微架构(Zen 1、Zen 2 和 Zen 3)的 AMD-SP 上执行自定义有效载荷。所提出的方法使我们能够在 AMD-SP 上部署自定义 SEV 固件,从而使攻击者能够解密 VM 的内存。此外,利用该方法,我们可以提取支持 SEV 的 CPU 的背书密钥,这使我们能够伪造证明报告,或在无需物理访问目标主机的情况下伪装成 VM 迁移的有效目标。此外,我们逆向工程了随 SEV 安全嵌套分页 (SEV-SNP) 引入的版本化芯片背书密钥 (VCEK) 机制。VCEK 将背书密钥绑定到与 SEV 相关的 TCB 组件的固件版本。基于提取背书密钥的能力,我们展示了如何为任意固件版本推导出有效的 VCEK。基于我们的发现,我们证明 SEV 无法在当前可用的 CPU 上充分保护云环境中的机密数据免受内部攻击者(如恶意管理员)的威胁。
引用
@article{arxiv.2108.04575,
title = {One Glitch to Rule Them All: Fault Injection Attacks Against AMD's Secure Encrypted Virtualization},
author = {Robert Buhren and Hans Niklas Jacob and Thilo Krachenfels and Jean-Pierre Seifert},
journal= {arXiv preprint arXiv:2108.04575},
year = {2021}
}