Saltar al contenido
Lectura5 minPreview

Bienvenida al curso

Bienvenido a OWASP API Security Top 10. La pantalla de perfil de una app ficticia de planillas muestra nombre y puesto. Si abre las herramientas de desarrollador y mira la respuesta de la API que alimenta esa pantalla, encuentra esto:

{
  "id": 88,
  "nombre": "Daniela Rojas",
  "puesto": "Asistente contable",
  "cedula": "1-0234-0567",
  "salario_bruto": 685000,
  "rol": "empleado",
  "es_admin": false
}

La app no pinta la cédula ni el salario, pero viajan por la red en cada visita. Y si la API además acepta un PATCH con "es_admin": true sin revisar quién lo manda, el problema deja de ser una fuga y pasa a ser una escalada de privilegios. Ese par de fallas tiene nombre en la lista, API3, y es solo una de las diez que va a aprender a encontrar y corregir aquí.

Qué va a lograr

  • Explicar qué es una API web, cómo viaja una petición HTTP y por qué las API tienen su propia lista de riesgos.
  • Reconocer los diez riesgos del OWASP API Security Top 10, edición 2023, con un caso público de cada uno.
  • Corregir en Python con Flask la autorización por objeto, por propiedad y por función.
  • Agregar límites de peticiones, validación de URL contra SSRF y una configuración segura de producción.
  • Inventariar una API desconocida a partir de su contrato OpenAPI y validar todo con pruebas automáticas.
  • Reportar hallazgos con el vocabulario de OWASP, evidencia enmascarada y una corrección concreta.

Para quién es y qué necesita

Para quien desarrolla, prueba o revisa API. Conviene haber hecho Seguridad web con OWASP Top 10 o conocer HTTP, sus métodos y sus códigos de estado. Si Python le es nuevo, Python para ciberseguridad le da la base. Necesita Windows 10 u 11, macOS o Linux con Python 3.10 o superior (el laboratorio de VAmPI pide Python 3.11 o 3.12, o Docker), Git, curl y un editor como Visual Studio Code.

Cómo está organizado

MóduloQué aprendeLaboratorio
1. Quién es usted y qué objeto pideQué es una API, la lista 2023, API1 BOLA, API2 autenticación rota y las herramientas curl, venv y FlaskSu API en Flask y la corrección de BOLA
2. Qué campos, cuánto y qué funcionesAPI3 BOPLA, API4 y API6 consumo y flujos de negocio, API5 BFLALímites, campos permitidos y roles
3. Configuración, inventario y tercerosAPI7 SSRF, API8 configuración incorrecta, API9 inventario y API10 consumo inseguroInventario de una API vulnerable en su máquina
4. Llevarlo al trabajoLista de revisión, herramientas defensivas, integración continua, reporte y conclusiónContrato OpenAPI y pruebas automáticas
Evaluación6 preguntas sobre todo el cursoAprueba con 70 %

Cómo aprovecharlo

Los laboratorios 1, 2 y 4 construyen la misma API: guarde la carpeta. El 3 es distinto: descarga VAmPI, una API vulnerable a propósito mantenida por la comunidad, con git clone, y la recorre a partir de su contrato. Ese es el que más se traba, casi siempre porque el script de inventario se crea dentro de la carpeta de VAmPI o porque se olvida activar su entorno virtual. Apáguela con Ctrl+C al terminar; nunca la deje corriendo.

La prueba que más va a repetir es la de dos usuarios: Ana pide el pedido de Beto y la API tiene que negarse. Al aprobar la evaluación final con 70 % recibe el certificado y la insignia.

Tiempo estimado

Unas 5 horas. El laboratorio del contrato OpenAPI es el más largo; empiécelo con tiempo.