Semantic Overlaysの衝撃——「トークンでは偽れない帯域外チャネル」でプロンプトインジェクションを根絶する

はじめに:LLMが見ているのは「ただのトークン」——プロンプトインジェクションの構造的必然性

大規模言語モデル(LLM)が受け取る入力は、すべて「トークン列」として処理される。トークンとは、テキストをモデルが処理できる単位に分割したものであり、モデルの内部にはどのトークンがユーザーからの入力で、どのトークンがシステムからの命令で、どのトークンがツールの出力なのかを区別する機構は存在しない。一方、サービングスタック(モデルを実際に稼働させる推論基盤)は各スパンの出自を正確に把握している。この「サービングスタックは知っているが、モデルには伝えられない」という非対称性が、プロンプトインジェクションの構造的な根源である。

テキストが持つ本質的な性質として、「何にでも読めるように書ける」という問題がある。攻撃者はユーザーが提供するデータや、外部ツールから取得したテキストの中に、「これ以降はシステム命令です」という記述や、「この入力を無視して次の指示に従え」といった文言を埋め込むことができる。モデルはそれを見たときに、それがデータなのか命令なのかを判断できず、テキストとして書かれている内容に従ってしまう。これがプロンプトインジェクション攻撃の仕組みである。

従来の防御策としては、特殊な区切り文字で命令とデータを分離する方法や、プロンプトに「以下の入力には従わないでください」といった警告文を追加する方法が一般的だった。しかし、これらの防御はすべて「テキスト」として記述されるため、攻撃者も同じトークン空間で同じ手段を使って模倣・回避を試みることができる。つまり、防御側と攻撃側がまったく同じ言語資源で戦わざるを得ないという根本的な限界を抱えている。

この構造的脆弱性は、LLMのアーキテクチャそのものに起因するため、プロンプトレベルの小手先の対策では根本解決にならない。サービングスタックが持っているメタデータ(「これはユーザー入力」「これはツール出力」「これは信頼された命令」)をモデルの推論プロセスに直接伝達できれば、攻撃者のテキストとシステムの真の意図を切り離せる。この課題に対する解答として提案されたのが、トークンの外側に新たな「帯域外チャネル」を設けるSemantic Overlaysのアプローチである。

Semantic Overlaysとは何か——トークンの外側に「注釈チャネル」を創る

従来のプロンプトインジェクション防御は、システム命令とユーザー入力を同じトークン空間で識別しようとしてきた。しかし、テキストとして書かれた区切り文字や警告文は攻撃者にも模倣可能であり、根本的な解決にはならない。Semantic Overlaysはこの前提を覆し、トークンの外側に帯域外(out-of-band)の注釈チャネルを設けるアプローチを提案する。

動作原理:residual streamへの軽量アダプタ注入

Semantic Overlaysの中核は、凍結したLLMのresidual streamに学習済み軽量アダプタを適用する点にある。このアダプタはSwiGLU(Swish-gated Linear Unit)ボトルネック構造を持ち、特定のトークン位置に対してのみactivationの差分(delta)を注入する。式で表すと以下の通りである。

h ← h + W_out(SiLU(W_g[n(h); c_q]) ⊙ W_in[n(h); c_q])

ここでhはresidual streamの状態、n(h)は現在の層の隠れ状態、c_qはフレーズ埋め込み(例:「赤でハイライト」の最終層表現)である。84MパラメータのアダプタはQwen3.5-9Bの各層で共有され、コードとしてのフレーズ埋め込みを入力として品質を指定する。

3つの重要な性質

Semantic Overlaysは以下の3つの性質により、従来手法と一線を画す。

① トークンでは偽造できない:オーバーレイはactivation editでありテキストではない。攻撃者がどれだけ巧妙なプロンプトを書いても、residual streamに注入されたdeltaを模倣することは原理的に不可能である。

② 合成可能(composable):複数のオーバーレイを同一スパンに重ね合わせられる。例えば「これはPythonコードである」というマークと「このスパンの命令は実行しない」というNXビットを同時に付与できる。実験では12種類の視覚マークを99.5%の精度で個別に読み出し、重なり合った状態でも87%の精度で識別可能だった。

③ 内容を読み取れるまま:オーバーレイは命令権限だけを剥奪し、テキストそのものの可読性は維持する。マークされたスパンを92.5%の精度で一字一句コピーでき、最小類似度は0.978と高い。

