Connect with us

あるプロンプトインジェクション攻撃は防げないのか?:願望的思考か現実的な懸念か?

ソートリーダー

あるプロンプトインジェクション攻撃は防げないのか?:願望的思考か現実的な懸念か?

mm
A digital 3D render of a dark server room with a computer monitor displaying a

この記事では、読者に思考実験に参加してもらいたいと思います。近い将来、ある種のプロンプトインジェクション攻撃が実際に防げない可能性があることを主張したいと思います。私の主張は、具体的なものではなく、より推測的なものです。私はあなたを何かに説得しようとしているのではなく、あなたにこれらの考えを探究してもらいたいと思います。始める前に、魅力的で説得力のあるライターが行うように、チェスとチェスエンジンについて議論したいと思います。

超人的なチェスエンジンと人間の経験に関する断言

チェスには、他の分野には欠けている、プレイヤーの質や強さを客観的に測ることができるという魅力的な側面があります。チェスプレイヤーのレートを決定するために使用されるELOレーティングシステムには欠点がありますが、時間の経過とともに大まかな推定値を提供します。2700以上のレートは一般的に世界クラス(世界でトップ30)とみなされます。世界最高のプレイヤーのレートは2850未満です。人間はまだ2900のレートに達したことがありません。

90年代半ば、世界クラスのレベルに達した最初のAIエンジン(Deep Blue)が登場しました。このマイルストーンの実用的影響は、すべてのレベルのプレイヤーが練習と分析のためにエンジンを採用することでした。実際、エンジンの使用は世界トッププレイヤーにとって不可欠になりました。しかし、世界クラスのエンジンのいくつかの世代では、エンジンが推奨する動き(出力)を確認することが重要でした。人間とエンジンが組み合わせて競争する「アドバンスチェス」と呼ばれる特別な形式さえ存在しました。人間とマシンの組み合わせは、マシン単独よりも優れています。

約20年が経過し、ディープラーニングと強化学習の重要な進歩により、チェスエンジンは超人的なレベル(約3200 ELO)に達しました。しかし、2017年頃にこのレベルが達成されると、驚くべき2つのことが起こりました。最初のことは完全に予想通りでした。エンジンは99%のすべてのポジションで「真実」の源となりました。実践的には、人間がエンジンよりもはるかに優れた手を提案することはほぼ不可能になりました。 「アドバンスチェス」は面白かったですが、今や無意味な行為です。人間はゲームにほとんど貢献できません。しかし、2番目のことはほとんどのチェスプレイヤーにとって驚くべきことでした。超人的なニューラル(ディープニューラルネットワーク)エンジンは、価値が多くの手後、人間や世界クラスのエンジンが計算できるものよりも遥かに遠いところでだけ評価できる手でプレイすることがありました。まるでエンジンが特定のポジションに対する「感覚」や「直感」を発達させたかのようです。しかし、この直感は人間が把握したり模倣したりすることはできません。

別の言い方をすると、超人的なニューラルエンジンは、人間の認知の地平線を超えた手でプレイできます。これがここでの重要な点です。問題は、説明可能性の問題ではありません。人間は、ゲームの可能なすべてのシーケンスを再生し、結果を観察するまで、エンジンが手を推奨する理由を理解できないからです。したがって、能力に大きなギャップがあります。エンジンの出力を確認せずに受け入れるのが、客観的に最適です。私の主張を要約すると、次のようになります:

チェスは、超人的なAIが一部のドメインで自律的に動作することの存在証明です。人間のレビューなしでAIシステムが決定を下すことを許可するのが、システムを展開するための最適な方法です。

私の主張があなたにとって当たり前または特に注目に値しないように思えるかもしれませんが、2つのニュアンスを強調したいと思います。複雑で重要なタスク、具体的で不可逆的な結果を持つAIシステムがあるとします。私の主張には2つの意味があります:

  1. システムは、固有のリスクにもかかわらず、人間のレビューなしでタスクの決定を下すために展開されます。
  2. そのようなシステムを監視することで得られる洞察は、有害な決定を防ぐことはできません。損害はすでに発生しています。

