Hello there, ('ω')ノ
過剰なエージェンシーとは?
AIに便利さを追求して「いろんな拡張機能」や「自律的な判断」を与えると、思わぬリスクが発生します。例えば:
拡張機能が多すぎる(Excessive Functionality) → 必要ないのに「削除」や「書き換え」までできる。
権限が強すぎる(Excessive Permissions) → 本当は「読み取り専用」でよいのに、書き込み・削除まで許されている。
自律性が高すぎる(Excessive Autonomy) → 人間の確認なしで勝手に重要操作を実行してしまう。
つまり、**「AIに与える自由度が大きすぎると、攻撃者に利用されやすい」**という問題です。
具体例:初心者でもイメージしやすい攻撃シナリオ
例 1:機能過剰(Excessive Functionality)
- 攻撃:文書検索用の拡張機能に「文書削除」機能まで入っている。
- AIの誤作動:誤って「削除」コマンドを実行。
- 被害:重要ファイルの消失。
- 簡単防御:不要な機能を削除し、最小限の拡張だけを提供する。
例 2:権限過剰(Excessive Permissions)
- 攻撃:ユーザーの文書を読むだけのはずが、管理者権限で接続している。
- AIの誤作動:他人のファイルまで読み込んでしまう。
- 被害:大規模な情報漏洩。
- 簡単防御:最小権限の原則を徹底し、ユーザーごとのスコープで実行。
例 3:自律性過剰(Excessive Autonomy)
- 攻撃:プロンプトインジェクションで「このファイルを消せ」と指示。
- AIの誤作動:確認なしに削除を実行。
- 被害:データ損失、業務停止。
- 簡単防御:高リスク操作は必ず人間の承認を必須にする。
ハッカー(攻撃者)の視点で考えると何がポイントか?
- 攻撃対象:拡張機能・外部API・プラグイン。
- 狙い:削除・変更・外部送信など、本来不要な操作を引き出す。
手口:
- プロンプトインジェクションで「誤作動」を誘発。
- 権限が強い拡張を悪用。
- 確認なしの自動操作を狙う。
攻撃者は「AIが勝手に動く部分」を見つけて利用します。
初心者でもすぐできる“やるべき”防御チェックリスト
- 不要な拡張は提供しない(最小機能)
- 拡張に持たせる権限は最小限に制限
- 高リスク操作には必ず人間の承認を要求
- ユーザーごとの認証・権限スコープで実行
- 出力をそのまま実行せず、検証とフィルタリングを挟む
- ログと監査を必須化し、異常操作を検出
- レート制限をかけ、誤作動の連鎖を抑制
少し高度だが効果的な対策
- 完全仲介(Complete Mediation):必ず下流システムで認可を再確認。
- オープンエンド拡張を避ける:シェル実行やURL取得ではなく、専用機能を用意。
- セキュア開発手法(SAST/DAST/IAST)をパイプラインに組み込む。
- サニタイズ強化:LLM入力・出力ともにフィルタを徹底。
実用チェックリスト
- 拡張機能に「不要な操作」が含まれていないか?
- 拡張の権限は最小化されているか?
- 高リスク操作に人間の承認を必須にしているか?
- 拡張の認証はユーザー単位で制御されているか?
- LLMの出力をそのまま外部に渡していないか?
- ログや監査で拡張の挙動を監視しているか?
- レート制限を設けているか?
まとめ
過剰なエージェンシーは「AIに自由を与えすぎること」が原因で生まれる脆弱性です。機能・権限・自律性を必要最小限に抑え、人間の承認・完全仲介・監査を組み合わせることで、攻撃者に悪用されるリスクを最小化できます。
Best regards, ('ω')ノ