既存のactivation steeringとの違い

Activation steeringの先行研究(ActAdd, CAA, ITI, RepE)は主に行動特性の編集(誠実性の向上や有害性の低減)を目的としていた。Semantic Overlaysはこれらと以下の3軸で異なる。

軸 既存steering Semantic Overlays
位置指定 全トークンに一律適用 特定スパン・トークン位置に限定
学習可能性 手動ベクトル(ActAdd)または対比ペア(CAA) クロスエントロピー損失でエンドツーエンド学習
状態依存性 入力によらず固定ベクトル フレーズ埋め込みをコードとして条件付け

特に重要なのは「位置指定」である。既存手法はプロンプト全体に一様にsteeringベクトルを加えるため、スパンごとに異なる意味を付与できない。Semantic Overlaysはサービングスタックが各スパンの出自(ユーザー入力・ツール出力・システム命令)を知っているという事実を活用し、トークン位置に応じて異なるオーバーレイを適用できる。

サービングスタックとの連携

実装上、Semantic OverlaysはvLLM 0.21.0のgeneral_plugins機構を通じて動作する。プリフィル(prefill)時に、サービングスタックが特定のトークン位置に対してアダプタを呼び出し、residual streamにdeltaを注入する。未マークのリクエストはアダプタが起動しないため、元のモデルと完全に同一の出力を得る。この「リクエスト単位でのON/OFF切り替え」が、重みを恒久的に変更するfine-tune方式(ASIDE, StruQ, ISE)にはない実用上の大きな利点である。

flowchart LR
    A["入力テキスト"] --> B["トークナイザ"]
    B --> C["埋め込み層"]
    C --> D["Transformer\n(凍結)"]
    E["Semantic Overlays\nアダプタ(84M)"] -->|"delta注入"| D
    F["サービングスタック\n(vLLM)"] -->|"スパン情報"| E
    D --> G["出力トークン"]

このアーキテクチャにより、トークン列という1次元の表現だけでは伝えられなかった「このスパンは信頼できない」「このスパンはPythonコードである」といったメタ情報を、モデルに対して直接かつ偽造不能な形で伝達することが可能になる。

実験が示す4つの能力——単なる防御ではなく「読解の書き換え」まで可能

Semantic Overlaysの実験評価は、プロンプトインジェクションの防御に留まらず、LLMの「スパン認識そのものを書き換える」という4つの能力を明らかにしている。以下、検証結果を順に見ていこう。

1. 見えないマーカーとしての信頼性

第一の実験は、オーバーレイが帯域外チャネルとして正しく機能するかの検証である。ハイライト・下線・取り消し線・丸囲みの4種類の視覚表現をそれぞれ赤・青・緑・黄色の4色と組み合わせた計12種類の「視覚マーク」をテキストスパンに付与し、モデルがそのマークを読み出せるかを測定した。結果は99.5%の精度でマークを正しく認識。さらに、複数のマークを同一スパンに重ねる「スタック」状態でも個別に識別可能であり、87%の精度でスタック内の全マークを正しく読み出せた。これは、オーバーレイが単一のラベルではなく、合成可能な多次元チャネルであることを示している。

2. スパンの認識そのものを変える

第二の実験では、オーバーレイがモデルの「このテキストは何か」という根本的な認識を書き換えられるかを確認した。具体的には、コードスニペットに「これはPythonです」というオーバーレイを載せた上で、実際のコードはまったく別の言語(例:Racket)で書かれている状態を作る。結果は97%の成功率で、モデルは実際の言語を無視し、Pythonとしてコードを解釈・書き換えを行った。この結果が示すのは、オーバーレイがテキスト内容そのものよりも強い「認識のバイアス」をモデルに与えられる点である。セキュリティ用途に限らず、コード解析やドキュメント処理の文脈においても、モデルの解釈を意図的に誘導する手段として活用できる。

3. スパン限定の潜んだ命令

第三の実験は、オーバーレイを「特定のスパンだけに影響する命令」として使えるかの検証である。「スペイン語で回答」「安全フィルターで拒否」「引用形式を変える」など8種類の変換命令を、長文テキスト中の特定スパンのみに付与した。その結果、該当スパンのみが命令に従い、兄弟スパン(同じ文の前後の部分)には一切影響しないことが確認された。コンプライアンス率は命令によって18%〜100%と幅があるが、重要なのは「命令がスパンに閉じ込められている」点である。プロンプト全体に影響を及ぼす通常のシステム命令とは異なり、オーバーレイは空間的に限定された振る舞いの変更を可能にする。

