Making Code Re-randomization Practical with MARDU

09/20/2019
by   Christopher Jelesnianski, et al.
0

Defense techniques such as Data Execution Prevention (DEP) and Address Space Layout Randomization (ASLR) were the early role models preventing primitive code injection and return-oriented programming (ROP) attacks. Notably, these techniques did so in an elegant and utilitarian manner, keeping performance and scalability in the forefront, making them one of the few widely-adopted defense techniques. As code re-use has evolved in complexity from JIT-ROP, to BROP and data-only attacks, defense techniques seem to have tunneled on defending at all costs, losing-their-way in pragmatic defense design. Some fail to provide comprehensive coverage, being too narrow in scope, while others provide unrealistic overheads leaving users willing to take their chances to maintain performance expectations. We present Mardu, an on-demand system-wide re-randomization technique that improves re-randomization and refocuses efforts to simultaneously embrace key characteristics of defense techniques: security, performance, and scalability. Our code sharing with diversification is achieved by implementing reactive and scalable, rather than continuous or one-time diversification while the use of hardware supported eXecute-only Memory (XoM) and shadow stack prevent memory disclosure; entwining and enabling code sharing further minimizes needed tracking, patching costs, and memory overhead. Mardu's evaluation shows performance and scalability to have low average overhead in both compute-intensive (5.5 With this design, Mardu demonstrates that strong and scalable security guarantees are possible to achieve at a practical cost to encourage deployment.

READ FULL TEXT

page 1

page 6

page 7

page 8

page 10

research
07/05/2020

Breaking and Fixing Destructive Code Read Defenses

Just-in-time return-oriented programming (JIT-ROP) is a powerful memory ...
research
03/11/2019

IskiOS: Lightweight Defense Against Kernel-Level Code-Reuse Attacks

Commodity operating systems such as Windows, Linux, and MacOS X form the...
research
01/20/2022

Adelie: Continuous Address Space Layout Re-randomization for Linux Drivers

While address space layout randomization (ASLR) has been extensively stu...
research
10/07/2019

Measuring Attack Surface Reduction in the Presence of Code (Re-)Randomization

Just-in-time return-oriented programming (JIT-ROP) technique allows one ...
research
09/12/2019

Protecting the stack with PACed canaries

Stack canaries remain a widely deployed defense against memory corruptio...
research
12/11/2018

Code-less Patching for Heap Vulnerabilities Using Targeted Calling Context Encoding

Exploitation of heap vulnerabilities has been on the rise, leading to ma...

Please sign up or login with your details

Forgot password? Click here to reset