Ce qui est scanné
Le scan de machine ggshield fonctionne selon trois modes qui contrôlent la profondeur de couverture :
- Mode rapide : se concentre sur les chemins riches en identifiants (historique du shell, fichiers de configuration, dotfiles). Le plus rapide, avec la plus faible surcharge.
- Mode standard : parcours complet du système de fichiers plus des sources supplémentaires telles que les variables d'environnement et le répertoire temporaire. Mode par défaut pour
ggshield machine report. - Mode complet : identique au mode standard mais inclut également les artefacts de build et les répertoires de dépendances qui sont ignorés par défaut.
Fichiers
Le moteur effectue un parcours complet du système de fichiers, couvrant tout fichier susceptible de contenir un secret :
- Fichiers d'historique du shell (
.zsh_history,.bash_history, etc.) - Fichiers de configuration (
.env,.gitconfig,.npmrc, configurations SSH, fichiers d'identifiants) - Stockages d'identifiants cloud (par exemple
~/.aws, GCP, ou caches de la CLI Azure) - Caches et historiques d'agents de codage IA (Cursor, Claude Code, Copilot, configurations MCP, etc.)
- Répertoires temporaires et stockage des navigateurs
- Fichiers de données structurées (CSV, SQL, XLSX, PDF, SQLite)
- Archives (
.zip,.jar,.war,.ear) et fichiers compressés (.gz,.bz2,.xz,.zst) - Tout fichier correspondant à des motifs associés aux secrets (clés d'API, tokens, certificats, clés privées)
Les équipes de sécurité peuvent définir des listes d'exclusion pour exclure des répertoires ou types de fichiers spécifiques de la portée du scan.
Le scan de machine se concentre sur l'accumulation d'identifiants sur l'ensemble du système de fichiers et ne se limite pas aux dépôts Git.
Sources autres que des fichiers
Le scan de machine scanne également des sources locales qui ne sont pas des fichiers ordinaires. Elles sont incluses par défaut dans les modes standard et complet :
| Source | Ce qui est scanné | Désactivation |
|---|---|---|
| Variables d'environnement | Valeurs d'environnement du processus courant. | --no-scan-env |
| Registre Windows | Emplacements d'identifiants du registre lisibles par l'utilisateur sous Windows. | --no-scan-registry |
| Répertoire temporaire | $TMPDIR, /tmp, et les racines temporaires de la plateforme. Sous macOS, uniquement la racine temporaire par utilisateur. | --no-scan-temp |
Le mode rapide se concentre sur les chemins d'identifiants et peut ne pas inclure toutes les sources supplémentaires selon le wrapper de commande.
Exclusions de répertoires intégrées
En mode standard, ggshield ignore automatiquement les répertoires qui sont généralement volumineux, générés, riches en binaires, ou peu susceptibles de contenir des secrets utilisateur :
| Catégorie | Exemples |
|---|---|
| Dépendances et sortie de build | node_modules, .venv, venv, target, dist, build, .next, .nuxt, Pods, DerivedData |
| Caches et caches de paquets | .cache, __pycache__, .npm/_cacache, .cargo/registry, .m2/repository, .gradle/caches, .pnpm-store |
| Composants internes du contrôle de version | .git, .svn, .hg |
| Médias et bibliothèques utilisateur | Movies, Music, Pictures, Photos Library.photoslibrary |
| Machines virtuelles et runtimes | OrbStack, Parallels, VirtualBox VMs, .colima, .lima, .multipass, .vagrant.d |
| Caches de navigateurs et d'applications | Caches Chrome/Edge et caches de service worker, rapports de crash Firefox, logs Slack |
| État du scanner | .ggshield, .gitguardian |
Pour inclure les répertoires de build et de dépendances, utilisez --mode full. Pour des surcharges persistantes, utilisez scan.extra_skip_dirs et scan.include_dirs dans votre fichier de configuration.
Zones ignorées par défaut
Certaines zones sont délibérément exclues sauf activation explicite, pour des raisons de confidentialité, de performance ou de sécurité :
| Zone | Pourquoi elle est ignorée | Activation |
|---|---|---|
| Répertoires protégés par TCC sous macOS | Desktop, Documents, Downloads, Mail, Messages, Safari, et chemins similaires déclenchent des invites de confidentialité macOS. | --include-protected |
| Systèmes de fichiers distants et réseau | Les lecteurs réseau (NFS, SMB, SSHFS) et les lecteurs cloud (OneDrive, Google Drive, Dropbox, iCloud Drive, Box) peuvent être lents, partagés, ou déclencher des téléchargements cloud. | --include-remote-fs (plugin 0.64.0 ou ultérieur) ; configuration : scan.skip_remote_fs: false |
| Pseudo-systèmes de fichiers du noyau | Les entrées procfs, sysfs, cgroupfs, debugfs peuvent indiquer une taille erronée et diffuser des données illimitées. | Toujours ignoré |
| Répertoires personnels d'autres utilisateurs | Nécessite des privilèges élevés et modifie la limite de confidentialité. | Exécutez le scan avec sudo ou en tant qu'administrateur, en mode standard ou complet. Les répertoires personnels root sont toujours ignorés. |
| Checkouts de dépôts publics | Les clones open-source créent souvent du bruit sans rapport avec le risque de la machine locale. | scan.skip_public_repositories: false |
Avec --include-remote-fs, les fichiers stockés uniquement dans le cloud sont téléchargés lorsque le scan les lit.