De qué trata este curso
Un taller de dos días para equipos de desarrollo, construido en torno a su propio stack tecnológico. Los desarrolladores explotan ellos mismos las vulnerabilidades típicas, las corrigen y aprenden a detectarlas en la revisión. El día 1 trata la seguridad de memoria y C/C++ embebido; el día 2, la web, las API y el proceso de revisión. El curso puede reducirse a un día o ampliarse a tres, y podemos trabajar con hallazgos anonimizados de su propio código.
Programa
Día 1: Seguridad de memoria y código embebido
Teoría
- Cómo piensa un atacante: del bug al exploit
- Desbordamientos de búfer, errores de enteros y cadenas de formato
- El comportamiento indefinido y lo que los compiladores hacen con él
- MISRA C y SEI CERT C: qué cubren y qué se les escapa
- Aleatoriedad, claves y secretos en dispositivos embebidos
Práctica
- Explotación de un desbordamiento de pila en un pequeño parser de firmware
- Localización y corrección de errores de longitud y de enteros en manejadores de protocolo
- Fuzzing de un parser y triaje de los fallos
- Endurecimiento de la compilación: flags del compilador y análisis estático
Día 2: Web, API y revisión de código
Teoría
- OWASP Top 10 y OWASP API Security Top 10
- Autenticación, sesiones y control de acceso (IDOR, BOLA, BFLA)
- Inyección y deserialización insegura
- Secretos, dependencias y la cadena de suministro de software
- Seguridad en el pipeline: SAST, SCA y controles de revisión
Práctica
- Abuso de un control de acceso defectuoso en una API de ejemplo
- Corrección de fallos de inyección y de validación
- Revisión de pull requests con mentalidad de atacante
- Redacción de requisitos de seguridad que se puedan probar
