L1DES (CacheOut) 和 VRS - Intel CPU 微架构结构中的新漏洞

英特尔 裸露 有关 Intel CPU 中由 L1D 缓存数据泄漏导致的两个新漏洞的信息(CVE-2020-0549、L1DES - L1D 驱逐采样)和向量寄存器(CVE-2020-0548,VRS - 向量寄存器采样)。 漏洞属于该类 MDS (微架构数据采样)基于侧通道分析方法对微架构结构中数据的应用。 AMD、ARM 和其他处理器不受问题影响。

最大的危险是L1DES漏洞, 许可证 从一级缓存 (L1D) 中逐出的缓存数据块(缓存行)沉淀在填充缓冲区中,此时填充缓冲区应为空。 为了确定已填充缓冲区中的数据,我们可以使用先前在攻击中提出的旁路分析方法 MDS (微架构数据采样)和 TAA (事务性异步流产)。 先前实施的防护措施的本质是
MDS 和 TAA 在上下文切换之前刷新微架构缓冲区,但事实证明,在某些情况下,数据会在刷新操作后推测性地刷新到缓冲区中,因此 MDS 和 TAA 方法仍然适用。

L1DES (CacheOut) 和 VRS - Intel CPU 微架构结构中的新漏洞

因此,攻击者可以检测到从一级缓存中逐出的数据,这些数据在之前占用当前CPU核心的应用程序执行过程中发生了变化,或者在同一CPU上的其他逻辑线程(超线程)中并行运行的应用程序core(禁用超线程不会降低攻击效率)。 与攻击不同 L1TFL1DES 不允许选择特定的物理地址进行检查,但它确实提供了被动监视与将值加载或存储到内存相关的其他逻辑线程中的活动的能力。

基于 L1DES,各个研究团队开发了多种攻击变体,这些攻击变体可能会从其他进程、操作系统、虚拟机和受保护的 SGX enclave 中提取敏感信息。

  • VUSec团队 改编的 针对L1DES漏洞的RIDL攻击方法。 可用的 开发原型,这也绕过了Intel提出的MDS保护方法,该方法基于使用VERW指令在从内核返回到用户空间或将控制权转移到客户系统时清除微架构缓冲区的内容(研究人员最初坚持认为VERW(清除微架构缓冲区)缓冲区)的保护是不够的,需要在每次上下文切换时完全刷新 L1 缓存)。
  • 团队 ZombieLoad 更新了我的 攻击方式 考虑到 L1DES 漏洞。
  • 密歇根大学的研究人员开发了自己的攻击方法 快取 (PDF),它允许您从操作系统内核、虚拟机和受保护的 SGX enclave 中提取机密信息。 该方法基于 操纵 使用异步操作中断机制(TAA、TSX 异步中止)来确定 L1D 缓存数据泄漏后填充缓冲区的内容。

    L1DES (CacheOut) 和 VRS - Intel CPU 微架构结构中的新漏洞

第二个 VRS(向量寄存器采样)漏洞 有关 在同一 CPU 内核上执行向量指令(SSE、AVX、AVX-512)期间,从向量寄存器读取操作的结果会泄漏到存储缓冲区(Store Buffer)中。 泄漏发生在相当罕见的情况下,并且是由于导致存储缓冲区中向量寄存器的状态反映的推测操作被延迟并在缓冲区被清除之后而不是之前完成而引起的。 与L1DES漏洞类似,可以使用MDS和TAA攻击技术来确定存储缓冲区的内容。

VUSec 小组的研究人员 подготовили 开发原型,它允许您确定作为同一 CPU 核心的另一个逻辑线程中的计算结果而获得的向量寄存器的值。 英特尔公司 赞赏 VRS 漏洞被认为过于复杂,无法进行真正的攻击,并被指定了最低严重级别 (2.8 CVSS)。

格拉茨技术大学(奥地利)的 Zombieload 团队和阿姆斯特丹自由大学的 VUSec 团队于 2019 年 1 月向英特尔报告了这些问题,随后其他几位研究人员在分析其他 MDS 攻击向量后证实了这些漏洞。 由于缺乏修复,第一份 MDS 报告未包含有关 LXNUMXDES 和 VRS 问题的信息。 目前尚无法修复,但商定的保密期已过。
作为解决方法,建议禁用超线程。 为了阻止内核端的漏洞,建议在每次上下文切换时重置 L1 缓存(MSR 位 MSR_IA32_FLUSH_CMD)并禁用 TSX 扩展(MSR 位 MSR_IA32_TSX_CTRL 和 MSR_TSX_FORCE_ABORT)。

英特尔 许诺 在不久的将来发布微代码更新,实施阻止问题的机制。 英特尔还指出,使用2018年提出的攻击防护方法 L1TF (L1 终端故障)允许您阻止从虚拟环境中利用 L1DES 漏洞。 攻击 服从 Intel Core 处理器从第六代开始(Sky、Kaby、Coffee、Whiskey、Amber Lake 等),以及一些 Intel Xeon 和 Xeon Scalable 型号。

另外,还可以注意到 起色 开发,允许你使用攻击方法 RIDL 在定期身份验证尝试期间确定 /etc/shadow 中 root 密码哈希的内容。 如果最初提出的漏洞确定了密码散列 24小时,并且在异步中断机制(TAA、TSX Asynchronous Abort)运行期间应用泄漏之后执行了类似的操作 36秒,那么新变种会在4秒内发起攻击。

来源: opennet.ru

添加评论