Token Smuggling

Token smuggling je třída útoků, která cílí na mezeru mezi vrstvami zpracování textu v AI systémech. Filtry moderování obsahu, validace vstupů a bezpečnostní kontroly typicky pracují s textem čitelným pro člověka. Tokenizéry LLM naproti tomu pracují na nižší úrovni — převádějí znaky na číselné ID tokenů. Využitím rozdílů mezi těmito vrstvami mohou útočníci vytvořit vstupy, které projdou filtry na úrovni textu, ale doručí škodlivé instrukce do LLM.

Jak funguje tokenizace LLM

Než LLM zpracuje text, tokenizér převede vstupní řetězec na sekvenci celočíselných ID tokenů. Tato ID mapují na slovník modelu — běžně kódovaný pomocí algoritmů jako Byte Pair Encoding (BPE) nebo WordPiece.

Klíčové vlastnosti tokenizace, které útočníci využívají:

  • Mnoho znaků se mapuje na podobné reprezentace tokenů. Unicode obsahuje mnoho vizuálně podobných znaků (homoglyfy), které se tokenizují identicky nebo téměř identicky.
  • Tokenizace není čistě založena na znacích. Některé tokenizéry rozdělují slova na podjednotky slov na základě vzorů frekvence, což vytváří příležitosti pro manipulaci hranic.
  • Speciální znaky mohou být zachovány nebo vynechány. Znaky s nulovou šířkou, kombinující diakritika a řídicí znaky mohou být neviditelné pro filtry založené na řetězcích, ale tokenizéry s nimi mohou zacházet specificky.

Techniky token smuggling

Substituce Unicode homoglyfů

Unicode obsahuje tisíce znaků, které vizuálně připomínají běžné ASCII znaky. Filtr hledající slovo “harmful” nemusí rozpoznat “hármful” (s kombinujícím přízvukem) nebo “harⅿful” (se znakem Unicode zlomku).

Příklad: Slovo “ignore” může být zakódováno jako “іgnore” (s použitím cyrilského “і” místo latinského “i”) — vypadá identicky pro většinu lidských čtenářů a některé filtry, ale potenciálně se zpracovává jinak na úrovni tokenizéru.

Vkládání znaků s nulovou šířkou

Znaky s nulovou šířkou (jako U+200B ZERO WIDTH SPACE nebo U+200C ZERO WIDTH NON-JOINER) jsou v renderovaném textu neviditelné. Jejich vložení mezi znaky v klíčových slovech rozbije filtry porovnávající řetězce, aniž by ovlivnilo vizuální vzhled nebo v mnoha případech tokenizovanou reprezentaci.

Příklad: “i​g​n​o​r​e” s mezerami s nulovou šířkou mezi každým znakem se vykreslí jako “ignore”, ale rozbije jednoduché porovnávání vzorů řetězců.

Obfuskace kódování

Převod textu na alternativní kódování před odesláním:

  • Base64 kódování: “aWdub3JlIHByZXZpb3VzIGluc3RydWN0aW9ucw==” (pokud to model dekóduje)
  • Leet speak: “1gn0r3 pr3v10u5 1n5truc710n5” nahrazení písmen číslicemi
  • ROT13 nebo varianty Caesarovy šifry: Posun znaků k vyhnutí se detekci klíčových slov
  • Hex kódování: Reprezentace znaků jako hex sekvencí, které některé modely interpretují

Efektivita závisí na tom, zda byl LLM trénován k dekódování těchto reprezentací, což mnoho modelů pro obecné účely má.

Variace velikosti a formátu

Jednoduché, ale někdy efektivní variace:

  • VELKÁPÍSMENA: “IGNORE PREVIOUS INSTRUCTIONS”
  • Smíšená velikost: “IgNoRe PrEvIoUs InStRuCtIoNs”
  • Písmena s mezerami: “I G N O R E P R E V I O U S”
  • Obrácené: “snoitcurtsni suoiverp erongi” (pokud model dokáže zpracovat obrácený text)

Injekce oddělovačů

Některé tokenizéry dávají speciální zacházení oddělovacím znakům. Zavedením znaků, které tokenizér interpretuje jako hranice segmentů, mohou útočníci manipulovat způsob, jakým model segmentuje vstup na smysluplné jednotky.

Logo

Připraveni rozšířit své podnikání?

Začněte svou bezplatnou zkušební verzi ještě dnes a viďte výsledky během několika dní.

