ASLR
¿Qué es ASLR?
ASLRLa aleatorización del espacio de direcciones distribuye al azar la ubicación en memoria de código, pilas, montones y librerías para impedir que un atacante prediga direcciones.
ASLR es una mitigación defensiva que aleatoriza las direcciones base de las regiones clave de un proceso —ejecutable, librerías compartidas, montón, pila y zona mmap— en cada ejecución. Fue introducida por el proyecto PaX en 2001 y hoy está presente en Linux, Windows, macOS, iOS y Android. Al hacer impredecible la disposición de la memoria, obliga al atacante a filtrar primero una dirección antes de lanzar ataques de reutilización de código como ROP. Su eficacia depende de la entropía disponible, de cubrir todos los binarios (PIE) y de combinarse con DEP/NX, canarios de pila y CFI para resistir desbordes parciales y filtraciones.
● Ejemplos
- 01
Linux aleatoriza la base de pila, montón y binario PIE en cada exec.
- 02
Windows reubica kernel32.dll y ntdll.dll en cada arranque.
● Preguntas frecuentes
¿Qué es ASLR?
La aleatorización del espacio de direcciones distribuye al azar la ubicación en memoria de código, pilas, montones y librerías para impedir que un atacante prediga direcciones. Pertenece a la categoría de Seguridad de aplicaciones en ciberseguridad.
¿Qué significa ASLR?
La aleatorización del espacio de direcciones distribuye al azar la ubicación en memoria de código, pilas, montones y librerías para impedir que un atacante prediga direcciones.
¿Cómo funciona ASLR?
ASLR es una mitigación defensiva que aleatoriza las direcciones base de las regiones clave de un proceso —ejecutable, librerías compartidas, montón, pila y zona mmap— en cada ejecución. Fue introducida por el proyecto PaX en 2001 y hoy está presente en Linux, Windows, macOS, iOS y Android. Al hacer impredecible la disposición de la memoria, obliga al atacante a filtrar primero una dirección antes de lanzar ataques de reutilización de código como ROP. Su eficacia depende de la entropía disponible, de cubrir todos los binarios (PIE) y de combinarse con DEP/NX, canarios de pila y CFI para resistir desbordes parciales y filtraciones.
¿Cómo defenderse de ASLR?
Las defensas contra ASLR combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para ASLR?
Nombres alternativos comunes: Aleatorización del espacio de direcciones, PIE.
● Términos relacionados
- appsec№ 581
KASLR
KASLR aleatoriza la base del kernel y la carga de modulos en cada arranque para impedir que un atacante use direcciones fijas de kernel en escaladas de privilegios.
- appsec№ 303
DEP
La prevencion de ejecucion de datos (DEP / NX / W^X) marca paginas de memoria como no ejecutables para impedir que un atacante ejecute shellcode inyectado en pila o monton.
- appsec№ 925
Return-Oriented Programming
ROP es una tecnica de explotacion por reutilizacion de codigo que encadena secuencias cortas terminadas en RET para ejecutar computacion arbitraria sin inyectar codigo nuevo.
- appsec№ 1095
Canario de pila
Un canario de pila es un valor secreto colocado entre los buffers locales de una funcion y la direccion de retorno guardada para detectar desbordes antes de que secuestren el flujo de control.
- appsec№ 217
Integridad del flujo de control
La integridad de flujo de control (CFI) restringe las llamadas indirectas y los retornos del programa a un conjunto precomputado de destinos legitimos, bloqueando ROP y JOP.
- appsec№ 670
Seguridad de memoria
La seguridad de memoria es la propiedad de que un programa nunca lee, escribe ni ejecuta memoria que no haya asignado legitimamente, evitando clases enteras de vulnerabilidades.
● Véase también
- № 471Heap Spraying
- № 469Heap Feng Shui
- № 569Programacion orientada a saltos (JOP)
- № 1028Shadow stack
- № 545Intel CET
- № 671Lenguajes con seguridad de memoria