サンドボックスは、プログラムを隔離し、悪意のあるプログラムや誤動作しているプログラムがコンピュータの残りの部分を損傷したり覗き見したりするのを防ぐ重要なセキュリティ技術です。あなたが使用しているソフトウェアは、毎日実行しているコードの多くをすでにサンドボックス化しています。
独自のサンドボックスを作成して、システムの他の部分に損傷を与えない保護された環境でソフトウェアをテストまたは分析することもできます。
セキュリティにとってサンドボックスはいかに重要か
サンドボックスは、プログラムを実行できる厳密に制御された環境です。サンドボックスはコードの実行内容を制限し、悪用される可能性のある権限を追加することなく、必要なだけの権限をコードに与えます。
たとえば、Web ブラウザは基本的に、アクセスした Web ページをサンドボックス内で実行します。これらはブラウザ内での実行と限られたリソースへのアクセスに制限されており、許可なく Web カメラを表示したり、コンピュータのローカル ファイルを読み取ったりすることはできません。アクセスする Web サイトがサンドボックス化されておらず、システムの他の部分から隔離されていない場合、悪意のある Web サイトにアクセスすることは、ウイルスをインストールするのと同じくらい悪いことになります。
コンピュータ上の他のプログラムもサンドボックス化されます。たとえば、Google Chrome と Internet Explorer はどちらも、それ自体サンドボックス内で実行されます。これらのブラウザはコンピュータ上で実行されるプログラムですが、コンピュータ全体にアクセスできるわけではありません。これらは低権限モードで実行されます。たとえ Web ページがセキュリティ上の脆弱性を発見し、ブラウザを制御できたとしても、実際に損害を与えるにはブラウザのサンドボックスを脱出する必要があります。より少ない権限で Web ブラウザを実行することで、セキュリティが確保されます。残念ながら、 Mozilla Firefox は依然としてサンドボックスでは実行できません 。
すでにサンドボックス化されているもの
デバイスが毎日実行するコードの多くは、保護のためにすでにサンドボックス化されています。
- Web ページ : ブラウザは基本的に、読み込む Web ページをサンドボックス化します。 Web ページでは JavaScript コードを実行できますが、このコードは必要なことを何も実行できません。JavaScript コードがコンピューター上のローカル ファイルにアクセスしようとすると、要求は失敗します。
- ブラウザ プラグイン コンテンツ : Adobe Flash や Microsoft Silverlight などのブラウザ プラグインによってロードされたコンテンツもサンドボックスで実行されます。 Web ページ上で Flash ゲームをプレイする方が、ゲームをダウンロードして標準プログラムとして実行するよりも安全です。これは、Flash がゲームをシステムの他の部分から分離し、実行できる内容を制限するためです。ブラウザ プラグイン、 特に Java は 、セキュリティの脆弱性を利用してこのサンドボックスを回避し、損害を与える攻撃のターゲットとなることがよくあります。
- PDF およびその他のドキュメント : Adobe Reader は PDF ファイルをサンドボックス内で実行するようになり、PDF ビューアからエスケープしてコンピュータの残りの部分を改ざんするのを防ぎます。 Microsoft Office には、安全でないマクロがシステムに損害を与えるのを防ぐためのサンドボックス モードもあります。
- ブラウザおよびその他の潜在的に脆弱なアプリケーション : Web ブラウザは、侵害された場合に大きな損害を及ぼさないように、権限の低いサンドボックス モードで実行されます。
- モバイル アプリ : モバイル プラットフォームはアプリをサンドボックスで実行します。 iOS、Android、および Windows 8 用のアプリでは、標準のデスクトップ アプリケーションで実行できることの多くが制限されています。あなたの位置情報にアクセスするなどのことをしたい場合は、許可を宣言する必要があります。その代わりに、ある程度のセキュリティも得られます。サンドボックスはアプリを相互に分離するので、アプリが互いに改ざんすることもできません。
- Windows プログラム : ユーザー アカウント制御は ちょっとしたサンドボックスとして機能し、基本的に Windows デスクトップ アプリケーションが最初に許可を求めずにシステム ファイルを変更することを制限します。これは非常に最小限の保護であることに注意してください。たとえば、Windows デスクトップ プログラムはバックグラウンドで動作し、すべてのキーストロークを記録する可能性があります。ユーザー アカウント制御は、システム ファイルとシステム全体の設定へのアクセスを制限するだけです。
プログラムをサンドボックス化する方法
通常、デスクトップ プログラムはデフォルトではサンドボックス化されていません。確かに UAC はありますが、上で述べたように、それは非常に最小限のサンドボックスです。プログラムをテストして、システムの他の部分に干渉することなく実行したい場合は、サンドボックスで任意のプログラムを実行できます。
- 仮想マシン : VirtualBox や VMware などの仮想マシン プログラムは、オペレーティング システムの実行に使用する仮想ハードウェア デバイスを作成します。他のオペレーティング システムはデスクトップ上のウィンドウで実行されます。このオペレーティング システム全体は、仮想マシンの外部にはアクセスできないため、基本的にサンドボックス化されています。仮想化されたオペレーティング システムにソフトウェアをインストールし、そのソフトウェアを標準のコンピュータ上で実行しているかのように実行できます。これにより、たとえばマルウェアをインストールして分析したり、プログラムをインストールしてそれが何か悪いことをするかどうかを確認したりすることができます。仮想マシン プログラムにはスナップショット機能も含まれているため、 ゲスト オペレーティング システムを不正なソフトウェアをインストールする前の状態に「ロールバック」 できます。
- Sandboxie : Sandboxie は、Windows アプリケーション用のサンドボックスを作成する Windows プログラムです。プログラム用に隔離された仮想環境を作成し、プログラムがコンピュータに永続的な変更を加えるのを防ぎます。これはソフトウェアをテストする場合に役立ちます。詳細については 、Sandboxie の概要を 参照してください。
サンドボックス化は、平均的なユーザーが心配する必要があるものではありません。使用するプログラムは、安全を確保するためにバックグラウンドでサンドボックス作業を実行します。ただし、何がサンドボックス化され、何がサンドボックス化されていないのかを念頭に置く必要があります。そのため、プログラムを実行するよりも Web サイトを読み込む方が安全です。
ただし、通常はサンドボックス化されない標準のデスクトップ プログラムをサンドボックス化したい場合は、上記のツールのいずれかを使用して行うことができます。





