Token Smuggling

Il token smuggling è una classe di attacco che mira al divario tra i livelli di elaborazione del testo nei sistemi AI. I filtri di moderazione dei contenuti, la validazione degli input e i controlli di sicurezza operano tipicamente su testo leggibile dall’uomo. I tokenizer LLM, al contrario, operano a un livello inferiore — convertendo i caratteri in ID token numerici. Sfruttando le differenze tra questi livelli, gli attaccanti possono creare input che superano i filtri a livello di testo ma forniscono istruzioni malevole all’LLM.

Come Funziona la Tokenizzazione LLM

Prima che un LLM elabori il testo, un tokenizer converte la stringa di input in una sequenza di ID token interi. Questi ID corrispondono al vocabolario del modello — comunemente codificato utilizzando algoritmi come Byte Pair Encoding (BPE) o WordPiece.

Proprietà chiave della tokenizzazione che gli attaccanti sfruttano:

  • Molti caratteri mappano a rappresentazioni token simili. Unicode contiene molti caratteri visivamente simili (omoglifi) che si tokenizzano in modo identico o quasi identico.
  • La tokenizzazione non è puramente basata sui caratteri. Alcuni tokenizer dividono le parole in unità di sottoparole basate su pattern di frequenza, creando opportunità per la manipolazione dei confini.
  • I caratteri speciali possono essere preservati o eliminati. I caratteri a larghezza zero, i diacritici combinati e i caratteri di controllo possono essere invisibili ai filtri basati su stringhe ma gestiti specificamente dai tokenizer.

Tecniche di Token Smuggling

Sostituzione con Omoglifi Unicode

Unicode contiene migliaia di caratteri che assomigliano visivamente ai caratteri ASCII comuni. Un filtro che cerca la parola “harmful” potrebbe non riconoscere “hármful” (con un accento combinato) o “harⅿful” (con un carattere frazione Unicode).

Esempio: La parola “ignore” potrebbe essere codificata come “іgnore” (usando la “і” cirillica invece della “i” latina) — apparendo identica alla maggior parte dei lettori umani e ad alcuni filtri, ma potenzialmente elaborata diversamente a livello di tokenizer.

Inserimento di Caratteri a Larghezza Zero

I caratteri a larghezza zero (come U+200B ZERO WIDTH SPACE o U+200C ZERO WIDTH NON-JOINER) sono invisibili nel testo renderizzato. Inserirli tra i caratteri nelle parole chiave interrompe i filtri di corrispondenza delle stringhe senza influire sull’aspetto visivo o, in molti casi, sulla rappresentazione tokenizzata.

Esempio: “i​g​n​o​r​e” con spazi a larghezza zero tra ogni carattere appare come “ignore” quando renderizzato ma interrompe la semplice corrispondenza di pattern di stringhe.

Offuscamento della Codifica

Conversione del testo in codifiche alternative prima dell’invio:

  • Codifica Base64: “aWdub3JlIHByZXZpb3VzIGluc3RydWN0aW9ucw==” (se il modello la decodifica)
  • Leet speak: “1gn0r3 pr3v10u5 1n5truc710n5” sostituendo cifre alle lettere
  • Varianti ROT13 o cifrario di Cesare: Spostamento dei caratteri per evitare il rilevamento delle parole chiave
  • Codifica esadecimale: Rappresentare i caratteri come sequenze esadecimali che alcuni modelli interpretano

L’efficacia dipende dal fatto che l’LLM sia stato addestrato a decodificare queste rappresentazioni, cosa che molti modelli general-purpose fanno.

Variazione di Maiuscole e Formato

Variazioni semplici ma a volte efficaci:

  • TUTTO MAIUSCOLO: “IGNORE PREVIOUS INSTRUCTIONS”
  • Maiuscole miste: “IgNoRe PrEvIoUs InStRuCtIoNs”
  • Lettere spaziate: “I G N O R E P R E V I O U S”
  • Invertito: “snoitcurtsni suoiverp erongi” (se il modello può elaborare testo invertito)

Iniezione di Delimitatori

Alcuni tokenizer danno un trattamento speciale ai caratteri delimitatori. Introducendo caratteri che il tokenizer interpreta come confini di segmento, gli attaccanti possono manipolare il modo in cui il modello segmenta l’input in unità significative.

Logo

Pronto a far crescere il tuo business?

Inizia oggi la tua prova gratuita e vedi i risultati in pochi giorni.

Casi d’Uso degli Attacchi

