🔒 サンドボックスとは?
ブラウザ・モバイル・クラウドまで守る隔離技術のすべて
サンドボックス (Sandbox) は「アプリやコードを安全な“砂場”に閉じ込める」
セキュリティ手法です。プロセスやファイルをOS 内で論理的に隔離し、
悪意ある振る舞いがシステム全体へ波及するのを防ぎます。
本記事では 基本原理 から ブラウザ / モバイル / クラウドの実装例 、
メリット・デメリット、導入ベストプラクティスまで網羅的に解説します。
1. サンドボックスの基本原理
1.1 権限分離とリソース制限
- 権限分離:システムコールをフィルタリングし、ファイルアクセスやネットワークを制限
- リソース制限:CPU / メモリ / ディスク I/O をクォータで縛る
- 監査ログ:サンドボックス外への脱出試行を検知
1.2 仮想化・コンテナとの違い
技術 | 隔離レイヤ | 起動速度 | 代表例 |
---|---|---|---|
仮想マシン | ハイパーバイザ | 秒〜分 | KVM / Hyper-V |
コンテナ | 名前空間 + cgroup | 100 ms | Docker / containerd |
サンドボックス | OS API | ~10 ms | seccomp, App Sandbox, WebAssembly |
2. 代表的な実装例
2.1 ブラウザサンドボックス
Chrome / Edge はタブごとに --type=renderer
プロセスを立て、
seccomp-bpf でファイル I/O を禁止。
さらに SANDBOXED
フラグ付 iframe (sandbox="allow-scripts"
) で
広告・サードパーティを隔離します。
2.2 モバイル OS
- iOS App Sandbox:アプリごとに UID を割当てファイルを完全分離
- Android SELinux:アプリ UID + SELinux ポリシーで双方向隔離
2.3 Windows Sandbox
Windows 10 Pro 1903+ で利用可能。軽量 VM 上にクリーン OS を即時起動し、
ブラウザ検証や不審ファイルを安全に実行→閉じれば完全破棄できます。
2.4 クラウド (AWS Lambda / Firecracker)
Firecracker は MicroVM を 125 ms でスピンアップし、
各関数をVM ベースで隔離。コールドスタートを最小化しつつ
マルチテナントの安全性を担保します。
3. メリット / デメリット
✔️ Pros
- マルウェアが OS 本体に到達する前に遮断
- CI/CD で安全に untrusted code をテスト
- モバイルでアプリ間のプライバシー分離
❌ Cons
- Syscall フィルタ設定を誤るとアプリが動かない
- GPU / ネットワーク I/O 最適化が必要
- 高粒度ログ → オブザーバビリティが複雑化
4. 導入ベストプラクティス
- 最小権限の原則 ― 必要な Syscall だけホワイトリスト
- Defense in Depth ― サンドボックス + コンテナ + VM を多層化
- 監査ログ ― 逃亡試行を SIEM に送信しリアルタイム検知
5. FAQ
- Q. Docker とサンドボックスは併用できる?
-
可能です。Docker 内プロセスへさらに
seccomp
プロファイルを適用すれば
二重隔離を実現できます。 - Q. WebAssembly はサンドボックス?
-
ワスム VM はメモリを線形領域に限定し、Syscall をホスト関数経由に制御する
ため “ユーザ空間サンドボックス” とみなせます。
6. まとめ
サンドボックスは 「高速 + 低オーバーヘッド + 高セキュリティ」
を同時に狙えるモダン隔離技術です。
ブラウザ、モバイル、クラウドネイティブと適用領域が広がるいま、
ぜひ自社プロダクトにも導入してゼロトラスト時代の攻撃面を最小化しましょう。