Bienvenida al curso
Bienvenido a OWASP A01: control de acceso roto, el primer curso de la serie OWASP Top 10.
El portal hizo bien una parte: comprobó quién era ese cliente. Lo que nunca preguntó fue si la factura 1042 era suya. Esa segunda pregunta, la autorización, es la que falla en la categoría que encabeza el Top 10 desde 2021. Para explotarla no hizo falta ninguna herramienta, solo cambiar un número en la barra de direcciones.
Qué va a lograr
- Distinguir autenticación de autorización y explicar por qué el control de acceso roto ocupa el primer lugar del Top 10.
- Reconocer un IDOR, una escalada horizontal o vertical, una ruta o un método sin control y un CORS mal configurado.
- Revisar código con una matriz de autorización y redactar hallazgos con ubicación, evidencia y CWE.
- Corregir una aplicación Flask con denegación por defecto y autorización centralizada.
- Demostrar la corrección con pruebas automáticas en pytest que fallan contra la versión vulnerable.
- Registrar las decisiones de autorización, detectar una enumeración en los registros y reportar el hallazgo.
Para quién es y qué necesita
Para quien desarrolla, revisa o prueba aplicaciones web, o investiga accesos indebidos. Conviene haber hecho Seguridad web con OWASP Top 10 y poder leer Python sencillo (si no, ayuda Python para ciberseguridad).
Necesita Python 3.10 o superior, un editor de código y una terminal. curl ya viene en Windows 10 y 11 y en casi cualquier Linux.
Cómo está organizado
| Módulo | Qué aprende | Laboratorio |
|---|---|---|
| 1. Qué es el control de acceso roto y por qué pasa | Autenticación y autorización, historia de A01, CWEs, IDOR y escalada, peticiones HTTP con curl y rutas en Flask | Su aplicación de práctica vulnerable |
| 2. Cómo se ve en el código y cómo se revisa | Rutas y métodos sin control, CORS, método de revisión de código | Matriz de autorización y hallazgos de revisión |
| 3. Cómo se previene y se corrige | Denegar por defecto, centralizar, RBAC, ABAC y ReBAC, pruebas con pytest | Corregir la aplicación y escribir pruebas de autorización |
| 4. Detectar, monitorear y reportar | Registros de autorización, reglas Sigma, límites del WAF, más la conclusión | Detectar una enumeración y reportar el hallazgo |
| Evaluación | 6 preguntas sobre todo el curso | Aprueba con 70 % |
Cómo aprovecharlo
Los cinco laboratorios giran alrededor de la misma aplicación de notas, con Ana, Beto y Carla como usuarios. Si salta uno, el siguiente no le calza. Antes de empezar, cree el entorno virtual y deje instalados flask y pytest; el error más frecuente del módulo 1 es olvidar activar .venv y que Python diga que Flask no existe.
El laboratorio que más cuesta es el de pruebas automáticas: hay que escribir casos que esperan un 403 y comprobar que fallan contra el código vulnerable. Si una prueba pasa en las dos versiones, no está probando nada. Guarde las salidas: son la evidencia del reporte final. La evaluación tiene 6 preguntas, y con 70 % recibe el certificado y la insignia.
Tiempo estimado
Unas 5 horas, casi dos de laboratorio: cada uno pide unos 25 minutos seguidos con la aplicación corriendo.