Bienvenida al curso
Bienvenido a OWASP Docker Top 10. La primera revisión que hago en cualquier servidor con contenedores es esta, y casi siempre da lo mismo:
docker exec tienda-web iduid=0(root) gid=0(root) groups=0(root)tienda-web es la app ficticia de una librería, construida sobre python:3.12-slim con un Dockerfile de seis líneas que nunca dice USER. Así que el proceso que atiende a cualquier visitante corre como root dentro del contenedor. El día que alguien encuentre en la app una forma de ejecutar comandos, empieza como root, con lo que el contenedor tenga montado y a un fallo del kernel de distancia del host. Ese es D01, el primero de los diez controles de esta lista.
Qué va a lograr
- Explicar qué es el OWASP Docker Top 10 y por qué se organiza como controles y no como ataques.
- Revisar con
docker inspect,docker infoysscon qué usuario, en qué redes y con qué privilegios corre cada contenedor. - Endurecer el host y el daemon de Docker y auditarlos con Docker Bench for Security.
- Sacar los secretos de las imágenes, limitar recursos y hacer contenedores de solo lectura con registro centralizado.
- Verificar el origen e integridad de las imágenes con digests y firmas de cosign.
- Convertir todo en una checklist, un pipeline con Hadolint y Trivy y un reporte de hallazgos.
Para quién es y qué necesita
Para quien ya construye imágenes y levanta servicios con Compose, sea de desarrollo, operaciones o seguridad. Conviene haber hecho Docker: fundamentos y seguridad; si nunca ha ejecutado un contenedor, empiece por la píldora Su primer contenedor con Docker. Necesita una VM Linux propia (Ubuntu 24.04 o Debian 12) con Docker Engine y el plugin de Compose, y permisos de sudo, porque varios laboratorios cambian la configuración del daemon.
Cómo está organizado
| Módulo | Qué aprende | Laboratorio |
|---|---|---|
| 1. El usuario y los parches | Qué es la lista, D01 usuarios y user namespaces, D02 parches | Usuario, remapeo y versiones |
| 2. Red, endurecimiento y contextos | D03 red y firewall, D04 host y daemon, D05 contextos | Docker Bench for Security en su VM |
| 3. Secretos, recursos, imágenes y operación | D06 secretos, D07 recursos, D08 imágenes, D09 inmutabilidad, D10 registro | Endurecer un Compose propio |
| 4. Llevarlo al trabajo | Checklist, herramientas en el ciclo de desarrollo, reporte y conclusión | Firmar y verificar imágenes con cosign |
| Evaluación | 6 preguntas sobre todo el curso | Aprueba con 70 % |
Cómo aprovecharlo
Use una VM que pueda romper. El primer laboratorio activa userns-remap en /etc/docker/daemon.json; si ya tenía ese archivo con otras opciones, agregue la clave a mano en lugar de sobrescribirlo, y haga la copia de respaldo que indica el paso. Tome antes una instantánea de la VM.
Guarde todo en ~/lab-owasp-docker: las salidas de Docker Bench de antes y después, los docker inspect y las notas. En una revisión real la evidencia es la salida, no el comando, y el reporte del módulo 4 se arma con esos archivos. El laboratorio más largo es el del Compose endurecido; el de cosign pide descargar el binario y verificar su suma antes de instalarlo. Al aprobar la evaluación final con 70 % recibe el certificado y la insignia.
Tiempo estimado
Unas 5 horas. Reserve unos 45 minutos sin interrupciones para cada laboratorio, sobre todo para los que reinician el daemon.