
Jeton
Un jeton, dans le contexte des grands modèles de langage (LLM), est une séquence de caractères que le modèle convertit en représentations numériques pour un tra...

La contrebande de jetons exploite l’écart entre la façon dont les humains lisent le texte et la façon dont les tokeniseurs LLM le traitent. Les attaquants utilisent des variations Unicode, des caractères de largeur nulle, des homoglyphes ou des encodages inhabituels pour dissimuler des instructions malveillantes aux filtres de contenu tout en restant lisibles par le tokeniseur.
La contrebande de jetons est une classe d’attaque qui cible l’écart entre les couches de traitement de texte dans les systèmes d’IA. Les filtres de modération de contenu, la validation des entrées et les contrôles de sécurité fonctionnent généralement sur du texte lisible par l’homme. Les tokeniseurs LLM, en revanche, fonctionnent à un niveau inférieur — convertissant les caractères en identifiants de jetons numériques. En exploitant les différences entre ces couches, les attaquants peuvent créer des entrées qui passent les filtres au niveau du texte mais délivrent des instructions malveillantes au LLM.
Avant qu’un LLM ne traite le texte, un tokeniseur convertit la chaîne d’entrée en une séquence d’identifiants de jetons entiers. Ces identifiants correspondent au vocabulaire du modèle — généralement encodés à l’aide d’algorithmes comme le Byte Pair Encoding (BPE) ou WordPiece.
Propriétés clés de la tokenisation que les attaquants exploitent :
Unicode contient des milliers de caractères qui ressemblent visuellement aux caractères ASCII communs. Un filtre recherchant le mot “harmful” peut ne pas reconnaître “hármful” (avec un accent combinatoire) ou “harⅿful” (avec un caractère de fraction Unicode).
Exemple : Le mot “ignore” pourrait être encodé comme “іgnore” (utilisant le “і” cyrillique au lieu du “i” latin) — apparaissant identique à la plupart des lecteurs humains et à certains filtres, mais potentiellement traité différemment au niveau du tokeniseur.
Les caractères de largeur nulle (comme U+200B ZERO WIDTH SPACE ou U+200C ZERO WIDTH NON-JOINER) sont invisibles dans le texte rendu. Les insérer entre les caractères dans les mots clés brise les filtres de correspondance de chaînes sans affecter l’apparence visuelle ou, dans de nombreux cas, la représentation tokenisée.
Exemple : “ignore” avec des espaces de largeur nulle entre chaque caractère apparaît comme “ignore” lorsqu’il est rendu mais brise la correspondance de motifs de chaînes simples.
Conversion du texte en encodages alternatifs avant la soumission :
L’efficacité dépend de si le LLM a été entraîné pour décoder ces représentations, ce que de nombreux modèles à usage général ont.
Variations simples mais parfois efficaces :
Certains tokeniseurs accordent un traitement spécial aux caractères délimiteurs. En introduisant des caractères que le tokeniseur interprète comme des limites de segment, les attaquants peuvent manipuler la façon dont le modèle segmente l’entrée en unités significatives.
Contournement de jailbreak : Encodage de prompts de jailbreak en utilisant des techniques qui passent la couche de filtre de sécurité mais sont décodées par le LLM, permettant le contournement des garde-fous de sécurité.
Évasion de filtre de contenu : Intégration de discours haineux, de demandes de contenu illégal ou d’instructions violant les politiques sous forme encodée.
Obfuscation d’injection de prompt : Utilisation de l’encodage pour cacher les instructions injectées aux filtres de correspondance de motifs simples tout en s’assurant que le LLM les traite correctement.
Empreinte digitale de filtre : Test systématique de différentes variations d’encodage pour identifier lesquelles les filtres du système cible détectent ou ne détectent pas — cartographie de la couverture du filtre pour des attaques plus ciblées.
Appliquer la normalisation Unicode (NFC, NFD, NFKC ou NFKD) à toutes les entrées avant le filtrage. Cela convertit les variantes Unicode en formes canoniques, éliminant de nombreuses attaques d’homoglyphes et de caractères combinatoires.
Implémenter un mappage explicite d’homoglyphes pour normaliser les caractères visuellement similaires à leurs équivalents ASCII avant le filtrage. Des bibliothèques existent à cette fin dans la plupart des langages de programmation.
Plutôt que (ou en plus de) des filtres basés sur les chaînes, utiliser un filtre basé sur LLM qui fonctionne sur des représentations de jetons. Parce que ces filtres traitent le texte au même niveau que le modèle cible, les astuces d’encodage sont moins efficaces — le filtre voit la même représentation que le modèle.
L’évaluation de sécurité devrait inclure des tests systématiques des filtres de contenu contre des variantes d’encodage connues. Si un filtre est censé bloquer “ignore previous instructions”, tester s’il bloque également les homoglyphes Unicode, les variantes de largeur nulle, l’encodage Base64 et d’autres formes d’obfuscation.
Enregistrer un rendu lisible par l’homme des entrées normalisées aux côtés de l’entrée brute. Les écarts entre les deux peuvent révéler des attaques d’encodage lors de l’examen des incidents.
La contrebande de jetons est une technique d'attaque qui exploite les différences entre le texte lisible par l'homme et les représentations du tokeniseur LLM. Les attaquants encodent des instructions malveillantes en utilisant des variations de caractères, des astuces Unicode ou un formatage inhabituel afin que les filtres de contenu ne les détectent pas, mais que le tokeniseur du LLM les traite toujours comme prévu.
Les filtres de contenu fonctionnent souvent sur du texte lisible par l'homme — en vérifiant des chaînes, des motifs ou des mots-clés spécifiques. Les tokeniseurs LLM, cependant, traitent le texte à un niveau inférieur et peuvent mapper des caractères visuellement différents aux mêmes jetons ou à des jetons similaires. Cet écart permet aux attaquants de créer du texte qui se lit d'une manière pour un filtre et est traité différemment par le tokeniseur.
Les défenses incluent : la normalisation du texte d'entrée avant le filtrage (normalisation Unicode, remplacement d'homoglyphes), l'utilisation de filtres de contenu basés sur LLM qui fonctionnent sur des représentations au niveau des jetons plutôt que sur du texte brut, le test des filtres contre des variantes d'encodage connues, et la réalisation d'évaluations de sécurité incluant des scénarios d'attaque basés sur l'encodage.
La contrebande de jetons et les attaques d'encodage contournent les filtres superficiels. Nous testons ces techniques dans chaque évaluation de sécurité de chatbot.

Un jeton, dans le contexte des grands modèles de langage (LLM), est une séquence de caractères que le modèle convertit en représentations numériques pour un tra...

La sécurité des LLM englobe les pratiques, techniques et contrôles utilisés pour protéger les déploiements de modèles de langage contre une classe unique de men...

Nous avons testé et classé les capacités rédactionnelles de 5 modèles populaires disponibles sur FlowHunt afin de trouver le meilleur LLM pour la rédaction de c...