サンドボックスの定義

サイバーキュリティ業界におけるサンドボックスとは、ネットワークリソースやローカルアプリケーションに影響を与えることなく、危険性のあるソフトウェアを実行できる隔離された仮想マシンのことです。

サイバーセキュリティ専門家は、サンドボックスを使用して不明な添付ファイルやURLから怪しいプログラムを実行して、その動作を検証します。疑わしさを示す代表的なサインは、プログラムを自己複製しているか、コマンド&コントロール(C&C)サーバに接続を試みるか、追加ソフトウェアをダウンロードするか、機密データを暗号化しているかどうかなどが含まれます。サンドボックスはエミュレートされた環境であり、ネットワークやデータ、アプリケーションにはアクセスできないため、セキュリティーチームはサンドボックス内でプログラムを安全に実行して、どのように動き、悪意があるプログラムであるのかを調べることができます。

サイバーセキュリティ以外の分野では、開発者がサンドボックスのテスト環境を用いて、実際のデプロイ前にプログラムを実行しています。

無料トライアルのお申し込み手順

  • 弊社のサイバーセキュリティ エキスパートが貴社に伺い、セキュリティ環境を評価して、脅威リスクを診断します。
  • 24 時間以内に最小限の構成で、30 日間ご利用いただけるプルーフポイントのソリューションを導入します。
  • プルーフポイントのテクノロジーを実際にご体験いただきます。
  • 組織が持つセキュリティの脆弱性に関するレポートをご提供します。このレポートは、サイバーセキュリティ攻撃の対応に直ちにご活用いただくことができます。

フォームに必要事項をご入力の上、お申込みください。追って、担当者よりご連絡させていただきます。

Proofpointの担当者がまもなくご連絡いたします。

サンドボックスの使用目的は?

多くの企業では、サンドボックスは少し誤解されています。もしくは、不必要な経費を使っていると見なされる場合もあります。次に挙げるソフトウェア開発やサイバーセキュリティのリサーチには、サンドボックスが不可欠です。マルウェアは、ネットワークで悪用できる脆弱性を、積極的にかつ攻撃的に細かく探り出そうとします。したがって、サンドボックスが正しく隔離され、安全性を確認することはソフトウェア開発よりもサイバーセキュリティ調査で重要になってきます。

開発における使用目的

開発でのサンドボックスは、通常、開発サーバや後述するステージングサーバとして用いられます。開発サーバは本番環境とは分離していますが、基本的なネットワークへのアクセスを必要とすることがあります。開発者はプログラムをアップロードし、コードベースを変更・検証するために開発サーバを使用します。

ステージングサーバは、本番環境の正確な再現になるように設計され、本番環境にデプロイする前にQA担当者がプログラムをテストする場所です。ステージング環境は、本番環境と同一なため、ステージングで問題なく実行されたプログラムは、本番環境でも何の問題もなく実行されるものと見なされます。プログラムをテストしたのち、本番環境へとデプロイします。

サイバーセキュリティのリサーチ分野での使用目的

サイバーセキュリティの研究者やアナリストも、似たような手法でサンドボックスを使用します。ただし、その場合、マルウェアが悪用できてしまうネットワークリソースが存在しないことがよりいっそう重要です。サンドボックスは独自のネットワークを持ち、ほとんどの場合、本番環境のリソースとは一切接続をしていません。サンドボックスの使用目的は、悪意あるプログラムを実行して、分析することです。時として、これらのプログラムが、マルウェアやゼロデイエクスプロイト(初期の脆弱性)により、予期せぬ動作を起こす場合があります。そのため、サンドボックスは重要なインフラストラクチャとのアクセスを一切持たないようにしておく必要があります。

サンドボックスによって、サイバーセキュリティの研究者やアナリストは、マルウェアがどのように動作し、その脅威を防ぐための対策を検討できます。そしてこの試みが、マルウェアが別のシステムへと拡散することを防ぎ、すでに感染したシステムからマルウェアを削除するウイルス対策ソフト設計の第一歩となります。

