Size Does Matter: Why Using Gadget-Chain Length to Prevent Code-Reuse Attacks is Hard
Abstract
Code-reuse attacks based on return oriented programming are among the most popular exploitation techniques used by attackers today. Few practical defenses are able to stop such attacks on arbitrary binaries with-out access to source code. A notable exception are the techniques that employ new hardware, such as Intel's Last Branch Record (LBR) registers, to track all indirect branches and raise an alert when a sensitive system call is reached by means of too many indirect branches to short gadgets under the assumption that such gadget chains would be indicative of a ROP attack. In this paper, we evaluate the implications. What is too many and how short is short? Getting the thresholds wrong has serious consequences. In this paper, we show by means of an attack on Internet Explorer that while current defenses based on these techniques raise the bar for exploitation, they can be bypassed. Conversely, tuning the thresholds to make the defenses more aggressive, may flag legitimate program behavior as an attack. We analyze the problem in detail and show that determining the right values is difficult.
Document Details
- Document Type
- Technical Report
- Publication Date
- Aug 20, 2014
- Accession Number
- AD1146155
Entities
People
- Elias Athanasopoulos
- Enes Goktas
- Georgios Portokalidis
- Herbert Bos
- Michalis Polychronakis
Organizations
- Columbia University
- Stevens Institute of Technology
- Vrije Universiteit Amsterdam