(57)【要約】【課題】制約条件に遵守したマルウェアの実行環境を容易に生成すること。【解決手段】計算機は、同一端末内で実行可能な１以上のソフトウェアの組み合わせである実行環境候補群の各実行環境候補内の前記ソフトウェアに、当該ソフトウェアに含まれる脆弱性を対応付けた実行環境脆弱性関係情報を記憶する記憶デバイスを有し、プロセッサは、前記ソフトウェアの組み合わせである第１実行環境を第１端末群で実行する場合に要求される制約条件を設定する設定処理と、前記実行環境脆弱性関係情報に基づいて、前記設定処理によって設定された前記制約条件下で前記実行環境候補について前記脆弱性の数を最大化することにより、前記実行環境候補群の中から第２端末群で実行される特定の第１実行環境候補を選定する第１選定処理と、前記第１選定処理によって選定された前記特定の第１実行環境候補を出力する出力処理と、を実行することを特徴とする。【選択図】図１
2018045329.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する計算機であって、
前記記憶デバイスは、同一端末内で実行可能な１以上のソフトウェアの組み合わせである実行環境候補群の各実行環境候補内の前記ソフトウェアに、当該ソフトウェアに含まれる脆弱性を対応付けた実行環境脆弱性関係情報を記憶しており、
前記プロセッサは、
前記ソフトウェアの組み合わせである第１実行環境を第１端末群で実行する場合に要求される制約条件を設定する設定処理と、
前記実行環境脆弱性関係情報に基づいて、前記設定処理によって設定された前記制約条件下で前記実行環境候補について前記脆弱性の数を最大化することにより、前記実行環境候補群の中から第２端末群で実行される特定の実行環境候補を選定する第１選定処理と、
前記第１選定処理によって選定された前記特定の第１実行環境候補を出力する出力処理と、
を実行することを特徴とする計算機。
【請求項２】
請求項１に記載の計算機であって、
前記記憶デバイスは、同一端末内で実行可能な１以上のである実行環境候補群を記憶する実行環境候補情報と、前記ソフトウェアに含まれる脆弱性を規定したソフトウェア脆弱性関係情報と、を記憶しており、
前記プロセッサは、
前記実行環境候補情報内の前記実行環境候補群の各実行環境候補内の前記ソフトウェアに前記ソフトウェア脆弱性関係情報内の前記脆弱性を対応付けることにより、実行環境脆弱性関係情報を作成して前記記憶デバイスに格納する第１作成処理を実行し、
前記第１選定処理では、前記プロセッサは、前記第１作成処理によって作成された前記実行環境脆弱性関係情報に基づいて、前記制約条件下で前記実行環境候補について前記脆弱性の数を最大化することにより、前記実行環境候補群の中から前記特定の第１実行環境候補を選定することを特徴とする計算機。
【請求項３】
請求項２に記載の計算機であって、
前記記憶デバイスは、同一端末内で実行可能なソフトウェアどうしを対応付けたソフトウェア関係情報を記憶しており、
前記プロセッサは、
前記ソフトウェア関係情報を参照して、前記実行環境候補情報を作成して、前記記憶デバイスに格納する第２作成処理を実行することを特徴とする計算機。
【請求項４】
請求項３に記載の計算機であって、
前記記憶デバイスは、前記ソフトウェアの特徴情報を記憶するソフトウェア特徴情報を記憶しており、
前記第２作成処理では、前記プロセッサは、前記ソフトウェア特徴情報に基づいて、前記実行環境候補群を絞り込むことにより、前記実行環境候補情報を作成して、前記記憶デバイスに格納することを特徴とする計算機。
【請求項５】
請求項４に記載の計算機であって、
前記特徴情報は、前記ソフトウェアのデータ量であり、
前記第２作成処理では、前記プロセッサは、前記実行環境候補を構成する前記ソフトウェアのデータ量の総和を算出し、当該総和が所定データ量を超過した実行環境候補を削除することにより、前記実行環境候補情報を作成して、前記記憶デバイスに格納することを特徴とする計算機。
【請求項６】
請求項４に記載の計算機であって、
前記特徴情報は、前記ソフトウェアのカテゴリであり、
前記第２作成処理では、前記プロセッサは、前記実行環境候補群のうち同一カテゴリの前記ソフトウェアを有する実行環境候補を削除することにより、前記実行環境候補情報を作成して、前記記憶デバイスに格納することを特徴とする計算機。
【請求項７】
請求項３に記載の計算機であって、
前記第２作成処理では、前記プロセッサは、前記ソフトウェアの組み合わせが完全一致する前記実行環境候補が複数存在する場合、前記ソフトウェアの組み合わせが完全一致する複数の実行環境候補のうち１つのみ残して残余を削除することにより、前記実行環境候補情報を作成して、前記記憶デバイスに格納することを特徴とする計算機。
【請求項８】
請求項３に記載の計算機であって、
前記第２作成処理では、前記プロセッサは、前記実行環境候補群のうちある実行環境候補を構成する前記ソフトウェアの組み合わせが他の実行環境候補を構成する前記ソフトウェアの組み合わせを包含する場合、前記他の実行環境候補を削除することにより、前記実行環境候補情報を作成して、前記記憶デバイスに格納することを特徴とする計算機。
【請求項９】
請求項１に記載の計算機であって、
前記記憶デバイスは、前記第１実行環境を構成する前記ソフトウェアの組み合わせの各ソフトウェアに含まれる脆弱性を規定する第１環境脆弱性情報と、前記第２端末群で実行済みの第２実行環境を構成する前記ソフトウェアに含まれる脆弱性を規定する第２環境脆弱性情報と、を記憶しており、
前記プロセッサは、
前記第１環境脆弱性情報および前記第２環境脆弱性情報を参照して、前記第１環境脆弱性情報に含まれる脆弱性の総数に対する、前記第１環境脆弱性情報および前記第２環境脆弱性情報に共通して含まれる脆弱性の総数の割合を算出し、当該割合に基づいて、前記第１選定処理を実行するか否かを判定する判定処理を実行することを特徴とする計算機。
【請求項１０】
請求項９に記載の計算機であって、
前記第１環境脆弱性情報は、前記脆弱性の脅威を示す脅威指標を前記脆弱性に対応付けて記憶しており、
前記判定処理では、前記プロセッサは、さらに、前記脅威指標に基づいて前記割合を算出することを特徴とする計算機。
【請求項１１】
請求項９に記載の計算機であって、
前記第１環境脆弱性情報は、前記第１端末群のうち前記脆弱性を含むソフトウェアを有する第１端末の割合を示す第１端末群内占有率を前記脆弱性に対応付けて記憶しており、
前記判定処理では、前記プロセッサは、さらに、前記第１端末群内占有率に基づいて前記割合を算出することを特徴とする計算機。
【請求項１２】
請求項１に記載の計算機であって、
前記記憶デバイスは、同一端末内で実行可能な１以上の前記ソフトウェアの組み合わせである実行環境候補群の各実行環境候補内の前記ソフトウェアについて、前記第１実行環境内の前記ソフトウェアの組み合わせにおける前記ソフトウェアの種類数に対する割合である占有率を対応付けた実行環境占有率関係情報を記憶しており、
前記プロセッサは、
前記実行環境占有率関係情報に基づいて、前記設定処理によって設定された前記制約条件下で前記実行環境候補について前記占有率の総和を最大化することにより、前記実行環境候補群の中から第２端末群で実行される特定の第２実行環境候補を選定する第２選定処理を実行し、
前記出力処理では、前記プロセッサは、前記第２選定処理によって選定された前記特定の第２実行環境候補を出力することを特徴とする計算機。
【請求項１３】
請求項１２に記載の計算機であって、
前記記憶デバイスは、同一端末内で実行可能な１以上のである実行環境候補群を記憶する実行環境候補情報と、前記ソフトウェアに当該ソフトウェアの特徴情報として前記占有率を対応付けたソフトウェア特徴情報と、を記憶しており、
前記プロセッサは、
前記実行環境候補情報内の前記実行環境候補群の各実行環境候補内の前記ソフトウェアに前記ソフトウェア特徴情報内の前記占有率を対応付けることにより、実行環境占有率関係情報を作成して前記記憶デバイスに格納する作成処理を実行し、
前記第２選定処理では、前記プロセッサは、前記作成処理によって作成された前記実行環境占有率関係情報に基づいて、前記制約条件下で前記実行環境候補について前記占有率の総和を最大化することにより、前記実行環境候補群の中から前記特定の第２実行環境候補を選定することを特徴とする計算機。
【請求項１４】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する計算機による選定方法であって、
前記記憶デバイスは、同一端末内で実行可能な１以上のソフトウェアの組み合わせである実行環境候補群の各実行環境候補内の前記ソフトウェアに、当該ソフトウェアに含まれる脆弱性を対応付けた実行環境脆弱性関係情報を記憶しており、
前記プロセッサは、
前記ソフトウェアの組み合わせである第１実行環境を第１端末群で実行する場合に要求される制約条件を設定する設定処理と、
前記実行環境脆弱性関係情報に基づいて、前記設定処理によって設定された前記制約条件下で前記実行環境候補について前記脆弱性の数を最大化することにより、前記実行環境候補群の中から第２端末群で実行される特定の実行環境候補を選定する選定処理と、
前記選定処理によって選定された前記特定の実行環境候補を出力する出力処理と、
を実行することを特徴とする選定方法。
【請求項１５】
記憶デバイスにアクセス可能なプロセッサに実行させる選定プログラムであって、
前記記憶デバイスは、同一端末内で実行可能な１以上のソフトウェアの組み合わせである実行環境候補群の各実行環境候補内の前記ソフトウェアに、当該ソフトウェアに含まれる脆弱性を対応付けた実行環境脆弱性関係情報を記憶しており、
前記プロセッサに、
前記ソフトウェアの組み合わせである第１実行環境を第１端末群で実行する場合に要求される制約条件を設定する設定処理と、
前記実行環境脆弱性関係情報に基づいて、前記設定処理によって設定された前記制約条件下で前記実行環境候補について前記脆弱性の数を最大化することにより、前記実行環境候補群の中から第２端末群で実行される特定の実行環境候補を選定する選定処理と、
前記選定処理によって選定された前記特定の実行環境候補を出力する出力処理と、
を実行させることを特徴とする選定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機、選定方法、および選定プログラムに関する。
【背景技術】
【０００２】
近年、企業のシステムにおける脆弱性を狙い、システムへ侵入、機密情報の窃取などを行う標的型攻撃の件数は、増加の一途をたどっている。標的型攻撃は、マルウェアと呼ばれるコンピュータウイルスをメールへ添付し、標的の企業へ送りつけることで開始される。これに対し、マルウェアの検知や解析を目的としたマルウェア解析システムの導入が進んでいる。
【０００３】
マルウェア解析は、ユーザＰＣ上で発見されたマルウェアの可能性がある実行ファイル（擬陽性ファイル）を、マルウェアを実行するために用意した端末の上で実行し、その挙動を観察することで行われるが、前記端末の上でマルウェアにユーザＰＣ上と同等の振る舞いをさせて、ユーザＰＣにおける脅威を特定するためには、前記端末の上に、ユーザＰＣと同等の実行環境を用意する必要がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２２１１７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の技術は、あるユーザ組織のマルウェアの実行環境として、ユーザＰＣと同等の実行環境を備えた実行端末を複数用意することで、ユーザ組織のあるユーザ端末でマルウェアの感染が発覚した際に、迅速にマルウェア解析を行うことを可能としている。しかし、ユーザ組織の規模に応じて、ユーザＰＣの台数と、ユーザＰＣにインストールされるソフトウェアの種類は増加するため、本技術の適用においては、必要となるマルウェアの実行端末の個数は際限なく増加する。このため、本技術において用意することが求められる実行端末の、個数や、端末の用意に係る予算について、ユーザ組織ごとの要求を反映させることが困難である。
【０００６】
本発明は、制約条件に遵守したマルウェアの実行環境を容易に生成することを目的とする。
【課題を解決するための手段】
【０００７】
本願において開示される発明の一側面となる計算機は、選定プログラムを実行するプロセッサと、前記選定プログラムを記憶する記憶デバイスと、を有する計算機であって、前記記憶デバイスは、同一端末内で実行可能な１以上のソフトウェアの組み合わせである実行環境候補群の各実行環境候補内の前記ソフトウェアに、当該ソフトウェアに含まれる脆弱性を対応付けた実行環境脆弱性関係情報を記憶しており、前記プロセッサは、前記ソフトウェアの組み合わせである第１実行環境を第１端末群で実行する場合に要求される制約条件を設定する設定処理と、前記実行環境脆弱性関係情報に基づいて、前記設定処理によって設定された前記制約条件下で前記実行環境候補について前記脆弱性の数を最大化することにより、前記実行環境候補群の中から第２端末群で実行される特定の第１実行環境候補を選定する第１選定処理と、前記第１選定処理によって選定された前記特定の第１実行環境候補を出力する出力処理と、を実行することを特徴とする。
【発明の効果】
【０００８】
本発明の代表的な実施の形態によれば、制約条件に遵守したマルウェアの実行環境を容易に生成することができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例にかかる実行環境構築システムのシステム構成例を示すブロック図である。
【図２】図２は、ユーザ環境脆弱性テーブルの記憶内容例を示す説明図である。
【図３】図３は、解析環境脆弱性テーブルの一例を示す図である。
【図４】図４は、ソフトウェア脆弱性関係情報の記憶内容例を示す説明図である。
【図５】図５は、ソフトウェア特徴情報テーブルの記憶内容例を示す説明図である。
【図６】図６は、ソフトウェア関係テーブルの記憶内容例を示す説明図である。
【図７】図７は、実行環境候補情報の一例を示す説明図である。
【図８】図８は、実行環境脆弱性関係情報の記憶内容例を示す説明図である。
【図９】図９は、実行環境占有率関係情報の記憶内容例を示す説明図である。
【図１０】図１０は、実行環境構築装置による実行環境構築処理手順例を示すフローチャートである。
【図１１】図１１は、環境構築判定プログラムによる環境構築判定処理（ステップＳ１００３）の詳細な処理手順例を示すフローチャートである。
【図１２】図１２は、実行環境構成決定プログラムによる実行環境構成決定処理（ステップＳ１００４）の詳細な処理手順例を示すフローチャートである。
【図１３】図１３は、実行環境構成決定プログラムによる実行環境候補情報作成処理（ステップＳ１２０１）の詳細な処理手順例を示すフローチャートである。
【図１４】図１４は、実行環境候補情報作成処理（ステップＳ１２０１）での実行環境候補情報の作成過程を示す説明図である。
【図１５】図１５は、実行環境構成決定プログラムによる実行環境選定処理（ステップＳ１２０２）の詳細な処理手順例を示すフローチャートである。
【図１６】図１６は、判定結果表示プログラムによる出力画面例を示す説明図である。
【図１７】図１７は、実行環境脆弱性関係情報の他の記憶内容例を示す説明図である。
【発明を実施するための形態】
【００１０】
本実施例では、ユーザからの制約条件として、たとえば、マルウェアを解析する端末の端末環境の構築に係るソフトウェアに関する費用、またはマルウェアを解析する端末の個数に関して制限がある場合を例に挙げて説明する。また、以後は、マルウェアを解析する端末の端末環境と、ユーザ組織に存在する端末の端末環境とにおいて、端末環境として、特に端末のソフトウェア構成に着目する。
【００１１】
また、以下では「プログラム」を主語（動作主体）として本発明の実施形態における各処理について説明を行う場合があるが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート（通信制御装置）を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。プログラムの一部または全ては専用ハードウェアで実現してもよく、また、モジュール化されていてもよい。各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
【００１２】
＜システム構成例＞
図１は、実施例にかかる実行環境構築システムのシステム構成例を示すブロック図である。実行環境構築システムは、ユーザ環境と、マルウェア解析環境と、実行環境構築装置と、を有する。ユーザ環境はネットワーク１２１ａを介して実行環境構築装置と通信可能である。ユーザ環境は、ユーザ組織に存在する１以上のクライアント端末の集合である。クライアント端末１２０ａ、１２０ｂは、ユーザが使用するコンピュータである。パーソナルコンピュータやワークステーション、その他のコンピュータにて実現される。なお、図１では、クライアント端末１２０ａ、１２０ｂを示したが、これらを区別する必要がない場合は、クライアント端末１２０と称することもある。なお、各クライアント端末１２０には、オペレーティングシステムや文書編集ツールなどの複数のソフトウェアがインストールされていることを想定する。また、図１には、２台のクライアント端末１２０しか示していないが、３台以上のクライアント端末１２０を設けてもよい。
【００１３】
マルウェア解析環境は、ネットワーク１２１ｂを介して実行環境構築装置と通信可能である。マルウェア解析環境は、マルウェアを解析する１以上の実行端末の集合である。実行端末１２３ａ、１２３ｂは、マルウェアを実行する際に用いるコンピュータである。パーソナルコンピュータやワークステーション、その他のコンピュータにて実現される。なお、図１では、実行端末１２３ａ，１２３ｂを示したが、これらを区別する必要がない場合は、実行端末１２３と称することもある。なお、各実行端末１２３には、クライアント端末１２０と同様に、オペレーティングシステムや文書編集ツールなどの複数のソフトウェアがインストールされていることを想定する。また、図１には、２台の実行端末１２３しか示していないが、３台以上の実行端末１２３を設けてもよい。
【００１４】
実行環境構築装置１０１は、ユーザ環境とマルウェア環境とを互いに比較し、比較の結果一定以上の差異が見られた場合に、マルウェア解析環境を、ユーザから要求された一定の制約条件の下で再構成する。
【００１５】
実行環境構築装置１０１は、プロセッサ１０３と、プロセッサ１０３が処理を実行するために必要なデータを格納するためのメインメモリ１０４と、大量のデータを記憶する容量を持つハードディスクやフラッシュメモリなどの記憶装置１０５と、他装置と通信を行なうためのＩＦ（ＩｎｔｅｒＦａｃｅ）１０２ａ，１０２ｂと、キーボード、ディスプレイなどの入出力を行うための入出力装置１０６と、これらの各装置を接続する通信路１０７と、を有する。実行環境構築装置１０１は、例えば、パーソナルコンピュータやワークステーション、その他のコンピュータにより実現される。なお、通信路１０７は、例えば、バスやケーブルといった情報伝達媒体である。
【００１６】
プロセッサ１０３は、メインメモリ１０４に格納された環境構築判定プログラム１０８を実行することで、マルウェア解析環境１２４上の実行端末１２３の、ソフトウェア構成を再構築する必要性を判定する。プロセッサ１０３は、メインメモリ１０４に格納された実行環境構成決定プログラム１０９を実行することで、実行端末１２３の上で構築可能なソフトウェア構成を決定する。プロセッサ１０３は、メインメモリ１０４に格納された判定結果表示プログラム１１０を実行することで、環境構築判定プログラム１０８の出力結果および実行環境構成決定プログラム１０９の出力結果をそれぞれ表示する。プロセッサ１０３は、メインメモリ１０４に格納された実行端末実装プログラム１１１を実行することで、実行環境構成決定プログラム１０９の出力結果に基づき、マルウェア解析環境１２４の中に、実行端末１２３のソフトウェア構成を再構築する。
【００１７】
メインメモリ１０４は、環境構築判定プログラム１０８と、実行環境構成決定プログラム１０９と、判定結果表示プログラム１１０と、実行端末実装プログラム１１１と、を記憶する記憶デバイスである。環境構築判定プログラム１０８は、記憶装置１０５内のユーザ環境脆弱性テーブル１１２と解析環境脆弱性テーブル１１３とを参照し、実行端末１２３のソフトウェア構成を再構築する必要性を判定する。
【００１８】
実行環境構成決定プログラム１０９は、記憶装置１０５内のユーザ環境脆弱性テーブル１１２とソフトウェア脆弱性関係情報１１４とソフトウェア特徴情報テーブル１１５とソフトウェア関係テーブル１１６とを参照する。そして、実行環境構成決定プログラム１０９は、記憶装置１０５上で実行環境候補情報１１７と、実行環境脆弱性関係情報１１８と、実行環境占有率関係情報１１９とを作成する。そして、実行環境構成決定プログラム１０９は、作成した情報（１１７〜１１９）を参照することで、マルウェア解析環境１２４で構築する実行端末１２３のソフトウェア構成を決定する。なお、実行環境構成決定プログラム１０９は、ソフトウェア構成としては、実行環境脆弱性関係情報１１８を用いた結果と、実行環境占有率関係情報１１９を用いた結果との二通りを、候補として出力する。
【００１９】
判定結果表示プログラム１１０は、実行環境構成決定プログラム１０９の出力結果を参照し、マルウェア解析環境１２４上の実行端末１２３がソフトウェア構成を再構築する必要がある旨を入出力装置１０６に表示する。判定結果表示プログラム１１０は、実行環境構成決定プログラム１０９の出力結果を参照し、再構築後の実行端末１２３のソフトウェア構成を、入出力装置１０６に二通り表示する。これにより、いずれか一方の出力結果がユーザに選択可能である。
【００２０】
実行端末実装プログラム１１１は、判定結果表示プログラム１１０により入出力装置１０６に表示されたメッセージに対し、ユーザが選択した出力結果を入出力装置１０６から参照し、マルウェア解析環境１２４の実行端末１２３の上に、ソフトウェア構成を再構築する。
【００２１】
記憶装置１０５には、マルウェア解析環境１２４上の実行端末１２３のソフトウェア構成を再構築する必要性の有無の判定に用いる記録データが記憶される。また、記憶装置１０５には、再構築の必要が生じた際、マルウェア解析環境１２４上に再構築する実行端末１２３の、ソフトウェア構成の候補情報を出力するために用いる記録データが記憶される。また、記憶装置１０５には、候補情報を格納する記録データが記憶される。
【００２２】
具体的には、記憶装置１０５は、ユーザ環境脆弱性テーブル１１２と、解析環境脆弱性テーブル１１３と、ソフトウェア脆弱性関係情報１１４と、ソフトウェア特徴情報テーブル１１５と、ソフトウェア関係テーブル１１６と、実行環境候補情報１１７と、実行環境脆弱性関係情報１１８と、実行環境占有率関係情報１１９と、を記憶する記憶デバイスである。
【００２３】
ユーザ環境脆弱性テーブル１１２は、ユーザ環境１２２のクライアント端末１２０に存在する脆弱性を記録する。解析環境脆弱性テーブル１１３は、マルウェア解析環境１２４の実行端末１２３に存在する脆弱性を記録する。ソフトウェア脆弱性関係情報１１４は、ユーザ環境脆弱性テーブル１１２に記録された各脆弱性に対し、該当するソフトウェアとそのバージョンの情報を記録する。ソフトウェア特徴情報テーブル１１５は、ソフトウェア脆弱性関係情報１１４に記録された各ソフトウェアとそのバージョンに付随する情報を記録する。
【００２４】
ソフトウェア関係テーブル１１６は、ユーザ環境１２２に含まれるクライアント端末１２０から抽出した、同一の端末にインストール可能な二つのソフトウェアの対応関係を記録する。実行環境候補情報１１７は、マルウェア解析環境１２４上に構築する実行端末１２３のソフトウェア構成の候補情報を記録する。実行環境脆弱性関係情報１１８は、実行環境候補情報１１７に記録されたソフトウェア構成の候補情報と、ソフトウェア構成に存在する脆弱性と、の対応関係を記録する。実行環境占有率関係情報１１９は、実行環境候補情報１１７に記録されたソフトウェア構成の候補情報と、各ソフトウェアがユーザ環境１２２上のクライアント端末１２０にインストールされている割合と、の対応関係を記録する。
【００２５】
＜各種テーブルの記憶内容例＞
図２〜図９を用いて、記憶装置に記憶されているテーブル群および情報の記憶内容例について説明する。以降のテーブルの説明において、ＡＡフィールドｂｂｂ（ＡＡはフィールド名、ｂｂｂは符号）の値を、ＡＡｂｂｂと表記する場合がある。たとえば、ユーザ環境脆弱性フィールド２０１の値を、ユーザ環境脆弱性２０１と表記する。
【００２６】
図２は、ユーザ環境脆弱性テーブル１１２の記憶内容例を示す説明図である。ユーザ環境脆弱性テーブル１１２は、ユーザ環境脆弱性フィールド２０１と、ユーザ環境内占有率フィールド２０２と、脅威指標フィールド２０３と、を有する。同一行における各フィールド２０１〜２０３の値の組み合わせによりエントリが構成される。なお、ユーザ環境脆弱性テーブル１１２は、後述するステップＳ１１０３と、ステップＳ１１０４と、ステップＳ１１０６とで、それぞれ参照される。ステップＳ１１０３と、ステップＳ１１０４と、ステップＳ１１０６とについては、図１１を用いて後述する。
【００２７】
ユーザ環境脆弱性フィールド２０１は、ユーザ環境脆弱性を格納する記憶領域である。ユーザ環境脆弱性２０１は、ユーザ環境１２２上のクライアント端末１２０のいずれかに存在する脆弱性を一意に特定する識別子である。ユーザ環境脆弱性２０１は、たとえば、ＭＩＴＲＥ  Ｃｏｒｐｏｒａｔｉｏｎの採番するＣＶＥ（Ｃｏｍｍｏｎ  Ｖｕｌｎｅｒａｂｉｌｉｔｉｅｓ  ａｎｄ  Ｅｘｐｏｓｕｒｅｓ）の形式を用いて記述される。だたし、ユーザ環境脆弱性２０１には、その他公的な機関（たとえば、ＩＰＡ（Ｉｎｆｏｒｍａｔｉｏｎ‐ｔｅｃｈｎｏｌｏｇｙ  Ｐｒｏｍｏｔｉｏｎ  Ａｇｅｎｃｙ））の採番する脆弱性のＩＤを用いてもよい。また、ユーザ環境１２２上のいずれかのクライアント端末１２０に存在する脆弱性は、すべてユーザ環境脆弱性テーブル１１２に含まれる。
【００２８】
ユーザ環境内占有率フィールド２０２は、ユーザ環境内占有率を格納する記憶領域である。ユーザ環境内占有率２０２は、ユーザ環境脆弱性テーブル１１２において同一の行で対応するユーザ環境脆弱性２０１が、ユーザ環境１２２のクライアント端末１２０に存在する脆弱性全体に占める割合である。ユーザ環境内占有率２０２は、たとえば、以下のように構成される。ユーザ環境１２２上のすべてのクライアント端末１２０から、クライアント端末１２０に存在する脆弱性を、重複を認めて全て列挙した際、列挙した結果の個数全体に対して、対象のユーザ環境脆弱性２０１が占める割合が、ユーザ環境内占有率２０２である。なお、ユーザ環境内占有率２０２は、たとえば、パーセンテージを単位とした数値で表される。
【００２９】
脅威指標フィールド２０３は、脅威指標を格納する記憶領域である。脅威指標２０３は、ユーザ環境脆弱性テーブル１１２において同一の行で対応するユーザ環境脆弱性２０１に付随して存在する脆弱性の脅威を区分けした指標値である。脅威指標２０３には、たとえば、ＣＶＳＳ（Ｃｏｍｍｏｎ  Ｖｕｌｎｅｒａｂｉｌｉｔｙ  Ｓｃｏｒｉｎｇ  Ｓｙｓｔｅｍ）などを用いて表される。
【００３０】
なお、ユーザ環境脆弱性２０１は、ユーザ環境１２２上のクライアント端末１２０のいずれかに存在する脆弱性の一覧を出力するシステムにより、あらかじめ格納されているものとする。また、ユーザ環境内占有率２０２および脅威指標２０３についても、あらかじめ格納されているものとする。
【００３１】
図３は、解析環境脆弱性テーブル１１３の一例を示す図である。図３に示すように、解析環境脆弱性テーブル１１３は、解析環境脆弱性フィールド３０１と、ユーザ環境内占有率フィールド２０２と、を有する。同一行における各フィールド３０１，２０２の値の組み合わせによりエントリが構成される。なお、解析環境脆弱性テーブル１１３は、ステップＳ１１０６で参照される。ステップＳ１１０６については、図１１を用いて後述する。
【００３２】
解析環境脆弱性フィールド３０１は、解析環境脆弱性を格納する記憶領域である。解析環境脆弱性３０１は、マルウェア解析環境１２４上の実行端末１２３のいずれかに存在する脆弱性である。解析環境脆弱性３０１は、ユーザ環境脆弱性２０１と同様の形式で記述される。また、マルウェア解析環境１２４上のいずれかの実行端末１２３に存在する脆弱性は、すべて解析環境脆弱性テーブル１１３に含まれる。
【００３３】
解析環境脆弱性テーブル１１３におけるユーザ環境内占有率２０２は、以下のように格納される。プロセッサ１０３は、解析環境脆弱性３０１に対して、ユーザ環境脆弱性テーブル１１２のユーザ環境脆弱性２０１において対応する行を探索する。対応する行が存在した場合、プロセッサ１０３は、対応するユーザ環境脆弱性２０１と同一の行に格納されているユーザ環境内占有率２０２を、解析環境脆弱性テーブル１１３におけるユーザ環境内占有率フィールド２０２に格納する。
【００３４】
たとえば、解析環境脆弱性３０１が「ＣＶＥ−ＴＴＴＴ−ＵＵＵＵ」である場合、プロセッサ１０３は、ユーザ環境脆弱性テーブル１１２において、ユーザ環境脆弱性２０１が「ＣＶＥ−ＴＴＴＴ−ＵＵＵＵ」であるエントリを探索し、当該エントリのユーザ環境内占有率２０２である「０．０３％」を特定する。そして、プロセッサ１０３は、特定したユーザ環境内占有率２０２の「０．０３％」を、解析環境脆弱性テーブル１１３の解析環境脆弱性３０１が「ＣＶＥ−ＴＴＴＴ−ＵＵＵＵ」であるエントリのユーザ環境内占有率フィールド２０２に格納する。
【００３５】
なお、ユーザ環境脆弱性テーブル１１２の中に解析環境脆弱性３０１に対応する格納情報が存在しない場合は、解析環境脆弱性テーブル１１３におけるユーザ環境内占有率２０２の値は入力なしとなる。また、解析環境脆弱性３０１は、マルウェア解析環境１２４上の実行端末１２３のいずれかに存在する脆弱性の一覧を出力するシステムにより、あらかじめ格納されているものとする。
【００３６】
図４は、ソフトウェア脆弱性関係情報１１４の記憶内容例を示す説明図である。ソフトウェア脆弱性関係情報１１４は、ユーザ環境脆弱性２０１を行とし、ソフトウェアバージョン４０１を列とする表データである。なお、ソフトウェア脆弱性関係情報１１４におけるセルに含まれる値は、対応する列の表すソフトウェアのバージョンに、対応する行の表す脆弱性が存在するかを示す。存在する場合は「１」、存在しない場合は「０」となる。なお、ソフトウェア脆弱性関係情報１１４は、ステップＳ１４０２で参照される。ステップＳ１４０２については、図１４を用いて後述する。
【００３７】
ソフトウェアバージョン４０１（４０１ａ，４０１ｂ，４０１ｃ，…）は、ソフトウェアの名称とそのバージョンを示す。ソフトウェアの名称とそのバージョンは、たとえば、ＭＩＴＲＥ  Ｃｏｒｐｏｒａｔｉｏｎの採番するＣＶＥ（Ｃｏｍｍｏｎ  Ｖｕｌｎｅｒａｂｉｌｉｔｉｅｓ  ａｎｄ  Ｅｘｐｏｓｕｒｅｓ）の、定義の記述に利用される形式を用いて記述される。たとえば、列４０１ａの場合、ソフトウェアＸＸのバージョンＹＹは、ユーザ環境脆弱性２０１ｂとして「ＣＶＥ−ＲＲＲＲ−ＳＳＳＳ」を有する。なお、ソフトウェア脆弱性関係情報１１４は、ソフトウェアに対して存在する脆弱性を出力するシステムにより、あらかじめ格納されているものとする。
【００３８】
図５は、ソフトウェア特徴情報テーブル１１５の記憶内容例を示す説明図である。図５に示すように、ソフトウェア特徴情報テーブル１１５は、ソフトウェアＩＤフィールド５０１と、ソフトウェアバージョンフィールド４０１と、費用フィールド５０２と、必要データ量フィールド５０３と、占有率フィールド５０４と、ソフトウェアカテゴリフィールド５０５と、を有する。同一行における各フィールド４０１，５０２〜５０５の値の組み合わせによりエントリが構成される。
【００３９】
なお、ソフトウェア特徴情報テーブル１１５は、ステップＳ１３０９と、ステップＳ１３１２と、ステップＳ１４０３と、ステップＳ１４０４と、ステップＳ１４０５とで、それぞれ参照される。ステップＳ１３０９と、ステップＳ１３０２とについては、図１３を用いて後述し、ステップＳ１４０３と、ステップＳ１４０４については、図１４を用いて後述する。
【００４０】
ソフトウェアＩＤフィールド５０１は、ソフトウェアＩＤを格納する記憶領域である。ソフトウェアＩＤ５０１は、ソフトウェアバージョン４０１を一意に特定する識別情報である。費用フィールド５０２は、費用を格納する記憶領域である。費用５０２は、あるソフトウェアのバージョンを、ユーザ環境１２２へ導入する際に発生する、全般の費用を示す。費用５０２には、たとえば、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）やアプリケーションのライセンス費が含まれる。
【００４１】
必要容量フィールド５０３は、必要データ量を格納する記憶領域である。必要データ量５０３は、あるソフトウェアのバージョンを、ユーザ環境１２２上のクライアント端末１２０へインストールする際に必要となるデータ量である。必要データ量５０３は、たとえば、キロバイトを単位とした数値で記述される。
【００４２】
占有率フィールド５０４は、占有率を格納する記憶領域である。占有率５０４は、あるソフトウェアのバージョンが、ユーザ環境１２２上のクライアント端末１２０にインストールされている割合である。占有率５０４は、たとえば、ユーザ環境１２２上のすべてのクライアント端末１２０から、クライアント端末１２０にインストールされたソフトウェアのバージョンを、重複を認めて全て列挙した際、列挙した結果の個数全体（すなわち、ソフトウェアのバージョンの種類数）に対する、対象のソフトウェアのバージョンが占める割合である。なお、占有率５０４は、たとえば、パーセンテージを単位とした数値で表される。
【００４３】
ソフトウェアカテゴリフィールド５０５は、ソフトウェアカテゴリを格納する記憶領域である。ソフトウェアカテゴリ５０５は、ソフトウェアの種類をいくつかのグループに分類するための分類情報である。ソフトウェアカテゴリ５０５の例として、ＯＳ、文書編集ソフト、インターネットブラウザが挙げられる。ソフトウェアカテゴリ５０５は、ステップＳ１３１２において、同一の分類であるソフトウェアを複数持つようなソフトウェア構成を、削除するために用いられる。
【００４４】
なお、費用５０２と必要データ量５０３とは、該当ソフトウェアの取扱説明書に記載の内容や、各企業の公式ウェブサイトに記載されたリリース情報等から抽出される。また、占有率５０４は、ユーザ環境１２２に含まれるクライアント端末１２０を構成するソフトウェアを全て列挙するシステムにより抽出される。費用５０２〜占有率５０４は、あらかじめ格納されているものとする。
【００４５】
図６は、ソフトウェア関係テーブル１１６の記憶内容例を示す説明図である。ソフトウェア関係テーブル１１６は、関係ＩＤ６０１と、ソフトウェアバージョンＡ６０２と、ソフトウェアバージョンＢ６０３と、を有する。同一行における各フィールド４０１，５０２〜５０５の値の組み合わせによりエントリが構成される。なお、ソフトウェア関係テーブル１１６は、ステップＳ１３０２と、ステップＳ１３０８と、ステップＳ１４０３と、ステップＳ１４０５と、ステップＳ１４０６とで、それぞれ参照される。ステップＳ１３０２と、ステップＳ１３０８とは、図１３を用いて後述し、ステップＳ１４０３と、ステップＳ１４０５と、ステップＳ１４０６とは、図１４を用いて後述する。
【００４６】
関係ＩＤフィールド６０１は、関係ＩＤを格納する記憶領域である。関係ＩＤ６０１は、ソフトウェアバージョンＡ６０２と、ソフトウェアバージョンＢ６０３とを一意に特定する識別情報である。なお、同一の関係ＩＤ６０１に対応する、ソフトウェアバージョンＡ６０２と、ソフトウェアバージョンＢ６０３との組み合わせは、同一の端末にインストール可能なソフトウェアのバージョンの組み合わせであることを示す。たとえば、関係ＩＤ６０１が「Ｄ１」のエントリでは、ソフトウェアバージョンＡ６０２が「ソフトウェアＸＸのバージョンＹＹ」であり、ソフトウェアバージョンＢ６０３が「ソフトウェアＰＰのバージョンＱＱ」である。したがって、「ソフトウェアＸＸのバージョンＹＹ」および「ソフトウェアＰＰのバージョンＱＱ」は、同一端末にインストール可能である。
【００４７】
ソフトウェアバージョンＡフィールド６０２は、ソフトウェアバージョンＡの識別情報を格納する記憶領域である。ソフトウェアバージョンＡの識別情報（以下、単に、「ソフトウェアバージョンＡ」）６０２は、ソフトウェアバージョン４０１と同様に、ソフトウェアの名称とそのバージョンを示す。なお、ソフトウェアバージョンＡ６０２で特定されるソフトウェアのバージョンは、関係ＩＤ６０１により対応するソフトウェアバージョンＢ６０３で特定されるソフトウェアのバージョンに対し、リリース時期が早いものとする。さらに、ソフトウェアバージョンＡ６０２で特定されるソフトウェアのバージョンは、リリース時期に関して昇順で格納されるものとする。
【００４８】
ソフトウェアバージョンＢフィールド６０３は、ソフトウェアバージョンＢの識別情報を格納する記憶領域である。ソフトウェアバージョンＢの識別情報（以下、単に、「ソフトウェアバージョンＢ」）６０３は、ソフトウェアバージョン４０１と同様に、ソフトウェアの名称とそのバージョンを示す。なお、ソフトウェアバージョンＢ６０３で特定されるソフトウェアのバージョンは、関係ＩＤ６０１により対応するソフトウェアバージョンＡ６０２で特定されるソフトウェアのバージョンに対し、リリース時期が遅いものとする。さらに、ソフトウェアバージョンＢ６０３で特定されるソフトウェアのバージョンは、リリース時期に関して昇順で、格納されるものとする。
【００４９】
ソフトウェア関係テーブル１１６は、以下の方式であらかじめ構成されていることを想定する。たとえば、ユーザ環境１２２に存在するクライアント端末１２０のソフトウェア構成から、同一の端末にインストールされた、任意の二つのソフトウェアの組み合わせが、同一エントリの行にて対応する、ソフトウェアバージョンＡフィールド６０２とソフトウェアバージョンＢフィールド６０３とに格納される。この場合、前リリース時期が古い方のソフトウェアバージョンが、ソフトウェアバージョンＡフィールド６０２に格納される。
【００５０】
また、プロセッサ１０３は、異なる二つのエントリから、推移律により対応すると分かった二つのソフトウェアの組み合わせについても、ソフトウェア関係テーブル１１６の新たな行に追記してもよい。たとえば、ある行にてソフトウェアＸとソフトウェアＹがそれぞれソフトウェアバージョンＡフィールド６０２とソフトウェアバージョンＢフィールド６０３とに格納されており、かつ、別のエントリにてソフトウェアＸとソフトウェアＺがそれぞれソフトウェアバージョンＡフィールド６０２とソフトウェアバージョンＢフィールド６０３とに格納されているものとする。
【００５１】
この場合、プロセッサ１０３は、ソフトウェアＹとソフトウェアＺとを、新規エントリのソフトウェアバージョンＡフィールド６０２とソフトウェアバージョンＢフィールド６０３とに格納する。さらに、ソフトウェア関係テーブル１１６のソフトウェアバージョンＡフィールド６０２を参照し、ソフトウェアバージョンＡ６０２に関して、そのリリース時期が昇順となるように、ソフトウェア関係テーブル１１６のソフトウェアバージョンＡフィールド６０２とソフトウェアバージョンＢフィールド６０３を並べ替える。
【００５２】
なお、ソフトウェア関係テーブル１１６は、ソフトウェア特徴情報テーブル１１５におけるソフトウェアバージョン４０１と、ソフトウェアの取扱説明書に記載のリリース時期や、各企業の公式ウェブサイトに記載されたリリース情報等の情報から格納可能である。
【００５３】
図７は、実行環境候補情報１１７の一例を示す説明図である。実行環境候補情報１１７は、１以上の実行環境候補を列挙した表データである。実行環境候補情報１１７は、１以上の実行環境候補インデックス（図では、４個の実行環境候補インデックス７０１〜７０４。総称して、実行環境候補インデックス７００）を有する。実行環境候補情報１１７は、ステップＳ１２０２で作成され、ステップＳ１４０２で参照される。ステップＳ１２０２は、図１２を用いて後述し、ステップＳ１４０２は、図１４を用いて後述する。
【００５４】
実行環境候補７００は、マルウェア解析環境１２４上の実行端末１２３で構築する、ソフトウェア構成の候補情報、すなわち、ソフトウェアのバージョンを１以上含む。実行環境候補７００は、ソフトウェア特徴情報テーブル１１５における、ソフトウェアバージョン４０１の中の１個のソフトウェアのバージョン、または、複数のソフトウェアのバージョンにより構成される。なお、実行環境候補７０１〜７０４は、それぞれ、一つの端末上で構築可能なソフトウェア構成である。
【００５５】
図８は、実行環境脆弱性関係情報１１８の記憶内容例を示す説明図である。実行環境脆弱性関係情報１１８は、ユーザ環境脆弱性２０１を行とし、実行環境候補７００を列とする表データである。なお、実行環境脆弱性関係情報１１８におけるセルに含まれる値は、当該セルが対応する列の実行環境候補７００に対し、実行環境候補７００を構成するソフトウェアに、当該セルが対応する行の脆弱性２０１が存在する場合は「１」、存在しない場合は「０」となる。なお、実行環境脆弱性関係情報１１８は、ステップＳ１４０２で作成され、ステップＳ１４０３で参照される。ステップＳ１４０２と、ステップＳ１４０３とは、図１４を用いて後述する。
【００５６】
図９は、実行環境占有率関係情報１１９の記憶内容例を示す説明図である。実行環境占有率関係情報１１９は、ソフトウェアバージョン４０１を行とし、実行環境候補７０１を列とする表データである。なお、実行環境占有率関係情報１１９におけるセルに含まれる値は、当該セルが対応する列の実行環境候補７００に対し、実行環境候補７００を構成するソフトウェアに、当該セルが対応する行のソフトウェアのバージョンが該当する場合は、当該ソフトウェアのバージョンの占有率５０４の数値、該当しない場合は「０」の数値となる。なお、実行環境占有率関係情報１１９は、ステップＳ１４０４で作成され、ステップＳ１４０５で参照される。ステップＳ１４０４と、ステップＳ１４０５とは、図１４を用いて後述する。
【００５７】
＜実行環境構築処理手順例＞
図１０は、実行環境構築装置による実行環境構築処理手順例を示すフローチャートである。実行環境構築装置１０１は、まず、管理者からの操作により制約条件を設定する（ステップＳ１０００）。設定される制約条件は、具体的には、たとえば、マルウェアを解析する実行端末１２３に構築されるソフトウェアに関する費用や、マルウェアを解析する実行端末１２３の台数である。
【００５８】
つぎに、実行環境構築装置１０１は、最終実行日時から一定期間が経過したことを条件として（ステップＳ１００１：Ｙｅｓ）、メインメモリ１０４に格納された、環境構築判定プログラム１０８により環境構築判定処理を実行する（ステップＳ１００３）。初回の実行環境構築処理の場合も同様である。最終実行日時から一定期間が経過していない場合(ステップＳ１００１：Ｎｏ)、最終実行日時から一定期間が経過するまで待機する。一定期間は、管理者により任意に設定される。環境構築判定処理（ステップＳ１００３）の詳細は、図１１で後述する。
【００５９】
つぎに、実行環境構築装置１０１は、環境構築判定処理の判定結果が「再構築の必要あり」か否かを判定する（ステップＳ１００３）。再構築の必要なしの場合（ステップＳ１００３：Ｎｏ）、実行環境構築装置１０１は、実行環境構築処理を終了する。一方、再構築の必要がある場合（ステップＳ１００３：Ｙｅｓ）、実行環境構築装置１０１は、実行環境構成決定プログラム１０９による実行環境構成決定処理を実行する（ステップＳ１００４）。
【００６０】
実行環境構成決定処理（ステップＳ１００４）の決定結果は２種類存在し、当該決定結果は、それぞれ、マルウェア解析環境１２４の実行端末１２３に再構築するソフトウェア構成を表す。すなわち、一方の決定結果は、ユーザ環境１２２のクライアント端末１２０に存在する脆弱性を、より多く有することを目的としたソフトウェア構成である。他方の決定結果は、ユーザ環境１２２のクライアント端末１２０で実際にインストールされている個数の多いソフトウェアを、より多く有したソフトウェア構成である。実行環境構成決定処理（ステップＳ１００４）の詳細については、図１２で後述する。
【００６１】
そして、実行環境構築装置１０１は、判定結果表示プログラム１１０を実行することで、環境構築判定処理（ステップＳ１００３）の判定結果と、実行環境構成決定処理（ステップＳ１００４）の決定結果とを用いて表示情報を生成し、入出力装置１０６に表示する（ステップＳ１００５）。表示情報は、実行環境構成決定処理（ステップＳ１００４）の２種類の決定結果である再構築環境候補群と、それらを選択するインタフェース（たとえば、選択ボタン）と、を含む。当該表示情報の詳細については図１６で後述する。
【００６２】
実行環境構築装置１０１は、入出力装置１０６に表示された表示情報からユーザによる再構築環境候補の選択を受け付ける（ステップＳ１００６）と、実行端末実装プログラム１１１により、選択された再構築候補であるソフトウェア構成をマルウェア解析環境１２４上の実行端末１２３に構築する（ステップＳ１００７）。
【００６３】
＜環境構築判定処理（ステップＳ１００３）＞
図１１は、環境構築判定プログラム１０８による環境構築判定処理（ステップＳ１００３）の詳細な処理手順例を示すフローチャートである。環境構築判定プログラム１０８は、マルウェア解析環境１２４上の実行端末１２３の、ソフトウェア構成を再構築する必要性の有無を判定するプログラムである。当該判定には、ユーザ環境１２２のクライアント端末１２０に存在する脆弱性の数（後述する変数Ｍの最終的な値）と、マルウェア解析環境１２４の実行端末１２３に存在する脆弱性の数（後述する変数Ｘの最終的な値）と、が用いられる。
【００６４】
環境構築判定プログラム１０８は、変数Ｍと、変数Ｘを、それぞれ値を０として定義する（ステップＳ１１０１）。ここで、変数Ｍは、ユーザ環境１２２上のクライアント端末１２０に存在する脆弱性の総数を示す。変数Ｘは、ユーザ環境１２２上のクライアント端末１２０に存在し、かつ、マルウェア解析環境１２４上の実行端末１２３に存在する脆弱性の総数を示す。
【００６５】
環境構築判定プログラム１０８は、ユーザ環境脆弱性テーブル１１２の、ユーザ環境脆弱性フィールド２０１の列から、新たに一行（ユーザ環境脆弱性２０１）を読み出る（ステップＳ１１０２）。
【００６６】
環境構築判定プログラム１０８は、ステップＳ１１０２において読み出した行が、ユーザ環境脆弱性フィールド２０１の列の最終行であるか否かを判定する（ステップＳ１１０３）。最終行である場合（ステップＳ１１０３：Ｙｅｓ）、ステップＳ１１０７へ進み、最終行ではない場合（ステップＳ１１０３：Ｎｏ）、環境構築判定プログラム１０８は、変数Ｍの値を、Ｍ＋１の値に更新する（ステップＳ１１０４）。これにより、ユーザ環境脆弱性テーブル１１２のユーザ環境脆弱性フィールド２０１の列におけるユーザ環境脆弱性２０１の総数が計数される。
【００６７】
環境構築判定プログラム１０８は、解析環境脆弱性テーブル１１３の、解析環境脆弱性フィールド３０１の列を参照する。そして、環境構築判定プログラム１０８は、ステップＳ１１０２において読み出し中の行（ユーザ環境脆弱性２０１）が、解析環境脆弱性フィールド３０１の列に存在するか否かを判定する（ステップＳ１１０５）。存在しない場合（ステップＳ１１０５：Ｎｏ）、ステップＳ１１０２に戻る。一方、存在する場合（ステップＳ１１０５：Ｙｅｓ）、環境構築判定プログラム１０８は、変数Ｘの値を、Ｘ＋１の値に更新する（ステップＳ１１０６）。これにより、ユーザ環境脆弱性テーブル１１２のユーザ環境脆弱性フィールド２０１の列に存在し、かつ、解析環境脆弱性テーブル１１３の解析環境脆弱性フィールド３０１の列に存在する脆弱性の総数が計数される。
【００６８】
ステップＳ１１０７において、環境構築判定プログラム１０８は、変数Ｍの値が「０」であるか否かを判定する（ステップＳ１１０７）。「０」である場合（ステップＳ１１０７：Ｙｅｓ）、ステップＳ１１０９へ進み、Ｍの値が「０」ではない場合（ステップＳ１１０７：Ｎｏ）、ステップＳ１１０８へ進む。この場合、環境構築判定プログラム１０８は、変数Ｍの値と、変数Ｘの値とを参照し、Ｘ／Ｍの値を算出する。そして、環境構築判定プログラム１０８は、Ｘ／Ｍがあらかじめ定められた閾値以下であるか否かを判定する（ステップＳ１１０８）。
【００６９】
Ｘ／Ｍの値が閾値以下である場合（ステップＳ１１０８：Ｙｅｓ）、環境構築判定プログラム１０８は、”必要あり”を出力する（ステップＳ１１１０）。Ｘ／Ｍの値が閾値を超える場合（ステップＳ１１０８：Ｎｏ）、環境構築判定プログラム１０８は、”必要なし”を出力する（ステップＳ１１０９）。これにより、環境構築判定処理（ステップＳ１００３）が終了する。ここで、閾値は、マルウェア解析環境１２４上の実行端末１２３に存在する脆弱性と、ユーザ環境１２２上のクライアント端末１２０に存在する脆弱性との間で、共通する脆弱性の数に依存して変化する設定値である。また、閾値は、ユーザ組織ごとにあらかじめ定められる。
【００７０】
＜実行環境構成決定処理（ステップＳ１００４）＞
図１２は、実行環境構成決定プログラム１０９による実行環境構成決定処理（ステップＳ１００４）の詳細な処理手順例を示すフローチャートである。実行環境構成決定プログラム１０９は、実行環境候補情報作成処理を開始して、図７に示した実行環境候補情報１１７を作成する（ステップＳ１２０１）。実行環境候補情報作成処理（ステップＳ１２０１）の詳細については、図１３で後述する。実行環境構成決定プログラム１０９は、実行環境選定処理を実行して、実行環境候補情報１１７から、マルウェア解析環境１２４上の実行端末１２３に構築するソフトウェア構成を出力する（ステップＳ１２０２）。なお、出力結果であるソフトウェア構成は２種類存在し、その内訳は、ステップＳ１００４で前述した。実行環境選定処理（ステップＳ１２０２）の詳細については、図１５で後述する。
【００７１】
＜実行環境候補情報作成処理（ステップＳ１２０１）＞
図１３は、実行環境構成決定プログラム１０９による実行環境候補情報作成処理（ステップＳ１２０１）の詳細な処理手順例を示すフローチャートである。図１４は、実行環境候補情報作成処理（ステップＳ１２０１）での実行環境候補情報１１７の作成過程を示す説明図である。なお、実行環境候補情報作成処理（ステップＳ１２０１）を開始する時点で、実行環境候補情報１１７は、すべてのセルにおける格納情報が空である。
【００７２】
実行環境構成決定プログラム１０９は、ソフトウェア関係テーブル１１６のソフトウェアバージョンＡフィールド６０２の列から、新たに一行を読み出す（ステップＳ１３０２）。読み出されたソフトウェアバージョンＡ６０２を「候補データ」と称す。たとえば、実行環境構成決定プログラム１０９は、関係ＩＤ６０１が「Ｄ１」のエントリのソフトウェアバージョンＡ６０２（ソフトウェアＸＸ  バージョンＹＹ）を候補データＤ１Ａとして読み出す。
【００７３】
実行環境構成決定プログラム１０９は、実行環境候補インデックス７００を新規作成し、実行環境候補情報１１７の最終列に追加する。そして、実行環境構成決定プログラム１０９は、ステップＳ１３０１において読み出し中の候補データを、新規作成した実行環境候補インデックス７００に関連付ける（ステップＳ１３０２）。具体的には、たとえば、図１４の（Ａ）において、実行環境候補インデックス７０１が新規作成された場合、実行環境構成決定プログラム１０９は、実行環境候補インデックス７０１の列に、候補データＤ１Ａである「ソフトウェアＸＸ  バージョンＹＹ」を関連付ける。
【００７４】
実行環境構成決定プログラム１０９は、実行環境候補情報１１７の左端から、読み出していない実行環境候補インデックス７００の列を読み出す（ステップＳ１３０３）。そして、実行環境構成決定プログラム１０９は、ステップＳ１３０３において読み出し中の実行環境候補インデックス７００の列の最終行の候補データを読み出す。たとえば、図１４の（Ａ）では、実行環境候補インデックス７０１の列の最終行は、候補データＤ１Ａである「ソフトウェアＸＸ  バージョンＹＹ」である。したがって、候補データＤ１Ａが読み出される。実行環境構成決定プログラム１０９は、当該読み出し中の候補データと、ステップＳ１３０１において読み出し中の候補データとを比較する（ステップＳ１３０４）。両者が一致する場合（ステップＳ１３０４：Ｙｅｓ）は、ステップＳ１３０５へ進み、両者が一致しない場合（ステップＳ１３０４：Ｎｏ）は、ステップＳ１３０６へ進む。
【００７５】
具体的には、たとえば、ステップＳ１３０１において読み出し中の候補データが候補データＤ１Ａである場合、図１４の（Ａ）に示したように、実行環境候補インデックス７０１の列の最終行は、候補データＤ１Ａである「ソフトウェアＸＸ  バージョンＹＹ」である。両者は、ともに候補データＤ１Ａであるため、ステップＳ１３０５に移行する。
【００７６】
両候補データが一致する場合（ステップＳ１３０４：Ｙｅｓ）、実行環境構成決定プログラム１０９は、ステップＳ１３０３において読み出し中の実行環境候補インデックス７００の列を引数として、対応関係追記処理を実行する（ステップＳ１３０５）。
【００７７】
対応関係追記処理では、実行環境構成決定プログラム１０９は、まず、実行環境候補インデックス７００を新規作成し、実行環境候補情報１１７の最終列に追加する。実行環境構成決定プログラム１０９は、つぎに、読み出し中の実行環境候補インデックス７００の列の候補データ群を複製し、新規作成した実行環境候補インデックス７００の列に追記する。実行環境構成決定プログラム１０９は、最後に、ステップＳ１３０１において読み出し中の候補データに対応するソフトウェアバージョンＢ６０３をソフトウェア関係テーブル１１６から読み出し、新規作成した実行環境候補インデックス７００の列に追記する。
【００７８】
具体的には、たとえば、図１４の（Ａ）において、実行環境構成決定プログラム１０９は、まず、実行環境候補インデックス７０２を新規作成し、（Ｂ）に示すように、実行環境候補情報１１７の最終列に追加する。つぎに、読み出し中の実行環境候補インデックス７０１の列の候補データＤ１Ａを複製し、（Ｂ）に示すように、新規作成した実行環境候補インデックス７０２の列に追記する。実行環境構成決定プログラム１０９は、最後に、ステップＳ１３０１において読み出し中の候補データＤ１Ａに対応するソフトウェアバージョンＢ６０３（ソフトウェアＰＰ  バージョンＱＱ）を候補データＤ１Ｂとしてソフトウェア関係テーブル１１６から読み出し、（Ｂ）に示すように、新規作成した実行環境候補インデックス７０２の列に追記する。
【００７９】
つぎに、実行環境構成決定プログラム１０９は、ステップＳ１３０３において読み出した実行環境候補インデックス７００の列が、実行環境候補情報１１７の最終列（ＥＯＣ）であるか否かを判定する（ステップＳ１３０７）。最終列である場合（ステップＳ１３０７：Ｙｅｓ）、ステップＳ１３０８へ進み、最終列ではない場合（ステップＳ１３０７：Ｎｏ）、ステップＳ１３０３に戻る。
【００８０】
具体的には、たとえば、ステップＳ１３０３において読み出した実行環境候補インデックス７００が実行環境候補インデックス７０１である場合、実行環境候補インデックス７０２が存在するため、実行環境候補インデックス７０１は最終列に該当しない。したがって、ステップＳ１３０３に戻る。この場合、実行環境構成決定プログラム１０９は、実行環境候補情報１１７の左端から、読み出していない実行環境候補インデックス７０２の列を読み出す（ステップＳ１３０３）。
【００８１】
そして、実行環境構成決定プログラム１０９は、図１４の（Ｂ）に示したように、ステップＳ１３０３において読み出し中の実行環境候補インデックス７０２の列の最終行の候補データＤ１Ｂ（ソフトウェアＰＰ  バージョンＱＱ）を読み出す。実行環境構成決定プログラム１０９は、当該読み出し中の候補データＤ１Ｂと、ステップＳ１３０１において読み出し中の候補データＤ１Ａとを比較する（ステップＳ１３０４）。両者は不一致であるため（ステップＳ１３０４：Ｎｏ）、ステップＳ１３０６へ進む。実行環境候補インデックス７０２の列は、図１４の（Ｂ）の時点で最終列となるため（ステップＳ１３０７：Ｙｅｓ）、ステップＳ１３０７に移行する。
【００８２】
ステップＳ１３０７において、実行環境構成決定プログラム１０９は、ステップＳ１３０１において読み出した候補データが、ソフトウェア関係テーブル１１６におけるソフトウェアバージョンＡフィールド６０２の列の最終行であるか否かを判定する（ステップＳ１３０７）。最終行である場合（ステップＳ１３０７：Ｙｅｓ）、ステップＳ１３０８へ進み、最終行ではない場合（ステップＳ１３０７：Ｎｏ）、ステップＳ１３０１に戻る。
【００８３】
図１４の（Ｂ）の時点では、ステップＳ１３０１において読み出した候補データは候補データＤ１Ａであり、ソフトウェア関係テーブル１１６におけるソフトウェアバージョンＡフィールド６０２の列の最終行ではない。したがって、ステップＳ１３０１に戻り、実行環境構成決定プログラム１０９は、ソフトウェア関係テーブル１１６のソフトウェアバージョンＡフィールド６０２の列から、新たな一行として、関係ＩＤ６０１が「Ｄ２」のエントリのソフトウェアバージョンＡ６０２（ソフトウェアＰＰ  バージョンＱＱ）を候補データＤ２Ａとして読み出す（ステップＳ１３０２）。
【００８４】
実行環境構成決定プログラム１０９は、図１４の（Ｃ）に示すように、実行環境候補インデックス７０３を新規作成し、実行環境候補インデックス７０３の列に、今回読み出した候補データＤ２Ａである「ソフトウェアＰＰ  バージョンＱＱ」を関連付ける（ステップＳ１３０２）。
【００８５】
実行環境構成決定プログラム１０９は、図１４の（Ｃ）の時点で、実行環境候補情報１１７の左端から、読み出していない実行環境候補インデックス７０３の列を読み出す（ステップＳ１３０３）。そして、実行環境構成決定プログラム１０９は、図１４の（Ｃ）において、実行環境候補インデックス７０３の列の最終行の候補データＤ２Ａ（ソフトウェアＰＰ  バージョンＱＱ）を読み出す。そして、実行環境構成決定プログラム１０９は、当該読み出し中の候補データＤ２Ａと、ステップＳ１３０１において読み出し中の候補データＤ２Ａとを比較する（ステップＳ１３０４）。両者はともに候補データＤ２Ａであるため、ステップＳ１３０５に移行する。
【００８６】
実行環境構成決定プログラム１０９は、まず、実行環境候補インデックス７０４を新規作成し、（Ｄ）に示すように、実行環境候補情報１１７の最終列に追加する。つぎに、読み出し中の実行環境候補インデックス７０３の列の候補データＤ２Ａを複製し、（Ｄ）に示すように、新規作成した実行環境候補インデックス７０４の列に追記する。なお、候補データＤ２Ａである「ソフトウェアＰＰ  バージョンＱＱ」は、実行環境候補インデックス７０２において、「ソフトウェアＸＸ  バージョンＹＹ」と関連付けられている。したがって、実行環境構成決定プログラム１０９は、推移律を利用して、「ソフトウェアＸＸ  バージョンＹＹ」である候補データＤ１Ａも複製してもよい。実行環境構成決定プログラム１０９は、最後に、ステップＳ１３０１において読み出し中の候補データＤ２Ａに対応するソフトウェアバージョンＢ６０３（ソフトウェアＺＺ  バージョンＷＷ）を候補データＤ２Ｂとしてソフトウェア関係テーブル１１６から読み出し、（Ｄ）に示すように、新規作成した実行環境候補インデックス７０４の列に追記する。
【００８７】
ステップＳ１３０３において読み出した実行環境候補インデックス７０３は、実行環境候補インデックス７０４が存在するため、実行環境候補インデックス７０３は最終列に該当しない。したがって、ステップＳ１３０３に戻る。この場合、実行環境構成決定プログラム１０９は、実行環境候補情報１１７の左端から、読み出していない実行環境候補インデックス７０４の列を読み出す（ステップＳ１３０３）。
【００８８】
そして、実行環境構成決定プログラム１０９は、図１４の（Ｄ）に示したように、ステップＳ１３０３において読み出し中の実行環境候補インデックス７０４の列の最終行の候補データＤ２Ｂ（ソフトウェアＺＺ  バージョンＷＷ）を読み出す。実行環境構成決定プログラム１０９は、当該読み出し中の候補データＤ２Ｂと、ステップＳ１３０１において読み出し中の候補データＤ１Ａとを比較する（ステップＳ１３０４）。両者は不一致であるため（ステップＳ１３０４：Ｎｏ）、ステップＳ１３０６へ進む。実行環境候補インデックス７０４の列は、図１４の（Ｄ）の時点で最終列となるため（ステップＳ１３０７：Ｙｅｓ）、ステップＳ１３０８に移行する。
【００８９】
このように、ステップＳ１３０１〜Ｓ１３０８の処理により、ソフトウェア関係テーブル１１６に記録された同一の端末にインストール可能なソフトウェアの組み合わせをもとに、構成可能なソフトウェア構成を列挙することができる。
【００９０】
ステップＳ１３０７：Ｙｅｓの場合、実行環境構成決定プログラム１０９は、データ量超過列削除処理（ステップＳ１３０８）、重複列削除処理（ステップＳ１３０９）、包含列削除処理（ステップＳ１３１０）、およびカテゴリ重複列削除処理（ステップＳ１３１１）を実行し、実行環境候補情報作成処理（ステップＳ１２０１）を終了する。これらの処理（Ｓ１３０８〜Ｓ１３１１）の実行可否は、管理者が設定可能である。
【００９１】
データ量超過列削除処理（ステップＳ１３０８）は、所定のデータ量しきい値を超過したソフトウェア構成である実行環境候補を削除する処理である。たとえば、図１４の（Ｄ）の実行環境候補４（実行環境候補インデックス７０４の列）の総必要データ量が所定のデータ量しきい値を超過する場合、実行環境構成決定プログラム１０９は、実行環境候補情報１１７から実行環境候補４を削除する。この場合、実行環境構成決定プログラム１０９は、ソフトウェア特徴情報テーブル１１５から各ソフトウェアのバージョンの必要データ量５０３を読み出して、総必要データ量を求める。なお、所定のデータ量しきい値は、マルウェア解析環境１２４上の実行端末１２３にインストール可能なソフトウェアのデータ量に関する制限値である。所定のデータ量しきい値は、ユーザ組織ごとに、あらかじめ定められる。これにより、実質的に再構成できないソフトウェア構成を除外することができ、無駄な再構成を抑制することができる。
【００９２】
重複列削除処理（ステップＳ１３０９）は、ソフトウェア構成が完全一致する実行環境候補が複数存在する場合、当該複数の実行環境候補のうち１つのみ残して他を削除する処理である。
【００９３】
包含列削除処理（ステップＳ１３１０）は、一方の実行環境候補のソフトウェア構成が、他方の実行環境のソフトウェア構成に包含される場合、一方の実行環境候補を削除する処理である。たとえば、実行環境候補１〜３は、実行環境候補４に包含されるため、実行環境候補１〜３は削除される。
【００９４】
カテゴリ重複列削除処理（ステップＳ１３１１）は、カテゴリが同一なソフトウェアバージョンが複数存在する実行環境候補を削除する処理である。たとえば、実行環境候補２において、候補データＤ１Ａである「ソフトウェアＸＸ  バージョンＹＹ」のカテゴリが「ＯＳ」であり、候補データＤ１Ｂである「ソフトウェアＰＰ  バージョンＱＱ」のカテゴリも「ＯＳ」である場合、実行環境候補２は削除される。この場合、実行環境構成決定プログラム１０９は、ソフトウェア特徴情報テーブル１１５から各ソフトウェアのバージョンのソフトウェアカテゴリ５０５を読み出して、総必要データ量を求める。なお、対象とするカテゴリを特定のカテゴリ（たとえば、ＯＳ）に限定してもよい。
【００９５】
＜実行環境選定処理（ステップＳ１２０２）＞
図１５は、実行環境構成決定プログラム１０９による実行環境選定処理（ステップＳ１２０２）の詳細な処理手順例を示すフローチャートである。実行環境選定処理（ステップＳ１２０２）は、図７の実行環境候補情報１１７を用いて、図８の実行環境脆弱性関係情報１１８および図９の実行環境占有率関係情報１１９を作成し、作成した実行環境脆弱性関係情報１１８および実行環境占有率関係情報１１９を用いて、実行環境を選定する処理である。
【００９６】
実行環境構成決定プログラム１０９は、まず、実行環境脆弱性関係情報１１８を作成する（ステップＳ１５０１）。実行環境脆弱性関係情報１１８の任意のセルに格納される値は、以下のように決定される。実行環境構成決定プログラム１０９は、図７の実行環境候補情報１１７の対象となる実行環境候補７００について、ソフトウェア構成であるソフトウェアバージョン４０１を特定する。実行環境構成決定プログラム１０９は、ソフトウェア脆弱性関係情報１１４を参照し、特定した各ソフトウェアバージョン４０１について、ユーザ環境脆弱性２０１が含まれているか否かを判断する。
【００９７】
ユーザ環境脆弱性２０１が含まれている場合、実行環境構成決定プログラム１０９は、実行環境脆弱性関係情報１１８の対象となる実行環境候補７００の列において、そのソフトウェア構成内のソフトウェアバージョン４０１に含まれているユーザ環境脆弱性２０１のセルの値を「１」に設定する。含まれていない場合は、「０」に設定する。
【００９８】
具体的には、たとえば、実行環境候補１には、ソフトウェア構成として「ソフトウェアＸＸ  バージョンＹＹ」が含まれている。図４のソフトウェア脆弱性関係情報１１４を参照すると、ソフトウェアＸＸ  バージョンＹＹの列４０１ａにおいてセルの値が「１」であるユーザ環境脆弱性２０１は、ユーザ環境脆弱性２０１ｂの「ＣＶＥ−ＲＲＲＲ−ＳＳＳＳ」であり、他のユーザ環境脆弱性２０１ａ，２０１ｃについては、セルの値は「０」である。したがって、実行環境構成決定プログラム１０９は、実行環境脆弱性関係情報１１８の実行環境候補インデックス７０１の列（実行環境候補１）において、ユーザ環境脆弱性２０１ｂの「ＣＶＥ−ＲＲＲＲ−ＳＳＳＳ」に対応するセルの値を「１」に設定し、それ以外のセルの値を「０」に設定する。
【００９９】
つぎに、実行環境構成決定プログラム１０９は、ステップＳ１５０１で作成した実行環境脆弱性関係情報１１８から、ユーザ環境１２２上のクライアント端末１２０に存在する脆弱性に共通する脆弱性がより多く存在するようなソフトウェア構成の組み合わせを選択する（ステップＳ１５０２）。
【０１００】
ここで選択されたソフトウェア構成は、マルウェア解析環境１２４の実行端末１２３の上でソフトウェア構成を構築する際に利用される。なお、ステップＳ１５０２は、マルウェア解析環境１２４の実行端末１２３の上でソフトウェア構成を構築する際に係る費用、または、用意可能な実行端末１２３の個数に関して、ユーザ組織の要求により制限がかけられた場合に、当該制限に対応しながら実行される。
【０１０１】
ステップＳ１５０２は、たとえば、以下の方式により実現可能である。実行環境構成決定プログラム１０９は、実行環境脆弱性関係情報１１８から、複数の列の組み合わせを選択する。この選択には、ステップＳ１０００で設定された制約条件が適用される。
【０１０２】
たとえば、ユーザ組織によりマルウェア解析環境１２４に用意可能な実行端末１２３の個数について制約条件が与えられている場合がある。この場合、実行環境脆弱性関係情報１１８から列の組み合わせを選択する際に、選択する列の数が、ユーザ組織による実行端末１２３の個数を超えないことになる。
【０１０３】
また、ユーザ組織により費用ついて制約条件が与えられている場合がある。この場合、実行環境脆弱性関係情報１１８から列の組み合わせを選択する際に、当該組み合わせに含まれるソフトウェアバージョン４０１に対応する費用５０２の総和が、ユーザ組織による費用の制限を超えないことになる。
【０１０４】
以上の制約条件の下で、実行環境構成決定プログラム１０９は、実行環境脆弱性関係情報１１８から複数の列を選択する際、選択結果に対して、行ごとにＭＡＸを、列に関してＳＵＭを取った結果が最大となるような列の組み合わせを求める最適化問題を解けばよい。なお、最適化問題は、たとえば、数理計画問題を解くための近似アルゴリズムにより、近似解を求めることができる。これにより、マルウェア解析環境１２４上の実行端末１２３に構築するソフトウェア構成として、ユーザ環境脆弱性テーブル１１２のユーザ環境脆弱性２０１に格納された脆弱性を、より多く具備するようなソフトウェア構成を導出することができる。
【０１０５】
ここで、ステップＳ１５０２の数理計画問題について具体的に説明する。ここで、ステップＳ１５０２の数理計画問題における目的関数および制約条件の組み合わせ（以下、要求Ａ）は、以下の通りである。
【０１０６】
【数１】
2018045329.tif 000003
【０１０７】
ステップＳ１５０２は、要求Ａを満たす実行環境候補ｊを選定する処理となる。すなわち、ステップＳ１５０２は、制約条件下で目的関数を最大化する処理となる。ここで、ｊは、１≦ｊ≦Ｎを満たす整数である。ｘｊは、実行環境候補ｊを選択した（ｘｊ＝１）か、選択しない（ｘｊ＝０）かを示す。実行環境候補ｊの選択の有無については、たとえば、制約条件により決まる。Ｎは、実行環境候補７００の総数である。図７の場合は、Ｎ＝４となる。ｉは、１≦ｉ≦Ｍを満たす整数である。Ｍは、ユーザ環境脆弱性２０１の総数である。Ｌ１は、実行環境候補ｊを選択する個数のしきい値である。ａｉｊは、図８の実行環境脆弱性関係情報１１８を行列Ｐにした場合の要素である。
【０１０８】
【数２】
2018045329.tif 000004
【０１０９】
ステップＳ１５０２の数理計画問題を解いた場合の出力は、下記式Ｘでベクトル表現される。
【０１１０】
Ｘ＝｛ｘ１，ｘ２，…，ｘｊ，…，ｘＮ｝
【０１１１】
つぎに、実行環境構成決定プログラム１０９は、実行環境占有率関係情報作成処理を実行する（ステップＳ１５０３）。なお、実行環境占有率関係情報１１９の任意のセルに格納される値は以下のように決定される。実行環境構成決定プログラム１０９は、図７の実行環境候補情報１１７の対象となる実行環境候補７００について、ソフトウェア構成であるソフトウェアバージョン４０１を特定する。実行環境構成決定プログラム１０９は、ソフトウェア特徴情報テーブル１１５を参照し、特定した各ソフトウェアバージョン４０１について、占有率５０４が含まれているか否かを判断する。占有率５０４が含まれている場合、実行環境構成決定プログラム１０９は、実行環境占有率関係情報１１９の対象となる実行環境候補７００の列において、そのソフトウェア構成内のソフトウェアバージョン４０１に含まれているセルに、占有率５０４を設定する。含まれていない場合は、当該セルに「０」に設定する。
【０１１２】
具体的には、たとえば、実行環境候補１には、ソフトウェア構成として「ソフトウェアＸＸ  バージョンＹＹ」が含まれている。図５のソフトウェア特徴情報テーブル１１５を参照すると、ソフトウェアバージョン４０１が「ソフトウェアＸＸ  バージョンＹＹ」であるエントリ（ソフトウェアＩＤ５０１が「Ｃ１」）において、占有率５０４は「５．０」である。
【０１１３】
したがって、実行環境構成決定プログラム１０９は、実行環境占有率関係情報１１９の実行環境候補インデックス７０１の列（実行環境候補１）のうちユーザ環境脆弱性２０１が「ソフトウェアＸＸ  バージョンＹＹ」であるセル（図９の左上のセル）の値を、「５．０」に設定する。また、実行環境構成決定プログラム１０９は、実行環境占有率関係情報１１９の実行環境候補１の列（実行環境候補７０１）のうち、ユーザ環境脆弱性２０１が「ソフトウェアＸＸ  バージョンＹＹ」でないセルの値を、「０」に設定する。
【０１１４】
つぎに、実行環境構成決定プログラム１０９は、ステップＳ１５０３で作成した実行環境占有率関係情報１１９から、ユーザ環境１２２上のクライアント端末１２０で、より多くインストールされているソフトウェアから成るような、ソフトウェア構成の組み合わせを選択する（ステップＳ１５０４）。
【０１１５】
なお、ステップＳ１５０４は、ステップＳ１５０２と同様、マルウェア解析環境１２４の実行端末１２３の上でソフトウェア構成を構築する際に利用される。すなわち、ソフトウェア構成を構築する際に係る費用、または、用意可能な実行端末１２３の個数に関して、ユーザ組織の要求により制限がかけられた場合に、当該制限に対応しながら実行される。
【０１１６】
ステップＳ１５０４は、たとえば、ステップＳ１５０２で示した方式と同様の方式により実現可能である。実行環境構成決定プログラム１０９は、実行環境占有率関係情報１１９から、複数の列の組み合わせを選択する。この選択には、ステップＳ１０００で設定された制約条件が適用される。
【０１１７】
たとえば、ユーザ組織によりマルウェア解析環境１２４に用意可能な実行端末１２３の個数について制約条件が与えられている場合がある。この場合、実行環境占有率関係情報１１９から列の組み合わせを選択する際に、選択する列の数が、ユーザ組織による実行端末１２３の個数を超えないことになる。
【０１１８】
また、ユーザ組織により費用ついて制約条件が与えられている場合がある。この場合、実行環境占有率関係情報１１９から列の組み合わせを選択する際に、当該組み合わせに含まれるソフトウェアバージョン４０１に対応する費用５０２の総和が、ユーザ組織による費用の制限を超えないことになる。
【０１１９】
以上の制約条件の下で、実行環境構成決定プログラム１０９は、実行環境占有率関係情報１１９から複数の列を選択する際、選択結果に対して、行ごとにＭＡＸ（最大値）を、列に関してＳＵＭ（総和）を取った結果が最大となるような列の組み合わせを求める最適化問題を解けばよい。なお、最適化問題は、たとえば、数理計画問題を解くための近似アルゴリズムにより、近似解を求めることができる。これにより、マルウェア解析環境１２４上の実行端末１２３に構築するソフトウェア構成として、より多くインストールされているソフトウェアから成るソフトウェア構成を導出することができる。
【０１２０】
ここで、ステップＳ１５０４の数理計画問題について具体的に説明する。ここで、ステップＳ１５０２の数理計画問題における目的関数および制約条件の組み合わせ（以下、要求Ｂ）は、以下の通りである。
【０１２１】
【数３】
2018045329.tif 000005
【０１２２】
ステップＳ１５０４は、要求Ｂを満たす実行環境候補ｊを選定する処理となる。すなわち、ステップＳ１５０４は、制約条件下で目的関数を最大化する処理となる。ここで、ｊは、１≦ｊ≦Ｎを満たす整数である。ｘｊは、実行環境候補ｊを選択した（ｘｊ＝１）か、選択しない（ｘｊ＝０）かを示す。実行環境候補ｊの選択の有無については、たとえば、制約条件により決まる。Ｎは、実行環境候補７００の総数である。図７の場合は、Ｎ＝４となる。ｉは、１≦ｉ≦Ｍを満たす整数である。Ｍは、ユーザ環境脆弱性２０１の総数である。Ｌ２は、実行環境候補ｊを選択する個数のしきい値である。ｃｉｊは、図９の実行環境占有率関係情報１１９を行列Ｑにした場合の要素である。ｃｉｊは占有率５０４であり、ａｉｊまたは０となる行列Ｑのｉ行ｊ列の要素となる。
【０１２３】
【数４】
2018045329.tif 000006
【０１２４】
ステップＳ１５０４の数理計画問題を解いた場合の出力は、下記式Ｘでベクトル表現される。
【０１２５】
Ｘ＝｛ｘ１，ｘ２，…，ｘｊ，…，ｘＮ｝
【０１２６】
つぎに、実行環境構成決定プログラム１０９は、ステップＳ１５０２と、ステップＳ１５０４でそれぞれ得られたソフトウェア構成の組み合わせを出力する（ステップＳ１５０５）。出力結果は、ステップＳ１００５において、判定結果表示プログラム１１０により入出力装置１０６に表示される。
【０１２７】
＜出力画面例＞
図１６は、判定結果表示プログラム１１０による出力画面例を示す説明図である。出力画面１６００は、判定結果表示画面１６０１と、解析環境情報画面１６０２と、再構築事由表示画面１６０７と、構築環境候補表示画面１６０８とを表示する。
【０１２８】
判定結果表示画面１６０１は、環境構築判定プログラム１０８を実行した結果、マルウェア解析環境１２４上の実行端末１２３のソフトウェア構成を再構築する必要が生じた旨が表示される画面である。
【０１２９】
解析環境情報画面１６０２は、その時点でのマルウェア解析環境１２４上に構築された実行端末１２３に関する情報を表示する画面である。解析環境情報画面１６０２は、最終更新日１６０３と、クライアント環境情報１６０４と、解析環境情報１６０５と、前回結果１６０６とを表示する。
【０１３０】
最終更新日１６０３は、実行環境構築装置１０１により、最後に、マルウェア解析環境１２４上の実行端末１２３の、ソフトウェア構成が再構築された日時である。最終更新日１６０３は、たとえば、実行環境構築装置１０１の起動した日時をメインメモリ１０４に記憶しておくことで表示可能である。
【０１３１】
クライアント環境情報１６０４は、ユーザ環境１２２上のクライアント端末１２０に存在する脆弱性の数を表示する。クライアント環境情報１６０４は、たとえば、ステップＳ１１０９で参照されたＭの値である。
【０１３２】
解析環境情報１６０５は、マルウェア解析環境１２４上の実行端末１２３に存在し、かつ、クライアント端末１２０にも存在する脆弱性の数が、ユーザ環境１２２上のクライアント端末１２０に存在する脆弱性の数全体に占める割合の数値を表示する。解析環境情報１６０５は、たとえば、ステップＳ１１０９で参照されたＭの値とＸの値とを用いて表示される（たとえば、Ｘ／Ｍ）。
【０１３３】
前回結果１６０６は、実行環境構築装置１０１の前回実行結果における、解析環境情報１６０５の情報を表示する。前回結果１６０６は、たとえば、メインメモリ１０４に保存されている実行環境構築装置１０１の前回実行結果である。
【０１３４】
再構築事由表示画面１６０７は、解析環境情報画面１６０２の結果を用いて、マルウェア解析環境１２４の実行端末１２３のソフトウェア構成を再構築する必要の生じた理由を説明するメッセージを表示する画面である。再構築事由表示画面１６０７は、たとえば、図１０のステップＳ１１０３：Ｙｅｓとなった場合に表示される。
【０１３５】
構築環境候補表示画面１６０８は、環境候補Ａ選択画面１６０９と、環境候補Ｂ選択画面１５１０とをそれぞれ表示し、いずれか一方をユーザに選択させる旨を表示する画面である。環境候補Ａ選択画面１６０９および環境候補Ｂ選択画面１５１０は、選択ボタンとしても機能する。
【０１３６】
環境候補Ａ選択画面１６０９は、ステップＳ１５０２により出力されたソフトウェア構成を表示する画面である。なお、環境候補Ａ選択画面１６０９は、ユーザによる入力を受け付けるＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）である。ユーザが環境候補Ａ選択画面１６０９にて入力を行った場合、ステップＳ１５０２で導出されたソフトウェア構成が、判定結果表示プログラム１１０の出力となる。なお、当該出力結果は、ステップＳ１００７で示した実行端末実装プログラム１１１による処理の入力となる。
【０１３７】
環境候補Ｂ選択画面１５１０は、ステップＳ１５０４により出力されたソフトウェア構成を表示する画面である。なお、環境候補Ｂ選択画面１５１０は、ユーザによる入力を受け付けるＧＵＩである。ユーザが環境候補Ｂ選択画面１５１０にて入力を行った場合、ステップＳ１４０５で導出されたソフトウェア構成が、判定結果表示プログラム１１０の出力となる。なお、当該出力結果は、ステップＳ１００８で示した実行端末実装プログラム１１１による処理の入力となる。
【０１３８】
本実施例による実行環境構築装置１０１の処理を説明する。なお、ここでは、ステップＳ１００６において、ユーザは、環境候補Ａ選択画面１６０９を押下することを想定する。すなわち、ユーザは、ユーザ環境１２２上のクライアント端末１２０に存在する脆弱性に着目し、再構築のためのソフトウェア構成を選択するものとする。
【０１３９】
実行環境構築装置１０１の最終起動日時から一定期間が経過した際、実行環境構築装置１０１が起動し、環境構築判定プログラム１０８が実行される。環境構築判定プログラム１０８では、ユーザ環境脆弱性テーブル１１２と、解析環境脆弱性テーブル１１３とを参照し、これにより、ユーザ環境１２２上のクライアント端末１２０と、マルウェア解析環境１２４上の実行端末１２３との間に、共通して存在する脆弱性の割合が出力される。
【０１４０】
当該共通する脆弱性の割合が所定の閾値を下回った場合、実行環境構成決定プログラム１０９が実行される。具体的には、たとえば、実行環境構成決定プログラム１０９は、ソフトウェア特徴情報テーブル１１５と、ソフトウェア関係テーブル１１６とを参照し、実行環境候補情報１１７を作成する。さらに、実行環境構成決定プログラム１０９は、ユーザ環境脆弱性テーブル１１２と、ソフトウェア脆弱性関係情報１１４と、ソフトウェア特徴情報テーブル１１５と、実行環境候補情報１１７とを参照する。そして、実行環境構成決定プログラム１０９は、マルウェア解析環境１２４上の実行端末１２３に構築するソフトウェア構成が、当該ソフトウェア構成の構築に付随する予算や、実行端末１２３の個数に関するユーザからの固有の要求の下で決定し、出力結果として出力する。
【０１４１】
判定結果表示プログラム１１０は、当該出力結果であるソフトウェア構成を、入出力装置１０６に表示する。ユーザは環境候補Ａ選択画面１６０９のボタンを押下することで、マルウェア解析環境１２４上の実行端末１２３の上での、ソフトウェア構成の再構築を承認する。ユーザによる環境候補Ａ選択画面１６０９のボタン押下により、実行環境構成決定プログラム１０９の出力結果が、実行端末実装プログラム１１１に入力される。
【０１４２】
これにより、実行端末実装プログラム１１１は、入力結果であるソフトウェア構成に基づき、マルウェア解析環境１２４上の実行端末１２３を、入力結果であるソフトウェア構成に基づき再構築する。再構築された実行環境は、一定期間が経過するごとに、実行環境構築装置１０１に含まれる環境構築判定プログラム１０８によって、ユーザ環境１２２上のクライアント端末１２０と、マルウェア解析環境１２４上の実行端末１２３との間に、共通して存在する脆弱性の割合（Ｘ／Ｍ）が導出され、評価される。
【０１４３】
以上により、ユーザ組織におけるマルウェア解析環境１２４上の実行端末１２３で、ソフトウェア構成の再構築が、実行端末１２３の個数や、ソフトウェア構成の構築に付随する費用に関するユーザ組織ごとの固有の要件に基づき、実行可能となる。
【０１４４】
なお、本実施例の一部を変更して、次のように実施してもよい。たとえば、環境構築判定処理（ステップＳ１００２）は、脅威指標２０３で重み付けして判定してもよい。具体的には、たとえば、ステップＳ１１０９の式が下記式（１）に置き換わる。
【０１４５】
【数５】
2018045329.tif 000007
【０１４６】
ｄａは、図２のユーザ環境脆弱性テーブル１１２のａ番目のエントリの脅威指標２０３である。ｙａは、ｄａの脅威指標２０３の採用（ｙａ＝１）または不採用（ｙａ＝０）を示す値である。ｄｂは、図３の解析環境脆弱性テーブル１１３の解析環境脆弱性３０１と共通するユーザ環境脆弱性２０１のエントリにおける脅威指標２０３である。ｙｂは、ｄａの脅威指標２０３の採用（ｙｂ＝１）または不採用（ｙｂ＝０）を示す値である。ｙａおよびｙｂは、たとえば、あらかじめステップＳ１０００の制約条件で設定される。これにより、環境構築判定プログラム１０８は、マルウェア解析環境１２４上の実行端末１２３と、ユーザ環境１２２上のクライアント端末１２０とで、脅威指標２０３の値が高いソフトウェアが共通しているかという観点で、齟齬があるか否かを判定することができる。
【０１４７】
また、環境構築判定処理（ステップＳ１００２）は、脅威指標２０３で重み付けして判定してもよい。具体的には、たとえば、ステップＳ１１０９の式が下記式（２）に置き換わる。
【０１４８】
【数６】
2018045329.tif 000008
【０１４９】
ｆａは、図２のユーザ環境脆弱性テーブル１１２のａ番目のエントリのユーザ環境内占有率２０２である。ｙａは、ｆａのユーザ環境内占有率２０２の採用（ｙａ＝１）または不採用（ｙａ＝０）を示す値である。ｆｂは、図３の解析環境脆弱性テーブル１１３の解析環境脆弱性３０１と共通するユーザ環境脆弱性２０１のエントリにおけるユーザ環境内占有率２０２である。ｙｂは、ｆａのユーザ環境内占有率２０２の採用（ｙｂ＝１）または不採用（ｙｂ＝０）を示す値である。ｙａおよびｙｂは、たとえば、あらかじめステップＳ１０００の制約条件で設定される。これにより、環境構築判定プログラム１０８は、マルウェア解析環境１２４上の実行端末１２３と、ユーザ環境１２２上のクライアント端末１２０とで、ユーザ環境内占有率２０２の値が高いソフトウェアが共通しているかという観点で、齟齬があるか否かを判定することができる。
【０１５０】
実行環境脆弱性関係情報作成処理（ステップＳ１５０１）において、実行環境脆弱性関係情報１１８の作成には、ユーザ環境内占有率２０２が用いられてもよい。これにより、ステップＳ１５０２において、実行環境構成決定プログラム１０９は、ユーザ環境１２２上の多くのクライアント端末１２０に存在する脆弱性とユーザ環境内占有率２０２とを優先して、マルウェア解析環境１２４上の実行端末１２３を再構築する際のソフトウェア構成を決定することができる。
【０１５１】
実行環境脆弱性関係情報作成処理（ステップＳ１５０１）において、実行環境脆弱性関係情報１１８の作成には、脅威指標２０３が用いられてもよい。図１７は、実行環境脆弱性関係情報１１８の他の記憶内容例を示す説明図である。図１７は、図８の実行環境脆弱性関係情報１１８のセル値に図２のユーザ環境脆弱性テーブル１１２の脅威指標２０３を重み付けした実行環境脆弱性関係情報１１８である。これにより、ステップＳ１５０２において、実行環境構成決定プログラム１０９は、脅威に関する指標が一定水準より高い脆弱性と脅威指標２０３とを優先して、マルウェア解析環境１２４上の実行端末１２３を再構築する際のソフトウェア構成を決定することができる。なお、この場合、ステップＳ１５０２では、要求Ｂのような目的関数が適用され、実行環境脆弱性関係情報１１８の行列Ｐは行列Ｑのようになる。
【０１５２】
なお、本実施例では、ユーザ組織からのステップＳ１０００で設定された制約条件として、マルウェア解析環境１２４の実行端末１２３の構築にかかるソフトウェアの費用に関する制約条件を想定した。この他にも、たとえば、実行端末１２３にそれぞれかかるハードウェア導入費用や、実行端末１２３の接続される電源の個数、実行端末１２３を格納する際のラックのデータ量や床面積、実行端末１２３の重量に関する他の制約条件を想定してもよい。これらを想定して制約条件が定められた場合は、実行環境候補情報作成処理（ステップＳ１２０１）において、実行環境構成決定プログラム１０９は、実行環境候補情報１１７における実行端末候補７００のそれぞれに対し、ハードウェア費用や、電源の個数や、床面積等を関連付ければよい。具体的には、要求Ａ，Ｂの制約条件の式に当該他の制約条件を適用すればよい。
【０１５３】
以上説明したように、本実施例にかかる実行環境構築装置１０１は、制約条件下で実行環境候補について脆弱性の数を最大化することにより、実行環境候補群の中から第２端末群で構築する特定の実行環境候補を選定する。これにより、制約条件に遵守し、かつ、脆弱性をより多く含むマルウェアの実行環境を容易に生成することができる。したがって、ユーザ組織ごとの固有の要件に基づき、ユーザ組織のマルウェアの実行環境を、第２端末（実行端末１２３）上に構築、または再構築することができる。
【０１５４】
また、実行環境構築装置１０１は、各実行環境候補内のソフトウェアに脆弱性を対応付けた実行環境脆弱性関係情報を自動作成する。これにより、実行環境候補と脆弱性との対応関係を自動的に網羅することができる。またこれにより、特定の実行環境候補の選定の効率化を図ることができる。
【０１５５】
また、実行環境構築装置１０１は、同一端末内で実行可能なソフトウェアどうしを対応付けて実行環境候補情報を作成する。これにより、第２端末（実行端末１２３）上で実行できない無駄な実行環境候補の作成を抑制することができる。
【０１５６】
また、実行環境構築装置１０１は、ソフトウェア特徴情報に基づいて、実行環境候補群を絞り込んで実行環境候補情報を作成する。これにより、特徴を考慮した実行環境候補を作成することができる。
【０１５７】
たとえば、実行環境構築装置１０１は、実行環境候補を構成するソフトウェアのデータ量の総和を算出し、当該総和が所定データ量を超過した実行環境候補を削除する。これにより、第２端末（実行端末１２３）にインストールできない無駄な実行環境候補の作成を抑制することができる。
【０１５８】
また、たとえば、実行環境構築装置１０１は、実行環境候補群のうち同一カテゴリのソフトウェアを有する実行環境候補を削除して実行環境候補情報を作成する。これにより、第２端末（実行端末１２３）内でカテゴリ重複による無駄なソフトウェアのインストールを抑制することができる。
【０１５９】
また、実行環境構築装置１０１は、ソフトウェアの組み合わせが完全一致する前記実行環境候補が複数存在する場合、ソフトウェアの組み合わせが完全一致する複数の実行環境候補のうち１つのみ残して残余を削除する。これにより、無駄な第２実行環境（マルウェア解析環境１２４）の構築を抑制することができる。
【０１６０】
また、実行環境構築装置１０１は、実行環境候補間で包含関係がある場合、包含される実行環境候補を削除する。これにより、無駄な第２実行環境（マルウェア解析環境１２４）の構築を抑制することができる。
【０１６１】
また、実行環境構築装置１０１は、第１実行環境（ユーザ環境１２２）に含まれる脆弱性の総数に対する、第１実行環境（ユーザ環境１２２）および第２実行環境（マルウェア解析環境１２４）に共通して含まれる脆弱性の総数の割合を算出し、当該割合に基づいて、特定の実行環境候補を選定する。これにより、第２実行環境（マルウェア解析環境１２４）の構築の必要性を自動で判定することができ、実行環境構築装置１０１を効率的に運用することができる。
【０１６２】
また、実行環境構築装置１０１は、第１実行環境（ユーザ環境１２２）に含まれる脆弱性を脅威指標に対応付けて、上記割合を算出する。これにより、脅威に関する指標が一定水準より高い脆弱性と脅威指標とを優先して、第２端末（実行端末１２３）を再構築する際のソフトウェア構成を決定することができる。
【０１６３】
また、実行環境構築装置１０１は、第１端末群のうち脆弱性を含むソフトウェアを有する第１端末の割合を示す第１端末群内占有率（ユーザ環境内占有率２０２）を脆弱性に対応付けて、上記割合を算出する。これにより、ユーザ環境１２２上の多くのクライアント端末１２０に存在する脆弱性と第１端末群内占有率（ユーザ環境内占有率２０２）とを優先して、第２端末（実行端末１２３）を再構築する際のソフトウェア構成を決定することができる。
【０１６４】
また、実行環境構築装置１０１は、制約条件下で実行環境候補について占有率の総和を最大化することにより、実行環境候補群の中から第２端末群で構築する特定の実行環境候補を選定する。これにより、制約条件に遵守し、かつ、ソフトウェアがより多くインストールされるマルウェアの実行環境を容易に生成することができる。したがって、ユーザ組織ごとの固有の要件に基づき、ユーザ組織のマルウェアの実行環境を、第２端末（実行端末１２３）上に構築、または再構築することができる。
【０１６５】
また、実行環境構築装置１０１は、各実行環境候補内のソフトウェアに占有率を対応付けた実行環境脆弱性関係情報を自動作成する。これにより、実行環境候補と占有率との対応関係を自動的に網羅することができる。またこれにより、特定の実行環境候補の選定の効率化を図ることができる。
【０１６６】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
【０１６７】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【０１６８】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、又は、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カード、ＳＤカード、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）の記録媒体に格納することができる。
【０１６９】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【０１７０】
１０１  実行環境構築装置
１０３  プロセッサ
１０８  環境構築判定プログラム
１０９  実行環境構成決定プログラム
１１０  判定結果表示プログラム
１１１  実行端末実装プログラム
１１２  ユーザ環境脆弱性テーブル
１１３  解析環境脆弱性テーブル
１１４  ソフトウェア脆弱性関係情報
１１５  ソフトウェア特徴情報テーブル
１１６  ソフトウェア関係テーブル
１１７  実行環境候補情報
１１８  実行環境脆弱性関係情報
１１９  実行環境占有率関係情報
１２０  クライアント端末
１２２  ユーザ環境
１２３  実行端末
１２４  マルウェア解析環境
【図１】
2018045329.tif 000009
【図２】
2018045329.tif 000010
【図３】
2018045329.tif 000011
【図４】
2018045329.tif 000012
【図５】
2018045329.tif 000013
【図６】
2018045329.tif 000014
【図７】
2018045329.tif 000015
【図８】
2018045329.tif 000016
【図９】
2018045329.tif 000017
【図１０】
2018045329.tif 000018
【図１１】
2018045329.tif 000019
【図１２】
2018045329.tif 000020
【図１３】
2018045329.tif 000021
【図１４】
2018045329.tif 000022
【図１５】
2018045329.tif 000023
【図１６】
2018045329.tif 000024
【図１７】
2018045329.tif 000025