Title
Microgadgets: size does matter in turing-complete return-oriented programming
Abstract
Return-oriented programming (ROP) has gained a lot of popularity lately, as an attack against currently implemented defenses in modern operating systems. Several kinds of ROP-based attacks and anti-ROP defenses have been proposed in recent years. The original attack technique depends on the existence of a hand-picked set of byte sequences (called gadgets) in the program, while subsequent approaches use complex scanners, which perform semantic analysis on the code to locate gadgets. The latter ones are efficient at finding gadgets and building an attack, but incur a significant cost in time. We propose a ROP attack technique, based on a handpicked but flexible and Turing-complete set of gadgets. One novelty in this approach is the use of microgadgets, which are gadgets restricted to 2 or 3 bytes in length. Our approach splits gadgets into several classes of varying sizes (from 1 to more than 800). Only a single gadget from each class is required for Turing-completeness. The short length of the gadgets, as well as the large size of the classes, increase the likelihood of finding all required gadgets. We also describe an efficient scanner which locates these gadgets in a given program. We then use this scanner on the /usr/bin directories from several Linux distributions, to show that many programs indeed contain a Turing-complete set of microgadgets, which attackers can use to perform arbitrary computations.
Year
Venue
Keywords
2012
WOOT
anti-rop defenses,original attack technique,short length,subsequent approach,rop-based attack,required gadget,efficient scanner,hand-picked set,turing-complete return-oriented programming,complex scanner,rop attack technique
Field
DocType
Citations 
Byte,Turing completeness,Computer science,Gadget,Computer security,Popularity,Return-oriented programming,Novelty,Computer engineering,Computation
Conference
16
PageRank 
References 
Authors
0.77
9
5
Name
Order
Citations
PageRank
Andrei Homescu13269.32
Michael Stewart28414.83
Per Larsen345923.26
Stefan Brunthaler443119.81
Michael Franz5144499.50