Title
CCFI: Cryptographically Enforced Control Flow Integrity
Abstract
Control flow integrity (CFI) restricts jumps and branches within a program to prevent attackers from executing arbitrary code in vulnerable programs. However, traditional CFI still offers attackers too much freedom to chose between valid jump targets, as seen in recent attacks. We present a new approach to CFI based on cryptographic message authentication codes (MACs). Our approach, called cryptographic CFI (CCFI), uses MACs to protect control flow elements such as return addresses, function pointers, and vtable pointers. Through dynamic checks, CCFI enables much finer-grained classification of sensitive pointers than previous approaches, thwarting all known attacks and resisting even attackers with arbitrary access to program memory. We implemented CCFI in Clang/LLVM, taking advantage of recently available cryptographic CPU instructions (AES-NI). We evaluate our system on several large software packages (including nginx, Apache and memcache) as well as all their dependencies. The cost of protection ranges from a 3--18% decrease in server request rate. We also expect this overhead to shrink as Intel improves the performance AES-NI.
Year
DOI
Venue
2015
10.1145/2810103.2813676
ACM Conference on Computer and Communications Security
Keywords
Field
DocType
Control Flow Integrity, Return Oriented Programming, Vulnerabilities
Pointer (computer programming),Function pointer,Message authentication code,Computer science,Computer security,Cryptography,Control flow,Control-flow integrity,Software,Return-oriented programming,Operating system
Conference
Citations 
PageRank 
References 
47
0.99
10
Authors
4
Name
Order
Citations
PageRank
Ali José Mashtizadeh126310.79
Andrea Bittau237223.64
Dan Boneh3212541398.98
David Mazières43893396.35