Saltar al contenido
Lectura5 minPreview

Bienvenida al curso

Bienvenido a OWASP A08: fallas de integridad de software y datos. Esta línea aparece, con variantes, en el README de cientos de proyectos y en más de un Dockerfile que he revisado:

curl -fsSL https://descargas.ejemplo.cr/instalar-agente.sh | sudo bash

Descarga un script y lo ejecuta como root, sin guardarlo y sin comparar su hash con nada. Si mañana alguien cambia ese archivo en el servidor de descargas, su próxima compilación instala lo que esa persona quiera, y nadie en su equipo ve una sola línea distinta en el repositorio. A08 trata de eso: aceptar código o datos sin comprobar que no cambiaron y que vienen de quien dicen venir. Vale igual para un paquete de PyPI, una acción de GitHub o la cookie que el navegador le devuelve a su aplicación.

Qué va a lograr

  • Explicar qué cubre la categoría A08, de dónde viene y qué la diferencia de otras categorías.
  • Reconocer en código, dependencias y pipelines de CI/CD las fallas de integridad más frecuentes y su CWE.
  • Corregirlas con hashes, firmas, JSON firmado, actualizaciones verificadas, SLSA, Sigstore y OIDC.
  • Escribir pruebas automáticas que fallen si alguien revierte una corrección.
  • Detectar intentos de manipulación en logs, WAF y en la cadena de suministro con SBOM y escáneres.
  • Redactar un reporte de hallazgo claro y verificable.

Para quién es y qué necesita

Para quien desarrolla, para estudiantes de seguridad de aplicaciones y para analistas que quieren ver el lado defensivo del desarrollo. Conviene haber hecho Seguridad web con OWASP Top 10 y manejar Python y la terminal a nivel básico; si la terminal le es nueva, empiece por Linux básico: 15 comandos para empezar. Necesita Python 3.10 o superior en Linux, macOS o Windows con WSL2, un editor y acceso a internet para pip.

Cómo está organizado

MóduloQué aprendeLaboratorio
1. Qué es A08 y por qué pasaIntegridad, historia de la categoría, casos públicos y deserializaciónEscribir Cafetal Notas y su mapa de confianza
2. Cómo se ve en el código y cómo se revisaDependencias, curl, pip, GitHub Actions, grep y BanditRevisión de código y pipeline con lista de hallazgos
3. Cómo se previene y se corrigeHashes, firmas, itsdangerous, SLSA, Sigstore, OIDC y pytestCorregir la app y probarlo con pruebas automáticas
4. Detectar, monitorear y reportarEventos de seguridad, WAF, reglas Sigma, SBOM y OSV-Scanner, más la conclusiónAlerta de detección y reporte del hallazgo
Evaluación6 preguntas sobre todo el cursoAprueba con 70 %

Cómo aprovecharlo

El primer laboratorio parece el más sencillo y es el que más rinde: dibuja el mapa de confianza de Cafetal Notas, cada lugar donde la app acepta algo de afuera. Los otros tres corrigen exactamente los puntos de ese mapa, así que si lo hace a la ligera, después no sabrá qué está arreglando.

El más largo es el del módulo 3. Cambia una cookie que viajaba como pickle por JSON firmado con itsdangerous, pasa de yaml.load a yaml.safe_load y hace que un plugin alterado devuelva 422 en lugar de instalarse. Cada prueba lleva en su nombre la garantía que protege; mantenga esa costumbre en sus propios proyectos. Al aprobar la evaluación final con 70 % recibe el certificado y la insignia.

Tiempo estimado

Unas 4 horas y media, casi 5. La app crece de un laboratorio al siguiente: no borre la carpeta del proyecto entre sesiones.