Automatic Detection of Speculative Execution Combinations

09/02/2022
by   Xaver Fabian, et al.
0

Modern processors employ different prediction mechanisms to speculate over different kinds of instructions. Attackers can exploit these prediction mechanisms simultaneously in order to trigger leaks about speculatively-accessed data. Thus, sound reasoning about such speculative leaks requires accounting for all potential mechanisms of speculation. Unfortunately, existing formal models only support reasoning about fixed, hard-coded mechanisms of speculation, with no simple support to extend said reasoning to new mechanisms. In this paper we develop a framework for reasoning about composed speculative semantics that capture speculation due to different mechanisms and implement it as part of the Spectector verification tool. We implement novel semantics for speculating over store and return instructions and combine them with the semantics for speculating over branches. Our framework yields speculative semantics for speculating over any combination of those instructions that are secure by construction, i.e., we obtain these security guarantees for free. The implementation of our novel semantics in Spectector let us verify existing codebases that are vulnerable to Spectre v1, Spectre v4, and Spectre v5 vulnerabilities as well as new snippets that are only vulnerable to their compositions.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/03/2018

A high-level operational semantics for hardware weak memory models

Modern processors deploy a variety of weak memory models, which for effi...
research
04/25/2023

Dynamic Ineffectuality-based Clustered Architectures

The direction of conditional branches is predicted correctly in modern p...
research
05/06/2021

Parallelized sequential composition, pipelines, and hardware weak memory models

Since the introduction of the CDC 6600 in 1965 and its `scoreboarding' t...
research
08/31/2021

Cats vs. Spectre: An Axiomatic Approach to Modeling Speculative Execution Attacks

The Spectre family of speculative execution attacks have required a reth...
research
03/10/2020

An abstract semantics of speculative execution for reasoning about security vulnerabilities

Reasoning about correctness and security of software is increasingly dif...
research
03/27/2013

Comparisons of Reasoning Mechanisms for Computer Vision

An evidential reasoning mechanism based on the Dempster-Shafer theory of...
research
07/06/2020

An Exploratory Analysis of Microcode as a Building Block for System Defenses

Microcode is an abstraction layer used by modern x86 processors that int...

Please sign up or login with your details

Forgot password? Click here to reset