Ce qui est scanné
ggshield machine scan fonctionne selon trois modes qui contrôlent la profondeur de couverture :
- Quick mode : se concentre sur les chemins riches en identifiants (historique du shell, fichiers de configuration, dotfiles). Le plus rapide, avec le moins de surcharge.
- Standard mode : parcours complet du système de fichiers ainsi que des sources complémentaires telles que les variables d'environnement et les coffres de secrets. Mode par défaut pour l'inventaire des machines.
- Full mode : identique au 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) - Coffres d'identifiants cloud (par exemple
~/.aws, caches des CLI GCP ou Azure) - Caches et historiques des agents de codage IA (Cursor, Claude Code, Copilot, configurations MCP, etc.)
- Répertoires temporaires et stockage du navigateur
- 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 à des secrets (clés d'API, tokens, certificats, clés privées)
Les équipes de sécurité peuvent définir des listes d'exclusion afin d'exclure certains répertoires ou types de fichiers de la portée du scan.
Machine scan se concentre sur l'accumulation d'identifiants à travers l'ensemble du système de fichiers et ne se limite pas aux dépôts Git.
Sources non-fichier
Machine scan scanne également des sources locales qui ne sont pas des fichiers ordinaires. Elles sont incluses par défaut dans les modes standard et full :
| Source | Ce qui est scanné | Désactivation |
|---|---|---|
| Variables d'environnement | Valeurs d'environnement du processus en cours. | --no-scan-env |
| Trousseau / coffre de secrets de l'OS | Entrées du coffre de secrets lisibles par l'utilisateur. Linux et Windows sont activés par défaut ; le scan du Keychain macOS est en opt-in via la configuration. | --no-scan-keyring |
| Registre Windows | Emplacements d'identifiants du registre lisibles par l'utilisateur sur Windows. | --no-scan-registry |
| Répertoire temporaire | $TMPDIR, /tmp, racines temporaires de la plateforme ; sur macOS, uniquement la racine temporaire par utilisateur. | --no-scan-temp |
Quick mode se concentre sur les chemins d'identifiants et peut ne pas inclure toutes les sources complémentaires selon le wrapper de commande.
Exclusions de répertoires intégrées
En standard mode, 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 |
|---|---|
| Sortie de dépendances et 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 |
| Internes de gestion de versions | .git, .svn, .hg |
| Médias et bibliothèques utilisateur | Movies, Music, Pictures, Photos Library.photoslibrary |
| Machines virtuelles et runtimes | OrbStack, Parallels, VMs VirtualBox, .colima, .lima, .multipass, .vagrant.d |
| Caches de navigateurs et d'applications | Caches Chrome/Edge et caches des service workers, rapports de crash Firefox, logs Slack |
| État du scanner | .ggshield, .gitguardian |
Pour inclure les répertoires de build et de dépendances, utilisez --thorough avec le plugin ou --full sur la CLI native. Pour des remplacements persistants, 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 si vous les activez, pour des raisons de confidentialité, de performance ou de sécurité :
| Zone | Raison de l'exclusion | Activation |
|---|---|---|
| Répertoires protégés par TCC sur macOS | Desktop, Documents, Downloads, Mail, Messages, Safari et chemins similaires déclenchent les invites de confidentialité de macOS. | --include-protected |
| Systèmes de fichiers distants et réseau | NFS, SMB, SSHFS et les disques cloud peuvent être lents, partagés ou déclencher des téléchargements cloud. | CLI native : --include-remote-fs ; configuration : scan.skip_remote_fs: false |
| Pseudo-systèmes de fichiers du noyau | Les entrées procfs, sysfs, cgroupfs, debugfs peuvent mal indiquer leur taille et diffuser des données sans limite. | --include-pseudo-fs |
| Répertoires personnels d'autres utilisateurs | Nécessite des privilèges élevés et modifie la frontière de confidentialité. | --scan-all-users ; ajoutez --include-root pour les répertoires personnels de root |
| Checkouts de dépôts publics | Les clones open-source créent souvent du bruit sans rapport avec le risque local de la machine. | scan.skip_public_repositories: false |