UC バークレーの 4 人の著者による、第 34 回 USENIX Security Symposium で発表されたこの論文は、LLM 統合 アプリケーションにおけるプロンプトインジェクションを扱う。論文は、OWASP がこれを LLM アプリケーションに とってのセキュリティリスクの第 1 位と呼んでいることに触れている。その診断は構造的なものである。既存の LLM は、アプリケーションが開発者のプロンプトと信頼できないデータを 1 つの文字列に連結するという、設計上 安全でない API を提供しており、モデルは入力全体から従うべき指示を探すため、一方と他方を区別できない。
論文の提案は 構造化クエリ であり、プロンプトとデータを 2 つの別々のチャネルとして モデルに与える汎用的なアプローチである。まったく新しい LLM をゼロから訓練するのは現実的ではないため、 著者らは、既存のベースモデル(インストラクションチューニングされていないモデル)の上に構造化クエリを実現 するシステム StruQ を構築する。StruQ は 2 つのコンポーネントからなる。予約された区切りトークンを用いて プロンプトとデータを特別な形式にエンコードし、ユーザーデータからそれらのトークンを除去する安全な フロントエンドと、構造化インストラクションチューニング によって、エンコードされた入力のうち プロンプト部分の指示だけに従うように変換された LLM である。
著者らは Llama-7B と Mistral-7B 上で、少なくとも 15 種類のプロンプトインジェクション攻撃手法に対して StruQ を評価し、テストしたすべての手動攻撃の成功率を 2% 未満に下げる一方、AlpacaEval で測定した有用性の 損失はほとんど、あるいはまったくないと報告している。著者らは、この結果が完成した防御ではなく第一歩で あることを明言している。最適化ベースの攻撃は依然として無視できない効果を持ち、それへの防御を重要な 未解決の研究課題と呼んでいる。
要点
- プロンプトインジェクションは、制御とデータが同じチャネルで送られるという、数十年来の脆弱性パターンの 最新の事例として示されている。論文は同じ構図を、2600 Hz の公衆電話トーン攻撃、SQL インジェクション、 クロスサイトスクリプティング、コマンドインジェクションにたどり、いずれの場合も堅牢な解決策は SQL の プリペアドステートメントのように両者を分離することだったと論じている。
- 論文は、プロンプトインジェクションとジェイルブレイクを当事者の数によって区別する。ジェイルブレイクは 2 者の設定(信頼できるモデル提供者、信頼できないユーザー)であるのに対し、プロンプトインジェクションは 3 者の設定(信頼できるモデル提供者、信頼できるアプリケーション開発者、信頼できないユーザーデータの 供給元)であり、攻撃者は開発者のセキュリティ目標に反するデータを選ぶ。その帰結として、ジェイル ブレイクを止めるために設計された一般的な安全性チューニングやフィルタリングでは、プロンプトインジェク ションを捉えられない。
- 論文の脅威モデルは、攻撃者がクエリのデータ部分を任意に改変できるがプロンプトは改変できず、プロンプトと アプリケーションのフォーマットの両方を知っていると仮定する。応答が隠された指示をデータとして扱うのでは なく、それに従った場合に、攻撃は成功とみなされる。
- 著者らは Completion 攻撃 を、強力でありながら十分に対処されていない攻撃の系統として 強調し、手法の設計と評価の両方でこれを考慮した防御を提案したのは自分たちが初めてだと述べている。
- 防御のないモデルに対して、Completion-Real は Llama と Mistral の両方で 96% の攻撃成功率に達するが、 StruQ は両方でこれを 0% に下げる。手動攻撃の表全体で報告された数値では、いずれのモデルでも StruQ の 測定上の最高成功率は 2% である。
- StruQ は、訓練時に一度も扱っていない 2 つの最適化ベースの攻撃に対しても頑健性を高める。Llama では、 Tree-of-Attacks-with-Pruning が 97% から 9% に、Greedy Coordinate Gradient が 97% から 58% に低下する。 著者らは、これらの攻撃がなお強力である理由を、タスクに特化したインジェクションを生成する点に帰して いる。StruQ モデルに対して生成された TAP のインジェクションの 68% が元の指示と密接な意味的関連を 持っていたと報告しており、また両攻撃とも、テストした他の攻撃に比べて GPU 時間で 100 倍を超えるコストが かかると指摘している。
- 有用性は、AlpacaFarm の 805 サンプルに対する AlpacaEval 1.0 で測定されている。Llama モデルは 67.2% から 67.6% に、Mistral モデルは 80.0% から 78.7% になった。AlpacaEval の標準誤差が 0.7% であることから、 著者らは Mistral の低下を 0.05 水準でかろうじて統計的に有意、Llama の変化を統計的に有意ではないと 説明している。
- 著者らが Vicuna-7B 上で再現した訓練時の防御である BIPIA と直接比較すると、StruQ はより安全で、かつ 有用性へのコストも小さいと報告されている。StruQ モデルに対する攻撃は、両方のテストセットで有用性の 損失なしに 0% にとどまるのに対し、BIPIA は StruQ のテストセットで Ignore 攻撃の成功率 54% を残し、 AlpacaEval の勝率を 53.9% から 26.0% に下げる。GCG は BIPIA に対して 100% の成功率を示す。
- 著者らは StruQ の適用範囲について 4 つの限界を述べている。API やライブラリを通じて LLM を呼び出す プログラム的なアプリケーションしか保護せず、Web ベースのマルチターンのチャットボットは対象外である (エンドユーザーが会話のどの部分が指示でどの部分がデータかを明示するとは考えにくいため)。ジェイル ブレイク、データ抽出、その他の攻撃を防ぐようには設計されていない。最悪の場合において完全に安全な防御 ではない。そして最適化ベースの攻撃に対してはさらなる研究が必要である。
注記
モデル提供者に向けた論文の推奨は、その構成そのものから導かれている。プロンプトインジェクションへの防御は インストラクションチューニングされていないモデルの上に構築されるため、論文は LLM 提供者に対し、 インストラクションチューニングされていないモデルをファインチューニング用に提供するよう促している。 今後の方向性として提案されているのは、反復的な攻撃者を検知して排除するためのアクセス制御とレート制限、 プロンプトインジェクションに対して本質的に頑健な新しいアーキテクチャ(著者らは、初期の層でプロンプト部分と データ部分の間のアテンションをマスクすることを案として挙げている)、そしてユーザーのプロンプトと関連 データに加えてシステムプロンプトを含むよう構造を拡張することである。