Leakage is prohibited: memory protection extensions protected address space randomization
Leakage is prohibited: memory protection extensions protected address space randomization
Fei Yan,Kai Wang
TLDR
Memory Protection Extensions- assisted Address Space Layout Randomization (M-ASLR) is presented, a novel code-space randomization scheme that protects against buffer overflow attacks, code reuse attacks, and other sophisticated modern attacks and adds a very low performance overhead to C/C++ applications.
Abstract
Code reuse attacks pose a severe threat to modern applications. These attacks reuse existing code segments of vulnerable applications as attack payloads and hijack the control flow of a victim application. With high code entropy and a relatively low performance overhead, Address Space Layout Randomization (ASLR) has become the most widely explored defense against code reuse attacks. However, a single memory disclosure vulnerability is able to compromise this defense. In this paper, we present Memory Protection Extensions (MPX)- assisted Address Space Layout Randomization (M-ASLR), a novel code-space randomization scheme. M-ASLR uses several characteristics of Intel MPX to restrict code pointers in memory. We have developed a fully functioning prototype of M-ALSR, and our evaluation results show that M-ASLR: (1) offers no interference with normal operation; (2) protects against buffer overflow attacks, code reuse attacks, and other sophisticated modern attacks; and (3) adds a very low performance overhead (3.3%) to C/C++ applications.
