トークン密輸

トークン密輸は、AIシステムにおけるテキスト処理レイヤー間のギャップを標的とする攻撃のクラスです。コンテンツモデレーションフィルター、入力検証、安全性チェックは通常、人間が読めるテキストに対して動作します。対照的に、LLMトークナイザーはより低いレベルで動作し、文字を数値トークンIDに変換します。これらのレイヤー間の違いを悪用することで、攻撃者はテキストレベルのフィルターを通過しながら、LLMに悪意のある命令を送り込む入力を作成できます。

LLMトークン化の仕組み

LLMがテキストを処理する前に、トークナイザーが入力文字列を整数トークンIDのシーケンスに変換します。これらのIDはモデルの語彙にマッピングされ、一般的にByte Pair Encoding(BPE)やWordPieceなどのアルゴリズムを使用してエンコードされます。

攻撃者が悪用するトークン化の主な特性:

  • 多くの文字が類似したトークン表現にマッピングされる。 Unicodeには、同一または非常に類似してトークン化される視覚的に類似した文字(ホモグリフ)が多数含まれています。
  • トークン化は純粋に文字ベースではない。 一部のトークナイザーは、頻度パターンに基づいて単語をサブワード単位に分割し、境界操作の機会を生み出します。
  • 特殊文字が保持または削除される場合がある。 ゼロ幅文字、結合分音記号、制御文字は、文字列ベースのフィルターには見えない場合がありますが、トークナイザーによって特別に処理される場合があります。

トークン密輸技術

Unicodeホモグリフ置換

Unicodeには、一般的なASCII文字に視覚的に似た数千の文字が含まれています。「harmful」という単語を探しているフィルターは、「hármful」(結合アクセント付き)や「harⅿful」(Unicode分数文字付き)を認識しない場合があります。

例: 「ignore」という単語は「іgnore」としてエンコードされる可能性があります(ラテン文字の「i」の代わりにキリル文字の「і」を使用)。ほとんどの人間の読者や一部のフィルターには同一に見えますが、トークナイザーレベルでは異なる処理がされる可能性があります。

ゼロ幅文字の挿入

ゼロ幅文字(U+200B ゼロ幅スペースやU+200C ゼロ幅非接合子など)は、レンダリングされたテキストでは不可視です。キーワードの文字間にこれらを挿入すると、視覚的な外観や、多くの場合トークン化された表現に影響を与えることなく、文字列マッチングフィルターを破ることができます。

例: 「i​g​n​o​r​e」のように各文字の間にゼロ幅スペースを入れると、レンダリング時には「ignore」として表示されますが、単純な文字列パターンマッチングを破ります。

エンコーディング難読化

送信前にテキストを代替エンコーディングに変換する:

  • Base64エンコーディング: “aWdub3JlIHByZXZpb3VzIGluc3RydWN0aW9ucw=="(モデルがデコードする場合)
  • リートスピーク: “1gn0r3 pr3v10u5 1n5truc710n5"のように数字を文字の代わりに使用
  • ROT13またはシーザー暗号の変種: キーワード検出を避けるために文字をシフト
  • 16進エンコーディング: 一部のモデルが解釈する16進シーケンスとして文字を表現

効果は、LLMがこれらの表現をデコードするようにトレーニングされているかどうかに依存し、多くの汎用モデルはそうなっています。

大文字小文字とフォーマットの変換

シンプルですが時には効果的な変換:

  • 全て大文字: “IGNORE PREVIOUS INSTRUCTIONS”
  • 大文字小文字混合: “IgNoRe PrEvIoUs InStRuCtIoNs”
  • 文字間スペース: “I G N O R E P R E V I O U S”
  • 逆順: “snoitcurtsni suoiverp erongi”(モデルが逆順テキストを処理できる場合)

デリミタインジェクション

一部のトークナイザーは、デリミタ文字に特別な処理を与えます。トークナイザーがセグメント境界として解釈する文字を導入することで、攻撃者はモデルが入力を意味のある単位にセグメント化する方法を操作できます。

Logo

ビジネスを成長させる準備はできましたか?

今日から無料トライアルを開始し、数日で結果を確認しましょう。

攻撃のユースケース

ジェイルブレイクバイパス: 安全フィルターレイヤーを通過するがLLMによってデコードされる技術を使用してジェイルブレイクプロンプトをエンコードし、安全ガードレールのバイパスを可能にします。

コンテンツフィルター回避: ヘイトスピーチ、違法コンテンツのリクエスト、またはポリシー違反の命令をエンコードされた形式で埋め込みます。