複合的な攻撃を受けた場合、即座に利用できるサンドボックスがマルウェアを素早く分析し、重大な問題に発展する前に未然に防ぎます。たとえば、マルウェアの一種である ランサムウェア は世界中に広まり、政府機関のシステムに危機的なクラッシュを引き起こすようになりました。サイバーセキュリティ専門家にとっては、このようなランサムウェアを阻止するために、サンドボックスへのアクセスを確保することが大切です。

サンドボックスの機能

サンドボックスがどのように機能するかは、テスト対象によって異なります。たとえば、マルウェアのテストに用いるサンドボックスは、アプリケーションのアップデート前にプログラムを検証する開発用サンドボックスとは設定や機能が異なります。マルウェアの可能性があり、悪意あるプログラムを調べるために利用するのであれば、サンドボックスは本番環境のソフトウェアとは隔離されている必要があります。

サンドボックスには用途に関わらず、次の基本機能があります。

  • 実際の端末のエミュレーション: デスクトップ端末やモバイル端末の環境を再現するエミュレーションがあります。いずれにしても、テスト対象のアプリケーションは、分析するプログラムと同様にCPU・メモリ・ストレージなどのリソースにアクセスする必要があります。
  • 対象OSのエミュレーション: 仮想マシンを使うとき、アプリケーションはオペレーティングシステム(OS)にアクセスしなければなりません。仮想マシンでは、サンドボックスが物理ハードウェアからは隔離されていますが、インストール済みのオペレーティングシステムにはアクセスできるようになっています。
  • 仮想環境: 一般にサンドボックスは仮想マシン上にあるため、物理リソースにはアクセスできませんが、仮想マシンのハードウェアにはアクセス可能です。

仮想環境とエミュレーションは万能ではありません。マルウェア作成者の中には、サンドボックス内でマルウェアが実行していることを検知した際に、セキュリティ専門家の探知下ではただ潜伏するようにプログラムを設計している場合があります。

サンドボックスの検知方法には、実用的ではないユーザーインタラクションの検索も含みます。そのほかに、一般的な仮想マシンのシステム構成を検索して、システム設定を読み取ることもあります。これらの場面では、マルウェアを稼働させないことで悪意があるものとして検出されず、実際の標的に到達した後にのみ動作し始めます。

場合によっては、マルウェア作成者が脆弱なサンドボックスを危険にさらす攻撃を仕組むことさえあります。

仮想環境は、仮想化されたOSとハードウェアリソースが、ネットワークとファイルシステムへのアクセスを制限されているため、「jail(=刑務所)」とも呼ばれています。サンドボックスは、アプリケーションやクラウドホストに内在しており、実行しているものはすべて、ホストコンピュータの各側面へのアクセスが厳格に制御されています。

サンドボックスの利点

サンドボックスを利用すると、開発テスト環境と同様に、アプリケーションを本番環境にデプロイしたりリソースにアクセスしたりする前に、安全なリソースによって実行できます。企業はサンドボックスを用いて、業務上不可欠なリソースを停止したり損害を与えたりすることなく、マルウェアや予想外のソフトウェアの脆弱性によって問題が発生する恐れのあるプログラムを実行できます。

サンドボックスは不明なメールや添付ファイルの検証としてもよく使用されます。メールフィルターは、悪質な恐れのあるメールの文章や添付ファイルを検出しますが、管理者には、危険とみなされたメールを閲覧できる安全な場所が必要です。悪意あるドキュメントにはMicrosoft Officeのような一般的なユーティリティアプリの脆弱性を悪用するマクロが含まれている場合があります。管理者は、サンドボックスを仮想マシンとして使用して、添付ファイルを開き、安全であるかどうかを実際に見て確認できます。

