近日,阿姆斯特丹自由大学的研究人员披露了一种名为 SLAM 的新型侧信道攻击,利用这种攻击可以从Intel、AMD 和 Arm 和即将推出的 CPU 的内核内存中泄漏敏感信息。
这种攻击是一种对 Spectre 的端到端利用方式,也是基于Intel CPU 的一项新功能,被称为线性地址掩码(LAM),以及 AMD 和 Arm 的类似功能。
VUSec 的研究人员说:SLAM 利用未屏蔽的小工具,让用户域进程泄漏任意 ASCII 内核数据。
虽然最初 LAM 是作为一项安全功能提出的,但研究的结果非常讽刺,它不仅没有提高安全性反而还降低了安全性,甚至极大程度的增加了 Spectre 的攻击面,导致瞬态执行攻击,利用投机执行通过高速缓存隐蔽通道提取敏感数据。
Intel 在其术语文档中提到:瞬态执行攻击利用了瞬态指令的微架构副作用,从而允许恶意对手访问架构访问控制机制通常禁止访问的信息。
SLAM 被描述为首个针对未来 CPU 的瞬态执行攻击,它利用了基于非规范地址转换的新隐蔽通道,该通道有助于实际利用通用 Spectre 小工具来泄漏有价值的信息。它影响以下 CPU:
- 易受 CVE-2020-12965 影响的现有 AMD CPU
- 未来支持 LAM(4 级和 5 级分页)的 Intel CPU
- 未来支持 UAI 和 5 级分页的 AMD CPU
- 未来支持 TBI 和 5 级分页的 Arm CPU
Arm 在一份公告中提及:Arm 系统已经减轻了 Spectre v2 和 BHB 的影响,软件有责任保护自己免受 Spectre v1 的攻击。所述技术只是通过增加可利用小工具的数量来扩大 Spectre v2 或 BHB 等现有漏洞的攻击面"。
AMD 还指出了当前 Spectre v2 的缓解措施,以解决 SLAM 漏洞。另一方面,Intel 打算在未来发布支持 LAM 的 Intel 处理器之前提供软件指导。在此期间,Linux 维护者已开发出默认禁用 LAM 的补丁程序。
这些发现是在 VUSec 公布 Quarantine 近两个月后得出的,Quarantine 是一种纯软件方法,用于缓解瞬时执行攻击,并通过对最后一级缓存(LLC)进行分区来实现物理域隔离,使每个安全域都能独占访问 LLC 的不同部分,从而消除 LLC 的隐蔽通道。
研究人员表示:Quarantine 的物理域隔离将不同的安全域隔离在不同的内核上,以防止它们共享内核本地微架构资源。此外,它还取消了 LLC 的共享,将其划分给了几个不同的安全域。