OWASP Agent Memory Guard:AIエージェント自身のメモリを悪用した攻撃を防御

AIエージェントは、セッションをまたいでメモリを保持します。会話履歴、ベクトルストア、スクラッチパッド、RAGインデックスはいずれも実行間で持続し、そのストアに書き込まれた内容は、後でエージェントが読み返す際に特権的な入力として機能します。攻撃者が不正なフィールドにテキストを埋め込むと、エージェントへの指示を上書きしたり、ユーザーデータを引き出したり、将来のツール呼び出しを操作したりすることが可能です。そして、メモリそのものが残り続けるため、その影響はセッションをまたいで持続します。

Image

Agent Memory Guardは、エージェントとメモリストアの間に位置するオープンソースのランタイム防御レイヤーです。すべての読み書きを、複数の検出器とYAMLポリシーで構成されたパイプラインを通じてスクリーニングします。このプロジェクトは、エージェント型アプリケーション向けOWASP Top 10の一項目である「ASI06:メモリポイズニング」に対するOWASPのリファレンス実装です。

このガードは、5つの主要な検出カテゴリで動作します。SHA-256ベースラインにより、不変キーへの帯域外改ざんを検出します。組み込みの検出器は、プロンプトインジェクションのマーカー、シークレット・PII漏洩、保護されたキーの変更、サイズ異常を検知します。YAMLポリシーは各検出結果をアクションにマッピングし、その選択肢は「許可」「リダクト」「隔離」「ブロック」の4種類です。すべての判断は構造化されたSecurityEventとして出力され、時点スナップショット機能によって管理者はメモリを既知の正常状態にロールバックできます。LangChain向けのドロップイン式チャット履歴クラスも用意されており、ミドルウェアパッケージがモデルの入出力およびツール出力をスクリーニングします。

ベンチマーク結果

ベンチマークは55件のテストケースを5つの検出器で処理します。内訳は4カテゴリにわたる40件の攻撃ペイロードと15件の正常サンプルです。再現率は92.5%、適合率は100%、偽陽性率はゼロを達成し、レイテンシの中央値は59マイクロ秒でした。プロンプトインジェクションおよび保護キーの改ざんはいずれも100%のスコアを記録。機密データ漏洩は83%、サイズ異常は80%でした。混同行列では、真陽性37件、偽陰性3件、偽陽性ゼロという結果です。

検出器が見逃すケース

機密データカテゴリについて、プロジェクト創設者でOWASPプロジェクトリーダーのVaishnavi Gudur氏はHelp Net Securityに対し、「見逃した2件のペイロードはいずれも、固定長の正規表現パターンをわずかに超えるAPIトークンです」と説明しています。1件はGitHubの個人アクセストークンで、ghp_プレフィックスの後の文字数が検出器の想定する36文字に対して37文字あり、もう1件はGoogleのAPIキーで、AIzaプレフィックスの後が想定の35文字に対して38文字でした。

漏洩検出器が固定長の量指定子を使用しているのは意図的な設計上の選択であり、ランダムな英数字文字列に対する偽陽性を抑えることを優先しています。その代わり、プロバイダーがトークン形式を拡張した場合には陳腐化するリスクがあります。3件目の見逃しは、58,913バイトにシリアライズされたネストされたJSON構造で、64KBのしきい値をわずかに下回っていました。あるキーの直前の値に対して10倍の増加を確認する二次チェックを導入すれば、本番環境での検出が可能になります。ベンチマークは各テストを先行状態のない新規のガードで実行しているため、こうした条件は再現されていません。Gudur氏によれば、より再現率の高い正規表現バリアントと適応的しきい値キャリブレーションはv0.3.0で実装予定とのことです。

回避手法と今後の展望

オープンソースのコードと可視化されたYAMLポリシーは、攻撃者がルールを読めることを意味します。「現在のルールベース検出器はあくまでも第一層です」とGudur氏は述べ、より高い脅威モデルを持つチームはオープンソース層の上に追加の検出機能を重ねる多層防御設計を採用していると説明しています。保護キーのチェックはキーパスを対象に動作するため、ルールを知っていても回避には繋がりません。また、SHA-256の整合性検証は、不変値が少しでも変更されると決定論的に不一致を検出します。一方、機密データのマッチングはより露出が大きく、base64エンコード、文字分割、ホモグリフなどを用いると、正規化前処理のない検出器を回避できる可能性があります。

適応型の回避テストも計画されています。inspect_evalsフレームワークに統合されたAgentThreatBenchでは、公開済みルールを考慮した回避対応型のペイロードセットが追加される予定です。防御面では、v0.4.0においてセマンティック特徴に基づくMLベースの異常検知が追加されるほか、v0.3.0ではカスタム検出器向けのプラグインインターフェイスが導入され、チームがオープンなYAML以外の場所で検出ロジックを管理できるようになります。

開発におけるAIの役割

Gudur氏は「GitHub Copilotはボイラープレートとスキャフォールディングに活用しました」と述べており、具体的にはテストセットアップ、CI/CD設定、pyproject.tomlファイル、プロバイダードキュメントと照合のうえ検証した正規表現パターンの草案、READMEセクションおよびdocstringへの利用を挙げています。

検出器パイプラインのアーキテクチャ、ポリシーエンジンの分離、MemoryStoreプロトコル、スナップショットおよびロールバックの仕組み、ソースクラスの来歴管理システムは、OWASP ASI06の脅威モデルに基づいて人間が設計したものです。40件のベンチマークペイロードも手作業でキュレーションされています。Gudur氏は、攻撃対象領域の特定、防御設計、厳選された敵対的コーパスによる検証こそが本プロジェクトの知的貢献であると強調し、ボイラープレートにCopilotを使用することは一般的な開発慣行であると述べています。

OWASP Agent Memory GuardはGitHubで無償公開されています。

翻訳元: https://www.helpnetsecurity.com/2026/06/01/owasp-agent-memory-guard/

ソース: helpnetsecurity.com