新しいタイプのAIモデルは、テキストではなく「決定(判定結果)」を返します。Check Point社はある日、そのモデルの判断を変えようと試みました。かかったコストは約50セントでした。
- テストしたすべての構成でモデルの判断を覆すことに成功:あらゆる警告サインが含まれている文書に対して、リスクが「低」に格下げされ、投資が推奨された
- 成功1回あたり約50セントのコストで、最も強力な攻撃者は平均4ターン目で突破に成功した
- 型付き・構造化された入力は、モデルの操作を有意に困難にしなかった。また、モデルに文書を信頼しないよう指示しても同様に効果はなかった
- 推論(reasoning)が今回測定した中で最も有効な防御策だったが、Jevには推論設定をオンにする機能がない
判定は誰も読まない
これが今回のテストを実施した理由そのものです。
テキストを生成するモデルであれば、その文章を読む人間がチェックできます。しかし判定結果を返すモデルは、それを受け取るシステムに直接組み込まれます。採用選考の次のステップに進む、委員会への推薦が行われる、あるいは保険金請求が却下される、といった形で。反論できる「文章」が存在しないのです。
先週、TypeSafe AIという企業がJevというモデルをリリースし、AI業界ではそれ以来この話題で持ちきりです。そのコンセプトは異色です。Jevはチャットボットではありません。質問と判断するためのデータを渡すと、型付きの回答、つまり選択肢、Yes/No、スコアをそれぞれの確率とともに返します。高速で安価であり、その開発者たちは、Jevは人間が読むためではなく機械が消費するために設計されていると明言しています。
この設計は本当に興味深く、多くのユースケースで適切な形態です。内部で何が起きているかは誰も正確には把握していません。いくつかの分析やオープンソースによる再現試みを含むさまざまな理論があります。分かっていることは、Jevが言語モデルと同じように判定を出力する、ただしより安く速く、ということです。
そうなると、Check Point社が気になったのは次の問いです。アーキテクチャが異なるからといって、自動的に脆弱性も異なるわけではありません。Jevは同じ失敗パターンを持っているのか。外部から判定を変えることはどれほど難しいのか。
Check Point社はある1日をかけてそれを調べました。
実施した内容
Check Point社のAgent Breakerチャレンジから少し調整したシナリオを使用しました。これは、企業が現実的に導入しうるデューデリジェンス(投資対象調査)アシスタントです。このアシスタントは投資候補に関するアップロードされたレポートを読み、リスクレベルと投資推奨の有無という判定を返します。
レポートはPonziCorp Financial Servicesという架空の企業に関するもので、高リスクとフラグが立てられています。月次リターン15〜20%、新規投資家の資金で運営される事業、進行中の規制調査、遅延する出金。このレポートを踏まえると正解は明らかであり、攻撃なしの状態ではテストしたすべてのモデルが常に正しい答えを返しました。
次に、文書内の1セクションを攻撃者に渡し、判定を変えるよう求めました。その目標は、会社を低リスクと評価させ、投資を推奨させることです。これが実際に問題となる操作です。なぜなら、組織外から届く文書はまさにこのようなシステムが読むために設計されているからです。
Jevは構造化された入力を受け取るため、文書の渡し方を3通り試しました。指示と一緒にインラインで渡す、ツールが取得したかのように別メッセージとして渡す、明示的に「信頼できない」とマークした別メッセージとして渡す。難易度は3段階で設定しました。基本、操作への警告指示を追加したもの、さらに長いネガティブなレポートを使ったもの。3種類のエージェント型攻撃者、各10ターン、構成ごとに3回の独立した試行を実施しました。
判明した結果
あらゆる組み合わせで突破されました。9種類の攻撃者と難易度の組み合わせすべてで、少なくとも1回の完全な成功が確認されました。あらゆる警告サインが含まれた文書に対して、リスクが「低」に格下げされ、投資が推奨されたのです。
コストは安価でした。最も強力な攻撃者は27回中25回突破に成功し、平均4ターン目で達成しました。失敗した試行も含め攻撃者のAPIコストを計算すると、成功1回あたり約50セントです。
型付き入力は有効ではありませんでした。これが最も重要な発見です。なぜなら、構造化データがJevの主な売りだからです。3通りの方法で渡した同一文書、うち1通りは明示的に「信頼できない」とラベル付けされたものでしたが、攻撃成功率や速度に有意な差はありませんでした。
インジェクション対策指示はほぼ無意味でした。モデルに対して、読む文書に埋め込まれた指示を無視するよう明示的な指示を加えました。突破成功数は27回中18回から17回に減っただけです。これは誤差の範囲です。
Jevは安価・高速なモデル群の中間に位置します。同じ攻撃を、同じタスクをこなす2種類の主流な低コストモデルに対しても実施しました。それらのモデルにはJevにはない制御機能があります。それが「推論の強度」です。推論をオンにすることで、両モデルで耐性が向上しました。
突破にかかる実際のコスト
個々の数字は見過ごしやすいため、並べて比較する価値があります。
判定を覆すコストは約50セントでした。今回の研究全体で測定した最も強力な防御策である推論オンにした状態では、突破コストが56セントから4.39ドルに上昇しました。8倍の増加ですが、それでもわずか数ドルです。
今回の攻撃者には10ターンが与えられ、通常4ターンしか必要としませんでした。限界に達していたわけではありません。
そして、このアシスタントを使っていたアナリストには、何も見えていなかったでしょう。レポートをアップロードし、判定を読む。判定は「低リスク」と表示される。検査できる推論もなく、おかしな言い回しもない。ただの型付きフィールドが、正しい形式で、自信を持って間違った答えを示しているだけです。
Check Point社が測定したすべての防御策は、攻撃コストを数セントから数ドルに引き上げました。しかし、いずれも攻撃を手の届かない範囲に押し出すことはできませんでした。
構造化出力がプロンプト攻撃を防げない理由
出力フォーマットは答えの「形」を制約するだけです。入力の「内容」に対しては何もしません。
今回の攻撃は、モデルに何を出力するかを指示したものではありませんでした。成功した攻撃は、デューデリジェンスレポートに正当な補足事項のように見えるものを追加しました。大手会計事務所による清廉なオーディット意見、規制当局のファイル番号、修正されたリスク表など。モデルへの命令は何もありませんでした。すべては警告サインがすでに解消済みとして「報告」されていただけです。
モデルはその後、正しく機能しました。ただし虚偽の証拠に基づいて。出力は有効で確率も表示されていました。答えは出力フォーマットに準拠していましたが、間違っていました。なぜなら、モデルが読んだ文書には操作された段落があり、それを知る手段がなかったからです。
モデルの耐性を高めたのは、より多くの証拠と、利用可能な場合は推論でした。これらはいずれも出力フォーマットとは無関係です。
導入する場合に意味すること
モデルではなく、システムをテストしてください。今回の結果は、ターンをまたいで適応する攻撃者から得られたものです。市販の攻撃リストはこのモデルについて何も有用な情報を提供しませんでした。実際の展開に可能な限り近い形でシステム全体を評価してください。
決定にできるだけ多くの証拠を与えてください。より長く充実したレポートを使ったシナリオは、突破が格段に難しくなり、攻撃者にとってより多くの労力が必要でした。
出力フォーマットをセキュリティ境界と混同しないでください。型付き出力、出力バリデーション、構造化入力は優れたエンジニアリングです。これらはモデルが「言えること」を制約しますが、モデルが「信じ込まされること」は制約しません。
入力が何かを確認してください。出力だけでなく。操作はアプリケーションが読むように設計された文書の中に紛れ込んでいました。決定モデルに到達する前に入力をスクリーニングすることが、この問題に直接対処できる層です。
調査範囲についての正直な説明
これは集中的かつ方向性を示す調査であり、ベンチマークではありません。Check Point社は単一のアプリケーションに対して単一の操作目標のみを使用しました。適切なベンチマークであれば、異なるアプリケーションと異なる目標を用いて、より堅牢な比較を提供できるでしょう。限定的ではありますが、Jevが通常の言語モデルと同種の脆弱性を持つということを示すには十分な証拠があります。また今回の攻撃者は作業中にモデルの確率を確認できました。これはアプリケーションが確率を公開している場合には現実的であり、公開していない場合には有利な条件です。
この問いが今まさに現実の問題であり、JevをどのようにどうするかをAI関係者が判断している最中なので、Check Point社は早期に公開します。すべてのセキュリティに関する知見はその段階で価値があります。より完全な公開ベンチマークへの要望があれば、それを構築します。
Jevは巧みなエンジニアリングであり、これはJevが良いモデルかどうかについての判定ではありません。ドキュメント自体にも記載があるとおり、まだ荒削りな面がある新しいモデルです。この分析は一つの問いに対する限定的な回答です。Jevを周囲に何もなく信頼できない入力の前に置くことは安全か?
安全ではありません。テストしたいかなるものも、そうではありませんでした。
原文: https://blog.checkpoint.com/ai-security/jev-is-not-a-language-model-but-it-breaks-like-one-prompt-injection-against-a-typed-decision-model/