(57)【要約】【課題】限られた計算機資源で多数のマルウェアの動的解析を行う。【解決手段】監視装置は、まずマルウェアに対し時分割動的解析を行い、そのマルウェアの動作記録を記録する。そして、監視装置は、この動作記録を参照して、そのマルウェアにより、所定期間内に、ネットワーク上のいずれかのホストとの通信が実施されたとき、そのマルウェアを、連続動的解析の対象とする。一方、そのマルウェアにより、所定期間内に、ネットワーク上のいずれのホストとも通信が実施されなかったと判定されたとき、引き続き、そのマルウェアを時分割動的解析の対象とする。【選択図】        図１
2014211733.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを動作させ、前記プログラムによる通信を監視する監視装置であって、
前記プログラムの動作記録を参照して、前記プログラムにより、所定期間内に、ネットワーク上のいずれかのホストとの通信が実施されたと判定されたとき、前記プログラムを、継続的に動作させると判定し、前記所定期間内に、ネットワーク上のいずれのホストとも通信が実施されなかったと判定されたとき、予め決められた時刻に動作させると判定する継続判定部と、
前記継続的に動作させると判定されたプログラムを継続的に動作させ、前記プログラムの動作を前記動作記録に記録する連続動的解析部と、
前記予め決められた時刻に動作させると判定されたプログラムを前記予め決められた時刻に動作させ、前記プログラムの動作を前記動作記録に記録する時分割動的解析部と、
を備えることを特徴とする監視装置。
【請求項２】
前記継続判定部は、
前記時分割動的解析部による前記プログラムの動作後、前記プログラムの動作記録を参照して、前記プログラムにより、所定期間内に、（１）いずれかのホストとの通信が実施されたこと、（２）過去に確認されていないホストとの通信が実施されたこと、（３）いずれかのホストから応答を受信したこと、および、（４）過去に確認されていない応答をいずれかのホストから受信したこと、のいずれかまたはこれらの組み合わせが確認できたとき、前記プログラムを、継続的に動作させると判定することを特徴とする請求項１に記載の監視装置。
【請求項３】
前記継続判定部は、
前記連続動的解析部による前記プログラムの動作後、前記プログラムの動作記録を参照して、前記プログラムにより、（１）いずれかのホストと最後に通信を実施してから所定期間以上経過していること、（２）所定期間内に、過去に確認されていないホストとの通信が実施されていないこと、（３）所定期間内に、いずれのホストからも応答を受信していないこと、および、（４）所定期間内に、過去に確認されていない応答をいずれのホストからも受信していないことと、のいずれかまたはこれらの組み合わせが確認できたとき、前記プログラムを、前記予め決められた時刻に動作させると判定することを特徴とする請求項１または請求項２に記載の監視装置。
【請求項４】
プログラムを動作させ、前記プログラムによる通信を監視する監視方法であって、
コンピュータが、
前記プログラムの動作記録を参照して、前記プログラムにより、所定期間内に、ネットワーク上のいずれかのホストとの通信が実施されたか否かを判定する継続判定ステップと、
前記継続判定ステップにおいて、前記プログラムにより、所定期間内に、ネットワーク上のいずれかのホストと通信が実施されたと判定されたとき、前記プログラムを、継続的に動作させると判定するステップと、
前記継続判定ステップにおいて、前記プログラムにより、所定期間内に、ネットワーク上のいずれのホストとも通信が実施されなかったと判定されたとき、予め決められた時刻に動作させると判定するステップと、
前記継続的に動作させると判定されたプログラムを継続的に動作させ、前記プログラムの動作を前記動作記録に記録する連続動的解析ステップと、
前記予め決められた時刻に動作させると判定されたプログラムを前記予め決められた時刻に動作させ、前記プログラムの動作を前記動作記録に記録する時分割動的解析ステップと、
を実行することを特徴とする監視方法。
【請求項５】
プログラムを動作させ、前記プログラムによる通信を監視するための監視プログラムであって、
コンピュータに、
前記プログラムの動作記録を参照して、前記プログラムにより、所定期間内に、ネットワーク上のいずれかのホストとの通信が実施されたか否かを判定する継続判定ステップと、
前記継続判定ステップにおいて、前記プログラムにより、所定期間内に、ネットワーク上のいずれかのホストと通信が実施されたと判定されたとき、前記プログラムを、継続的に動作させると判定するステップと、
前記継続判定ステップにおいて、前記プログラムにより、所定期間内に、ネットワーク上のいずれのホストとも通信が実施されなかったと判定されたとき、予め決められた時刻に動作させると判定するステップと、
前記継続的に動作させると判定されたプログラムを継続的に動作させ、前記プログラムの動作を前記動作記録に記録する連続動的解析ステップと、
前記予め決められた時刻に動作させると判定されたプログラムを前記予め決められた時刻に動作させ、前記プログラムの動作を前記動作記録に記録する時分割動的解析ステップと、
を実行させるための監視プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムの監視装置、監視方法、および、監視プログラムに関するものである。
【背景技術】
【０００２】
近年、情報漏洩や不正アクセス等の脅威をもたらす不正プログラム（以下、「マルウェア」と呼ぶ）が猛威を振るっている。昨今のマルウェアは、Ｃ＆Ｃ（Command  and  Control）サーバを介して攻撃者からの指令を受け取り、他のサーバに対する攻撃や情報漏洩といった被害をもたらす。また、一度感染させたマルウェアに対して、新たな攻撃機能を具備させようとしたときには、攻撃者は感染端末にマルウェアダウンロードサイトへの接続を行わせ、新たなマルウェアを感染させる。Ｃ＆Ｃサーバからどのような指令を送るのか、またマルウェアダウンロードサイトからどのようなマルウェアをインストールさせるのかについては、攻撃者の意思によって変化する。
【０００３】
このような、攻撃者の意思によって変化する脅威をいち早く把握するには、継続的にＣ＆Ｃサーバやマルウェアダウンロードサイトといった攻撃者サイトの監視を行うのが有効である。継続的な監視により、いつどのような命令が送信されたのか、またどういった機能をマルウェアに追加しようとしているのかといったことを把握することができる。
【０００４】
継続的に攻撃者サイトを監視する場合、マルウェアの通信を模擬するプログラムを作成し、それを用いて攻撃者サイトとの通信を監視する手法（非特許文献１）や、マルウェアを実際に動作させて攻撃者サイトとの通信を監視する手法（動的解析）がある（特許文献１）。非特許文献１の手法は、マルウェアの通信を完全に模擬する必要があるため、マルウェア自体の詳細な解析が必要となる。しかしながら、非特許文献２に記載されているように、現在確認されているマルウェアは非常に膨大であり、すべてを詳細に解析するのは困難である。そのため、解析の容易さ・早さの観点から、動的解析を用いて監視する手法が有効である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４７５５６５８号公報
【非特許文献】
【０００６】
【非特許文献１】Catching  Malware  -Detecting,  Tracking,  and  Mitigating  Botnets-,  Georg  Wicherski  and  Thorsten  Holz,  Black  Hat  Japan  2006  Briefings.
【非特許文献２】McAfee脅威レポート：2012年第3四半期
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら上述した従来技術では、マルウェアを実際に動作させる環境を準備する必要があるため、多数のマルウェアを同時に、かつ、継続的に解析し続けるのは計算機資源の都合上困難である、という問題があった。
【０００８】
具体的には、１つのマルウェアをハードウェア上にインストールしたＯＳ（Operating  System）上で動作させる場合、継続的な解析を行うためのハードウェアを、解析するマルウェアの数だけ用意しなければならない。また、仮想環境を用いて１つのハードウェア上で複数の仮想ＯＳを動作させる場合には、ハードウェア上にインストールしたＯＳ上で動作させる場合に比べ、同時に多数のマルウェアを継続的に解析できるものの、１つのハードウェア上で動作可能な仮想ＯＳの数も限りがあるため、同時に解析を実施可能なマルウェア数には限りがある。
【０００９】
そこで、本発明は、上述の問題を解決し、計算機資源が限られている場合でも、複数のマルウェアを動作させ、通信を監視できる装置、方法、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明は、プログラムを動作させ、前記プログラムによる通信を監視する監視装置であって、前記プログラムの動作記録を参照して、前記プログラムにより、所定期間内に、ネットワーク上のいずれかのホストとの通信が実施されたと判定されたとき、前記プログラムを、継続的に動作させると判定し、前記所定期間内に、ネットワーク上のいずれのホストとも通信が実施されなかったと判定されたとき、予め決められた時刻に動作させると判定する継続判定部と、前記継続的に動作させると判定されたプログラムを継続的に動作させ、前記プログラムの動作を前記動作記録に記録する連続動的解析部と、前記予め決められた時刻に動作させると判定されたプログラムを前記予め決められた時刻に動作させ、前記プログラムの動作を前記動作記録に記録する時分割動的解析部と、を備えることを特徴とする監視装置とした。
【発明の効果】
【００１１】
本発明によれば、計算機資源が限られている場合でも、複数のマルウェアを動作させ、通信を監視できる。
【図面の簡単な説明】
【００１２】
【図１】図１は、監視装置の処理の概要を説明する図である。
【図２】図２は、監視装置の構成図である。
【図３】図３は、解析情報の一例を示す図である。
【図４】図４は、時分割動的解析制御処理を示すフローチャートである。
【図５】図５は、時分割動的解析処理を示すフローチャートである。
【図６】図６は、連続動的解析判定処理を示すフローチャートである。
【図７】図７は、連続動的解析制御処理を示すフローチャートである。
【図８】図８は、連続動的解析処理を示すフローチャートである。
【図９】図９は、連続動的解析継続判定処理を示すフローチャートである。
【図１０】図１０は、監視プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、本発明の監視装置の実施の形態を説明する。本発明は、以下の実施の形態に限定されるものではない。なお、以下の説明において、マルウェアの解析とは、例えば、監視装置がマルウェアを動作させて、このマルウェアによる通信先（攻撃者サイト等のホストコンピュータ）との通信を監視することをいう。また、このマルウェアの解析は、マルウェアによる通信先との通信の監視の他に、マルウェアがＯＳ上で動作する際に実行される機械語や呼び出されるＡＰＩ（Application  Programming  Interface）、読み書きされるメモリ領域を監視することも含んでいてもよい。さらに、ここでは監視装置の監視対象をマルウェアとしたが、マルウェア以外のプログラムを対象としてもよい。
【００１４】
（概要）
まず、図１を用いて、本実施の形態における監視装置の処理の概要を説明する。図１は、監視装置の処理の概要を説明する図である。
【００１５】
監視装置１０（図２参照）は、複数のマルウェアを保管しており、解析情報１１２に示されるスケジュールに基づき各マルウェアを解析する（時分割で解析する）。そして、監視装置１０は、各マルウェアの解析結果に基づき、今後当該マルウェアを時分割で解析するか、連続で解析する（継続的に解析する）かを判定する。
【００１６】
例えば、監視装置１０が、当該マルウェアについて、所定時間以上ネットワーク上のホストとの通信がなかった場合、そのマルウェアを、今後も時分割で解析すると判定する。一方、当該マルウェアについて、所定時間の間にネットワーク上のホストへの通信が検出された場合、監視装置１０は、そのマルウェアを、今後連続で解析すると判定する。
【００１７】
また、監視装置１０は、図１（ａ）に示すように、連続で解析すると判定したマルウェアについて、再度解析を行った結果、所定時間以上インターネット上のホストへの通信がなかった場合、そのマルウェアを時分割で解析すると判定する。一方、監視装置１０が、再度解析を行った結果、所定時間内にインターネット上のホストへの通信があった場合、そのマルウェアを引き続き連続で解析すると判定する。つまり、監視装置１０は、いったん連続で解析すると判定したマルウェアについても、その後の解析結果に基づき、時分割での解析の対象に戻したり、連続での解析の対象としたりする。また、監視装置１０は、図１（ｂ）に示すように、いったん時分割で解析すると判定したマルウェアについても、その後の解析結果に基づき、引き続き時分割での解析の対象としたり、連続での解析の対象としたりする。
【００１８】
このように、監視装置１０は、マルウェアの解析の結果、ネットワーク上のホストとの通信が検出されたマルウェアについてはその後も連続で解析するが、それ以外のマルウェアは時分割で解析する。よって、監視装置１０が、マルウェアの解析に用いる計算機資源（ＣＰＵやメモリ等）を有効活用できる。つまり、監視装置１０の計算機資源が限られている場合でも、多数のマルウェアを解析することができる。
【００１９】
（構成）
図２は、監視装置の構成図である。監視装置１０は、記憶部１１と、制御部１２と、通信Ｉ／Ｆ（インタフェース）部１３とを備え、ネットワーク経由でホストコンピュータ（ホスト）と通信可能に接続される。なお、このネットワークは、インターネットや、ＬＡＮ（Local  Area  Network）等である。
【００２０】
記憶部１１は、マルウェア保管部１１１を備え、解析情報１１２および解析結果（マルウェアの動作記録）１１３を記憶する領域を備える。
【００２１】
マルウェア保管部１１１は、監視装置１０の解析対象のマルウェアを保管する。解析情報１１２は、マルウェアごとの解析スケジュールを示した情報である。
【００２２】
解析情報１１２は、例えば、図３に示すように、マルウェアの解析開始時刻、解析終了時刻、および、当該解析開始時刻から解析終了時刻までの間に実行するマルウェアのＩＤが示される。この解析情報１１２は、後記する時分割動的解析部１２１がマルウェアを解析する際に参照される。なお、解析情報１１２において解析終了時刻の代わりに、解析を行う時間を用いてもよい。
【００２３】
図２の解析結果１１３は、監視装置１０による各マルウェアの解析結果を示した情報である。この解析結果１１３には、当該マルウェアの実行による通信先（ホスト）のアドレスや、通信先との通信時刻、通信内容等が示される。この解析結果１１３は、制御部１２の各部がマルウェアを解析した際に追加、更新される。
【００２４】
制御部１２は、監視装置１０全体の制御を司り、ここでは主に、各マルウェアについて継続的に解析するか否かを判定し、継続的に解析すると判定されたマルウェアについては継続的に解析する。一方、継続的に解析しないと判定されたマルウェアについては、時分割で解析する。制御部１２は、時分割動的解析部１２１と、連続動的解析部１２２と、解析管理部１２３とを備える。
【００２５】
時分割動的解析部１２１は、マルウェアに時分割動的解析を行う。つまり、時分割動的解析部１２１は、解析情報１１２に指定された時刻に各マルウェアを動作させて解析を行う。そして、時分割動的解析部１２１は、マルウェアの解析の結果を解析結果１１３に書き込む。
【００２６】
連続動的解析部１２２は、連続動的解析制御部１２５（後記）により指示されたマルウェアに対し連続動的解析を行う。つまり、連続動的解析部１２２は、連続動的解析制御部１２５により指示されたマルウェアを継続的に動作させて解析を行う。そして、連続動的解析部１２２は、マルウェアの解析の結果を解析結果１１３に書き込む。
【００２７】
なお、時分割動的解析部１２１および連続動的解析部１２２はそれぞれ、実際にマルウェアを動作させるマルウェア実行部１２７と、このマルウェア実行部１２７によるネットワーク上のホスト（通信先）と通信制御を行う外部通信制御部１２８とを備える。
【００２８】
解析管理部１２３は、時分割動的解析部１２１を制御する時分割動的解析制御部１２４と、連続動的解析部１２２を制御する連続動的解析制御部１２５と、継続判定部１２６とを備える。
【００２９】
時分割動的解析制御部１２４は、マルウェア保管部１１１からマルウェアを取得すると、この取得したマルウェアと、解析情報１１２とを時分割動的解析部１２１へ転送する。これにより、時分割動的解析部１２１は、解析情報１１２に示されるマルウェアについて、解析情報１１２に示されるスケジュールに従い解析するよう指示する。
【００３０】
連続動的解析制御部１２５は、継続判定部１２６からの指示に基づき、連続動的解析部１２２にマルウェアの連続動的解析を実行させる。なお、連続動的解析制御部１２５が、継続判定部１２６から当該マルウェアの連続動的解析を実行させる旨の指示を受け取ったとき、解析情報１１２から当該マルウェアのＩＤを削除する。これにより、当該マルウェアは、時分割動的解析部１２１による時分割動的解析の対象から外される。
【００３１】
継続判定部１２６は、連続動的解析部１２２または時分割動的解析部１２１によるマルウェアの解析後、当該マルウェアを連続動的解析の対象とするか否かを判定する。例えば、連続動的解析部１２２または時分割動的解析部１２１によるマルウェアの解析から所定時間経過した後、継続判定部１２６は、解析情報１１２における当該マルウェアの動作記録を確認する。そして、継続判定部１２６が、当該マルウェアの動作記録によりいずれかのホストと通信したことを検出したとき、当該マルウェアを連続動的解析の対象とすると判定する。そして、継続判定部１２６は、連続動的解析制御部１２５へ当該マルウェアの連続動的解析を指示する。一方、連続動的解析部１２２または時分割動的解析部１２１によるマルウェアの解析から所定時間経過した後、継続判定部１２６は、解析情報１１２における当該マルウェアの動作記録を確認し、当該マルウェアによる通信を検出しなかったとき、当該マルウェアを時分割動的解析の対象とすると判定する。そして、継続判定部１２６は、割解析情報１１２に当該マルウェアのＩＤを追加する。これにより、時分割動的解析部１２１は当該マルウェアに対し時分割動的解析を実施する。
【００３２】
通信Ｉ／Ｆ（インタフェース）部１３は、制御部１２の各部がネットワーク上のホストと通信を行う際に用いられるインタフェースであり、例えば、ネットワークインタフェースカードである。
【００３３】
（処理手順）
次に、監視装置１０の処理手順を説明する。まず、時分割動的解析制御部１２４の処理手順を説明する。図４は、時分割動的解析制御処理を示すフローチャートである。
【００３４】
時分割動的解析制御部１２４はマルウェア保管部１１１からマルウェアを取得し（Ｓ１）、取得したマルウェアを予め決められた数のセットに分割する（Ｓ２）。分割されたマルウェアのセットは、例えば、記憶部１１のメインメモリ（図示省略）等に格納される。なお、時分割動的解析制御部１２４は、マルウェア分割する際、個々のマルウェアにＩＤを設定し、解析情報１１２との対応を取れるようにしておく。
【００３５】
その後、時分割動的解析制御部１２４は、時分割動的解析部１２１にマルウェアセットと解析情報１１２を転送し（Ｓ３）、時分割動的解析部１２１は、転送されたマルウェアセットに対し、解析情報１１２に基づく時分割動的解析処理を実行する（Ｓ４）。その後、継続判定部１２６は、Ｓ４で解析を行ったマルウェアを連続動的解析処理の対象とするか否かを判定する（Ｓ５：連続動的解析判定処理）。そして、連続動的解析制御部１２５は、継続判定部１２６により連続動的解析処理の対象と判定されたマルウェアの解析を連続動的解析部１２２に対し指示する（Ｓ６：連続動的解析制御処理）。
【００３６】
Ｓ６の後、解析が終了であれば（Ｓ７のＹｅｓ）、処理を終了し、まだ解析終了でなければ（Ｓ７のＮｏ）、Ｓ４へ戻る。なお、解析の終了は、監視装置１０に対し、解析終了の指示入力がされたときであってもよいし、マルウェアの解析開始から所定時間経過したときであってもよい。
【００３７】
次に、図５を用いて、図４の時分割動的解析処理（Ｓ４）を詳細に説明する。図５は、時分割動的解析処理を示すフローチャートである。
【００３８】
時分割動的解析部１２１は、現在時刻が、解析情報１１２に示される解析開始時刻であるか否かを確認し（Ｓ５１）、解析開始時刻であることを確認すると（Ｓ５１のＹｅｓ）、当該解析開始時刻に割り当てられたマルウェアＩＤのマルウェアを記憶部１１のメインメモリ上等から取り出す（Ｓ５２）。そして、時分割動的解析部１２１は、マルウェア実行部１２７に、取り出したマルウェアを実行させる。一方、まだ解析開始時刻でなければ（Ｓ５１のＮｏ）、Ｓ５１へ戻る。なお、マルウェア実行部１２７に仮想マシンを用いる場合、マルウェア実行部１２７は仮想ＯＳとして動作する。そして、時分割動的解析部１２１は１つのマルウェア実行部（仮想ＯＳ）１２７に対しては、取り出したマルウェアのうち１つを実行させる。
【００３９】
Ｓ５２の後、時分割動的解析部１２１は、取り出したマルウェアを過去に実行したマルウェア実行部１２７が存在するか否かを確認する（Ｓ５３）。ここで、過去に当該マルウェアを実行したマルウェア実行部１２７が存在すれば（Ｓ５３のＹｅｓ）、時分割動的解析部１２１は、過去に当該マルウェアを実行したマルウェア実行部１２７を起動し、起動したマルウェア実行部１２７に当該マルウェアを実行させる（Ｓ５４）。
【００４０】
一方、当該マルウェアを実行したマルウェア実行部１２７が存在しない場合には（Ｓ５３のＮｏ）、時分割動的解析部１２１は、いずれかのマルウェア実行部１２７を起動し、当該マルウェアをマルウェア実行部１２７に転送し、実行させる（Ｓ５５）。そして、時分割動的解析部１２１は、Ｓ５４およびＳ５５におけるマルウェアの実行結果（動作結果）を解析結果１１３に書き込む。
【００４１】
Ｓ５４、Ｓ５５の後、時分割動的解析部１２１は、解析情報１１２において当該解析開始時刻に割り当てられたマルウェアを全て取り出したと判断すると（Ｓ５６のＹｅｓ）、解析情報１１２に示される解析終了時刻まで待機する（Ｓ５７）。一方、解析情報１１２において当該解析開始時刻に割り当てられたマルウェアのうち、まだ取り出していないマルウェアがあれば（Ｓ５６のＮｏ）、Ｓ５２へ戻る。
【００４２】
Ｓ５７の後、時分割動的解析部１２１は、解析終了時刻になると、起動していたマルウェア実行部１２７を終了させる（Ｓ５８）。そして、時分割動的解析処理を終了する。なお、マルウェア実行部１２７の終了は、通常のＯＳのシャットダウン処理でもよいし、仮想マシンを利用している場合には仮想ＯＳのサスペンド処理でもよい。
【００４３】
次に、図６を用いて、図４の連続動的解析判定処理（Ｓ５）を詳細に説明する。図６は、連続動的解析判定処理を示すフローチャートである。
【００４４】
まず、継続判定部１２６は、解析結果１１３を参照して、連続動的解析の判定を実施するのに必要な期間（例えば、２日間）の解析結果があるか否かを判断する（Ｓ６１）。例えば、継続判定部１２６は、解析結果１１３に、判定対象とするマルウェアに関する解析結果が２日分あるか否かを判断する。ここで、必要な期間の解析結果がある場合（Ｓ６１のＹｅｓ）、継続判定部１２６は、例えば、以下の処理により、各マルウェアが連続動的解析の対象となるか否かを判定する。一方、まだ必要な期間の解析結果がない場合（Ｓ６１のＮｏ）、Ｓ６７へ進む。
【００４５】
例えば、継続判定部１２６は、指定された期間内（例えば、前記した２日間のうち所定期間内）に、マルウェアによりネットワーク上のいずれかのホストへの通信が発生しているか否か（Ｓ６２）、指定された期間内に通信を行ったホストは当該マルウェアが過去に通信したことのないホストか否か（Ｓ６３）、指定された期間内にネットワーク上のホストから応答を取得しているか否か（Ｓ６４）、指定された期間内にネットワーク上のホストから取得した応答は、当該マルウェアが過去に取得したことがない応答であるか否か（Ｓ６５）を判定する。
【００４６】
そして、継続判定部１２６は、Ｓ６２〜Ｓ６５のすべてでＹｅｓだったとき、当該マルウェアを連続動的解析の対象に設定する（Ｓ６６）。つまり、継続判定部１２６は、指定された期間内にマルウェアによるネットワーク上のホストへの通信が発生し（Ｓ６２のＹｅｓ）、かつ、当該ホストは当該マルウェアが過去に通信したことのないホストであり（Ｓ６３のＹｅｓ）、かつ、当該ホストから応答を取得し（Ｓ６４のＹｅｓ）、かつ、当該応答は、当該マルウェアが過去に取得したことがない応答である（Ｓ６５のＹｅｓ）とき、当該マルウェアを連続動的解析の対象と判定する。そして、継続判定部１２６は、連続動的解析の対象と判定されたマルウェアのＩＤを、解析情報１１２から削除する。これにより、当該マルウェアは時分割動的解析の処理対象から外されることになる。そして、Ｓ６７へ進む。
【００４７】
また、Ｓ６２〜Ｓ６５のいずれかでＮｏだったときはＳ６６をスキップして、Ｓ６７へ進む。つまり、Ｓ６２〜Ｓ６５のいずれかでＮｏだったマルウェアは、引き続き、時分割動的解析の対象となる。Ｓ６７において、継続判定部１２６は、時分割動的解析を行った全マルウェアに対して、Ｓ６２〜Ｓ６５の判定を実施したことを確認すると（Ｓ６７のＹｅｓ）、連続動的解析判定処理を終了する。一方、まだＳ６２〜Ｓ６５の判定を実施していないマルウェアがあれば（Ｓ６７のＮｏ）、Ｓ６１へ戻る。
【００４８】
なお、継続判定部１２６は、連続動的解析判定処理を、Ｓ６２〜Ｓ６５の判定処理のうちいずれか、またはいずれかの組み合わせにより実施してもよい。また、連続動的解析判定処理において、連続動的解析の対象と判定されたマルウェアのＩＤを記憶部１１のメインメモリ等に記憶しておいてもよい。そして、連続動的解析制御部１２５が現在連続動的解析の対象とすべきマルウェアを特定する際、このメインメモリ上に記録されたマルウェアのＩＤを参照するようにしてもよい。
【００４９】
このようにすることで監視装置１０は、所定期間内にネットワーク上のホストとの間で何らかの通信を行ったマルウェアについては連続動的解析の対象とし、それ以外のマルウェアについては時分割動的解析の対象とすることができる。
【００５０】
次に、図７を用いて、図４の連続動的解析制御処理（Ｓ６）を詳細に説明する。図７は、連続動的解析制御処理を示すフローチャートである。
【００５１】
連続動的解析制御部１２５は、連続動的解析を実施するマルウェア（継続判定部１２６により連続動的解析対象と判定されたマルウェア）が存在するとき（Ｓ７１のＹｅｓ）、連続動的解析部１２２に当該マルウェアの連続動的解析処理を実施させる（Ｓ７２）。一方、連続動的解析を実施すると判定されたマルウェアが存在しなければ（Ｓ７１のＮｏ）、連続動的解析制御部１２５は、連続動的解析制御処理を終了する。なお、Ｓ７２の後、解析が終了であれば（Ｓ７３のＹｅｓ）、連続動的解析制御処理を終了し、まだ解析終了でなければ（Ｓ７３のＮｏ）、Ｓ７２へ戻る。
【００５２】
次に、図８を用いて、図７の連続動的解析処理（Ｓ７２）を詳細に説明する。図８は、連続動的解析処理を示すフローチャートである。
【００５３】
連続動的解析部１２２は、連続動的解析対象のマルウェアを取得すると（Ｓ８１）、前記したＳ５３と同様に、過去に当該マルウェアを実行したマルウェア実行部１２７が存在するか否かを確認する（Ｓ８２）。
【００５４】
ここで、当該マルウェアを実行したマルウェア実行部１２７が存在しなければ（Ｓ８２のＮｏ）、連続動的解析部１２２は、当該マルウェアをマルウェア実行部１２７に転送し、実行させる（Ｓ８４）。一方、当該マルウェアを実行したマルウェア実行部１２７が存在し（Ｓ８２のＹｅｓ）、かつ、当該マルウェアを実行したマルウェア実行部１２７が起動済みであれば（Ｓ８３のＹｅｓ）、Ｓ８６へ進む。また、当該マルウェアを実行したマルウェア実行部１２７がまだ起動していなければ（Ｓ８３のＮｏ）、連続動的解析部１２２は、当該マルウェアを実行したマルウェア実行部１２７を起動し、当該マルウェアを実行させる（Ｓ８５）。そして、時分割動的解析部１２１は、Ｓ８４およびＳ８５におけるマルウェアの実行結果（動作結果）を解析結果１１３に書き込む。
【００５５】
Ｓ８４、Ｓ８５の後、連続動的解析部１２２は連続動的解析対象のマルウェアを全て実行したと判断すると（Ｓ８６のＹｅｓ）、所定時間待機した後（Ｓ８７）、継続判定部１２６により連続動的解析継続判定処理を行い（Ｓ８８）、連続動的解析処理を終了する。一方、連続動的解析対象のマルウェアのうち未実行のマルウェアがあれば（Ｓ８６のＮｏ）、Ｓ８１へ戻る。
【００５６】
次に、図９を用いて、図８の連続動的解析継続判定処理（Ｓ８８）を詳細に説明する。図９は、連続動的解析継続判定処理を示すフローチャートである。
【００５７】
まず、継続判定部１２６は、図６のＳ６１と同様に、解析結果１１３を参照して、マルウェアを連続動的解析の判定を実施するのに必要な期間（例えば、２日間）の解析結果があるか否かを判断する（Ｓ９１）。ここで、必要な期間の解析結果がある場合（Ｓ９１のＹｅｓ）、Ｓ９２へ進む。継続判定部１２６は、例えば、Ｓ９２以降の処理により、各マルウェアが引き続き連続動的解析の対象となるか否かを判定する。一方、まだ、必要な期間の解析結果がない場合（Ｓ９１のＮｏ）、Ｓ９８へ進む。
【００５８】
Ｓ９１でＹｅｓだったとき、継続判定部１２６は、例えば、当該マルウェアについて、ネットワーク上のホストと最後に通信してから所定期間以上経過していないか否か（Ｓ９２）、指定された期間内に通信を行ったホストは当該マルウェアが過去に通信したことのないホストか否か（Ｓ９３）、指定された期間内にネットワーク上のホストから応答を取得しているか否か（Ｓ９４）、指定された期間内にネットワーク上のホストから取得した応答は、当該マルウェアが過去に取得したことがない応答であるか否か（Ｓ９５）を判定する。
【００５９】
Ｓ９２〜Ｓ９５のいずれかでＮｏだったとき、継続判定部１２６は、当該マルウェアを連続動的解析対象外に設定する（Ｓ９６）。つまり、継続判定部１２６は、当該マルウェアについて、ネットワーク上のホストと最後に通信してからまだ所定期間経過していない場合（Ｓ９２のＮｏ）、指定された期間内に通信を行ったホストは当該マルウェアが過去に通信したことのあるホストである場合（Ｓ９３のＮｏ）、指定された期間内にネットワーク上のホストから応答を取得していない場合（Ｓ９４のＮｏ）、指定された期間内にネットワーク上のホストから取得した応答は、当該マルウェアが過去に取得したことのある応答である場合（Ｓ９５のＮｏ）、のいずれかに該当すれば、当該マルウェアを連続動的解析対象外と判定する。つまり、継続判定部１２６は、当該マルウェアを時分割動的解析の対象と判定し、当該マルウェアのＩＤを解析情報１１２に追加する。これにより、Ｓ９２〜Ｓ９５のいずれかでＮｏだったマルウェアは、時分割動的解析の対象となる。継続判定部１２６は、当該マルウェアの連続動的解析で起動していたマルウェア実行部１２７ｂを終了させる（Ｓ９７）。一方、Ｓ９２〜Ｓ９５すべてでＹｅｓだったときはＳ９６およびＳ９７は実行せず、Ｓ９８へ進む。つまり、継続判定部１２６は、現在、連続動的解析中のマルウェアを引き続き連続動的解析の対象とする。
【００６０】
Ｓ９８において、継続判定部１２６は、連続動的解析中の全マルウェアに対して、Ｓ９２〜Ｓ９５の判定を実施したことを確認すると（Ｓ９８のＹｅｓ）、連続動的解析継続判定処理を終了する。一方、まだＳ９２〜Ｓ９５の判定を実施していないマルウェアがあれば（Ｓ９８のＮｏ）、Ｓ９１へ戻る。
【００６１】
なお、継続判定部１２６は、連続動的解析継続判定処理を、Ｓ９２〜Ｓ９５の判定処理のうちいずれか、またはいずれかの組み合わせにより実施してもよい。
【００６２】
このようにすることで監視装置１０は、いったん連続動的解析の対象としたマルウェアについても、その後のマルウェアの解析結果に基づき、時分割動的解析の対象に戻すことができる。従って、監視装置１０は、限られた計算機資源を有効活用して、マルウェアを解析することができる。
【００６３】
なお、本実施の形態では時分割動的解析制御部１２４から時分割動的解析部１２１にマルウェアセットと解析情報１１２を転送することとしたがこれに限定されない。例えば、時分割動的解析制御部１２４で解析情報１１２を基にして、時分割動的解析部１２１のマルウェア実行環境における個々のマルウェアの実行を制御してもよい。
【００６４】
また、本実施の形態では、時分割動的解析処理（図５参照）において、時分割動的解析部１２１が、Ｓ５２で取り出したマルウェアを過去に実行したマルウェア実行部１２７が存在すれば（Ｓ５３のＹｅｓ）、そのマルウェア実行部１２７に当該マルウェアを実行させることとしたが、これに限定されない。例えば、時分割動的解析部１２１は、Ｓ５２の後、マルウェア実行部１２７における仮想ＯＳのイメージをマルウェアのインストール前の状態に復元した上で、Ｓ５２で取り出したマルウェアを実行させるようにしてもよい。
【００６５】
また、連続動的解析処理（図８参照）においても、連続動的解析部１２２が、Ｓ８１で取得したマルウェアを過去に実行したマルウェア実行部１２７が存在すれば（Ｓ８２のＹｅｓ）、そのマルウェア実行部１２７に取り出したマルウェアを実行させることとしたが、これに限定されない。例えば、連続動的解析部１２２は、Ｓ８１の後、マルウェア実行部１２７における仮想ＯＳのイメージをマルウェアのインストール前の状態に復元した上で、Ｓ８１で取得したマルウェアを実行させるようにしてもよい。
【００６６】
このようにすることで、監視装置１０は、マルウェアの解析を行う際、いったんマルウェア実行部１２７をマルウェア感染前の状態に戻してから、マルウェアに感染させてマルウェアの解析を行うので、マルウェアに新規に感染したときの動作を解析することができる。
【００６７】
前記した実施の形態において説明した監視装置１０が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、監視装置１０が実行する処理をコンピュータが実行可能な言語で記述した監視プログラムを作成することもできる。この場合、コンピュータが監視プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる監視プログラムをコンピュータで読み取り可能な記録媒体に記録して、この記録媒体に記録された監視プログラムをコンピュータに読み込ませて実行することにより前記した実施形態と同様の処理を実現してもよい。以下に、図２に示した監視装置１０と同様の機能を実現する監視プログラムを実行するコンピュータの一例を説明する。  
【００６８】
図１０は、監視プログラムを実行するコンピュータ１０００を示す図である。図１０に例示するように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有し、これらの各部はバス１０８０によって接続される。  
【００６９】
メモリ１０１０は、図１０に例示するように、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、図１０に例示するように、ハードディスクドライブ１０３１に接続される。ディスクドライブインタフェース１０４０は、図１０に例示するように、ディスクドライブ１０４１に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１０４１に挿入される。シリアルポートインタフェース１０５０は、図１０に例示するように、例えばマウス１０５１、キーボード１０５２に接続される。ビデオアダプタ１０６０は、図１０に例示するように、例えばディスプレイ１０６１に接続される。  
【００７０】
ここで、図１０に例示するように、ハードディスクドライブ１０３１は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、上記の監視プログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ１０３１に記憶される。  
【００７１】
また、上記実施の形態で説明した各種データは、プログラムデータとして、例えばメモリ１０１０やハードディスクドライブ１０３１に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０３１に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出し実行することで監視装置１０の制御部１２の機能を実現する。  
【００７２】
なお、監視プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０３１に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１０４１等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、監視プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００７３】
１０    監視装置
１１    記憶部
１２    制御部
１３    通信Ｉ／Ｆ部
１１１  マルウェア保管部
１１２  解析情報
１１３  解析結果
１２１  時分割動的解析部
１２２  連続動的解析部
１２３  解析管理部
１２４  時分割動的解析制御部
１２５  連続動的解析制御部
１２６  継続判定部
１２７  マルウェア実行部
１２８  外部通信制御部
【図１】
2014211733.tif 000003
【図２】
2014211733.tif 000004
【図３】
2014211733.tif 000005
【図４】
2014211733.tif 000006
【図５】
2014211733.tif 000007
【図６】
2014211733.tif 000008
【図７】
2014211733.tif 000009
【図８】
2014211733.tif 000010
【図９】
2014211733.tif 000011
【図１０】
2014211733.tif 000012