Dockers
🧱 ¿Qué es un contenedor o Docker?
🧠 Definición técnica:
Un contenedor es una unidad ligera, autónoma y ejecutable que incluye todo lo necesario para que una aplicación funcione:
-
el código,
-
las librerías,
-
las dependencias,
-
las configuraciones.
👉 Se ejecuta aislado del sistema operativo anfitrión, pero comparte su núcleo (kernel).
Esto lo hace más eficiente y rápido que una máquina virtual.
Docker es la tecnología más usada para crear y ejecutar contenedores.
☕ Alegoría realista: La cafetera portátil
Imagina que eres responsable de ofrecer café a miles de personas en distintas oficinas del mundo.
Podrías enviarles la receta, ingredientes y pedirles que lo preparen localmente. Pero sería un caos.
En lugar de eso, les das una cafetera portátil con:
-
la receta exacta,
-
los ingredientes medidos,
-
el botón de encendido.
Con solo conectarla y pulsar un botón, obtienen siempre el mismo café, en cualquier parte del mundo, sin errores.
💡 Eso es un contenedor Docker: una aplicación que funciona igual siempre, donde sea que se despliegue.
⚙️ ¿Qué contiene un contenedor?
-
Una imagen Docker → como la cafetera lista para enviar.
-
Código de la aplicación.
-
Dependencias específicas (librerías, intérpretes como Python o Node.js).
-
Variables de entorno y configuraciones.
-
Instrucciones de inicio (como ENTRYPOINT o CMD en Dockerfile).
🚀 ¿Por qué usamos contenedores?
🔹 Portabilidad: Funciona igual en desarrollo, pruebas o producción.
🔹 Rapidez: Se inicia en segundos.
🔹 Aislamiento: Lo que pasa dentro del contenedor no afecta al host ni a otros contenedores.
🔹 Escalabilidad: Perfecto para microservicios y arquitectura moderna.
🔹 Automatización: Integración sencilla en pipelines CI/CD.
🔐 ¿Y en ciberseguridad?
Los contenedores son una capa crítica de ataque y defensa:
-
El Red Team intenta escapar del contenedor, explotar imágenes maliciosas o escanear puertos internos.
-
El Blue Team aplica control de versiones, escaneo de vulnerabilidades y refuerzo de aislamiento.
-
El Purple Team diseña, automatiza y valida que todo funcione correctamente y sin brechas.
🛠️ Herramientas clave
- Docker Motor de contenedores
- Docker Compose Orquestar múltiples contenedores como un sistema
- Kubernetes Plataforma de orquestación masiva y escalable
- Harbor Registro privado seguro de imágenes
- Trivy / Clair Escaneo de vulnerabilidades en imágenes
🧪 EJERCICIOS PURPLE TEAM – Virtualización y Contenedores
🔁 Con estructura: Red Team ataca – Blue Team defiende – Purple Team optimiza
🔹 1. NIVEL AVANZADO: "Contenedor vulnerable en producción"
🎯 Red Team ataca:
-
Analiza una imagen de Docker publicada en un repositorio público sin escaneo.
-
Busca secretos embebidos (.env, claves API, credenciales).
-
Realiza un intento de container escape desde un contenedor con privilegios elevados (--privileged o --mount inseguro).
🛡️ Blue Team defiende:
-
Establece una pipeline CI/CD con escaneo automático (Trivy, Clair) de todas las imágenes antes del despliegue.
-
Aplica políticas de no permitir imágenes sin firma (notary, cosign).
-
Revisa configuraciones en docker-compose.yml y manifiestos de Kubernetes para eliminar permisos innecesarios.
🟣 Purple Team optimiza:
-
Crea un script de validación automática que bloquee cualquier despliegue de imágenes sin escanear.
-
Diseña un escenario de alerta: ¿el contenedor genera tráfico extraño? ¿se conecta a dominios no aprobados?
-
Evalúa los tiempos de detección y propone métricas base de mejora.
🔹 2. NIVEL EXPERTO: "Escape de contenedor y lateralización"
🎯 Red Team ataca:
-
Despliega un contenedor vulnerable (por ejemplo, con runc sin parchear).
-
Usa técnicas como /proc/self/exe overwrite para escapar al host.
-
Intenta escalar privilegios y moverse lateralmente a otros contenedores o al host base.
🛡️ Blue Team defiende:
-
Usa controladores de seguridad como AppArmor o SELinux para restringir acciones del contenedor.
-
Implementa runtime security con herramientas como Falco o Sysdig Secure.
-
Aísla contenedores críticos en nodos dedicados y aplica no-new-privileges.
🟣 Purple Team optimiza:
-
Simula ataques reales de escape de contenedor en laboratorio y documenta los paths posibles.
-
Mide qué herramientas detectan el escape y cuáles no.
-
Crea una guía de refuerzo para evitar privilegios innecesarios y escapes.
🔹 3. NIVEL MAESTRO: "Ataque cruzado entre hipervisor, contenedor y aplicación virtualizada"
🎯 Red Team ataca:
-
Escanea un entorno mixto: VDI Citrix + Kubernetes.
-
Lanza un ataque tipo snapshot manipulation en una VM y captura credenciales.
-
Desde allí, intenta comprometer el nodo Kubernetes donde corren los contenedores.
🛡️ Blue Team defiende:
-
Implementa separación estricta entre entornos de virtualización (VDI, hypervisor) y clústeres de contenedores.
-
Desactiva funciones peligrosas en el hipervisor (passthrough, snapshot externo).
-
Aplica auditorías cruzadas en VDI y Kubernetes para detectar anomalías de sesión y ejecución.
🟣 Purple Team optimiza:
-
Crea simulaciones de "hopping" entre capas: VM → contenedor → app virtualizada.
-
Define reglas de detección para eventos de snapshot sospechoso + escalada lateral.
-
Evalúa si hay logs suficientes en las tres capas para reconstruir el ataque completo.
🧠 RESULTADOS ESPERADOS
- Avanzado: Detecto imágenes con vulnerabilidades y bloqueo el despliegue inseguro.
- Experto: Identifico un intento de escape y lo detengo antes de que toque el host.
- Maestro: Rastreabilidad completa del ataque entre capas, con alertas en tiempo real y guía de contención integrada.

