Skip to main navigation Skip to search Skip to main content

Code-pointer integrity

  • Volodymyr Kuznetsov
  • , László Szekeres
  • , Mathias Payer
  • , George Candea
  • , R. Sekar
  • , Dawn Song
  • Swiss Federal Institute of Technology Lausanne
  • Stony Brook University
  • University of California at Berkeley
  • Purdue University

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

372 Scopus citations

Abstract

Systems code is often written in low-level languages like C/C++, which offer many benefits but also delegate memory management to programmers. This invites memory safety bugs that attackers can exploit to divert control flow and compromise the system. Deployed defense mechanisms (e.g., ASLR, DEP) are incomplete, and stronger defense mechanisms (e.g., CFI) often have high overhead and limited guarantees [19, 15, 9]. We introduce code-pointer integrity (CPI), a new design point that guarantees the integrity of all code pointers in a program (e.g., function pointers, saved return addresses) and thereby prevents all control-flow hijack attacks, including return-oriented programming. We also introduce code-pointer separation (CPS), a relaxation of CPI with better performance properties. CPI and CPS offer substantially better security-to-overhead ratios than the state of the art, they are practical (we protect a complete FreeBSD system and over 100 packages like apache and postgresql), effective (prevent all attacks in the RIPE benchmark), and efficient: on SPEC CPU2006, CPS averages 1.2% overhead for C and 1.9% for C/C++, while CPI's overhead is 2.9% for C and 8.4% for C/C++. A prototype implementation of CPI and CPS can be obtained from http://levee.epfl.ch.

Original languageEnglish
Title of host publicationProceedings of the 11th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2014
PublisherUSENIX Association
Pages147-163
Number of pages17
ISBN (Electronic)9781931971164
StatePublished - 2014
Event11th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2014 - Broomfield, United States
Duration: Oct 6 2014Oct 8 2014

Publication series

NameProceedings of the 11th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2014

Conference

Conference11th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2014
Country/TerritoryUnited States
CityBroomfield
Period10/6/1410/8/14

Fingerprint

Dive into the research topics of 'Code-pointer integrity'. Together they form a unique fingerprint.

Cite this