苏黎世联邦理工学院的研究人员发现了一种新型瞬态执行攻击,能在所有型号的 AMD Zen CPU上执行特定命令并泄露敏感数据。
瞬态执行攻击利用了CPU上的推测执行机制,该机制旨在让CPU处理比较费时的任务时预先设置下一步操作或结果,以此提高CPU性能。但问题在于这可能会留下可供攻击者观察或分析的痕迹,以检索本应受到保护的有价值数据。
研究人员将一种名为“幻影推测”的旧漏洞(CVE-2022-23825)与一种名为“瞬态执行训练”(TTE) 的新瞬态执行攻击相结合,创建了一种更强大的“初始” 攻击。“幻影推测”允许攻击者触发错误预测,在任意 XOR 指令处创建推测执行周期(瞬态窗口);TTE 则是通过向分支预测器注入新的预测来操纵未来的错误预测,以此来创建可利用的推测执行。
该攻击所能利用的漏洞已被追踪为CVE-2023-20569,允许攻击者使CPU相信XOR指令(简单的二进制运算)是递归调用指令,进而导致攻击者控制的目标地址溢出返回堆栈缓冲区,从而允许攻击者从任何 AMD Zen CPU 上运行的非特权进程中泄露任意数据。
Inception逻辑图
通过此种 Inception攻击实现的数据泄露速率为每秒39 字节,窃取 16 个字符的密码大约需要半秒,窃取 RSA 密钥需要 6.5 秒。
如何防止 Inception 攻击?
研究人员表示,所有基于 AMD Zen 的 Ryzen 和 EPYC CPU都容易受到 Phantom 和 Inception 的攻击。
尽管研究人员创建的概念验证旨在 Linux 上执行,但这些攻击可能适用于任何使用AMD CPU 的操作系统,因为这是一个硬件缺陷,而不是软件缺陷。
缓解这一问题的策略是在不信任上下文之间切换时,完全刷新分支预测器状态,但在较老的 Zen 1(+) 和 Zen 2 CPU 上会带来 93.1% 到 216.9% 的性能开销。对于 Zen 3 和 Zen 4 CPU,虽然最初缺乏对此缓解策略的足够硬件支持,但 AMD 此后发布了微代码更新以启用此功能,建议基于 Zen 的 AMD 处理器的用户安装最新的微代码更新。
此外,AMD最新表示,Inception只能在本地被利用,例如通过下载恶意软件,并建议客户采用安全最佳实践,包括运行最新的软件和恶意软件检测工具。目前AMD 尚未发现研究环境之外对Inception有任何利用。