目次
サンドボックスとは?
サイバーキュリティ業界におけるサンドボックスとは、ネットワークリソースやローカルアプリケーションに影響を与えることなく、危険性のあるソフトウェアを実行できる隔離された仮想マシンのことです。
「サンドボックス」という用語は、現実世界に影響を与えることなく、遊んだり、壊したり、実験したりできる遊び場である子供のサンドボックスの概念に由来しています。同様に、デジタルサンドボックスは、その制限された空間外での影響なしに実験やテストを行うことができます。
サイバーセキュリティ専門家は、サンドボックスを使用して不明な添付ファイルやURLから怪しいプログラムを実行して、その動作を検証します。疑わしさを示す代表的なサインは、プログラムを自己複製しているか、コマンド&コントロール(C&C)サーバに接続を試みるか、追加ソフトウェアをダウンロードするか、機密データを暗号化しているかどうかなどが含まれます。サンドボックスはエミュレートされた環境であり、ネットワークやデータ、アプリケーションにはアクセスできないため、セキュリティーチームはサンドボックス内でプログラムを安全に実行して、どのように動き、悪意があるプログラムであるのかを調べることができます。
サイバーセキュリティ以外の分野では、開発者がサンドボックスのテスト環境を用いて、実際のデプロイ前にプログラムを実行しています。
無料トライアル
無料トライアルのお申し込み手順
- 弊社のサイバーセキュリティ エキスパートが貴社に伺い、セキュリティ環境を評価して、脅威リスクを診断します。
- 24 時間以内に最小限の構成で、30 日間ご利用いただけるプルーフポイントのソリューションを導入します。
- プルーフポイントのテクノロジーを実際にご体験いただきます。
- 組織が持つセキュリティの脆弱性に関するレポートをご提供します。このレポートは、サイバーセキュリティ攻撃の対応に直ちにご活用いただくことができます。
フォームに必要事項をご入力の上、お申込みください。追って、担当者よりご連絡させていただきます。
Proofpointの担当者がまもなくご連絡いたします。
サンドボックスの使用目的
多くの企業では、サンドボックスは少し誤解されています。もしくは、不必要な経費を使っていると見なされる場合もあります。次に挙げるソフトウェア開発やサイバーセキュリティのリサーチには、サンドボックスが不可欠です。マルウェアは、ネットワークで悪用できる脆弱性を、積極的にかつ攻撃的に細かく探り出そうとします。したがって、サンドボックスが正しく隔離され、安全性を確認することはソフトウェア開発よりもサイバーセキュリティ調査で重要になってきます。
開発でのサンドボックス
開発でのサンドボックスは、通常、開発サーバや後述するステージングサーバとして用いられます。開発サーバは本番環境とは分離していますが、基本的なネットワークへのアクセスを必要とすることがあります。開発者はプログラムをアップロードし、コードベースを変更・検証するために開発サーバを使用します。
ステージングサーバは、本番環境の正確な再現になるように設計され、本番環境にデプロイする前にQA担当者がプログラムをテストする場所です。ステージング環境は、本番環境と同一なため、ステージングで問題なく実行されたプログラムは、本番環境でも何の問題もなく実行されるものと見なされます。プログラムをテストしたのち、本番環境へとデプロイします。
サイバーセキュリティのリサーチ分野でのサンドボックス
サイバーセキュリティの研究者やアナリストも、似たような手法でサンドボックスを使用します。ただし、その場合、マルウェアが悪用できてしまうネットワークリソースが存在しないことがよりいっそう重要です。サンドボックスは独自のネットワークを持ち、ほとんどの場合、本番環境のリソースとは一切接続をしていません。サンドボックスの使用目的は、悪意あるプログラムを実行して、分析することです。時として、これらのプログラムが、マルウェアやゼロデイエクスプロイトにより、予期せぬ動作を起こす場合があります。そのため、サンドボックスは重要なインフラストラクチャとのアクセスを一切持たないようにしておく必要があります。
サンドボックスによって、サイバーセキュリティの研究者やアナリストは、マルウェアがどのように動作し、その脅威を防ぐための対策を検討できます。そしてこの試みが、マルウェアが別のシステムへと拡散することを防ぎ、すでに感染したシステムからマルウェアを削除するウイルス対策ソフト設計の第一歩となります。全体的な目的は、潜在的に有害または信頼できないソフトウェアを実行するための安全な環境を提供することです。他の目的には以下が含まれます:
- ネットワーク保護: サンドボックスはしばしばネットワーク保護ツールと統合されています。メール、ダウンロードファイル、その他の受信ファイルは、エンドユーザーに到達する前にサンドボックスを通過して悪意のある動作がないか確認されます。
- フォレンジック調査: サイバーインシデント後、サイバーセキュリティ専門家はサンドボックスを使用して攻撃の深さと影響を理解します。これにより、悪意のあるペイロードを解剖して、その起源、行動、潜在的な拡散を分析し、インシデント対応と復旧の情報を提供することができます。
- アプリケーション互換性: 新しいシステムやプラットフォームに移行する組織は、サンドボックスを使用してレガシーアプリケーションやデータのパフォーマンスをテストし、互換性の問題がないことを確認できます。
複合的な攻撃を受けた場合、即座に利用できるサンドボックスがマルウェアを素早く分析し、重大な問題に発展する前に未然に防ぎます。たとえば、マルウェアの一種である ランサムウェア は世界中に広まり、政府機関のシステムに危機的なクラッシュを引き起こすようになりました。サイバーセキュリティ専門家にとっては、このようなランサムウェアを阻止するために、サンドボックスへのアクセスを確保することが大切です。
サンドボックスの仕組み
サンドボックスがどのように機能するかは、テスト対象によって異なります。たとえば、マルウェアのテストに用いるサンドボックスは、アプリケーションのアップデート前にプログラムを検証する開発用サンドボックスとは設定や機能が異なります。マルウェアの可能性があり、悪意あるプログラムを調べるために利用するのであれば、サンドボックスは本番環境のソフトウェアとは隔離されている必要があります。
サンドボックスには用途に関わらず、次の基本機能があります。
- 実際の端末のエミュレーション: デスクトップ端末やモバイル端末の環境を再現するエミュレーションがあります。いずれにしても、テスト対象のアプリケーションは、分析するプログラムと同様にCPU・メモリ・ストレージなどのリソースにアクセスする必要があります。
- 対象OSのエミュレーション: 仮想マシンを使うとき、アプリケーションはオペレーティングシステム(OS)にアクセスしなければなりません。仮想マシンでは、サンドボックスが物理ハードウェアからは隔離されていますが、インストール済みのオペレーティングシステムにはアクセスできるようになっています。
- 仮想環境: 一般にサンドボックスは仮想マシン上にあるため、物理リソースにはアクセスできませんが、仮想マシンのハードウェアにはアクセス可能です。
- 詳細な監視: テスターがサンドボックス内でソフトウェアを実行すると、そのすべての活動と相互作用が追跡されます。これには、ファイルシステムの変更、ネットワーク通信、システムコールが含まれ、その真の動作を理解するための手がかりを提供します。
- 回避型マルウェアの検出: 一部の高度なマルウェアは、サンドボックス内にいることを認識し、それに応じて動作を変更するように設計されています。これらは仮想環境の兆候や異常なユーザーインタラクションを探し出し、検出を回避しようとします。サンドボックス内にいると感知した場合、マルウェアは休眠状態になり、本当の性質を現実世界の環境でのみ明らかにします。研究者はこれらの回避戦術に対抗するためにサンドボックス環境を継続的に最適化しています。
- 潜在的なエクスプロイト: マルウェア作成者は、セキュリティの甘いサンドボックスの脆弱性を狙ったエクスプロイトを作成することがあります。そのため、堅牢なサンドボックス設計と定期的な更新の必要性が強調されます。
- 制限されたアクセス: 多くのシナリオでは、サンドボックスはネットワークアクセスを制限し、ソフトウェアが外部サーバやシステムと自由に通信できないようにします。さらに、ファイルシステムの名前空間を制御することで、サンドボックスは不正なファイルの変更やアクセスを防止します。制限されたアクセスは、クラウドホストや特定のアプリケーションにおいても一般的であり、サンドボックスが使用されている場合、含まれているソフトウェアがホストマシンを侵害したり損なったりすることを防ぐために重要です。
サンドボックスは、ソフトウェアを顕微鏡に置いた観測所と考えることができます。ソフトウェアが自然なコンピュータ環境で動作していると思い込む一方で、実際には制御された空間に閉じ込められ、そのすべての動きを潜在的な脅威として監視されます。このダイナミクスにより、潜在的な脅威を理解し、現実世界での被害を与える前に対策を講じることが可能になります。
サンドボックス環境の利点
サンドボックス環境を利用することで得られる主な利点は以下です。
- 強化されたセキュリティ: サンドボックスは、潜在的に有害なソフトウェアを制御された環境内に保持することで、より広範なシステムや重要なデータが侵害されずに済みます。
- 安全なテスト環境: サンドボックスは開発テスト環境として機能し、組織がアプリケーションを本番ステージに導入する前に安全な空間で実行できるようにします。この安全な空間により、重大なリソースを危険にさらすことなく、損害をもたらす問題に対処できます。
- メール隔離: サンドボックスは、疑わしいメールやその添付ファイルの隔離ゾーンとして一般的に使用されます。メールフィルターは潜在的な脅威をフラグにすることがありますが、管理者はこれを安全に検証するための場所が必要です。サンドボックス内では、特にMicrosoft Officeのようなアプリをターゲットにした悪意のある添付ファイルやマクロを安全に検査できます。
- 積極的な脅威分析: サンドボックスは、積極的な脅威評価と理解を可能にし、組織が潜在的なリスクを実際のシステムに侵入する前に検出し対策を講じることができます。
- ソフトウェアテストの促進: サンドボックスは脅威に対するシールドとして機能するだけでなく、開発者にとって非常に貴重です。新しいコード、アップデート、またはアプリケーション全体をテストし、ライブ環境に影響を与えることなく問題を特定し修正できます。
- ユーザーフレンドリー: サンドボックスは、専門的なサイバーセキュリティ担当者にとって貴重なツールである一方で、直感的なデザインにより、技術的背景を持たない従業員でも利用できます。これにより、疑わしいプログラムを隔離して検査し、主要なシステムを危険にさらすことなく不明なコードを実行できます。
- コスト効率が高い: セキュリティ侵害の緩和やソフトウェアの不具合に対処することは、展開後に行うと高額になる可能性があります。サンドボックスは予防的アプローチを提供し、組織が直面する可能性のある金銭的および風評被害の費用を軽減します。
- 継続的な学習と適応: サンドボックス環境は、継続的なフィードバックループを提供します。脅威やソフトウェアの動作に遭遇することで、必要に応じてセキュリティプロトコルを更新します。
まとめると、サンドボックスは、最適なソフトウェアパフォーマンスを確保しながら、強力なセキュリティと継続的な革新を維持するために、組織にとって不可欠なツールです。
Proofpoint TAP (Targeted Attack Protection)
サンドボックスの活用例
サンドボックスはソフトウェアとハードウェアのどちらにも導入できます。ハードウェアを制限することで、サンドボックスは独立したネットワークを確立できます。十分に制限された隔離には、サンドボックスが独自のWi-Fiルーターやプロバイダ(ISP)接続上にあることで実現します。悪質なアプリケーションが主要なネットワークに対して物理的なアクセスができないように、これらの設定を活用します。
ローカルのオペレーティングシステムを保護するため、デフォルトでサンドボックスを使用するアプリケーションもあります。またブラウザには、ローカルコンピュータのリソースからアクセスして、Web上の隔離された環境で悪質なアプリケーションを実行する独自のサンドボックスがあります。Javaのようなプログラム言語も、Webページ上で実行する信用できないJavaアプレットから、ローカルリソースを保護する独自のサンドボックスを持っています。
Windows10のオペレーティングシステムでは、プリインストールされたサンドボックスにより、信用できないプログラムからホストのデスクトップを守っています。これは、ウイルス対策やファイアウォール、マルウェア対策のプログラムの代わりとしては不十分ですが、従来のWindowsオペレーティングシステムにはないセキュリティ層を追加しました。
HTML5には、iframe機能の誤用を防ぐためのサンドボックスがあります。さらに、Linux OSでは、Seccompやcgroupsを使用したサンドボックスをアプリケーションに構築します。Google Sandbox APIは、C++でコードを書く開発者にとって、本番環境にデプロイする前のサンドボックスとして有効です。
クラウドベースのサンドボックスは、クラウド上にホストされた仮想環境です。これにより、安全なコードの実行と分析が可能となり、複数のサンドボックスインスタンスを同時に実行するためのスケーラビリティと柔軟性が提供されます。
最後に、開発環境は一般的にサンドボックスとして構築されます。DockerやKubernetesのようなプラットフォームは、軽量なサンドボックス化の一種であるコンテナ化を使用しており、これにより開発者はアプリケーションをそのすべての依存関係と一緒に「コンテナ」にパッケージ化できます。これにより、異なる環境間でアプリケーションが一貫して実行されることが保証されます。
サンドボックスの設定方法
サンドボックスの設定方法は、用途により変わってきます。多くのクラウドプラットフォームには、新しいプログラムやアップデートを動作させるために独自のサンドボックスが用意されています。たとえば、PayPalを支払い処理に利用することとした場合、そのプラットフォームには本番環境がエミュレートできるフル機能のサンドボックスがあります。つまり、サンドボックスで使用するプログラムはすべて本番環境から隔離しているため、エラーやバグが発生してもメインのプラットフォームに影響を与えることがありません。
プログラムやマルウェアをテストするのにサンドボックスが必要であれば、仮想マシンをインストールして自分用のサンドボックスを作成できます。VirtualBoxは仮想環境(仮想マシン)をホストするためによく使用されます。そして、仮想マシン内部で、オペレーティングシステムを実行するインストールファイルが必要です。
仮想マシンにオペレーティングシステムをインストールする前に、メモリ・CPU・ストレージ容量・ネットワークアダプタなどの環境に合ったハードウェアリソースを設定してください。仮想化されたリソースは、仮想マシンの外部では使用ができなくなっています。逆に、新しい仮想環境で実行されているプログラムは、メモリリソースをメインのオペレーティングシステムとは共用できず、仮想マシンの外部のいかなるものとも共用することはできません。
サンドボックスが安全であると思われがちですが、攻撃者は常にサンドボックスのセキュリティを破る方法を探しています。そのため悪用の恐れがあるサンドボックスの脆弱性を見つけた人に、テクノロジー企業が多額の賞金を与えることがよくあります。Microsoft Edgeは、ブラウザのサンドボックス上でセキュリティを回避するルートを見つけた場合には、最大30,000ドルの賞金を出すと発表しています。またGoogle Chromeでは、2012年にすべてのパッチを適用したコンピュータでエクスプロイトプログラムを実行できた人に60,000ドルの賞金を支払いました。
すべてのセキュリティ研究やマルウェア分析に乗り出す際には、サンドボックスはなくてはならない存在です。もし予期せぬ問題が起きた場合、ネットワークストレージを含む、すべてのリソースは仮想マシンでの利用が不可能になります。サンドボックスがあれば、本番環境を台無しにするリスク抜きに分析が実行に移せます。
サンドボックスに関するProofpointのソリューション
ProofpointのTargeted Attack Protection (TAP)ソリューションは、サイバーセキュリティアプローチの一部としてサンドボックス機能を活用しています。TAPのサンドボックス機能により、マルウェアをインストールしたり、ユーザーに機密情報を共有させたりする悪意のある添付ファイルやURLを含む、さまざまな攻撃の研究と分析が可能です。
サンドボックスを活用することで、TAPは潜在的に悪意のあるプログラムや安全でないコードを安全かつ隔離された環境で実行および観察し、ホストデバイスやオペレーティングシステムを危険にさらすことなく分析できます。サンドボックス内でコードの動作や出力アクティビティを分析することで、高度な脅威のプロアクティブな検出と緩和が可能になります。
ProofpointのTAPソリューションは、潜在的な脅威がネットワークに侵入して被害を引き起こすのを防ぐゼロデイプロテクション機能の一環としてサンドボックスを使用しています。この機能は、脅威をプロアクティブに特定し除去するうえで重要な役割を果たし、組織のセキュリティ体制を強化します。
サンドボックスに加えて、ProofpointのTAPソリューションは、スキャン、フィルタリング、予測分析などの他のセキュリティ対策を取り入れ、高度な脅威を特定および緩和します。このソリューションは、データの転送中および保存中の暗号化、アクセス制御メカニズム、脆弱性管理など、業界標準に準拠した包括的な情報セキュリティプログラムを維持しています。
詳細については、Proofpointへお気軽にお問い合わせください。