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.
翻译:例如,Spectre滥用投机性执行等攻击,这是现代CPU的主要性能优化之一。最近,出现了一些测试工具,自动检测商业(黑箱)CPU的投机性泄漏。然而,测试过程仍然缓慢,阻碍了深入测试活动,迄今为止阻止了发现新的渗漏类别。在本文中,我们确定了现有方法中性能限制的根本原因,并提出了克服这些限制的方法。有了这些技术,我们提高了最新工艺的测试速度,达到两个级。这些改进使我们能够在英特尔和AMD CPU上进行前所未有的深度的测试活动。我们发现两种先前未知的投机性泄漏(影响弦比较和分解),它们逃脱了以前的手动和自动分析。