MoCFI: A Framework to Mitigate Control-Flow Attacks on Smartphones Lucas Davi1, Alexandra Dmitrienko2, Manuel Egele3, Thomas Fischer4, Thorsten Holz4, Ralf Hund4, Stefan Nurnberger¨ 1, Ahmad-Reza Sadeghi1;2 1CASED/Technische Universitat¨ Darmstadt, Germany 3University of California, Santa Barbara, USA flucas.davi,stefan.nuernberger,
[email protected] [email protected] 2Fraunhofer SIT, Darmstadt, Germany 4Ruhr-Universitat¨ Bochum, Germany falexandra.dmitrienko,
[email protected] fthomas.fischer,thorsten.holz,
[email protected] Abstract based buffer overflows [4, 5], uncontrolled format strings vulnerabilities [23], or integer overflows [9]). Many current Runtime and control-flow attacks (such as code injec- systems offer a large attack surface, because they still use tion or return-oriented programming) constitute one of the software programs implemented in unsafe languages such most severe threats to software programs. These attacks as C or C++. In particular, modern smartphone platforms are prevalent and have been recently applied to smartphone like Apple’s iPhone and Google’s Android have recently applications as well, of which hundreds of thousands are become appealing attack targets (e.g., [25, 33, 26, 27, 43]) downloaded by users every day. While a framework for and increasingly leak sensitive information to remote adver- control-flow integrity (CFI) enforcement, an approach to saries (e.g., the SMS database [26]). prohibit this kind of attacks, exists for the Intel x86 plat- A general approach to mitigate control-flow attacks is the form, there is no such a solution for smartphones. enforcement of control-flow integrity (CFI) [1]. This tech- In this paper, we present a novel framework, MoCFI nique asserts the basic safety property that the control-flow (Mobile CFI), that provides a general countermeasure of a program follows only the legitimate paths determined against control-flow attacks on smartphone platforms by en- in advance.