Mitigating Code-Reuse Attacks With Control-Flow Locking

Code-reuse attacks are software exploits in which an attacker directs control flow through existing code with a malicious result. One such technique, return-oriented programming, is based on "Gadgets"(short pre-existing sequences of code ending in a ret instruction) being executed in arbitrary order as a result of a stack corruption exploit. Many existing code-reuse defenses have relied upon a particular attribute of the attack in question (e.g., the frequency of ret instructions in a return-oriented attack), which leads to an incomplete protection, while a smaller number of efforts in protecting all exploitable control flow transfers suffer from limited deployability due to high performance overhead.

Provided by: Association for Computing Machinery Topic: Security Date Added: Dec 2011 Format: PDF

Find By Topic