Revizor: Testing Black-box CPUs against Speculation Contracts

Oleksii Oleksenko, Christof Fetzer, Boris Köpf, Mark Silberstein
5/14/2021
cs.CRcs.AR

Official code: hw-sw-contracts/revizor (42 stars, MIT, last commit 2022-12-14). 1 more implementation below.

Abstract

Speculative vulnerabilities such as Spectre and Meltdown expose speculative execution state that can be exploited to leak information across security domains via side-channels. Such vulnerabilities often stay undetected for a long time as we lack the tools for systematic testing of CPUs to find them. In this paper, we propose an approach to automatically detect microarchitectural information leakage in commercial black-box CPUs. We build on speculation contracts, which we employ to specify the permitted side effects of program execution on the CPU's microarchitectural state. We propose a Model-based Relational Testing (MRT) technique to empirically assess the CPU compliance with these specifications. We implement MRT in a testing framework called Revizor, and showcase its effectiveness on real Intel x86 CPUs. Revizor automatically detects violations of a rich set of contracts, or indicates their absence. A highlight of our findings is that Revizor managed to automatically surface Spectre, MDS, and LVI, as well as several previously unknown variants.

View on arXivView PDF

Code Implementations(2)

MIT

Fuzzer that searches for vulnerabilities like Spectre and Meltdown in CPUs

425C, ShellMar 1, 20213 years agoMIT
fuzzingsecurityspectre-vulnerability

Revizor's artifact evaluation submission

44Shell, AssemblyNov 25, 20214 years ago

Similar Papers

Cite this paper

@article{oleksenko2021revizor,
  title  = {Revizor: Testing Black-box CPUs against Speculation Contracts},
  author = {Oleksii Oleksenko and Christof Fetzer and Boris Köpf and Mark Silberstein},
  year   = {2021},
  eprint = {2105.06872},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/2105.06872}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2105.06872.svg)](https://codeofpaper.com/paper/2105.06872)

Discussion