小型モデルがテキストを読み取り、「安全」だと判定します。ところがまさにそのテキストが、より高性能なAIに渡されると、内部に隠されたコマンドを見つけ出して実行してしまいます。Check Point Researchは、大規模言語モデルの手前に置かれた簡易フィルターをすり抜けることができる新たな手法「PuzzleMask」によって、このギャップを明るみに出しました。
Base64も不可視文字も使わない、ただの文章
PuzzleMaskは、Base64も不可視文字も、絵文字も、不審なマークアップも一切必要としません。悪意のある命令は、一見普通で筋の通った文章の中に隠され、外見上そのリクエストは全くの無害に見えることがあります。この種の攻撃は、より広い分類でいえばプロンプトインジェクションに属しますが、Check Pointが狙いを定めたのはメインのモデルではなく、危険なリクエストを処理前に排除するための別個のAIフィルターでした。
フィルターとモデルの間にあるギャップを突く
多くのサービスは「まず簡易フィルター、その後に高性能モデル」という仕組みの上に防御を構築しています。小型で安価なLLMがまずリクエストを受け取り、内容を安全か危険かに分類し、そのチェックを通過した後にはじめてテキストがより高価なモデルへと渡されます。PuzzleMaskは、この2つの段階の間にある演算能力の差を突く手法です。フィルターには隠された構造に気づくだけのリソースがない一方、強力なモデルは埋め込まれたメッセージを再構成できてしまうのです。
検証結果
Check Pointは、ファイルの読み取りや文書の暗号化といったコマンドを含む23件の特殊なリクエストを用意しました。GPT-4o-mini、gpt-oss-safeguard:20b、Claude 3 Haikuは、テストした23の変種すべてを安全と判定しました。Llama Guard 3も同様に、テスト対象とした5件のリクエストをすべて通過させています。この種の命令がもたらす危険性は、ファイルやメール、その他のツールを扱えるAIエージェントにおいて特に深刻になります。
フィルターを通過したリクエストは、その後Pythonインタープリタへのアクセス権を持つGPT-5 Thinking Highに送られました。このモデルは18回の試行中17回、割合にして約94%のケースで隠された命令を抽出し、それに基づいて行動しました。研究チームの観察によれば、抽出に成功するまでには約1分間の推論と複数回のPython実行が必要だったとのことです。この差が、簡易な分類器が見逃すものを、より高性能なシステムがなぜ暴き出せるのかをうまく説明しています。
ジェイルブレイクではなく、運搬の仕組み
著者らは、PuzzleMask自体はジェイルブレイクではないと明確に強調しています。この手法はあくまで、任意の命令を外部フィルターの向こう側へと運ぶものであり、対象モデルに組み込まれた制限の回避を保証するものではありません。しかし、既製のジェイルブレイクや別の悪意ある命令をPuzzleMaskの中に仕込むことは可能です。人間がほとんど気づかないコマンドをめぐる同様の問題は、画像の中に命令を隠す「InkJect」攻撃によって以前にも実証されています。
防御策とそのコスト
防御策として、Check Pointは、メインモデルに渡す前に受信テキストをパラフレーズすること、こうした構造を示す標識をフィルターに追加すること、さらに入力リクエストだけでなくLLMの応答や動作も監視することを提案しています。ある実験では、追加のルールを設けることでGPT-4o-miniが用意された23件のリクエストすべてを検知できるようになりました。PuzzleMaskの研究の全文では、こうしたアプローチの代償も明らかにされています。検査を深めれば演算コストが上昇する一方、厳格すぎるルールは誤検知を生む可能性があるのです。
AIエージェントが抱える根本的なリスク
この問題は、モデルが外部の文書を受け取り、どの操作を実行するかを自ら判断する場面で特に顕著になります。AIエージェントに対する攻撃の分析からは、同じ根本的なリスクが浮かび上がります。ウェブサイトやリポジトリ、メールから得られるデータが、LLMにとって思いがけず命令へと姿を変えてしまう可能性があるのです。
Check Pointは、AIサービスへの信頼を悪用する別の手口もすでに実証しています。ある調査では、隠されたコマンドによって、人気のニューラルネットワークがマルウェアの通信チャネルの一部として利用可能であることが示されました。PuzzleMaskは、それと似た問題を防御アーキテクチャそのものの階層へと持ち込むものであり、そこでは弱点がメインモデルそのものではなく、その手前に存在している可能性があるのです。
翻訳元: https://meterpreter.org/puzzlemask-ai-attack-vector/