(57)【要約】  ソフトウェアの動作を容易に検証することができるソフトウェア判定装置等を提供する。  ソフトウェア判定装置１０１は、仮想計算機１０６が有する構成を表す設定情報、対象ソフトウェアを実行するのに要する少なくとも１つ以上のファイルとファイルを仮想計算機に設定する手順とが関連付けされたソフトウェア情報、及び、対象ソフトウェアが実行されているか否かを判定する処理に際して仮想計算機１０６の外部において実行する実行処理と、実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報が与えられた場合に、設定情報に基づき構成を有する仮想計算機１０６を設定する構成設定部１０２と、ソフトウェア情報に含まれている手順に従い、仮想計算機１０６を構成する記憶部１０７にファイルを設定するソフトウェア設定部１０３と、設定された仮想計算機１０６を起動する起動部１０４と、判定情報に基づき、タイミングに実行処理を実行し、実行した結果に関して判定条件を満たすか否かを判定し、判定条件を満たしている場合に、対象ソフトウェアが実行されていると判定し、判定条件を満たしていない場合に、対象ソフトウェアが実行されていないと判定する判定部１０５とを有する。
2016117317.tif 000002
【特許請求の範囲】
【請求項１】
仮想計算機が有する構成を表す設定情報、対象ソフトウェアを実行するのに要する少なくとも１つ以上のファイルと前記ファイルを前記仮想計算機に設定する手順とが関連付けされたソフトウェア情報、及び、前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報が与えられた場合に、前記設定情報に基づき前記構成を有する前記仮想計算機を設定する構成設定手段と、
前記ソフトウェア情報に含まれている前記手順に従い、前記仮想計算機を構成する記憶手段に前記ファイルを設定するソフトウェア設定手段と、
設定された前記仮想計算機を起動する起動手段と、
前記判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たしているか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが実行されていないと判定する判定手段と
を備えるソフトウェア判定装置。
【請求項２】
前記対象ソフトウェアに関して、前記実行処理が異なる複数の前記判定情報が与えられた場合に、前記判定手段は、複数の前記判定情報に含まれる各判定情報に関して判定する
請求項１に記載のソフトウェア判定装置。
【請求項３】
前記ソフトウェア情報と、前記判定情報と、複数種類の前記設定情報が含まれている設定情報セットとが与えられた場合に、前記設定情報セットにおける各前記設定情報と、前記ソフトウェア情報と、前記判定情報とを、前記構成設定手段に提供する情報提供手段と、
提供した各前記設定情報に関して、前記判定手段が前記判定条件を満たしていると判定した前記設定情報を表示する表示手段と
をさらに備える
請求項１または請求項２に記載のソフトウェア判定装置。
【請求項４】
請求項３に記載のソフトウェア判定装置と、
ソフトウェア情報設定手段と
を備え、
前記ソフトウェア情報においては、前記対象ソフトウェアを識別可能な識別子と、前記ファイルと、前記手順とが関連付けされており、
前記判定情報においては、前記識別子と、前記実行処理と、前記タイミングと、前記判定条件とが関連付けされており、
前記ソフトウェア情報設定手段は、特定の前記識別子が与えられるに応じて、複数種類の前記ソフトウェア情報が含まれているソフトウェア情報セットから、前記特定の識別子に関連付けされた前記ファイルと、前記特定の識別子に関連付けされた前記手順とを求め、さらに、複数種類の前記判定情報が含まれている判定情報セットから、前記特定の識別子に関連付けされた前記実行処理と、前記特定の識別子に関連付けされた前記タイミングと、前記特定の識別子に関連付けされた前記判定条件とを求め、求めた前記ファイルと、求めた前記手順と、求めた前記実行処理と、求めた前記タイミングと、求めた前記判定条件とを、前記ソフトウェア判定装置に与える
ソフトウェア解析装置。
【請求項５】
前記特定の識別子と、前記特定の識別子が表す前記対象ソフトウェアに関する処理とを指定可能なユーザインターフェース
をさらに備え、
前記ソフトウェア情報設定手段は、前記ユーザインターフェースを介して指定された前記特定の識別子に基づいて、前記ファイルと前記手順とを求める
請求項４に記載のソフトウェア解析装置。
【請求項６】
請求項３に記載のソフトウェア判定装置と、
１つの対象ソフトウェアに関して、前記ソフトウェア判定装置における前記判定手段が判定した判定結果が異なる場合に、前記１つの対象ソフトウェアがマルウェアであると判定し、該判定結果が一致する場合に、前記１つの対象ソフトウェアがマルウェアでないと判定するマルウェア判定手段と
を備えるマルウェア診断装置。
【請求項７】
請求項２に記載のソフトウェア判定装置と、
前記対象ソフトウェアがマルウェアであるか否かを判定するマルウェア判定手段と
を備え、
前記複数の判定情報は、前記実行処理が前記対象ソフトウェアと異なるソフトウェアを起動する処理を表す場合と、前記実行処理が前記異なるソフトウェアを起動しない処理を表す場合とを含み、
前記マルウェア判定手段は、前記ソフトウェア判定装置における判定結果が、２つの該実行処理に関して異なる場合に、前記対象ソフトウェアをマルウェアであると判定し、該２つの実行処理に関して同じである場合に、前記対象ソフトウェアをマルウェアでないと判定する
マルウェア診断装置。
【請求項８】
前記異なるソフトウェアは、前記対象ソフトウェアに関するオブジェクトプログラムを解析することが可能なソフトウェアである
請求項７に記載のマルウェア診断装置。
【請求項９】
前記異なるソフトウェアは、前記対象ソフトウェアが実行する通信において送受信される通信情報を解析可能なソフトウェアである
請求項７に記載のマルウェア診断装置。
【請求項１０】
仮想計算機が有する構成を表す設定情報、対象ソフトウェアを実行するのに要する少なくとも１つ以上のファイルと前記ファイルを前記仮想計算機に設定する手順とが関連付けされたソフトウェア情報、及び、前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報が与えられた場合に、前記設定情報に基づき前記構成を有する前記仮想計算機を設定し、
前記ソフトウェア情報に含まれている前記手順に従い、前記仮想計算機を構成する記憶手段に前記ファイルを設定し、
設定された前記仮想計算機を起動し、
前記判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たしているか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが実行されていないと判定するソフトウェア判定方法。
【請求項１１】
仮想計算機が有する構成を表す設定情報、対象ソフトウェアを実行するのに要する少なくとも１つ以上のファイルと前記ファイルを前記仮想計算機に設定する手順とが関連付けされたソフトウェア情報、及び、前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報が与えられた場合に、前記設定情報に基づき前記構成を有する前記仮想計算機を設定する構成設定機能と、
前記ソフトウェア情報に含まれている前記手順に従い、前記仮想計算機を構成する記憶手段に前記ファイルを設定するソフトウェア設定機能と、
設定された前記仮想計算機を起動する起動機能と、
前記判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たすか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが実行されていないと判定する判定機能と
をコンピュータに実現させるソフトウェア判定プログラムが格納された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、ソフトウェアが動作するか否かを判定するソフトウェア判定装置等に関する。
【背景技術】
【０００２】
静的解析プログラムは、コンピュータソフトウェア（以降、「ソフトウェア」と表す）に関して、オブジェクトプログラムを実行することなく、ソースプログラムを解析することにより、該ソフトウェアに含まれる不具合等を解析する。静的解析プログラムは、ソースプログラムにおいて不具合であると判定される箇所（フロー）を指摘することにより、ソフトウェアの開発を支援する情報を提供する。【０００３】
たとえば、特許文献１は、静的解析プログラムを用いてソースプログラムを解析した結果に基づいて、警告文を出力する解析装置を開示する。該解析装置は、ソースプログラムを解析した結果を表すファイルを、複数のバージョンに関してそれぞれ作成し、該ファイル間の差分を作成する。次に、該解析装置は、作成した差分に関連付けされた警告文を出力する。【０００４】
一方、ソフトウェアに関するソースプログラムが開示されていない場合に、該ソフトウェアを解析する手法としてリバースエンジニアリングが知られている。リバースエンジニアリングにおいては、ソフトウェアのオブジェクトプログラムを逆アセンブルすることにより、ソフトウェアの機能が解明される。また、不正な動作を実行するソフトウェアを表すマルウェアをリバースエンジニアリングすることにより、マルウェアに対する対策を講じることができる。【０００５】
たとえば、特許文献２には、マルウェアが内包されるパッキングプログラムから、マルウェアを抽出する技術が開示されている。また、特許文献３及び特許文献４には、仮想計算機においてソフトウェアを解析することにより、該ソフトウェアを解析する技術が開示されている。【０００６】
特許文献２は、ソフトウェアが実行するプロセスがメモリにおいてアクセスした領域の変化に基づき、パッキングプログラムからマルウェアを抽出する抽出装置を開示する。【０００７】
特許文献３は、ソフトウェアを解析するプログラム及び検証ツールを用いて、ソフトウェアを検証する検証サービス提供システムを開示する。該提供システムは、プログラムを解析する解析ツールを仮想計算機に導入し、該仮想計算機において、導入した解析ツールを用いてソフトウェアを解析する。【０００８】
特許文献４は、仮想計算機において、マルウェア候補サンプルが実行する処理に伴い出力されるセッション情報等に基づき、該サンプルがマルウェアであるか否かを判定するマルウェア解析装置を開示する。該マルウェア解析装置は、該サンプルがマルウェアであると判定する場合に、該マルウェアを識別可能なシグネチャを出力する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００４−１２６８６６号公報
【特許文献２】特許第５３８９７３４号公報
【特許文献３】特許第５５４０１６０号公報
【特許文献４】特表２０１４−５１９１１３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
たとえば、特許文献１に開示される解析装置を用いて、ソフトウェアに関するソースプログラムを解析することにより、ある計算機環境においてソフトウェアが動作するか否かを検証することができる。尚、計算機環境は、ハードウェアを構成する構成要素、計算機にインストールされているソフトウェア等が組み合わせられた態様を表す。【００１１】
しかし、上述したようないずれの装置を用いてソフトウェアを解析したとしても、ソフトウェアの動作を検証する処理に多くの処理量（計算量）を要する。たとえば、ソースプログラムを解析する解析作業においては、１つ１つの命令文を解析する必要があるので、該解析作業に多くの処理量を要する。また、オブジェクトプログラムをリバースエンジニアリングする場合には、逆アセンブルすることにより得られる結果を解析するのに多くの人手（作業、処理量）を要する。【００１２】
そこで、本発明の主たる目的は、ソフトウェアの動作を検証する処理量を軽減するソフトウェア判定装置等を提供することである。
【課題を解決するための手段】
【００１３】
前述の目的を達成するために、本発明の一態様において、ソフトウェア判定装置は、
仮想計算機が有する構成を表す設定情報、対象ソフトウェアを実行するのに要する少なくとも１つ以上のファイルと前記ファイルを前記仮想計算機に設定する手順とが関連付けされたソフトウェア情報、及び、前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報が与えられた場合に、前記設定情報に基づき前記構成を有する前記仮想計算機を設定する構成設定手段と、
前記ソフトウェア情報に含まれている前記手順に従い、前記仮想計算機を構成する記憶手段に前記ファイルを設定するソフトウェア設定手段と、
設定された前記仮想計算機を起動する起動手段と、
前記判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たすか否か判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが実行されていないと判定する判定手段と
を備える。【００１４】
また、本発明の他の見地として、ソフトウェア判定方法は、
仮想計算機が有する構成を表す設定情報、対象ソフトウェアを実行するのに要する少なくとも１つ以上のファイルと前記ファイルを前記仮想計算機に設定する手順とが関連付けされたソフトウェア情報、及び、前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報が与えられた場合に、前記設定情報に基づき前記構成を有する前記仮想計算機を設定し、
前記ソフトウェア情報に含まれている前記手順に従い、前記仮想計算機を構成する記憶手段に前記ファイルを設定し、
設定された前記仮想計算機を起動し、
前記判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たすか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが実行されていないと判定する。【００１５】
また、本発明の他の見地として、ソフトウェア判定プログラムは、
仮想計算機が有する構成を表す設定情報、対象ソフトウェアを実行するのに要する少なくとも１つ以上のファイルと前記ファイルを前記仮想計算機に設定する手順とが関連付けされたソフトウェア情報、及び、前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報が与えられた場合に、前記設定情報に基づき前記構成を有する前記仮想計算機を設定する構成設定機能と、
前記ソフトウェア情報に含まれている前記手順に従い、前記仮想計算機を構成する記憶手段に前記ファイルを設定するソフトウェア設定機能と、
設定された前記仮想計算機を起動する起動機能と、
前記判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たすか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが実行されていないと判定する判定機能と
をコンピュータに実現させる。【００１６】
さらに、同目的は、係るソフトウェア判定プログラムを記録するコンピュータ読み取り可能な記録媒体によっても実現される。
【発明の効果】
【００１７】
本発明に係るソフトウェア判定装置等によれば、ソフトウェアの動作を容易に検証することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１の実施形態に係るソフトウェア判定装置が有する構成を示すブロック図である。
【図２】第１の実施形態に係るソフトウェア判定装置における処理の流れを示すフローチャートである。
【図３】設定情報が有する構成の一例を概念的に表す図である。
【図４】ソフトウェア情報が有する構成の一例を概念的に表す図である。
【図５】判定情報が有する構成の一例を概念的に表す図である。
【図６】本発明の第２の実施形態に係るソフトウェア判定装置が有する構成を示すブロック図である。
【図７】第２の実施形態に係るソフトウェア判定装置における処理の流れを示すフローチャートである。
【図８】設定情報セットが有する構成の一例を概念的に表す図である。
【図９】表示部に表示される設定情報の一例を概念的に表す図である。
【図１０】本発明の第３の実施形態に係るマルウェア解析装置が有する構成を示すブロック図である。
【図１１】第３の実施形態に係るマルウェア解析装置における処理の流れを示すフローチャートである。
【図１２】ソフトウェア情報セットが有する構成の一例を概念的に表す図である。
【図１３】判定情報セットが有する構成の一例を概念的に表す図である。
【図１４】第３の実施形態に係るユーザインターフェースの一例を表す図である。
【図１５】本発明の第４の実施形態に係るマルウェア診断装置が有する構成を示すブロック図である。
【図１６】第４の実施形態に係るマルウェア診断装置における処理の流れを示すフローチャートである。
【図１７】本発明の各実施形態に係るソフトウェア判定装置等を実現可能な計算処理装置のハードウェア構成例を、概略的に示すブロック図である。
【発明を実施するための形態】
【００１９】
次に、本発明を実施する実施形態について図面を参照しながら詳細に説明する。
【００２０】
＜第１の実施形態＞
本発明の第１の実施形態に係るソフトウェア判定装置が有する構成と、ソフトウェア判定装置が行う処理とについて、図１と図２とを参照しながら詳細に説明する。図１は、本発明の第１の実施形態に係るソフトウェア判定装置１０１が有する構成を示すブロック図である。図２は、第１の実施形態に係るソフトウェア判定装置１０１における処理の流れを示すフローチャートである。
【００２１】
第１の実施形態に係るソフトウェア判定装置１０１は、構成設定部１０２と、ソフトウェア設定部１０３と、起動部１０４と、判定部１０５とを有する。
【００２２】
ソフトウェア判定装置１０１は、仮想計算機１０６と通信接続することができる。仮想計算機１０６は、情報を不揮発的に記憶可能な記憶部１０７を有する。仮想計算機１０６において実行されている処理に関するデータは、メインメモリ（以降、「メモリ」と表す）１０８に記憶されている。処理に関するデータは、たとえば、ソフトウェアが処理する対象となっている処理データ（情報）、該ソフトウェアを表す実行プログラム等である。
【００２３】
構成設定部１０２は、図３に例示するような設定情報と、図４に例示するようなソフトウェア情報と、図５に例示するような判定情報とを受信するのに応じて、受信した情報に基づき、仮想計算機１０６に含まれる構成要素を設定する（ステップＳ１０１）。すなわち、構成設定部１０２は、設定情報と、ソフトウェア情報と、判定情報とが与えられるのに応じて、与えられた情報に基づき、仮想計算機１０６に含まれる構成要素を設定する。図３は、設定情報が有する構成の一例を概念的に表す図である。図４は、ソフトウェア情報が有する構成の一例を概念的に表す図である。図５は、判定情報が有する構成の一例を概念的に表す図である。図３乃至図５を参照しながら設定情報、ソフトウェア情報、及び、判定情報を説明した後に、図２に示す処理について詳述する。
【００２４】
図３を参照しながら設定情報について説明する。設定情報は、仮想計算機１０６に含まれる構成要素を表す名称（識別子）と、該構成要素に設定する値とが関連付けされた情報である。図３に示された例を参照すると、たとえば、設定情報は、名称「プロセッサの数」と、設定値「４」とが関連付けされた情報を含む。これは、仮想計算機１０６を構成するプロセッサの台数を４台に設定することを表す。また、設定情報は、名称「ディスプレイ解像度（縦）」と、設定値「４８０」とが関連付けされた情報を含む。これは、仮想計算機１０６を構成するディスプレイにおける縦方向の解像度を４８０に設定することを表す。ただし、ＩＰは、インターネットプロトコルを表す。ＯＳは、オペレーティングシステムを表す。
【００２５】
次に、図４を参照しながらソフトウェア情報について説明する。ソフトウェア情報は、判定対象であるソフトウェア（以降、「対象ソフトウェア」と表す）に関するファイルと、該ファイルを記憶部１０７に設定する設定手順とが関連付けされた情報である。ソフトウェア情報においては、該ファイルと、該設定手順とに加え、さらに、該対象ソフトウェアの名称（識別子）が関連付けされてもよい。図４に示された例を参照すると、ソフトウェア情報には、以下の３つの項目が含まれる。すなわち、
名称「Ａ」、
ファイル「ＡＡＡ．ｅｘｅ，ＢＢＢ．ｄｌｌ，ＣＣＣ．ｄｌｌ」、
設定手順「「ＡＡＡ．ｅｘｅ」を「￥１１１￥２２２￥３３３」に「ＡＡＡ．ｅｘｅ」として保存する。ＢＢＢ．ｄｌｌを「￥１１１」に保存する」。
【００２６】
ただし、「￥」は、英文用キーボードでは、いわゆる、バックスラッシュに相当（対応）する。「￥」は、ファイル等を格納する場所を表すディレクトリ（フォルダ）の構成を表す。
【００２７】
図４に例示されたソフトウェア情報は、ソフトウェア「Ａ」（この例において、対象ソフトウェア）が、ファイル「ＡＡＡ．ｅｘｅ」、ファイル「ＢＢＢ．ｄｌｌ」、及び、ファイル「ＣＣＣ．ｄｌｌ」を含むことを表す。該ファイルは、たとえば、ソフトウェアＡに含まれているファイルではなく、ソフトウェア「Ａ」が参照する入出力ファイルであってもよい。また、設定手順は、記憶部１０７において、「ＡＡＡ．ｅｘｅ」を「￥１１１￥２２２￥３３３」に「ＡＡＡ．ｅｘｅ」なる名称にて保存し、さらに、「ＢＢＢ．ｄｌｌ」を「￥１１１」に保存することにより、ソフトウェア「Ａ」を実行する仮想計算機１０６を設定できることを表す。
【００２８】
次に、図５を参照しながら判定情報について説明する。判定情報は、仮想計算機１０６において実行する処理を表す実行処理と、該実行処理を実行するタイミングと、該実行処理の結果に基づいて対象ソフトウェアが実行されているか否かを判定する条件を表す判定条件とが関連付けされた情報である。判定情報においては、該実行処理と、該タイミングと、該判定条件とに加え、さらに、ソフトウェアの名称が関連付けされてもよい。判定情報における判定条件は、対象ソフトウェアが仮想計算機１０６において実行されているか否かを判定する場合に参照される条件を表す。
【００２９】
たとえば、図５に示された例の場合、判定情報は、ソフトウェアＡに関する判定情報を表す。この場合に、ソフトウェアＡが仮想計算機１０６において実行されているか否かを判定する処理は、たとえば、次に示す項目１及び項目２を順に実行することにより、実現することができる。すなわち、
（項目１）仮想計算機１０６を起動して１０分経過した後に、仮想計算機１０６に対する応答時間を計測する（図５における列「実行処理」及び列「実行処理を実行するタイミング」）、
（項目２）計測された応答時間が３秒以上である場合には、ソフトウェアＡが実行されていると判定する。計測された応答時間が３秒未満である場合には、ソフトウェアＡが実行されていないと判定する（図５における列「判定条件」）。
【００３０】
本発明の各実施形態において、判定情報に含まれる実行処理は、仮想計算機１０６を対象として実行する処理であるとする。すなわち、該実行処理は、仮想計算機１０６内において実行される処理ではなく、仮想計算機１０６を外部から監視する処理であるとする。たとえば、該実行処理は、仮想計算機１０６に関する応答時間を計測する、メモリ１０８をダンプする、または、仮想計算機１０６に関して送受信される通信内容を読み取る等の処理である。
【００３１】
図２乃至図５に示された例を参照しながら、本実施形態に係るソフトウェア判定装置１０１について詳述する。構成設定部１０２は、図３に例示された設定情報を受信する場合に、ステップＳ１０１にて、たとえば、受信した設定情報に従いプロセッサの数を４に設定することにより、仮想計算機１０６に含まれる構成要素を設定する。
【００３２】
次に、ソフトウェア設定部１０３は、図４に例示されたソフトウェア情報に含まれる手順に従い、仮想計算機１０６が有する構成要素の１つである記憶部１０７に、該手順と関連付けされたファイルを設定する（ステップＳ１０２）。この結果、仮想計算機１０６は、記憶部１０７からソフトウェア設定部１０３にて設定されたファイルを読み取り、読み取ったファイルを実行することによって、該対象ソフトウェアを実行することができる。
【００３３】
次に、起動部１０４は、仮想計算機１０６を起動する（ステップＳ１０３）。起動部１０４は、さらに、ソフトウェア設定部１０３にて設定された対象ソフトウェアを起動してもよい。ソフトウェア情報がマルウェアに関する情報である場合には、起動部１０４は、対象ソフトウェアを起動しない設定であってもよい。この場合に、仮想計算機１０６が起動するに応じて、対象ソフトウェアは起動する。
【００３４】
次に、判定部１０５は、図５に例示された判定情報に基づき、該判定情報に含まれるタイミングに、該タイミングに関連付けされた実行処理を実行する（ステップＳ１０４）。たとえば、該実行処理は、仮想計算機１０６の応答時間を計測する処理、メモリ１０８をダンプする処理、または、仮想計算機１０６に関して送受信される通信内容を読み取る等の処理である。該実行処理は、たとえば、ソフトウェア「Ａ」が外部と通信する機能を有している場合に、ソフトウェアＡに通信を送った後に、応答するまでの時間を計測する処理である。
【００３５】
次に、判定部１０５は、実行処理を実行した結果に基づいて、該実行処理に関連付けされた判定条件に基づき、対象ソフトウェアが仮想計算機１０６において実行されているか否かを判定する（ステップＳ１０５）。判定部１０５は、該実行処理の実行結果が該判定条件を満たしていると判定した場合に（ステップＳ１０５にてＹＥＳ）、対象ソフトウェアが実行されていると判定する（ステップＳ１０６）。判定部１０５は、該実行処理の実行結果が該判定条件を満たしていないと判定した場合に（ステップＳ１０５にてＮＯ）、対象ソフトウェアが実行されていないと判定する（ステップＳ１０７）。
【００３６】
図５に例示された判定情報の場合に、判定部１０５は、ステップＳ１０３にて仮想計算機１０６が起動してから１０分経過した後に、仮想計算機１０６の応答時間を計測する。次に、判定部１０５は、計測された応答時間が３秒以上であるか否かを判定することにより、仮想計算機１０６において、対象ソフトウェアが実行されているか否かを判定する。
【００３７】
尚、判定情報が、１つの対象ソフトウェアに関して複数の実行処理（タイミング、判定条件）を含む場合には、判定部１０５は、各実行処理に関して、ステップＳ１０４乃至ステップＳ１０７に示す処理を実行する。
【００３８】
次に、第１の実施形態に係るソフトウェア判定装置１０１に関する効果について説明する。
【００３９】
ソフトウェア判定装置１０１によれば、対象ソフトウェアの動作を容易に検証することができる。この理由は、ソフトウェア判定装置１０１が、ソースプログラムを解析することなく、設定情報に基づき設定される仮想計算機１０６を起動し、起動後に実行する実行処理の実行結果等に基づき、該対象ソフトウェアが実行されているか否かを判定するからである。
【００４０】
「背景技術」にて説明したように、ソースプログラムを解析する処理には多くの処理を要する。これに対して、実行結果等に基づき対象ソフトウェアが実行されているか否かを判定する判定処理は、ある判定条件を満たすか否かを判定することにより実行される処理であるので、該処理には多くの処理を必要としない。したがって、本実施形態に係るソフトウェア判定装置１０１によれば、対象ソフトウェアの動作を容易に検証することができる。
【００４１】
また、ソフトウェア判定装置１０１は、仮想計算機１０６の外部から実行処理をするので、対象ソフトウェアが実行されているか否かを解析する解析ソフトウェアを仮想計算機１０６に設定しない。たとえば、該解析ソフトウェアが、判定対象である対象ソフトウェアに関する処理に影響を与える場合には、判定対象である対象ソフトウェアを正確に判定することができない。したがって、本実施形態に係るソフトウェア判定装置１０１によれば、たとえ、仮想計算機１０６における解析ソフトウェアの有無に応じて対象ソフトウェアの動作が異なる場合であっても、対象ソフトウェアの動作をより正確に検証することができる。
【００４２】
＜第２の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第２の実施形態について説明する。
【００４３】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００４４】
図６と図７とを参照しながら、第２の実施形態に係るソフトウェア判定装置２０１が有する構成と、ソフトウェア判定装置２０１が行う処理とについて説明する。図６は、本発明の第２の実施形態に係るソフトウェア判定装置２０１が有する構成を示すブロック図である。図７は、第２の実施形態に係るソフトウェア判定装置２０１における処理の流れを示すフローチャートである。
【００４５】
第２の実施形態に係るソフトウェア判定装置２０１は、構成設定部１０２と、ソフトウェア設定部１０３と、起動部１０４と、判定部１０５と、情報送信部２０２と、表示部２０３とを有する。ソフトウェア判定装置２０１は、設定情報記憶部２０４に接続されていてもよい。
【００４６】
以降の説明においては、説明の便宜上、情報送信部を、「情報提供部」と表すこともある。
【００４７】
ソフトウェア判定装置２０１は、仮想計算機１０６と通信接続することができる。
【００４８】
まず、情報送信部２０２は、図４に例示されているようなソフトウェア情報と、図５に例示されているような判定情報とを受信する。次に、情報送信部２０２は、複数種類の設定情報が含まれる設定情報セット（図８に例示）に基づき、設定情報を作成する（ステップＳ２０１）。図８は、設定情報セットが有する構成の一例を概念的に表す図である。尚、設定情報記憶部２０４は、設定情報セットを記憶している。
【００４９】
図８に例示された設定情報セットは、仮想計算機１０６に含まれる構成要素の名称と、該構成要素に設定する値の種類と、該値の初期値及び最大値と、該値として可能な値と、該値の刻み幅（図８の「ステップ」）と、図３に例示された設定情報に値を設定する場合の行数とが関連付けされた情報を含んでいる。尚、設定情報セットは、上述した項目以外の項目を含んでいてもよい。また、設定情報セットは、必ずしも、上述した項目をすべて含んでいる必要はない。
【００５０】
たとえば、図８に例示された設定情報セットの１行目は、仮想計算機１０６の構成要素の１つである項目「プロセッサの台数」に関して設定可能な一連の値を表す。この場合、情報送信部２０２は、設定情報記憶部２０４から該設定情報セットを読み取り、項目「プロセッサの数」に関して１台（初期値）から８台（最大値）まで１台（ステップ）ずつ、設定情報（図３に例示）における１行目（設定行数）に設定した設定情報を作成する。すなわち、この場合、情報送信部２０２は、８種類の設定情報を作成する。
【００５１】
図８に例示された設定情報セットの６行目は、仮想計算機１０６の構成要素の１つである項目「プロセッサの名称」に関して設定可能な一連の値を表す。この場合、情報送信部２０２は、設定情報記憶部２０４から該設定情報セットを読み取り、項目「プロセッサの名称」に関して読み取った「ＡＡＡ」と「ＢＢＢ」とを、それぞれ、設定情報（図３に例示）における２行目（設定行数）に設定することにより、２種類の設定情報を作成する。
【００５２】
情報送信部２０２は、上述した２つの項目に関して設定情報を作成する場合には、該２つの項目の組み合わせである１６（＝８×２）種類の設定情報を作成する。すなわち、情報送信部２０２は、設定情報セットに含まれる構成要素を組み合わせることにより、設定情報を作成する。
【００５３】
次に、情報送信部２０２は、受信した判定情報（図５に例示）と、受信したソフトウェア情報（図４に例示）と、作成した設定情報のうちの１つの設定情報とを、構成設定部１０２に送信する。すなわち、情報送信部２０２（情報提供部）は、受信した判定情報と、受信したソフトウェア情報と、作成した設定情報のうちの１つの設定情報とを、構成設定部１０２に提供する。
【００５４】
以降、構成設定部１０２、ソフトウェア設定部１０３、起動部１０４、及び、判定部１０５は、図２のステップＳ１０１乃至ステップＳ１０７に示した処理と同様の処理を実行する（ステップＳ２０２）。
【００５５】
次に、情報送信部２０２は、判定部１０５から判定結果を受信し、受信した判定結果と、構成設定部１０２に送信した設定情報とが関連付けされた結果情報を作成する（ステップＳ２０３）。
【００５６】
情報送信部２０２は、ステップＳ２０１からステップＳ２０３に至る処理を、作成した設定情報に関して、それぞれ実行する（ステップＳ２０１からステップＳ２０４に至る反復処理）。
【００５７】
次に、表示部２０３は、作成した結果情報から、判定条件を満たす判定結果に関連付けされた設定情報を特定し、特定した設定情報を表示する。たとえば、表示部２０３は、図９に例示されているように、特定した設定情報を総括的に含む設定情報を表示してもよい。図９は、表示部２０３に表示される設定情報の一例を概念的に表す図である。
【００５８】
図９に例示されている設定情報において、オペレーティングシステム（ＯＳ）の欄には、ＯＳ＿Ａと、ＯＳ＿Ｂとの２通りが含まれる。また、プロセッサ数の欄には、２と３と４との３通りが含まれる。これは、設定情報のうち、判定条件を満たす設定情報が、該ＯＳと、該プロセッサ数との組み合わせである６（＝２×３）通りあることを表す。
【００５９】
表示部２０３は、判定条件を満たしている設定情報を総括的に表示したが、判定部１０５が判定するのに応じて、判定条件を満たしている個々の設定情報を表示してもよい。
【００６０】
次に、第２の実施形態に係るソフトウェア判定装置２０１に関する効果について説明する。
【００６１】
本実施形態に係るソフトウェア判定装置２０１によれば、対象ソフトウェアの動作を容易に検証することができる。さらに、本実施形態に係るソフトウェア判定装置２０１によれば、設定情報セットに含まれる複数の設定情報の中から、対象ソフトウェアが動作する設定情報を、容易に特定することができる。
【００６２】
この理由は、理由１及び理由２である。すなわち、
（理由１）第２の実施形態に係るソフトウェア判定装置２０１が有する構成は、第１の実施形態に係るソフトウェア判定装置１０１が有する構成を含むからである、
（理由２）設定情報セット（図８に例示）に含まれる各設定情報に関して、判定部１０５が判定条件を満たすと判定する場合に、表示部２０３が該設定情報を出力するからである。判定条件が満たされた場合に、対象ソフトウェアは、設定情報に基づき構成された仮想計算機１０６において動作する。この結果、表示部２０３は、対象ソフトウェアが動作する設定情報を出力する。
【００６３】
＜第３の実施形態＞
次に、上述した第２の実施形態を基本とする本発明の第３の実施形態について説明する。
【００６４】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第２の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００６５】
図１０と図１１とを参照しながら、第３の実施形態に係るマルウェア解析装置３０１が有する構成と、マルウェア解析装置３０１が行う処理とについて説明する。図１０は、本発明の第３の実施形態に係るマルウェア解析装置３０１が有する構成を示すブロック図である。図１１は、第３の実施形態に係るマルウェア解析装置３０１における処理の流れを示すフローチャートである。尚、マルウェア解析装置３０１は、ソフトウェアを解析する装置であるので、以降、ソフトウェア解析装置と表すこともある。
【００６６】
第３の実施形態に係るマルウェア解析装置３０１は、判定情報設定部３０２と、ソフトウェア情報設定部３０３と、ソフトウェア判定装置２０１とを有する。さらに、マルウェア解析装置３０１は、判定情報記憶部３０４と、ソフトウェア情報記憶部３０５と、記憶部１０７とを有してもよい。
【００６７】
ソフトウェア情報記憶部３０５は、図１２に例示するような、複数種類のソフトウェア情報を含むソフトウェア情報セットを記憶している。図１２は、ソフトウェア情報セットが有する構成の一例を概念的に表す図である。
【００６８】
図１２に示された例において、ソフトウェア情報は、たとえば、ソフトウェアの名称「Ｆ」と、ファイル「ＦＦＦＦ．ｅｘｅ」と、ファイルの処理手順「ＦＦＦＦ．ｅｘｅを「￥１２３４５」に保存する」とを関連付けする。これは、「ＦＦＦＦ．ｅｘｅ」を記憶領域「￥１２３４５」に保存することにより、ソフトウェア「Ｆ」を実行することが可能な仮想計算機１０６を設定できることを表す。ソフトウェアは、たとえば、マルウェアであってもよい。
【００６９】
判定情報記憶部３０４は、図１３に例示されたような、複数種類の判定情報を含む判定情報セットを記憶している。図１３は、判定情報セットが有する構成の一例を概念的に表す図である。
【００７０】
図１３に例示された判定情報セットにおいては、たとえば、ソフトウェアの名称「Ｆ」と、「メモリダンプする」と、「仮想計算機が通信を開始する」と、「メモリ中に文字列「ＣＲＹＰＴ  ＥＮＧＩＮＥ」が存在するか？」とが関連付けされている。これは、仮想計算機が通信を開始する場合に、メモリダンプを作成し、作成したメモリダンプ（すなわち、メモリ）中に文字列「ＣＲＹＰＴ  ＥＮＧＩＮＥ」が存在するか否かに応じて、ソフトウェアＦが実行されているか否かを判定することを表す。尚、「ＣＲＹＰＴ  ＥＮＧＩＮＥ」は、たとえば、暗号化する機能（プログラム、エンジン）を表す。
【００７１】
まず、ソフトウェア情報設定部３０３は、たとえば、図１４に例示されているようなユーザインターフェース（マンマシンインターフェース、グラフィカルユーザインターフェース）を介して、対象ソフトウェアの名称等を受信する。図１４は、第３の実施形態に係るユーザインターフェースの一例を表す図である。
【００７２】
たとえば、ユーザは、図１４に例示されているようなユーザインターフェースにおける、ソフトウェアの名称の欄に、対象ソフトウェアの名称を入力し、その後、「実行する」欄の左のチェックボックスにチェックを入れ、「参照」ボタンを押下する。これにより、ソフトウェアの名称と、該対象ソフトウェアを実行する命令とは、ソフトウェア情報設定部３０３に送信される。
【００７３】
次に、ソフトウェア情報設定部３０３は、ソフトウェア情報記憶部３０５を参照することにより、ソフトウェア情報セットの中から受信したソフトウェアの名称を含むソフトウェア情報を選ぶ（ステップＳ３０１）。次に、ソフトウェア情報設定部３０３は、選んだソフトウェア情報を、ソフトウェア判定装置２０１に送信する（与える）。
【００７４】
判定情報設定部３０２は、判定情報記憶部３０４を参照することにより、判定情報セットの中から、ソフトウェア情報設定部３０３が受信した名称を含む判定情報を選ぶ（ステップＳ３０２）。次に、判定情報設定部３０２は、選んだ判定情報を、ソフトウェア判定装置２０１に送信する。
【００７５】
次に、ソフトウェア判定装置２０１は、判定情報と、ソフトウェア情報とを受信するのに応じて、図７に示されたステップＳ２０１からステップＳ２０４に至る処理を実行する（ステップＳ３０３）。ソフトウェア判定装置２０１は、判定結果を表示してもよい（ステップＳ３０４）。
【００７６】
次に、第３の実施形態に係るマルウェア解析装置３０１に関する効果について説明する。
【００７７】
本実施形態に係るマルウェア解析装置３０１によれば、たとえば、設定情報に応じて異なる動作を実行するマルウェア等のソフトウェアに関して、ソフトウェアが動作する設定情報を特定することができる。この結果、本実施形態に係るマルウェア解析装置３０１によれば、たとえば、マルウェア等のソフトウェアに対する対策を講じる情報を提供することができる。
【００７８】
＜第４の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第４の実施形態について説明する。
【００７９】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００８０】
図１５と図１６とを参照しながら、第４の実施形態に係るマルウェア診断装置４０１が有する構成と、マルウェア診断装置４０１が行う処理とについて説明する。図１５は、本発明の第４の実施形態に係るマルウェア診断装置４０１が有する構成を示すブロック図である。図１６は、第４の実施形態に係るマルウェア診断装置４０１における処理の流れを示すフローチャートである。
【００８１】
第４の実施形態に係るマルウェア診断装置４０１は、ソフトウェア判定装置１０１と、転送部４０２と、判定部４０３とを有する。
【００８２】
まず、マルウェア診断装置４０１は、設定情報（図３に例示）と、ソフトウェア情報（図４に例示）と、判定情報（図５に例示）とを受信する。この場合、マルウェア診断装置４０１は、複数種類の設定情報、または、複数種類の判定情報のうち、少なくとも一方を受信する。
【００８３】
次に、転送部４０２は、受信した設定情報と、受信したソフトウェア情報と、受信した判定情報とをソフトウェア判定装置１０１に送信する。転送部４０２は、複数種類の設定情報に含まれている各設定情報、複数種類の判定情報に含まれている各判定情報に関して、それぞれ、上述した処理を実行する。
【００８４】
ソフトウェア判定装置１０１は、上述した情報を受信するのに応じて、第１の実施形態に示した処理に従い処理を実行する（ステップＳ４０１）。
【００８５】
次に、判定部４０３は、ソフトウェア判定装置１０１が該処理を実行することによって算出した判定結果を受信する。すなわち、判定部４０３は、転送部４０２が転送した各設定情報、または、転送部４０２が転送した各判定情報に関して、それぞれ、該判定結果を受信する。判定部４０３は、受信した複数種類の判定結果において、対象ソフトウェアが実行される場合と、対象ソフトウェアが実行されない場合とがあるか否かを判定する（ステップＳ４０２）。
【００８６】
判定部４０３は、受信した複数種類の判定結果において、対象ソフトウェアが実行される設定情報と、対象ソフトウェアが実行されない設定情報とがある場合に（ステップＳ４０２にてＹＥＳ）、受信したソフトウェア情報に関する対象ソフトウェアがマルウェアであると判定する（ステップＳ４０３）。判定部４０３は、受信した複数種類の判定結果において、どちらか一方の判定になる場合に（ステップＳ４０２にてＮＯ）、受信したソフトウェア情報に関する対象ソフトウェアがマルウェアでないと判定する（ステップＳ４０４）。
【００８７】
次に、第４の実施形態に係るマルウェア診断装置４０１に関する効果について説明する。
【００８８】
本実施形態に係るマルウェア診断装置４０１によれば、たとえば、計算機環境に応じて動作が変化するマルウェアを見つけることができる。
【００８９】
この理由は、マルウェア診断装置４０１が複数種類の設定情報に関して判定結果が異なる場合に、対象ソフトウェアがマルウェアであると判定するからである。
【００９０】
より具体的に、複数種類の設定情報のみが設定される場合に、ソフトウェア判定装置１０１は、マルウェア等を解析可能な解析ソフトウェア（たとえば、デバッガ）を仮想計算機１０６に設定するのではなく、仮想計算機が及ぼす影響を解析することにより、対象ソフトウェアを解析する。たとえば、仮想計算機が実行する通信を外部から監視したり、仮想計算機が利用するメインメモリのダンプを解析したりすることにより、ソフトウェア判定装置１０１は、仮想計算機が及ぼす影響を調べることができる。
【００９１】
また、複数の判定情報は、次に示す判定情報１及び判定情報２を含んでいてもよい。すなわち、
（判定情報１）実行処理が、ソフトウェア情報に含まれる対象ソフトウェアと異なるソフトウェア（たとえば、解析ソフトウェア）を起動する場合を表す、
（判定情報２）実行処理が、該異なるソフトウェア（たとえば、該解析ソフトウェア）を実行しない場合を表す。
【００９２】
この場合、本実施形態に係るマルウェア診断装置４０１によれば、ソフトウェアを解析する解析ソフトウェアを検知するマルウェアであっても、検知することができる。
【００９３】
ソフトウェアを解析することが可能な解析ソフトウェア（たとえば、デバッガ）が起動されていることを検知するのに応じて、活動を停止するマルウェアも数多く知られている。この場合、該マルウェアは、解析ソフトウェアが起動されている仮想計算機１０６において活動を停止する。一方で、該マルウェアは、解析ソフトウェアが起動されていない仮想計算機において活動する。したがって、マルウェア診断装置４０１は、複数の判定情報に関して判定結果が異なるか否かを判定するので、入力された対象ソフトウェアがマルウェアであるか否かを判定することができる。
【００９４】
また、上述した解析ソフトウェアは、仮想計算機１０６の内部において、通信情報（内容）を解析する機能であってもよい。この場合、マルウェア診断装置４０１は、通信情報を解析する解析ソフトウェアを検知するマルウェアであっても、検知することができる。
【００９５】
（ハードウェア構成例）
上述した本発明の各実施形態におけるソフトウェア判定装置、ソフトウェア解析装置、及び、マルウェア診断装置を、１つの計算処理装置（情報処理装置、コンピュータ）を用いて実現するハードウェア資源の構成例について説明する。但し、係るソフトウェア判定装置、係るソフトウェア解析装置、及び、係るマルウェア診断装置は、物理的または機能的に少なくとも２つの計算処理装置を用いて実現してもよい。また、係るソフトウェア判定装置、係るソフトウェア解析装置、及び、係るマルウェア診断装置は、専用の装置として実現してもよい。
【００９６】
図１７は、本発明の各実施形態におけるソフトウェア判定装置、ソフトウェア解析装置、及び、マルウェア診断装置を実現可能な計算処理装置のハードウェア構成例を概略的に示す図である。計算処理装置２０は、中央処理演算装置（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ、以降「ＣＰＵ」と表す）２１、メモリ２２、ディスク２３、及び、不揮発性記録媒体２４を有する。計算処理装置２０は、さらに、通信インターフェース（以降、「通信ＩＦ」と表す。）２７、及び、ディスプレイ２８を有する。計算処理装置２０は、入力装置２５、及び、出力装置２６に接続されていてもよい。計算処理装置２０は、通信ＩＦ２７を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。
【００９７】
不揮発性記録媒体２４は、コンピュータが読み取り可能な、たとえば、コンパクトディスク（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ）、デジタルバーサタイルディスク（Ｄｉｇｉｔａｌ＿Ｖｅｒｓａｔｉｌｅ＿Ｄｉｓｃ）である。また、不揮発性記録媒体２４は、ユニバーサルシリアルバスメモリ（ＵＳＢメモリ）、ソリッドステートドライブ（Ｓｏｌｉｄ＿Ｓｔａｔｅ＿Ｄｒｉｖｅ）等であってもよい。不揮発性記録媒体２４は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体２４は、上述した媒体に限定されない。また、不揮発性記録媒体２４の代わりに、通信ＩＦ２７を介して、通信ネットワークを介して係るプログラムを持ち運びしてもよい。
【００９８】
すなわち、ＣＰＵ２１は、ディスク２３が記憶するソフトウェア・プログラム（コンピュータ・プログラム：以下、単に「プログラム」と称する）を、実行する際にメモリ２２にコピーし、演算処理を実行する。ＣＰＵ２１は、プログラム実行に必要なデータをメモリ２２から読み取る。表示が必要な場合には、ＣＰＵ２１は、ディスプレイ２８に出力結果を表示する。外部への出力が必要な場合には、ＣＰＵ２１は、出力装置２６に出力結果を出力する。外部からプログラムを入力する場合、ＣＰＵ２１は、入力装置２５からプログラムを読み取る。ＣＰＵ２１は、上述した図１、図６、図１０、または、図１５に示す各部が表す機能（処理）に対応するところのメモリ２２にあるソフトウェア判定プログラム（図２、または、図７）、マルウェア解析プログラム（図１１）、または、マルウェア診断プログラム（図１６）を解釈し実行する。ＣＰＵ２１は、上述した本発明の各実施形態において説明した処理を順次行う。
【００９９】
すなわち、このような場合、本発明は、係るソフトウェア判定プログラム、マルウェア解析プログラム、または、マルウェア診断プログラムによっても成し得ると捉えることができる。更に、係るソフトウェア判定プログラム、マルウェア解析プログラム、または、マルウェア診断プログラムが記録されたコンピュータ読み取り可能な不揮発性の記録媒体によっても、本発明は成し得ると捉えることができる。
【０１００】
以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【０１０１】
この出願は、２０１５年１月２２日に出願された日本出願特願２０１５−０１０１１９を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１０２】
１０１    ソフトウェア判定装置
１０２    構成設定部
１０３    ソフトウェア設定部
１０４    起動部
１０５    判定部
１０６    仮想計算機
１０７    記憶部
１０８    メモリ
２０１    ソフトウェア判定装置
２０２    情報送信部
２０３    表示部
２０４    設定情報記憶部
３０１    マルウェア解析装置
３０２    判定情報設定部
３０３    ソフトウェア情報設定部
３０４    判定情報記憶部
３０５    ソフトウェア情報記憶部
４０１    マルウェア診断装置
４０２    転送部
４０３    判定部
２０    計算処理装置
２１    ＣＰＵ
２２    メモリ
２３    ディスク
２４    不揮発性記録媒体
２５    入力装置
２６    出力装置
２７    通信ＩＦ
２８    ディスプレイ
【図１】
2016117317.tif 000003
【図２】
2016117317.tif 000004
【図３】
2016117317.tif 000005
【図４】
2016117317.tif 000006
【図５】
2016117317.tif 000007
【図６】
2016117317.tif 000008
【図７】
2016117317.tif 000009
【図８】
2016117317.tif 000010
【図９】
2016117317.tif 000011
【図１０】
2016117317.tif 000012
【図１１】
2016117317.tif 000013
【図１２】
2016117317.tif 000014
【図１３】
2016117317.tif 000015
【図１４】
2016117317.tif 000016
【図１５】
2016117317.tif 000017
【図１６】
2016117317.tif 000018
【図１７】
2016117317.tif 000019
【手続補正書】
【提出日】平成29年6月21日(2017.6.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
仮想計算機が有する構成を表す設定情報、対象ソフトウェアを実行するのに要する少なくとも１つ以上のファイルと前記ファイルを前記仮想計算機に設定する手順とが関連付けされたソフトウェア情報、及び、前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報が与えられた場合に、前記設定情報に基づき前記構成を有する前記仮想計算機を設定する構成設定手段と、
前記ソフトウェア情報に含まれている前記手順に従い、前記仮想計算機を構成する記憶手段に前記ファイルを設定するソフトウェア設定手段と、
設定された前記仮想計算機を起動する起動手段と、
前記判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たしているか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが実行されていないと判定する判定手段と
を備えるソフトウェア判定装置。
【請求項２】
前記対象ソフトウェアに関して、前記実行処理が異なる複数の前記判定情報が与えられた場合に、前記判定手段は、複数の前記判定情報に含まれる各判定情報に関して判定する
請求項１に記載のソフトウェア判定装置。
【請求項３】
前記ソフトウェア情報と、前記判定情報と、複数種類の前記設定情報が含まれている設定情報セットとが与えられた場合に、前記設定情報セットにおける各前記設定情報と、前記ソフトウェア情報と、前記判定情報とを、前記構成設定手段に提供する情報提供手段と、
提供した各前記設定情報に関して、前記判定手段が前記判定条件を満たしていると判定した前記設定情報を表示する表示手段と
をさらに備える
請求項１または請求項２に記載のソフトウェア判定装置。
【請求項４】
請求項３に記載のソフトウェア判定装置と、
ソフトウェア情報設定手段と
を備え、
前記ソフトウェア情報においては、前記対象ソフトウェアを識別可能な識別子と、前記ファイルと、前記手順とが関連付けされており、
前記判定情報においては、前記識別子と、前記実行処理と、前記タイミングと、前記判定条件とが関連付けされており、
前記ソフトウェア情報設定手段は、特定の前記識別子が与えられるに応じて、複数種類の前記ソフトウェア情報が含まれているソフトウェア情報セットから、前記特定の識別子に関連付けされた前記ファイルと、前記特定の識別子に関連付けされた前記手順とを求め、さらに、複数種類の前記判定情報が含まれている判定情報セットから、前記特定の識別子に関連付けされた前記実行処理と、前記特定の識別子に関連付けされた前記タイミングと、前記特定の識別子に関連付けされた前記判定条件とを求め、求めた前記ファイルと、求めた前記手順と、求めた前記実行処理と、求めた前記タイミングと、求めた前記判定条件とを、前記ソフトウェア判定装置に与える
ソフトウェア解析装置。
【請求項５】
前記特定の識別子と、前記特定の識別子が表す前記対象ソフトウェアに関する処理とを指定可能なユーザインターフェース
をさらに備え、
前記ソフトウェア情報設定手段は、前記ユーザインターフェースを介して指定された前記特定の識別子に基づいて、前記ファイルと前記手順とを求める
請求項４に記載のソフトウェア解析装置。
【請求項６】
請求項３に記載のソフトウェア判定装置と、
１つの対象ソフトウェアに関して、前記ソフトウェア判定装置における前記判定手段が判定した判定結果が異なる場合に、前記１つの対象ソフトウェアがマルウェアであると判定し、該判定結果が一致する場合に、前記１つの対象ソフトウェアがマルウェアでないと判定するマルウェア判定手段と
を備えるマルウェア診断装置。
【請求項７】
請求項２に記載のソフトウェア判定装置と、
前記対象ソフトウェアがマルウェアであるか否かを判定するマルウェア判定手段と
を備え、
前記複数の判定情報は、前記実行処理が前記対象ソフトウェアと異なるソフトウェアを起動する処理を表す場合と、前記実行処理が前記異なるソフトウェアを起動しない処理を表す場合とを含み、
前記マルウェア判定手段は、前記ソフトウェア判定装置における判定結果が、２つの該実行処理に関して異なる場合に、前記対象ソフトウェアをマルウェアであると判定し、２つの該実行処理に関して同じである場合に、前記対象ソフトウェアをマルウェアでないと判定する
マルウェア診断装置。
【請求項８】
前記異なるソフトウェアは、前記対象ソフトウェアが実行する通信において送受信される通信情報を解析可能なソフトウェアである
請求項７に記載のマルウェア診断装置。
【請求項９】
情報処理装置によって、仮想計算機が有する構成を表す設定情報、対象ソフトウェアを実行するのに要する少なくとも１つ以上のファイルと前記ファイルを前記仮想計算機に設定する手順とが関連付けされたソフトウェア情報、及び、前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報が与えられた場合に、前記設定情報に基づき前記構成を有する前記仮想計算機を設定し、
前記ソフトウェア情報に含まれている前記手順に従い、前記仮想計算機を構成する記憶手段に前記ファイルを設定し、
設定された前記仮想計算機を起動し、
前記判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たしているか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが実行されていないと判定するソフトウェア判定方法。
【請求項１０】
仮想計算機が有する構成を表す設定情報、対象ソフトウェアを実行するのに要する少なくとも１つ以上のファイルと前記ファイルを前記仮想計算機に設定する手順とが関連付けされたソフトウェア情報、及び、前記対象ソフトウェアが実行されているか否かを判定する処理に際して前記仮想計算機の外部において実行する実行処理と、前記実行処理を実行するタイミングと、該判定する条件を表す判定条件とが関連付けされた判定情報が与えられた場合に、前記設定情報に基づき前記構成を有する前記仮想計算機を設定する構成設定機能と、
前記ソフトウェア情報に含まれている前記手順に従い、前記仮想計算機を構成する記憶手段に前記ファイルを設定するソフトウェア設定機能と、
設定された前記仮想計算機を起動する起動機能と、
前記判定情報に基づき、前記タイミングに前記実行処理を実行し、実行した結果に関して前記判定条件を満たすか否かを判定し、前記判定条件を満たしている場合に、前記対象ソフトウェアが実行されていると判定し、前記判定条件を満たしていない場合に、前記対象ソフトウェアが実行されていないと判定する判定機能と
をコンピュータに実現させるソフトウェア判定プログラム。
【国際調査報告】
2016117317.tif 000020
2016117317.tif 000021
2016117317.tif 000022