Aller au contenu principal

Scan de secrets pour les outils de coding IA

Les développeurs s'appuient de plus en plus sur des outils de coding IA comme Cursor et Claude Code pour écrire et modifier du code. Ces outils peuvent involontairement exposer des secrets : un développeur peut coller des credentials dans un prompt, ou l'agent IA peut lire un fichier ou exécuter une commande contenant des clés API ou des tokens. Une fois qu'un secret atteint le modèle IA, il peut être journalisé, mis en cache ou envoyé à des services tiers.

ggshield s'intègre aux outils de coding IA via leur système de hooks pour scanner les interactions en temps réel. Lorsqu'un secret est détecté, ggshield bloque l'action avant qu'elle n'atteigne le modèle et indique au développeur de supprimer le secret.

Comment ça fonctionne

Les outils de coding IA prennent en charge des hooks : des commandes personnalisées qui s'exécutent à des moments spécifiques d'une interaction IA. ggshield s'enregistre comme hook et scanne le contenu à trois étapes :

ÉtapeCe qu'il faitComportement
Soumission du promptScanne le prompt utilisateur avant qu'il ne soit envoyé au modèle IABloque le prompt si des secrets sont trouvés
Pre-tool useScanne les commandes, les lectures de fichiers et les appels MCP avant que l'IA ne les exécuteBloque l'action si des secrets sont trouvés
Post-tool useScanne les sorties d'outils après exécutionEnvoie une notification desktop si des secrets sont trouvés

ggshield utilise le même moteur de détection que toutes les autres commandes de scan, couvrant plus de 500 types de secrets.

Prérequis

  • ggshield version 1.49.0 ou ultérieure
  • Une clé API GitGuardian (voir Démarrage rapide)
  • L'un des outils de coding IA pris en charge : Cursor, Claude Code ou VS Code avec GitHub Copilot

Installation

ggshield fournit un installateur en une seule commande qui écrit la configuration de hook correcte pour chaque outil.

Cursor

$ ggshield install -t cursor -m global

Cela écrit les hooks dans votre fichier global .cursor/hooks.json. Pour installer uniquement pour le projet courant :

$ ggshield install -t cursor -m local

La configuration générée enregistre ggshield sur les trois étapes de hook (soumission de prompt, pre-tool use et post-tool use).

Claude Code

$ ggshield install -t claude-code -m global

Cela écrit les hooks dans votre fichier global .claude/settings.json. Pour installer uniquement pour le projet courant :

$ ggshield install -t claude-code -m local

La configuration générée enregistre ggshield sur les trois étapes de hook (soumission de prompt, pre-tool use et post-tool use).

VS Code avec GitHub Copilot

$ ggshield install -t copilot -m global

Cela écrit les hooks dans vos paramètres VS Code globaux. Pour installer uniquement pour le projet courant :

$ ggshield install -t copilot -m local

La configuration générée enregistre ggshield sur les trois étapes de hook (soumission de prompt, pre-tool use et post-tool use).

astuce

Si vous avez déjà des configurations de hooks pour l'outil cible, ggshield fusionne ses hooks dans le fichier existant sans toucher aux autres hooks. Utilisez --force pour écraser les hooks propres à ggshield (par exemple, s'ils ont été personnalisés et que vous souhaitez les réinitialiser).

Ce que voit le développeur

Lorsque ggshield détecte un secret, l'outil de coding IA affiche un message bloquant. Par exemple, dans Cursor :

Detected 1 secret

  • Google API Key (valid) : AIzaSyC****************-*********d5oii7Y

Please remove the secrets from the content before proceeding.

Le prompt ou l'action est bloqué jusqu'à ce que le développeur supprime le secret et réessaie.

Pour les détections post-tool-use (où l'action a déjà été exécutée), ggshield envoie une notification desktop avertissant le développeur.

Gestion des faux positifs

Si ggshield bloque une action sur un secret qui est un faux positif connu, vous pouvez indiquer à ggshield de l'ignorer :

$ ggshield secret ignore --last-found

Cela ajoute le secret détecté à votre liste d'ignorés .gitguardian.yaml. Les scans futurs (y compris les scans de hooks IA) le sauteront.

Désinstallation

Pour supprimer les hooks, supprimez les entrées ggshield du fichier de configuration de l'outil :

  • Cursor : .cursor/hooks.json
  • Claude Code : .claude/settings.json
  • VS Code avec GitHub Copilot : paramètres VS Code

Voir aussi