Varredura de Segredos e Credenciais Codificadas
Impeça que chaves de API e senhas sejam enviadas ao repositório usando git-secrets, gitleaks e hooks de pre-commit.
Varredura de Segredos e Credenciais Codificadas é uma aula grátis de Cyber Security Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cyber Security Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cyber Security Academy inclui 4 aulas no total.
O problema dos segredos incorporados no código
Desenvolvedores acidentalmente confirmam chaves de API, senhas, chaves privadas e tokens em repositórios de código-fonte. Depois de entrarem no histórico do git, eles permanecem mesmo após serem excluídos. Repositórios públicos são rastreados por robôs poucos segundos depois de uma publicação.
O que é confirmado
Segredos comuns encontrados em repositórios:
- Chaves de acesso da AWS (
AKIA...) - Tokens de acesso pessoal do GitHub
- Senhas de banco de dados em arquivos de config
- Chaves de API do Stripe e de pagamentos
- Chaves privadas de TLS/SSH
- URLs de retorno do Slack
Ganchos antes da confirmação para prevenção
Impeça que segredos cheguem ao git desde o início:
# Install gitleaks as a pre-commit hook:
pip install pre-commit
# .pre-commit-config.yaml:
repos:
- repo: https://github.com/zricethezav/gitleaks
rev: v8.18.1
hooks:
- id: gitleaksAnalisando repositórios existentes
Analise os repos existentes em busca de segredos:
# gitleaks: scan entire git history
gitleaks detect --source . --log-opts="--all"
# truffleHog: high-entropy string + regex detection
trufflehog git file://.
# GitHub secret scanning (automatic for public repos)
# Alerts under Security → Secret scanning alertsVerificação de segredos do GitHub
O GitHub verifica automaticamente os repositórios públicos em busca de padrões conhecidos de segredos (chaves da AWS, tokens do GitHub etc.) e notifica o provedor. Para repos privados, o GitHub Advanced Security amplia esse recurso. Provedores como a AWS revogam as chaves automaticamente quando elas são detectadas.
A solução do .gitignore e seus limites
Adicionar .env ao .gitignore impede confirmações acidentais. Porém, os desenvolvedores ainda podem confirmar segredos em outros arquivos, e o .gitignore não ajuda se o arquivo já tiver sido confirmado. Defesa em profundidade: gitignore + ganchos antes da confirmação + varredura no CI.
Usando variáveis de ambiente
Os segredos nunca devem aparecer no código. Use variáveis de ambiente carregadas em tempo de execução:
# Python:
import os
api_key = os.environ["API_KEY"]
# Node.js with dotenv (for local dev only):
require("dotenv").config()
const apiKey = process.env.API_KEY
# Never commit .env to gitGerenciadores de segredos
As aplicações de produção devem usar gerenciadores de segredos dedicados:
- AWS Secrets Manager — rotação automática, acesso controlado pelo IAM
- HashiCorp Vault — código aberto, empresarial, com muitos backends
- Azure Key Vault / GCP Secret Manager
Os segredos nunca ficam no código nem em variáveis de ambiente armazenadas no disco.
Rotação de segredos comprometidos
Se um segredo for exposto:
- Revogue o segredo imediatamente (antes de investigar)
- Verifique os registros de acesso em busca de uso não autorizado
- Gere um novo segredo
- Atualize todos os sistemas que usam o segredo antigo
- Remova-o do histórico do git com
git-filter-repoou BFG Repo Cleaner
Removendo segredos do histórico do Git
Depois de revogar o segredo, remova-o do histórico:
# BFG Repo Cleaner (faster than filter-branch):
java -jar bfg.jar --delete-files .env repo.git
git reflog expire --expire=now --all
git gc --prune=now --aggressive
git push --force
# Note: force push rewrites history - coordinate with teamSegredos nos fluxos de CI/CD
Os sistemas de CI/CD têm seu próprio gerenciamento de segredos:
- GitHub Actions: segredos armazenados nas configurações do repositório ou da organização → acessados como
${{ secrets.API_KEY }} - GitLab CI: variáveis de CI/CD
- Jenkins: plug-in de credenciais
Oculte os segredos nos registros. Nunca os exiba na saída de depuração.
Verificação rápida: varredura de segredos
Qual é a primeira linha de defesa mais eficaz para impedir que segredos entrem em um repositório?
Recapitulação da lição
Segredos incorporados no git representam um risco crítico — repositórios públicos são rastreados por robôs poucos segundos depois de uma publicação. Prevenção: ganchos antes da confirmação (gitleaks), gitignore. Detecção: truffleHog, verificação de segredos do GitHub. Armazene os segredos em variáveis de ambiente ou em gerenciadores de segredos dedicados (Vault, AWS Secrets Manager). Faça a rotação imediatamente quando forem expostos; remova-os do histórico do git com BFG Repo Cleaner.
Perguntas Frequentes
A aula “Varredura de Segredos e Credenciais Codificadas” é grátis?
Sim — o texto completo de “Varredura de Segredos e Credenciais Codificadas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cyber Security Academy, atualize para CoddyKit PRO. O curso de Cyber Security Academy inclui 4 aulas no total.
O que vou aprender em “Varredura de Segredos e Credenciais Codificadas”?
Impeça que chaves de API e senhas sejam enviadas ao repositório usando git-secrets, gitleaks e hooks de pre-commit. Você pratica Cyber Security Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Cyber Security Academy?
Nenhuma experiência prévia é necessária. Cyber Security Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Varredura de Segredos e Credenciais Codificadas”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Cyber Security Academy?
Sim. Cada aula de Cyber Security Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- SAST e DAST em Pipelines de CI/CD
- Análise de Composição de Software (SCA)
- Varredura de Segredos e Credenciais Codificadas
- Security Champions e Modelagem de Ameaças