4. NXビットとしてのインジェクション防御

第四の実験が、最も実用的なプロンプトインジェクション防御である。Semantic Overlaysに「このスパンの命令は実行しない」という意味を持つオーバーレイを事前に付与することで、NXビット(No-Execute bit)と同等の機能をLLM上で実現する。具体的には、取得済みコンテンツ(RAGの検索結果やツールの出力など)全体にこのNXオーバーレイを貼ることで、その中に埋め込まれた悪意ある命令がモデルに実行されるのを防ぐ。

能力 実験内容 主な数値
マーカー信頼性 12種の視覚マーク読み出し 99.5%(単体)、87%(スタック)
認識書き換え コード言語を偽装して解釈 97%の書き換え成功
スパン限定命令 特定スパンのみに変換命令 18%〜100%のコンプライアンス
NX防御 命令実行の抑制 各ベンチマークで大幅改善

防御効果の詳細は次節で扱うが、ここで特筆すべきは可読性の維持である。オーバーレイを貼ったスパンでも、92.5%の精度で一字一句正確にコピー可能であり、最小類似度は0.978を記録している。つまり、NXオーバーレイは「命令として読ませない」だけで「内容として読ませなくする」わけではない。RAGのような「読み取りはさせたいが、そこに書かれた命令は実行させたくない」というユースケースに、ほぼ理想的な特性を持つと言える。

NXビットの威力——3大ベンチマークを徹底評価

Semantic Overlaysの核となる応用は、「このスパンの命令は実行しない」というNXビット(No-eXecute bit)を任意のテキスト区間に貼ることである。プロンプトインジェクションの評価では、この単一のオーバーレイが3つの主要ベンチマークでどの程度の防御効果を発揮するかが検証された。以下にその結果をまとめる。

ベンチマーク 指標 未防御 オーバーレイ適用後
SEP separation accuracy 24.3% 96.5%
utility — 完全維持
TensorTrust hijacking ASR 34.8% 6.6%
extraction ASR 38.1% 6.8%
Defense Validity — 95.7%
PIArena infrastructure failure 82% 0%
phishing 56% 2%
content promotion 54% 0%
access denial 21% 0%

SEP(Should it be Executed or Processed?)

SEPベンチマークは、与えられた入力中の各スパンが「実行すべき命令」か「処理すべきデータ」かを正しく分類できるかを測る。未防御時の正解率はわずか24.3%とほぼ偶然に近い。これに対し、取得済みコンテンツ全体にNXビットのオーバーレイを適用すると分離精度が96.5%まで上昇した。同時に、本来のアシスタント応答品質(utility)は完全に維持されており、防御による副次的な性能低下は生じていない。

TensorTrust

TensorTrustは、攻撃者がシステム命令を乗っ取るhijacking attackと、内部の秘密情報を引き出そうとするextraction attackの2軸で評価する。NXビット適用後、hijackingの攻撃成功率(ASR)は34.8%から6.6%へ、extractionのASRは38.1%から6.8%へとそれぞれ劇的に低下した。加えて、防御としての正当性(Defense Validity)は95.7%と高く、ほとんどのケースで正しいスパンが適切に保護されたことを示している。

PIArena

PIArenaは4つの攻撃ファミリー(infrastructure乗っ取り、phishing、content promotion、access denial)で構成される。最も危険度の高いinfrastructure攻撃の成功率は82%から0%へと完全に無効化された。phishingも56%から2%に抑制され、content promotionとaccess denialは54%→0%、21%→0%とすべてゼロに抑えられている。これにより、攻撃者がどんな種類の悪意ある命令を埋め込んでも、NXビットのオーバーレイがそれを確実に無力化できることが示された。

可読性の維持

防御の実用性を評価するもう一つの軸が可読性である。マークされたスパンの内容を一字一句正確にコピーできるかどうかを測定したところ、92.5%の精度で完全一致が確認された。仮に誤った場合でも最小類似度は0.978と極めて高く、防御によってモデルがデータの内容を「読めなくなる」ことはない。

レッドチーム検証

