linux - tag - Deshabilitar y volver a habilitar la distribución aleatoria del espacio de direcciones solo para mí
musicbrainz picard debian (2)
Me gustaría deshabilitar la distribución aleatoria del espacio de direcciones (ASLR) en mi sistema (Ubuntu Gnu / Linux 2.6.32-41-server), pero si uso
sysctl -w kernel.randomize_va_space=0
El cambio afectaría a todos los usuarios en el sistema, supongo. (¿Es esto cierto?) ¿Cómo puedo limitar los efectos de deshabilitar ASLR solo como usuario o solo a la sesión de shell en la que invoco el comando para deshabilitarlo?
Por cierto, veo que la configuración actual (predeterminada) de mi sistema es
sysctl -w kernel.randomize_va_space=0
¿Por qué 2 y no 1 o 3? ¿Dónde puedo encontrar documentación sobre los valores numéricos de las configuraciones / proc / sys, sus rangos y sus significados? ¡Gracias!
La documentación para la configuración de randomize_va_space
sysctl está en Documentation/sysctl/kernel.txt
en el árbol de fuentes del kernel. Básicamente,
0 - Desactiva la aleatorización del espacio de direcciones del proceso.
1 - Haga que las direcciones de mmap base, stack y página VDSO sean aleatorias.
2 - Además habilitar la aleatorización del montón.
La mejor manera de deshabilitar localmente el ASLR en un sistema basado en Linux es usar indicadores de personalidad de los procesos. El comando para manipular banderas de personalidad es setarch
con
-R
,--addr-no-randomize
Desactiva la aleatorización del espacio de direcciones virtuales (activa ADDR_NO_RANDOMIZE).
Aquí es cómo proceder:
$> setarch $(uname -m) -R /bin/bash
Este comando ejecuta un shell en el que se ha deshabilitado el ASLR. Todos los descendientes de este proceso heredarán las banderas de personalidad del padre y, por lo tanto, tendrán un ASLR deshabilitado. La única manera de romper la herencia de las banderas sería llamar a un programa setuid (sería una violación de seguridad para admitir dicha característica).
Tenga en cuenta que uname -m
está aquí para no codificar la arquitectura de su plataforma y hacer que este comando sea portátil.