Restricting Control Flow During Speculative Execution with Venkman
Zhuojia Shen, Jie Zhou, Divya Ojha, John Criswell

TL;DR
Venkman is a program transformation system that prevents Spectre attacks by aligning control flow targets, ensuring speculative execution cannot bypass protective instructions, all while maintaining shared hardware structures.
Contribution
Venkman introduces a novel code transformation technique that aligns control flow targets to prevent Spectre attacks without flushing shared branch prediction structures.
Findings
Venkman increases execution time by 3.47× on average.
Code size increases by 1.94× on average.
Spectre-resistant SFI incurs 2.42× space and 1.68× performance overhead.
Abstract
Side-channel attacks such as Spectre that utilize speculative execution to steal application secrets pose a significant threat to modern computing systems. While program transformations can mitigate some Spectre attacks, more advanced attacks can divert control flow speculatively to bypass these protective instructions, rendering existing defenses useless. In this paper, we present Venkman: a system that employs program transformation to completely thwart Spectre attacks that poison entries in the Branch Target Buffer (BTB) and the Return Stack Buffer (RSB). Venkman transforms code so that all valid targets of a control-flow transfer have an identical alignment in the virtual address space; it further transforms all branches to ensure that all entries added to the BTB and RSB are properly aligned. By transforming all code this way, Venkman ensures that, in any program wanting Spectre…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSecurity and Verification in Computing · Advanced Malware Detection Techniques · Radiation Effects in Electronics
