CERIAS - Center for Education and Research in Information Assurance and Security

Skip Navigation
Purdue University - Discovery Park
Center for Education and Research in Information Assurance and Security

Code-Pointer Integrity

Mathias Payer - Purdue University

Feb 11, 2015

Size: 90.3MB

Download: Video Icon MP4 Video  
Watch in your Browser   Watch on Youtube Watch on YouTube


Programs are full of bugs, leading to vulnerabilities. We'll discuss
power and limitations of code-pointer integrity (CPI), a strong but
practical security policy that enforces memory safety for all code
pointers, protecting against any form of control-flow hijack attack
(e. g., ROP or JOP).

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
defence mechanisms (e. g., ASLR, DEP) are incomplete, and stronger
defence mechanisms (e. g., CFI) often have high overhead and limited
guarantees (and are therefore not generally deployed).

In this talk we discuss code-pointer integrity (CPI), a strong
security policy 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 and jump-oriented programming. We also
introduce code-pointer separation (CPS), a relaxation of CPI with
better performance properties. Both 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, resulting in very low to negligible
performance overhead.

About the Speaker

Mathias Payer is a security researcher and an assistant professor in
computer science at Purdue university. His interests are related to
system security, binary exploitation, user-space software-based fault
isolation, binary translation/recompilation, and (application)
virtualization. His research focuses on protecting applications even
in the presence of vulnerabilities, with a focus on memory corruption.

Unless otherwise noted, the security seminar is held on Wednesdays at 4:30P.M. STEW G52, West Lafayette Campus. More information...


The views, opinions and assumptions expressed in these videos are those of the presenter and do not necessarily reflect the official policy or position of CERIAS or Purdue University. All content included in these videos, are the property of Purdue University, the presenter and/or the presenter’s organization, and protected by U.S. and international copyright laws. The collection, arrangement and assembly of all content in these videos and on the hosting website exclusive property of Purdue University. You may not copy, reproduce, distribute, publish, display, perform, modify, create derivative works, transmit, or in any other way exploit any part of copyrighted material without permission from CERIAS, Purdue University.