Control-Flow Integrity: Precision, Security, and Performance
Nathan Burow, Scott A. Carr, Joseph Nash, Per Larsen, Michael Franz,, Stefan Brunthaler, Mathias Payer

TL;DR
This paper systematically compares various Control-Flow Integrity (CFI) mechanisms in terms of security guarantees, precision, and performance, providing a unified evaluation framework for these defenses against control-flow hijacking attacks.
Contribution
It introduces a comprehensive comparison methodology for CFI mechanisms, including security, precision, and empirical performance assessments, filling a gap in standardized evaluation protocols.
Findings
Different CFI mechanisms vary in security guarantees and protection precision.
Empirical performance evaluations reveal trade-offs between security and runtime overhead.
The study provides a unified framework for comparing CFI techniques systematically.
Abstract
Memory corruption errors in C/C++ programs remain the most common source of security vulnerabilities in today's systems. Control-flow hijacking attacks exploit memory corruption vulnerabilities to divert program execution away from the intended control flow. Researchers have spent more than a decade studying and refining defenses based on Control-Flow Integrity (CFI), and this technique is now integrated into several production compilers. However, so far no study has systematically compared the various proposed CFI mechanisms, nor is there any protocol on how to compare such mechanisms. We compare a broad range of CFI mechanisms using a unified nomenclature based on (i) a qualitative discussion of the conceptual security guarantees, (ii) a quantitative security evaluation, and (iii) an empirical evaluation of their performance in the same test environment. For each mechanism, we…
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.
