サンドボックスとは?AIエージェントに安全に作業を任せる囲い

AIエージェントにパソコンの中の作業を任せると、AIはファイルを書き換えたり、コマンドを実行したりします。便利な半面、まちがった操作や、だまされた操作をされたときに備えておく必要があるでしょう。
その備えの代表がサンドボックスです。本記事では、サンドボックスの仕組みと、AIエージェントでの使われ方を解説します。
サンドボックスとは
サンドボックスは、プログラムが触れられる範囲を限った、囲いの中の作業場所です。
英語で、子どもが遊ぶ砂場を意味する言葉です。砂場の中なら自由に遊べても、外には砂を持ち出せないというイメージが、名前の由来になりました。
サンドボックスとは、悪意があるかもしれないソフトウェアが、許された範囲より外のシステムの資源に触れないようにする、制限された実行環境を指します。信頼しきれないプログラムを、必要な権限だけに絞って動かすための仕組みです。
AIエージェントで使われる理由
AIエージェントは、自分で判断してコマンドを実行するものです。判断を誤ることもあれば、読み込んだ文章に紛れた指示にだまされるプロンプトインジェクションの被害を受けることもあります。
これまでは、AIが操作するたびに利用者が許可を出す方法で身を守ってきました。ただし、許可を求められる回数が多いと、利用者は中身をよく見ずに許可しがちです。Anthropicはサンドボックスを、あらかじめ決めた囲いの中でAIをより自由に動かすための仕組みと説明しています。囲いの中の操作は許可なしで進め、囲いの外に出るときだけ確認を求めればよいわけです。
Anthropicは、自社のClaude Codeでサンドボックスを使うと、社内での利用で許可を求める回数が84%減ったと報告しました。
ファイルと通信の2つの囲い
Anthropicの資料は、サンドボックスの囲いを2つに分けて説明しています。
1つ目はファイルの囲いです。AIが書き込めるのを、作業中のフォルダーなど決めた場所だけに限ります。OSの設定ファイルや、ほかのプロジェクトのファイルは書き換えられません。
2つ目は通信の囲いです。AIがつなげるのを、許可した接続先だけに限ります。知らないサーバーへ情報を送ったり、怪しいプログラムを取ってきたりはできません。
Anthropicによると、大切なのはこの2つをそろえることです。通信の囲いがなければ、AIが秘密の情報を外へ送れてしまいます。ファイルの囲いがなければ、囲いから抜け出して通信できるようになるためです。
この囲いは、AIの判断に頼らず、OSの仕組みで守られます。Claude Codeが使っているのは、macOSのSeatbelt、LinuxのbubblewrapというOSの機能です。
だまされても被害を囲いの中にとどめる
サンドボックスの強みは、AIがだまされても、被害を囲いの中にとどめられることです。
Anthropicは、プロンプトインジェクションが成功してしまっても、サンドボックスがあれば被害は囲いの中に閉じ込められると説明しています。たとえば、隠れた指示にだまされたAIが、パソコンの中の秘密の鍵を外部のサーバーへ送ろうとしても、通信の囲いがその接続を止めるのです。
限界もある
サンドボックスは万能ではありません。囲いの範囲と、囲いの外で動くものを知っておきましょう。
Claude Codeのドキュメントによると、サンドボックスが囲むのは、AIが実行するコマンドと、そこから起動されたプログラムです。ファイルを読み書きする専用の機能や、Webページを取ってくる機能、MCPのサーバーなどは、囲いの外で動き、別の許可の設定に従います。
初期設定のままだと、パソコンの中のほとんどのファイルは読める状態です。秘密の鍵のような大事なファイルは、読めないように設定を足してください。すべてを1つの囲いに入れたいときは、AIエージェントそのものを、仮想マシンやコンテナといった、より大きな囲いの中で動かす方法があります。