← Volver al inicio

Seguridad en Contenedores

Objetivo

Entender que es un contenedor y que riesgos de seguridad existen.

Que es un Contenedor

Un contenedor empaqueta una aplicacion con sus dependencias y la ejecuta de forma aislada.

No es una maquina virtual completa. Comparte el kernel del host.

Imagen vs Contenedor

  • Imagen: plantilla.
  • Contenedor: instancia en ejecucion.

Dockerfile

Archivo que define como construir una imagen.

Riesgos comunes:

  • Usar imagen base vulnerable.
  • Ejecutar como root.
  • Copiar secretos.
  • Instalar paquetes innecesarios.
  • No fijar versiones.

Buenas Practicas

  • Usar imagenes oficiales o confiables.
  • Mantener imagenes actualizadas.
  • Ejecutar como usuario no root.
  • No incluir secretos en imagen.
  • Reducir paquetes.
  • Escanear imagenes.
  • Firmar/verificar imagenes cuando aplique.

Secrets

No guardar secretos en:

  • Dockerfile.
  • Codigo.
  • Variables comprometidas.
  • Imagenes.

Usar gestores de secretos o mecanismos del orquestador.

Logs

Los contenedores deben enviar logs a salida estandar o a una plataforma de logs.

Practica Conceptual

Revisa este Dockerfile:

FROM ubuntu:latest COPY . /app WORKDIR /app RUN apt update && apt install -y python3 CMD ["python3", "app.py"]

Preguntas:

  • Que riesgos ves?
  • Que mejorarias?
  • Ejecuta como root?
  • La imagen base es especifica?

Criterio de Dominio

Puedes avanzar cuando puedas:

  • Diferenciar imagen y contenedor.
  • Explicar riesgo de root.
  • Explicar por que no guardar secretos.
  • Nombrar controles de imagen.