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

Il token smuggling sfrutta il divario tra come gli esseri umani leggono il testo e come i tokenizer LLM lo elaborano. Gli attaccanti utilizzano variazioni Unicode, caratteri a larghezza zero, omoglifi o codifiche insolite per nascondere istruzioni malevole dai filtri di contenuto pur rimanendo leggibili dal tokenizer.
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.
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:
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.
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: “ignore” con spazi a larghezza zero tra ogni carattere appare come “ignore” quando renderizzato ma interrompe la semplice corrispondenza di pattern di stringhe.
Conversione del testo in codifiche alternative prima dell’invio:
L’efficacia dipende dal fatto che l’LLM sia stato addestrato a decodificare queste rappresentazioni, cosa che molti modelli general-purpose fanno.
Variazioni semplici ma a volte efficaci:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Il token smuggling e gli attacchi di codifica aggirano i filtri superficiali. Testiamo queste tecniche in ogni valutazione di sicurezza dei chatbot.

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

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 ...

Abbiamo testato e classificato le capacità di scrittura di 5 modelli popolari disponibili su FlowHunt per trovare il miglior LLM per la creazione di contenuti.