Skip to content

Repository files navigation

GitHub Security Scanner

Aplicação web local em Python para auditar um perfil ou repositório do GitHub em busca de:

  • arquivos .env e 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 .env no .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.

Requisitos

  • Windows 11, Linux ou macOS;
  • Python 3.11 ou superior;
  • Git instalado e disponível no terminal.

Executar no Windows

Opção rápida

Clique duas vezes em iniciar.bat.

PowerShell

Set-ExecutionPolicy -Scope Process Bypass
.\iniciar.ps1

Depois, acesse:

http://127.0.0.1:5000

Repositórios privados

  1. Copie .env.example para .env.
  2. Crie no GitHub um token fine-grained somente com acesso aos repositórios desejados e permissões de leitura para Contents e Metadata.
  3. Preencha:
GITHUB_TOKEN=seu_token_aqui

Nunca 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.

Como usar

  1. Informe https://github.com/usuario para auditar uma conta.
  2. Informe https://github.com/usuario/repositorio para auditar apenas um projeto.
  3. Marque Examinar todo o histórico Git para procurar ocorrências em commits antigos.
  4. Ajuste o limite de tamanho e o número de varreduras simultâneas.
  5. Baixe o relatório JSON ao final.

Interpretação

  • 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.

Procedimento ao encontrar um segredo

  1. Revogue ou troque a credencial antes de qualquer outra ação.
  2. Remova o arquivo do controle de versão e ajuste o .gitignore.
  3. Reescreva o histórico com git filter-repo ou BFG quando necessário.
  4. Force o push somente depois de avaliar o impacto para outros colaboradores.
  5. Analise logs do serviço para verificar uso indevido.

Apagar o arquivo em um commit novo não remove a credencial dos commits antigos.

Limitações

  • 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.

About

github-secutiry-scanner | checa se há possiveis vulnerabilidades em seus repositórios!

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages