agent-security について
AI エージェントのセキュリティ評価向けのテスト方法論です。OWASP ASI01~ASI10に沿って、ツール、メモリ、コード実行、マルチエージェント通信などを調査・検証します。
主な機能
- 01OWASP ASI01~ASI10リスク一覧
- 02エージェント構成と権限の調査
- 03目標乗っ取りとツール悪用のテスト
- 04サプライチェーンとコード実行の確認
- 05メモリ汚染とマルチエージェントのテスト
- 06監視、連鎖障害、停止機構の確認
活用シーン
- 01注入指示によるエージェントの誘導を評価
- 02ツール呼び出しと権限境界を確認
- 03永続メモリとサードパーティーコンポーネントを監査
- 04マルチエージェントのメッセージと停止機構を検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ wgpsec/ aboutsecurity --skill agent-securityインストール後、Claude Code で/agent-securityを入力して読み込まれたか確認します。
同梱ファイルreferences/agent-attack-scenarios.md
詳細
AI エージェント安全性テストの方法論
概要
AI エージェントと一般的な LLM アプリケーションの本質的な違いは、自律的に行動する能力にあります。エージェントはツール呼び出し、コード実行、永続的な記憶、複数ステップの計画能力を備えているため、一度の注入が成功すると、誤ったテキストを生成するだけでなく、実際のシステム操作を引き起こす可能性があります。攻撃対象領域は「モデルの出力」から「ツール実行チェーン、エージェント間通信、永続化された状態」まで、スタック全体に広がっています。
詳細な参考資料
- 各 ASI 番号の詳細な攻撃シナリオ、ペイロード、テスト方法 → references/agent-attack-scenarios.md
OWASP ASI01-ASI10 リスク早見表
| 番号 | リスク名 | 主なテスト項目 |
|---|---|---|
| ASI01 | 目標の乗っ取り | 直接/間接注入によってエージェントの実行目標を変更できるか |
| ASI02 | ツールの悪用 | 未承認のツール呼び出し、パラメーター注入、説明文のポイズニング |
| ASI03 | ID と権限 | エージェントの権限が最小権限の原則に従っているか、認証情報が分離されているか |
| ASI04 | サプライチェーン | サードパーティの Skill/Plugin/MCP Server は信頼できるか |
| ASI05 | コード実行 | サンドボックスからの脱出、任意のコマンド注入 |
| ASI06 | メモリポイズニング | 永続化されたコンテキスト/過去の会話を汚染できるか |
| ASI07 | マルチエージェント通信 | エージェント間のメッセージ偽造、信頼伝播チェーンの脆弱性 |
| ASI08 | 連鎖障害 | 単一エージェントの障害が連鎖的なクラッシュを引き起こすか |
| ASI09 | 人間と機械の信頼 | ユーザーがエージェントの出力を無条件に信頼して実行するか |
| ASI10 | 制御不能なエージェント | 有効な終了/ロールバック機構があるか |
方法論の概要
Phase 0: エージェントアーキテクチャの偵察
- エージェントの種類(単体の ReAct/マルチエージェントオーケストレーション/コード実行型)と基盤フレームワーク(LangChain/AutoGen/CrewAI など)を特定する
- エージェントが利用できるツールセット、権限境界、通信トポロジー(Hub-Spoke/Mesh/階層型)を列挙する
- 人間による監督(Human-in-the-loop)の位置と適用範囲を確認する
Phase 1: 目標の乗っ取りテスト (ASI01)
- 直接の会話や間接的なデータソース(ファイル、Web ページ、API の応答)を通じて指示から逸脱する内容を注入し、エージェントが想定外の操作を実行するか確認する
- 重要な判断点:エージェントの目標固定機構は、コンテキストウィンドウ内の敵対的な指示に耐えられるか
Phase 2: ツールの悪用テスト (ASI02)
- 悪意のあるツールパラメーター(パストラバーサル、コマンド連結)を作成し、エージェントがユーザー制御可能な入力をツール呼び出しに無条件で渡すかをテストする
- ツールの説明文のポイズニングをテストする。悪意のある説明によって、エージェントのツール使用方法を変更できるか確認する(詳しくは
mcp-securityを参照)
Phase 3: サプライチェーンとコード実行 (ASI04/ASI05)
- サードパーティの Skill/Plugin/Rules ファイルに隠し指示やバックドアが含まれていないか確認する
- コード実行型エージェント:サンドボックスの分離強度をテストし、ファイルシステムへのアクセス、外部ネットワークへの接続、プロセスからの脱出を試みる
Phase 4: メモリポイズニングと永続化 (ASI06)
- エージェントの会話履歴や長期記憶に悪意のあるコンテキストを注入し、後続のセッションで有効化されるか確認する
- メモリの書き込み/読み取り権限の制御をテストする。非特権のやり取りによってシステムレベルのメモリを変更できるか確認する
Phase 5: マルチエージェント通信の安全性 (ASI07)
- マルチエージェントシステムで別のエージェントからのメッセージを偽造し、受信側がメッセージの送信元を検証するかテストする
- 信頼伝播チェーンを確認する。エージェント A がエージェント B を信頼している場合、B への攻撃によって間接的に A を制御できるか
Phase 6: 監視と Kill Switch (ASI08/ASI10)
- 連鎖障害を検証する。単一エージェントの異常な出力が、下流のエージェントに無条件で信頼され、増幅されるか確認する
- 終了機構(Kill Switch)の有効性をテストする。制御不能な状態のエージェントを確実に中断できるか確認する
実践的な検査チェックリスト
1. [ ] Agent 类型与架构已识别?工具集、权限模型、通信拓扑已枚举?
2. [ ] 目标劫持:间接数据源注入能否改变 Agent 执行流?
3. [ ] 工具滥用:用户输入是否直接拼接到工具参数?
4. [ ] 权限边界:Agent 是否运行在最小权限下?凭据是否隔离?
5. [ ] 供应链:第三方组件是否经过安全审计?
6. [ ] 代码执行:沙箱是否能阻止文件/网络/进程访问?
7. [ ] 记忆系统:是否有写入权限控制?历史是否可被投毒?
8. [ ] 多 Agent:消息来源是否验证?信任传递链是否可被利用?
9. [ ] 级联故障:异常是否被隔离?是否存在全局 Kill Switch?
参考資料
コメント
Markdown 対応