ai-identity-security について
AI アプリケーションの ID と権限境界を評価するセキュリティテスト手法です。ロール逸脱、不正な操作、マルチエージェントのなりすまし、セッションと認証情報の安全性を扱います。
主な機能
- 01認証・権限・セッション構成の調査
- 02アプリケーションのロール逸脱をテスト
- 03Action と MCP の認可を確認
- 04マルチエージェントの ID 偽装をテスト
- 05セッションと認証情報の漏えいを確認
活用シーン
- 01カスタマーサービス Bot のロール制限を評価
- 02MCP サーバーのリソースアクセス制御を確認
- 03マルチテナントのデータ分離を検証
- 04セッショントークンや API Key の漏えいを調査
MCP 対応
MCP サーバーの認可と未承認リソースアクセスに関するテストを含み、mcp-security を参照しています。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ wgpsec/ aboutsecurity --skill ai-identity-securityインストール後、Claude Code で/ai-identity-securityを入力して読み込まれたか確認します。
同梱ファイルreferences/identity-attack-techniques.md
詳細
AI アイデンティティと権限のセキュリティテスト手法
概要
AI アイデンティティセキュリティとは、アプリケーション層の役割設定と権限境界の信頼性に関するものです。prompt-jailbreak(モデルの安全性アラインメントを対象とする攻撃)とは異なり、アイデンティティセキュリティテストでは、業務上 AI に付与された役割の制限、権限の割り当て、セッションの分離、認証情報の管理を回避できないか検証します。エージェントがツール呼び出しと外部システムへのアクセス能力を得ると、アイデンティティの制御不能による影響は「言うべきでないことを言う」から「するべきでないことをする」へと深刻化します。
攻撃対象領域の概要
| 攻撃カテゴリ | サブ攻撃 | GAARM 番号 |
|---|---|---|
| 役割の逸脱 | 仮定のシナリオ / 仮定の役割 / 忘却手法 / 目標の乗っ取り | 0052.001-004 |
| 権限の制御不能 | Action モジュールの権限昇格 / MCP の未認可リソース取得 / アカウント権限昇格 | 0053/0057/0058 |
| アイデンティティの偽造 | セッショントークンの窃取 / エージェントのなりすまし / 信頼チェーンの欺瞞 | 0059 |
| セッションと認証情報 | セッションのハイジャック / キャッシュの欺瞞 / API Key の漏えい | 0055/0056 |
詳細な参考情報
- 各攻撃カテゴリの詳細なテスト Payload、攻撃チェーン、検出方法 → references/identity-attack-techniques.md
Phase 0: アイデンティティアーキテクチャの偵察
- エージェントの認証方式を特定します(API Key / OAuth / Session Token / 認証なし)
- 権限モデルを列挙します(RBAC / ABAC / 明示的な権限管理なし)。役割設定の実装方法(system prompt / コードロジック / 設定ファイル)も確認します
- セッション管理の仕組みを調査します(セッション ID の生成方法、有効期限ポリシー、セッション間の分離レベル)
Phase 1: 役割の逸脱テスト (GAARM.0052)
- 仮定のシナリオからの逸脱:混乱を招くシナリオを作成してモデルを本来の作業目標から逸らし、キーワードを使ってシステム設定の漏えいを試みます
- 仮定の役割からの逸脱:特定の役割(DAN / 開発者モード)を演じるよう求め、アプリケーション層の役割制限を無視させます
- 忘却手法による逸脱:モデルに先行する役割指示を「忘れる」よう誘導し、制約のない状態にリセットさせます
- 目標の乗っ取り:操作を通じて AI を本来の役割設定から逸らし、攻撃者が期待するタスクを実行させます
役割の逸脱と脱獄の境界:jailbreak はモデルの安全性アラインメントを攻撃し(モデルに有害なコンテンツを生成させる)、役割の逸脱はアプリケーションの業務上の役割設定を攻撃します(カスタマーサポート Bot に管理操作を実行させる)。両者は組み合わせて使用できますが、テストの目的は異なります。
Phase 2: 権限の制御不能テスト (GAARM.0053/0057/0058)
- Action モジュールの権限昇格:Prompt インジェクションまたはパラメーターの改ざんを通じて、エージェントに認可範囲を超える Action(通常の検索操作を管理操作に置き換えるなど)を実行させます
- MCP の未認可リソース取得:MCP Server の権限検証に不備がないかテストし、悪意のある Server が権限チェックを回避してシステムリソースにアクセスできるか確認します(詳細は
mcp-securityを参照) - アカウント権限昇格:マルチテナント環境で、エージェントがアカウントをまたいでデータにアクセスできないか検証します
Phase 3: マルチエージェントのアイデンティティ偽造 (GAARM.0059)
- セッショントークンの窃取:Prompt インジェクションを通じて、エージェントにセッション認証情報を出力させたり、外部エンドポイントに送信させたりします
- エージェントのなりすまし:マルチエージェントシステムで、高権限エージェントからのメッセージを偽造し、対象のエージェントを欺いて権限外の操作を実行させます
- 信頼チェーンの欺瞞:エージェント間の暗黙の信頼関係を悪用し、低権限エージェントを侵害して高権限エージェントを間接的に制御します
Phase 4: セッションと認証情報のセキュリティ (GAARM.0055/0056)
- セッションのハイジャック:セッション ID の予測可能性、固定性、転送時の安全性をテストします
- キャッシュの欺瞞:CDN/プロキシキャッシュによって、認証情報を含むレスポンスが漏えいする可能性がないか検証します
- API Key の漏えい:エージェントの設定に含まれる認証情報を、Prompt インジェクションを通じて誘導し、出力させられないか確認します
検出チェックリスト
1. [ ] 身份架构已侦察?认证方式、权限模型、会话管理机制已明确?
2. [ ] 角色逃逸:假定场景/角色/遗忘法/目标劫持是否能突破角色设定?
3. [ ] 权限失控:Action 参数是否可被篡改?MCP 权限验证是否完整?
4. [ ] 身份伪造:多 Agent 间消息来源是否经过验证?信任链是否可被利用?
5. [ ] 会话安全:会话 ID 是否安全生成?是否存在固定会话攻击面?
6. [ ] 凭据管控:API Key 和 Token 是否可通过注入被泄露?
7. [ ] 跨租户隔离:多租户场景下数据访问边界是否可靠?
参考資料
コメント
Markdown 対応