Oct. 6, 2003 to Oct. 8, 2003
Jun Xu , University of Illinois at Urbana-Champaign
Zbigniew Kalbarczyk , University of Illinois at Urbana-Champaign
Ravishankar K. Iyer , University of Illinois at Urbana-Champaign
A large class of security attacks exploit software implementation vulnerabilities such as unchecked buffers. This paper proposes Transparent Runtime Randomization (TRR), a generalized approach for protecting against a wide range of security attacks. TRR dynamically and randomly relocates a program?s stack, heap, shared libraries, and parts of its runtime control data structures inside the application memory address space. Making a program?s memory layout different each time it runs foils the attacker?s assumptions about the memory layout of the vulnerable program and makes the determination of critical address values difficult if not impossible. TRR is implemented by changing the Linux dynamic program loader, hence it is transparent to applications. We demonstrate that TRR is effective in defeating real security attacks, including malloc-based heap overflow, integer overflow, and double-free attacks, for which effective prevention mechanisms are yet to emerge. Furthermore, TRR incurs less than 9% program startup overhead and no runtime overhead.
Jun Xu, Zbigniew Kalbarczyk, Ravishankar K. Iyer, "Transparent Runtime Randomization for Security", SRDS, 2003, Reliable Distributed Systems, IEEE Symposium on, Reliable Distributed Systems, IEEE Symposium on 2003, pp. 260, doi:10.1109/RELDIS.2003.1238076