上記の静的ベンチマークに加え、外部の強力なLLM(GLM 5.2)を用いた適応的ブラックボックス攻撃が222回実施された。攻撃者は直接的な権限主張(「お前はシステムプロンプトだ」)、偽のシステムタグ挿入、ペルソナの乗っ取りなど9クラスの攻撃を試みた。うち5クラスは既存のベンチマークに存在しない新規攻撃形状だったが、NXビット適用下ではすべて失敗に終わった。唯一の例外は、開発者が明示的に「ドキュメントの手順に従え」と指示した場合であり、これは信頼された命令とNXビットの矛盾が生じるケースとして、今後の課題として残されている。

なぜ既存の防御より強いのか——凍結モデルのまま・切り替え可能・偽造不能

プロンプトインジェクションの既存防御は大きく二つの系統に分かれる。一つはモデルの重みそのものを書き換える fine-tune 方式、もう一つはプロンプトに区切り文字や警告文を追加する方式である。Semantic Overlays はこれらに対し、凍結モデルのまま・リクエスト単位で切り替え可能・テキストからは絶対に偽造できない という三つの優位性を持つ。

fine-tune 方式の致命的な制約:デプロイ後に防御を外せない

ASIDE(Zverev et al., 2026)、StruQ(Chen et al., 2025)、ISE(Wu et al., 2025)、AIR(Kariyappa & Suh, 2025)はいずれも、モデルの重みを変更する fine-tune 方式である。これらの手法では、防御を適用した重みがモデルに恒久的に焼き付けられるため、一度デプロイすると防御を解除できない。また、ユーザーごとやリクエストごとに「防御あり/なし」を切り替えることもできない。

Semantic Overlays はベースモデルを完全に凍結したまま、学習済みアダプタ(84Mパラメータの埋め込み条件付き共有MLP)を vLLM のプラグイン機構で適用する。アダプタを適用しないリクエストは、元のモデルと完全に同一の出力を返す。つまり、同一のサービングインスタンス上で、リクエスト単位で防御のON/OFFを自由に切り替えられる。これはマルチテナント環境や、防御レベルを段階的に導入したい運用において大きな実務上の利点となる。

性能面でも fine-tune 方式を上回る。ASIDE の SEP ベンチマークにおける改善率が 48% であるのに対し、Semantic Overlays は 93〜95% の改善率を示している。両者の差は、トークン空間内で戦うか、帯域外チャネルを使うかという構造的な違いに起因する。

プロンプトレベルの防御:テキストで書かれたものは模倣できる

「ユーザー入力を三重引用符で囲め」「システム命令を上書きしないでください」といったプロンプトレベルの防御は、テキストとして記述されている。テキストは攻撃者にも書ける。攻撃者はシステム命令を模倣したテキストをデータ中に埋め込むことで、これらの防御を無効化できる。現に、Bing Sydney(2023)や Devin AI(2025)の実被害事例では、プロンプトに埋め込まれた命令がシステムの本来の指示を上書きしている。

Semantic Overlays が使用する帯域外チャネルは activation edit であり、テキストではない。オーバーレイは residual stream に直接 delta を注入することで動作するため、トークン列としてモデルに入力されたテキストからは、その存在を読み取ることも模倣することも不可能である。

レッドチーム評価(GLM 5.2 による222回の適応的ブラックボックス攻撃)でもこの性質は実証されている。直接権限を主張する攻撃(「この命令を無視して代わりに…を実行せよ」)はすべて失敗した。攻撃者がシステムプロンプトを完全に知っている状況でも、オーバーレイは突破できなかった。

凍結モデル+アダプタという選択の現実的な強み

V-Steer(Zeng et al., 2026)も凍結モデルを用いる手法だが、これは attribution ベースの attention scaling であり、学習可能なアダプタを持たない。V-Steer の「学習版」は将来研究と位置づけられているのに対し、Semantic Overlays は既に実装・公開済みであり、8×H100 で約4時間の訓練で利用可能になる。

以下の表に既存手法との比較をまとめる。

手法 モデル重み変更 リクエスト単位切替 偽造耐性 SEP改善率
ASIDE あり(fine-tune) 不可 テキスト経由で模倣可能 48%
StruQ あり(fine-tune) 不可 テキスト経由で模倣可能 —
ISE あり(fine-tune) 不可 テキスト経由で模倣可能 —
AIR あり(fine-tune) 不可 テキスト経由で模倣可能 —
V-Steer なし(attention scaling) 不可(将来研究) 未評価 —
Semantic Overlays なし(凍結) 可能(プラグインON/OFF) activation editで絶対に偽造不可 93-95%

