LVI 是针对 CPU 中推测执行机制的一类新型攻击

已发表 有关新型攻击的信息 LVI (加载值注入, CVE-2020-0551)关于 Intel CPU 中的推测执行机制,该机制可用于从 Intel SGX enclave 和其他进程泄漏密钥和秘密数据。

一类新的攻击基于对攻击中使用的相同微架构结构的操纵 MDS (微架构数据采样), 幽灵与崩溃。 与此同时,现有的针对 Meltdown、Spectre、MDS 和其他类似攻击的防护方法并不能阻止新的攻击。 有效的 LVI 保护需要对 CPU 进行硬件更改。 当以编程方式组织保护时,通过在每次从内存加载操作后由编译器添加 LFENCE 指令并用 POP、LFENCE 和 JMP 替换 RET 指令,会记录过多的开销 - 据研究人员称,完整的软件保护将导致性能提高2-19倍。

阻止该问题的部分难度被以下事实所抵消:该攻击目前的理论性多于实际性(该攻击在理论上是可能的,但很难实施,并且只能在综合测试中重现)。
英特尔 挪用 该问题具有中等程度的危险(满分 5.6 分 10 分)并且 发布 更新了 SGX 环境的固件和 SDK,并尝试使用变通办法阻止攻击。 所提出的攻击方法目前仅适用于Intel处理器,但不排除将LVI应用于其他适用Meltdown类攻击的处理器的可能性。

去年9月,鲁汶大学的研究人员Jo Van Bulck发现了这个问题,之后在其他大学的XNUMX名研究人员的参与下,开发了五种基本的攻击方法,每种方法都允许存在更具体的攻击方法。 选项。 今年 XNUMX 月,Bitdefender 的研究人员还独立地进行了 发现 LVI 攻击变体之一并向英特尔报告。 攻击变体通过使用不同的微架构结构来区分,例如先前使用的存储缓冲区(SB,Store Buffer)、填充缓冲区(LFB,Line Fill Buffer)、FPU上下文切换缓冲区和一级缓存(L1D)在诸如此类的攻击中 ZombieLoad, RIDL, 辐射, 懒惰FP, 预兆 и 崩溃.

LVI 是针对 CPU 中推测执行机制的一类新型攻击

主要 荣誉 针对 MDS 攻击的 LVI 是 MDS 在推测性故障处理或加载和存储操作之后操纵对缓存中剩余的微架构结构内容的确定,而
LVI 攻击允许攻击者的数据插入微架构结构中,以影响受害者代码的后续推测执行。 使用这些操作,攻击者可以在目标 CPU 内核上执行某些代码时提取其他进程中私有数据结构的内容。

LVI 是针对 CPU 中推测执行机制的一类新型攻击

剥削问题 在受害者进程的代码中 应该会见 特殊的代码序列(小工具),其中加载了攻击者控制的值,加载该值会导致抛出异常(故障、中止或协助),丢弃结果并重新执行指令。 处理异常时,会出现一个推测窗口,在此期间小工具中处理的数据会泄漏。 具体来说,处理器开始以推测模式执行一段代码(gadget),然后确定预测不合理,并将操作回滚到原始状态,但推测执行期间处理的数据存放在 L1D 缓存中和微架构缓冲区,并且可以使用已知的方法通过第三方渠道确定残留数据来从中检索。

与“故障”异常不同,“协助”异常由处理器内部处理,而不调用软件处理程序。 例如,当内存页表中的 A(已访问)或 D(脏)位需要更新时,可能会发生协助。 对其他进程进行攻击的主要困难是如何通过操纵受害者进程来发起协助的发生。 目前还没有可靠的方法来做到这一点,但将来可能会找到它们。 到目前为止,仅针对 Intel SGX enclave 确认了进行攻击的可能性,其他场景是理论上的或在合成条件下可重现(需要在代码中添加某些小工具)

LVI 是针对 CPU 中推测执行机制的一类新型攻击

LVI 是针对 CPU 中推测执行机制的一类新型攻击

可能的攻击媒介:

  • 数据从内核结构泄漏到用户级进程。 Linux 内核针对 Spectre 1 攻击的防护以及 SMAP(管理员模式访问预防)保护机制可显着降低 LVI 攻击的可能性。 如果将来发现更简单的 LVI 攻击方法,则可能需要向内核添加额外的保护。
  • 不同进程之间的数据泄漏。 该攻击需要应用程序中存在某些代码段,并定义在目标进程中引发异常的方法。
  • 数据从主机环境泄漏到客户系统。 该攻击被归类为过于复杂,需要各种难以实施的步骤和对系统活动的预测。
  • 不同客户系统中进程之间的数据泄漏。 攻击向量接近于组织不同进程之间的数据泄漏,但还需要复杂的操作来绕过来宾系统之间的隔离。

研究人员发表 一些 原型 演示了实施攻击的原理,但尚不适合实施真正的攻击。 第一个示例允许您重定向受害进程中的推测代码执行,类似于面向返回的编程(ROP,面向返回的编程)。 在此示例中,受害者是一个专门准备的进程,其中包含必要的小工具(对真正的第三方进程进行攻击很困难)。 第二个示例允许我们在 Intel SGX enclave 内的 AES 加密期间干扰计算,并在指令的推测执行期间组织数据泄漏,以恢复用于加密的密钥的值。


来源: opennet.ru

添加评论