El despliegue de contenedores con privilegios de root es un vector de ataque subestimado en entornos productivos. Si una aplicación dentro del contenedor sufre una vulnerabilidad de tipo RCE (Remote Code Execution), el atacante hereda los permisos del proceso en el host, lo cual facilita técnicas de container breakout y compromete la integridad del kernel.
Minimizar la superficie de ataque comienza por aplicar estrictamente el principio de menor privilegio. La persistencia de procesos privilegiados no solo pone en riesgo el contenedor, sino que complica la segmentación de red y el cumplimiento de estándares de seguridad como PCI-DSS o SOC2. Auditorías frecuentes son la única forma de garantizar que el «drift» de configuración no cree brechas de seguridad silenciosas.
Auditoría rápida
Para auditar tu entorno y detectar qué contenedores están ignorando las buenas prácticas, puedes ejecutar este comando directamente en tu shell:
Auditoría de usuarios en contenedores activos
$ docker ps --format '{{.ID}} {{.Image}} {{.Names}}' | while read id img name; do
user=$(docker inspect --format '{{.Config.User}}' $id)
if [ -z "$user" ] || [ "$user" = "0" ] || [ "$user" = "root" ]; then
echo "[!] ALERTA: Contenedor $name ($img) corriendo como ROOT"
else
echo "[+] OK: Contenedor $name corriendo como usuario $user"
fi
done
Mitigación y Hardening
- Dockerfile: Define siempre un usuario no privilegiado al final del archivo. USER appuser es el estándar recomendado para reducir riesgos.
- Runtime: Si no puedes modificar la imagen, utiliza la bandera –user 1000:1000 en tu docker run o define user: 1000:1000 en tu docker-compose.yml.
- Kernel hardening: Implementa userns-remap en la configuración de daemon.json de Docker. Esto mapea el UID 0 dentro del contenedor a un usuario sin privilegios en el host, mitigando el impacto de un escape exitoso.
- Monitoreo: Si utilizas Wazuh, habilita el módulo de Docker. Configura alertas para procesos que intenten escalar privilegios o llamadas al sistema sospechosas desde el runtime. La visibilidad sobre el comportamiento es crítica para la respuesta a incidentes.
¿Cuál es su estrategia actual para asegurar los contenedores en producción? ¿Están usando perfiles de Seccomp personalizados o dependen puramente de la configuración de usuario?
0 comentarios