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

Token smuggling využívá rozdíl mezi tím, jak lidé čtou text a jak jej zpracovávají tokenizéry LLM. Útočníci používají Unicode variace, znaky s nulovou šířkou, homoglyfy nebo neobvyklé kódování k ukrytí škodlivých instrukcí před obsahovými filtry, zatímco zůstávají čitelné pro tokenizér.
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.
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í:
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.
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: “ignore” s mezerami s nulovou šířkou mezi každým znakem se vykreslí jako “ignore”, ale rozbije jednoduché porovnávání vzorů řetězců.
Převod textu na alternativní kódování před odesláním:
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á.
Jednoduché, ale někdy efektivní variace:
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.
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.
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ů.
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ů.
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.
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.
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.
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.
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.
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í.
Token smuggling a útoky pomocí kódování obcházejí povrchové filtry. Tyto techniky testujeme při každém hodnocení bezpečnosti chatbota.

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

Otestovali jsme a seřadili schopnosti psaní 5 populárních modelů dostupných ve FlowHunt, abychom našli nejlepší LLM pro tvorbu obsahu.

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