Aller au contenu principal

Prévenir les fuites avec les AI Hooks

Les AI Hooks intègrent ggshield aux outils de codage IA que vos développeurs utilisent déjà. Lorsqu'un prompt ou un appel d'outil contient un secret, ggshield bloque l'action avant qu'elle n'atteigne le modèle et indique au développeur ou à l'agent ce qu'il faut supprimer. Lorsqu'un secret apparaît uniquement dans la sortie d'un outil, ce qu'une commande shell ou une réponse MCP peut produire de manière imprévisible, l'action a déjà été exécutée, alors ggshield déclenche une notification sur le bureau.

Pourquoi les AI Hooks sont importants sur les endpoints des développeurs​

Le scan des endpoints inventorie les identifiants déjà présents sur une machine. Les AI Hooks empêchent les nouveaux d'en sortir.

Les développeurs utilisant des outils de codage IA divulguent des secrets à un rythme environ deux fois supérieur au taux de référence. Un agent chargé de déboguer un déploiement défaillant lit le fichier .env ou ~/.aws/credentials et transmet le contenu à un fournisseur de modèles. Il n'y a ni commit, ni push, ni pull request, donc aucun des points de contrôle qui protègent vos dépôts et votre CI ne se déclenche.

Les hooks agissent au moment de l'interaction, ce qui vous apporte plusieurs avantages :

  • La prévention plutôt que le nettoyage. Le secret est intercepté avant d'atteindre un tiers, donc il n'y a aucune rotation à planifier ni aucun fournisseur de modèles à interroger sur la rétention.
  • Une correction sur laquelle le développeur peut agir. Chaque blocage nomme le secret détecté et ce qu'il faut supprimer, afin que le développeur ou l'agent puisse corriger le contenu et réessayer immédiatement.
  • Aucun agent supplémentaire à déployer. Les hooks réutilisent le binaire ggshield que vous installez déjà pour le scan. Ils s'exécutent uniquement lorsque l'outil IA les appelle, il n'y a donc aucun processus résident sur la machine.

Ce que scannent les hooks​

ggshield s'enregistre à trois étapes d'une interaction IA :

  • Soumission du prompt : le prompt est scanné avant d'atteindre le modèle, et bloqué s'il contient un secret.
  • Pré-utilisation d'outil : les lectures de fichiers, les commandes shell et les appels MCP sont scannés avant que l'agent ne les exécute, et bloqués s'ils contiennent un secret.
  • Post-utilisation d'outil : si la sortie d'un outil contient un secret, le développeur reçoit une notification sur le bureau.

La détection utilise le même moteur que tous les autres scans ggshield, couvrant plus de 600 types de secrets. Les outils pris en charge sont Claude Code, Cursor, Codex, Copilot CLI, VS Code et Mistral Vibe.

Pour la configuration par outil, l'apparence du message de blocage pour un développeur et la gestion des faux positifs, consultez Scan de secrets pour les outils de codage IA.

Ce qu'envoie un hook​

La détection se fait du côté de GitGuardian, donc le contenu de l'interaction est scanné par l'API, de la même manière que ggshield scanne un commit ou un push. Les hooks signalent également chaque appel d'outil MCP, avec le nom de l'outil et du serveur ainsi que les arguments transmis par l'agent. C'est ce qui alimente votre vue d'activité MCP et ce qui transmet la décision d'autorisation ou de refus à l'outil.

Les scans de machine fonctionnent dans l'autre sens et conservent la détection sur l'endpoint. Pour le détail complet des deux, consultez Gestion des données et confidentialité.

Déployer les AI Hooks sur votre parc​

Les hooks ne protègent une machine qu'une fois qu'ils y sont configurés, et demander à chaque développeur d'y adhérer laisse des failles exactement là où vous avez besoin de couverture. Déployez-les plutôt via votre MDM, avec le reste d'Endpoint Protection.

Le scan nécessite un token à chaque déclenchement d'un hook, et parce que les hooks s'exécutent dans la propre session du développeur plutôt que dans votre tâche MDM, ce token doit être celui du développeur. Injectez un token de compte de service administrateur au moment de l'exécution pour installer les hooks, puis connectez le développeur afin que le hook scanne sous son adhésion : consultez Étape 4 et Étape 5.

Pour configurer une seule machine, exécutez une commande en tant qu'utilisateur connecté :

ggshield machine setup

machine setup configure le hook pour chaque assistant de codage IA qu'il détecte, et ignore ceux qui ne sont pas installés. Il installe également les hooks git pre-commit et pre-push et plante un honeytoken, alors ajoutez --no-git-hooks ou --no-honeytokens si vous souhaitez uniquement les AI Hooks. Pour sélectionner ou exclure des assistants spécifiques, utilisez --agent ou --exclude-agent avec l'un des claude-code, codex, copilot, cursor, vibe et vscode.

Les hooks nécessitent ggshield 1.49.0 ou une version ultérieure, 1.51.0 ou une version ultérieure pour Codex, et 1.54.0 ou une version ultérieure pour Mistral Vibe. machine setup nécessite la version 1.53.0 ou une version ultérieure. Sur les versions antérieures, installez un assistant à la fois avec ggshield install -t <assistant> -m global, qui fonctionne toujours mais est déprécié.

Vérifier que les hooks sont actifs​

Sur une machine témoin, en tant qu'utilisateur connecté, exécutez :

ggshield machine doctor

machine doctor est en lecture seule et signale, pour chaque assistant qu'il trouve sur la machine, si le hook est installé. Il vérifie également que le token atteint GitGuardian et porte les scopes nécessaires à vos protections, et il se termine avec un code non nul si une vérification échoue, afin que vous puissiez l'exécuter comme script d'audit MDM. Chaque vérification échouée affiche sa propre correction.

Les deux volets de cette vérification comptent. Comme les hooks échouent en mode ouvert, une machine avec des hooks installés mais sans identifiants fonctionnels apparaît de la même manière au développeur qu'une machine sans rien à bloquer, mis à part l'avertissement indiquant que le contenu n'a pas été scanné.

Pour confirmer de bout en bout, collez un identifiant de test dans un prompt et vérifiez que l'outil affiche le message de blocage de ggshield.

Revenir en arrière​

Désactiver la tâche de configuration MDM empêche les nouvelles machines de recevoir des hooks, mais laisse en place les configurations déjà présentes sur le disque. Pour les supprimer, supprimez les entrées ggshield de la configuration des hooks de l'outil :

OutilConfiguration des hooks
Claude Code~/.claude/settings.json
Cursor~/.cursor/hooks.json
Codex~/.codex/hooks.json
Copilot CLI et VS Code~/.copilot/hooks/hooks.json
Mistral Vibe~/.vibe/hooks.toml