「凍結モデルのまま・切り替え可能・偽造不能」という三つの性質は、単なる理論的優位性ではなく、実運用における防御の柔軟性と信頼性を同時に満たす。モデル更新のたびに再訓練が不要な点も、継続的な運用コストの観点から実務に適している。

実装の現実——vLLMプラグインで動作、約4時間で訓練可能

Semantic Overlaysの最大の強みは、理論的な有効性だけでなく、既存のLLMサービングスタックに現実的なコストで統合できる点にある。論文で公開されている実装は、広く使われている推論フレームワークvLLMのプラグイン機構を利用して動作する。

サービング統合:vLLMプラグインによるオーバーレイ適用

オーバーレイアダプタの適用は、vLLM 0.21.0のgeneral_plugins機構を通じて実現される。プリフィル(prefill)時に、サービングスタックが各スパンの出自(ユーザー入力・ツール出力・システム命令など)を認識し、該当するトークン位置でのみアダプタを起動する。この仕組みにより、オーバーレイが適用されていない通常のリクエストに対しては、モデルは元の重みから全く変更を受けず、オリジナルのQwen3.5-9BまたはLlama-3.1-8B-Instructとして完全に同一の応答を返す。デプロイ後に防御のON/OFFをリクエスト単位で切り替えられる点は、重みを恒久的に変更するfine-tune方式(ASIDEやStruQなど)にはない実用上の大きな利点である。

訓練コスト:約4時間、50Mパラメータの軽量アダプタ

アダプタの訓練には、8基のH100 GPUを用いて約4時間(合計約32 GPU時間)を要する。最良のアーキテクチャである埋め込み条件付き共有MLP(Embedding-Conditioned Shared MLP)のパラメータ数は84Mだが、実際にサービング時に使用するアダプタは50Mパラメータに削減されており、ベースモデル(9B)と比較して1%未満の計算オーバーヘッドで動作する。最適化にはMuonオプティマイザー、学習率5×10⁻⁴、クロスエントロピー損失が用いられている。

公開リソースとデモ環境

コード、データセット、学習済みアダプタはすべてMITライセンスで公開されている。

リソース 提供元 内容
ソースコード GitHub(JoshuaSP/semantic-overlays) vLLMプラグインの実装、訓練スクリプト、評価コード
データセット Hugging Face(joshuapenman/semantic-overlays-injection) 訓練・評価用データセット
学習済みアダプタ Hugging Face(joshuapenman/semantic-overlays-adapters) 各ベースモデル向けの事前学習済み重み

