Descarga inmediata tras la compraPDF sin DRM: léelo en cualquier dispositivoGarantía de Calidad y Atención 24/7Pago cifrado y 100% seguroEbooks gratis para probar antes de comprarDescarga inmediata tras la compraPDF sin DRM: léelo en cualquier dispositivoGarantía de Calidad y Atención 24/7Pago cifrado y 100% seguroEbooks gratis para probar antes de comprar

No dejes tu Docker expuesto: hardening de contenedores

  • 1 min de lectura
  • Gratis
Vídeo de esta pieza: en producción. Mientras tanto, todo el contenido está aquí en texto.
Para empezar

Un contenedor ejecutándose como root es una bomba de tiempo lista para comprometer todo tu servidor.

Dato clave

El mito del aislamiento

Muchos desarrolladores asumen que un contenedor es una máquina virtual ligera y segura por defecto. La realidad es que los contenedores comparten el kernel del sistema operativo anfitrión, lo que significa que un fallo de configuración o un escape de contenedor expone directamente toda la infraestructura subyacente.

Concepto

Qué es el Hardening en Docker

El hardening de contenedores es el proceso de asegurar una aplicación y su entorno reduciendo la superficie de ataque. Implica eliminar componentes innecesarios, aplicar el principio de mínimo privilegio y restringir las capacidades del kernel que el contenedor puede solicitar.

Paso a paso

Reglas de oro en el Dockerfile

Para construir imágenes seguras desde la fase de desarrollo, debes seguir una serie de directrices estrictas en tus archivos de configuración.

Marca cada paso al entenderlo · 0/4

Practica

Verificando el usuario activo

Siempre debes comprobar qué UID está ejecutando los procesos dentro de tu contenedor en ejecución para asegurarte de que no es el superusuario.

terminal
$ docker exec -it web_app_1 whoami
root
$ docker inspect --format='{{.Config.User}}' web_app_1
Cuidado

El peligro de los flags inseguros

Jamás despliegues contenedores utilizando flags como --privileged o montando el socket de Docker dentro del contenedor (-v /var/run/docker.sock:/var/run/docker.sock). Hacer esto equivale a otorgar acceso root total al host, permitiendo que un atacante cree nuevos contenedores y controle la máquina física.

Practica

Limitando recursos y privilegios

Un despliegue seguro en producción debe restringir las capacidades de Linux y limitar los recursos de CPU y memoria para mitigar ataques de denegación de servicio.

terminal
$ docker run --read-only --drop-all --cap-add=NET_BIND_SERVICE -m 512m -d mi_imagen_segura
container ID: 8f4a2b1e9c7d

Atajos: ← → para cambiar de pieza · / para buscar