Claude Platform Docs
Bonnes pratiquesRenforcer les garde-fous

Atténuer les jailbreaks et les injections de prompts

Défendez votre application contre les jailbreaks et les injections de prompts grâce au filtrage des entrées, à des invites système renforcées et à une gestion sûre du contenu d'outils non fiable.

Le « jailbreaking » (contournement des garde-fous) et la « prompt injection » (injection de prompts) sont des tentatives visant à amener Claude à ignorer ses directives ou vos instructions. Bien que Claude soit intrinsèquement résistant à de telles attaques, les mesures supplémentaires présentées sur cette page renforcent vos garde-fous, en particulier contre les usages qui enfreignent les Conditions d'utilisation ou la Politique d'utilisation d'Anthropic.

Ces attaques se répartissent en deux catégories correspondant à des modèles de menace différents :

  • Les jailbreaks et l'injection de prompts directe, où l'utilisateur de votre application est l'adversaire et élabore des entrées destinées à contourner vos garde-fous.
  • L'injection de prompts indirecte, où l'utilisateur est de confiance mais Claude traite du contenu tiers (pages web, e-mails, documents, résultats d'outils) qui contient des instructions malveillantes.

Jailbreaks et injection de prompts directe

Dans ce modèle de menace, un utilisateur élabore délibérément des entrées pour manipuler votre application afin qu'elle produise du contenu ou entreprenne des actions que vous ne souhaitez pas. Ces mesures d'atténuation renforcent les garde-fous de votre application :

  • Filtres d'innocuité : utilisez un modèle léger comme Claude Haiku 4.5 pour pré-filtrer les entrées utilisateur avant qu'elles n'atteignent votre conversation principale. Utilisez les sorties structurées pour contraindre la réponse à une classification simple.

  • Validation des entrées : filtrez les entrées utilisateur à la recherche de schémas d'injection connus avant qu'elles n'atteignent Claude. Vous pouvez utiliser un LLM pour créer un filtre de validation généralisé en fournissant comme exemples des formulations de jailbreaking connues.

  • Ingénierie de prompts : rédigez des invites système qui mettent l'accent sur les limites éthiques et légales, et qui indiquent explicitement à Claude comment refuser.

  • Réagir face aux récidivistes : ajustez les réponses et envisagez de limiter ou de bannir les utilisateurs qui tentent de manière répétée de contourner les garde-fous de votre application. Par exemple, si un utilisateur particulier déclenche plusieurs fois le même type de refus (tel que « sortie bloquée par la politique de filtrage de contenu »), indiquez à l'utilisateur que ses actions enfreignent les politiques d'utilisation applicables et prenez les mesures appropriées.

Injection de prompts indirecte

Dans ce modèle de menace, vous protégez vos utilisateurs contre des instructions intégrées dans du contenu que Claude lit en leur nom : le corps d'un e-mail entrant, une page web récupérée, la sortie OCR d'un fichier téléversé ou le résultat d'un appel d'outil. Un attaquant capable d'influencer ce contenu peut y intégrer des instructions qui tentent de détourner Claude.

Structurez votre application de sorte que Claude puisse distinguer de manière fiable le contenu non fiable de vos instructions :

  • Placez le contenu non fiable uniquement dans les résultats d'outils. Transmettez le contenu tiers à Claude à l'intérieur de blocs tool_result, jamais dans les prompts system ni dans de simples blocs text utilisateur. Claude est entraîné à traiter avec le scepticisme approprié les instructions qui apparaissent dans les résultats d'outils. Consultez Gérer les appels d'outils pour le format tool_result.

  • Indiquez à Claude la nature du contenu et sa provenance. Dans la description de l'outil, ou dans la structure du résultat lui-même, explicitez la nature et la source du contenu : par exemple, qu'il s'agit du corps d'un e-mail entrant provenant d'un expéditeur inconnu, ou d'un texte OCR extrait d'une image téléversée par l'utilisateur. Ce contexte aide Claude à calibrer le degré de confiance à accorder aux directives intégrées.

  • Énoncez la politique dans votre invite système. Indiquez explicitement à Claude que le contenu renvoyé par les outils, les documents ou les recherches constitue des données non fiables et ne doit jamais prendre le pas sur l'invite système ni sur la demande initiale de l'utilisateur.

  • Encodez le contenu non fiable en JSON. Dans la mesure du possible, encapsulez les chaînes tierces dans un objet JSON plutôt que de les concaténer dans du texte libre. L'échappement JSON fournit des délimiteurs sans ambiguïté entre la charge utile non fiable et la structure environnante, de sorte qu'un attaquant ne peut pas fermer un guillemet ou une balise pour « s'échapper » vers un contexte d'instruction.

  • Ne placez pas vos propres instructions dans les résultats d'outils. Comme Claude traite le contenu des résultats d'outils comme des données non fiables, les instructions que vous y placez peuvent être ignorées ou signalées comme une injection potentielle. Envoyez vos instructions dans un tour user qui suit le bloc tool_result. Sur les modèles pris en charge, vous pouvez également utiliser un message système en cours de conversation.

  • Limitez l'accès de Claude aux données et actions sensibles. Appliquez le principe du moindre privilège afin qu'une injection réussie ne puisse causer que des dommages minimes : ne donnez pas à Claude accès à des secrets dont il n'a pas besoin, exécutez les outils dans des environnements isolés (sandbox) et restreignez les autorisations aussi étroitement que possible.

  • Filtrez les sorties d'outils avant que Claude n'agisse en fonction de celles-ci. Appliquez au contenu renvoyé par vos outils le même schéma de filtrage par modèle léger que vous utilisez pour les entrées utilisateur. Exécutez chaque outil, transmettez sa sortie brute à un petit appel de classification avec Claude Haiku 4.5, et ne renvoyez le contenu sous forme de bloc tool_result que si le filtre ne signale aucune tentative d'injection. Utilisez les sorties structurées afin que le verdict du classificateur soit une valeur analysable sur laquelle votre application peut se brancher.

    Vous pouvez également appliquer aux résultats d'outils les schémas de validation des entrées de la section précédente avant de les transmettre à Claude.

  • Menez des exercices de red team sur votre propre agent. Avant le déploiement, testez votre flux de travail avec des documents, des e-mails et des sorties d'outils contenant délibérément des tentatives d'injection, et vérifiez que Claude les ignore et que vos étapes de filtrage et de confirmation interceptent le reste.

Surveillance continue

Analysez régulièrement les sorties à la recherche de signes d'injection réussie. Utilisez cette surveillance pour affiner de manière itérative vos prompts ainsi que vos stratégies de validation et de filtrage.

Avancé : enchaîner les protections

Combinez les stratégies pour une protection robuste. Voici un exemple de niveau entreprise avec « tool use » (utilisation d'outils) :

En superposant ces stratégies, vous créez une défense robuste contre le jailbreaking et les injections de prompts, garantissant que vos applications propulsées par Claude maintiennent les normes les plus élevées en matière de sécurité et de conformité.

Was this page helpful?