概述
传统的黑客攻击原则认为,一旦攻击者获得对设备的物理访问权限,设备的安全性就无法保障。然而,在云计算时代,这一原则不再普遍适用。芯片制造商通过在硬件中嵌入保护机制,确保即使服务器被物理篡改或感染恶意软件,敏感数据仍无法被未经授权者访问。然而,一项名为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保护的虚拟机中插入不可检测的后门。
攻击步骤
- 篡改内存模块:通过硬件或软件篡改SPD芯片,使其错误报告内存容量。
- 配置操作系统:配置操作系统忽略新增的“幽灵内存”,继续映射到真实内存的下半部分。
- 寻找内存别名:利用BadRAM脚本快速找到幽灵内存的地址,这些别名允许攻击者访问本应受保护的内存区域。
- 绕过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技术的严重漏洞,表明即使在硬件层面实施保护措施,仍可能被物理攻击者绕过。研究人员建议在设计系统时充分考虑此类攻击的潜在风险,并采取相应的防护措施。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。