AIエージェントを「賢さ」だけで守らない — Anthropicに学ぶ3層の封じ込め設計

AIエージェントの安全対策というと、モデルに危険な操作を拒否させたり、実行前に人へ確認したりする設計が先に浮かびます。しかし、能力と接続先が増えるほど「判断を絶対に間違えない」前提は危うくなります。Anthropicが2026年5月に公開した実運用の知見から見えてくるのは、賢さを監視するより、失敗しても届かない境界を先に作るという考え方です。

承認ダイアログは、最後の砦にならない

Anthropicによると、Claude Code利用者は権限確認の約93%を承認していました。確認が増えるほど一件ごとの注意が薄れる「承認疲れ」が起きるため、人が毎回見れば安全とは限りません。

さらに同社の管理されたレッドチーム演習では、研究者が従業員へ「このプロンプトを実行して」と依頼する形で攻撃しました。その指示には、認証情報を読み出して外部へ送る処理が紛れ込んでおり、同じプロンプトを25回試したうち24回で情報送信まで進んだと報告されています。利用者自身が入力した指示は、モデル側から見ると正規の依頼に見えやすいからです。

ここで重要なのは、モデルや利用者を責めることではありません。確認操作には確率的な見落としがあり、ゼロにはできないと認めることです。

守る対象を3層に分ける

Anthropicは、エージェントの防御対象を大きく3つに整理しています。

  • モデル:システム指示、分類器、学習などで危険な行動を選びにくくする
  • 実行環境:サンドボックス、仮想マシン、ファイル境界、外向き通信制御で到達範囲を制限する
  • 外部コンテンツ:MCP、プラグイン、Web検索などから入る未信頼データと権限を管理する

モデル層は「何をしようとするか」を整えます。一方、環境層は「何ができるか」を強制します。たとえば認証情報をサンドボックスへ入れず、許可先以外への通信を遮断しておけば、悪意ある指示をモデルが見抜けなくても被害範囲を狭められます。

用途ごとに隔離の強さを変える

同社は、製品の性格に応じて異なる隔離方式を採用しています。

  • claude.ai:セッションごとに消えるコンテナでコードを実行し、利用者の端末から分離
  • Claude Code:開発者の端末上で動くため、作業領域への書き込みを許しつつ、ネットワークを初期状態で拒否するOSレベルのサンドボックスを利用
  • Claude Cowork:一般利用者が難しいコマンドを判断する前提を置かず、仮想マシンと限定した共有フォルダで境界を固定

Claude Codeのサンドボックス導入では、権限確認が84%減ったとされています。境界を強くすると自由が失われるように見えますが、安全な範囲を先に決めれば、その内側では確認を減らして自律性を上げられます。

設計レビューで確認したい4項目

実務では、次の順で確認すると設計の穴を見つけやすくなります。

  1. 秘密情報:エージェントの実行環境に本当に置く必要があるか
  2. 外向き通信:必要な宛先だけに制限されているか
  3. ファイル権限:読み取り、書き込み、削除を別々に制御できるか
  4. 未信頼入力:リポジトリ設定、ローカル設定、MCPの返却内容を実行前に信用していないか

これは車両の機能安全にも似ています。制御ソフトが常に正しく判断すると期待するだけでなく、異常が起きても危険側へ広がらない独立した制約を置きます。AIエージェントでも、モデルの性能評価と被害範囲の設計は別のレビュー項目にするべきです。

まとめ

高性能なモデルは失敗を減らせますが、接続できる資源が増えれば、一度の失敗が持つ影響も大きくなります。安全なエージェント運用の核心は「絶対に間違えないAI」を待つことではありません。

  • 承認操作を過信しない
  • モデル、実行環境、外部コンテンツを別々に守る
  • 認証情報と通信経路を実行環境から切り離す
  • 用途と利用者の専門性に合わせて隔離方式を選ぶ

賢さは性能を上げます。境界は事故の大きさを決めます。エージェントを本番へ入れるなら、この2つを別々に設計することが出発点です。

公式ソース

※本文中の割合や試験結果はAnthropicが公開した自社製品・自社演習の値です。他のモデルや環境へそのまま一般化できる数値ではありません。