Skip to main content
QUICK REVIEW

[论文解读] Hide and Seek with Spectres: Efficient discovery of speculative information leaks with random testing

Oleksii Oleksenko, Marco Guarnieri|arXiv (Cornell University)|Jan 18, 2023
Security and Verification in Computing被引用 6
一句话总结

本文提出一种基于模型的随机测试方法,通过推测和观察过滤以及契约驱动的输入生成,筛选无效测试用例,从而加速在x86 CPU上检测推测性信息泄露的黑盒检测。该方法相比现有最先进工具实现最高100倍的性能提升,使深度测试成为可能,并在Intel和AMD CPU中发现了两个此前未知的推测性泄露。

ABSTRACT

Attacks like Spectre abuse speculative execution, one of the key performance optimizations of modern CPUs. Recently, several testing tools have emerged to automatically detect speculative leaks in commercial (black-box) CPUs. However, the testing process is still slow, which has hindered in-depth testing campaigns, and so far prevented the discovery of new classes of leakage. In this paper, we identify the root causes of the performance limitations in existing approaches, and propose techniques to overcome these limitations. With these techniques, we improve the testing speed over the state-of-the-art by up to two orders of magnitude. These improvements enable us to run a testing campaign of unprecedented depth on Intel and AMD CPUs. As a highlight, we discover two types of previously unknown speculative leaks (affecting string comparison and division) that have escaped previous manual and automatic analyses.

研究动机与目标

  • 为解决基于模型的关系测试在推测性泄露检测中面临的性能瓶颈,该瓶颈限制了测试活动的深度和广度。
  • 在测试流程早期识别并消除无效测试用例,即推测或观察可见性可能性较低的用例。
  • 通过显著提升测试覆盖率和效率,实现对先前未知的推测性泄露类别的发现。
  • 开发轻量级、硬件感知的过滤技术,避免对不可行测试用例进行昂贵的符号执行。
  • 证明利用最少的硬件信号和确定性输入生成,可在商用CPU上实现高速度、深度的测试。

提出的方法

  • 推测过滤利用CPU性能计数器检测测试执行期间的推测错误,丢弃不涉及瞬态指令执行的测试用例。
  • 观察过滤在每条指令后插入序列化屏障,并比较原始版本与序列化版本的硬件追踪,以检测可见的推测效应。
  • 契约驱动的输入生成通过依赖追踪识别产生相同模型追踪的输入对,确保模型与硬件追踪之间的有效比较。
  • 该方法将这些过滤机制集成到基于模型的测试框架中,大幅减少需要昂贵的符号执行或侧信道测量的测试用例数量。
  • 测试用例随机生成,但若不满足检测推测性泄露的三个必要条件(推测错误、可观测泄露、相同模型追踪),则在早期被剔除。
  • 该方法基于Revizo框架实现,针对x86 CPU,支持大规模、高速度的测试活动。

实验结果

研究问题

  • RQ1推测和观察过滤技术是否能显著减少基于模型的关系测试中无效测试用例的数量?
  • RQ2契约驱动的输入生成能否在保持速度和精度的前提下,替代符号执行以生成具有相同模型追踪的输入对?
  • RQ3测试吞吐量提升100倍是否能实现对先前手动或自动分析未能发现的新推测性泄露类别的发现?
  • RQ4哪些测试用例特征可能暴露推测性泄露,以及如何系统性地生成或识别这些用例?
  • RQ5在无需完整微架构访问的前提下,最少的硬件信号(如性能计数器)在多大程度上可用于引导自动化测试剪枝?

主要发现

  • 所提方法相比最先进工具,测试性能最高提升100倍,使此前被认为不可行的大规模测试活动成为可能。
  • 仅0.5%的随机生成的测试用例-输入组合对推测性泄露检测有效,原因在于推测错误率低(13%)、可观测泄露率低(7%)以及相同模型追踪率低(6%)。
  • 通过使用推测和观察过滤,提前剔除不可行候选,显著减少了需进行完整泄露分析的测试用例数量。
  • 契约驱动的输入生成实现了高效、确定性的相同模型追踪输入对生成,避免了符号执行的性能开销。
  • 该方法发现了两种新型推测性泄露——此前在Intel和AMD CPU中未知,分别与字符串比较和除法操作相关。
  • 测试活动在Intel和AMD CPU上执行了1.3亿次测试执行,证明了对推测性泄露进行深度、自动化、黑盒分析的可行性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。