AMD的可信执行环境遭新型BadRAM攻击彻底攻破

概述

传统的黑客攻击原则认为,一旦攻击者获得对设备的物理访问权限,设备的安全性就无法保障。然而,在云计算时代,这一原则不再普遍适用。芯片制造商通过在硬件中嵌入保护机制,确保即使服务器被物理篡改或感染恶意软件,敏感数据仍无法被未经授权者访问。然而,一项名为BadRAM的概念验证攻击揭示了AMD SEV-SNP技术的漏洞,完全破坏了其安全性。

BadRAM攻击的核心

BadRAM攻击利用DDR4或DDR5内存模块在启动时错误报告内存容量的漏洞,绕过AMD的SEV-SNP保护机制。攻击者只需花费约10美元的硬件成本,甚至在某些情况下仅通过软件,即可在服务器启动时篡改内存模块的容量报告,从而永久抑制SEV-SNP的加密哈希验证。

SEV-SNP技术及其漏洞

SEV-SNP是AMD在其Epyc 7003处理器中引入的一项技术,旨在通过加密和隔离虚拟机的内存,防止物理访问者通过后门攻击虚拟机。然而,BadRAM攻击通过篡改内存模块的SPD芯片,使处理器误认为内存容量翻倍,从而绕过SEV-SNP的保护机制。攻击者可以通过此方法伪造远程验证报告,并在任何受SEV保护的虚拟机中插入不可检测的后门。

攻击步骤

  1. 篡改内存模块:通过硬件或软件篡改SPD芯片,使其错误报告内存容量。
  2. 配置操作系统:配置操作系统忽略新增的“幽灵内存”,继续映射到真实内存的下半部分。
  3. 寻找内存别名:利用BadRAM脚本快速找到幽灵内存的地址,这些别名允许攻击者访问本应受保护的内存区域。
  4. 绕过CPU访问控制:通过别名地址绕过内存保护机制,读取和写入敏感数据。

技术细节

BadRAM攻击的核心在于通过修改SPD芯片,使内存地址多出一个“幽灵位”。CPU认为幽灵位为1的地址是新地址,而DIMM忽略该位,导致两个地址指向同一物理内存位置。攻击者通过此方法访问受保护的数据,如启动摘要,并伪造验证报告。

漏洞影响与修复

BadRAM漏洞被追踪为CVE-2024-21944和AMD-SB-3015。AMD已向受影响的客户发布了补丁,并建议使用锁定SPD的内存模块,遵循物理系统安全最佳实践。尽管修复措施已实施,研究人员警告称,BadRAM攻击的设计缺陷可能影响其他系统,建议在设计系统时考虑此类漏洞的缓解措施。

研究团队

研究团队来自KU Leuven、吕贝克大学和伯明翰大学,成员包括Jesse De Meulemeester、Luca Wilke、David Oswald、Thomas Eisenbarth、Ingrid Verbauwhede和Jo Van Bulck。

结论

BadRAM攻击揭示了AMD SEV-SNP技术的严重漏洞,表明即使在硬件层面实施保护措施,仍可能被物理攻击者绕过。研究人员建议在设计系统时充分考虑此类攻击的潜在风险,并采取相应的防护措施。

阅读 9
0 条评论