KASLR, KPTI and Modern Kernel Defenses
Kernel address randomization, page-table isolation, and the config options that harden a Linux kernel against memory-corruption exploits — what each one stops and how to enable it.
Seguridad de memoria, desde el lado defensivo
Una referencia estructurada sobre vulnerabilidades de corrupción de memoria en C y C++: cómo surgen los desbordamientos de pila y heap, el use-after-free y los errores de enteros, y cómo los detienen compiladores, sanitizers, fuzzers y lenguajes más seguros.
Mapa de memoria
Empieza por cómo se organiza la memoria, conoce las clases de errores que la corrompen y después las capas que los previenen, detectan, contienen y clasifican.
Pila, heap, segmentos ELF y convenciones de llamada: el terreno de todo bug.
Desbordamientos, use-after-free, double free, errores de enteros y de cadenas de formato, y cómo detectarlos.
Canarios, NX/DEP, ASLR/PIE, RELRO, FORTIFY_SOURCE, CFI, CET y PAC, y cómo verificarlos.
AddressSanitizer, UBSan y fuzzing guiado por cobertura con libFuzzer y AFL++.
Leer señales, backtraces, informes de sanitizers y core dumps, y decidir qué corregir primero.
Lenguajes con seguridad de memoria, C++ más seguro y una estrategia de migración realista.
Una ruta legal y progresiva desde C y ensamblador hasta los retos pwn de CTF y las carreras en seguridad.
ret2win, ret2libc, cadenas ROP, sobrescritura de GOT y primitivas de cadenas de formato, construidas y neutralizadas en laboratorio.
Convenciones de llamada AArch64, registro de enlace, ROP en ARM y las defensas PAC y BTI.
Escalada de privilegios desde un bug del kernel: el modelo de credenciales, ret2usr, y SMEP, SMAP, KASLR y KPTI.
Sobrescritura de SEH, evasión de DEP con ROP, y las mitigaciones SafeSEH, SEHOP, ASLR, CFG y CET.
Defensa en profundidad
Toda mitigación tiene huecos. La resiliencia real viene de apilar capas, de modo que un error que supera una sea detectado o contenido por la siguiente.
Lenguajes con seguridad de memoria, API con comprobación de límites, advertencias del compilador y revisión de código evitan que se escriban errores.
ASan, UBSan y el fuzzing guiado por cobertura sacan a la luz los errores escritos antes que un atacante.
Canarios, NX, ASLR/PIE, RELRO, CFI y shadow stacks hacen difícil explotar los errores restantes.
El triaje de fallos, los core dumps y la deduplicación convierten los fallos en producción en correcciones priorizadas.
Últimas guías
Las guías se publican primero en inglés. Las traducciones llegarán después.
Kernel address randomization, page-table isolation, and the config options that harden a Linux kernel against memory-corruption exploits — what each one stops and how to enable it.
A kernel memory-corruption bug is about privilege, not a shell. The credential model, the commit_creds(prepare_kernel_cred(0)) payload, and returning cleanly to userspace — in a lab VM.
The kernel once trusted userspace memory, so exploits just pointed kernel execution at a user payload. SMEP and SMAP ended that — and how kernel ROP works around them.
Every exploit walks the same stages: bug, corruption, hijack, code execution, escalation. A defender's checklist of which mitigation stops each — across Linux, ARM, Windows and the kernel.
DEP makes stack shellcode unrunnable, so a Windows ROP chain calls VirtualProtect to mark the shellcode region executable, then jumps to it. Build it with mona, then see ASLR and CFG respond.
How SafeSEH, SEHOP, ASLR, Control Flow Guard and hardware CET each close a Windows exploitation technique — what they check, how to enable them, and their limits.
Glosario
Definiciones breves y precisas de los términos que encontrarás en avisos de seguridad, informes de fallos y documentación de compiladores.
Línea editorial
Entender la explotación es lo que da sentido a las mitigaciones. Explicamos los mecanismos al nivel que necesita un programador, un revisor o un equipo de respuesta a incidentes, sin llegar a convertirlos en armas.
Lo que encontrarás
Lo que nunca publicamos