Que fait repo-security-scan ?
Analyse un dépôt cible à la recherche de problèmes de sécurité à fort signal et produit un rapport.
Ce qu'il fait (MVP)
- Détection de secrets avec gitleaks (analyse locale ; secrets masqués dans les logs)
- Analyse de vulnérabilités de dépendances avec osv-scanner (compare les dépendances avec OSV)
Sorties :
report.md— résumé lisible par l'humainsummary.json— résumé lisible par machine- sorties brutes des outils (
gitleaks.json,osv.json) + logs
Pourquoi cette pile (signal/bruit)
- gitleaks : réglages par défaut robustes, rapide, facile de supprimer les faux positifs via
.gitleaks.toml/.gitleaksignore. - osv-scanner : correspondance précise des vulnérabilités de dépendances via OSV (large support d'écosystèmes, généralement moins de bruit que les commandes d'"audit" par écosystème).
(D'autres scanners comme Semgrep/SAST et les auditeurs spécifiques à un langage peuvent être ajoutés plus tard derrière un mode explicite --deep pour éviter des échecs CI bruyants.)
Sécurité
- Analyse en lecture seule des fichiers.
- Ne télécharge pas le code source.
- La sortie de gitleaks est masquée (
--redact) et le rapport évite d'imprimer les secrets. - osv-scanner utilise l'accès réseau par défaut pour interroger OSV (et peut consulter deps.dev pour les métadonnées des paquets). Il envoie des métadonnées de dépendances, pas de code source.
Utilisation
Local
Depuis ce dépôt :
# Analyser ce dépôt et écrire les sorties sous .repo-security-scan/out
bash scripts/repo-security-scan/scan.sh --repo .
# Analyser un autre dépôt
bash scripts/repo-security-scan/scan.sh --repo /chemin/vers/cible --out /tmp/repo-security-scan-out
# Afficher le rapport
cat .repo-security-scan/out/report.md
Démonstration
bash scripts/demo.sh # analyse ce dépôt
bash scripts/demo.sh /chemin/repo # analyse un dépôt cible
Sorties
Dans le répertoire de sortie (par défaut : <skill-suite>/.repo-security-scan/out) :
report.mdsummary.jsongitleaks.json,gitleaks.logosv.json,osv.log
Codes de sortie :
0aucun résultat1résultats détectés2erreur du scanner (outils manquants, échecs d'exécution)
Configuration / listes blanches
Privilégiez une configuration locale au dépôt lors de l'analyse d'un projet spécifique :
- gitleaks :
<repo>/.gitleaks.toml<repo>/.gitleaksignore
- osv-scanner :
<repo>/osv-scanner.toml(s'applique uniquement à ce répertoire)
Cet ensemble de compétences inclut également des valeurs par défaut conservatrices sous :
.repo-security-scan/gitleaks.toml.repo-security-scan/.gitleaksignore.repo-security-scan/osv-scanner.toml
Pour forcer un fichier de configuration osv-scanner spécifique :
bash scripts/repo-security-scan/scan.sh --repo /chemin/repo --osv-config /chemin/vers/osv-scanner.toml
Prérequis d'installation
- macOS :
brew install gitleaks osv-scanner jq
- Ubuntu :
sudo apt-get update && sudo apt-get install -y jq- Installer gitleaks et osv-scanner depuis les releases, ou compiler via
go install.