サンドボックスとは、隔離した環境でプログラムを動作させるセキュリティモデル
サンドボックス(英:sandbox)の元来の意味は、子どもが中に入って安全に遊べる砂箱や砂場のことである。セキュリティに関連した用語としては、外部に悪影響が及ばないようにするため、保護された領域でプログラムを動かすしくみを指す。
「外部ファイルの読み書き、マイクやカメラといったハードウェアへのアクセス、他のプログラムとのデータのやり取り」などを制限することで、サンドボックス外のシステムを保護する。
プログラムを動作させた際にシステムなどへ悪影響がないよう、JavaアプレットやJavaScript、Adobe Flash、VMwareやMicrosoft Hyper-Vなどがサンドボックスを採用している。
サンドボックスが本来の機能を発揮していれば、悪意のあるプログラムや、バグなどによるプログラムの暴走などが発生しても、領域外のデータなどには悪影響を及ぼさない。しかし、サンドボックスの実装に問題があり、脆弱性が存在すると、マルウェアに悪用される場合もある。
用途
仮想環境を用いたマルウェア解析
アンチウイルスベンダーやマルウェア研究者は解析のために、他に影響を及ばさない仮想環境下でマルウェアを実行し振る舞いを確認する。ウイルス対策ソフトで、サンドボックスを利用すると、仮想環境でマルウェアの挙動をチェックでき、安全に解析できるのがメリットだ。
複数の仮想マシンを稼働させる環境
複数の仮想マシンを稼働させる場合、ホストコンピューターや仮想マシン同士が影響を及ぼさないように、サンドボックスの環境下でそれぞれの仮想マシンを動かしている。
ソフトウェア開発におけるテスト環境
バージョン管理システムを利用して行われる、特定バージョンのソフトウェアテスト環境をサンドボックスと呼ぶことがある。