Token Smuggling

Token smuggling är en attackklass som riktar sig mot gapet mellan textbearbetningslager i AI-system. Innehållsmoderationsfilter, inmatningsvalidering och säkerhetskontroller arbetar vanligtvis med mänskligt läsbar text. LLM-tokeniserare arbetar däremot på en lägre nivå — de konverterar tecken till numeriska token-ID:n. Genom att utnyttja skillnader mellan dessa lager kan angripare skapa inmatningar som passerar textbaserade filter men levererar skadliga instruktioner till LLM:en.

Hur LLM-Tokenisering Fungerar

Innan en LLM bearbetar text konverterar en tokeniserare inmatningssträngen till en sekvens av heltal token-ID:n. Dessa ID:n mappas till modellens vokabulär — vanligtvis kodade med algoritmer som Byte Pair Encoding (BPE) eller WordPiece.

Nyckelaspekter av tokenisering som angripare utnyttjar:

  • Många tecken mappas till liknande tokenrepresentationer. Unicode innehåller många visuellt liknande tecken (homoglyfer) som tokeniseras identiskt eller nästan identiskt.
  • Tokenisering är inte rent teckenbaserad. Vissa tokeniserare delar upp ord i delordenheter baserat på frekvensmönster, vilket skapar möjligheter för gränsmanipulation.
  • Specialtecken kan bevaras eller tas bort. Nollbredds-tecken, kombinerande diakritiska tecken och kontrolltecken kan vara osynliga för strängbaserade filter men hanteras specifikt av tokeniserare.

Token Smuggling-Tekniker

Unicode Homoglyf-Substitution

Unicode innehåller tusentals tecken som visuellt liknar vanliga ASCII-tecken. Ett filter som letar efter ordet “harmful” kanske inte känner igen “hármful” (med en kombinerad accent) eller “harⅿful” (med ett Unicode-bråktecken).

Exempel: Ordet “ignore” kan kodas som “іgnore” (med kyrilliskt “і” istället för latinskt “i”) — ser identiskt ut för de flesta mänskliga läsare och vissa filter, men bearbetas potentiellt annorlunda på tokeniseringsnivå.

Infogning av Nollbredds-Tecken

Nollbredds-tecken (som U+200B ZERO WIDTH SPACE eller U+200C ZERO WIDTH NON-JOINER) är osynliga i renderad text. Att infoga dem mellan tecken i nyckelord bryter strängningsmatchningsfilter utan att påverka det visuella utseendet eller, i många fall, den tokeniserade representationen.

Exempel: “i​g​n​o​r​e” med nollbredds-mellanslag mellan varje tecken visas som “ignore” när det renderas men bryter enkel strängmönstermatchning.

Kodningsobfuskering

Konvertering av text till alternativa kodningar före inlämning:

  • Base64-kodning: “aWdub3JlIHByZXZpb3VzIGluc3RydWN0aW9ucw==” (om modellen avkodar det)
  • Leet speak: “1gn0r3 pr3v10u5 1n5truc710n5” ersätter siffror för bokstäver
  • ROT13 eller Caesar-chiffer-varianter: Förskjutning av tecken för att undvika nyckelordsdetektion
  • Hex-kodning: Representera tecken som hex-sekvenser som vissa modeller tolkar

Effektiviteten beror på om LLM:en har tränats för att avkoda dessa representationer, vilket många allmänna modeller har.

Variationer i Versaler och Format

Enkla men ibland effektiva variationer:

  • VERSALER: “IGNORE PREVIOUS INSTRUCTIONS”
  • Blandad stil: “IgNoRe PrEvIoUs InStRuCtIoNs”
  • Mellanslag mellan bokstäver: “I G N O R E P R E V I O U S”
  • Omvänd: “snoitcurtsni suoiverp erongi” (om modellen kan bearbeta omvänd text)

Avgränsarinjektion

Vissa tokeniserare ger speciell behandling åt avgränsartecken. Genom att introducera tecken som tokeniseraren tolkar som segmentgränser kan angripare manipulera hur modellen segmenterar inmatningen i meningsfulla enheter.

Logo

Redo att växa ditt företag?

Starta din kostnadsfria provperiod idag och se resultat inom några dagar.

Attackanvändningsfall

