Breaking the memory secrecy assumption

R Strackx, Y Younan, P Philippaerts… - Proceedings of the …, 2009 - dl.acm.org
R Strackx, Y Younan, P Philippaerts, F Piessens, S Lachmund, T Walter
Proceedings of the Second European Workshop on System Security, 2009dl.acm.org
Many countermeasures exist that attempt to protect against buffer overflow attacks on
applications written in C and C++. The most widely deployed countermeasures rely on
artificially introducing randomness in the memory image of the application. StackGuard and
similar systems, for instance, will insert a random value before the return address on the
stack, and Address Space Layout Randomization (ASLR) will make the location of stack
and/or heap less predictable for an attacker. A critical assumption in these probabilistic …
Many countermeasures exist that attempt to protect against buffer overflow attacks on applications written in C and C++. The most widely deployed countermeasures rely on artificially introducing randomness in the memory image of the application. StackGuard and similar systems, for instance, will insert a random value before the return address on the stack, and Address Space Layout Randomization (ASLR) will make the location of stack and/or heap less predictable for an attacker.
A critical assumption in these probabilistic countermeasures is that attackers cannot read the contents of memory. In this paper we show that this assumption is not always justified. We identify a new class of vulnerabilities -- buffer overreads -- that occur in practice and that can be exploited to read parts of the memory contents of a process running a vulnerable application. We describe in detail how to exploit an application protected by both ASLR and stack canaries, if the application contains both a buffer overread and a buffer overflow vulnerability.
We also provide a detailed discussion of how this vulnerability affects other, less widely deployed probabilistic countermeasures such as memory obfuscation and instruction set randomization.
ACM Digital Library