Mais de 10 Mil Imagens do Docker Hub Vazam Credenciais e Chaves de API: O Que Voce Precisa Saber
Ola HaWkers, uma descoberta alarmante esta sacudindo a comunidade de desenvolvedores: pesquisadores de seguranca encontraram mais de 10 mil imagens no Docker Hub expondo credenciais sensiveis, incluindo chaves de API de servicos como OpenAI, AWS, HuggingFace e ate credenciais de bancos.
Se voce trabalha com containers, essa noticia deveria fazer voce pausar e revisar suas praticas de seguranca imediatamente. Vamos entender o que aconteceu, quem foi afetado e, mais importante, como evitar que isso aconteca com voce.
O Que Foi Descoberto
Pesquisadores da empresa de inteligencia de ameacas Flare escanearam imagens de containers enviadas ao Docker Hub em novembro de 2025 e encontraram um cenario preocupante.
Numeros do Vazamento
Total de Exposicoes:
- 10.456 imagens expondo pelo menos uma chave sensivel
- 42% das imagens comprometidas expunham 5 ou mais segredos
- 101 empresas identificadas com credenciais vazadas
- Incluindo uma empresa Fortune 500 e um grande banco nacional
Tipos de Segredos Expostos:
- 4.000 tokens de acesso para modelos de IA (OpenAI, HuggingFace, Anthropic, Gemini, Groq)
- Credenciais de bancos de dados de producao
- Chaves de acesso AWS
- Tokens do GitHub
- Credenciais de sistemas CI/CD
- Chaves de integracoes de pagamento
Como Isso Acontece
A exposicao de segredos em imagens Docker nao e um bug do Docker Hub - e um erro humano que acontece de varias formas:
1. Arquivos .ENV Incluidos na Imagem
O erro mais comum e incluir arquivos .env diretamente na imagem:
# ❌ ERRADO - Nunca faca isso!
FROM node:20-alpine
WORKDIR /app
COPY . .
# O arquivo .env com suas credenciais foi copiado!
RUN npm install
CMD ["npm", "start"]O problema e que o COPY . . copia TUDO, incluindo seu arquivo .env com credenciais.
2. Hardcoding de Credenciais
Outro erro frequente e colocar credenciais diretamente no codigo:
# ❌ ERRADO - Credenciais hardcoded
import openai
openai.api_key = "sk-proj-abc123..." # Exposto na imagem!
def get_completion(prompt):
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content3. Credenciais em Arquivos de Configuracao
Arquivos como config.json, settings.yaml ou .npmrc frequentemente contem segredos:
{
"database": {
"host": "prod-db.empresa.com",
"user": "admin",
"password": "SuperSecreta123!"
},
"api_keys": {
"stripe": "sk_live_abc123...",
"sendgrid": "SG.xyz789..."
}
}
Por Que 75% das Credenciais Nao Foram Revogadas
Um dado alarmante da pesquisa: mesmo quando desenvolvedores perceberam o erro e removeram a credencial da imagem, 75% das vezes a chave nao foi revogada.
O Problema das Camadas Docker
Isso acontece porque Docker usa um sistema de camadas. Mesmo que voce remova um arquivo em uma camada posterior, ele ainda existe nas camadas anteriores:
FROM node:20-alpine
WORKDIR /app
COPY . .
# Credencial copiada na camada 3
RUN rm .env
# Removido na camada 4, mas ainda existe na camada 3!Como Atacantes Exploram Isso
# Atacantes podem inspecionar todas as camadas
docker save imagem:tag -o imagem.tar
tar -xf imagem.tar
# Cada pasta e uma camada - credenciais podem estar em qualquer umaComo Proteger Suas Imagens Docker
Vamos ver as melhores praticas para evitar esse tipo de vazamento:
1. Use .dockerignore Religiosamente
Crie um arquivo .dockerignore robusto:
# Arquivos de ambiente
.env
.env.*
*.env
# Credenciais
.npmrc
.pypirc
credentials.json
service-account.json
*.pem
*.key
id_rsa*
# Configuracoes locais
config.local.*
settings.local.*
# Git
.git
.gitignore
# IDE
.vscode
.idea
*.swp2. Use Build Arguments Para Segredos de Build
Se precisar de segredos apenas durante o build:
FROM node:20-alpine
WORKDIR /app
# Argumento secreto nao persiste na imagem final
ARG NPM_TOKEN
# Use o segredo e remova na mesma camada
RUN echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc && \
npm install && \
rm .npmrc
COPY . .
CMD ["npm", "start"]Build com:
docker build --build-arg NPM_TOKEN=$NPM_TOKEN -t app .
3. Use Docker Secrets (Preferido)
Para producao, use Docker Secrets ou um gerenciador externo:
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
# Credenciais virao via Docker Secrets em runtime
CMD ["npm", "start"]No docker-compose:
version: '3.8'
services:
app:
image: minha-app
secrets:
- db_password
- api_key
environment:
- DB_PASSWORD_FILE=/run/secrets/db_password
- API_KEY_FILE=/run/secrets/api_key
secrets:
db_password:
external: true
api_key:
external: true4. Multi-Stage Builds
Use builds multi-stage para garantir que arquivos de build nao vazem:
# Stage 1: Build
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
ARG NPM_TOKEN
RUN echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc && \
npm ci && \
rm .npmrc
COPY . .
RUN npm run build
# Stage 2: Producao - imagem limpa
FROM node:20-alpine AS production
WORKDIR /app
# Copia APENAS o necessario do builder
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
COPY package*.json ./
USER node
CMD ["npm", "start"]
5. Escaneie Suas Imagens
Integre escaneamento de segredos no seu CI/CD:
# GitHub Actions exemplo
name: Security Scan
on: [push, pull_request]
jobs:
scan-secrets:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Scan for secrets with Trivy
uses: aquasecurity/trivy-action@master
with:
scan-type: 'fs'
scan-ref: '.'
format: 'table'
exit-code: '1'
severity: 'HIGH,CRITICAL'
- name: Build image
run: docker build -t app:${{ github.sha }} .
- name: Scan image
uses: aquasecurity/trivy-action@master
with:
image-ref: 'app:${{ github.sha }}'
format: 'table'
exit-code: '1'Ferramentas de Deteccao
Existem varias ferramentas para detectar segredos vazados:
Trivy (Recomendado)
# Escanear diretorio
trivy fs --scanners secret .
# Escanear imagem
trivy image minha-imagem:tagGitleaks
# Escanear repositorio
gitleaks detect --source .
# Escanear em pre-commit
gitleaks protect --stagedTruffleHog
# Escanear repositorio git
trufflehog git file://. --only-verified
O Que Fazer Se Voce Vazou Credenciais
Se voce descobriu que suas credenciais foram expostas, siga este checklist:
Acoes Imediatas
- Revogue a credencial imediatamente - nao apenas remova da imagem
- Gere novas credenciais com permissoes minimas
- Audite logs para identificar uso nao autorizado
- Notifique sua equipe de seguranca
Acoes de Longo Prazo
- Implemente rotacao automatica de credenciais
- Adote um vault (HashiCorp Vault, AWS Secrets Manager, etc.)
- Configure alertas para deteccao de vazamentos
- Treine sua equipe sobre praticas seguras
Industrias Mais Afetadas
A pesquisa identificou padroes interessantes sobre quem mais vaza credenciais:
Por Setor:
- Desenvolvimento de Software: maior numero de vazamentos
- Marketing e Industrial: segundo lugar
- IA e Sistemas Inteligentes: terceiro lugar
- Financeiro e Bancario: mais de 10 empresas afetadas
Origem dos Vazamentos:
- Contas de "Shadow IT" (fora do monitoramento corporativo)
- Contas pessoais de desenvolvedores
- Contas de contractors e terceiros
Conclusao
O vazamento de mais de 10 mil imagens Docker com credenciais expostas e um lembrete importante: seguranca e responsabilidade de todos os desenvolvedores, nao apenas da equipe de seguranca.
A boa noticia e que prevenir esse tipo de vazamento e relativamente simples com as praticas corretas: use .dockerignore, nunca hardcode credenciais, utilize secrets managers, e escaneie suas imagens regularmente.
Se voce ainda nao revisou suas imagens Docker e seu pipeline de CI/CD, agora e a hora. Uma credencial vazada pode custar desde o acesso a APIs pagas ate comprometer toda a infraestrutura da sua empresa.
Para entender mais sobre boas praticas de infraestrutura moderna, recomendo conferir o artigo Edge Computing e Serverless em 2025 onde discutimos como as novas arquiteturas podem ajudar a melhorar a seguranca.
Bora pra cima! 🦅
📚 Quer Aprofundar Seus Conhecimentos em JavaScript?
Este artigo cobriu seguranca em containers, mas entender JavaScript profundamente e essencial para qualquer desenvolvedor moderno.
Desenvolvedores que investem em conhecimento solido e estruturado tendem a ter mais oportunidades no mercado.
Material de Estudo Completo
Se voce quer dominar JavaScript do basico ao avancado, preparei um guia completo:
Opcoes de investimento:
- 1x de R$9,90 no cartao
- ou R$9,90 a vista
💡 Material atualizado com as melhores praticas do mercado

