Token Smuggling

Token smuggling é uma classe de ataque que visa a lacuna entre camadas de processamento de texto em sistemas de IA. Filtros de moderação de conteúdo, validação de entrada e verificações de segurança normalmente operam em texto legível por humanos. Os tokenizadores de LLM, em contraste, operam em um nível mais baixo — convertendo caracteres em IDs de token numéricos. Ao explorar diferenças entre essas camadas, os atacantes podem criar entradas que passam pelos filtros de nível de texto, mas entregam instruções maliciosas ao LLM.

Como Funciona a Tokenização de LLM

Antes de um LLM processar texto, um tokenizador converte a string de entrada em uma sequência de IDs de token inteiros. Esses IDs mapeiam para o vocabulário do modelo — comumente codificados usando algoritmos como Byte Pair Encoding (BPE) ou WordPiece.

Propriedades-chave da tokenização que os atacantes exploram:

  • Muitos caracteres mapeiam para representações de token similares. O Unicode contém muitos caracteres visualmente similares (homóglifos) que tokenizam de forma idêntica ou quase idêntica.
  • A tokenização não é puramente baseada em caracteres. Alguns tokenizadores dividem palavras em unidades de subpalavras com base em padrões de frequência, criando oportunidades para manipulação de limites.
  • Caracteres especiais podem ser preservados ou descartados. Caracteres de largura zero, diacríticos combinados e caracteres de controle podem ser invisíveis para filtros baseados em string, mas tratados especificamente pelos tokenizadores.

Técnicas de Token Smuggling

Substituição de Homóglifos Unicode

O Unicode contém milhares de caracteres que se assemelham visualmente a caracteres ASCII comuns. Um filtro procurando pela palavra “harmful” pode não reconhecer “hármful” (com acento combinado) ou “harⅿful” (com um caractere de fração Unicode).

Exemplo: A palavra “ignore” pode ser codificada como “іgnore” (usando “і” cirílico em vez de “i” latino) — aparecendo idêntica para a maioria dos leitores humanos e alguns filtros, mas potencialmente processando de forma diferente no nível do tokenizador.

Inserção de Caracteres de Largura Zero

Caracteres de largura zero (como U+200B ZERO WIDTH SPACE ou U+200C ZERO WIDTH NON-JOINER) são invisíveis em texto renderizado. Inseri-los entre caracteres em palavras-chave quebra filtros de correspondência de string sem afetar a aparência visual ou, em muitos casos, a representação tokenizada.

Exemplo: “i​g​n​o​r​e” com espaços de largura zero entre cada caractere aparece como “ignore” quando renderizado, mas quebra a correspondência simples de padrões de string.

Ofuscação de Codificação

Converter texto para codificações alternativas antes do envio:

  • Codificação Base64: “aWdub3JlIHByZXZpb3VzIGluc3RydWN0aW9ucw==” (se o modelo decodificar)
  • Leet speak: “1gn0r3 pr3v10u5 1n5truc710n5” substituindo dígitos por letras
  • Variantes ROT13 ou cifra de César: Deslocando caracteres para evitar detecção de palavras-chave
  • Codificação hexadecimal: Representando caracteres como sequências hex que alguns modelos interpretam

A eficácia depende de se o LLM foi treinado para decodificar essas representações, o que muitos modelos de propósito geral têm.

Variação de Maiúsculas e Formato

Variações simples, mas às vezes eficazes:

  • TODAS MAIÚSCULAS: “IGNORE PREVIOUS INSTRUCTIONS”
  • Maiúsculas mistas: “IgNoRe PrEvIoUs InStRuCtIoNs”
  • Letras espaçadas: “I G N O R E P R E V I O U S”
  • Invertido: “snoitcurtsni suoiverp erongi” (se o modelo pode processar texto invertido)

Injeção de Delimitadores

Alguns tokenizadores dão tratamento especial a caracteres delimitadores. Ao introduzir caracteres que o tokenizador interpreta como limites de segmento, os atacantes podem manipular como o modelo segmenta a entrada em unidades significativas.

Logo

Pronto para expandir seu negócio?

Comece seu teste gratuito hoje e veja resultados em dias.

Casos de Uso de Ataque

