Saltar al contenido
Lectura5 minPreview

Bienvenida al curso

Bienvenido a OWASP A05: configuración de seguridad incorrecta. Esto es lo que vería cualquier visitante si Pulpería Digital, la tienda ficticia del curso, se publicara con el modo debug encendido y fallara la base de datos:

  File "/home/deploy/pulperia/app.py", line 42, in pedido
    cur.execute("SELECT * FROM pedidos WHERE id = %s", (pid,))
psycopg2.OperationalError: connection to server at "db-interna.pulperia.example",
port 5432 failed: FATAL:  password authentication failed for user "pulperia_app"

Nadie atacó nada. Con un error 500, el visitante ya sabe que la app corre como deploy, cómo se llama el servidor de base de datos y con qué usuario se conecta. El código podía estar perfecto; lo que falló fue una opción, debug=True. De eso trata A05.

Qué va a lograr

  • Explicar qué es una configuración de seguridad incorrecta y qué CWE la describen.
  • Reconocer en Flask y en archivos de despliegue el debug, los errores detallados, las cabeceras ausentes, las cookies débiles, el CORS abierto y el XML con entidades externas.
  • Revisar una solicitud de cambio con una lista de verificación y con Bandit.
  • Corregir una aplicación con configuración por entorno y secretos fuera del código.
  • Demostrar cada corrección con pruebas en pytest.
  • Detectar intentos en registros, vigilar la deriva y redactar un reporte de hallazgo.

Para quién es y qué necesita

Es para quien desarrolla, revisa o despliega aplicaciones web, y para quien administra los servidores donde corren: buena parte de los hallazgos de A05 no está en el código, sino en el archivo de despliegue o en la consola de la nube. Conviene haber hecho Seguridad web con OWASP Top 10; si Python le es nuevo, Python para ciberseguridad ayuda. Necesita Python 3.10 o superior, una terminal, un editor y curl, que ya viene en Windows 10 y 11, macOS y casi todas las distribuciones Linux.

Cómo está organizado

MóduloQué aprendeLaboratorio
1. Qué es la configuración incorrecta y por qué pasaHistoria de la categoría, valores por defecto, superficie de ataque, casos públicos y CWEInventario de configuración de una app propia
2. Cómo se ve en el código y cómo se revisaModo debug, errores detallados, cabeceras, cookies, CORS, XXE y permisos en la nubeRevisión de código y configuración con Bandit
3. Cómo se previene y se corrigeConfiguración por entorno, secretos, configuración como código, Trivy y pytestCorregir la app y probarlo con pytest
4. Detectar, monitorear y reportarRegistros, WAF, deriva de configuración con Terraform y verificación externa, más la conclusiónDetector en Python y reporte de hallazgo
Evaluación6 preguntas sobre todo el cursoAprueba con 70 %

Cómo aprovecharlo

Los cuatro laboratorios usan la misma Pulpería Digital: la escribe, la revisa, la corrige y la vigila. Si se salta uno, el siguiente no tiene de dónde partir. El que más cuesta es el del módulo 3, porque las pruebas tienen que fallar contra la versión vieja antes de pasar contra la nueva; una prueba que pasa en las dos no prueba nada. Terraform aparece solo para leer la salida de terraform plan, sin cuenta en ninguna nube. Al aprobar la evaluación final con 70 % recibe el certificado y la insignia.

Tiempo estimado

Unas 4 horas y media. Cada laboratorio toma entre 22 y 25 minutos: hágalo de una sentada.