Jailbreak-bypass: Kodning av jailbreak-prompter med tekniker som passerar säkerhetsfiltret men avkodas av LLM:en, vilket möjliggör bypass av säkerhetsskyddsräcken.

Undvikande av innehållsfilter: Inbäddning av hatpropaganda, förfrågningar om olagligt innehåll eller policybrytande instruktioner i kodad form.

Obfuskering av prompt-injektion: Användning av kodning för att dölja injicerade instruktioner från enkla mönstermatchningsfilter samtidigt som LLM:en bearbetar dem korrekt.

Filterfingeravtryckning: Systematisk testning av olika kodningsvariationer för att identifiera vilka som målsystemets filter upptäcker och inte upptäcker — kartläggning av filtertäckning för mer riktade attacker.

Försvarsstrategier

Unicode-Normalisering

Tillämpa Unicode-normalisering (NFC, NFD, NFKC eller NFKD) på alla inmatningar före filtrering. Detta konverterar Unicode-varianter till kanoniska former, vilket eliminerar många homoglyf- och kombinerande teckenattacker.

Detektion och Ersättning av Homoglyfer

Implementera explicit homoglyfmappning för att normalisera visuellt liknande tecken till deras ASCII-motsvarigheter före filtrering. Bibliotek för detta ändamål finns i de flesta programmeringsspråk.

LLM-Baserad Innehållsfiltrering

Istället för (eller utöver) strängbaserade filter, använd ett LLM-baserat filter som arbetar med tokenrepresentationer. Eftersom dessa filter bearbetar text på samma nivå som målmodellen är kodningstrick mindre effektiva — filtret ser samma representation som modellen.

Testa Filter Mot Kända Varianter

Säkerhetsbedömning bör inkludera systematisk testning av innehållsfilter mot kända kodningsvarianter. Om ett filter är avsett att blockera “ignore previous instructions”, testa om det också blockerar Unicode-homoglyfer, nollbredds-varianter, Base64-kodning och andra obfuskeringsformer.

Visualisering och Granskning av Inmatning

Logga en mänskligt läsbar rendering av normaliserade inmatningar tillsammans med den råa inmatningen. Skillnader mellan de två kan avslöja kodningsattacker vid incidentgranskning.

Relaterade Termer

Vanliga frågor

Vad är token smuggling?

Token smuggling är en attackteknik som utnyttjar skillnader mellan mänskligt läsbar text och LLM-tokeniserares representationer. Angripare kodar skadliga instruktioner med hjälp av teckenvariationer, Unicode-tricks eller ovanlig formatering så att innehållsfilter inte upptäcker dem, men LLM:ens tokeniserare bearbetar dem fortfarande som avsett.

Varför fungerar token smuggling?

Innehållsfilter arbetar ofta med mänskligt läsbar text — de kontrollerar specifika strängar, mönster eller nyckelord. LLM-tokeniserare bearbetar dock text på en lägre nivå och kan mappa visuellt olika tecken till samma eller liknande tokens. Detta gap tillåter angripare att skapa text som läses på ett sätt av ett filter och bearbetas annorlunda av tokeniseraren.

Hur kan man försvara sig mot token smuggling?

Försvar inkluderar: normalisering av inmatningstext före filtrering (Unicode-normalisering, ersättning av homoglyfer), användning av LLM-baserade innehållsfilter som arbetar på token-nivå representationer snarare än rå text, testning av filter mot kända kodningsvarianter, och genomförande av säkerhetsbedömningar som inkluderar kodningsbaserade attackscenarier.

Testa Din Chatbot Mot Kodningsbaserade Attacker

Token smuggling och kodningsattacker kringgår ytliga filter. Vi testar för dessa tekniker i varje chatbot-säkerhetsbedömning.

Lär dig mer

Token
Token

Token

En token i sammanhanget stora språkmodeller (LLM:er) är en sekvens av tecken som modellen omvandlar till numeriska representationer för effektiv bearbetning. To...

3 min läsning
Token LLM +3
Språkdetektion
Språkdetektion

Språkdetektion

Språkdetektion i stora språkmodeller (LLM:er) är processen där dessa modeller identifierar vilket språk en given text är skriven på, vilket möjliggör korrekt ha...

4 min läsning
Language Detection LLMs +4