Bypass de jailbreak: Codificar prompts de jailbreak usando técnicas que passam pela camada de filtro de segurança, mas são decodificadas pelo LLM, permitindo o bypass de proteções de segurança.

Evasão de filtro de conteúdo: Incorporar discurso de ódio, solicitações de conteúdo ilegal ou instruções que violam políticas em forma codificada.

Ofuscação de injeção de prompt: Usar codificação para ocultar instruções injetadas de filtros simples de correspondência de padrões, garantindo que o LLM as processe corretamente.

Fingerprinting de filtro: Testar sistematicamente diferentes variações de codificação para identificar quais o sistema de filtros do alvo detecta e quais não — mapeando a cobertura do filtro para ataques mais direcionados.

Estratégias de Defesa

Normalização Unicode

Aplicar normalização Unicode (NFC, NFD, NFKC ou NFKD) a todas as entradas antes da filtragem. Isso converte variantes Unicode em formas canônicas, eliminando muitos ataques de homóglifos e caracteres combinados.

Detecção e Substituição de Homóglifos

Implementar mapeamento explícito de homóglifos para normalizar caracteres visualmente similares aos seus equivalentes ASCII antes da filtragem. Bibliotecas existem para esse propósito na maioria das linguagens de programação.

Filtragem de Conteúdo Baseada em LLM

Em vez de (ou além de) filtros baseados em string, use um filtro baseado em LLM que opere em representações de token. Como esses filtros processam texto no mesmo nível que o modelo alvo, truques de codificação são menos eficazes — o filtro vê a mesma representação que o modelo.

Testar Filtros Contra Variantes Conhecidas

A avaliação de segurança deve incluir testes sistemáticos de filtros de conteúdo contra variantes de codificação conhecidas. Se um filtro deve bloquear “ignore previous instructions”, teste se ele também bloqueia homóglifos Unicode, variantes de largura zero, codificação Base64 e outras formas de ofuscação.

Visualização e Auditoria de Entrada

Registrar uma renderização legível por humanos de entradas normalizadas junto com a entrada bruta. Discrepâncias entre as duas podem revelar ataques de codificação durante a revisão de incidentes.

Termos Relacionados

Perguntas frequentes

O que é token smuggling?

Token smuggling é uma técnica de ataque que explora diferenças entre texto legível por humanos e representações de tokenizador de LLM. Os atacantes codificam instruções maliciosas usando variações de caracteres, truques Unicode ou formatação incomum para que os filtros de conteúdo não as detectem, mas o tokenizador do LLM ainda as processe conforme pretendido.

Por que token smuggling funciona?

Os filtros de conteúdo geralmente operam em texto legível por humanos — verificando strings, padrões ou palavras-chave específicas. Os tokenizadores de LLM, no entanto, processam texto em um nível mais baixo e podem mapear caracteres visualmente diferentes para os mesmos tokens ou tokens similares. Essa lacuna permite que os atacantes criem texto que é lido de uma maneira por um filtro e processado de forma diferente pelo tokenizador.

Como se defender contra token smuggling?

As defesas incluem: normalizar o texto de entrada antes da filtragem (normalização Unicode, substituição de homóglifos), usar filtros de conteúdo baseados em LLM que operam em representações de nível de token em vez de texto bruto, testar filtros contra variantes de codificação conhecidas e realizar avaliações de segurança que incluam cenários de ataque baseados em codificação.

Teste Seu Chatbot Contra Ataques Baseados em Codificação

Token smuggling e ataques de codificação contornam filtros superficiais. Testamos essas técnicas em cada avaliação de segurança de chatbot.

Saiba mais

Token
Token

Token

Um token, no contexto de grandes modelos de linguagem (LLMs), é uma sequência de caracteres que o modelo converte em representações numéricas para processamento...

3 min de leitura
Token LLM +3
Segurança de LLM
Segurança de LLM

Segurança de LLM

A segurança de LLM abrange as práticas, técnicas e controles usados para proteger implementações de modelos de linguagem grandes contra uma classe única de amea...

5 min de leitura
LLM Security AI Security +3
Detecção de Idioma
Detecção de Idioma

Detecção de Idioma

A detecção de idioma em grandes modelos de linguagem (LLMs) é o processo pelo qual esses modelos identificam o idioma do texto de entrada, permitindo o processa...

5 min de leitura
Language Detection LLMs +4