O que repo-security-scan faz?
Escaneia um repositório alvo em busca de problemas de segurança de alto sinal e produz um relatório.
O que faz (MVP)
- Varredura de segredos com gitleaks (varredura local; segredos redigidos nos logs)
- Varredura de vulnerabilidades de dependências com osv-scanner (compara dependências com OSV)
Saídas:
report.md— resumo legível por humanossummary.json— resumo legível por máquina- saídas brutas das ferramentas (
gitleaks.json,osv.json) + logs
Por que essa pilha (sinal/ruído)
- gitleaks: defaults sólidos, rápido, fácil de suprimir falsos positivos via
.gitleaks.toml/.gitleaksignore. - osv-scanner: correspondência precisa de vulnerabilidades de dependências via OSV (ampla cobertura de ecossistemas, geralmente menos ruído que comandos de "auditoria" por ecossistema).
(Outros scanners como Semgrep/SAST e auditores específicos de linguagem podem ser adicionados posteriormente por trás de um modo --deep explícito para evitar falhas ruidosas em CI.)
Segurança
- Varredura somente leitura de arquivos.
- Não faz upload de código fonte.
- A saída do gitleaks é redigida (
--redact) e o relatório evita imprimir segredos. - osv-scanner usa acesso de rede por padrão para consultar OSV (e pode consultar deps.dev para metadados de pacotes). Ele envia metadados de dependências, não código fonte.
Uso
Local
A partir deste repositório:
# Escaneia este repositório e escreve saídas em .repo-security-scan/out
bash scripts/repo-security-scan/scan.sh --repo .
# Escaneia outro repositório
bash scripts/repo-security-scan/scan.sh --repo /caminho/para/alvo --out /tmp/repo-security-scan-out
# Visualiza o relatório
cat .repo-security-scan/out/report.md
Demonstração
bash scripts/demo.sh # escaneia este repositório
bash scripts/demo.sh /caminho/repo # escaneia um repositório alvo
Saídas
No diretório de saída (padrão: <skill-suite>/.repo-security-scan/out):
report.mdsummary.jsongitleaks.json,gitleaks.logosv.json,osv.log
Códigos de saída:
0nenhum achado1achados detectados2erro do scanner (ferramentas ausentes, falhas de execução)
Configuração / listas de permissão
Prefira configuração local do repositório ao escanear um projeto específico:
- gitleaks:
<repo>/.gitleaks.toml<repo>/.gitleaksignore
- osv-scanner:
<repo>/osv-scanner.toml(aplica-se apenas àquele diretório)
Este skill-suite também inclui defaults conservadores em:
.repo-security-scan/gitleaks.toml.repo-security-scan/.gitleaksignore.repo-security-scan/osv-scanner.toml
Para forçar um arquivo de configuração específico do osv-scanner:
bash scripts/repo-security-scan/scan.sh --repo /caminho/repo --osv-config /caminho/para/osv-scanner.toml
Instalar pré-requisitos
- macOS:
brew install gitleaks osv-scanner jq
- Ubuntu:
sudo apt-get update && sudo apt-get install -y jq- Instale gitleaks + osv-scanner a partir dos releases, ou compile via
go install.