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

Token smuggling wykorzystuje lukę między tym, jak ludzie odczytują tekst, a tym, jak tokenizery LLM go przetwarzają. Atakujący używają wariantów Unicode, znaków o zerowej szerokości, homoglifów lub nietypowych kodowań, aby ukryć złośliwe instrukcje przed filtrami treści, pozostając jednocześnie czytelnymi dla tokenizera.
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.
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:
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.
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: “ignore” 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.
Konwersja tekstu na alternatywne kodowania przed przesłaniem:
Skuteczność zależy od tego, czy LLM został wytrenowany do dekodowania tych reprezentacji, co wiele modeli ogólnego przeznaczenia posiada.
Proste, ale czasami skuteczne warianty:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Token smuggling i ataki kodowania omijają filtry powierzchniowe. Testujemy te techniki w każdej ocenie bezpieczeństwa chatbota.

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

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

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