Token Smuggling

Token smuggling to klasa ataków, która celuje w lukę między warstwami przetwarzania tekstu w systemach AI. Filtry moderacji treści, walidacja danych wejściowych i kontrole bezpieczeństwa zazwyczaj działają na tekście czytelnym dla człowieka. Tokenizery LLM natomiast działają na niższym poziomie — konwertując znaki na numeryczne identyfikatory tokenów. Wykorzystując różnice między tymi warstwami, atakujący mogą tworzyć dane wejściowe, które przechodzą przez filtry na poziomie tekstu, ale dostarczają złośliwe instrukcje do LLM.

Jak działa tokenizacja LLM

Zanim LLM przetworzy tekst, tokenizer konwertuje ciąg wejściowy na sekwencję całkowitych identyfikatorów tokenów. Te identyfikatory mapują się na słownictwo modelu — powszechnie kodowane przy użyciu algorytmów takich jak Byte Pair Encoding (BPE) lub WordPiece.

Kluczowe właściwości tokenizacji, które wykorzystują atakujący:

  • Wiele znaków mapuje się na podobne reprezentacje tokenów. Unicode zawiera wiele wizualnie podobnych znaków (homoglifów), które tokenizują się identycznie lub niemal identycznie.
  • Tokenizacja nie jest czysto znakowa. Niektóre tokenizery dzielą słowa na jednostki podsłowne na podstawie wzorców częstotliwości, tworząc możliwości manipulacji granicami.
  • Znaki specjalne mogą być zachowane lub pominięte. Znaki o zerowej szerokości, łączące znaki diakrytyczne i znaki kontrolne mogą być niewidoczne dla filtrów opartych na ciągach znaków, ale specyficznie obsługiwane przez tokenizery.

Techniki token smuggling

Podstawianie homoglifów Unicode

Unicode zawiera tysiące znaków, które wizualnie przypominają popularne znaki ASCII. Filtr szukający słowa “harmful” może nie rozpoznać “hármful” (z łączącym akcentem) lub “harⅿful” (ze znakiem ułamka Unicode).

Przykład: Słowo “ignore” może być zakodowane jako “іgnore” (używając cyrylickiego “і” zamiast łacińskiego “i”) — wyglądając identycznie dla większości ludzkich czytelników i niektórych filtrów, ale potencjalnie przetwarzane inaczej na poziomie tokenizera.

Wstawianie znaków o zerowej szerokości

Znaki o zerowej szerokości (takie jak U+200B ZERO WIDTH SPACE lub U+200C ZERO WIDTH NON-JOINER) są niewidoczne w renderowanym tekście. Wstawienie ich między znakami w kluczowych słowach przerywa filtry dopasowywania ciągów bez wpływu na wygląd wizualny lub, w wielu przypadkach, na reprezentację tokenizowaną.

Przykład: “i​g​n​o​r​e” ze spacjami o zerowej szerokości między każdym znakiem wygląda jak “ignore” po wyrenderowaniu, ale przerywa proste dopasowywanie wzorców ciągów.

Zaciemnianie kodowania

Konwersja tekstu na alternatywne kodowania przed przesłaniem:

  • Kodowanie Base64: “aWdub3JlIHByZXZpb3VzIGluc3RydWN0aW9ucw==” (jeśli model to dekoduje)
  • Leet speak: “1gn0r3 pr3v10u5 1n5truc710n5” podstawianie cyfr za litery
  • Warianty ROT13 lub szyfru Cezara: Przesuwanie znaków, aby uniknąć wykrywania słów kluczowych
  • Kodowanie heksadecymalne: Reprezentowanie znaków jako sekwencji heksadecymalnych, które niektóre modele interpretują

Skuteczność zależy od tego, czy LLM został wytrenowany do dekodowania tych reprezentacji, co wiele modeli ogólnego przeznaczenia posiada.

Warianty wielkości liter i formatowania

Proste, ale czasami skuteczne warianty:

  • WIELKIE LITERY: “IGNORE PREVIOUS INSTRUCTIONS”
  • Mieszana wielkość liter: “IgNoRe PrEvIoUs InStRuCtIoNs”
  • Litery z odstępami: “I G N O R E P R E V I O U S”
  • Odwrócone: “snoitcurtsni suoiverp erongi” (jeśli model może przetwarzać odwrócony tekst)

Wstrzykiwanie ograniczników

Niektóre tokenizery traktują specjalnie znaki ograniczników. Wprowadzając znaki, które tokenizer interpretuje jako granice segmentów, atakujący mogą manipulować tym, jak model segmentuje dane wejściowe na znaczące jednostki.

Logo

Gotowy na rozwój swojej firmy?

Rozpocznij bezpłatny okres próbny już dziś i zobacz rezultaty w ciągu kilku dni.

Przypadki użycia ataków

Obejście jailbreak: Kodowanie promptów jailbreak przy użyciu technik, które przechodzą przez warstwę filtra bezpieczeństwa, ale są dekodowane przez LLM, umożliwiając obejście zabezpieczeń.

