サンドボックスとは
サンドボックスは、プログラムを隔離した制限環境で動かし、他のデータやシステムへの影響を抑える仕組みです。英語ではsandbox(サンドボックス)と表します。
信頼できないコードへOS全体の権限を直接与えず、ファイル、ネットワーク、機器、メモリー、他処理などへのアクセスを境界と仲介役で制御します。
「中なら安全」ではなく、許可した能力だけで目的を達成させ、突破されても次の境界で止める防御 in深さの一層です。

制限するリソースを決める
メモリー、デバッグ、信号、ハンドル、IPCを名前空間・方針で制限する。
読み取り専用領域、一時ディレクトリー、利用者が選んだファイルだけを仲介役経由で渡す。
ネットワーク禁止、プロキシ経由、許可ドメイン・ポートだけなど、目的に必要な通信へ絞る。
カメラ、マイク、USB、GPU、位置へ個別権限と指示記号を持たせる。
専用利用者、トークン、対応能力、サービスアカウントへ分け、管理者権限を渡さない。
終了時に一時ディスク・メモリーを破棄し、次回をクリーン画像から始める。
ブラウザーはサイト・タブ・処理を分離する
ブラウザーはレンダリングエンジンを低権限処理へ置き、ネットワーク、ファイル選択画面、カメラなどを仲介役処理経由にします。サイト分離で異なるサイトを別処理へ分ける実装もあります。
ブラウザーサンドボックスを突破してOS権限へ出るサンドボックスエスケープがあるため、ブラウザーとOSを更新し、一般利用者で動かします。
モバイルアプリの権限もサンドボックスの一部
アプリごとに利用者IDと保存領域を分け、他アプリのデータへ直接アクセスさせません。写真選択画面や共有画面で利用者が選んだデータだけを渡せます。
アクセシビリティ、機器管理、ルート・制限解除など強い権限は境界を広げます。権限名だけでなく可能になる操作を確認します。
マルウェア分析では使い捨て環境にする
疑わしいファイルを隔離VM・エミュレーターで実行し、処理、ファイル変更、ネットワーク、レジストリ、メモリーを観察します。インターネットの代替サービスを用意し、第三者へ攻撃トラフィックを出さないようにします。
サンプルがVMや分析ツールを検知して挙動を隠す場合があります。動的分析だけで安全を断定しません。
VM・コンテナーと同義ではない
仮想システムは仮想ハードウェアとゲストOS、コンテナーはホストカーネルを共有する処理隔離です。どちらもサンドボックスとして使えますが、単にVM・コンテナーで動かすだけで安全な方針になるとは限りません。
ホストマウント、特権付きモード、機器直接受け渡し、管理ソケットを渡すと境界が大きく弱まります。
エスケープを前提に次の境界を置く
サンドボックス実装自体の脆弱性、カーネル、ドライバー、CPU、仲介役の認可不備から外へ出る可能性があります。ホストをパッチし、機密性の高いネットワークから分離し、重要認証情報を置きません。
分析サンドボックスは使い捨てにし、スナップショット切り戻しだけでなくゴールデンイメージから定期再作成します。
ファイルを外へ取り出す瞬間を検査する
サンドボックス内で生成・ダウンロードしたファイルをホストへ書き出しすれば、境界外で実行されます。コンテンツタイプ、署名、スキャン、手動レビューを行い、実行権限を自動で付けません。
サンドボックスの安全性は囲いの名前ではなく、何を内側へ入れ、どのリソースをどの検査点で渡し、終了後に何を外へ残すかで決まります。
sandboxとapplication isolationの確認資料:NIST CSRC Glossary「Sandbox」、Chromium「Sandbox」design document