サイバーセキュリティの担当者がいない企業では、サンドボックスをすべての従業員に導入することにより、疑わしいプログラムを隔離できます。サンドボックスは、システムを新たな脅威にさらすことなく、社員が未知のプログラムを実行できるようになります。

サンドボックスの活用例

サンドボックスはソフトウェアとハードウェアのどちらにも導入できます。ハードウェアを制限することで、サンドボックスは独立したネットワークを確立できます。十分に制限された隔離には、サンドボックスが独自のWi-Fiルーターやプロバイダ(ISP)接続上にあることで実現します。悪質なアプリケーションが主要なネットワークに対して物理的なアクセスができないように、これらの設定を活用します。

ローカルのオペレーティングシステムを保護するため、デフォルトでサンドボックスを使用するアプリケーションもあります。またブラウザには、ローカルコンピュータのリソースからアクセスして、Web上の隔離された環境で悪質なアプリケーションを実行する独自のサンドボックスがあります。Javaのようなプログラム言語も、Webページ上で実行する信用できないJavaアプレットから、ローカルリソースを保護する独自のサンドボックスを持っています。

Windows10のオペレーティングシステムでは、プリインストールされたサンドボックスにより、信用できないプログラムからホストのデスクトップを守っています。これは、ウィルス対策やファイアウォール、マルウェア対策のプログラムの代わりとしては不十分ですが、従来のWindowsオペレーティングシステムにはないセキュリティ層を追加しました。

HTML5には、iframe機能の誤用を防ぐためのサンドボックスがあります。さらに、Linux OSでは、Seccompやcgroupsを使用したサンドボックスをアプリケーションに構築します。Google Sandbox APIは、C++でコードを書く開発者にとって、本番環境にデプロイする前のサンドボックスとして有効です。

サンドボックスの設定方法は?

サンドボックスの設定方法は、用途により変わってきます。多くのクラウドプラットフォームには、新しいプログラムやアップデートを動作させるために独自のサンドボックスが用意されています。たとえば、PayPalを支払い処理に利用することとした場合、そのプラットフォームには本番環境がエミュレートできるフル機能のサンドボックスがあります。つまり、サンドボックスで使用するプログラムはすべて本番環境から隔離しているため、エラーやバグが発生してもメインのプラットフォームに影響を与えることがありません。

プログラムやマルウェアをテストするのにサンドボックスが必要であれば、仮想マシンをインストールして自分用のサンドボックスを作成できます。VirtualBoxは仮想環境(仮想マシン)をホストするためによく使用されます。そして、仮想マシン内部で、オペレーティングシステムを実行するインストールファイルが必要です。

仮想マシンにオペレーティングシステムをインストールする前に、メモリ・CPU・ストレージ容量・ネットワークアダプタなどの環境に合ったハードウェアリソースを設定してください。仮想化されたリソースは、仮想マシンの外部では使用ができなくなっています。逆に、新しい仮想環境で実行されているプログラムは、メモリリソースをメインのオペレーティングシステムとは共用できず、仮想マシンの外部のいかなるものとも共用することはできません。

サンドボックスが安全であると思われがちですが、攻撃者は常にサンドボックスのセキュリティを破る方法を探しています。そのため悪用の恐れがあるサンドボックスの脆弱性を見つけた人に、テクノロジー企業が多額の賞金を与えることがよくあります。Microsoft Edgeは、ブラウザのサンドボックス上でセキュリティを回避するルートを見つけた場合には、最大30,000ドルの賞金を出すと発表しています。またGoogle Chromeでは、2012年にすべてのパッチを適用したコンピュータでエクスプロイトプログラムを実行できた人に60,000ドルの賞金を支払いました。

すべてのセキュリティ研究やマルウェア分析に乗り出す際には、サンドボックスはなくてはならない存在です。もし予期せぬ問題が起きた場合、ネットワークストレージを含む、すべてのリソースは仮想マシンでの利用が不可能になります。サンドボックスがあれば、本番環境を台無しにするリスク抜きに分析が実行に移せます。