Bypass di jailbreak: Codificare prompt di jailbreak utilizzando tecniche che superano il livello del filtro di sicurezza ma vengono decodificate dall’LLM, consentendo il bypass delle protezioni di sicurezza.

Evasione dei filtri di contenuto: Incorporare discorsi d’odio, richieste di contenuti illegali o istruzioni che violano le policy in forma codificata.

Offuscamento dell’iniezione di prompt: Utilizzare la codifica per nascondere istruzioni iniettate dai filtri di corrispondenza di pattern semplici assicurandosi che l’LLM le elabori correttamente.

Fingerprinting dei filtri: Testare sistematicamente diverse variazioni di codifica per identificare quali vengono rilevate e quali no dal sistema di filtri del target — mappando la copertura del filtro per attacchi più mirati.

Strategie di Difesa

Normalizzazione Unicode

Applicare la normalizzazione Unicode (NFC, NFD, NFKC o NFKD) a tutti gli input prima del filtraggio. Questo converte le varianti Unicode in forme canoniche, eliminando molti attacchi di omoglifi e caratteri combinati.

Rilevamento e Sostituzione di Omoglifi

Implementare una mappatura esplicita degli omoglifi per normalizzare i caratteri visivamente simili ai loro equivalenti ASCII prima del filtraggio. Esistono librerie per questo scopo nella maggior parte dei linguaggi di programmazione.

Filtraggio dei Contenuti Basato su LLM

Invece di (o in aggiunta a) filtri basati su stringhe, utilizzare un filtro basato su LLM che opera su rappresentazioni token. Poiché questi filtri elaborano il testo allo stesso livello del modello target, i trucchi di codifica sono meno efficaci — il filtro vede la stessa rappresentazione del modello.

Testare i Filtri Contro Varianti Conosciute

La valutazione della sicurezza dovrebbe includere test sistematici dei filtri di contenuto contro varianti di codifica conosciute. Se un filtro è destinato a bloccare “ignore previous instructions”, testare se blocca anche omoglifi Unicode, varianti a larghezza zero, codifica Base64 e altre forme di offuscamento.

Visualizzazione e Audit degli Input

Registrare una rappresentazione leggibile dall’uomo degli input normalizzati insieme all’input grezzo. Le discrepanze tra i due possono far emergere attacchi di codifica durante la revisione degli incidenti.

Termini Correlati

Domande frequenti

Cos'è il token smuggling?

Il token smuggling è una tecnica di attacco che sfrutta le differenze tra il testo leggibile dall'uomo e le rappresentazioni del tokenizer LLM. Gli attaccanti codificano istruzioni malevole utilizzando variazioni di caratteri, trucchi Unicode o formattazioni insolite in modo che i filtri di contenuto non le rilevino, ma il tokenizer dell'LLM le elabori comunque come previsto.

Perché il token smuggling funziona?

I filtri di contenuto operano spesso su testo leggibile dall'uomo — controllando stringhe, pattern o parole chiave specifiche. I tokenizer LLM, tuttavia, elaborano il testo a un livello inferiore e possono mappare caratteri visivamente diversi agli stessi token o a token simili. Questo divario consente agli attaccanti di creare testi che vengono letti in un modo da un filtro e vengono elaborati diversamente dal tokenizer.

Come ci si può difendere dal token smuggling?

Le difese includono: normalizzare il testo di input prima del filtraggio (normalizzazione Unicode, sostituzione di omoglifi), utilizzare filtri di contenuto basati su LLM che operano su rappresentazioni a livello di token piuttosto che su testo grezzo, testare i filtri contro varianti di codifica conosciute e condurre valutazioni di sicurezza che includano scenari di attacco basati sulla codifica.

Testa il Tuo Chatbot Contro gli Attacchi Basati sulla Codifica

Il token smuggling e gli attacchi di codifica aggirano i filtri superficiali. Testiamo queste tecniche in ogni valutazione di sicurezza dei chatbot.

Scopri di più

Token
Token

Token

Un token, nel contesto dei grandi modelli linguistici (LLM), è una sequenza di caratteri che il modello converte in rappresentazioni numeriche per un'elaborazio...

3 min di lettura
Token LLM +3
Sicurezza LLM
Sicurezza LLM

Sicurezza LLM

La sicurezza LLM comprende le pratiche, le tecniche e i controlli utilizzati per proteggere i deployment di large language model da una classe unica di minacce ...

4 min di lettura
LLM Security AI Security +3