サンドボックスとは、外部から送信されたプログラムやファイルを、安全な環境で実行するための技術である。
サンドボックスの仕組み
サンドボックスは、外部から送信されたプログラムやファイルを、安全な環境で実行するための技術である。その仕組みは、大きく分けて以下の2つのステップからなる。
仮想環境の構築
サンドボックスは、仮想環境を構築することで実現される。仮想環境とは、実際のコンピュータの環境を模した疑似的な環境である。サンドボックスでは、外部から送信されたプログラムやファイルを、この仮想環境内で実行する。
仮想環境は、本体から隔離された独立した環境であるため、仮想環境内で実行されたプログラムやファイルが、本体に悪影響を及ぼすことはほとんどない。
仮想環境の構築には、仮想化ソフトウェアを用いる。仮想化ソフトウェアとは、仮想環境を作成するためのソフトウェアである。代表的な仮想化ソフトウェアには、VMware、Hyper-V、VirtualBoxなどがある。
プログラムやファイルの実行
仮想環境が構築されたら、外部から送信されたプログラムやファイルを、この仮想環境内で実行する。
プログラムやファイルの実行では、以下の2つの手法が用いられる。
静的分析
静的分析では、プログラムやファイルの実行前に、その内容を検査する。検査には、以下の手法が用いられる。
- パターンマッチング
パターンマッチングとは、プログラムやファイルの中から、既知のマルウェアの特徴となるパターンを探し出す技術である。
- シグネチャマッチング
シグネチャマッチングとは、プログラムやファイルに埋め込まれた、マルウェアの識別子となるシグネチャと照合する技術である。
静的分析では、既知のマルウェアを検知することができる。しかし、未知のマルウェアは検知できないというデメリットがある。
動的分析
動的分析では、プログラムやファイルを実行しながら、その挙動を監視する。監視には、以下の手法が用いられる。
- ファイルアクセスの監視
ファイルアクセスの監視では、プログラムやファイルが外部からファイルを読み書きしようとするかどうかをチェックする。
- ネットワークアクセスの監視
ネットワークアクセスの監視では、プログラムやファイルが外部ネットワークに接続しようとするかどうかをチェックする。
- メモリアクセスの監視
メモリアクセスの監視では、プログラムやファイルがメモリに不正な書き込みをしようとするかどうかをチェックする。
動的分析では、既知のマルウェアだけでなく、未知のマルウェアも検知することができる。しかし、検知率が低下するというデメリットがある。
サンドボックスの種類
サンドボックスには、大きく分けて「静的サンドボックス」と「動的サンドボックス」の2種類がある。
静的サンドボックス
静的サンドボックスは、プログラムやファイルの実行前に、その内容を検査する技術である。検査には、パターンマッチングやシグネチャマッチングなどの手法が用いられる。
パターンマッチングとは、プログラムやファイルの中から、既知のマルウェアの特徴となるパターンを探し出す技術である。シグネチャマッチングとは、プログラムやファイルに埋め込まれた、マルウェアの識別子となるシグネチャと照合する技術である。
動的サンドボックス
動的サンドボックスは、プログラムやファイルを実行しながら、その挙動を監視する技術である。監視には、ファイルアクセスやネットワークアクセス、メモリアクセスなどの動作をチェックする手法が用いられる。
ファイルアクセスの監視では、プログラムやファイルが外部からファイルを読み書きしようとするかどうかをチェックする。ネットワークアクセスの監視では、プログラムやファイルが外部ネットワークに接続しようとするかどうかをチェックする。メモリアクセスの監視では、プログラムやファイルがメモリに不正な書き込みをしようとするかどうかをチェックする。
サンドボックスのメリット
未知の脅威の検知
サンドボックスは、パターンマッチングやシグネチャマッチングなどの手法を用いないため、既知のマルウェアだけでなく、未知の脅威も検知することができる。
パターンマッチングやシグネチャマッチングは、既知のマルウェアの特徴となるパターンやシグネチャを事前に登録しておき、それらのパターンやシグネチャと一致するプログラムやファイルをマルウェアと判定する技術である。
しかし、未知のマルウェアは、まだパターンやシグネチャが登録されていないため、パターンマッチングやシグネチャマッチングでは検知できない。
一方、サンドボックスは、プログラムやファイルを実行しながら、その挙動を監視する。ファイルアクセスやネットワークアクセス、メモリアクセスなどの動作をチェックすることで、未知の脅威の検知が可能となる。
被害の軽減
万が一、サンドボックス内で不正なプログラムやファイルが実行されたとしても、本体への被害は最小限に抑えられる。
サンドボックスは、本体から隔離された独立した環境であるため、サンドボックス内で実行されたプログラムやファイルが、本体に悪影響を及ぼすことはほとんどない。
そのため、サンドボックスを用いることで、万が一の被害を最小限に抑えることができる。
セキュリティ対策の効率化
サンドボックスを用いることで、セキュリティ対策の効率化を図ることができる。
従来のセキュリティ対策では、既知のマルウェアを検知するためのパターンマッチングやシグネチャマッチングなどの技術が用いられていた。
これらの技術では、マルウェアのパターンやシグネチャを常に最新の状態に保つ必要があるため、運用に手間がかかる。
一方、サンドボックスでは、プログラムやファイルを実行しながら、その挙動を監視する。そのため、常に最新の脅威に対応できるため、運用の手間を軽減することができる。
サンドボックスの主要なソフトウェア
サンドボックスの主要なソフトウェアは、大きく分けて以下の2種類がある。
オンプレミス型
オンプレミス型のサンドボックスソフトウェアは、自社内にサーバーを設置して使用する。そのため、セキュリティポリシーや要件に合わせてカスタマイズしやすいというメリットがある。一方で、初期費用や運用コストがかかるといったデメリットもある。
代表的なオンプレミス型サンドボックスソフトウェアとしては、以下のようなものが挙げられる。
- Cuckoo Sandbox
- Joe Sandbox
- FireEye Malware Analysis
クラウド型
クラウド型のサンドボックスソフトウェアは、インターネット経由でサービスを利用する。そのため、初期費用や運用コストを抑えることができるというメリットがある。一方で、セキュリティポリシーや要件に合わせてカスタマイズしにくいといったデメリットもある。
代表的なクラウド型サンドボックスソフトウェアとしては、以下のようなものが挙げられる。
- CrowdStrike Falcon Host
- Carbon Black Cloud
- Sophos Sandstorm
オンプレミス型とクラウド型の違い
サンドボックスの活用例
メール添付ファイルの検査
メール添付ファイルには、マルウェアが添付されている可能性がある。そのため、サンドボックスを用いて、メール添付ファイルを検査することで、マルウェアの侵入を防ぐことができる。
サンドボックスでは、メール添付ファイルを実行前に、静的分析や動的分析によってマルウェアの有無を検査する。マルウェアが検出された場合は、メール添付ファイルを削除したり、隔離したりするなどの対応を行う。
アプリケーションの安全性評価
アプリケーションの開発時には、アプリケーションが不正な動作をしないかどうかを検査する必要がある。そのため、サンドボックスを用いて、アプリケーションの安全性評価を行うことができる。
サンドボックスでは、アプリケーションを実行しながら、その挙動を監視する。ファイルアクセスやネットワークアクセス、メモリアクセスなどの動作をチェックすることで、アプリケーションの脆弱性を早期に発見することができる。
クラウドサービスのセキュリティ対策
クラウドサービスでは、外部から送信されたプログラムやファイルを実行する機会が多い。そのため、サンドボックスを用いて、これらのプログラムやファイルを安全に実行することで、クラウドサービスのセキュリティを向上させることができる。
サンドボックスでは、クラウドサービスに送信されたプログラムやファイルを実行前に、静的分析や動的分析によってマルウェアの有無を検査する。マルウェアが検出された場合は、プログラムやファイルを実行させないようにする。
サンドボックスのデメリット
検知率の低下
サンドボックスは、動的分析を用いることで、未知の脅威も検知することができる。しかし、動的分析では、検知率が低下する可能性がある。
動的分析では、プログラムやファイルを実行しながら、その挙動を監視する。しかし、マルウェアの中には、静的な分析では検知できないが、動的分析では検知できるものもある。
そのため、動的分析を用いることで、未知の脅威の検知率を向上させることができるが、その分、検知率が低下する可能性がある。
パフォーマンスの低下
サンドボックスは、仮想環境を構築することで実現される。仮想環境の構築には、一定のパフォーマンスが必要となる。
そのため、サンドボックスの利用によって、システムのパフォーマンスが低下する可能性がある。
コストの増加
サンドボックス製品の導入には、一定のコストがかかる。
また、サンドボックスの運用には、専門的な知識やスキルが必要となるため、運用コストもかかる。
まとめ
サンドボックスは、仮想環境を構築することで、外部から送信されたプログラムやファイルを安全に実行するための技術である。その仕組みは、大きく分けて仮想環境の構築とプログラムやファイルの実行の2つのステップからなる。
プログラムやファイルの実行では、静的分析と動的分析の2つの手法が用いられる。静的分析では、既知のマルウェアを検知することができるが、未知のマルウェアは検知できない。動的分析では、既知のマルウェアだけでなく、未知のマルウェアも検知することができるが、検知率が低下するというデメリットがある。
サンドボックスは、未知の脅威の検知や被害の軽減など、さまざまなメリットがある。しかし、検知率低下などのデメリットもあるため、導入や運用の際には、デメリットを理解した上で検討する必要がある。