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
7
guías en profundidad
11
términos del glosario
15

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
0x6000 · Ruta de aprendizajeInglés

A Binary Exploitation Learning Path Through CTFs

A staged, legal path from C and assembly to CTF pwn challenges: what to learn in which order, practice platforms built for it, lab rules, and how it leads to defensive careers.

0x3000 · Encontrar erroresInglés

Coverage-Guided Fuzzing with libFuzzer and AFL++

Write a fuzz harness, build it with sanitizers, run libFuzzer and AFL++, manage corpora and dictionaries, and run continuous fuzzing in CI with OSS-Fuzz or ClusterFuzzLite.

0x2000 · Mitigaciones de explotaciónInglés

Control-Flow Integrity: CFI, Intel CET and Arm PAC/BTI

How forward-edge and backward-edge control-flow integrity work, from Clang CFI and Microsoft CFG to Intel CET shadow stacks and Arm pointer authentication, and their limits.

Glosario

Habla el mismo idioma

Definiciones breves y precisas de los términos que encontrarás en avisos de seguridad, informes de fallos y documentación de compiladores.

Abrir el glosario

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