Files
ivangdavila_docker/security.md

2.0 KiB

Security Traps

User

  • Container corre como root por defecto — security scanners lo flaggean
  • USER directive después de RUN que necesita root = build falla
  • User en container con UID 1000 = puede ser otro user en host — confuso
  • --user en runtime override USER de Dockerfile — pero permisos de archivos quedan

Secrets

  • ENV SECRET=x visible en docker history y docker inspect
  • ARG para secrets también visible en history — no es seguro
  • COPY secrets.txt baked en layer — aunque lo borres después, está en layer anterior
  • --env-file seguro en runtime pero archivo debe protegerse en host

BuildKit Secrets

  • RUN --mount=type=secret no disponible sin DOCKER_BUILDKIT=1
  • Secret mount solo disponible en ese RUN — no persiste
  • Secret ID debe coincidir exacto — typo = build falla sin mensaje claro
  • Secret no disponible en stages que no lo montan explícitamente

Image Scanning

  • Vulnerabilities en base image heredadas — actualizar base regularmente
  • Scan en CI pero no en registry = images vulnerables en producción
  • CVE "fixed" en package pero base image no actualizada = sigue vulnerable
  • Distroless images difíciles de scanear — menos CVEs reportadas, no menos bugs

Runtime

  • --privileged = acceso completo a host devices, kernel modules, etc.
  • --cap-add SYS_ADMIN casi tan malo como privileged — evitar
  • -v /:/host monta root del host = game over si container comprometido
  • --pid=host permite ver/kill procesos del host desde container

Network

  • Container en bridge network puede acceder a metadata service (169.254.x.x)
  • Sin --network=none, container tiene acceso a red por defecto
  • Published ports sin firewall = público a internet
  • Container puede hacer requests a otros containers en misma network — no isolation

Supply Chain

  • Base image de registry público puede ser maliciosa — verificar publisher
  • latest tag puede ser hijacked — usar digest para images críticas
  • Dependencias descargadas en build pueden cambiar — lock files + verified mirrors