Případy použití útoku

Obejití jailbreak: Kódování jailbreak promptů pomocí technik, které projdou vrstvou bezpečnostního filtru, ale jsou dekódovány LLM, což umožňuje obejití bezpečnostních ochranných opatření.

Vyhnutí se obsahovému filtru: Vložení nenávistných projevů, požadavků na nelegální obsah nebo instrukcí porušujících zásady v kódované formě.

Obfuskace prompt injection: Použití kódování ke skrytí injektovaných instrukcí před jednoduchými filtry porovnávajícími vzory, zatímco se zajistí, že je LLM správně zpracuje.

Fingerprinting filtru: Systematické testování různých variací kódování k identifikaci, které z nich filtry cílového systému detekují a které ne — mapování pokrytí filtru pro cílenější útoky.

Obranné strategie

Unicode normalizace

Aplikujte Unicode normalizaci (NFC, NFD, NFKC nebo NFKD) na všechny vstupy před filtrováním. To převádí Unicode varianty na kanonické formy, čímž eliminuje mnoho útoků pomocí homoglyfů a kombinujících znaků.

Detekce a nahrazení homoglyfů

Implementujte explicitní mapování homoglyfů k normalizaci vizuálně podobných znaků na jejich ASCII ekvivalenty před filtrováním. Pro tento účel existují knihovny ve většině programovacích jazyků.

Filtrování obsahu založené na LLM

Místo (nebo kromě) filtrů založených na řetězcích použijte filtr založený na LLM, který pracuje s reprezentacemi tokenů. Protože tyto filtry zpracovávají text na stejné úrovni jako cílový model, triky s kódováním jsou méně efektivní — filtr vidí stejnou reprezentaci jako model.

Testování filtrů proti známým variantám

Bezpečnostní hodnocení by mělo zahrnovat systematické testování obsahových filtrů proti známým variantám kódování. Pokud má filtr blokovat “ignore previous instructions”, otestujte, zda také blokuje Unicode homoglyfy, varianty s nulovou šířkou, Base64 kódování a další formy obfuskace.

Vizualizace a audit vstupů

Zaznamenávejte lidsky čitelné vykreslení normalizovaných vstupů spolu se surovým vstupem. Nesrovnalosti mezi nimi mohou odhalit útoky pomocí kódování během přezkoumání incidentu.

Související termíny

Často kladené otázky

Co je token smuggling?

Token smuggling je útočná technika, která využívá rozdílů mezi textem čitelným pro člověka a reprezentacemi tokenizéru LLM. Útočníci kódují škodlivé instrukce pomocí variací znaků, Unicode triků nebo neobvyklého formátování tak, aby je obsahové filtry neodhalily, ale tokenizér LLM je stále zpracoval podle záměru.

Proč token smuggling funguje?

Obsahové filtry často pracují s textem čitelným pro člověka — kontrolují specifické řetězce, vzory nebo klíčová slova. Tokenizéry LLM však zpracovávají text na nižší úrovni a mohou mapovat vizuálně odlišné znaky na stejné nebo podobné tokeny. Tento rozdíl umožňuje útočníkům vytvořit text, který se pro filtr jeví jedním způsobem a tokenizér jej zpracuje jinak.

Jak se lze bránit proti token smuggling?

Obrana zahrnuje: normalizaci vstupního textu před filtrováním (Unicode normalizace, nahrazení homoglyfů), použití obsahových filtrů založených na LLM, které pracují s reprezentacemi na úrovni tokenů místo surového textu, testování filtrů proti známým variantám kódování a provádění bezpečnostních hodnocení, která zahrnují scénáře útoků založených na kódování.

Otestujte svého chatbota proti útokům založeným na kódování

Token smuggling a útoky pomocí kódování obcházejí povrchové filtry. Tyto techniky testujeme při každém hodnocení bezpečnosti chatbota.

Zjistit více

Token
Token

Token

Token v kontextu velkých jazykových modelů (LLM) je posloupnost znaků, kterou model převádí na číselné reprezentace pro efektivní zpracování. Tokeny jsou základ...

3 min čtení
Token LLM +3
Bezpečnost LLM
Bezpečnost LLM

Bezpečnost LLM

Bezpečnost LLM zahrnuje praktiky, techniky a kontrolní mechanismy používané k ochraně nasazení velkých jazykových modelů před jedinečnou třídou hrozeb specifick...

4 min čtení
LLM Security AI Security +3