Para empezarCreer que un contenedor Docker es una máquina virtual blindada es el error que permite a un atacante saltar directamente al sistema host.
El mito del aislamiento total
Un contenedor no emula un hardware completo ni ejecuta un kernel propio. A diferencia de una máquina virtual que corre sobre un hipervisor, Docker es simplemente un proceso aislado ejecutándose directamente sobre el kernel del sistema operativo anfitrión.
El kernel compartido
Al compartir el mismo núcleo con el sistema operativo host, cualquier vulnerabilidad crítica de escalada de privilegios o un fallo grave en el kernel puede permitir que un proceso dentro del contenedor rompa las barreras de aislamiento y controle la máquina física.
Los pilares del aislamiento
El aislamiento en Linux no es magia; se basa en tecnologías nativas del kernel que Docker combina para dar la ilusión de un sistema independiente.
Marca cada paso al entenderlo · 0/3
Inspeccionando los Namespaces
Podemos verificar cómo el sistema operativo anfitrión aísla los procesos utilizando herramientas nativas de Linux para listar los espacios de nombres activos.
$ lsns -t pid
NS TYPE NPROCS PID USER COMMAND
4026531836 pid 1 root /sbin/init
4026532584 pid 12 root /usr/bin/dockerd
El peligro del usuario root
Por defecto, muchos contenedores ejecutan sus procesos internos como usuario root. Aunque esté limitado por namespaces, ser root dentro del contenedor facilita enormemente la explotación si se combina con una mala configuración de volúmenes o privilegios excesivos.
Contenedor vs Máquina Virtual
Mientras una máquina virtual aísla a nivel de hardware virtualizado con su propio kernel y sobrecarga de recursos, el contenedor aísla únicamente a nivel de sistema operativo, logrando máxima eficiencia pero reduciendo las capas de defensa en profundidad.
¿Te acuerdas? Toca para comprobarlo
Atajos: ← → para cambiar de pieza · / para buscar
