KASLR
¿Qué es KASLR?
KASLRKASLR 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.
KASLR extiende ASLR al kernel: la imagen del kernel, los modulos, el area vmalloc, el physmap y las pilas se cargan en cada arranque con un desplazamiento aleatorio. Linux anadio KASLR basico en 2014, reforzado por KAISER/KPTI para mitigar Meltdown; Windows lo introdujo en Vista y lo mejoro hasta Windows 10. Como el kernel suele compartir un unico espacio de direcciones, filtrar un solo puntero suele romper KASLR; investigadores han demostrado canales laterales (cache, TLB, prefetch, ejecucion especulativa) que recuperan el offset. KASLR es mas eficaz combinado con SMEP/SMAP, KPTI, kCFI y restricciones estrictas en /proc y dmesg para evitar fugas.
● Ejemplos
- 01
Linux desplaza la base del kernel un offset aleatorio alineado a 1 GiB en cada arranque.
- 02
Windows 10 aleatoriza la direccion de carga de ntoskrnl.exe en cada arranque.
● Preguntas frecuentes
¿Qué es 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. Pertenece a la categoría de Seguridad de aplicaciones en ciberseguridad.
¿Qué significa 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.
¿Cómo funciona KASLR?
KASLR extiende ASLR al kernel: la imagen del kernel, los modulos, el area vmalloc, el physmap y las pilas se cargan en cada arranque con un desplazamiento aleatorio. Linux anadio KASLR basico en 2014, reforzado por KAISER/KPTI para mitigar Meltdown; Windows lo introdujo en Vista y lo mejoro hasta Windows 10. Como el kernel suele compartir un unico espacio de direcciones, filtrar un solo puntero suele romper KASLR; investigadores han demostrado canales laterales (cache, TLB, prefetch, ejecucion especulativa) que recuperan el offset. KASLR es mas eficaz combinado con SMEP/SMAP, KPTI, kCFI y restricciones estrictas en /proc y dmesg para evitar fugas.
¿Cómo defenderse de KASLR?
Las defensas contra KASLR combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para KASLR?
Nombres alternativos comunes: ASLR del kernel.
● Términos relacionados
- appsec№ 064
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.
- appsec№ 1058
SMEP / SMAP
SMEP y SMAP son funciones de CPU que impiden que el kernel ejecute o acceda a paginas de usuario, bloqueando tecnicas comunes de escalada local de privilegios.
- 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.
- appsec№ 545
Intel CET
Intel CET (Control-flow Enforcement Technology) es una caracteristica de CPU que combina shadow stack hardware e Indirect Branch Tracking (IBT) para bloquear ROP, JOP y COP.
- appsec№ 671
Lenguajes con seguridad de memoria
Los lenguajes con seguridad de memoria como Rust, Go, Swift, Java y C# evitan los errores espaciales y temporales de memoria que originan la mayoria de vulnerabilidades explotables en C y C++.