Saltar al contenido
Lectura5 minPreview

Bienvenida al curso

Bienvenido a OWASP A04: diseño inseguro. Por ejemplo: un lunes, la encargada de la tienda en línea de Café del Valle revisa los pedidos del fin de semana y encuentra uno de cuatro bolsas de café con total de cero colones. El cliente había aplicado el cupón BIENVENIDA10 cuarenta veces en el mismo carrito, recargando la página entre una y otra.

Nadie hackeó nada. El servidor recibió cuarenta peticiones válidas y aplicó cuarenta descuentos, exactamente como estaba escrito. El error estaba antes del código, en la reunión donde alguien dijo "el cupón da un 10 %" y nadie preguntó cuántas veces, por cliente o por pedido. Ningún escáner lo habría marcado: no hay una línea mal escrita.

Qué va a lograr

  • Distinguir una falla de diseño de una de implementación y nombrarla con la CWE correcta.
  • Modelar amenazas con STRIDE y escribir casos de abuso para una funcionalidad real.
  • Definir límites de negocio de frecuencia, intentos, montos y orden, con máquinas de estados e idempotencia.
  • Aplicar patrones de diseño seguro y convertirlos en requisitos verificables con OWASP ASVS.
  • Corregir una pequeña API en Flask y demostrar la corrección con pruebas automáticas en pytest.
  • Detectar abuso de lógica en registros de negocio y redactar un hallazgo de diseño.

Para quién es y qué necesita

Para quien desarrolla, revisa o defiende aplicaciones web, y para quien se sienta en las reuniones donde se deciden las funciones. Conviene haber hecho Seguridad web con OWASP Top 10 y leer Python básico; si no, Python para ciberseguridad le da la base.

Necesita Python 3.10 o superior, un editor y una terminal (en Windows, PowerShell o Git Bash). Solo usará internet para instalar Flask, Flask-Limiter y pytest con pip.

Cómo está organizado

Todo el curso gira alrededor de Colibrí Pagos, una billetera digital ficticia de Costa Rica.

MóduloQué aprendeLaboratorio
1. Qué es el diseño inseguro y por qué pasaDiseño frente a implementación, historia de A04, escenarios y CWECasos de abuso para una app de pagos
2. Modelado de amenazas y revisión de códigoSTRIDE, diagramas de flujo de datos, venv, Flask, curl y señales de diseño inseguro en el códigoRevisar una app vulnerable propia
3. Prevenir y corregirLímites de negocio, Flask-Limiter, patrones de diseño seguro, ASVS y pytestCorregir la app y probarla con pytest
4. Detectar, monitorear y reportarRegistro de eventos de negocio, alertas, alcances de un WAF, reporte de hallazgos y conclusiónDetectar abuso de lógica en registros
Evaluación6 preguntas sobre todo el cursoAprueba con 70 %

Cómo aprovecharlo

El primer laboratorio se hace con papel o un documento en blanco: usted es la persona de seguridad invitada a la reunión de diseño de Colibrí Pagos y tiene que escribir casos de abuso antes de que exista el código. Cuesta más que programar, porque ningún compilador le dice si quedó bien.

En el laboratorio de corrección la meta es concreta: todas las pruebas de pytest en verde, incluidas las que verifican el límite diario, el tope de intentos y la clave de idempotencia. Cuando una falle, lea el mensaje completo antes de tocar el código. La evaluación final tiene 6 preguntas; con 70 % recibe el certificado y la insignia.

Tiempo estimado

Unas 5 horas. Los cuatro laboratorios suman hora y media; haga cada uno de un tirón.