システム出力のレビューと監視は、プロンプトインジェクションに対する最後の2つの防御層です。したがって、私たちの仮説的なプロンプトインジェクション攻撃は、これらの層を迂回するだけで、適切なシステムを標的にするだけで済みます。

私の頭の中では、これは非常に現実的なシナリオです。特定のドメインで超人的なAIシステムは、AGIではありませんが、ほとんどの専門家はそのようなシステムが近い将来に現れると考えています。また、決定が時間制約がある必要はなく、人間のレビューが不可能なほどタスクが複雑であるということだけを仮定しました。

もちろん、まだ2つの防御層を迂回しただけです。幸いなことに、さらにいくつかの層が開発されています。残りについて説明するために、プロンプトインジェクションを防ぐことの難しさの核心要素に立ち帰りましょう。

プロンプトインジェクションとは何か?

プロンプトインジェクションは、大規模言語モデル(LLM)を操作するための入力、つまり、LLMが攻撃者の意図を実行するように操作することです。これは、AIのソーシャルエンジニアリングと見なすことができます。重要なのは、従来のソフトウェアのバグではありません。プロンプトインジェクション攻撃は、LLMの固有の脆弱性を利用します。LLMは、システムプロンプトとユーザープロンプトの両方をテキストシーケンスとして処理するため、正当な指令と有害な指令を区別することはできないからです。この脆弱性は、偶発的なものではなく、設計上のものです。

プロンプトインジェクションのテクニック

プロンプトインジェクションは、一般に、LLMアプリケーションのリスク#1と見なされます。理由は、開発された注入テクニックの多様性です。テクニックを4つのカテゴリに大まかに分類すると、最もよく知られているテクニックは次のとおりです:

  • 構文ベース:特殊文字、絵文字、または代替言語を使用
  • 間接:外部ソース(サイトからフェッチ)、エンコード(Base64)、またはマルチモーダル参照(画像内のテキスト)を使用
  • 「Let’s Pretend」:ロールプレイ、仮説、感情的なアピール、倫理的な枠組み、形式の切り替えなど、操作的なスタイルを導入する
  • ブラント:モデルへの指令を「強制」するための、ブルートフォース、強化、またはネガティブプロンプトの明示的な試み

単に多様性だけが開発者に課題を与えますが、これらの攻撃は急速に進化し続けています。以下の図の左側は、2023年初頭の最先端の状態を示唆していますが、右側は今日の攻撃の性質を反映しています。

攻撃ベクターの進化

LLMアプリケーションの開発者は、使いやすさと安全性のトレードオフを考慮する必要があります。彼らは、すべての適切な防御層と設計パターンを導入する可能性があります。しかし、どれだけのコストででしょうか?防御層は、重大な遅延を加え、誤検知(FP)を導入します。誤検知とは、安全なプロンプトを誤って悪意のあるものとしてフラグすることを指します。これらの両方の要因は、ユーザーエクスペリエンスに悪影響を及ぼします。したがって、実践ではある程度の妥協が避けられません。銀の弾丸のような解決策はありません。

しかし、この記事では、私はこの終わりなき猫と鼠のゲームに興味がありません。むしろ、攻撃が原則的に防げないかどうかを探っています。開発者または防御者の視点からすると、1つの重要な洞察があります:

プロンプト内の指令とデータの分離は、プロンプトインジェクションのリスクを解決する上で基本的なものです

トレードオフは要因ではないと仮定し、任意の防御層またはテクニックを使用できます。そう仮定して、プロンプト内の指令とデータの分離が実質的に不可能なシナリオを考えつくことができますか?

DNAアナロジー

問題が指令とデータの分離という観点で提示されたとき、私の最初の考えは、生物学をアナロジーとして使用することでした。

