oo7: Low-overhead Defense against Spectre Attacks via Program Analysis
Not on the map. Why?
Abstract (arXiv)
The Spectre vulnerability in modern processors has been widely reported. The key insight in this vulnerability is that speculative execution in processors can be misused to access the secrets. Subsequently, even though the speculatively executed instructions are squashed, the secret may linger in micro-architectural states such as cache, and can potentially be accessed by an attacker via side channels. In this paper, we propose oo7, a static analysis approach that can mitigate Spectre attacks by detecting potentially vulnerable code snippets in program binaries and protecting them against the attack by patching them. Our key contribution is to balance the concerns of effectiveness, analysis time and run-time overheads. We employ control flow extraction, taint analysis, and address analysis to detect tainted conditional branches and speculative memory accesses. oo7 can detect all fifteen purpose-built Spectre-vulnerable code patterns, whereas Microsoft compiler with Spectre mitigation option can only detect two of them. We also report the results of a large-scale study on applying oo7 to over 500 program binaries (average binary size 261 KB) from different real-world projects. We protect programs against Spectre attack by selectively inserting fences only at vulnerable conditional branches to prevent speculative execution. Our approach is experimentally observed to incur around 5.9% performance overheads on SPECint benchmarks.
Key facts. Cited by 4 papers in the map (data through 7 Oct 2026). First posted on arXiv 16 Jul 2018.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2022: 3; 2023: 1.
4 papers.
- 2023ZeroLeak: Using LLMs for Scalable and Cost Effective Side-Channel Patchingcited by 6
- 2022NeuDep: Neural Binary Memory Dependence Analysiscited by 3
- 2022Short Paper: Static and Microarchitectural ML-Based Approaches For Detecting Spectre Vulnerabilities and Attackscited by 1
- 2022Ruby: Unmasking Unsafe Rust in Stripped Binaries via Machine Learningcited by 0
- 2023ZeroLeak: Using LLMs for Scalable and Cost Effective Side-Channel Patching24 Aug 2023
- 2022Ruby: Unmasking Unsafe Rust in Stripped Binaries via Machine Learning31 Oct 2022
- 2022Short Paper: Static and Microarchitectural ML-Based Approaches For Detecting Spectre Vulnerabilities and Attacks26 Oct 2022
- 2022NeuDep: Neural Binary Memory Dependence Analysis4 Oct 2022