(57)【要約】【課題】Sandbox技術を検知可能なマルウェアであっても確実に検知し得る、マルウェア検知装置、マルウェア検知システム、マルウェア検知方法、及びプログラムを提供する。【解決手段】マルウェア検知システム１００は、仮想環境を利用してマルウェアを検知するため、ダウンロードしたソフトウェアを仮想環境下で実行し、ソフトウェアの識別情報及び仮想環境下での実行時の動作ログを取得する、サンドボックス装置３０と、ソフトウェアを実環境下で実行する端末装置４０に備えられ、且つ、ソフトウェアの識別情報及び端末装置による実環境下での実行時の動作ログを取得する、エージェント装置４１と、サンドボックス装置３０によって取得された識別情報及び動作ログ及びエージェント装置４１によって取得された識別情報及び動作ログに基づいて、ソフトウェアがマルウェアかどうかを判定する、マルウェア検知装置５０と、を備えている。【選択図】図１
2014071796.tif 000002
【特許請求の範囲】
【請求項１】
仮想環境を利用してマルウェアを検知するための装置であって、
ダウンロードしたソフトウェアを仮想環境下で実行するサンドボックス装置、及びダウンロードした前記ソフトウェアを実環境下で実行する端末装置、それぞれから、前記ソフトウェアの識別情報、及び前記ソフトウェアの実行時の動作ログを受信する、情報受信部と、
前記サンドボックス装置から受信した識別情報及び動作ログと、前記端末装置から受信した識別情報及び動作ログとに基づいて、前記ソフトウェアがマルウェアかどうかを判定する、マルウェア判定部と、
を備えていることを特徴とするマルウェア検知装置。
【請求項２】
前記マルウェア判定部が、まず、前記サンドボックス装置から受信した識別情報と前記端末装置から受信した識別情報とが一致することを条件に、前記サンドボックス装置から受信した動作ログと前記端末装置から受信した動作ログとを比較し、比較結果に基づいて、前記ソフトウェアがマルウェアかどうかを判定する、請求項１に記載のマルウェア検知装置。
【請求項３】
前記識別情報が、前記ソフトウェアを構成するファイルのハッシュ値である、請求項１または２に記載のマルウェア検知装置。
【請求項４】
仮想環境を利用してマルウェアを検知するためのシステムであって、
ダウンロードしたソフトウェアを仮想環境下で実行し、前記ソフトウェアの識別情報及び前記仮想環境下での実行時の動作ログを取得する、サンドボックス装置と、
前記ソフトウェアを実環境下で実行する端末装置に備えられ、且つ、前記ソフトウェアの識別情報及び前記端末装置による前記実環境下での実行時の動作ログを取得する、エージェント装置と、
前記サンドボックス装置によって取得された識別情報及び動作ログと、前記エージェント装置によって取得された識別情報及び動作ログとに基づいて、前記ソフトウェアがマルウェアかどうかを判定する、マルウェア検知装置と、
を備えていることを特徴とするマルウェア検知システム。
【請求項５】
仮想環境を利用してマルウェアを検知するための装置であって、
（ａ）ダウンロードしたソフトウェアを仮想環境下で実行するサンドボックス装置、及びダウンロードした前記ソフトウェアを実環境下で実行する端末装置、それぞれから、前記ソフトウェアの識別情報、及び前記ソフトウェアの実行時の動作ログを受信する、ステップと、
（ｂ）前記サンドボックス装置から受信した識別情報及び動作ログと、前記端末装置から受信した識別情報及び動作ログとに基づいて、前記ソフトウェアがマルウェアかどうかを判定する、ステップと、
を有することを特徴とするマルウェア検知方法。
【請求項６】
前記（ｂ）のステップにおいて、前記サンドボックス装置から受信した識別情報と前記端末装置から受信した識別情報とが一致することを条件に、前記サンドボックス装置から受信した動作ログと前記端末装置から受信した動作ログとを比較し、比較結果に基づいて、前記ソフトウェアがマルウェアかどうかを判定する、請求項５に記載のマルウェア検知方法。
【請求項７】
前記識別情報が、前記ソフトウェアを構成するファイルのハッシュ値である、請求項５または６に記載のマルウェア検知方法。
【請求項８】
コンピュータによって、仮想環境を利用したマルウェアの検知を行なうためのプログラムであって、
前記コンピュータに、
（ａ）ダウンロードしたソフトウェアを仮想環境下で実行するサンドボックス装置、及びダウンロードした前記ソフトウェアを実環境下で実行する端末装置、それぞれから、前記ソフトウェアの識別情報、及び前記ソフトウェアの実行時の動作ログを受信する、ステップと、
（ｂ）前記サンドボックス装置から受信した識別情報及び動作ログと、前記端末装置から受信した識別情報及び動作ログとに基づいて、前記ソフトウェアがマルウェアかどうかを判定する、ステップと、
を実行させるプログラム。
【請求項９】
前記（ｂ）のステップにおいて、前記サンドボックス装置から受信した識別情報と前記端末装置から受信した識別情報とが一致することを条件に、前記サンドボックス装置から受信した動作ログと前記端末装置から受信した動作ログとを比較し、比較結果に基づいて、前記ソフトウェアがマルウェアかどうかを判定する、請求項８に記載のプログラム。
【請求項１０】
前記識別情報が、前記ソフトウェアを構成するファイルのハッシュ値である、請求項８または９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、標的型攻撃に使われるマルウェアを検知するための、マルウェア検知装置、マルウェア検知システム、マルウェア検知方法、及びこれらを実現するためのプログラムに関する。
【背景技術】
【０００２】
昨今、企業、官庁といった特定の組織を標的とした標的型攻撃による被害が深刻化しており、更に、その実態の把握が難しくなっている。一般に、標的型攻撃は、マルウェア（Malware：悪意のあるソフトウェア）によるものが多数であるが、最近では、ダウンローダを介して設置される多段型のマルウェアによる標準型攻撃も増加している。なお、「ダウンローダ」とは、インターネット上のホストからプログラム又は機械語コードをダウンロードするソフトウェアである。
【０００３】
このようなマルウェアを検知する仕組みの一つとして、Sandbox技術が知られている。Sandbox技術とは、外部に影響を及ぼすことがないように、独立及び閉鎖した仮想実行環境の中で、疑わしいファイルを実行し、最終的にマルウェアであるか否かを判断する技術である。
【０００４】
例えば、特許文献１は、Sandbox技術を用いてマルウェアを検出するシステムの一例を開示している。特許文献１に開示されたシステムは、検査対象のマルウェアのSandbox環境での動作ログと、実際の環境で取得された当該マルウェアの動作ログとを比較することによって、マルウェアかどうかを判断する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−３７５４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、近年、標的型攻撃に使われるマルウェアの中には、Sandbox技術を検知する新種のマルウェアが登場している。このような新種のマルウェアは、Sandbox技術で使用する仮想実行環境を検知すると、活動を中止することができるため、特許文献１に開示されたシステムを用いても、新種のマルウェアを検知することは困難である。
【０００７】
本発明の目的の一例は、上記問題を解消し、Sandbox技術を検知可能なマルウェアであっても確実に検知し得る、マルウェア検知装置、マルウェア検知システム、マルウェア検知方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の一側面におけるマルウェア検知装置は、仮想環境を利用してマルウェアを検知するための装置であって、
ダウンロードしたソフトウェアを仮想環境下で実行するサンドボックス装置、及びダウンロードした前記ソフトウェアを実環境下で実行する端末装置、それぞれから、前記ソフトウェアの識別情報、及び前記ソフトウェアの実行時の動作ログを受信する、情報受信部と、
前記サンドボックス装置から受信した識別情報及び動作ログと、前記端末装置から受信した識別情報及び動作ログとに基づいて、前記ソフトウェアがマルウェアかどうかを判定する、マルウェア判定部と、
を備えていることを特徴とする。
【０００９】
上記目的を達成するため、本発明の一側面におけるマルウェア検知システムは、仮想環境を利用してマルウェアを検知するためのシステムであって、
ダウンロードしたソフトウェアを仮想環境下で実行し、前記ソフトウェアの識別情報及び前記仮想環境下での実行時の動作ログを取得する、サンドボックス装置と、
前記ソフトウェアを実環境下で実行する端末装置に備えられ、且つ、前記ソフトウェアの識別情報及び前記端末装置による前記実環境下での実行時の動作ログを取得する、エージェント装置と、
前記サンドボックス装置によって取得された識別情報及び動作ログと、前記エージェント装置によって取得された識別情報及び動作ログとに基づいて、前記ソフトウェアがマルウェアかどうかを判定する、マルウェア検知装置と、
を備えていることを特徴とする。
【００１０】
また、上記目的を達成するため、本発明の一側面におけるマルウェア検知方法は、仮想環境を利用してマルウェアを検知するための装置であって、
（ａ）ダウンロードしたソフトウェアを仮想環境下で実行するサンドボックス装置、及びダウンロードした前記ソフトウェアを実環境下で実行する端末装置、それぞれから、前記ソフトウェアの識別情報、及び前記ソフトウェアの実行時の動作ログを受信する、ステップと、
（ｂ）前記サンドボックス装置から受信した識別情報及び動作ログと、前記端末装置から受信した識別情報及び動作ログとに基づいて、前記ソフトウェアがマルウェアかどうかを判定する、ステップと、
を有することを特徴とする。
【００１１】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、コンピュータによって、仮想環境を利用したマルウェアの検知を行なうためのプログラムであって、
前記コンピュータに、
（ａ）ダウンロードしたソフトウェアを仮想環境下で実行するサンドボックス装置、及びダウンロードした前記ソフトウェアを実環境下で実行する端末装置、それぞれから、前記ソフトウェアの識別情報、及び前記ソフトウェアの実行時の動作ログを受信する、ステップと、
（ｂ）前記サンドボックス装置から受信した識別情報及び動作ログと、前記端末装置から受信した識別情報及び動作ログとに基づいて、前記ソフトウェアがマルウェアかどうかを判定する、ステップと、
を実行させることを特徴とする。
【発明の効果】
【００１２】
以上のように、本発明によれば、Sandbox技術を検知可能なマルウェアであっても確実に検知することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の実施の形態におけるマルウェア検知システムの全体構成を示すブロック図である。
【図２】図２は、本発明の実施の形態で用いられるサンドボックス装置の構成を示すブロック図である。
【図３】図３は、本発明の実施の形態で用いられるエージェント装置の構成を示すブロック図である。
【図４】図４は、本発明の実施の形態におけるマルウェア検知装置の構成を示すブロック図である。
【図５】図５は、図４に示すサンドボックス情報データベースに格納されている情報の一例を示す図である。
【図６】図６は、図４に示すエージェント情報データベースに格納されている情報の一例を示す図である。
【図７】図７は、本発明の実施の形態におけるマルウェア検知システムの動作を示すシーケンス図である。
【図８】図８は、本発明の実施の形態におけるマルウェア検知装置を実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【００１４】
（実施の形態）
以下、本発明の実施の形態における、マルウェア検知装置、マルウェア検知システム、マルウェア検知方法、及びプログラムについて、図１〜図７を参照しながら説明する。
【００１５】
［システム構成］
最初に、本実施の形態におけるマルウェア検知システムの構成について図１を用いて説明する。図１は、本発明の実施の形態におけるマルウェア検知システムの全体構成を示すブロック図である。
【００１６】
図１に示すように、本実施の形態におけるマルウェア検知システム１００は、インターネット等のネットワーク１２を介してサーバ１０から送信されてくるソフトウェア１１の中から、仮想環境を利用してマルウェアを検知するシステムである。なお、送信されてくるソフトウェア１１がマルウェアである場合、マルウェアを送信するサーバ１０は、マルウェアに感染したコンピュータに指令を送り、制御の中心となることから、一般にＣ＆Ｃ（command & control）サーバと呼ばれている。
【００１７】
また、図１に示すように、マルウェア検知システム１００は、サンドボックス装置３０と、エージェント装置４１と、マルウェア検知装置５０とを備えている。更に、サンドボックス装置３０、エージェント装置４１、及びマルウェア検知装置５０は、スイッチ２０に接続されており、スイッチ２０を介してネットワーク１２に接続されている。
【００１８】
サンドボックス装置３０は、Sandbox技術を利用した装置である。サンドボックス装置３０は、サーバ１０からダウンロードしたソフトウェア１１を仮想環境下で実行し、ソフトウェア１１の識別情報及び仮想環境下での実行時の動作ログを取得する。
【００１９】
エージェント装置４１は、マルウェアのターゲットとなる端末装置４０に備えられている。端末装置４０は、サーバ１０から送信されてきたソフトウェア１１をダウンロードし、そして、ソフトウェア１１を実環境下で実行する。また、エージェント装置４１は、ソフトウェア１１の識別情報、及び端末装置４０によるソフトウェア１１の実環境下での実行時の動作ログを取得する。
【００２０】
マルウェア検知装置５０は、サンドボックス装置３０によって取得された識別情報及び動作ログと、エージェント装置４１によって取得された識別情報及び動作ログとに基づいて、ソフトウェア１１がマルウェアかどうかを判定する。
【００２１】
このように、本実施の形態におけるマルウェア検知システム１００では、対象となるソフトウェアについて、仮想環境下と実環境下との両方から、動作ログに加えて識別情報も取得される。よって、対象となるソフトウェアが、Sandbox技術を検知可能なマルウェアである場合は、識別情報は一致しているが、動作ログが不一致となった状態となるので、このようなマルウェアであっても確実に検知することができる。
【００２２】
以下、図２〜図６を用いて、本実施の形態におけるマルウェア検知システム１００を構成する各装置について、より具体的に説明する。
【００２３】
［サンドボックス装置の構成］
図２は、本発明の実施の形態で用いられるサンドボックス装置の構成を示すブロック図である。図２に示すように、サンドボックス装置３０は、スイッチ２０のミラーポート（図２において図示せず）に接続されている。
【００２４】
また、図２に示すように、サンドボックス装置３０は、ソフトウェア受信部３１と、ハッシュ計算部３２と、ソフトウェア実行部３３と、動作ログ取得部３４と、格納部３５と、送信部３６とを備えている。このうち、ソフトウェア受信部３１は、ネットワーク１２（図１参照）を介して送信されてくるソフトウェア１１を受信する。
【００２５】
ハッシュ計算部３２は、ソフトウェア受信部３１が受信したソフトウェア１１を構成するファイルから、そのハッシュ値を算出する。本実施の形態では、この算出されたハッシュ値が、ソフトウェア１１の識別情報となる。また、算出されたハッシュ値は、格納部３５に格納される。
【００２６】
また、ソフトウェア実行部３３は、ソフトウェア受信部３１が受信したソフトウェア１１を、Sandbox技術を用いて、実行する。具体的には、ソフトウェア実行部３３は、外部に悪影響が及ばないように閉ざされた仮想領域内で、ソフトウェア１１のファイルを実行する。この仮想領域は、他のファイル等から隔離されるように構築されており、ソフトウェア１１がマルウェアであったとしても、その悪影響が外部に及ばないようになっている。
【００２７】
動作ログ取得部３４は、ソフトウェア実行部３３によってソフトウェア１１が実行されると、ソフトウェア１１によって行なわれた処理（例えば、レジストリの更新、削除等）の動作ログを取得する。取得された動作ログは、格納部３５に格納される。送信部３６は、マルウェア検知装置５０に対して、格納部３５に格納されているハッシュ値と動作ログとを送信する。
【００２８】
また、本実施の形態では、サンドボックス装置３０は、コンピュータのＯＳ（Operating System）上で動作するプログラムによって構築されている。このため、実際には、コンピュータのＣＰＵ（Central Processing Unit）が、ソフトウェア受信部３１、ハッシュ計算部３２、ソフトウェア実行部３３、動作ログ取得部３４、及び送信部３６として機能する。更に、コンピュータの記憶装置（メモリ、ハードディスク等）が、格納部３５として機能する。
【００２９】
［エージェント装置の構成］
図３は、本発明の実施の形態で用いられるエージェント装置の構成を示すブロック図である。図３に示すように、エージェント装置４１は、端末装置４０の内部に構築されており、端末装置４０を介して、スイッチ２０に接続されている。具体的には、エージェント装置４１は、端末装置４０のＯＳ４２上で動作するプログラムによって構築されている。
【００３０】
また、図３に示すように、エージェント装置４１は、ソフトウェア受信部４１１と、ハッシュ計算部４１２と、ソフトウェア監視部４１３と、動作ログ取得部４１４と、格納部４１５と、送信部４１６とを備えている。このうち、ソフトウェア受信部４１４は、ネットワーク１２（図１参照）を介して端末装置４０送信されてくるソフトウェア１１を受信する。
【００３１】
ハッシュ計算部４１２は、図２に示したハッシュ計算部３２と同様に、ソフトウェア受信部４１４が受信したソフトウェア１１を構成するファイルから、そのハッシュ値を算出する。ハッシュ計算部４１２によって算出されたハッシュ値も、サンドボックス装置３０の場合と同様に、ソフトウェア１１の識別情報となる。また、算出されたハッシュ値は、格納部４１５に格納される。
【００３２】
また、ソフトウェア監視部４１３は、ソフトウェア受信部４１１によって受信されたソフトウェア１１を監視し、ＯＳ４２によってソフトウェア１１が実行されると、そのことを動作ログ取得部４１４に通知する。
【００３３】
動作ログ取得部４１４は、ソフトウェア監視部４１３からの通知を受けると、ソフトウェア１１によって行なわれた処理（例えば、レジストリの更新、削除等）の動作ログを取得する。取得された動作ログは、格納部４１５に格納される。送信部４１６は、図２に示した送信部３６と同様に、マルウェア検知装置５０に対して、格納部４１５に格納されているハッシュ値と動作ログとを送信する。
【００３４】
上述したように、本実施の形態では、エージェント装置４１は、端末装置４０のＯＳ４２上で動作するプログラムによって構築されている。よって、実際には、端末装置４０のＣＰＵが、ソフトウェア受信部４１１、ハッシュ計算部４１２、ソフトウェア実行部４１３、動作ログ取得部４１４、及び送信部４１６として機能する。更に、コンピュータの記憶装置（メモリ、ハードディスク等）が、格納部４１５として機能する。
【００３５】
［マルウェア検知装置の構成］
図４は、本発明の実施の形態におけるマルウェア検知装置の構成を示すブロック図である。図４に示すように、マルウェア検知装置５０は、情報受信部５１と、サンドボックス情報データベース５２と、エージェント情報データベース５３と、データベース監視部５４と、マルウェア判定部５５とを備えている。
【００３６】
このうち、情報受信部５１は、サンドボックス装置３０及び端末装置４０それぞれから、ソフトウェア１１の識別情報、及びソフトウェア１１の実行時の動作ログを受信する。具体的には、情報受信部５１は、サンドボックス装置３０の送信部３６によって送信されたハッシュ値及び動作ログと、エージェント装置４１の送信部４１６によって送信されたハッシュ値及び動作ログとを、スイッチ２０を介して受信する。
【００３７】
また、情報受信部５１は、サンドボックス装置３０から送信されたハッシュ値及び動作ログを、サンドボックス情報データベース５２に格納する。更に、情報受信部５１は、エージェント装置４１（端末装置４０）から送信されたハッシュ値及び動作ログを、エージェント情報データベース５３に格納する。
【００３８】
データベース監視部５４は、サンドボックス情報データベース５２及びエージェント情報データベース５３それぞれを常時監視する。そして、データベース監視部５４は、サンドボックス情報データベース５２及びエージェント情報データベース５３の両方に、同じ値のハッシュ値が格納されると、そのことをマルウェア判定部５５に通知する。
【００３９】
マルウェア判定部５５は、サンドボックス装置３０から受信した識別情報及び動作ログと、端末装置４０から受信した識別情報及び動作ログとに基づいて、ソフトウェア１１がマルウェアかどうかを判定する。
【００４０】
具体的には、本実施の形態では、マルウェア判定部５５は、データベース監視部５４からハッシュ値が一致した旨の通知を受けると、該当するファイルについて、サンドボックス装置３０から受信した動作ログと、端末装置４０から受信した動作ログとを比較する。そして、マルウェア判定部５５は、比較の結果、両者が不一致となる場合は、ソフトウェア１１はマルウェアであると判定し、両者が一致する場合は、ソフトウェア１１はマルウェアでないと判定する。
【００４１】
また、図５は、図４に示すサンドボックス情報データベースに格納されている情報の一例を示す図である。図５に示すように、サンドボックス情報データベース５２には、サンドボックス装置３０にダウンロードされたソフトウェア毎に、ファイル名、ハッシュ値、動作ログ、及び詳細ログが格納されている。
【００４２】
図６は、図４に示すエージェント情報データベースに格納されている情報の一例を示す図である。図６に示すように、エージェント情報データベース５３には、端末装置４０にダウンロードされたソフトウェア毎に、ファイル名、ハッシュ値、プロセス名、及び動作ログが格納されている。
【００４３】
［システム動作］
次に、本発明の実施の形態におけるマルウェア検知装置及びマルウェア検知システムの動作について図７を用いて説明する。図７は、本発明の実施の形態におけるマルウェア検知システムの動作を示すシーケンス図である。以下の説明においては、適宜図１〜図６を参酌する。また、本実施の形態では、マルウェア検知装置５０装置を動作させることによって、マルウェア検知方法が実施される。よって、本実施の形態におけるマルウェア検知方法の説明は、以下のマルウェア検知装置５０の動作説明に代える。
【００４４】
最初に、図７に示すように、ソフトウェア１１が、外部のサーバ１０から、ネットワーク１２を介して、サンドボックス装置３０及び端末装置４０へとダウンロードされる（ステップＳ１及びステップＳ１２）。
【００４５】
ステップＳ１が実行されると、サンドボックス装置３０では、ソフトウェア受信部３１が、ソフトウェア１１を受信する。また、ソフトウェア受信部３１は、ソフトウェア１１をハッシュ計算部３２に送ると共に、ハッシュ計算部３２に対して、ソフトウェア１１のハッシュ値の計算を指示する（ステップＳ２）。
【００４６】
ステップＳ２が実行されると、ハッシュ計算部３２は、ソフトウェア１１のハッシュ値を計算し（ステップＳ３）、計算したハッシュ値を、格納部３５に格納する（ステップＳ４）。
【００４７】
また、ソフトウェア受信部３１は、ステップＳ２の実行後又は実行と同時に、ソフトウェア実行部３３に対して、ソフトウェア１１の実行を指示する（ステップＳ５）。ソフトウェア実行部３３は、ステップＳ５の指示を受けると、動作ログの取得のため、動作ログ取得部３４に対して、ソフトウェア１１の動作ログの取得を開始するように指示を行なう（ステップＳ６）。また、ソフトウェア実行部３３は、ソフトウェア１１を仮想環境下で実行する（ステップＳ７）。
【００４８】
ステップＳ６が実行されると、動作ログ取得部３４は、ソフトウェア１１の実行時の動作ログを取得する（ステップＳ８）。また、動作ログ取得部３４は、ソフトウェア１１の動作ログを取得し終えると、取得した動作ログを格納部３５に送り、そこに格納する（ステップＳ９）。
【００４９】
次に、格納部３５は、ソフトウェア毎に、格納しているハッシュ値と動作ログとを組み合わせ、得られた組み合せデータを、送信部３６に送る（ステップＳ１０）。続いて、送信部３６は、送られてきた組み合せデータを、マルウェア検知装置５０に送信する（ステップＳ１１）。
【００５０】
また、ステップＳ１２が実行されると、エージェント装置４１では、ソフトウェア受信部４１１が、ソフトウェア１１を受信する。また、ソフトウェア受信部４１１は、受信したソフトウェア１１をハッシュ計算部４１２に送ると共に、ハッシュ計算部４１２に対して、ソフトウェア１１のハッシュ値の計算を指示する（ステップＳ１３）。
【００５１】
ステップＳ１３が実行されると、ハッシュ計算部４１２は、ソフトウェア１１のハッシュ値を計算し（ステップＳ１４）、計算したハッシュ値を、格納部４１５に格納する（ステップＳ１５）。
【００５２】
また、ソフトウェア受信部４１１は、ステップＳ１３の実行後又は実行と同時に、ソフトウェア監視部４１３に対して、ソフトウェア１１の監視を開始するように指示を行なう（ステップＳ１６）。ステップＳ１６が実行されると、ソフトウェア監視部４１３は、端末装置４０におけるソフトウェア１１の実行を監視する（ステップＳ１７）。そして、ソフトウェア監視部４１３は、ソフトウェア１１の実行を検知すると、動作ログ取得部４１４に対して、ソフトウェア１１の動作ログの取得を開始するように指示を行なう（ステップＳ１８）。
【００５３】
ステップＳ１８が実行されると、動作ログ取得部４１４は、ソフトウェア１１の実行時の動作ログを取得する（ステップＳ１９）。また、動作ログ取得部４１４は、ソフトウェア１１の動作ログを取得し終えると、取得した動作ログを格納部４１５に送り、そこに格納する（ステップＳ２０）。
【００５４】
次に、格納部４１５は、ソフトウェア毎に、格納しているハッシュ値と動作ログとを組み合わせ、得られた組み合せデータを、送信部４１６に送る（ステップＳ２１）。続いて、送信部４１６は、送られてきた組み合せデータを、マルウェア検知装置５０に送信する（ステップＳ２２）。
【００５５】
ステップＳ１１及びＳ２２が実行されると、マルウェア検知装置５０において、情報受信部５１が、サンドボックス装置３０及びエージェント装置４１（端末装置４０）それぞれから、ソフトウェア１１のハッシュ値と動作ログとを受信する。
【００５６】
そして、情報受信部５１は、サンドボックス装置３０から送信されたハッシュ値及び動作ログを、サンドボックス情報データベース５２に格納する（ステップＳ２３）。また、情報受信部５１は、エージェント装置４１（端末装置４０）から送信されたハッシュ値及び動作ログを、エージェント情報データベース５３に格納する（ステップＳ２４）。
【００５７】
データベース監視部５４は、サンドボックス情報データベース５２に、最初にハッシュ値及び動作ログが格納されたときから、サンドボックス情報データベース５２を監視している（ステップＳ２５）。また、データベース監視部５４は、エージェント情報データベース５３に、最初にハッシュ値及び動作ログが格納されたときから、エージェント情報データベース５３を監視している（ステップＳ２６）。
【００５８】
次に、データベース監視部５４は、サンドボックス情報データベース５２及びエージェント情報データベース５３の両方に、同じ値のハッシュ値が格納されると、そのことをマルウェア判定部５５に通知し、マルウェアの判定を指示する（ステップＳ２７）。
【００５９】
次に、マルウェア判定部５５は、対応するファイルについて、サンドボックス情報データベース５２に格納されている動作ログと、エージェント情報データベース５３に格納されている動作ログとを、比較する。そして、マルウェア判定部５５は、比較結果に基づいて、ソフトウェア１１がマルウェアかどうか判定する（ステップＳ２８）。具体的には、マルウェア判定部５５は、比較の結果、両者が不一致となる場合は、ソフトウェア１１はマルウェアであると判定し、両者が一致する場合は、ソフトウェア１１はマルウェアでないと判定する。
【００６０】
以上のように本実施の形態によれば、対象となるソフトウェアについて、仮想環境下と実環境下との両方における振る舞いを確認できるので、Sandbox技術を検知可能なマルウェアであっても確実に検知することが可能となる。
【００６１】
［プログラム］
本実施の形態におけるプログラムは、コンピュータに、図７に示すステップＳ２３〜Ｓ２８を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態におけるマルウェア検知装置５０とマルウェア検知方法とを実現することができる。この場合、コンピュータのＣＰＵは、情報受信部５１、データベース監視部５４、及びマルウェア判定部５５として機能し、処理を行なう。更に、サンドボックス情報データベース５２と、エージェント情報データベース５３とは、コンピュータに備えられたハードディスク等の記憶装置によって実現できる。
【００６２】
ここで、本実施の形態におけるプログラムを実行することによって、マルウェア検知装置を実現するコンピュータについて図８を用いて説明する。図８は、本発明の実施の形態におけるマルウェア検知装置を実現するコンピュータの一例を示すブロック図である。
【００６３】
図８に示すように、コンピュータ１１０は、ＣＰＵ１１１と、メインメモリ１１２と、記憶装置１１３と、入力インターフェイス１１４と、表示コントローラ１１５と、データリーダ／ライタ１１６と、通信インターフェイス１１７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。
【００６４】
ＣＰＵ１１１は、記憶装置１１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ１１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体１２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス１１７を介して接続されたインターネット上で流通するものであっても良い。
【００６５】
また、記憶装置１１３の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス１１４は、ＣＰＵ１１１と、キーボード及びマウスといった入力機器１１８との間のデータ伝送を仲介する。表示コントローラ１１５は、ディスプレイ装置１１９と接続され、ディスプレイ装置１１９での表示を制御する。
【００６６】
データリーダ／ライタ１１６は、ＣＰＵ１１１と記録媒体１２０との間のデータ伝送を仲介し、記録媒体１２０からのプログラムの読み出し、及びコンピュータ１１０における処理結果の記録媒体１２０への書き込みを実行する。通信インターフェイス１１７は、ＣＰＵ１１１と、他のコンピュータとの間のデータ伝送を仲介する。
【００６７】
また、記録媒体１２０の具体例としては、ＣＦ（Compact Flash（登録商標））及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）等の磁気記憶媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記憶媒体が挙げられる。
【００６８】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記１２）によって表現することができるが、以下の記載に限定されるものではない。
【００６９】
（付記１）
仮想環境を利用してマルウェアを検知するための装置であって、
ダウンロードしたソフトウェアを仮想環境下で実行するサンドボックス装置、及びダウンロードした前記ソフトウェアを実環境下で実行する端末装置、それぞれから、前記ソフトウェアの識別情報、及び前記ソフトウェアの実行時の動作ログを受信する、情報受信部と、
前記サンドボックス装置から受信した識別情報及び動作ログと、前記端末装置から受信した識別情報及び動作ログとに基づいて、前記ソフトウェアがマルウェアかどうかを判定する、マルウェア判定部と、
を備えていることを特徴とするマルウェア検知装置。
【００７０】
（付記２）
前記マルウェア判定部が、まず、前記サンドボックス装置から受信した識別情報と前記端末装置から受信した識別情報とが一致することを条件に、前記サンドボックス装置から受信した動作ログと前記端末装置から受信した動作ログとを比較し、比較結果に基づいて、前記ソフトウェアがマルウェアかどうかを判定する、付記１に記載のマルウェア検知装置。
【００７１】
（付記３）
前記識別情報が、前記ソフトウェアを構成するファイルのハッシュ値である、付記１または３に記載のマルウェア検知装置。
【００７２】
（付記４）
仮想環境を利用してマルウェアを検知するためのシステムであって、
ダウンロードしたソフトウェアを仮想環境下で実行し、前記ソフトウェアの識別情報及び前記仮想環境下での実行時の動作ログを取得する、サンドボックス装置と、
前記ソフトウェアを実環境下で実行する端末装置に備えられ、且つ、前記ソフトウェアの識別情報及び前記端末装置による前記実環境下での実行時の動作ログを取得する、エージェント装置と、
前記サンドボックス装置によって取得された識別情報及び動作ログと、前記エージェント装置によって取得された識別情報及び動作ログとに基づいて、前記ソフトウェアがマルウェアかどうかを判定する、マルウェア検知装置と、
を備えていることを特徴とするマルウェア検知システム。
【００７３】
（付記５）
前記マルウェア検知装置が、まず、前記サンドボックス装置によって取得された識別情報と前記エージェント装置によって取得された識別情報とが一致することを条件に、前記サンドボックス装置によって取得された動作ログと前記エージェント装置によって取得された動作ログとを比較し、比較結果に基づいて、前記ソフトウェアがマルウェアかどうかを判定する、付記４に記載のマルウェア検知システム。
【００７４】
（付記６）
前記識別情報が、前記ソフトウェアを構成するファイルのハッシュ値である、付記４または５に記載のマルウェア検知システム。
【００７５】
（付記７）
仮想環境を利用してマルウェアを検知するための装置であって、
（ａ）ダウンロードしたソフトウェアを仮想環境下で実行するサンドボックス装置、及びダウンロードした前記ソフトウェアを実環境下で実行する端末装置、それぞれから、前記ソフトウェアの識別情報、及び前記ソフトウェアの実行時の動作ログを受信する、ステップと、
（ｂ）前記サンドボックス装置から受信した識別情報及び動作ログと、前記端末装置から受信した識別情報及び動作ログとに基づいて、前記ソフトウェアがマルウェアかどうかを判定する、ステップと、
を有することを特徴とするマルウェア検知方法。
【００７６】
（付記８）
前記（ｂ）のステップにおいて、前記サンドボックス装置から受信した識別情報と前記端末装置から受信した識別情報とが一致することを条件に、前記サンドボックス装置から受信した動作ログと前記端末装置から受信した動作ログとを比較し、比較結果に基づいて、前記ソフトウェアがマルウェアかどうかを判定する、付記７に記載のマルウェア検知方法。
【００７７】
（付記９）
前記識別情報が、前記ソフトウェアを構成するファイルのハッシュ値である、付記７または８に記載のマルウェア検知方法。
【００７８】
（付記１０）
コンピュータによって、仮想環境を利用したマルウェアの検知を行なうためのプログラムであって、
前記コンピュータに、
（ａ）ダウンロードしたソフトウェアを仮想環境下で実行するサンドボックス装置、及びダウンロードした前記ソフトウェアを実環境下で実行する端末装置、それぞれから、前記ソフトウェアの識別情報、及び前記ソフトウェアの実行時の動作ログを受信する、ステップと、
（ｂ）前記サンドボックス装置から受信した識別情報及び動作ログと、前記端末装置から受信した識別情報及び動作ログとに基づいて、前記ソフトウェアがマルウェアかどうかを判定する、ステップと、
を実行させるプログラム。
【００７９】
（付記１１）
前記（ｂ）のステップにおいて、前記サンドボックス装置から受信した識別情報と前記端末装置から受信した識別情報とが一致することを条件に、前記サンドボックス装置から受信した動作ログと前記端末装置から受信した動作ログとを比較し、比較結果に基づいて、前記ソフトウェアがマルウェアかどうかを判定する、付記１０に記載のプログラム。
【００８０】
（付記１２）
前記識別情報が、前記ソフトウェアを構成するファイルのハッシュ値である、付記１０または１１に記載のプログラム。
【産業上の利用可能性】
【００８１】
以上のように、本発明によれば、Sandbox技術を検知可能なマルウェアであっても確実に検知することができる。本発明は、マルウェアの検知が必要な全てのコンピュータシステムに有用である。
【符号の説明】
【００８２】
１０  サーバ（Ｃ＆Ｃサーバ）
１１  ソフトウェア（マルウェア）
１２  ネットワーク
２０  スイッチ
３０  サンドボックス装置
３１  ソフトウェア受信部
３２  ハッシュ計算部
３３  ソフトウェア実行部
３４  動作ログ取得部
３５  格納部
３６  送信部
４０  端末装置
４１  エージェント装置
４２  ＯＳ
５０  マルウェア検知装置
５１  情報受信部
５２  サンドボックス情報データベース
５３  エージェント情報データベース
５４  データベース監視部
５５  マルウェア判定部
１１０  コンピュータ
１１１  ＣＰＵ
１１２  メインメモリ
１１３  記憶装置
１１４  入力インターフェイス
１１５  表示コントローラ
１１６  データリーダ／ライタ
１１７  通信インターフェイス
１１８  入力機器
１１９  ディスプレイ装置
１２０  記録媒体
１２１  バス
４１１  ソフトウェア受信部
４１２  ハッシュ計算部
４１３  ソフトウェア監視部
４１４  動作ログ取得部
４１５  格納部
４１６  送信部
【図１】
2014071796.tif 000003
【図２】
2014071796.tif 000004
【図３】
2014071796.tif 000005
【図４】
2014071796.tif 000006
【図５】
2014071796.tif 000007
【図６】
2014071796.tif 000008
【図７】
2014071796.tif 000009
【図８】
2014071796.tif 000010