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.

Original languageEnglish (US)
Title of host publicationProceedings - 22nd International Symposium on Reliable Distributed Systems, SRDS 2003
Number of pages10
StatePublished - 2003
Event22nd International Symposium on Reliable Distributed Systems, SRDS 2003 - Florence, Italy
Duration: Oct 6 2003Oct 8 2003

Publication series

NameProceedings of the IEEE Symposium on Reliable Distributed Systems
ISSN (Print)1060-9857


Other22nd International Symposium on Reliable Distributed Systems, SRDS 2003

ASJC Scopus subject areas

  • Software
  • Theoretical Computer Science
  • Hardware and Architecture
  • Computer Networks and Communications


Dive into the research topics of 'Transparent runtime randomization for security'. Together they form a unique fingerprint.

Cite this