Token Smuggling

Token smuggling je trieda útokov, ktorá sa zameriava na rozdiel medzi vrstvami spracovania textu v AI systémoch. Filtre moderovania obsahu, validácia vstupov a bezpečnostné kontroly typicky pracujú s textom čitateľným pre ľudí. LLM tokenizéry naopak pracujú na nižšej úrovni — konvertujú znaky na číselné ID tokenov. Zneužitím rozdielov medzi týmito vrstvami môžu útočníci vytvoriť vstupy, ktoré prejdú filtrami na úrovni textu, ale doručia škodlivé instrukcie LLM.

Ako funguje LLM tokenizácia

Predtým, než LLM spracuje text, tokenizér konvertuje vstupný reťazec na sekvenciu celočíselných ID tokenov. Tieto ID sa mapujú na slovník modelu — bežne kódované pomocou algoritmov ako Byte Pair Encoding (BPE) alebo WordPiece.

Klúčové vlastnosti tokenizácie, ktoré útočníci zneužívajú:

  • Mnoho znakov sa mapuje na podobné tokenové reprezentácie. Unicode obsahuje mnoho vizuálne podobných znakov (homoglyfy), ktoré sa tokenizujú identicky alebo takmer identicky.
  • Tokenizácia nie je čisto založená na znakoch. Niektoré tokenizéry rozdeľujú slová na podslové jednotky na základe frekvenčných vzorov, čo vytvára príležitosti na manipuláciu hraníc.
  • Špeciálne znaky môžu byť zachované alebo odstránené. Znaky s nulovou šírkou, kombinované diakritické znamienka a riadiace znaky môžu byť neviditeľné pre filtre založené na reťazcoch, ale tokenizéry ich spracúvajú špecificky.

Techniky token smuggling

Substitúcia Unicode homoglyfov

Unicode obsahuje tisíce znakov, ktoré vizuálne pripomínajú bežné ASCII znaky. Filter hľadajúci slovo “harmful” nemusí rozpoznať “hármful” (s kombinovaným prízvukom) alebo “harⅿful” (s Unicode znakom zlomku).

Príklad: Slovo “ignore” môže byť kódované ako “іgnore” (použitím cyrilického “і” namiesto latinského “i”) — vyzerá identicky pre väčšinu ľudských čitateľov a niektoré filtre, ale potenciálne sa spracúva inak na úrovni tokenizéra.

Vloženie znakov s nulovou šírkou

Znaky s nulovou šírkou (ako U+200B ZERO WIDTH SPACE alebo U+200C ZERO WIDTH NON-JOINER) sú neviditeľné v renderovanom texte. Ich vloženie medzi znaky v kľúčových slovách prelomí filtre zhody reťazcov bez ovplyvnenia vizuálneho vzhľadu alebo v mnohých prípadoch tokenizovanej reprezentácie.

Príklad: “i​g​n​o​r​e” s medzerami nulovej šírky medzi každým znakom sa zobrazí ako “ignore”, ale prelomí jednoduché porovnávanie vzoru reťazca.

Obfuskácia kódovania

Konverzia textu na alternatívne kódovania pred odoslaním:

  • Base64 kódovanie: “aWdub3JlIHByZXZpb3VzIGluc3RydWN0aW9ucw==” (ak model dekóduje)
  • Leet speak: “1gn0r3 pr3v10u5 1n5truc710n5” nahradenie písmen číslicami
  • ROT13 alebo varianty Caesarovej šifry: Posun znakov na vyhnutie sa detekcii kľúčových slov
  • Hex kódovanie: Reprezentácia znakov ako hex sekvencií, ktoré niektoré modely interpretujú

Efektívnosť závisí od toho, či bol LLM trénovaný na dekódovanie týchto reprezentácií, čo mnohé všeobecné modely majú.

Variácia veľkosti písmen a formátu

Jednoduché, ale niekedy efektívne variácie:

  • VEĽKÉ PÍSMENÁ: “IGNORE PREVIOUS INSTRUCTIONS”
  • Zmiešaná veľkosť: “IgNoRe PrEvIoUs InStRuCtIoNs”
  • Rozdelené písmená: “I G N O R E P R E V I O U S”
  • Obrátené: “snoitcurtsni suoiverp erongi” (ak model dokáže spracovať obrátený text)

Injekcia oddeľovačov

Niektoré tokenizéry venujú špeciálnu pozornosť oddeľovacím znakom. Zavedením znakov, ktoré tokenizér interpretuje ako hranice segmentov, môžu útočníci manipulovať spôsob, akým model segmentuje vstup na zmysluplné jednotky.

Logo

Pripravení rozšíriť svoje podnikanie?

Začnite svoju 30-dňovú skúšobnú verziu ešte dnes a vidzte výsledky behom pár dní.

Prípady použitia útoku

Obídenie jailbreak: Kódovanie jailbreak promptov pomocou techník, ktoré prejdú vrstvou bezpečnostného filtra, ale sú dekódované LLM, čo umožňuje obídenie bezpečnostných zábran.