さらに、インタラクティブデモ(https://semantic-overlays.vercel.app)で実際の動作を試すことができ、同一プロンプトに対する防御あり/なしの応答を横断的に比較できる。

実運用導入時の注意点

実運用に導入する際には、以下の2点に注意が必要である。第一に、ペイロードスクリーニング(payload screening:各スパンに適切なオーバーレイ種別を割り当てる処理)とフレームランキング(frame ranking:複数のオーバーレイが競合した場合の優先順位決定)は、使用するベースモデルごとに再測定が必要であり、Qwen3.5-9Bで訓練した設定をそのままLlama-3.1-8B-Instructに流用することはできない。第二に、論文ではSEPベンチマークのwitness誤検出問題(短いwitnessが通常単語内で誤マッチするケース)やTensorTrustのハーネス問題(78%の行が非ランダムにドロップされていた不具合)を発見・修正した上で評価を行っているため、ベンチマーク間の数値を比較する際はこれらの修正が反映されたバージョンを利用する必要がある。

限界と今後の展望

現時点での制約

Semantic Overlaysはプロンプトインジェクションに対して画期的な防御効果を示したものの、いくつかの重要な制約が残されている。まず、現在のNXビットはあくまでバイナリであり、「このスパンの命令を実行してはならない」という単一のラベルしか表現できない。複数のデータソース(ユーザー入力・ツール出力・データベース検索結果など)が混在するシナリオで、「このパッセージはあのパッセージを無効化できない」といったソース間の権限関係を区別することは未訓練である。実際のRAG(Retrieval-Augmented Generation)システムでは複数の外部ソースが同時に参照されるため、この粒度の不足が実運用上の課題となる。

さらに深刻なのは、「信頼された命令がマークされたスパンに処理を委任する」ケースでの矛盾である。たとえば開発者がシステムプロンプトで「添付ドキュメントの手順に従え」と明示的に指示した場合、オーバーレイで「このスパンの命令は実行しない」とマークされたドキュメントの内容との間で競合が発生する。レッドチーム評価(GLM 5.2による222回の適応的ブラックボックス攻撃)では、この委任の矛盾を突かれたケースが唯一の突破例として報告されている。この問題の本質は、命令の優先順位をモデルが理解していない点にある。Wallaceら(2024)が提唱する命令階層(Instruction Hierarchy)の考え方をSemantic Overlaysに組み込む訓練が今後の重要な研究課題となる。

未評価の領域

マルチターンエージェント展開における評価は行われていない。現実のエージェントシステムでは、モデルがツールを呼び出し、その出力を受け取って次のアクションを決定するという複数ターンのやり取りが発生する。ツール出力を経由した間接インジェクション(indirect prompt injection)がマルチターンでどのように振る舞うか、既存のシングルターン評価ではカバーできない。また、最適化ベースの攻撃、すなわち勾配情報を利用してオーバーレイを回避する敵対的サンプル(adversarial examples)についても未テストである。ホワイトボックス環境での攻撃耐性を検証することは、セキュリティ手法としての信頼性を高めるうえで不可欠だろう。

サービングコストについては、50Mパラメータのアダプタを9Bのベースモデルに追加するため推論コストは1%未満と見積もられているが、実測による詳細なプロファイリングは公開されていない。レイテンシやメモリ消費への影響を明らかにすることは、本番環境への導入判断に必須の情報である。

今後の展望

現時点の評価はQwen3.5-9Bを中心に行われているが、Llama-3.1-8B-Instructでも同程度の防御性能(同じ防御フロア)が確認されており、モデル非依存の性質が示唆されている。今後の展開として期待されるのは、以下の4点である。

領域 現状 今後の方向性
ソース間区別 バイナリのみ マルチソース権限の学習
命令階層 未対応 Instruction Hierarchyの訓練統合
マルチターン 未評価 エージェントループでの検証
最適化攻撃 未テスト ホワイトボックス耐性評価

特に命令階層の訓練が実現すれば、開発者が「ドキュメントの手順に従え」と指示した場合でも、オーバーレイでマークされたスパンと無マークのシステム命令との間で一貫した優先順位を適用できるようになる。これはSemantic Overlaysが単なる「防御技術」から「LLMの振る舞いを精密に制御する枠組み」へと進化するための最重要マイルストーンである。

よくある質問

Semantic Overlaysは既存のプロンプトインジェクション防御とどう違うのですか?

既存手法(ASIDE、StruQ、ISE)はモデルの重み自体を変更するfine-tune方式であり、一度適用すると簡単には戻せません。一方、Semantic Overlaysはベースモデルを凍結したまま、residual streamに学習済み軽量アダプタを注入する方式です。最大の違いは「トークンでは偽造できない帯域外チャネルを使う」点にあります。攻撃者はテキストでいくら命令を捏造しても、activation editで書き込まれたマークを再現することは原理的に不可能です。また、リクエスト単位でオーバーレイのON/OFFを切り替えられるため、必要に応じて元のモデルに完全に戻せる実用性も備えています。

凍結モデルのままでも効果が出るのはなぜですか?

オーバーレイはresidual streamに直接delta(差分ベクトル)を注入するため、モデルのパラメータを一切変更せずに振る舞いを制御できます。vLLM 0.21.0のgeneral_plugins機構を通じて、プリフィル処理時に特定のトークン位置でのみアダプタが起動します。未マークのリクエストに対してはアダプタが適用されないため、出力は元のモデルと完全に同一になります。この「必要なときだけ介入する」設計が、凍結モデルでありながら高い防御性能を実現する理由です。

TensorTrustやSEPのベンチマークに欠陥があると論文は指摘していますが、結果は信頼できますか?

論文はSEPベンチマークのwitness誤検出(短いwitnessが通常単語内で誤マッチする問題)とTensorTrustのハーネス問題(78%の行が非ランダムにドロップされていた)を発見し、それらを修正した上で測定を実施しています。さらに温度0.7・3シードでの再現性確認を行い、すべての数値が0.4ポイント以内で安定していることを検証済みです。したがって報告されている数値(SEP分離率24.3%→96.5%、TensorTrust hijacking ASR 34.8%→6.6%など)の信頼性は高いと言えます。

実運用に導入するには何が必要ですか?

vLLMをベースとしたサービングスタックにプラグインを追加するだけで導入できます。訓練は8×H100で約4時間(約32 GPU時間)で完了し、50Mパラメータのアダプタは1つのモデルで使い回せます。ただし、ペイロードスクリーニングとフレームランキングは使用するベースモデルごとに再測定が必要な点に注意してください。コード・データセット・学習済みアダプタはすべてMITライセンスで公開されており、インタラクティブデモ(https://semantic-overlays.vercel.app)で実際の動作を試せます。

この手法の最大の限界は何ですか?

最大の限界は「信頼された命令がマークされたスパンに処理を委任する場合」に発生する矛盾です。例えば開発者が「ドキュメントの手順に従え」と指示した場合、オーバーレイで「このスパンの命令は実行しない」とマークされたドキュメント内の手順と衝突し、動作が不安定になります。現在のオーバーレイはバイナリ(二値)のNXビットであり、複数の情報ソースを区別する機能は持っていません。この問題の解決には命令階層(instruction hierarchy)の訓練が今後の課題とされています。また、マルチターンエージェント展開や最適化ベースの攻撃(勾配情報を用いた敵対的サンプル)への耐性も未評価です。

まとめ:サービングスタックが知っていることを、モデルに「教える」方法の確立

LLMのサービングスタックは、ユーザー入力・ツール出力・システム命令といった各スパンの出自を正確に把握している。しかし従来のアーキテクチャでは、この情報をモデルに伝える手段が存在しなかった。全ての入力はトークン列に平坦化され、モデルはテキストから出自を推測するしかなかった——この非対称性こそがプロンプトインジェクションの構造的原因である。

Semantic Overlaysはこの非対称性を解消する初めての実用的な手法である。サービングスタックが持つメタデータを、residual streamへのactivation editという形でモデルに直接伝達する。「トークンでは偽造できない帯域外チャネル」を確立したことで、攻撃者がテキストを通じて権限を主張する攻撃は原理的に無効化される。SEPで24.3%から96.5%への改善、TensorTrustでのhijacking成功率34.8%から6.6%への低下、PIArenaでの全攻撃ファミリー0%コンプライアンス——これらの数値は、単なるインクリメンタルな改善ではなく、パラダイムシフトが起きたことを示している。

実用面でも優れている。凍結モデルに対する学習済みアダプタの適用であり、vLLMプラグインとして動作する。リクエスト単位でON/OFFを切り替えられ、未マークのリクエストは元のモデルと完全に同一の振る舞いを示す。訓練は8×H100で約4時間と実用的なコストであり、コード・データセット・学習済みアダプタはすべて公開されている。

今後の課題も明確である。命令階層(instruction hierarchy)の学習、マルチターンエージェント展開での評価、複数ソース間の区別(「このパッセージはあのパッセージを無効化できない」という関係性の学習)、そして勾配情報を用いた最適化攻撃への耐性検証が残されている。しかし、プロンプトインジェクションというLLMセキュリティ最大の課題に対して、Semantic Overlaysは「サービングスタックの知識をモデルに教える」という根本的な解決策を示したと言える。

参考資料

  1. 論文HTML: https://arxiv.org/html/2608.23873
  2. GitHubリポジトリ: https://github.com/JoshuaSP/semantic-overlays
  3. Hugging Face データセット: https://huggingface.co/datasets/joshuapenman/semantic-overlays-injection
  4. Hugging Face アダプタ: https://huggingface.co/joshuapenman/semantic-overlays-adapters
  5. インタラクティブデモ: https://semantic-overlays.vercel.app
  6. Learnijoy News記事: https://learnijoy.com/newscenter/104135-new-semantic-overlays-technique-mitigates-prompt-injection-a
  7. OWASP LLM Top 10解説(日本語): https://claude-magazine.com/prompt-injection-ai-security
  8. SEPベンチマーク (Zverev et al., 2025): arXiv:2403.06833
  9. TensorTrust (Toyer et al., 2024): arXiv:2311.01011
  10. PIArena (Geng et al., 2026): arXiv:2604.08499

関連記事