
LLMセキュリティ
LLMセキュリティは、プロンプトインジェクション、ジェイルブレイク、データ流出、RAGポイズニング、モデル悪用などのAI固有の脅威から大規模言語モデルのデプロイメントを保護するために使用される実践、技術、制御を包含します。...

コンテキストウィンドウ操作とは、大規模言語モデルの有限なコンテキストウィンドウを悪用する攻撃を指し、コンテキストスタッフィング、コンテキストオーバーフロー、戦略的ポイズニングなどを含み、パフォーマンスを低下させたり、悪意のあるペイロードを隠したり、以前の指示を上書きしたりします。
コンテキストウィンドウは、大規模言語モデルのデプロイメントにおいて最も重要でありながら最も理解されていないセキュリティ境界の1つです。これは、LLMが単一の推論呼び出し中にアクセスできる情報を定義し、攻撃者が意図的に悪用できる有限のリソースです。
大規模言語モデルはテキストをトークンとして処理します(トークンあたり約3/4の単語)。コンテキストウィンドウは、モデルが一度に処理できるトークンの最大数を定義します。最新のモデルは4Kから100万トークン以上の範囲ですが、すべてに制限があります。
コンテキストウィンドウ内で、LLMは以下を処理します:
これらすべてはモデルに対して統一されたストリームとして表示されます。モデルには、異なるソースからの指示を異なる方法で扱う固有のメカニズムはなく、コンテキストの特定の部分への注意は均一ではありません。
攻撃者は非常に大きな入力(多くの場合、長いドキュメント、コードブロック、またはテキストダンプ)を送信して、以前のコンテンツ(特にシステムプロンプト)をモデルの現在位置から遠ざけます。
研究により、LLMは「中間で迷子になる」動作を示すことが実証されています:長いコンテキストの最初と最後のコンテンツにより多くの注意を払い、中間の情報にはあまり注意を払いません。コンテキストをフラッディングすることで、攻撃者は悪意のあるペイロード(通常は最後)を戦略的に配置し、以前の安全指示を注意の低い中間ゾーンに漂わせることができます。
実用例: チャットボットのシステムプロンプトは、競合製品について議論できないことを確立しています。攻撃者は50,000トークンのドキュメントを送信し、その後に競合他社について尋ねるプロンプトを続けます。システムプロンプトの指示は事実上希釈されています。
コンテキストがいっぱいになると、LLMまたはそのインフラストラクチャは何を削除するかを決定する必要があります。切り捨てが最新性を優先する場合(最も古いコンテンツを最初に削除)、攻撃者はコンテキストをオーバーフローさせてシステムプロンプトを完全に削除できます。これにより、モデルはユーザー提供のコンテキストのみで動作することになります。
攻撃シーケンス:
RAGシステムでは、取得されたドキュメントが大量のコンテキストスペースを消費します。RAGポイズニング を通じて取得されるものに影響を与えることができる攻撃者は、正当な情報を締め出しながら、自分の目標に役立つコンテンツでコンテキストを選択的に埋めることができます。
研究により、コンテキスト内の特定の位置にある指示が不均衡な影響力を持つことが特定されています。コンテキストの組み立てを理解している攻撃者は、ペイロードに対して高注意位置に着地するように設計された入力を作成できます。
非常に長いコンテキスト(数十万トークン)をサポートするモデルでは、攻撃者は実際の悪意のあるリクエストの前に、モデルがポリシー違反の出力を生成することを示す数百の「デモンストレーション」例を埋め込むことができます。これらのデモンストレーションによって条件付けられたモデルは、従う可能性が大幅に高くなります。
セキュリティ上重要なすべての指示をシステムプロンプトの最初にのみ配置しないでください。主要な制約をシステムプロンプトの最後に繰り返し、長い会話の重要なポイントで簡潔なリマインダーを注入することを検討してください。
ユースケースに適した最大入力長の制限を実装します。カスタマーサービスチャットボットが100,000トークンの入力を処理する必要があることはめったにありません。これを制限することで、フラッディング攻撃のリスクが軽減されます。
コンテキストのサイズと構成をログに記録し、監視します。異常に大きな入力、急速なコンテキスト成長、または予期しないコンテキスト構成は、潜在的な攻撃の指標です。
長時間実行される会話の場合、生の会話履歴ではなく、主要な事実と制約を保持するコンテキスト要約を実装します。これにより、会話の連続性を維持しながらオーバーフロー攻撃に抵抗します。
AIペネトレーションテスト エンゲージメントにコンテキスト操作シナリオを含めます。長いコンテキスト全体で安全動作が保持されるかどうか、およびコンテキストフラッディング後もシステムプロンプトが効果的であるかどうかをテストします。
コンテキストウィンドウとは、大規模言語モデルが一度に処理できるテキストの量(トークンで測定)です。これには、システムプロンプト、会話履歴、取得されたドキュメント、ツールの出力が含まれます。モデルがセッション中に「知っている」すべてのものは、このウィンドウ内に収まる必要があります。
攻撃者は、無関係なコンテンツでコンテキストをフラッディングして、初期の指示(安全ガードレールを含む)をモデルの効果的な注意の範囲外に押し出したり、長いコンテキストに埋め込まれてフィルターに見落とされる悪意のあるペイロードを注入したり、コンテキストの切り捨て動作を悪用して、正当な指示が残らない一方で悪意のあるコンテンツが生き残るようにしたりできます。
防御策には以下が含まれます:重要な指示をコンテキストの複数の位置に配置する(最初だけではなく)、コンテキストサイズの制限を実装する、異常に大きなコンテキストペイロードを監視する、長い会話にコンテキスト要約を使用する、セキュリティ評価でコンテキスト操作シナリオをテストすることです。
コンテキストウィンドウ操作は過小評価されている攻撃面です。当社のペネトレーションテストには、コンテキストオーバーフローと戦略的ポイズニングのシナリオが含まれています。

LLMセキュリティは、プロンプトインジェクション、ジェイルブレイク、データ流出、RAGポイズニング、モデル悪用などのAI固有の脅威から大規模言語モデルのデプロイメントを保護するために使用される実践、技術、制御を包含します。...

OWASP LLM Top 10は、大規模言語モデル上に構築されたアプリケーションにおける10の最も重要なセキュリティおよび安全性リスクの業界標準リストであり、プロンプトインジェクション、安全でない出力処理、トレーニングデータポイズニング、モデルサービス拒否、およびその他6つのカテゴリをカバーしています。...

AIエージェントのためのコンテキストを設計する方法を学びましょう。ツールフィードバックの管理、トークン使用の最適化、オフロード・圧縮・分離といった戦略の実装により、大規模運用でも安定して動作するプロダクション品質のエージェントを構築します。...