ASLR ASLR

ASLR - Definition and Overview

In computer science, Address space layout randomization (ASLR) is a process which entails arranging the positions of major data areas randomly in virtual address space. This can include the base of the executable, libraries, heap, and stack. The chances of an attacker guessing where any of these randomly placed areas is <math>1/{2^b}<math>, where b is the number of bits of entropy used to determine the position of the data area. In many systems, <math>2^b<math> can be in the thousands or millions; on modern 64-bit systems, these numbers typically reach the millions at least.

Address space layout randomization was a concept used to exemplify a simple hinderance to certain classes of computer security attacks by preventing targeted data--usually program code--from being placed at addresses easily determined by the attacker; attackers trying to execute return-to-libc attacks could, for example, run the program they are attacking on their home computer to determine the layout of the program under normal, non-random circumstances.

Several security systems implement ASLR, notably PaX and Exec Shield on Linux. W^X on OpenBSD also implements a form of ASLR.

Some systems may also implement Library Load Order Randomization, which is a less entropic form of ASLR that simply randomizes the order in which libraries loaded on program load are loaded. This leaves libraries at highly predictable positions; the chances of an attacker correctly guessing the location of any of the randomly ordered libraries is <math>1/n<math>, where n is the number of libraries loaded.

Example Usage of ASLR

cfromme: Hah: RT @artkiver ASLR coming to android: https://review.source.android.com/#change,12704 But OSX? *wind through trees*
artkiver: ASLR coming to android: https://review.source.android.com/#change,12704 But OSX? *wind through trees*
ucq: @kimuraya Windows Vista以降にはASLRという機能が有りまして、これが有効になっているプログラムの場合はファイルのPEヘッダにあるImageBaseとWinMainのhInstanceは異なります。
Copyright 2009 WordIQ.com - Privacy Policy  :: Terms of Use  :: Contact Us  :: About Us
This article is licensed under the GNU Free Documentation License. It uses material from the this Wikipedia article.