Bienvenida al curso
Bienvenido a OWASP A02: fallas criptográficas, el segundo curso de la serie OWASP Top 10. Mire esta fila, sacada de un volcado de base de datos ficticio:
1187 | [email protected] | 5f4dcc3b5aa765d61d8327deb882cf99Ese tercer campo es MD5, sin sal, de la contraseña password. No hace falta "romper" nada: pegue el hash en un buscador y el primer resultado le da la contraseña, porque millones de personas usan la misma y alguien ya publicó su MD5. La aplicación que guardó esa fila funcionaba perfecto: el registro guardaba, el inicio de sesión comparaba, las pruebas pasaban. A02 es eso, criptografía que falla en silencio hasta el día que la base se filtra.
Qué va a lograr
- Explicar qué es A02, de dónde viene y cómo se relaciona con la Ley 8968 de Costa Rica.
- Clasificar los datos de una aplicación y decidir cómo proteger cada uno en tránsito y en reposo.
- Detectar en código Python/Flask hashes débiles, secretos escritos, aleatoriedad predecible y TLS mal usado, con
grepy Bandit. - Corregir una aplicación con Argon2id, Fernet y el módulo
secrets, y demostrarlo con pruebas en pytest. - Verificar TLS y HSTS con
opensslycurl, y buscar secretos filtrados con Gitleaks. - Redactar un reporte de hallazgo claro, con CWE, requisito ASVS y forma de verificación.
Para quién es y qué necesita
Para quien desarrolla, revisa u opera aplicaciones web y quiere la criptografía del lado práctico: qué función llamar, qué parámetro revisar. No va a demostrar teoremas. Conviene haber hecho Seguridad web con OWASP Top 10 y leer Python sencillo. Si quiere entender hashes y TLS por dentro, Criptografía práctica complementa bien, sin ser requisito.
Trabaje en Linux, macOS o Windows con WSL2, con Python 3.10 o superior, curl, openssl y Git. Gitleaks es un binario aparte que se instala en el módulo 4.
Cómo está organizado
| Módulo | Qué aprende | Laboratorio |
|---|---|---|
| 1. Qué son las fallas criptográficas y por qué ocurren | Qué es A02, estados del dato, clasificación, Ley 8968 y casos públicos | Inventario y clasificación de datos |
| 2. Cómo se ve en el código y cómo se revisa | TLS y HSTS con curl, algoritmos obsoletos, hashlib, secrets, grep y Bandit | Revisar una aplicación Flask vulnerable |
| 3. Cómo se previene y se corrige | Argon2id y bcrypt, Fernet y gestión de llaves, ASVS y pytest | Corregir la aplicación y probar la corrección |
| 4. Detectar, monitorear y reportar | openssl, registros del proxy, WAF, Gitleaks, Sigma, más la conclusión | Detectar en registros y reportar el hallazgo |
| Evaluación | 6 preguntas sobre todo el curso | Aprueba con 70 % |
Cómo aprovecharlo
El primer laboratorio no tiene código, y es fácil subestimarlo: clasificar los datos de Pulpería La Esquina decide qué hay que cifrar después. Los otros tres trabajan sobre la misma aplicación Flask, así que guarde la carpeta.
El laboratorio del módulo 3 es el más exigente. La misión pide que pytest -q muestre 7 pruebas pasando con la versión corregida y que al menos 5 fallen con la vulnerable; si todas pasan en ambas, sus pruebas no están mirando lo que deben. Instale de una vez en el entorno virtual flask, bandit, argon2-cffi, cryptography y pytest.
La evaluación final tiene 6 preguntas; con 70 % recibe el certificado y la insignia del curso.
Tiempo estimado
Unas 4 horas y media. Los cuatro laboratorios suman hora y media; deje cada uno para una sesión sin cortes.