サンドボックス
外部の環境から隔離された仮想的な実行環境。疑わしいファイルを中で実際に動かし、その振る舞いを観察・分析して、マルウェアかどうかを判断するのに使う。
イマシルちゃんの解説
サンドボックスは「砂場」っていう意味なんだ。
砂場の中なら、どんなに砂を散らかしても、外の公園は汚れないよね。
怪しいファイルを、この砂場(隔離された環境)の中で、わざと開いてみるんだ。
もしファイルが「勝手に外と通信しようとする」「ほかのファイルを書き換えようとする」みたいな悪いことをしたら、
「こいつはマルウェアだ!」ってわかる。本物のパソコンは安全なままなんだよ!
より深い解説
定義
サンドボックスは、プログラムを、本来の環境(端末やネットワーク)から隔離された制限付きの環境で実行させる仕組みである。マルウェア対策では、メールの添付ファイルやダウンロードしたファイルを、仮想マシンなどのサンドボックスで実行し、その振る舞い(動的解析)から悪意の有無を判断する。
観察する振る舞いの例
| 振る舞い | 疑われる内容 |
|---|---|
| 外部のサーバと通信する | C&Cサーバへの接続(遠隔操作)、追加のマルウェアのダウンロード |
| ファイルを大量に暗号化する | ランサムウェア |
| OSの起動時に自動で実行されるよう登録する | 常駐しようとするマルウェア |
| ほかのプロセスにコードを注入する | 正規のプログラムへのなりすまし |
| 認証情報を読み取る | 情報窃取型のマルウェア |
遠隔操作が可能なマルウェアを実行すると、攻撃者の指令サーバ(C&Cサーバ)へ接続しようとする通信が観察される。
パターンマッチングとの比較
| パターンマッチング(静的) | サンドボックス(動的) | |
|---|---|---|
| 判断の材料 | ファイルの中の既知のパターン | 実際に動かしたときの振る舞い |
| 未知のマルウェア | 検出できない | 検出できる可能性がある |
| 時間 | 速い | 実行して観察する時間がかかる |
サンドボックスを回避する手口
| 手口 | 内容 |
|---|---|
| 環境の検知 | 仮想マシンや解析ツールの痕跡を見つけると、おとなしくして正体を隠す |
| 時間稼ぎ | 実行してからしばらく何もしない(観察時間が終わるのを待つ) |
| 利用者の操作を待つ | マウスの操作などがあるまで動かない |
このため、サンドボックスは、パターンマッチング、レピュテーション、EDRなどの、ほかの対策と組み合わせて使う。
ほかの意味のサンドボックス
ブラウザやスマートフォンのOSでも、アプリケーションやWebページのスクリプトを、ほかのアプリやOSの重要な部分から隔離して動かす仕組みを、サンドボックスと呼ぶ。脆弱性を突かれても、被害を隔離された範囲にとどめるためのものである。