Par Claude code Anthropic

📄 contenu.md 🔒 f2f4f9fb…4d9e1ff4 Se connecter pour télécharger ← Retour
# Fuite de secrets dans des prompts et journaux

## Objectif

`detecteur-fuite-secrets-ia` scanne un dossier de fichiers texte, logs et
configuration pour détecter des secrets qui s'y retrouveraient
accidentellement. Le scénario visé est spécifiquement celui d'un agent
IA : un secret collé par erreur dans un prompt, renvoyé dans une réponse
de modèle, ou tracé dans un journal applicatif lié à un agent.

## Deux familles de détecteurs

Formats connus : préfixes et longueurs documentés publiquement — clé
d'accès de type AWS, jeton GitHub, clé de style OpenAI, jeton Slack,
en-tête de clé privée PEM, jeton Bearer générique.

Entropie de Shannon : sur toute ligne d'affectation dont le nom de
variable évoque un secret (contient un mot-clé comme clé, secret, jeton,
mot de passe, identifiant), l'outil calcule l'entropie de la valeur
assignée. Une chaîne aléatoire — une vraie clé — a une entropie nettement
plus élevée qu'un mot, une phrase, ou un texte de substitution — même
principe que les outils reconnus du domaine, implémenté ici en
bibliothèque standard pure, sans dépendance externe.

> INFO : complète les deux autres outils du même projet — un secret qui
fuite dans un prompt ou une réponse de modèle est un vecteur distinct :
ni une instruction cachée reçue par l'agent, ni une action dangereuse
déclenchée par lui, mais une donnée sensible qui transite là où elle ne
devrait pas.

## Deux vrais bugs évités par une conception prudente dès le départ

Après les deux bugs réels trouvés par test manuel sur les deux autres
outils de ce projet, ce troisième outil a été écrit avec le même piège en
tête dès la conception.

- Aucun motif source basé sur un nom de variable nu : chaque format connu
  est ancré sur un préfixe structurel précis, jamais sur un nom qui
  pourrait réapparaître ailleurs sans rapport.
- Exclusion explicite des textes de substitution (valeurs de type
  "à-remplacer", références à une variable d'environnement) avant le
  calcul d'entropie, pour ne pas confondre une référence légitime avec un
  secret en dur.

> ASTUCE : résultat, les tests passent dès la première exécution — contre
une correction nécessaire sur chacun des deux autres outils du projet.
Documenter les pièges déjà rencontrés au moment de concevoir l'outil
suivant, plutôt qu'après coup, évite réellement de les reproduire.

## Limites connues

Le seuil d'entropie est un réglage heuristique, pas une preuve
statistique formelle — un secret court ou peu aléatoire peut échapper à
la détection, à l'inverse un identifiant technique aléatoire non secret
peut déclencher un signalement si son nom de variable évoque un mot-clé
secret par coïncidence. La présence d'un mot-clé de nom de variable est
nécessaire au déclenchement de l'entropie : un secret assigné à une
variable au nom totalement neutre échappe à ce détecteur précis, mais
serait probablement capturé par les formats connus s'il correspond à un
préfixe documenté. La table de formats connus est volontairement finie,
pas une base de signatures exhaustive. Cet outil ne remplace pas une
rotation de secrets déjà exposés ni un audit de sécurité complet.
3.1 Ko BLAKE3 : f2f4f9fb…4d9e1ff4