Back to Search Start Over

FineIBT: Fine-grain Control-flow Enforcement with Indirect Branch Tracking

Authors :
Gaidis, Alexander J.
Moreira, Joao
Sun, Ke
Milburn, Alyssa
Atlidakis, Vaggelis
Kemerlis, Vasileios P.
Publication Year :
2023

Abstract

We present the design, implementation, and evaluation of FineIBT: a CFI enforcement mechanism that improves the precision of hardware-assisted CFI solutions, like Intel IBT, by instrumenting program code to reduce the valid/allowed targets of indirect forward-edge transfers. We study the design of FineIBT on the x86-64 architecture, and implement and evaluate it on Linux and the LLVM toolchain. We designed FineIBT's instrumentation to be compact, incurring low runtime and memory overheads, and generic, so as to support different CFI policies. Our prototype implementation incurs negligible runtime slowdowns ($\approx$0%-1.94% in SPEC CPU2017 and $\approx$0%-1.92% in real-world applications) outperforming Clang-CFI. Lastly, we investigate the effectiveness/security and compatibility of FineIBT using the ConFIRM CFI benchmarking suite, demonstrating that our instrumentation provides complete coverage in the presence of modern software features, while supporting a wide range of CFI policies with the same, predictable performance.<br />Comment: Accepted at RAID 2023. Errata (reported by Lucas Becker): Section 2.4.1: "in which every bit represents 8 bytes of (virtual) memory" -> "in which two bits represent 16 bytes of (virtual) memory"

Details

Database :
arXiv
Publication Type :
Report
Accession number :
edsarx.2303.16353
Document Type :
Working Paper