Skip to content

AIエージェントの実行承認(HITL)における設計的限界とサンドボックス防衛の優位性

1. 概要

自律型AIエージェントの安全性を担保する手法として、コマンド実行前に人間の承認を求める「Human-in-the-Loop(HITL)」モデルが多く採用されている。 しかし、Claude Code(anthropics/claude-code#65910 および #18375)等のインシデント事例は、人間の認知能力やUIスタックの設計に依存する承認モデルが、構造的に深刻なセキュリティ脆弱性をはらんでいることを示している。 本稿では、手動承認モデルの限界を整理し、サンドボックス物理隔離(sunaba)による境界防御アプローチとの比較分析を行う。


2. 手動承認(HITL)モデルにおける2大脆弱性

2.1. LIFOスタックと承認すり替わり(レースコンディション)

並行処理または非同期でコマンドを実行するエージェントにおいて、人間への承認プロンプトの管理スタックが後入先出(LIFO: Last In, First Out)で設計されている場合、以下のレースコンディション脆弱性が発生する(claude-code#65910)。

  1. エージェントが「コマンドA(安全な読み取り操作等)」を実行しようとし、人間に承認プロンプトを表示する。
  2. 人間が画面に表示された「コマンドA」を確認し、承認ボタン(OK)を押そうとする。
  3. クリックされる直前のわずかな時間(ミリ秒単位)に、別の非同期プロセスでエージェントが「コマンドB(破壊的または悪意あるインジェクションコマンド)」の承認を要求する。
  4. プロンプトスタックのLIFO動作により、確認画面の表示が瞬時に「コマンドB」に置き換わる。
  5. 人間は「コマンドA」を承認したつもりでボタンをクリックするが、システムは「コマンドB」の承認を受理し、実行する。

このバグは、エージェントの自律的な非同期動作と人間の視覚的確認のタイムラグを突いたものであり、UIの実装レベルで極めて防ぐことが難しい。

2.2. 承認疲れ(Prompt Fatigue)と「Allow Always」による永久フリーパス化

AIエージェントが頻繁に実行承認を求めてくる環境では、人間に「承認疲れ(プロンプト疲れ)」が発生する。この認知負荷を軽減するため、UIには「今後このコマンドを常に許可(Allow Always)」という選択肢が設けられることが多い。

しかし、この設計は以下の致命的なリスクを伴う(claude-code#18375)。

  • ユーザーが一時的な利便性のために rm -rfgit push、あるいは外部疎通を伴うコマンドに対して「常に許可」を誤って選択してしまう。
  • 以降、エージェントは人間の確認を得ることなく、インジェクションされた破壊的・悪意ある操作をフリーパスで自動実行可能になる。
  • このため、特定の危険なコマンドパターンに対しては「常に許可」の選択肢自体を強制的に非表示にし、毎回の手動承認(Explicit Approval)を強制する機能が必要とされる。

3. サンドボックス物理隔離(sunaba)による構造的アプローチ

これらの課題に対し、エージェントの検証環境をコンテナとして物理隔離する sunaba のアーキテクチャは、人間の認知限界やUIの脆弱性に依存しない「境界防御」を実現している。

3.1. 承認プロンプト(ポップアップ)の排除

sunaba では、AIエージェントに対して実行前のポップアップ承認を求めない。コンテナ内部(檻の中)においては、エージェントは完全に自由であり、ファイルの変更やシェルコマンドの実行をノーポップアップで高速に繰り返す。これにより、手動承認モデルの最大の弱点であった「承認疲れ」および「UIすり替わりバグ」がシステム設計レベルで完全に排除される。

3.2. 境界における「物理的なセキュリティ制御」

エージェントに自由を与える代わりに、以下のセキュリティバリアを物理的に敷くことで安全性を担保する。

  • Egress Proxyによる通信制限: コンテナからのアウトバウンド通信を、ホワイトリスト化された信頼できるドメイン(GitHub API 等)のみに制限し、悪意あるコードがシークレットキーを外部に送信するのを防ぐ。
  • 特権の隔離 (mcp-launcher): 認証情報の保持やトークンのミント処理は、VMホスト側のセキュアなキーストア(Keyring)に隠蔽し、コンテナ(エージェント)には読み取り専用のソケットのみを公開する。

4. まとめ

手動でエージェントを制御する承認モデルは、UIスタックのバグや人間の注意力の限界(認知限界)により、セキュリティ境界として機能しなくなるリスクが高い。 これに対し、コンテナによる物理的隔離とEgress制限を行うサンドボックスモデルは、人間をバイパスしつつ、システム構造によって安全性を担保する。この「檻の中は全自動、檻の外側は物理防御」という設計こそが、自律型AIエージェントを稼働させる上で最も堅牢なアーキテクチャであるといえる。


5. 参考文献 / 一次情報

Shiori pointer-RAG automation experiment.