[论文解读] SPOILER: Speculative Load Hazards Boost Rowhammer and Cache Attacks
Spoiler 揭示了存储器消解过程中的微架构泄漏,该泄漏会将物理页映射暴露给用户空间,提升 Rowhammer 和缓存攻击的速度,甚至在 JavaScript 基于的驱逐/搜索中也能加速。
Modern microarchitectures incorporate optimization techniques such as speculative loads and store forwarding to improve the memory bottleneck. The processor executes the load speculatively before the stores, and forwards the data of a preceding store to the load if there is a potential dependency. This enhances performance since the load does not have to wait for preceding stores to complete. However, the dependency prediction relies on partial address information, which may lead to false dependencies and stall hazards. In this work, we are the first to show that the dependency resolution logic that serves the speculative load can be exploited to gain information about the physical page mappings. Microarchitectural side-channel attacks such as Rowhammer and cache attacks like Prime+Probe rely on the reverse engineering of the virtual-to-physical address mapping. We propose the SPOILER attack which exploits this leakage to speed up this reverse engineering by a factor of 256. Then, we show how this can improve the Prime+Probe attack by a 4096 factor speed up of the eviction set search, even from sandboxed environments like JavaScript. Finally, we improve the Rowhammer attack by showing how SPOILER helps to conduct DRAM row conflicts deterministically with up to 100% chance, and by demonstrating a double-sided Rowhammer attack with normal user's privilege. The later is due to the possibility of detecting contiguous memory pages using the SPOILER leakage.
研究动机与目标
- 动机并量化在投机性加载过程中内存消解阶段的先前未知泄漏。
- 展示该泄漏如何使虚拟到物理映射的反向工程提速一个数量级乃至更多。
- 展示该泄漏如何改进 Prime+Probe 淘汰集的构造,并使 Rowhammer 策略更有效。
- 评估在 JavaScript 等沙箱环境中结合 Spoiler 的攻击的可行性。
提出的方法
- 设计一个实验(算法 1),在缓存/存储缓冲区中触发具有 4K 和 1 MB 别名的投机性加载,并测量投机性加载时间。
- 使用硬件绩效计数器将时序与依赖性解析事件相关联(例如 Ld_Blocks_Partial:Address_Alias、Cycle_Activity:Stalls_Ldm_Pending)。
- 分析 1 MB 别名如何透露物理页映射信息,尤其是匹配前 20 位最低有效物理地址位。
- 评估 Spoiler 在本地和 JavaScript 环境中将虚拟到物理映射的反向工程速度提升高达 256 倍的有效性。
- 展示通过 Spoiler 的连续页面检测能力实现的改进的淘汰集搜索和双边 Rowhammer 攻击。
- 讨论内存消解器和超线程如何影响 Spoiler 的泄漏及适用性。
实验结果
研究问题
- RQ1投机性加载 hazard 是否能揭示部分物理地址信息,从而泄露虚拟到物理的映射?
- RQ2Spoiler 能在多大程度上加速物理地址映射的反向工程,用于缓存攻击和 Rowhammer?
- RQ3Spoiler 对淘汰集构造的影响以及基于浏览器(JavaScript)攻击的可行性?
- RQ4在普通用户权限下,Spoiler 是否能够实现确定性的 DRAM 行冲突和更高精度的 Rowhammer 攻击?
主要发现
- Spoiler 揭示了投机性加载过程中的伪依赖泄漏,该泄漏取决于物理地址的 1 MB 别名。
- 该泄漏使虚拟到物理映射的反向工程速度比以往方法快最多 256 倍。
- Prime+Probe 淘汰集搜索加速最多 4096 倍,即使来自像 JavaScript 这样的沙箱环境也能进行缓存攻击。
- Spoiler 通过在某些条件下实现确定性 DRAM 行冲突、达到最高 100% 成功率,从而提升 Rowhammer,并在普通用户权限下演示了双边 Rowhammer。
- 泄漏从第一代 Core 处理器开始就存在于 Intel 代际中,并且与 4K 别名不同,在更新的 CPU 上具有更高的影响。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。