Saltar al contenido
Lectura5 minPreview

Bienvenida al curso

Bienvenido a OWASP A07: fallas de identificación y autenticación. A las dos de la mañana, el registro de inicio de sesión de TicoNotas, la aplicación ficticia del curso, anota esto:

02:14:07 authn_login_fail     [email protected]   198.51.100.23
02:14:09 authn_login_fail     [email protected]   203.0.113.81
02:14:10 authn_login_success  [email protected]   198.51.100.140
02:14:12 authn_login_fail     [email protected]   203.0.113.9

Cada cuenta recibe un solo intento, desde una IP distinta. Una regla de "bloquear la cuenta tras cinco fallos" no ve nada, porque ninguna cuenta falló cinco veces. No es fuerza bruta: es relleno de credenciales, alguien probando pares de correo y contraseña filtrados en otro sitio. Y la tercera línea dice que con lsolano funcionó. En este curso va a construir ese login, a ver cómo cae y a dejarlo en pie.

Qué va a lograr

  • Explicar qué es A07 y cómo se diferencian identificación, autenticación y sesión.
  • Aplicar las recomendaciones de NIST SP 800-63B sobre contraseñas y guardarlas con Argon2id.
  • Configurar sesiones y cookies seguras y eliminar los mensajes que revelan usuarios.
  • Diseñar MFA, passkeys, límites con bloqueo progresivo y una recuperación de cuenta segura.
  • Revisar un login con OWASP ASVS, corregirlo y demostrar la corrección con pytest.
  • Detectar el relleno de credenciales en los registros y redactar un reporte.

Para quién es y qué necesita

Para quien desarrolla, revisa u opera aplicaciones web. Conviene haber hecho Seguridad web con OWASP Top 10 y leer Python sencillo. Si quiere ver MFA primero desde el lado del usuario, la píldora Contraseñas y MFA sin dolor sirve de calentamiento. Necesita Linux, macOS o Windows con WSL2, Python 3.10 o superior, curl y grep.

Cómo está organizado

MóduloQué aprendeLaboratorio
1. Qué es A07 y por qué pasaQué es A07, CWE principales, NIST SP 800-63B, ataques a credenciales, curl y FlaskEscribir TicoNotas, una app de login vulnerable en localhost
2. Cómo se ve en el código y cómo se revisaArgon2id, grep, sesiones y cookies, enumeración de usuarios, BanditRevisar el login con OWASP ASVS
3. Cómo se previene y se corrigeMFA con pyotp, passkeys, Flask-Limiter, secrets, recuperación segura, pytestCorregir la app y demostrarlo con pruebas
4. Detectar, monitorear y reportarEventos de autenticación en JSON, reglas Sigma, límites en Nginx y WAF, más la conclusiónDetectar relleno de credenciales y reportarlo
Evaluación6 preguntas sobre todo el cursoAprueba con 70 %

Cómo aprovecharlo

TicoNotas pasa por los cuatro laboratorios: la escribe vulnerable, la revisa, la corrige y lee su registro. Reserve más tiempo para el del módulo 3: cambia el almacenamiento a Argon2id, iguala los mensajes de error y escribe la batería de pruebas más larga del curso. Ahí aparecen los fallos que enseñan, como un 401 donde esperaba un 200 o una prueba que pasa porque compara la respuesta equivocada.

Antes de empezar, cree un entorno virtual y tenga a mano pip install flask argon2-cffi pytest. Al aprobar la evaluación final con 70 % recibe el certificado y la insignia.

Tiempo estimado

Unas 5 horas. Haga cada laboratorio completo en una sesión; el del módulo 4 parte del registro que deja la app corregida.