結論: サンドボックスとは、プログラムを、本物のPCやデータから切り離した「隔離環境」で動かす仕組みです。名前の由来は、子どもが砂場(sandbox)の中なら、自由に遊んでも周りが汚れない、というイメージです。怪しいファイルを、隔離した部屋の中で動かして挙動を観察したり、アプリやブラウザを互いに隔離して被害を広げにくくしたりするのに使われます。ただし、万能ではなく、多層防御の一部と考えるのが正しい使い方です。
サンドボックスの仕組み
サンドボックスの基本は、**「中で何が起きても、外に影響しない」**ようにすることです。
典型的な流れは、次のとおりです。
- 疑わしいファイル(メールの添付、ダウンロードしたファイル、未知のURLなど)を受け取る
- 本物のPCやデータから切り離した、隔離環境で、そのファイルを実際に動かす
- 挙動を観察する(外部のサーバーに通信しようとしないか、ファイルを書き換えないか、設定を変えないか、など)
- 危険な動きがあれば遮断し、安全と判断できれば、利用者に届ける
「怪しいかどうか」を、ファイルの見た目や名前だけで判断するのではなく、実際に動かして確かめるのが、サンドボックスの特徴です。
サンドボックスが使われる3つの場面
「サンドボックス」という言葉は、場面によって、少し意味が違います。目的は、いずれも**「影響を、決まった範囲に閉じ込める」**ことです。
① 怪しいファイルの検査(セキュリティ製品)
メールの添付ファイルや、Webからダウンロードされるファイルを、利用者に届く前に、隔離環境で動かして調べる使い方です。メールセキュリティや、ネットワークの入口に置く製品、クラウドの検査サービスなどに、この機能があります。
これは、未知の不正プログラムに対して、特に意味があります。既知のパターンに合致しなくても、「動かしてみたら、おかしな通信をした」と分かれば、危険と判断できるからです。
② ブラウザやアプリの分離
普段使っているブラウザや、スマホのアプリにも、サンドボックスの考え方が組み込まれています。
- ブラウザ:タブや拡張機能を、それぞれ分離した領域で動かし、1つのタブが乗っ取られても、ほかのタブやPC全体に広がりにくくする(Chromeなどが採用している考え方です)
- スマホのアプリ:アプリごとに、使えるデータや機能を区切り、他のアプリのデータを勝手に読めないようにする
- PCのOS:アプリの権限を、必要な範囲に絞る機能
利用者は気づきにくいのですが、**「あるアプリの不具合が、全体に広がらない」**のは、この仕組みのおかげです。
③ 開発・テスト用の環境(sandbox環境)
システム開発の世界では、「sandbox環境」と言えば、本番に影響しないテスト用の環境を指すことが多いです。
たとえば、決済サービスやSNSのAPI連携では、実際のお金や、実在する顧客のデータを動かさずに、動作確認ができる「sandbox」が用意されています。「sandboxの鍵」と「本番の鍵」を取り違えると、事故のもとになるので、どちらの環境かを、常に意識することが大切です。
セキュリティの「隔離して調べる」とは目的が違いますが、「本番と切り離して、安全に試す」という発想は、共通しています。
ウイルス対策ソフトとの違い
| 項目 | ウイルス対策ソフト(従来型) | サンドボックス |
|---|---|---|
| 主な方法 | 既知の特徴(パターン)との照合、怪しい振る舞いの検知 | 隔離環境で実際に動かし、挙動を観察 |
| 得意なこと | 既知の不正プログラムを、素早く止める | 未知のものや、新しい亜種を見つける |
| 弱点 | 新種や、特徴を隠したものには弱いことがある | 検査に時間がかかる、環境を見破られることがある |
| 使う場所 | 各PC、サーバー | メールやネットワークの入口、クラウド、検証用の環境 |
どちらかが優れている、というより、役割が違うものを組み合わせる、という考え方です。PCの中の振る舞いを監視するEDRとの違いは、EDRとは?で解説しています。ウイルスやマルウェアの用語の違いは、マルウェアとウイルスの違いも参考になります。