Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 075

ASLR

Revisado porCybersecurity entrepreneur & security researcher

¿Qué es ASLR?

ASLRLa aleatorización del espacio de direcciones distribuye al azar las ubicaciones en memoria de código, pilas, montones y librerías para que los atacantes no puedan predecir de forma fiable las direcciones objetivo de sus exploits.


ASLR es una mitigación defensiva que aleatoriza las direcciones base de las regiones clave de un proceso —el ejecutable, las librerías compartidas, el montón, la pila y la zona mmap— cada vez que se ejecuta un programa. Fue impulsada por el proyecto PaX en 2001, integrada en la rama principal del kernel de Linux en 2005 (2.6.12), y hoy se incluye en Windows (desde Vista), macOS, iOS y Android. Al volver impredecible la disposición de la memoria, ASLR obliga al atacante a filtrar primero una dirección antes de montar ataques de reutilización de código como ROP o ret2libc.

Su fortaleza depende de la entropía: los sistemas de 32 bits exponen solo ~8–16 bits, una cifra tan pequeña que el estudio de Shacham de 2004 logró romper por fuerza bruta los procesos hijos de Apache en cuestión de minutos, mientras que Linux de 64 bits ofrece más de 28 bits de entropía en mmap. La cobertura importa tanto como eso: una sola librería no-PIE, o un binario ejecutado con una pila sin límite (ADDR_NO_RANDOMIZE, endurecido mediante CVE-2016-3672), deja un ancla fija. En 2014, el ataque offset2lib de Marco-Gisbert y Ripoll demostró que GNU/Linux mapeaba el ejecutable PIE junto a sus librerías, de modo que una única dirección filtrada de la aplicación des-aleatorizaba todas las librerías con un offset constante, derrotando el ASLR completo, NX y los canarios de pila en menos de un segundo. La corrección separó la base del ejecutable de mmap_base.

ASLR nunca funciona de forma aislada: combínalo con DEP/NX, canarios de pila e Integridad de Flujo de Control (CFI), y recuerda que cualquier primitiva fiable de fuga de información lo colapsa por completo.

flowchart TD
  E[exec / carga del programa] --> R{ASLR activado?}
  R -->|No| F[Direcciones fijas y predecibles]
  R -->|Yes| RND[Aleatorizar base de pila, monton, mmap, PIE, librerias]
  RND --> ENT{Entropia suficiente y cobertura total?}
  ENT -->|No| BF[Fuerza bruta / ancla no-PIE]
  ENT -->|Yes| LEAK{El atacante tiene una fuga de info?}
  LEAK -->|Yes| BYP[Recalcular direcciones reales p. ej. offset2lib]
  LEAK -->|No| BLOCK[ROP / ret2libc poco fiables]
  F --> EXP[El exploit tiene exito]
  BF --> EXP
  BYP --> EXP

Ejemplos

  1. 01

    Linux aleatoriza la base de la pila, el montón y el binario PIE en cada exec.

  2. 02

    El ASLR de 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 las ubicaciones en memoria de código, pilas, montones y librerías para que los atacantes no puedan predecir de forma fiable las direcciones objetivo de sus exploits. Pertenece a la categoría de Seguridad de aplicaciones en ciberseguridad.

¿Qué significa ASLR?

La aleatorización del espacio de direcciones distribuye al azar las ubicaciones en memoria de código, pilas, montones y librerías para que los atacantes no puedan predecir de forma fiable las direcciones objetivo de sus exploits.

¿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

Véase también