Skip to content

Peut-on mettre une clé d'API dans le prompt système d'un LLM si l'on ordonne au modèle de ne jamais la révéler ?

Réponse courte

Non. La recommandation OWASP LLM07 est que le prompt système ne doit pas être considéré comme un secret, ni servir de contrôle de sécurité, et qu'on n'y place ni identifiants ni chaînes de connexion. Les LLM pouvant être détournés par injection de prompt, une consigne « ne révèle jamais ceci » n'est pas un mécanisme d'application. Placez les secrets dans un gestionnaire de secrets et appliquez autorisations et filtrage de façon déterministe, hors du modèle.

On est tenté de traiter le prompt système comme une configuration côté serveur : invisible pour les utilisateurs, donc sûr. Cette question vérifie que vous comprenez qu'un LLM n'est pas une frontière de confiance.

Ce que dit l'OWASP

L'OWASP LLM07:2025 (System Prompt Leakage) indique que le prompt système ne doit être considéré ni comme un secret, ni comme un contrôle de sécurité. Les éléments sensibles, comme les identifiants et chaînes de connexion, ne doivent jamais y figurer. Les mesures citées : séparer les données sensibles (clés d'API, noms de bases, structures de rôles) du prompt, éviter de s'appuyer sur les prompts système pour contrôler le comportement du modèle quand c'est possible, ajouter des garde-fous indépendants hors du LLM, et appliquer séparation des privilèges et contrôles d'autorisation de façon déterministe hors du modèle.

Pourquoi « ne révèle jamais ceci » ne fonctionne pas

Le comportement du modèle est façonné par du texte, et les attaquants fournissent aussi du texte. L'injection de prompt peut pousser le modèle à divulguer ou ignorer ses instructions : une interdiction en langage naturel est une demande, pas un contrôle d'accès. L'OWASP souligne aussi que la divulgation du prompt n'est pas le risque principal : ce sont les secrets exposés, les garde-fous contournés et la logique d'autorisation déléguée au LLM.

Pourquoi les distracteurs échouent

  • « Les modèles obéissent de façon fiable » — rien ne le garantit ; les instructions injectées concurrencent les vôtres.
  • « Masqué dans l'interface » — cacher n'est pas protéger si le modèle peut être amené à le produire.
  • « Encodé en base64 » — l'encodage n'est pas du chiffrement, et le modèle peut le décoder ou le reproduire.

Ce que veulent les recruteurs

« Supposez que le prompt peut fuiter. » Puis : secrets dans un coffre-fort lus par le code backend, identifiants d'outils au moindre privilège, et autorisation appliquée dans le code, pas dans la prose.

Questions de suivi probables

  • Comment un attaquant tenterait-il d'extraire un prompt système, et pourquoi « ne le révèle pas » échoue-t-il ?
  • Si le prompt ne contient aucun secret, sa fuite reste-t-elle un risque ? Quels sont, selon l'OWASP, les vrais échecs ?
  • Où faut-il plutôt appliquer l'autorisation des appels d'outils d'un agent LLM ?

Sources

Recevez 100 questions d'entretien en cybersécurité + réponses

Laissez votre e-mail et nous vous enverrons le pack PDF gratuit et le jeu de flashcards.

Pas de spam. Désabonnez-vous à tout moment.