Mathias Payer - Purdue University
Feb 11, 2015
Download: MP4 Video
Watch in your Browser
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
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 (Suite 050B), West Lafayette Campus. More information...