La documentazione per randomize_va_space
sysctl l'impostazione è in Documentation/sysctl/kernel.txt
nell'albero dei sorgenti del kernel. Fondamentalmente,
0 - Disattiva la randomizzazione dello spazio degli indirizzi del processo.
1 - Rendi casuali gli indirizzi di mmap base, stack e pagina VDSO.
2 - Abilita inoltre la randomizzazione dell'heap.
Il modo migliore per disabilitare localmente l'ASLR su un sistema basato su Linux è utilizzare i flag di personalità dei processi. Il comando per manipolare i flag di personalità è setarch
con
-R
,--addr-no-randomize
Disabilita la randomizzazione dello spazio degli indirizzi virtuali (attiva ADDR_NO_RANDOMIZE).
Ecco come procedere:
$> setarch $(uname -m) -R /bin/bash
Questo comando esegue una shell in cui l'ASLR è stato disabilitato. Tutti i discendenti di questo processo erediteranno i flag di personalità del padre e quindi avranno un ASLR disabilitato. L'unico modo per interrompere l'ereditarietà dei flag sarebbe chiamare un programma setuid (sarebbe una violazione della sicurezza supportare tale funzionalità).
Nota che il uname -m
è qui per non codificare l'architettura della tua piattaforma e rendere questo comando portabile.