来自格拉茨科技大学(奥地利)的一组研究人员,此前以开发攻击方法而闻名 , , и 开展了针对AMD处理器特定硬件优化的研究, 两种新的侧信道攻击方法利用了AMD处理器L1缓存通道预测机制中的数据泄漏。这些方法可用于降低ASLR保护的有效性、恢复易受攻击的AES实现中的密钥,并提高Spectre攻击的有效性。
CPU一级数据缓存(L1D)中的路径预测器实现存在一些问题。该预测器用于预测给定内存地址映射到哪个缓存通道。AMD处理器采用的优化方案基于μ标签(μTag)检查。μTag的计算方法是将特定的哈希函数应用于虚拟地址。在运行过程中,路径预测器使用μTag从缓存通道表中确定缓存通道。因此,μTag允许处理器在不尝试所有可能选项的情况下限制对特定通道的访问,从而显著降低CPU功耗。

对 2011 年至 2019 年间发布的各代 AMD 处理器中的信道预测系统实现进行逆向工程,揭示了两种新的侧信道攻击技术:
- Collide+Probe攻击允许攻击者追踪运行在同一逻辑CPU核心上的进程的内存访问。该方法利用虚拟地址,通过与用于计算μTag的哈希函数发生冲突来追踪内存访问。与用于Intel处理器的Flush+Reload和Prime+Probe攻击不同,Collide+Probe攻击不使用共享内存,也无需了解物理地址即可运行。
- Load+Reload 攻击允许对同一物理 CPU 内核进行高精度的内存访问追踪。该方法基于物理内存单元只能在 L1D 缓存中出现一次这一特性。这意味着,如果访问同一内存单元的虚拟地址不同,则该单元将被从 L1D 缓存中移除,从而实现内存访问追踪。尽管该攻击依赖于共享内存,但它不会刷新缓存行,因此可以进行隐蔽攻击,而不会从末级缓存中移除数据。
研究人员利用碰撞探测和加载重载技术,演示了几种侧信道攻击场景:
- 本文论证了利用某些方法在两个进程之间建立隐藏的间接通信通道的可能性,从而实现高达每秒 588 kB 的数据传输速度。
- 利用 μTag 中的碰撞检测,我们成功降低了多种 ASLR(地址空间布局随机化)变体的熵,并绕过了完全打过补丁的 Linux 系统内核中的 ASLR 保护机制。我们验证了从沙箱环境中运行的用户应用程序和 JavaScript 代码,以及在不同客户机环境中运行的代码执行 ASLR 熵降低攻击的可行性。

- 基于碰撞探测方法,我们实施了一种攻击,以从一个存在漏洞的实现中恢复加密密钥(基于 ) AES 加密。
- Spectre 通过使用 Collide+Probe 方法作为数据检索的渠道,无需使用共享内存即可从内核中提取私有数据。
该漏洞影响基于特定微架构的AMD处理器。
推土机、打桩机、压路机、Zen(Ryzen、Epic)、Zen+ 和 Zen2。
AMD于2019年8月23日被告知该问题,但至今尚未采取行动。 文中提供了如何屏蔽此漏洞的信息。研究人员表示,可以通过在微代码更新级别提供 MSR 位来选择性地禁用通道预测系统,从而屏蔽此问题,这类似于英特尔控制分支预测机制禁用的方式。

来源: opennet.ru

