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. 
Purple Mystara - Cristina Martínez Girol
Todos los derechos reservados 2025
Creado con Webnode Cookies
¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar