La randomizzazione del layout dello spazio degli indirizzi (ASLR) ("distribuzione casuale dello spazio degli indirizzi") è una tecnica per posizionare casualmente le aree di dati nella memoria virtuale . Questa è solitamente la posizione dell'heap , dello stack e delle librerie . Questo metodo consente, ad esempio, di limitare gli effetti di attacchi di tipo buffer overflow .
Consiste nel rendere "casuale" la configurazione dei processi, posizionando diversi elementi di base in posti variabili.
A differenza degli altri, i sistemi che utilizzano ASLR configurano quindi i processi in modo casuale, il che limita il funzionamento degli attacchi in base alle strutture fisse, note e documentate dei processi.
Cose diverse possono essere randomizzate : la maggior parte dei sistemi, ad esempio, definisce stack casuali o indirizzi heap.
La tecnica di randomizzazione dello spazio degli indirizzi è stata utilizzata per diversi anni su sistemi liberi come OpenBSD o Linux . L'implementazione Linux è supportata nel kernel dalla versione 2.6.20 (Giugno 2005), sebbene possa essere disabilitato dall'opzione norandmaps. Ci sono anche implementazioni esterne sotto forma di patch come PaX .
L'implementazione è supportata in modo nativo su Windows a partire da Windows Vista (febbraio 2007), in Mac OS X ( parzialmente ) dal sistema 10.5 (Leopard) (ottobre 2007) e sotto iOS 4.3 .