サンドボックス (セキュリティ)

コンピュータセキュリティ技術において、サンドボックス（）は、外部から受け取ったプログラムを保護された領域で動作させることによって、システムが不正に操作されるのを防ぐセキュリティ機構のことをいう。

実行されるプログラムは保護された領域に入り、ほかのプログラムやデータなどを操作できない状態にされて動作するため、プログラムが暴走したりウイルスを動作させようとしてもシステムに影響が及ばないようになっている。

ウェブページに配置されたJavaアプレットやFlash、JavaScriptなどのプログラムは自動的に実行される。そのため、気づかないうちにコンピュータ上にあるファイルを盗み見られたり書き換えられたり、あるいはコンピュータウイルスに感染させられたりするおそれがある。そこで安心してネットサーフィンを楽しめるように提供されたのが、そういった攻撃のできない安全な「砂場」（サンドボックス）である。

 保護の仕組み 
わかりやすいところでは、ファイルの読み書きをできなくしたり、許可なくマイクロフォンから録音できなくしたりすることで保護を実現する。またクロスサイトスクリプティング攻撃からの保護のために、他の（攻撃者のものかもしれない）サイトへの送信が禁止されたり他のサイトの情報を読み込むことが禁止されたりする。

このほかにも、プライバシーやオペレーティングシステムの安全を脅かすことが可能になる、さまざまなことが禁止されている。

 サンドボックスへの不満 
サンドボックスによる保護は利便性を損ねるものであり、事態を正確に認識できていない者からは不満の声もある。しかしながら、それを許すことはすなわち攻撃者にも利便性を与えることに留意しなければならない。

例えば、もしも「JavaScriptを利用するとメールアドレスを盗まれたりウイルスに感染させられたりする」ということがわかれば、ユーザーは警戒してJavaScriptを使っているウェブページを見なくなってしまう。JavaScriptを使っていると誰も見てくれなくなるので、作る側も誰もJavaScriptを使わなくなってしまう。それはJavaScriptを提供する側の望むところではない。このため、サンドボックスによる保護は強化される一方である。

こういった保護に不満がある場合、それを解除する方法が提供されている場合がある。例えばJavaアプレットに使われているJavaのサンドボックスモデルでは、Javaアプレットに電子署名による署名をおこなうことができる。もしもユーザーがその電子署名を信頼し許可したならば、電子署名を施されたプログラムに限っては保護された領域外にアクセスすることができるようになる。

 サンドボックスの例 
サンドボックスの例として、次のようなものが挙げられる。
 Sandboxie
 Javaアプレット
 Java Web Start
 Adobe Flash
 JavaScript及びJavaScriptに基づいているAjax
 VMwareやMicrosoft Virtual PCなどの仮想マシン
 XAMLブラウザアプリケーション (XBAP)
 Webブラウザ（Google Chrome•Mozilla Firefoxなど）

 その他のサンドボックス 
ソフトウェア開発において、バージョン管理システムを利用して構築される特定のバージョンのソフトウェアテスト環境。プレイグラウンドとも呼ばれる。
Wikipediaで編集のテストを行うページ。Wikipedia:サンドボックス

 脚注 

Category:コンピュータセキュリティ
Category:仮想化