英特尔处理器中引入了一类新的漏洞

英特尔 опубликовала 有关新的信息 漏洞等级 在他们的处理器中 - MDS (微架构数据采样)。与之前的 Spectre 攻击一样,新问题可能导致操作系统、虚拟机和其他进程的私有数据泄露。据称,这些问题首先是由英特尔员工和合作伙伴在内部审计期间发现的,之后独立研究人员向英特尔提供了有关类似问题的信息。 AMD 和 ARM 处理器不受该问题的影响。

基于格拉茨技术大学(奥地利)研究人员发现的问题 发达 一些实用的侧信道攻击:

  • ZombieLoad (PDF) - 允许您从其他进程、操作系统、虚拟机和受保护的飞地(TEE,可信执行环境)中提取机密信息。例如,演示了确定在另一个虚拟机中运行的 Tor 浏览器中打开页面的历史记录的能力,以及确定应用程序中使用的访问密钥和密码的能力;


  • RIDL (PDF) - 允许英特尔处理器中各个隔离区域之间的信息泄漏,例如填充缓冲区、存储缓冲区和加载端口。显示的攻击示例是为了组织来自其他进程、操作系统、虚拟机和受保护飞地的泄漏。例如,它展示了如何在定期身份验证尝试期间(攻击持续了 24 小时)从 /etc/shadow 中找出 root 密码哈希的内容;

    此外,还展示了在 SpiderMonkey 引擎中打开恶意页面时使用 JavaScript 和 WebAssembly 进行攻击的示例(在现代成熟的浏览器中,由于计时器精度和防止 Spectre 的措施有限,此类攻击不太可能发生);

  • 辐射 (PDF) - 可以读取操作系统最近写入的数据并确定操作系统内存布局以简化其他攻击;
  • 存储到泄漏转发 — 利用 CPU 优化来处理存储缓冲区,并可用于绕过内核地址空间随机化机制 (KASLR),以监视操作系统的状态,或用于 组织 与基于 Spectre 方法的小工具结合使用进行泄漏。

揭晓 弱点:

  • CVE-2018-12126 - MSBDS(微架构存储缓冲区数据采样),存储缓冲区内容的恢复。用于辐射攻击。危险程度判定为6.5分(CVSS);
  • CVE-2018-12127 - MLPDS(微架构加载端口数据采样),加载端口内容的恢复。用于RIDL攻击。 CVSS 6.5;
  • CVE-2018-12130 - MFBDS(微架构填充缓冲区数据采样),恢复填充缓冲区内容。用于 ZombieLoad 和 RIDL 攻击。 CVSS 6.5;
  • CVE-2019-11091 – MDSUM(微架构数据采样不可缓存内存),不可缓存内存内容的恢复。用于RIDL攻击。 CVSS 3.8。

物质 发现了将侧通道分析方法应用于应用程序无法直接访问的微架构结构中的数据的能力问题。我们谈论的是填充缓冲区(Line Fill Buffer)、存储缓冲区(Store Buffer)和加载端口(Load Port)等低级结构,它们是比一级缓存(L1D)、数据加载缓存(L1D)更小的构建块。 RDCL)或L1TF(LXNUMX终端故障),因此包含较少的信息并且更新更加密集。

英特尔处理器中引入了一类新的漏洞

与恢复缓存内容的方法相比,对微架构结构的侧通道攻击要困难得多,并且需要跟踪和分析大量数据以确定它们与内存中某些地址的连接(本质上,攻击者无法有目的地拦截某些数据) ,但可能需要时间积累泄漏并应用统计方法来重建某些类型的数据)。此外,攻击仅影响与攻击者代码相同的物理 CPU 核心上的数据。

所提出的用于确定微体系结构的内容的方法基于以下事实:这些结构在异常(故障)或加载和存储操作的推测处理期间使用。
在推测执行期间,内部结构的内容被重定向到寄存器或高速缓存进行处理。推测操作不会完成并且结果被丢弃,但是可以使用旁路缓存分析技术来确定重定向的内容。

处理器使用加载端口从内存或 I/O 子系统接收数据,并将接收到的信息提供给 CPU 寄存器。由于实现特性,旧下载操作的数据保留在端口中,直到被新数据覆盖,这使得可以通过操纵异常(故障)和 SSE/AVX/ 来间接确定下载端口中数据的状态。加载超过 512 位数据的 AVX-64 指令。在这种情况下,加载操作推测性地将陈旧数据值从内部结构暴露给依赖操作。以类似的方式,泄漏是通过存储缓冲区组织的,该缓冲区用于加速写入 CPU 缓存并包括地址、值和标志表,以及通过填充缓冲区组织,其中包含以下数据:尚未进入L1缓存(cache-miss),暂时从其他级别的缓存加载。

英特尔处理器中引入了一类新的漏洞

问题 影响 2011 年以来生产的 Intel 处理器型号(从第 6 代开始)。在这种情况下,从第8代、第9代Intel Core和第2代Intel Xeon Scalable的部分型号开始,硬件漏洞被阻止(可以使用IA32_ARCH_CAPABILITIES MSR中的ARCH_CAP_MDS_NO位进行检查)。漏洞也已经存在 被淘汰 在固件、微代码和操​​作系统层面。英特尔估计大多数用户激活补丁后性能损失 不超过 3%。当禁用超线程技术时,在 SPECint_rate_base 测试中,性能下降最多可达 9%,在主动整数计算中,性能下降最多为 11%,在运行服务器端 Java 应用程序时,性能下降最多为 19%(启用 HT 后,几乎没有没有性能下降)。这些补丁对 I/O 性能影响不大。

Linux 内核防范 MDS 添加 在今天的 更新 5.1.2,5.0.16,
4.19.43、4.14.119 和 4.9.176。保护方法 在建 在从内核返回到用户空间时或将控制权转移到使用 VERW 指令的客户系统时清除微架构缓冲区的内容。为了使保护发挥作用,它需要支持 MD_CLEAR 模式,该模式在最新的微码更新中实现。为了获得完整的保护,还建议禁用超线程。检查系统是否存在 Linux 内核漏洞 添加 处理程序“/sys/devices/system/cpu/vulnerability/mds”。为了控制各种漏洞阻止模式的包含,内核中添加了“mds=”参数,该参数可以取值“full”、“full,nosmt”(禁用超线程)、“vmwerv”和“离开”。

软件包更新已经发布 RHEL и Ubuntu,但暂时无法使用 Debian, Fedora и SUSE.
还修复了阻止虚拟机数据泄漏的问题 形成的 对于 Xen 虚拟机管理程序。为了保护在将控制权转移到另一个虚拟机之前发出 L1D_FLUSH 命令的虚拟化系统,以及保护 Intel SGX enclave,微代码更新就足够了。

来源: opennet.ru

添加评论