Saltar al contenido

Seguridad de memoria, desde el lado defensivo

Entiende el error.Despliega la mitigación.

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.

áreas
11
guías en profundidad
35
términos del glosario
28

Mapa de memoria

Siete áreas, un ciclo de vida del error

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.

Defensa en profundidad

Ningún control basta por sí solo

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.

  1. Prevenir

    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.

    • Rust
    • std::span
    • -Wformat=2
    • ckd_add
  2. Detectar

    ASan, UBSan y el fuzzing guiado por cobertura sacan a la luz los errores escritos antes que un atacante.

    • ASan
    • UBSan
    • libFuzzer
    • AFL++
  3. Mitigar

    Canarios, NX, ASLR/PIE, RELRO, CFI y shadow stacks hacen difícil explotar los errores restantes.

    • canary
    • NX
    • PIE
    • RELRO
    • CET
  4. Responder

    El triaje de fallos, los core dumps y la deduplicación convierten los fallos en producción en correcciones priorizadas.

    • gdb
    • coredumpctl
    • !analyze

Últimas guías

Lee los análisis en profundidad

Las guías se publican primero en inglés. Las traducciones llegarán después.

Todas las guías
0x9000 · Explotación del kernelInglés

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.

0x9000 · Explotación del kernelInglés

Kernel Exploitation: From a Bug to root

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.

0x9000 · Explotación del kernelInglés

ret2usr, SMEP and SMAP

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.

0x2000 · Mitigaciones de explotaciónInglés

The Mitigation Stack: Which Defenses, In Order

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.

0xa000 · Explotación en WindowsInglés

Bypassing DEP on Windows with ROP

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.

0xa000 · Explotación en WindowsInglés

Windows Flow-Integrity Mitigations: CFG and CET

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.

Línea editorial

Defensivo por diseño

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

  • Patrones vulnerables junto a sus correcciones
  • Opciones de compilador, enlazador y sanitizers listas para producción
  • Cómo verificar mitigaciones con checksec y readelf
  • Cómo leer informes de fallos y de sanitizers

Lo que nunca publicamos

  • Cadenas de explotación funcionales o shellcode
  • Evasiones de mitigaciones paso a paso
  • Cargas dirigidas a software real
  • Soluciones de retos CTF en curso