細胞とDNAのストレッチ(遺伝子と呼ばれる)を考えてみましょう。遺伝子は、転写と翻訳を通じてタンパク質を構築するための指示を提供します。また、タンパク質の構造と機能に影響を与える情報(データ)を符号化します。したがって、遺伝子は同時に何を構築するか、そしてどう構築するかを指示する、またはそう思ったのです。しかし、これは単純に間違っています。遺伝子は、自分自身を解釈する方法を決定しません。生物学では、遺伝子レベルで指令を実行することはありません。「どう」の部分は、完全に細胞の機構に外部化されています。

したがって、将来のLLMの世代 – またはより正確に、それらが進化するシステム – が生物学的機械にかなり似ているように感じることは、私が否定できないのですが、提案されたアナロジーは単純に機能しません。細胞をLLMに置き換え、遺伝子をプロンプトに置き換えて、最終的に「損傷した」タンパク質を構築することになる遺伝子への注入を実行することはできません。自然言語と、意味的解釈を必要とするタスクに留まる方が、より生産的です。

防御の層を剥がす

プロンプトインジェクション攻撃を阻止するためのマルチレイヤード防御戦略がより効果的であることは驚くことではありません。以下の画像は、最も一般的な防御層とそれぞれの層で使用されるテクニックを示しています。

プロンプトインジェクション防御層

入力層については、プロンプトのサニタイズまたは検証が間接的な攻撃を検出するのにかなり成功することは明らかです。しかし、注入が直接的で、上記の提案どおり、意味的解釈に頼っている場合、サニタイズは無関係(サニタイズするものはありません)であり、検証はデフォルトで不可能です。計算が完了して問題が特定されるまでです。

検出層には、基本的に、どれだけのガードレールを構築するかという限界はありません。実際、注入検出用に専用のLLMを使用することさえできます。しかし、もう一度、巧妙に隠された毒物を含むプロンプトを疑わしいとフラグすることは、分類器または異常検出器にとって難しいでしょう。

モデル層は、タスクの範囲が狭く、ファインチューニングが可能な場合にかなり効果的です。システム層についても、ツールの使用が予測可能な場合に同様の議論ができます。しかし、直感的には、どちらも注入が解釈を混乱させる場合にアラームを鳴らすことはありません。

ハウスオブカード

この記事を書き始めたときの私の意図は、広いストロークで「防げない」プロンプトインジェクション攻撃を説明することでした。もしかしたら、既存の防御層に穴をあけ続けた「非構成的」アプローチに従ったのかもしれません。 防御テクニックは急速に進化し続けています。攻撃の表面も同様です。 このゲームはまだ終了の兆しを見せていません。しかし、私も私たちがこれを長く遊び続けることはないと思います。私は、将来的に成功したプロンプトインジェクションはまだ自然言語で行われるでしょうが、人間が理解できない言語で行われるでしょう。たぶん、それは特定の目的のために構築されたシステムによって、または関連タスク(たとえば、表現空間内の意味的曖昧さの検索)に取り組む際に偶然に発見されるでしょう。

私たちがコントロールを失っていることを認めるのは苦痛ですが、しかし最も合理的なことであると感じるのは、ある種の不快感です。你はそれが最も合理的なことであると考えるでしょう。そうでない場合、あなたはこれらの議論が「論争的でも新しいものでもない」と判断し、私にポイントを強調するのをやめて記事を40%削減するように勧告したGPT 5.2に安心できるでしょう。

Eli VovshaはFortraのData Science Managerです。Data Scienceチームとともに、CEPおよびXDR製品で使用されるすべての機械学習(ML)モデルを開発・維持する責任があります。また、一般的なML研究も担当しています。スティーブンス工科大学院で応用数学の修士号を取得した後、コロンビア大学でコンピューターサイエンスの博士課程に進み、そこでは指導教員も務めました。後に、AIを活用した学習プラットフォームを構築することを目的としたEdTechスタートアップを共同設立し、ニューヨーク市の私立高校で数学とコンピューターサイエンスを教えました。大学院進学前に、エリはチェスに多大な時間を費やし、国際マスター(IM)タイトルを獲得しました。