云安全的噩梦:BadRAM攻击

在黑客圈中,有一个广为流传的说法:“一旦攻击者获得了设备的物理访问权限,任何安全措施都是摆设。”这一观点在传统计算环境下站得住脚。因为无论是手机、计算机还是其他设备,只要攻击者能够物理操控硬件,成功破解或入侵只是时间问题。

在云计算时代,随着本地硬件的消失,对物理访问攻击的恐惧似乎烟消云散了。如今,世界上最敏感的数据——例如健康记录、金融账户信息和机密法律文件等,往往存储在距离数据所有者千里之外的云服务器中。

但是,云计算依然面临物理访问攻击,因为负责服务器日常维护的云计算中心管理员,以及执法人员和黑客都可能访问云服务器。

AMD硬件加密的信任危机:BadRAM攻击

为了应对新的安全挑战,芯片制造商在其硬件设计中引入了保护措施,试图确保即便服务器被物理篡改或感染恶意软件,通过虚拟机传输的敏感数据仍无法在未获得加密密钥的情况下被访问。AMD的SEV-SNP(Secure Encrypted Virtualization和Secure Nested Paging)技术正是其中的代表。然而,12月5日,一个国际研究团队公布了一项名为“BadRAM”的概念验证攻击,成功突破了AMD这项技术的防线。

该漏洞由比利时鲁汶大学(KU Leuven)、德国吕贝克大学和英国伯明翰大学的研究人员共同发现,漏洞编号为CVE-2024-21944。

BadRAM漏洞的核心原理

现代服务器通常采用双列直插式内存模块(DIMM),其基本单元是存储二进制信息的电容器。存储器控制器需要从DIMM的SPD芯片中读取内存容量和配置信息。BadRAM正是利用了SPD芯片未锁定的安全漏洞,通过简单的硬件或软件修改欺骗处理器。

BadRAM攻击首先篡改商用动态随机存取存储器(DRAM)模块上的SPD(串行存在检测)芯片,让内存容量在启动时虚假报告为实际容量的两倍。攻击者仅需花费10美元购买硬件(如Raspberry Pi)或通过软件操作,在几分钟内完成对内存模块的欺骗性配置。被篡改的SPD芯片会持续报告虚假内存容量,进而让处理器在访问加密内存时误入“幽灵地址”(Ghost Memory),这些地址实际上映射到真实的内存区域。

研究人员发现,这种攻击可以绕过AMD SEV-SNP的加密保护,甚至能够伪造远程验证报告,将后门程序插入任何SEV保护的虚拟机中,而不会触发任何警报。

BadRAM攻击的步骤如下:

  • 内存模块篡改:篡改SPD芯片以报告虚假容量,制造“幽灵地址”。
  • 幽灵地址映射:通过操作系统忽略虚假内存地址的高半部分,仅使用低半部分。
  • 内存保护绕过:利用别名地址访问受保护的内存区域,从而读取和修改敏感数据。
  • 伪造验证报告:通过替换虚假的成功验证哈希,掩盖对虚拟机的后门入侵。

研究团队的报告指出,攻击者可以轻松定位这些“幽灵地址”,从而访问SEV-SNP原本应保护的内存区域,进而对虚拟机的完整性进行恶意操控。

未来隐患与对策

AMD在收到漏洞报告后迅速向受影响的客户发布了固件补丁,并建议使用锁定SPD芯片的内存模块,同时加强物理安全措施。AMD在声明中指出,利用这一漏洞需要物理访问或操作系统内核权限,因此建议用户遵循最佳安全实践。

尽管BadRAM攻击目前主要针对AMD SEV-SNP技术,但研究人员警告,这一设计缺陷可能扩展到其他系统。他们呼吁在系统设计时全面考虑DRAM的潜在风险,并应用类似AMD更新中提供的缓解措施。研究人员总结道:“虽然当前的对策能够有效应对,但更高级的硬件攻击可能绕过这些措施,这需要进一步研究以评估潜在影响。”

值得注意的是,研究人员对与AMD SEV-SNP对标的英特尔SGX技术也进行了测试,发现经典版SGX(现已停产)确实允许读取受保护区域,但不允许写入。然而,当前的英特尔可扩展SGX和英特尔TDX处理器不允许读取或写入。

参考链接:

https://badram.vanbulck.net/badram.pdf

前一篇只需一个暗号,即可戳穿语音克隆骗局
后一篇谷歌发布量子芯片为何引发比特币暴跌?