在基于 Zen + 和 Zen 2 的 AMD 处理器中发现新的 Meltdown 漏洞

几天前 德累斯顿工业大学的一组研究人员揭开了 他们发现 一个漏洞 (CVE-2020-12965) 它可以对基于 Zen + 和 Zen 2 的 AMD 处理器进行 Meltdown 级攻击。

最初, AMD Zen + 和 Zen 2 处理器被认为不会受到影响 到 Meltdown 漏洞, 但研究人员发现了一个特征 这会导致在使用非规范虚拟地址时对受保护的内存区域进行推测性访问。

调查人员提到 AMD64 架构只涉及使用前 48 位 虚拟地址 并忽略剩余的 16 位 并由此指定第 48 位到第 63 位必须始终复制第 47 位的值。

我的意思是, 如果违反此条件 并尝试使用高位的任意值来寻址地址, 处理器抛出异常。 高位的重复填充导致将可用地址空间划分为两个块。

适合指定块的地址称为规范地址,具有任意更高位内容的无效地址称为非规范地址。 规范地址的较低范围通常用于进程数据,较高范围用于内核数据(在权限分离级别阻止从用户空间访问指定地址)。

经典漏洞 Meltdown 是基于这样一个事实,即在投机执行期间 指示, 处理器可以访问私有数据区,然后丢弃结果, 因为已建立的权限禁止用户进程进行此类访问。

在程序中,推测执行的块通过条件分支与主代码分开,在实际条件下总是触发,但由于条件声明使用了处理器在预期执行期间不知道的计算值代码,所有分支选项的推测执行发生。

自从推测操作使用相同的缓存 与正常执行的指令相比, 在执行过程中是可能的 推测性缓存书签 反映单个位的内容 在一个封闭的内存区域中,然后在正常执行的代码中通过时间分析访问缓存和非缓存数据来确定其值。

新漏洞的特殊性 影响 AMD Zen + 和 Zen 2 处理器, 是 CPU 允许推测执行 使用无效的非规范地址访问内存的读写操作, 忽略高 16 位.

因此,在推测代码执行过程中,处理器总是只使用低48位,地址验证是单独进行的。 如果在将非规范虚拟地址转换为关联转换缓冲区 (TLB) 中的物理地址时,如果地址的规范部分匹配,则推测加载操作将返回一个值,而不管高 16 位的内容如何,​​允许您可以绕过线程之间的内存共享。 稍后,该操作将失效并丢弃,但会执行内存访问并缓存数据。

在实验期间 运用 缓存内容检测技术 FLUSH + RELOAD,研究人员能够组织一个频道 用于将隐蔽数据传输到 每秒 125 字节的速度.

有助于阻止 Meltdown 攻击的相同技术(例如使用 LFENCE 指令)可用于防御新攻击。

与此同时, 研究人员指出, 与Intel处理器相比,A处理器的架构MD 限制了真实攻击的可能性,但不排除使用新方法 与其他微架构攻击相结合以提高其有效性。

特别是,提议的攻击选项不允许确定内核内存区域和其他进程的内容,但仅限于访问在同一虚拟内存空间中运行的同一程序的其他线程的能力。

数据来源: https://www.amd.com, https://arxiv.org/


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。