Jailbreak

IA / LLM 🟡 Mid

Définition

Tentative par l'utilisateur de faire ignorer au modèle ses règles (jeu de rôle, « mode développeur », encodages, demandes fractionnées). Anthropic distingue ce cas, où l'utilisateur est l'adversaire, de l'injection indirecte. Mitigations : écran d'innocuité par un petit modèle, validation d'entrée sur motifs connus, system prompt avec refus explicite, throttling des récidivistes, surveillance continue.

Analogie

Un client qui essaie dix formulations pour que le guichetier enfreigne la procédure.

Exemple de code

const strikes = new Map<string, number>();

async function handle(userId: string, text: string) {
  const screen = await client.messages.create({
    model: 'claude-haiku-4-5', max_tokens: 20,
    output_config: { format: { type: 'json_schema', schema: {
      type: 'object', properties: { is_harmful: { type: 'boolean' } },
      required: ['is_harmful'], additionalProperties: false } } },
    messages: [{ role: 'user', content: `Classe ce contenu :\n<content>${text}</content>` }],
  });
  if (JSON.parse(screen.content[0].text).is_harmful) {
    const n = (strikes.get(userId) ?? 0) + 1; strikes.set(userId, n);
    if (n >= 3) await throttle(userId);           // récidive → ralentir / bannir
    return 'Cette demande viole nos conditions d\'utilisation.';
  }
  return mainCall(text);
}

Cas d'usage

Chatbots publics, produits grand public, toute surface exposée aux tentatives de contournement.

Anti-pattern

Répondre au jailbreak par un system prompt toujours plus long : les règles en code et la surveillance font le travail.
#ia#securite

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre