Automatically Eliminating Speculative Leaks With Blade

05/01/2020
by   Marco Vassena, et al.
0

We introduce BLADE, a new approach to automatically and efficiently synthesizing provably correct repairs for transient execution vulnerabilities like Spectre. BLADE is built on the insight that to stop speculative execution attacks, it suffices to cut the dataflow from expressions that speculatively introduce secrets (sources) to those that leak them through the cache (sinks), rather than prohibiting speculation altogether. We formalize this insight in a static type system that (1) types each expression as either transient, i.e., possibly containing speculative secrets or as being stable, and (2) prohibits speculative leaks by requiring that all sink expressions are stable. We introduce protect, a new abstract primitive for fine grained speculation control that can be implemented via existing architectural mechanisms, and show how our type system can automatically synthesize a minimal number of protect calls needed to ensure the program is secure. We evaluate BLADE by using it to repair several verified, yet vulnerable WebAssembly implementations of cryptographic primitives. BLADE can fix existing programs that leak via speculation automatically, without user intervention, and efficiently using two orders of magnitude fewer fences than would be added by existing compilers, and thereby ensuring security with minimal performance overhead.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/06/2023

This is How You Lose the Transient Execution War

A new class of vulnerabilities related to speculative and out-of-order e...
research
05/17/2023

Automatic and Incremental Repair for Speculative Information Leaks

We present CureSpec, the first model-checking based framework for automa...
research
10/20/2022

Towards cryptographically-authenticated in-memory data structures

Modern processors include high-performance cryptographic functionalities...
research
02/20/2019

Optimizing and Evaluating Transient Gradual Typing

Gradual typing enables programmers to combine static and dynamic typing ...
research
10/29/2020

CURE: A Security Architecture with CUstomizable and Resilient Enclaves

Security architectures providing Trusted Execution Environments (TEEs) h...
research
04/21/2020

Towards Automated Augmentation and Instrumentation of Legacy Cryptographic Executables: Extended Version

Implementation flaws in cryptographic libraries, design flaws in algorit...
research
05/31/2019

From Global Choreographies to Provably Correct and Efficient Distributed Implementations

We define a method to automatically synthesize provably-correct efficien...

Please sign up or login with your details

Forgot password? Click here to reset