AMD 已确认 AMD Zen 3 CPU 存在遭受 Spectre-STL 攻击的潜在漏洞

AMD发布了一份报告,分析Zen 3系列处理器中实现的PSF(预测存储转发)优化技术的安全性,该研究从理论上证实了4年2018月确定的Spectre-STL(Spectre-vXNUMX)攻击方法的适用性, PSF技术,但在实践中,尚未发现能够导致攻击的代码模板,总体危险评估为微不足道。

让我们回想一下,Spectre-v4(推测性存储绕过)攻击是基于在使用间接寻址处理交替写入和读取操作时丢弃推测执行操作的结果后恢复已在处理器缓存中稳定的数据。 当读操作在写操作之后(例如,mov [rbx + rcx], 0x0; mov rax, [rdx + rsi])时,由于正在执行类似的操作(读操作是执行更频繁,并且可以从缓存执行读取)并且处理器可以在写入之前推测性地执行读取,而无需等待计算写入的间接偏移量。

此功能允许读取指令在存储操作尚未完成时访问某个地址的旧值。 如果存在预测错误,则不成功的推测操作将被丢弃,但其执行痕迹将保留在处理器高速缓存中,并且可以通过基于访问变化分析确定高速缓存内容的方法之一来检索缓存和未缓存数据的时间。

PSF 添加到 AMD Zen 3 处理器中,优化了 STLF(存储到加载转发),它通过预测读写操作之间的关系来推测性地执行读取操作。 当使用经典的 STLF 时,处理器对从上一个“store”命令直接转发的数据执行“load”操作,而不需要等待结果实际写入内存,而是确保“load”中使用的地址和“存储”命令匹配。 PSF 优化使得地址检查具有推测性,并且如果先前已经执行了操作单个地址的存储/加载对,则在计算地址信息之前执行“加载”操作。 如果预测失败,状态将回滚,但数据仍保留在缓存中。

对PSF的攻击只能在一级权限的框架内进行,仅覆盖当前进程上下文,并被地址空间隔离方法或硬件沙箱机制阻止。 在这种情况下,进程中的软件沙箱方法可能会受到该问题的影响。 该攻击对浏览器、代码执行虚拟机和在单个进程中执行第三方代码的 JIT 等系统构成威胁(该攻击可能允许不受信任的沙箱代码访问其他进程数据)。

AMD 提供了多种完全或选择性禁用 PSF 的方法,但考虑到大多数应用程序的风险可以忽略不计,因此建议默认情况下不要禁用此优化。 为了有选择地保护进程,隔离那些执行不可信代码的进程,建议通过设置“SSBD”和“PSFD”MSR 位来禁用 PSF,包括针对各个线程。 已为 Linux 内核准备了补丁,并实施了“psfd”和“nopsfd”命令行选项,用于控制 PSF 的打开和关闭方式。

来源: opennet.ru

添加评论