Aplicação web local em Python para auditar um perfil ou repositório do GitHub em busca de:
- arquivos
.enve outros arquivos sensíveis versionados; - chaves privadas, tokens e credenciais hardcoded;
- URLs de banco, SMTP ou serviços contendo usuário e senha;
- backups, bancos locais e dumps potencialmente expostos;
- modo de depuração ativo, TLS desativado e ausência de proteção do
.envno.gitignore; - ocorrências removidas do branch atual, mas ainda existentes no histórico Git.
O sistema mascara valores detectados. O relatório não deve exibir o segredo completo.
- Windows 11, Linux ou macOS;
- Python 3.11 ou superior;
- Git instalado e disponível no terminal.
Clique duas vezes em iniciar.bat.
Set-ExecutionPolicy -Scope Process Bypass
.\iniciar.ps1Depois, acesse:
http://127.0.0.1:5000
- Copie
.env.examplepara.env. - Crie no GitHub um token fine-grained somente com acesso aos repositórios desejados e permissões de leitura para Contents e Metadata.
- Preencha:
GITHUB_TOKEN=seu_token_aquiNunca envie o arquivo .env ao GitHub. Ele já está incluído no .gitignore.
Quando a URL apontar para a própria conta autenticada, o sistema usa /user/repos para listar também repositórios privados aos quais o token tenha acesso.
- Informe
https://github.com/usuariopara auditar uma conta. - Informe
https://github.com/usuario/repositoriopara auditar apenas um projeto. - Marque
Examinar todo o histórico Gitpara procurar ocorrências em commits antigos. - Ajuste o limite de tamanho e o número de varreduras simultâneas.
- Baixe o relatório JSON ao final.
critical: provável credencial ou chave de alto impacto; deve ser rotacionada imediatamente.high: segredo ou arquivo sensível com risco elevado.medium: configuração insegura ou arquivo que exige revisão.low: análise incompleta ou aviso de menor impacto.
- Revogue ou troque a credencial antes de qualquer outra ação.
- Remova o arquivo do controle de versão e ajuste o
.gitignore. - Reescreva o histórico com
git filter-repoou BFG quando necessário. - Force o push somente depois de avaliar o impacto para outros colaboradores.
- Analise logs do serviço para verificar uso indevido.
Apagar o arquivo em um commit novo não remove a credencial dos commits antigos.
- A detecção por padrões pode produzir falsos positivos e falsos negativos.
- Arquivos binários e arquivos acima de 2 MB não são lidos pelo scanner interno.
- Repositórios acima do limite configurado são ignorados.
- Para auditorias de alta garantia, valide também com Gitleaks, TruffleHog e o Secret Scanning do GitHub.
- Não exponha esta aplicação diretamente à internet; ela foi criada para uso local.