Unikanie filtrów treści: Osadzanie mowy nienawiści, żądań nielegalnych treści lub instrukcji naruszających zasady w zakodowanej formie.

Zaciemnianie wstrzykiwania promptów: Używanie kodowania do ukrywania wstrzykniętych instrukcji przed prostymi filtrami dopasowywania wzorców, jednocześnie zapewniając, że LLM je prawidłowo przetwarza.

Fingerprinting filtrów: Systematyczne testowanie różnych wariantów kodowania w celu identyfikacji, które z nich filtry systemu docelowego wykrywają, a których nie — mapowanie pokrycia filtrów dla bardziej ukierunkowanych ataków.

Strategie obrony

Normalizacja Unicode

Zastosuj normalizację Unicode (NFC, NFD, NFKC lub NFKD) do wszystkich danych wejściowych przed filtrowaniem. To konwertuje warianty Unicode na formy kanoniczne, eliminując wiele ataków homoglifów i łączących znaków.

Wykrywanie i zastępowanie homoglifów

Zaimplementuj jawne mapowanie homoglifów, aby normalizować wizualnie podobne znaki do ich odpowiedników ASCII przed filtrowaniem. Biblioteki do tego celu istnieją w większości języków programowania.

Filtrowanie treści oparte na LLM

Zamiast (lub oprócz) filtrów opartych na ciągach znaków, użyj filtra opartego na LLM, który działa na reprezentacjach tokenów. Ponieważ te filtry przetwarzają tekst na tym samym poziomie co model docelowy, sztuczki kodowania są mniej skuteczne — filtr widzi tę samą reprezentację co model.

Testowanie filtrów pod kątem znanych wariantów

Ocena bezpieczeństwa powinna obejmować systematyczne testowanie filtrów treści pod kątem znanych wariantów kodowania. Jeśli filtr ma blokować “ignore previous instructions”, przetestuj, czy blokuje również homoglify Unicode, warianty o zerowej szerokości, kodowanie Base64 i inne formy zaciemniania.

Wizualizacja i audyt danych wejściowych

Loguj czytelną dla człowieka renderowanie znormalizowanych danych wejściowych wraz z surowymi danymi wejściowymi. Rozbieżności między nimi mogą ujawnić ataki kodowania podczas przeglądu incydentów.

Powiązane terminy

Najczęściej zadawane pytania

Czym jest token smuggling?

Token smuggling to technika ataku, która wykorzystuje różnice między tekstem czytelnym dla człowieka a reprezentacjami tokenizera LLM. Atakujący kodują złośliwe instrukcje przy użyciu wariantów znaków, sztuczek Unicode lub nietypowego formatowania, tak aby filtry treści ich nie wykryły, ale tokenizer LLM nadal je przetwarzał zgodnie z zamierzeniem.

Dlaczego token smuggling działa?

Filtry treści często działają na tekście czytelnym dla człowieka — sprawdzając konkretne ciągi znaków, wzorce lub słowa kluczowe. Tokenizery LLM jednak przetwarzają tekst na niższym poziomie i mogą mapować wizualnie różne znaki na te same lub podobne tokeny. Ta luka pozwala atakującym tworzyć tekst, który jest odczytywany w jeden sposób przez filtr, a przetwarzany inaczej przez tokenizer.

Jak można się bronić przed token smuggling?

Obrony obejmują: normalizację tekstu wejściowego przed filtrowaniem (normalizacja Unicode, zastępowanie homoglifów), używanie filtrów treści opartych na LLM, które działają na reprezentacjach na poziomie tokenów, a nie na surowym tekście, testowanie filtrów pod kątem znanych wariantów kodowania oraz przeprowadzanie ocen bezpieczeństwa, które obejmują scenariusze ataków opartych na kodowaniu.

Przetestuj swojego chatbota pod kątem ataków opartych na kodowaniu

Token smuggling i ataki kodowania omijają filtry powierzchniowe. Testujemy te techniki w każdej ocenie bezpieczeństwa chatbota.

Dowiedz się więcej

Token
Token

Token

Token w kontekście dużych modeli językowych (LLM) to sekwencja znaków, którą model przekształca w reprezentacje numeryczne dla efektywnego przetwarzania. Tokeny...

3 min czytania
Token LLM +3
Bezpieczeństwo LLM
Bezpieczeństwo LLM

Bezpieczeństwo LLM

Bezpieczeństwo LLM obejmuje praktyki, techniki i kontrole służące do ochrony wdrożeń dużych modeli językowych przed unikalną klasą zagrożeń specyficznych dla AI...

4 min czytania
LLM Security AI Security +3
Jak znaleźć najlepszy LLM do pisania treści: test i ranking
Jak znaleźć najlepszy LLM do pisania treści: test i ranking

Jak znaleźć najlepszy LLM do pisania treści: test i ranking

Przetestowaliśmy i oceniliśmy możliwości pisania 5 popularnych modeli dostępnych w FlowHunt, aby znaleźć najlepszy LLM do tworzenia treści.

10 min czytania
AI Content Writing +6