Address Space Layout Permutation (ASLP): Towards Fine-Grained Randomization of Commodity Software

  • Authors:
  • Chongkyung Kil;Jinsuk Jun;Christopher Bookholt;Jun Xu;Peng Ning

  • Affiliations:
  • North Carolina State University, USA;North Carolina State University, USA;North Carolina State University, USA;Google, Inc.;North Carolina State University, USA

  • Venue:
  • ACSAC '06 Proceedings of the 22nd Annual Computer Security Applications Conference
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Address space randomization is an emerging and promising method for stopping a broad range of memory corruption attacks. By randomly shifting critical memory regions at process initialization time, address space randomization converts an otherwise successful malicious attack into a benign process crash. However, existing approaches either introduce insufficient randomness, or require source code modification. While insufficient randomness allows successful brute-force attacks, as shown in recent studies, the required source code modification prevents this effective method from being used for commodity software, which is the major source of exploited vulnerabilities on the Internet. We propose Address Space Layout Permutation (ASLP) that introduces high degree of randomness (or high entropy) with minimal performance overhead. Essential to ASLP is a novel binary rewriting tool that can place the static code and data segments of a compiled executable to a randomly specified location and performs fine-grained permutation of procedure bodies in the code segment as well as static data objects in the data segment. We have also modified the Linux operating system kernel to permute stack, heap, and memory mapped regions. Together, ASLP completely permutes memory regions in an application. Our security and performance evaluation shows minimal performance overhead with orders of magnitude improvement in randomness (e.g., up to 29 bits of randomness on a 32-bit architecture).