Obídenie obsahového filtra: Vloženie nenávistných prejavov, požiadaviek na nelegálny obsah alebo inštrukcií porušujúcich politiku v kódovanej forme.

Obfuskácia prompt injection: Použitie kódovania na skrytie injektovaných inštrukcií pred jednoduchými filtrami porovnávania vzorov, pričom sa zabezpečí, že ich LLM správne spracuje.

Fingerprintovanie filtra: Systematické testovanie rôznych variácií kódovania na identifikáciu, ktoré cieľový systém filtrov detekuje a ktoré nie — mapovanie pokrytia filtra pre cielenejšie útoky.

Obranné stratégie

Unicode normalizácia

Aplikujte Unicode normalizáciu (NFC, NFD, NFKC alebo NFKD) na všetky vstupy pred filtrovaním. Toto konvertuje Unicode varianty na kanonické formy, čím eliminuje mnoho útokov s homoglyfmi a kombinovanými znakmi.

Detekcia a nahradenie homoglyfov

Implementujte explicitné mapovanie homoglyfov na normalizáciu vizuálne podobných znakov na ich ASCII ekvivalenty pred filtrovaním. Knižnice na tento účel existujú vo väčšine programovacích jazykov.

LLM obsahové filtrovanie

Namiesto (alebo okrem) filtrov založených na reťazcoch použite LLM filter, ktorý pracuje na tokenových reprezentáciách. Pretože tieto filtre spracúvajú text na rovnakej úrovni ako cieľový model, kódovacie triky sú menej efektívne — filter vidí rovnakú reprezentáciu ako model.

Testovanie filtrov proti známym variantom

Bezpečnostné hodnotenie by malo zahŕňať systematické testovanie obsahových filtrov proti známym variantom kódovania. Ak má filter blokovať “ignore previous instructions”, otestujte, či blokuje aj Unicode homoglyfy, varianty s nulovou šírkou, Base64 kódovanie a iné formy obfuskácie.

Vizualizácia a audit vstupov

Zaznamenávajte ľudsky čitateľné renderovanie normalizovaných vstupov spolu so surovým vstupom. Nesúlad medzi oboma môže odhaliť útoky kódovania počas preskúmania incidentov.

Súvisiace pojmy

Najčastejšie kladené otázky

Čo je token smuggling?

Token smuggling je útočná technika, ktorá zneužíva rozdiely medzi textom čitateľným pre ľudí a reprezentáciami LLM tokenizéra. Útočníci kódujú škodlivé instrukcie pomocou variácií znakov, Unicode trikov alebo neobvyklého formátovania tak, aby ich obsahové filtre nezistili, ale LLM tokenizér ich stále spracoval podľa zámeru.

Prečo token smuggling funguje?

Obsahové filtre často pracujú s textom čitateľným pre ľudí — kontrolujú konkrétne reťazce, vzory alebo kľúčové slová. LLM tokenizéry však spracúvajú text na nižšej úrovni a môžu mapovať vizuálne odlišné znaky na rovnaké alebo podobné tokeny. Tento rozdiel umožňuje útočníkom vytvoriť text, ktorý sa pre filter číta jedným spôsobom a tokenizér ho spracuje inak.

Ako sa možno brániť proti token smuggling?

Obrana zahŕňa: normalizáciu vstupného textu pred filtrovaním (Unicode normalizácia, nahradenie homoglyfov), používanie LLM obsahových filtrov, ktoré pracujú na úrovni tokenových reprezentácií namiesto surového textu, testovanie filtrov proti známym variantom kódovania a vykonávanie bezpečnostných hodnotení, ktoré zahŕňajú scenáre útokov založených na kódovaní.

Otestujte svojho chatbota proti útokom založeným na kódovaní

Token smuggling a útoky založené na kódovaní obchádzajú povrchové filtre. Testujeme tieto techniky pri každom hodnotení bezpečnosti chatbota.

Zistiť viac

Token
Token

Token

Token v kontexte veľkých jazykových modelov (LLM) je sekvencia znakov, ktorú model prevádza na číselné reprezentácie pre efektívne spracovanie. Tokeny sú základ...

3 min čítania
Token LLM +3
Bezpečnosť LLM
Bezpečnosť LLM

Bezpečnosť LLM

Bezpečnosť LLM zahŕňa postupy, techniky a kontroly používané na ochranu nasadení veľkých jazykových modelov pred jedinečnou triedou hrozieb špecifických pre AI ...

4 min čítania
LLM Security AI Security +3
Detekcia jazyka
Detekcia jazyka

Detekcia jazyka

Detekcia jazyka vo veľkých jazykových modeloch (LLM) je proces, ktorým tieto modely identifikujú jazyk vstupného textu, čo umožňuje presné spracovanie pre viacj...

4 min čítania
Language Detection LLMs +4