Segurança em Imagens Docker: Como Segredos Podem Ficar Expostos e Ferramentas Essenciais para AppSec
A containerização com Docker se tornou padrão em ambientes modernos de desenvolvimento e operações. No entanto, ao mesmo tempo em que oferece agilidade, também introduz riscos significativos de segurança que não podem ser ignorados.
Durante meus estudos em Application Security (AppSec), me aprofundei em um problema crítico: segredos e dados sensíveis ocultos nas camadas intermediárias de imagens Docker. Este artigo reúne os principais aprendizados sobre esse tema e destaca ferramentas práticas que ajudam a evitar esse tipo de exposição.
⚠️ Camadas Docker: Um Perigo Invisível
Cada instrução no Dockerfile (RUN, COPY, ADD, etc.) cria uma nova camada na imagem. Um erro comum é assumir que remover um arquivo sensível em uma camada posterior realmente o elimina da imagem. Isso não acontece.
As camadas anteriores continuam intactas, e qualquer arquivo que tenha sido incluído nelas ainda pode ser acessado, mesmo que tenha sido “removido” mais adiante.
Segundo Dana Epp, mais de 66% dos segredos encontrados em imagens Docker estavam escondidos em camadas intermediárias.
🔍 Dive: Inspecionando Camada por Camada
O Dive é uma ferramenta open source que permite explorar todas as camadas de uma imagem Docker.
Com o Dive você pode:
- Visualizar quais arquivos foram adicionados, modificados ou excluídos em cada camada;
- Verificar o impacto de cada instrução do
Dockerfile; - Avaliar a eficiência da imagem, detectando dados inúteis;
- Navegar por um modo interativo via terminal ou GUI (extensão Docker Desktop).
Essa ferramenta se mostrou essencial durante meus estudos. É intuitiva, poderosa e direta ao ponto.
🛠️ Outras Ferramentas Complementares
Além do Dive, outras ferramentas podem fortalecer a segurança na construção de imagens Docker. Abaixo, listo algumas que testei e recomendo:
🔐 Trivy
Scanner rápido e eficiente que detecta:
- Vulnerabilidades em pacotes;
- Segredos vazados;
- Configurações incorretas.
🧹 Dockle
Faz linting de imagens Docker e alerta sobre:
- Boas práticas de segurança;
- Permissões incorretas;
- Falta de usuários não-root, entre outros.
🧪 Hadolint
Analisa o Dockerfile e previne instruções perigosas ou ineficientes antes da build.
🔎 Docker Scout
Incluído no Docker Desktop, analisa vulnerabilidades em tempo real e sugere ações corretivas.
🧬 Snyk Container
Scanner integrado com CI/CD que aponta vulnerabilidades e oferece correções automáticas.
✅ Boas Práticas de Segurança em Imagens Docker
Com base na prática e estudo com essas ferramentas, recomendo:
- 🔁 Use build multi-stage para separar o ambiente de build do ambiente de produção;
- 🙅♂️ Evite copiar segredos para dentro da imagem, mesmo que temporariamente;
- 🔎 Sempre analise a imagem antes de publicá-la;
- 🔐 Integre scanners como Trivy e Snyk no pipeline de CI/CD;
- 🧼 Use imagens base minimalistas (como Alpine ou Distroless);
- 🛠️ Atualize imagens frequentemente para evitar vulnerabilidades conhecidas.
🎯 Conclusão
A segurança de aplicações começa na base, e no mundo dos contêineres, isso significa a imagem Docker.
Como profissional de AppSec, entender como essas imagens são construídas e como segredos podem escapar acidentalmente é essencial. Ferramentas como Dive, Trivy e Hadolint são aliadas indispensáveis para identificar riscos antes que eles cheguem à produção.
