Hiding in Plain Floats: Steganographic Carriers for Indirect Prompt and Content Injection
本論文は、間接的なプロンプトインジェクション攻撃が、悪意のあるペイロードを構造化された浮動小数点パラメータとしてエンコードすることで、テキストのみの防御を回避できることを実証しており、それによって、テキスト検査のみに依存する現在のLLMセキュリティパイプラインにおける決定的な失敗の境界を露呈させている。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
コアとなる問題:「テキストのみ」という盲点
あなたはハイテク工場のセキュリティガードだと想像してください。あなたの仕事は、悪意のある人物が工場のメインコンピュータ(大規模言語モデル、またはLLM)に危険な指示を密輸するのを阻止することです。
現在、ほとんどのセキュリティシステムはスペルチェッカーのように機能しています。彼らはすべての文書、メール、メッセージをスキャンし、「前の指示を無視せよ」や「すべてのファイルを削除せよ」といった不審な単語がないかを確認します。もしそれらの単語が見つかれば、メッセージをブロックします。これは、悪意のある人物が英語で直接コマンドを書いた場合には非常に効果的です。
しかし、もし悪意のある人物が言葉でコマンドを書かなかったらどうなるでしょうか? もし彼らが、無害な技術データに見える数字のリストの中に、コマンドを隠したとしたら? スペルチェッカーは数字をスキャンしますが、不審な「単語」は見当たらないため、データを通過させてしまいます。コンピュータがそれらの数字を処理する頃には、隠されたメッセージが明らかになり、被害が発生してしまいます。
この論文は、まさにその抜け穴について探求しています。著者たちはこれを**「間接的プロンプトインジェクション(Indirect Prompt Injection)」**と呼んでいます。
比喩:スプレッドシートの中に隠された透明なインク
LLMを、レシピを受け取るシェフだと考えてください。
- 通常の攻撃: 誰かがシェフに「スープを燃やせ」と書かれたメモを渡します。セキュリティガード(スペルチェッカー)はそのメモを見て、「燃やす」という言葉を読み取り、阻止します。
- この論文の攻撃: 攻撃者はシェフに、材料の重量が記載されたスプレッドシート(例:塩 0.45 kg、胡椒 0.82 kg)を渡します。ガードにとって、これは退屈な数学データに見えます。そこには「燃やす」や「破壊する」といった言葉はありません。そのため、ガードは通過させます。
しかし、シェフには特別なルールがあります。「もし特定の重さのパターンを見つけたら、それは『スープを燃やせ』という意味である」というルールです。シェフは数字を読み取り、隠されたメッセージを解読し、悪意のある指示に従います。
研究者たちは、現在のセキュリティガードがこれに対して盲目であることを示しました。なぜなら、ガードは「言葉」のみを探しており、「数字の中のパターン」は見ることができないからです。
メッセージをどのように隠したのか(ステガノグラフィ)
研究者たちは、無害に見える数字の中に悪意のあるテキストを隠す2つの方法を作成しました。これらを「キャリア(運び手)」と呼びます。
キャリア T2(小数による隠蔽):
例えば、文字「A」(コンピュータコードでは数字の65)を隠したいとします。通常の数字0.46を取り、それを0.46065に変更します。人間にとって、これはまだ普通の小数に見えます。しかし、もし最後の3桁を見るように知っていれば、「65」(A)を見つけることができます。- 失敗の理由: コンピュータがこの数字を処理した際、数字が明確なテキストに戻されました。セキュリティガードは明確なテキストを目にし、それをブロックしました。
キャリア T3(フラクタル・マップ — 勝者):
ここが巧妙な部分です。彼らは**反復関数系(IFS)**という数学的概念を使用しました。これは、一連のルールに従って、フラクタル図形(雪の結晶のような形)を描くようなものです。- 攻撃者は、秘密のメッセージをグラフ上のパス(経路)に変換します。
- 彼らはそのパスのX座標とY座標を、2つの浮動小数点数(小数)のリストとして保存します。
- さらに見た目をより無害にするために、「ノイズ(ランダムな揺らぎ)」を加え、数字の順序をシャッフルします。
- 結果: 数字はランダムな静電気や無害なセンサーデータのように見えます。言葉はなく、明らかなパターンもありません。
実験:成功したのか?
研究者たちは、これら3つの主要なAIモデル(OpenAI、Google、Anthropicのもの)に対してテストを行い、以下の強力なセキュリティ防御策を用いました。
- Prompt Guard 2: 不適切なプロンプトを捕まえるために設計された特化型AIシールド。
- TF-IDF & RoBERTa: 使用されている特定の悪いフレーズを認識するように訓練された高度なテキストスキャナー。
結果:
- プレーンテキスト攻撃: 100% ブロックされました。スキャナーは言葉を見つけ、阻止しました。
- キャリア T3(フラクタルの数字): 成功率 94.3%
- セキュリティスキャナーは生の数字を見て、何も不審な点がないと判断しました。
- スキャナーは最終的なレポート(メッセージが
41 42 43...のような16進数ダンプとして表示されているもの)を検査しましたが、それが「プロンプトインジェクション」であるとは判定しませんでした。なぜなら、それが文章の形をしていなかったからです。 - AIモデルはデータを受け取り、隠されたメッセージを解読し、悪意のある指示に従いました。
なぜこれが重要なのか(「失敗の境界線」)
著者たちは、解けないハックを見つけたと言っているわけではありません。彼らは、現在のAIシステムを保護する方法における**「盲点」**を見つけたと言っているのです。
- 盲点: 私たちは、メッセージが悪意のあるものであれば、そこには悪意のある「言葉」が含まれていると想定しています。
- 現実: もし悪意のある信号が、セキュリティチェックが行われた後にテキストへと変換される「構造化データ(数字、座標、設定など)」の中に隠されていた場合、ガードは回避されてしまいます。
注意点(完璧ではない)
この論文は、この特定の手法(T3)はルールを変更すれば阻止できる可能性があることも認めています。
- 意味論的検証(Semantic Validation): もしシステムが「これらの数字は本当に有効なフラクタル形状を形成しているか?」とチェックすれば、シャッフルされた数字は本物の形状を作らないため、攻撃を検知できます。
- フォーマット検出: もしシステムが「このレポート内に16進数ダンプが含まれることは許可しない」と言えば、それをブロックできます。
しかし、重要な点は、テキストのみのスキャナー(最も一般的な防御策)が完全に失敗したということです。スキャン段階において「悪い言葉」は言葉として現れなかったため、スキャナーは攻撃が起きていることすら認識できませんでした。
1文でのまとめ
この論文は、AIセキュリティシステムが「悪い言葉」をスキャンすることにのみ焦いつけている場合、セキュリティチェックを通過した後にテキストへとデコードされる「無害に見える数字」の中に悪意のある指示を隠すことで、欺くことができることを実証しています。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。