AMD处理器中缓存通道预测机制的两次攻击

来自格拉茨科技大学(奥地利)的一组研究人员,此前以开发攻击方法而闻名 MDS, 网络幽灵, 飞锤 и ZombieLoad,对特定于 AMD 处理器的硬件优化进行了研究, 已开发 两种新的侧通道攻击方法,可在 AMD 处理器的 LXNUMX 缓存通道预测机制运行期间操纵数据泄漏。 这些技术可用于降低 ASLR 保护的有效性、恢复易受攻击的 AES 实现中的密钥以及提高 Spectre 攻击的有效性。

在CPU的第一级数据缓存(L1D)中的通道预测机制(路预测器)的实现中发现了问题,该机制用于预测哪个缓存通道包含某个内存地址。 AMD 处理器中使用的优化基于检查 μ 标签 (μTag)。 μTag 是通过对虚拟地址应用特定的哈希函数来计算的。 在操作期间,通道预测引擎使用μTag从表中确定缓存通道。 因此,μTag 允许处理器将自身限制为仅访问特定通道,而无需搜索所有选项,从而显着降低了 CPU 能耗。

AMD处理器中缓存通道预测机制的两次攻击

在对 2011 年至 2019 年发布的各代 AMD 处理器中的通道预测系统实施进行逆向工程时,发现了两种新的侧通道攻击技术:

  • Collide+Probe - 允许攻击者跟踪在同一逻辑 CPU 核心上运行的进程的内存访问。 该方法的本质是利用在计算μTag的哈希函数中引起冲突的虚拟地址来跟踪内存访问。 与英特尔处理器上使用的 Flush+Reload 和 Prime+Probe 攻击不同,Collide+Probe 不使用共享内存,并且无需了解物理地址即可工作。
  • 加载+重新加载 - 允许您非常准确地确定同一物理 CPU 核心上的内存访问跟踪。 该方法基于这样的事实:物理存储单元只能在L1D高速缓存中存在一次。 那些。 在不同的虚拟地址访问同一内存单元将导致该单元从 L1D 缓存中逐出,从而允许跟踪内存访问。 尽管该攻击依赖于共享内存,但它不会刷新缓存行,从而允许进行隐秘攻击,不会从最后一级缓存中逐出数据。

基于 Collide+Probe 和 Load+Reload 技术,研究人员演示了几种旁路攻击场景:

  • 显示了使用在两个进程之间组织隐藏的间接通信通道的方法的可能性,允许以高达每秒 588 kB 的速度传输数据。
  • 使用 μTag 中的冲突,可以减少 ASLR(地址空间布局随机化)不同变体的熵,并在完全更新的 Linux 系统上绕过内核中的 ASLR 保护。 用户应用程序以及使用在沙箱环境中执行的 JavaScript 代码以及在另一个来宾环境中运行的代码都显示了进行攻击以减少 ASLR 熵的可能性。

    AMD处理器中缓存通道预测机制的两次攻击

  • 基于 Collide+Probe 方法,实施了一次攻击,从易受攻击的实现中恢复加密密钥(基于 T型台) AES 加密。
  • 通过使用 Collide+Probe 方法作为数据获取通道,Spectre 攻击能够在不使用共享内存的情况下从内核中提取私有数据。

该漏洞发生在基于微架构的AMD处理器上
推土机、打桩机、压路机、Zen(Ryzen、Epic)、Zen+ 和 Zen2。
AMD 于 23 年 2019 月 XNUMX 日收到有关该问题的通知,但到目前为止 没有发布报告 有关阻止漏洞的信息。 研究人员表示,通过提供 MSR 位来选择性禁用通道预测系统,可以在微代码更新级别阻止该问题,类似于英特尔控制分支预测机制禁用的做法。

AMD处理器中缓存通道预测机制的两次攻击

来源: opennet.ru

添加评论