Evaluating the Effectiveness of Current Anti-ROP Defenses
Evaluating the Effectiveness of Current Anti-ROP Defenses
复制标题
DOI:
10.1007/978-3-319-11379-1_5
复制
发表时间:
2014-09
期刊:
影响因子:
--
通讯作者:
Felix Schuster;Thomas Tendyck;Jannik Pewny;A. Maaß;Martin Steegmanns;Moritz Contag;Thorsten Holz
中科院分区:
文献类型:
--
作者:
Felix Schuster;Thomas Tendyck;Jannik Pewny;A. Maaß;Martin Steegmanns;Moritz Contag;Thorsten Holz
Recently, many defenses against the offensive technique ofreturn-oriented programming(ROP) have been developed. Prominently among them arekBouncer,ROPecker, andROPGuardwhich all target legacy binary software while requiring no or only minimal binary code rewriting.In this paper, we evaluate the effectiveness of these Anti-ROP defenses. Our basic insight is that all three only analyze a limited number of recent (and upcoming) branches in an application’s control flow on certain events. As a consequence, an adversary can perform dummy operations to bypass all employed heuristics. We show that it is possible to generically bypass kBouncer, ROPecker, and ROPGuard with little extra effort in practice. In the cases of kBouncer and ROPGuard on Windows, we show that all required code sequences can already be found in the executable module of a minimal 32-bit C/C++ application with an empty main() function. To demonstrate the viability of our attack approaches, we implemented several proof-of-concept exploits for recent vulnerabilities in popular applications; e.g., Internet Explorer 10 on Windows 8.