MeltdownPrime 与 SpectrePrime:利用基于失效的一致性协议自动合成的攻击
密码学与安全
2018-02-13 v1 硬件体系结构
摘要
近期的 Meltdown 和 Spectre 攻击凸显了用于识别硬件安全漏洞的自动化验证技术的重要性。我们开发了一种工具,用于合成能够产生任何用户指定的感兴趣硬件执行模式的微架构特定程序。我们的工具接受两个输入:用领域特定语言对 (i) 微架构和 (ii) 感兴趣的微架构执行模式(例如威胁模式)的形式化描述。我们的工具合成的所有程序均能在所提供的微架构上产生指定的执行模式。我们使用该工具指定了 Flush+Reload 攻击共有的硬件执行模式,并自动合成了代表已公开披露的用于实施 Meltdown 和 Spectre 攻击的安全 litmus 测试。我们还构建了 Prime+Probe 威胁模式,使工具能合成各自的新变体——MeltdownPrime 和 SpectrePrime。这两种新漏洞均使用 Prime+Probe 方法实施定时攻击。它们的新颖之处还在于都是利用现代缓存一致性协议中的缓存行失效机制的 2 核攻击。这些是首批提出的 Meltdown 和 Spectre 的 Prime+Probe 变体。但更重要的是,两种 Prime 攻击都利用基于失效的一致性协议来达到与 Flush+Reload 攻击同等的精度。尽管软件中的缓解技术(例如阻止推测执行的屏障)对我们的 Prime 变体可能与原始 Spectre 和 Meltdown 相同,我们认为针对它们的硬件防护将有所不同。作为概念验证,我们将 SpectrePrime 实现为 C 程序并在 Intel x86 处理器上运行,在 100 次运行中平均精度与 Spectre 大致相同——Spectre 为 97.9%,SpectrePrime 为 99.95%。
引用
@article{arxiv.1802.03802,
title = {MeltdownPrime and SpectrePrime: Automatically-Synthesized Attacks Exploiting Invalidation-Based Coherence Protocols},
author = {Caroline Trippel and Daniel Lustig and Margaret Martonosi},
journal= {arXiv preprint arXiv:1802.03802},
year = {2018}
}