近日,有消息称,一组研究人员 开发了一种新的侧通道攻击技术,称为 SLAM (Spectre 线性地址掩码),它利用 Spectre 级微架构漏洞,可以绕过硬件保护并暴露内核内存密码哈希。
SLAM 是一种基于瞬时执行的攻击,利用记忆特性 它允许软件使用 64 位线性地址中的未翻译数据位来存储内核元数据。接着就,随即, 攻击者可以操纵代码中的指令 软件以泄露敏感数据的方式触发执行,包括来自各种程序甚至操作系统的信息。
该威胁利用基于非规范地址转换的新隐蔽通道,促进通用 Spectre 设备的实际利用,从而泄露有价值的信息。
虽然 LAM 是 Intel 用于此类攻击的术语,但它的意思是线性地址掩码。 Arm 将其称为顶部字节忽略 (TBI),AMD 将其称为高地址忽略 (UAI),但这三者以不同的方式实现相同的功能。
至于哪些 CPU 受到影响,研究人员提到了以下内容:
- 现有 AMD CPU 容易受到 CVE-2020-12965 的影响。
- 未来支持 LAM(4 级和 5 级分页)的 Intel CPU。
- 未来的 AMD CPU 将支持 UAI 和 5 级分页。
- 未来的 Arm CPU 支持 TBI 和 5 级分页。
与 Spectre 漏洞的利用类比, SLAM 攻击需要存在特定的指令序列(小工具)和n 导致指令推测执行的核心。 这些指令会导致根据攻击者可以影响的外部条件从内存中推测性地读取数据。
一旦确定预测不正确,则推测执行的结果将被丢弃,但 处理后的数据保留在缓存中,稍后可以使用侧通道分析进行检索。为了提取已存储在缓存中的数据,研究人员 他们使用 Evict+Reload 方法,该方法基于创建条件从缓存中移动数据 (例如,创建一个用典型内容统一填充缓存的活动)并执行其执行时间允许判断处理器缓存中是否存在数据的操作。
为了进行 SLAM 攻击,需要使用基于代码的设备,其中攻击者控制的数据用作指针。需要注意的是,这些代码模式经常在程序中使用,例如,Linux内核中已识别出数以万计的此类设备,其中至少有数百个适合在漏洞利用中使用。
可以通过向此类设备添加附加指令来防止泄漏 阻止推测执行。英特尔打算在推出支持 LAM 的处理器之前提供软件防泄漏方法。 AMD 建议使用现有方法来阻止 Spectre v2 攻击。为了防御攻击,Linux 内核开发人员决定默认禁用 LAM 支持,直到 Intel 发布建议来阻止该漏洞。
最后,值得一提的是, 研究人员公布了该方法的实现 他们演示了如何从内核内存中提取与给定掩码相对应的数据。眼下, 此漏洞与 CPU 无关, 但它已被证明只能在 Linux 上运行,Linux 已经创建了一个补丁来默认禁用 LAM,直到有进一步说明为止。
最后,如果您有兴趣了解更多,可以查阅详情 以下链接。