Saltar al contenido
Lectura5 minPreview

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óduloQué aprendeLaboratorio
1. Qué es el control de acceso roto y por qué pasaAutenticación y autorización, historia de A01, CWEs, IDOR y escalada, peticiones HTTP con curl y rutas en FlaskSu aplicación de práctica vulnerable
2. Cómo se ve en el código y cómo se revisaRutas y métodos sin control, CORS, método de revisión de códigoMatriz de autorización y hallazgos de revisión
3. Cómo se previene y se corrigeDenegar por defecto, centralizar, RBAC, ABAC y ReBAC, pruebas con pytestCorregir la aplicación y escribir pruebas de autorización
4. Detectar, monitorear y reportarRegistros de autorización, reglas Sigma, límites del WAF, más la conclusiónDetectar una enumeración y reportar el hallazgo
Evaluación6 preguntas sobre todo el cursoAprueba 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.