G.O.S.S.I.P 阅读推荐 2026-09-08 内存又坏了?

· 2026-09-08 20:22 · 3 阅读

原创 G.O.S.S.I.P 2026-09-08 20:22 上海

DRAM Bad Again~

大家是否还记得今年6月公众号上的G.O.S.S.I.P 阅读推荐 2026-06-10 “坏”内存攻击!这篇文章?在2025和2026年的IEEE S&P会议上先后提出了BadRAM和Battering RAM攻击的研究团队,揭示了通过破坏内存的物理功能来实施安全攻击的方法。特别地,在BadRAM攻击曝光后,AMD提供了针对BadRAM的缓解措施——基于在启动时的静态别名检测,而2026年的Battering RAM攻击通过升级物理攻击设备来创建动态的内存地址别名,可以绕过AMD原有的缓解措施,从而继续制造攻击效果。

今天向大家介绍的这篇由中科院软件所和密码学院研究团队发表在USENIX Security2026的攻击论文 Jailbreaking the AMD Secure Processor: Enabling Live Analysis of SEV-SNP’s Undocumented Security Boundaries同样绕过了AMD针对BadRAM的缓解措施,重启了类似攻击。与Battering RAM的思路不同,这篇文章使用原有的BadRAM攻击原语进一步攻陷了AMD SoC上的安全协处理器(ASP),最终绕过了BadRAM的缓解措施

作为一块(特别的)ARM处理器,ASP安全协处理器是一颗在x86芯片上的ARM A5处理器,在x86核心启动前启动,拥有最高权限,也负责SEV-SNP相关功能的实现,比如内存加密密钥管理,证明报告签署,其中也包括BadRAM的缓解措施检测和汇报,论文作者实现了这块ARM处理器上的任意代码执行,从而完成了包括伪造证明报告在内的多种攻击。

值得一提的是,ASP的代码在其SRAM中运行,而BadRAM攻击通过内存别名的方式最多只能读写到受保护Host DRAM中的数据,那么本文作者究竟是如何实现对ARM SRAM的篡改的?在论文中,作者介绍了他们的方法:通过对黑盒的ASP固件进行了充分的逆向,作者发现,在内存初始化时,内存控制器会在Host DRAM顶端划分出一块受保护的8MB的内存专供ASP使用,称为Secure DRAM。如下图所示,AMD SEV-SNP支持hypervisor通过ABI发起ASP SEV-SNP固件热更新,而完成签名验证后的固件镜像在拷贝到ASP的SRAM前则会先缓存在Secure DRAM中。假如可以在合法固件拷贝到Secure DRAM并完成签名校验之后、从Secure DRAM拷贝到ASP SRAM之前,对其中的固件进行篡改,便可完成TOCTOU攻击,使得ASP加载恶意镜像。作者发现,使用BadRAM攻击原语,可以绕过这块内存的完整性保护,获得对这块Secure DRAM的读写能力,从而为上述攻击提供了可能性。

不过别急,即便现在已经绕过了完整性保护,作者发现这块内存还额外受到AES-128-XeX透明加密保护,加密方式类似于机密虚拟机的内存页加密,加密密钥则由ASP单独管理,此外,这块内存页使用了特殊的管理方式(并不是线性映射),这些都给定位内存中的数据结构和实现TOCTOU攻击增加了难度。

为了定位这块内存,作者对所有不存在别名的内存页进行了熵分析(因为Secure DRAM没有原始可访问地址,只有别名地址),随后反复加载不同固件并对密文内存进行diff来定位其中的结构体。为了绕过机密性保护,作者则是利用了XeX内存加密方式的特性(相同明文在相同地址会被加密到相同密文),预采集恶意镜像密文并在TOCTOU攻击中重放,从而实现稳定利用。

经过这些步骤,作者最终在旧版本固件上得到了稳定的ASP任意代码执行的权限。紧接着,作者又研究了在这个旧版本ASP固件(没有BadRAM缓解措施)上的ASP任意代码执行如何影响最新版本(带有BadRAM缓解措施)的ASP固件。作者注意到,BadRAM缓解措施是否开启,是通过在证明报告中汇报一个Mitigation bit实现的,获得ASP任意代码执行权限后,敌手可以任意报告这个bit。同时,作者发现在冷启动时组合最高版本TCB的ASP bootloader和对内存别名检测无感知的SEV-SNP固件,系统并不会拒绝启动,结合对SEV-SNP固件头进行同样的TOCTOU攻击,敌手可以保证签名的VCEK是最新的。最终,敌手可以伪造一个和最新版本相同的SEV-SNP证明报告。

此外,作者还发现了另一个独立的GCTX静态密钥攻击:GCTX页是存储SEV-SNP机密虚拟机的元数据(包括内存加密密钥)的页,作者发现由于这个密钥并没有和固件版本绑定,敌手可以预先dump内存页,随后通过降级固件,经过任意代码执行来解密新版本固件上运行的机密虚拟机的内存页。

除了以上两个攻击外,作者还发现了一个权限提升攻击,允许攻击者从SEV-SNP固件所在的EL0等级提升至Bootloader所在的EL1等级。作者于2025年4月至7月向AMD负责任地披露了这些攻击。针对这些攻击,AMD于2025年12月通过固件更新提供了对应缓解措施,并在2026年8月发布了对应的安全公告。值得一提的是,这些核心漏洞的发现者(同时也是论文一作)沈牧言同学也是G.O.S.S.I.P的老朋友了,他曾经在我们组开展了一段时间的实习工作,目前在北京继续攻读博士学位,我们向他的杰出研究工作表示祝贺!

https://www.amd.com/en/resources/product-security/bulletin/amd-sb-3033.html


论文:https://www.usenix.org/system/files/usenixsecurity26-shen.pdf

跳转微信打开