(57)【特許請求の範囲】
【請求項１】
コンピュータ内で不正な動作を行う不正プログラムの挙動を解析する解析システムであって、
前記不正プログラムを実行させる実行環境を提供する実行環境提供手段と、
前記実行環境と接続された仮想ネットワークを構築し、前記不正プログラムを前記仮想ネットワークにアクセスさせる仮想ネットワーク提供手段と、
前記実行環境における前記不正プログラムの動作に関する情報および／または前記仮想ネットワークと前記不正プログラムとの通信に関する情報を当該不正プログラムの挙動情報として収集する情報収集手段と、
を備え、
前記仮想ネットワーク提供手段は、通信ペイロードの送信先ポート番号と予め登録した送信先ポート番号とのパターンマッチングを行って通信プロトコルを判定し、前記送信先ポート番号による通信プロトコルの判定において、前記通信ペイロードの送信先ポート番号が前記予め登録した送信先ポート番号に含まれていた場合に、当該含まれていた送信先ポート番号に対応する通信プロトコルに応じた擬似サーバ応答を生成して前記不正プログラムに送信し、前記通信ペイロードの送信先ポート番号が前記予め登録した送信先ポート番号に含まれていない場合に、当該通信ペイロードのシグネチャと予め登録したシグネチャとのパターンマッチングを行って通信プロトコルを判定し、前記シグネチャによって判定した通信プロトコルに応じた擬似サーバ応答を生成して前記不正プログラムに送信することを特徴とする解析システム。 
【請求項２】
外部の実ネットワークに接続する実ネットワーク接続手段と、前記不正プログラムが関与する通信の一部を前記実ネットワークに接続する接続制御手段と、をさらに備えたことを特徴とする請求項１に記載の解析システム。 
【請求項３】
前記接続制御手段は、前記不正プログラムが関与する通信の通信プロトコルを通信ペイロードと予め登録したパターンとのパターンマッチングによって同定し、当該同定結果に基づいて前記実ネットワークに前記通信を接続するか否かを判定し、前記実ネットワークに接続する通信については当該通信を代理実行し、代理実行によって得られた応答を前記不正プログラムに渡すことを特徴とする請求項２に記載の解析システム。 
【請求項４】
前記接続制御手段は、ＨＴＴＰ（Hypertext Transfer Protocol）による通信を実ネットワークに代理実行する際に、ＧＥＴリクエストＵＲＬのパラメータ部を削除して実ネットワークに接続することを特徴とする請求項３に記載の解析システム。 
【請求項５】
前記情報収集手段は、前記不正プログラムが関与する通信の通信プロトコル、通信ペイロード、通信先に関する情報を前記挙動情報として収集することを特徴とする請求項１〜４のいずれか一つに記載の解析システム。 
【請求項６】
コンピュータ内で不正な動作を行う不正プログラムの挙動を解析する解析システムによって実行される解析方法であって、
前記不正プログラムを実行させる実行環境を提供する実行環境提供工程と、
前記実行環境と接続された仮想ネットワークを構築し、前記不正プログラムを前記仮想ネットワークにアクセスさせる仮想ネットワーク提供工程と、
前記実行環境における前記不正プログラムの動作に関する情報および／または前記仮想ネットワークと前記不正プログラムとの通信に関する情報を当該不正プログラムの挙動情報として収集する情報収集工程と、
を含み、
前記仮想ネットワーク提供工程は、通信ペイロードの送信先ポート番号と予め登録した送信先ポート番号とのパターンマッチングを行って通信プロトコルを判定し、前記送信先ポート番号による通信プロトコルの判定において、前記通信ペイロードの送信先ポート番号が前記予め登録した送信先ポート番号に含まれていた場合に、当該含まれていた送信先ポート番号に対応する通信プロトコルに応じた擬似サーバ応答を生成して前記不正プログラムに送信し、前記通信ペイロードの送信先ポート番号が前記予め登録した送信先ポート番号に含まれていない場合に、当該通信ペイロードのシグネチャと予め登録したシグネチャとのパターンマッチングを行って通信プロトコルを判定し、前記シグネチャによって判定した通信プロトコルに応じた擬似サーバ応答を生成して前記不正プログラムに送信することを特徴とする解析方法。 
【請求項７】
外部の実ネットワークに接続する実ネットワーク接続工程と、前記不正プログラムが関与する通信の一部を前記実ネットワークに接続する接続制御工程と、をさらに含むことを特徴とする請求項６に記載の解析方法。
【請求項８】
前記接続制御工程は、前記不正プログラムが関与する通信の通信プロトコルを通信ペイロードと予め登録したパターンとのパターンマッチングによって同定し、当該同定結果に基づいて前記実ネットワークに前記通信を接続するか否かを判定し、前記実ネットワークに接続する通信については当該通信を代理実行し、代理実行によって得られた応答を前記不正プログラムに渡すことを特徴とする請求項７に記載の解析方法。
【請求項９】
前記接続制御工程は、ＨＴＴＰ（Hypertext Transfer Protocol）による通信を実ネットワークに代理実行する際に、ＧＥＴリクエストＵＲＬのパラメータ部を削除して実ネットワークに接続することを特徴とする請求項８に記載の解析方法。
【請求項１０】
前記情報収集工程は、前記不正プログラムが関与する通信の通信プロトコル、通信ペイロード、通信先に関する情報を前記挙動情報として収集することを特徴とする請求項６〜９のいずれか一つに記載の解析方法。
【請求項１１】
コンピュータを請求項１〜５のいずれか一つに記載の解析システムとして機能させるための解析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、実インターネットに接続しない、または特定のプロトコルのみ接続する仮想ネットワーク上で、コンピュータ上で動作する悪意あるプログラムを実際に動作させることによりその挙動を解析するシステム、解析方法および解析プログラムに関する。 
【背景技術】
【０００２】
近年、情報漏洩や不正アクセス等の脅威をもたらすコンピュータウイルスやスパイウェア、ボットプログラムといった悪意のあるコンピュータプログラム（以下、このような不正に動作する不正プログラムを「マルウェア」と呼ぶ）が猛威を振るっている。 
【０００３】
マルウェアにはそのソースコードがインターネット網に公開され、容易に新種や亜種を作成することが可能となっているものが存在し、一日に７０種類程度の新種や亜種が出現している（非特許文献１参照。）。また、マルウェアにはインターネット網への接続確認を行い、正常に通信できない場合にはその動作を停止させるものが存在する（非特許文献２参照。）。 
【０００４】
このようなマルウェアによる脅威への対策を行うには、マルウェアがどのような通信を行い、またコンピュータ内部資源にどのような影響を及ぼすかを調べる必要がある。ここで、コンピュータ内部資源は、不揮発性記憶媒体、揮発性記憶媒体、及びそれらに記憶されるデータを指す。 
【０００５】
マルウェアの動作を解析する手法としては、マルウェアのバイナリデータを逆アセンブルするものやデバッガを用いるものが一般的である（例えば非特許文献３参照。）。ただし、近年のマルウェアには逆アセンブルやデバッガによる解析を妨害する仕組みを備えたものが存在するため、解析における困難さは増大している（非特許文献４参照。）。 
【０００６】
また、逆アセンブルやデバッガによらない解析方法として、実際にマルウェアを動作させ、そのときの内部資源や通信を監視する方法（非特許文献５参照）も考えられるが、その場合、実インターネット上に存在する一般ユーザのコンピュータへ攻撃をせずに安全に解析を行うためには、実インターネットと接続しない環境で解析を行う必要がある。 
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】小山  覚(Telecom-ISAC Japan)  「ボットネット実態調査結果“Our security depends on your security.”」  Black Hat Japan 2005 Briefings
【非特許文献２】「Web経由の感染が急増、バレる前に「消える」マルウェアも」  http://internet.watch.impress.co.jp/cda/news/2007/12/19/17941.html
【非特許文献３】Konstantin Rozinov  「REVERSE CODE ENGINEERING: An In-Depth Analysis of the Bagle Virus」  Lucent Technologies
【非特許文献４】Mark Vincent Yason  「The Art of Unpacking」  Black Hat USA 2007 Briefings
【非特許文献５】Capture BAT  http://www.nz-honeynet.org/capture-standalone.html  The NewZealand Honeynet Project
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した逆アセンブルやデバッガによる解析手法は、高度な知識と技術を必要とし、解析に数時間から数日程度の時間を必要とする。また、マルウェアに存在する逆アセンブルやデバッガによる解析の妨害手法のため、より解析が困難になり、必要とされる解析時間も増大している。 
【０００９】
そのため、新種・亜種が一日に７０種類程度出現する現状に、逆アセンブルやデバッガを用いた従来手法では完全に対応することができないという問題点があった。さらに、実インターネットへ接続しない環境でマルウェアを動作させ、その挙動を観測する手法の場合、外部インターネット網への接続確認ができないと正常に動作しないマルウェアの解析を行うことができないという問題点があった。 
【００１０】
本発明は、上述した従来技術における問題点を解決し、課題を解決するためになされたものであり、逆アセンブルやデバッガを用いた解析の困難さを回避し、解析に要する時間を削減し、さらにネットワークの接続確認を行うマルウェアについても挙動に関する情報を収集して正確な解析を実現する解析システム、解析方法、および解析プログラムを提供することを目的とする。 
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するため、本発明にかかる解析システム、解析方法および解析プログラムは、コンピュータ内で不正な動作を行う不正プログラムの挙動を解析するにあたり、前記不正プログラムを実行させる実行環境を提供し、前記実行環境と接続された仮想ネットワークを構築し、前記不正プログラムを前記仮想ネットワークにアクセスさせ、前記実行環境における前記不正プログラムの動作に関する情報および／または前記仮想ネットワークと前記不正プログラムとの通信に関する情報を当該不正プログラムの挙動情報として収集する。また、本発明にかかる解析システム、解析方法および解析プログラムは、通信ペイロードの送信先ポート番号と予め登録した送信先ポート番号とのパターンマッチングを行って通信プロトコルを判定し、前記送信先ポート番号による通信プロトコルの判定において、前記通信ペイロードの送信先ポート番号が前記予め登録した送信先ポート番号に含まれていた場合に、当該含まれていた送信先ポート番号に対応する通信プロトコルに応じた擬似サーバ応答を生成して前記不正プログラムに送信し、前記通信ペイロードの送信先ポート番号が前記予め登録した送信先ポート番号に含まれていない場合に、当該通信ペイロードのシグネチャと予め登録したシグネチャとのパターンマッチングを行って通信プロトコルを判定し、前記シグネチャによって判定した通信プロトコルに応じた擬似サーバ応答を生成して前記不正プログラムに送信することを特徴とする。 
【００１２】
また、本発明によれば、外部の実ネットワークに接続する実ネットワーク接続手段と、前記不正プログラムが関与する通信の一部を前記実ネットワークに接続することを特徴とする。 
【００１３】
また、本発明によれば、不正プログラムが関与する通信の通信プロトコルを通信ペイロードと予め登録したパターンとのパターンマッチングによって同定し、当該同定結果に基づいて前記実ネットワークに前記通信を接続するか否かを判定し、前記実ネットワークに接続する通信については当該通信を代理実行し、代理実行によって得られた応答を前記不正プログラムに渡すことを特徴とする。 
【００１４】
また、本発明によれば、ＨＴＴＰ（Hypertext Transfer Protocol）による通信を実ネットワークに代理実行する際に、ＧＥＴリクエストＵＲＬのパラメータ部を削除して実ネットワークに接続することを特徴とする。 
【００１５】
また、本発明によれば、前記不正プログラムが関与する通信の通信プロトコル、通信ペイロード、通信先に関する情報を前記挙動情報として収集することを特徴とする。
【発明の効果】
【００１６】
本発明にかかる解析システム、解析方法および解析プログラムは、不正プログラムの解析において、解析対象となる不正プログラムを実際に実行する手法を取ることによって、逆アセンブルやデバッガを用いた解析の困難さを回避し、解析に要する時間を削減し、さらにネットワークの接続確認を行うマルウェアについても挙動に関する情報を収集して正確な解析を実現する解析システム、解析方法、および解析プログラムを得ることができるという効果を奏する。 
【図面の簡単な説明】
【００１７】
【図１】図１は、本発明の実施例１における解析システムの概要構成を示す概要構成図である。
【図２】図２は、実施例１における解析システムの具体的な構成図である。
【図３】図３は、動的解析コントロールモジュール４の処理動作を表すフローチャートである。
【図４】図４は、マルウェア実行モジュール１１の処理動作を表すフローチャートである。
【図５】図５は、マルウェアの挙動監視の処理動作を説明するフローチャートである。
【図６】図６は、仮想ネットワーク部２０における処理動作を表すフローチャートである。
【図７】図７は、プロトコル判別処理の詳細を表すフローチャートである。
【図８】図８は、送信先アドレス・送信先ポート番号のリストについて説明する説明図である。
【図９】図９は、シグネチャリストについて説明する説明図である。
【図１０】図１０は、サーバ応答生成処理の詳細を説明するフローチャートである。
【図１１】図１１は、サーバ応答の定義について説明する説明図である。
【図１２】図１２は、本発明の実施例２おける解析システムの概要構成を示す概要構成図である。
【図１３】図１３は、実施例２における解析システムの具体的な構成図である。
【図１４】図１４は、仮想ネットワーク部２０ａにおける処理動作を表すフローチャートである。
【図１５】図１５は、外部接続コントロールモジュール２６の処理を表すフローチャートである。
【図１６】図１６は、接続管理リストについて説明する説明図である。
【発明を実施するための形態】
【００１８】
以下に添付図面を参照して、この発明に係る解析システム、解析方法および解析プログラムの好適な実施例について詳細に説明する。 
【実施例１】
【００１９】
図１は、本発明の実施例１における解析システムの概要構成を示す概要構成図である。同図に示したように、本発明にかかる解析システムでは、実インターネットに接続しない仮想ネットワークを用いた動的解析システム１においてマルウェアを実行し、通信データ及び呼び出されるＡＰＩやシステムコール、内部資源へのアクセスを監視する。 
【００２０】
マルウェアを実際に動作させることによる解析（以下、「動的解析」と呼ぶ）によって得られたデータは、マルウェア解析結果データベース２へ保存される。保存されたデータは解析結果分析・出力モジュール３を介し、必要なデータを図表により可視化して表示する。この解析システムは、複数のマルウェアを連続して解析する場合についても同様に適用できる。 
【００２１】
図２は、本実施例１における解析システムの具体的な構成例である。本実施例１では、実インターネットに接続しない仮想ネットワークにおいてマルウェアを実行し、その挙動及び通信内容を収集することにより、短時間での解析を実現する。 
【００２２】
図２に示したように、本実施例１にかかる解析システムは動的解析コントロールモジュール４、マルウェア実行環境１０と仮想ネットワーク部２０からなる動的解析システム１、マルウェア解析結果データベース２、解析結果分析・出力モジュール３により構成される。なお、一つの動的解析システム１に、複数のマルウェア実行環境及び仮想ネットワーク部が存在するように構成してもよい。 
【００２３】
動的解析コントロールモジュール４は、動的解析システム１の初期化、解析終了シグナルの送信、マルウェア実行環境１０への解析対象マルウェア投入、マルウェア実行環境１０及び仮想ネットワーク部２０からのログの受信及びマルウェア解析結果データベース２への登録を行う。 
【００２４】
マルウェア実行環境１０は、動的解析コントロールモジュール４から投入されたマルウェアを実行するための環境である。仮想ネットワーク部２０はマルウェア実行環境１０からの通信を受け取り、保存すると同時に通信のプロトコルを判別し、プロトコルに応じたデータを生成し、応答としてマルウェア実行環境１０に送信する。仮想ネットワークはこのプロトコルに応じたサーバ応答の生成により実現される。 
【００２５】
マルウェア解析結果データベース２には、解析対象マルウェア、及びその解析の状況（未解析・解析済み・解析中）、動的解析で収集された通信データ、ＡＰＩやシステムコール、内部資源へのアクセス結果が保存される。 
【００２６】
解析結果分析・出力モジュール３では、マルウェア解析結果データベース２からマルウェアの通信先、通信プロトコル、ＡＰＩ呼び出しシーケンスなどが整理され、自動的に図表に加工し、表示する。 
【００２７】
図３は、本発明の動的解析コントロールモジュール４の処理動作を表すフローチャートである。同図にしめしたように、解析が開始されると、まずマルウェア解析結果データベース２に問い合わせ、未解析のマルウェアが存在しているかを確かめる（ステップＳ１０１）。 
【００２８】
その結果、未解析のマルウェアが存在しない場合（ステップＳ１０１，Ｎｏ）には解析を終了する。一方、未解析のマルウェアが存在している場合（ステップＳ１０１，Ｙｅｓ）には、マルウェア実行環境１０の初期化（ステップＳ１０２）と仮想ネットワーク部２０（ステップＳ１０３）の初期化が行われる。 
【００２９】
マルウェア実行環境１０の初期化では、マルウェア実行前のクリーンな状態にロールバックする作業が行われる。仮想ネットワーク部２０の初期化では、仮想ネットワーク内のペイロードデータベース２５の初期化を実施する。 
【００３０】
次に、初期化された動的解析システム１のマルウェア実行環境１０に解析対象となるマルウェアが送信される（ステップＳ１０４）。マルウェア実行モジュール１１では、その実行が成功したか否かの結果を受け取り（ステップＳ１０５）、マルウェア解析結果データベース２に登録する（ステップＳ１０６）。 
【００３１】
マルウェアの実行に成功した場合（ステップＳ１０７，Ｙｅｓ）には、設定した解析時間が経過するまで動的解析コントロールモジュール４は待機する。設定時間が経過した（ステップＳ１０８，Ｙｅｓ）ところで動的解析システム１へ解析完了のシグナルを送信し（ステップＳ１０９）、仮想ネットワーク部２０のペイロードデータベース２５よりデータを取得し（ステップＳ１１０）、取得したデータをマルウェア解析結果データベース２に登録する（ステップＳ１１１）。これら一連の処理を、未解析マルウェアがなくなるまで繰り返す。 
【００３２】
図４は、マルウェア実行モジュール１１の処理動作を表すフローチャートである。マルウェア実行モジュール１１では、動的解析コントロールモジュール４からマルウェアを受け取り（ステップＳ２０１，Ｙｅｓ）、実行される（ステップＳ２０２）。実行に成功したか否かのステータスは動的解析コントロールモジュールへ送信される（ステップＳ２０３）。 
【００３３】
マルウェアの実行に成功した場合（ステップＳ２０４，Ｙｅｓ）には、ＡＰＩ、システムコール、内部資源へのアクセスを監視した状態（ステップＳ２０５）で解析終了のシグナルを受信する（ステップＳ２０６，Ｙｅｓ）までマルウェアはその実行を継続する。 
【００３４】
図５は、マルウェアの挙動監視（ＡＰＩ、システムコール、内部資源アクセス監視）に関する処理動作のフローチャートである。この処理動作では、マルウェアがどのようなＡＰＩを呼び出したか（ステップＳ３０１）、どのようなシステムコールを呼び出したか（ステップＳ３０２）、またＯＳによっては（例えばＷｉｎｄｏｗｓ（登録商標）の場合など）レジストリのアクセス（読み込み・書き込み・削除）を監視する（ステップＳ３０３）。さらにファイルへのアクセス（読み込み・書き込み・削除）についても監視を行う（ステップＳ３０４）。 
【００３５】
そして、監視結果についてはログをとり、動的解析コントロールモジュールを介してマルウェア解析結果データベースに登録される（ステップＳ３０５）。 
【００３６】
図６は、仮想ネットワーク部２０における処理動作を表すフローチャートである。仮想ネットワーク部２０は、マルウェア実行環境１０からの通信を受け取り、プロトコルに応じた応答を返す。まず、仮想ネットワーク部２０では、マルウェア実行環境１０から通信データを受け取り（ステップＳ４０１）、そのプロトコル判別が行われる（ステップＳ４０２）。 
【００３７】
同時に、受け取ったペイロードをペイロードデータベース２５に保存する（ステップＳ４０３。ここで保存するペイロードの例として、ＩＰパケットの発信元ＩＰアドレス、宛先ＩＰアドレス、データ部が挙げられる。解析時に取得できる具体的なデータ例として、ボットプログラムが接続を試みるＣ＆Ｃサーバ（Command and Control Server）のＦＱＤＮ（Full Qualified Domain Name）やニックネーム、Ｃ＆Ｃサーバ接続リクエストが挙げられる。例えば、ここで取得できたＣ＆ＣサーバのＦＱＤＮを利用し、ネットワーク上のボット感染端末の調査を行うことができる。 
【００３８】
さらに、判定されたプロトコルに応じて、サーバ応答が生成され（ステップＳ４０３）、マルウェア実行環境１０への応答が行われる。このプロトコルに応じたサーバ応答により、仮想ネットワークが実現されている。これらの処理は、解析終了シグナルを受信するまで繰り返され、解析終了シグナルを受信したら（ステップＳ４０５，Ｙｅｓ）ペイロードデータベース２５のデータを動的解析コントロールモジュール４を介してマルウェア解析結果データベース２へ転送し、解析を終了する。 
【００３９】
なお、ペイロードデータは動的解析が行われている間、随時動的解析コントロールモジュール４を介してマルウェア解析結果データベース２へ保存されるよう構成してもよい。 
【００４０】
図７はプロトコル判別処理の詳細を表すフローチャートである。まず、仮想ネットワーク部２０で受け取った通信の送信先アドレス、送信先ポート番号がプロトコル判別データベース２３の送信先アドレス・送信先ポート番号のリストに含まれているかを調べる（ステップＳ５０１）。 
【００４１】
送信先アドレス・送信先ポート番号のリスト例を図８に示す。リスト内でこれらの一致が確認された場合（ステップＳ５０１，Ｙｅｓ）には、リストに登録されているプロトコルの通信であったと判定される（ステップＳ５０４）。 
【００４２】
また、送信先アドレス・送信先ポート番号の一致が確認できなかった場合（ステップＳ５０１，Ｎｏ）には仮想ネットワーク部２０で受信したペイロードをプロトコル判別データベース２３のシグネチャリストと比較する（ステップＳ５０２）。シグネチャリストの例を図９に示す。なお、図に例示されていないプロトコルについて、追加することもできる。 
【００４３】
シグネチャにマッチした場合（ステップＳ５０３）には登録されていたプロトコルによる通信であると判定し（ステップＳ５０６）、マッチしなかった場合（ステップＳ５０３）にはプロトコル判定できなかった（ステップＳ５０５）旨を返す。 
【００４４】
図１０はサーバ応答生成処理の詳細を説明するフローチャートである。プロトコル判別モジュール２１によりプロトコル判別に成功した場合（ステップＳ６０１，Ｙｅｓ）には、各プロトコルに応じた応答が定義されているかどうかを確かめる（ステップＳ６０２）。 
【００４５】
その結果、サーバ応答が定義されている場合（ステップＳ６０２，Ｙｅｓ）には、定義されている通りの応答を返す（ステップＳ６０３）。応答の定義の例を図１１に示す。ＤＮＳ（Domain Name System）の応答例として、問い合わせのあったＦＱＤＮに対し、仮想ネットワーク内の任意のアドレスを対応付け、そのアドレスをマルウェア実行環境に返すものが考えられる。定義によっては、応答は返さない処理も含めることができる。 
【実施例２】
【００４６】
図１２は、本発明の実施例２おける解析システムの概要構成を示す概要構成図である。同図に示したように、本実施例にかかる解析システムでは、特定のプロトコルによる通信のみが実インターネット網に接続可能な仮想ネットワークを用いた動的解析システム１ａにおいてマルウェアを実行し、通信データ及び呼び出されるＡＰＩやシステムコール、内部資源へのアクセスを監視する。 
【００４７】
動的解析によって得られたデータは、マルウェア解析結果データベース２へ保存される。保存されたデータは解析結果分析・出力モジュール３を介し、必要なデータを図表により可視化する。複数のマルウェアを連続して実行する構成としてもよい。 
【００４８】
図１３は本実施例２における解析システムの具体的な構成例である。本実施例２では、特定のプロトコルによる通信のみが実インターネットに接続可能な仮想ネットワークにおいてマルウェアを実行し、その挙動及び通信内容を収集することにより、短時間での解析を実現する。 
【００４９】
図１３に示したように、本実施例２にかかる解析システムでは、動的解析コントロールモジュール４、マルウェア実行環境１０と仮想ネットワーク部２０ａからなる動的解析システム１ａ、マルウェア解析結果データベース２、解析結果分析・出力モジュール３により構成される。なお、一つの動的解析システム１に、複数のマルウェア実行環境及び仮想ネットワーク部が存在するように構成してもよい。 
【００５０】
動的解析コントロールモジュール４は、動的解析システム１ａの初期化、解析終了シグナルの送信、マルウェア実行環境１０への解析対象マルウェア投入、マルウェア実行環境１０及び仮想ネットワーク部２０ａからのログの受信及びマルウェア解析結果データベース２への登録を行う。 
【００５１】
マルウェア実行環境１０は、動的解析コントロールモジュール４から投入されたマルウェアを実行するための環境である。仮想ネットワーク部２０ａはマルウェア実行環境１０からの通信を受け取り、保存すると同時にプロトコル判別が行なう。そして、プロトコル判別後、マルウェア実行モジュール１１から受け取った通信の通信先アドレス、通信先ポート番号、プロトコル、ペイロードを参照し、外部接続コントロールモジュール２６が実インターネットに接続して通信を行うのか、または仮想ネットワーク内部でプロトコルに応じたデータを生成し、応答としてマルウェア実行環境１１に送信するかをコントロールする。 
【００５２】
マルウェア解析結果データベース２では、解析対象マルウェア、解析の状況（未解析・解析済み・解析中）、動的解析で収集された通信データ、ＡＰＩやシステムコール、内部資源へのアクセス結果が保存される。ここで、動的解析で収集された通信データには、マルウェア実行モジュール１１からの通信に加え、外部インターネット網との通信結果も保存される。 
【００５３】
解析結果分析・出力モジュール３では、マルウェア解析結果データベース２からマルウェアの通信先、通信プロトコル、ＡＰＩ呼び出しシーケンスなどが整理され、自動的に図表に加工し、表示する。 
【００５４】
図１３の動的解析コントロールモジュールの具体的な処理動作は実施例１において図３を参照して説明した処理動作と同様であるので、ここでは説明を省略する。また、図１３のマルウェア実行モジュール１１、及びその内部で行われるＡＰＩ、システムコール、内部資源アクセスについても実施例１において図４，図５を参照して説明した処理動作と同様であるので、ここでは説明を省略する。 
【００５５】
図１４は仮想ネットワーク部２０ａにおける処理動作を表すフローチャートである。仮想ネットワーク部２０ａは、マルウェア実行環境１０からの通信を受け取り、通信内容に応じ、内部のサーバ応答生成モジュール２４もしくは実インターネットから受け取った通信データを返す。 
【００５６】
まず、仮想ネットワーク部２０ａではマルウェア実行環境１０から通信データを受け取り（ステップＳ７０１）、そのプロトコル判別が行われる（ステップＳ７０２）。同時に、受け取ったペイロードをペイロードデータベースに保存する（ステップＳ７０３）。ここで保存するペイロードの例として、ＩＰパケット発信元ＩＰアドレス、宛先ＩＰアドレス、データ部が挙げられる。また、解析時に取得できる具体的なデータ例として、ボットプログラムが接続を試みるＣ＆ＣサーバのＦＱＤＮやニックネーム、Ｃ＆Ｃサーバ接続リクエストが挙げられる。 
【００５７】
その後、外部接続コントロールモジュール２６により、実インターネット上に存在するサーバへ接続するか、それとも仮想ネットワーク内のサーバ応答生成モジュール２４により応答するかが決定される（ステップＳ７０４）。プロトコル判別モジュール２１及びサーバ応答生成モジュール２４の処理については、実施例１において図７及び図８を参照して説明したのでここでは省略する。 
【００５８】
これらの処理は、解析終了シグナルを受信するまで繰り返され、シグナルを受信したら（ステップＳ７０５，Ｙｅｓ）ペイロードデータベース２５のデータを動的解析コントロールモジュール４を介してマルウェア解析結果データベース２へ転送し（ステップＳ７０７）、解析を終了する。 
【００５９】
なお、ペイロードデータは動的解析が行われている間、随時動的解析コントロールモジュール４を介してマルウェア解析結果データベース２へ保存されるよう構成してもよい。
【００６０】
図１５は外部接続コントロールモジュール２６の処理を表すフローチャートである。外部接続コントロールモジュール２６では、マルウェア実行環境１０から受け取った通信データを接続管理用シグネチャデータベース２７を基に、実インターネット上のサーバに接続するか、それとも仮想ネットワーク内のサーバ応答生成モジュール２４により応答するかを決定する。 
【００６１】
実インターネット上のサーバに接続するか否かを決定するにあたっては、まず、事前に判別されたプロトコルが、接続管理リストに含まれているかを確認する（ステップＳ８０１）。含まれていた場合（ステップＳ８０２，Ｙｅｓ）には、その通信の実際の接続先アドレス（ステップＳ８０３）・ペイロード（ステップＳ８０４）・ペイロード長（ステップＳ８０５）をリストのパターンと比較する。なお、接続先アドレス・ペイロードの比較では正規表現によるものを含む。接続管理リストは例えば図１６に示したように作成しておけばよい。 
【００６２】
接続先アドレス・ペイロード・ペイロード長のうち、一つでもマッチしないものが存在した場合（ステップＳ８０３〜８０５のいずれかがＮｏ）には仮想ネットワーク内で生成される応答がマルウェア実行モジュールへ送信される（ステップＳ８１３）。 
【００６３】
また、上記の比較が行われた結果、その通信が実インターネットへの接続を許可しないものとして接続管理リストに登録されていた場合（ステップＳ８０６，Ｎｏ）にも、仮想ネットワーク内部で応答を生成する（ステップＳ８１３）。 
【００６４】
一方、実インターネットへ接続すると判定された場合（ステップＳ８０７）で、ペイロード加工が不要な場合（ステップＳ８０８）には外部接続コントロールモジュール２６が実インターネット上のサーバに接続し、仮想ネットワークで受け取った通信データを送信する（ステップＳ８１０）。 
【００６５】
ペイロード加工を必要とする場合（ステップＳ８０８，Ｙｅｓ）には、仮想ネットワークで受け取ったペイロードを加工した（ステップＳ８０９）上で、外部インターネット上のサーバにデータを送信する（ステップＳ８１１）。 
【００６６】
ペイロードの加工は、一般ユーザに攻撃を行わせないための仕組みである。ＨＴＴＰで外部に接続した場合、ＧＥＴリクエストＵＲＩ（Uniform Resource Identifier）におけるパラメータ部（http://www.example.com/index.php?name=hoge?pass=fugaの場合“?”の後方部分）を削除してアクセスすることにより、ＨＴＴＰサーバアプリケーションの脆弱性をついた攻撃や、掲示板等へのスパム活動を防ぐ。 
【００６７】
このように、実行環境１０からのセッションは仮想ネットワーク内部で終端され、実インターネットに接続するのは外部接続コントロールモジュール２６である。外部接続コントロールモジュール２６が外部から受け取ったデータはペイロードデータベース２５に保存され、動的解析コントロールモジュール４を介してマルウェア解析結果データベース２に保存される（ステップＳ８１２）。 
【００６８】
外部接続コントロールモジュールを介して得られたペイロードに含まれるデータ例として、攻撃者がボットに対して送り込んだ命令が挙げられ、その命令を受けたボットの挙動を分析することにより、攻撃者がボットネットを利用して行おうとしている攻撃行動を把握することが可能になる。 
【００６９】
以上説明してきたように、本発明では、仮想ネットワーク上でマルウェアを実行し、そのときの通信及び呼び出されるＡＰＩ、システムコール、内部資源へのアクセス状況を監視することで、マルウェアに見られる特徴的な挙動を短時間で収集することが可能である。 
【００７０】
実施例１に示した構成では、実インターネットへ接続しない仮想ネットワーク上でマルウェアを実行するため、実インターネットに存在するコンピュータに対して攻撃を実施してしまうリスクを回避する。また、逆アセンブルやデバッグといった手法をとらない手法であるため、解析の困難さを解決している。 
【００７１】
実施例２に示した構成では、特定のプロトコルのみ実インターネットに接続可能な仮想ネットワーク上でマルウェアを実行することで、攻撃者がマルウェアに対して指令を出し、コントロールする場合の挙動解析を実現する。外部へ接続するプロトコルを一部に制限する（例えば、外部の攻撃者からの命令を仮想ネットワークに取り込むようにものに、外部との接続を制限する）ことにより、外部インターネット網へ攻撃を実施するリスクを低減することが可能である。 
【００７２】
そして、実インターネットに接続しない（実施例１）、または一部接続する（実施例２）仮想ネットワークを用いた解析で得られたデータをマルウェアの脅威対策に適用するために、本発明で取得した解析結果から必要なデータ、例えば通信先アドレスや通信内容、ＡＰＩ  コールシーケンスを自動的に抽出し、図表に加工した上で表示する。これによりネットワークオペレータはマルウェアの解析結果を瞬時に把握することが可能になり、通信制御による攻撃活動抑止、感染者の特定を実施することが可能になる。 
【００７３】
すなわち、本発明によって得られる効果は、短時間でマルウェアの挙動解析結果を収集できることである。従来はマルウェアのバイナリデータを逆アセンブルやデバッガにより解析していたが、この手法は高度な専門性を必要とすると同時に、解析に数時間から数日程度の時間を必要とする点が課題であった。特に近年、マルウェアに逆アセンブルやデバッガによる解析をより困難にする仕組みを備えたものが出現しており、解析の困難さ、解析に必要な時間が増大していた。これに対して本発明では、これらの解析における困難さを軽減し、容易にかつ安全にマルウェアの挙動を知ることが可能になった。 
【００７４】
さらに、インターネット上に存在する攻撃者からマルウェアに対する命令のやり取りに関する通信のみをマルウェアに受け渡すことによって、どのような命令を攻撃者が出し、またその命令を受けてマルウェアがどのような挙動を示すかをリアルタイムで把握することが可能になった。これにより、ネットワークオペレータがマルウェアに感染したユーザの通信をいち早く検知することが可能になる。 
【００７５】
なお、実施例１および２に示したシステム構成は、複数のコンピュータを接続して形成してもよいし、単一のコンピュータ上で動作するプログラムとして構成してもよい。また、システムの構成要素の一部、もしくは全てを専用のハードウェアによって実現することもできる。 
【産業上の利用可能性】
【００７６】
以上のように、本発明に係る解析システム、解析方法および解析プログラムは、不正プログラムの解析に有用であり、特にネットワーク接続に基づいて動作する不正プログラムの情報収集に適している。 
【符号の説明】
【００７７】
１，１ａ  動的解析システム
２    マルウェア解析結果データベース
３    解析結果分析・出力モジュール
４    動的解析コントロールモジュール
１０    マルウェア実行環境
１１    マルウェア実行モジュール
２０，２０ａ    仮想ネットワーク部
２１    プロトコル判別モジュール
２３    プロトコル判別データベース
２４    サーバ応答生成モジュール
２５    ペイロードデータベース
２６    外部接続コントロールモジュール
２７    接続管理用シグネチャデータベース 
【図１】
0005389855.tif 000002
【図２】
0005389855.tif 000003
【図３】
0005389855.tif 000004
【図４】
0005389855.tif 000005
【図５】
0005389855.tif 000006
【図６】
0005389855.tif 000007
【図７】
0005389855.tif 000008
【図８】
0005389855.tif 000009
【図９】
0005389855.tif 000010
【図１０】
0005389855.tif 000011
【図１１】
0005389855.tif 000012
【図１２】
0005389855.tif 000013
【図１３】
0005389855.tif 000014
【図１４】
0005389855.tif 000015
【図１５】
0005389855.tif 000016
【図１６】
0005389855.tif 000017