新型 GPUThor 攻击突破 NVIDIA ECC 保护实现 root 权限获取
- 浏览次数 2192
- 喜欢 0
一种新披露的名为 GPUThor 的 Rowhammer 攻击能够绕过 NVIDIA GPU 上的纠错码(ECC)保护,实现拒绝服务(DoS)和 root 级权限提升。
在多伦多大学发表的一篇论文中,研究人员表示,GPUThor 实现了比过去的概念(如他们自己的 GPUHammer 或 GPUBreach)更实用的比特翻转率,后者在引入 ECC 后已变得无关紧要。
该攻击针对配备 GDDR6 内存的 Ampere 级 NVIDIA 工作站 GPU 进行了演示,包括 RTX A4000、RTX A4500、RTX A5000 和 RTX A6000,这些 GPU 广泛用于 AI 和云基础设施。
Rowhammer 是一类攻击的统称,其中内存行被反复访问("锤击"),从而增加相邻内存区域中比特翻转的可能性,使其状态从 1 变为 0,反之亦然。
这可能导致数据损坏和安全风险。由于 AI 模型训练严重依赖 GPU 算力,成功的 Rowhammer 攻击可能对模型的准确性产生毁灭性影响。
为了缓解此类攻击的风险,NVIDIA 使用了 SECDED ECC 等缓解措施,以纠正受监控内存块中的单比特错误并检测双比特错误。
然而,多伦多大学的研究人员调整了 GPUThor,使其锤击遵循非均匀模式,速率恰好避免触发 GDDR6 的目标行刷新(TRR)缓解措施。
他们通过考虑两种未记录的 GPU 行为来实现这一点:重复内存请求如何合并,以及 TRR 激活的频率。
研究人员表示,与之前的攻击概念相比,这种调整导致产生 6.6 倍更多的攻击行激活,并在没有 ECC 保护的测试 GPU 上实现了每 GB 72,000 到 377,000 次翻转。
这些结果比研究人员之前的攻击 GPUHammer 高出 4,548 到 23,597 倍,接近 Blacksmith 等强大 CPU Rowhammer 攻击所达到的比特翻转率。
在 GPUThor 的比特翻转率下,找到可利用的比特翻转大约只需 1.1 分钟,而 GPUHammer 则需要 21.9 小时。
研究人员解释说,在启用 ECC 的情况下,GPUThor 生成了 387 个 ECC 能检测但无法纠正的双比特错误,以及两个 ECC 错误修复导致数据损坏的三比特错误。
DoS 与权限提升
多伦多大学的研究人员表明,GPUThor 可以在启用 ECC 的 RTX A6000 上诱导 DoS 状态,导致 GPU 每两小时重置一次,并终止所有工作负载。
在同一张卡上重复攻击后,设备最终会标记自身为需要更换。
更有趣的攻击是将权限提升至 root 级别,研究人员声称这可以通过破坏 GPU 页表来实现,使无特权的 CUDA 程序获得任意内存访问权限,并在主机系统上打开 root shell。
如何防御该攻击
除了确认易受 GPUThor 攻击的四个型号外,研究人员表示,尽管存在一些限制提高了对拒绝服务(DoS)条件的抵御能力,但权限提升在服务器级 Ampere GPU(A100)上仍然有效,因为它们仍依赖 SECDED 级别的 ECC。
在某些 Blackwell GPU 上,RAS Repair 弹性功能使 GPUThor 攻击更加耗时,但并不能阻止它。
根据研究人员昨天发表的 GPUThor 论文,即使是具有片上 ECC 的 HBM3/e 和 GDDR7 GPU,如果触发多比特翻转,也可能存在漏洞。
研究人员于 4 月 29 日向 NVIDIA 报告了他们的发现,8 月 21 日,该公司发布了一份提供指导建议的安全公告。
NVIDIA 建议启用 SYS-ECC 和 IOMMU/DMA 隔离,监控 GPU 错误遥测,并限制共享或执行不受信任的工作负载。
该公司表示,风险因 DRAM 设备、内存技术、平台设计、DRAM 内防御和系统配置而异,并指出在测试的 GDDR6X 或 HBM2e GPU 上使用相同的攻击模式未观察到比特翻转。
研究人员建议尽可能避免跨租户 GPU 共享,监控 ECC 错误计数器,并限制不受信任的 CUDA 工作负载。他们补充说,完全保护可能需要未来 GPU 中更强的多比特 ECC 和硬件级防御。