Practical Context-Sensitive CFI
Open Access
- 12 October 2015
- conference paper
- Published by Association for Computing Machinery (ACM)
- p. 927-940
Abstract
Current Control-Flow Integrity (CFI) implementations track control edges individually, insensitive to the context of preceding edges. Recent work demonstrates that this leaves sufficient leeway for powerful ROP attacks. Context-sensitive CFI, which can provide enhanced security, is widely considered impractical for real-world adoption. Our work shows that Context-sensitive CFI (CCFI) for both the backward and forward edge can be implemented efficiently on commodity hardware. We present PathArmor, a binary-level CCFI implementation which tracks paths to sensitive program states, and defines the set of valid control edges within the state context to yield higher precision than existing CFI implementations. Even with simple context-sensitive policies, PathArmor yields significantly stronger CFI invariants than context-insensitive CFI, with similar performanceKeywords
This publication has 31 references indexed in Scilit:
- Fine-Grained Control-Flow Integrity Through Binary Hardening2015
- Modular control-flow integrityACM SIGPLAN Notices, 2014
- Evaluating the Effectiveness of Current Anti-ROP Defenses2014
- Monitor integrity protection with space efficiency and separate compilation2013
- Mitigating code-reuse attacks with control-flow locking2011
- Anywhere, any-time binary instrumentation2011
- Control-flow integrity principles, implementations, and applicationsACM Transactions on Information and System Security, 2009
- Using DISE to protect return addresses from attackACM SIGARCH Computer Architecture News, 2005
- A Theory of Secure Control Flow2005
- An API for Runtime Code PatchingThe International Journal of High Performance Computing Applications, 2000