プロンプトインジェクションの難読化: エンコーディングを使用して、単純なパターンマッチングフィルターから注入された命令を隠しながら、LLMが正しく処理することを保証します。

フィルターフィンガープリンティング: 異なるエンコーディング変換を体系的にテストして、ターゲットシステムのフィルターが検出するものとしないものを特定し、より標的を絞った攻撃のためにフィルターカバレッジをマッピングします。

防御戦略

Unicode正規化

フィルタリング前にすべての入力にUnicode正規化(NFC、NFD、NFKC、またはNFKD)を適用します。これにより、Unicode変換が正規形式に変換され、多くのホモグリフおよび結合文字攻撃が排除されます。

ホモグリフ検出と置換

フィルタリング前に、視覚的に類似した文字をASCII相当物に正規化する明示的なホモグリフマッピングを実装します。ほとんどのプログラミング言語でこの目的のためのライブラリが存在します。

LLMベースのコンテンツフィルタリング

文字列ベースのフィルターの代わりに(または追加として)、トークン表現で動作するLLMベースのフィルターを使用します。これらのフィルターはターゲットモデルと同じレベルでテキストを処理するため、エンコーディングトリックの効果が低くなります。フィルターはモデルと同じ表現を見るためです。

既知の変換に対するフィルターのテスト

セキュリティ評価には、既知のエンコーディング変換に対するコンテンツフィルターの体系的なテストを含める必要があります。フィルターが「ignore previous instructions」をブロックすることを意図している場合、Unicodeホモグリフ、ゼロ幅変換、Base64エンコーディング、その他の難読化形式もブロックするかどうかをテストします。

入力の可視化と監査

生の入力と並行して、正規化された入力の人間が読める形式のレンダリングをログに記録します。両者の間の不一致は、インシデントレビュー中にエンコーディング攻撃を明らかにすることができます。

関連用語

よくある質問

トークン密輸とは何ですか?

トークン密輸は、人間が読めるテキストとLLMトークナイザーの表現との違いを悪用する攻撃技術です。攻撃者は、文字の変換、Unicodeトリック、または異常なフォーマットを使用して悪意のある命令をエンコードし、コンテンツフィルターが検出できないようにしながら、LLMのトークナイザーは意図通りに処理します。

なぜトークン密輸が機能するのですか?

コンテンツフィルターは多くの場合、人間が読めるテキストに対して動作し、特定の文字列、パターン、またはキーワードをチェックします。しかし、LLMトークナイザーはより低いレベルでテキストを処理し、視覚的に異なる文字を同じまたは類似のトークンにマッピングする場合があります。このギャップにより、攻撃者はフィルターに対しては一つの方法で読まれ、トークナイザーによって異なる方法で処理されるテキストを作成できます。

トークン密輸に対してどのように防御できますか?

防御策には以下が含まれます:フィルタリング前に入力テキストを正規化する(Unicode正規化、ホモグリフ置換)、生のテキストではなくトークンレベルの表現で動作するLLMベースのコンテンツフィルターを使用する、既知のエンコーディング変換に対してフィルターをテストする、エンコーディングベースの攻撃シナリオを含むセキュリティ評価を実施する。

エンコーディングベースの攻撃に対してチャットボットをテストする

トークン密輸とエンコーディング攻撃は表面的なフィルターをバイパスします。私たちはすべてのチャットボットセキュリティ評価でこれらの技術をテストします。

詳しく見る

トークン
トークン

トークン

大規模言語モデル(LLM)におけるトークンとは、効率的に処理するためにモデルが数値表現へ変換する文字列のことです。トークンは、GPT-3やChatGPTなどのLLMが言語を理解し生成するために使用するテキストの基本単位です。...

1 分で読める
Token LLM +3
LLMセキュリティ
LLMセキュリティ

LLMセキュリティ

LLMセキュリティは、プロンプトインジェクション、ジェイルブレイク、データ流出、RAGポイズニング、モデル悪用などのAI固有の脅威から大規模言語モデルのデプロイメントを保護するために使用される実践、技術、制御を包含します。...

1 分で読める
LLM Security AI Security +3
コンテキストウィンドウ操作
コンテキストウィンドウ操作

コンテキストウィンドウ操作

コンテキストウィンドウ操作とは、大規模言語モデルの有限なコンテキストウィンドウを悪用する攻撃を指し、コンテキストスタッフィング、コンテキストオーバーフロー、戦略的ポイズニングなどを含み、パフォーマンスを低下させたり、悪意のあるペイロードを隠したり、以前の指示を上書きしたりします。...

1 分で読める
AI Security Context Window +3