図面 (/)

技術 計算機、選定方法、および選定プログラム

出願人 株式会社日立アドバンストシステムズ
発明者 徳山喜一重本倫宏磯部義明仲小路博史
出願日 2016年9月12日 (4年3ヶ月経過) 出願番号 2016-178052
公開日 2018年3月22日 (2年8ヶ月経過) 公開番号 2018-045329
状態 特許登録済
技術分野 ストアードプログラムにおける機密保護
主要キーワード 特徴情報テーブル 構築環境 数理計画問題 候補インデックス 近似アルゴリズム 推移律 導入費用 各実行環境
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2018年3月22日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (18)

課題

制約条件遵守したマルウェア実行環境を容易に生成すること。

解決手段

計算機は、同一端末内で実行可能な1以上のソフトウェアの組み合わせである実行環境候補群各実行環境候補内の前記ソフトウェアに、当該ソフトウェアに含まれる脆弱性対応付けた実行環境脆弱性関係情報を記憶する記憶デバイスを有し、プロセッサは、前記ソフトウェアの組み合わせである第1実行環境を第1端末群で実行する場合に要求される制約条件を設定する設定処理と、前記実行環境脆弱性関係情報に基づいて、前記設定処理によって設定された前記制約条件下で前記実行環境候補について前記脆弱性の数を最大化することにより、前記実行環境候補群の中から第2端末群で実行される特定の第1実行環境候補を選定する第1選定処理と、前記第1選定処理によって選定された前記特定の第1実行環境候補を出力する出力処理と、を実行することを特徴とする。

概要

背景

近年、企業のシステムにおける脆弱性を狙い、システムへ侵入機密情報の窃取などを行う標的型攻撃件数は、増加の一途をたどっている。標的型攻撃は、マルウェアと呼ばれるコンピュータウイルスをメールへ添付し、標的の企業へ送りつけることで開始される。これに対し、マルウェアの検知や解析を目的としたマルウェア解析システムの導入が進んでいる。

マルウェア解析は、ユーザPC上で発見されたマルウェアの可能性がある実行ファイル擬陽性ファイル)を、マルウェアを実行するために用意した端末の上で実行し、その挙動を観察することで行われるが、前記端末の上でマルウェアにユーザPC上と同等の振る舞いをさせて、ユーザPCにおける脅威を特定するためには、前記端末の上に、ユーザPCと同等の実行環境を用意する必要がある。

概要

制約条件遵守したマルウェアの実行環境を容易に生成すること。計算機は、同一端末内で実行可能な1以上のソフトウェアの組み合わせである実行環境候補群各実行環境候補内の前記ソフトウェアに、当該ソフトウェアに含まれる脆弱性を対応付けた実行環境脆弱性関係情報を記憶する記憶デバイスを有し、プロセッサは、前記ソフトウェアの組み合わせである第1実行環境を第1端末群で実行する場合に要求される制約条件を設定する設定処理と、前記実行環境脆弱性関係情報に基づいて、前記設定処理によって設定された前記制約条件下で前記実行環境候補について前記脆弱性の数を最大化することにより、前記実行環境候補群の中から第2端末群で実行される特定の第1実行環境候補を選定する第1選定処理と、前記第1選定処理によって選定された前記特定の第1実行環境候補を出力する出力処理と、を実行することを特徴とする。

目的

本発明は、制約条件に遵守したマルウェアの実行環境を容易に生成することを目的とする

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する計算機であって、前記記憶デバイスは、同一端末内で実行可能な1以上のソフトウェアの組み合わせである実行環境候補群各実行環境候補内の前記ソフトウェアに、当該ソフトウェアに含まれる脆弱性対応付けた実行環境脆弱性関係情報を記憶しており、前記プロセッサは、前記ソフトウェアの組み合わせである第1実行環境を第1端末群で実行する場合に要求される制約条件を設定する設定処理と、前記実行環境脆弱性関係情報に基づいて、前記設定処理によって設定された前記制約条件下で前記実行環境候補について前記脆弱性の数を最大化することにより、前記実行環境候補群の中から第2端末群で実行される特定の実行環境候補を選定する第1選定処理と、前記第1選定処理によって選定された前記特定の第1実行環境候補を出力する出力処理と、を実行することを特徴とする計算機。

請求項2

請求項1に記載の計算機であって、前記記憶デバイスは、同一端末内で実行可能な1以上のである実行環境候補群を記憶する実行環境候補情報と、前記ソフトウェアに含まれる脆弱性を規定したソフトウェア脆弱性関係情報と、を記憶しており、前記プロセッサは、前記実行環境候補情報内の前記実行環境候補群の各実行環境候補内の前記ソフトウェアに前記ソフトウェア脆弱性関係情報内の前記脆弱性を対応付けることにより、実行環境脆弱性関係情報を作成して前記記憶デバイスに格納する第1作成処理を実行し、前記第1選定処理では、前記プロセッサは、前記第1作成処理によって作成された前記実行環境脆弱性関係情報に基づいて、前記制約条件下で前記実行環境候補について前記脆弱性の数を最大化することにより、前記実行環境候補群の中から前記特定の第1実行環境候補を選定することを特徴とする計算機。

請求項3

請求項2に記載の計算機であって、前記記憶デバイスは、同一端末内で実行可能なソフトウェアどうしを対応付けたソフトウェア関係情報を記憶しており、前記プロセッサは、前記ソフトウェア関係情報を参照して、前記実行環境候補情報を作成して、前記記憶デバイスに格納する第2作成処理を実行することを特徴とする計算機。

請求項4

請求項3に記載の計算機であって、前記記憶デバイスは、前記ソフトウェアの特徴情報を記憶するソフトウェア特徴情報を記憶しており、前記第2作成処理では、前記プロセッサは、前記ソフトウェア特徴情報に基づいて、前記実行環境候補群を絞り込むことにより、前記実行環境候補情報を作成して、前記記憶デバイスに格納することを特徴とする計算機。

請求項5

請求項4に記載の計算機であって、前記特徴情報は、前記ソフトウェアのデータ量であり、前記第2作成処理では、前記プロセッサは、前記実行環境候補を構成する前記ソフトウェアのデータ量の総和を算出し、当該総和が所定データ量超過した実行環境候補を削除することにより、前記実行環境候補情報を作成して、前記記憶デバイスに格納することを特徴とする計算機。

請求項6

請求項4に記載の計算機であって、前記特徴情報は、前記ソフトウェアのカテゴリであり、前記第2作成処理では、前記プロセッサは、前記実行環境候補群のうち同一カテゴリの前記ソフトウェアを有する実行環境候補を削除することにより、前記実行環境候補情報を作成して、前記記憶デバイスに格納することを特徴とする計算機。

請求項7

請求項3に記載の計算機であって、前記第2作成処理では、前記プロセッサは、前記ソフトウェアの組み合わせが完全一致する前記実行環境候補が複数存在する場合、前記ソフトウェアの組み合わせが完全一致する複数の実行環境候補のうち1つのみ残して残余を削除することにより、前記実行環境候補情報を作成して、前記記憶デバイスに格納することを特徴とする計算機。

請求項8

請求項3に記載の計算機であって、前記第2作成処理では、前記プロセッサは、前記実行環境候補群のうちある実行環境候補を構成する前記ソフトウェアの組み合わせが他の実行環境候補を構成する前記ソフトウェアの組み合わせを包含する場合、前記他の実行環境候補を削除することにより、前記実行環境候補情報を作成して、前記記憶デバイスに格納することを特徴とする計算機。

請求項9

請求項1に記載の計算機であって、前記記憶デバイスは、前記第1実行環境を構成する前記ソフトウェアの組み合わせの各ソフトウェアに含まれる脆弱性を規定する第1環境脆弱性情報と、前記第2端末群で実行済みの第2実行環境を構成する前記ソフトウェアに含まれる脆弱性を規定する第2環境脆弱性情報と、を記憶しており、前記プロセッサは、前記第1環境脆弱性情報および前記第2環境脆弱性情報を参照して、前記第1環境脆弱性情報に含まれる脆弱性の総数に対する、前記第1環境脆弱性情報および前記第2環境脆弱性情報に共通して含まれる脆弱性の総数の割合を算出し、当該割合に基づいて、前記第1選定処理を実行するか否かを判定する判定処理を実行することを特徴とする計算機。

請求項10

請求項9に記載の計算機であって、前記第1環境脆弱性情報は、前記脆弱性の脅威を示す脅威指標を前記脆弱性に対応付けて記憶しており、前記判定処理では、前記プロセッサは、さらに、前記脅威指標に基づいて前記割合を算出することを特徴とする計算機。

請求項11

請求項9に記載の計算機であって、前記第1環境脆弱性情報は、前記第1端末群のうち前記脆弱性を含むソフトウェアを有する第1端末の割合を示す第1端末群内占有率を前記脆弱性に対応付けて記憶しており、前記判定処理では、前記プロセッサは、さらに、前記第1端末群内占有率に基づいて前記割合を算出することを特徴とする計算機。

請求項12

請求項1に記載の計算機であって、前記記憶デバイスは、同一端末内で実行可能な1以上の前記ソフトウェアの組み合わせである実行環境候補群の各実行環境候補内の前記ソフトウェアについて、前記第1実行環境内の前記ソフトウェアの組み合わせにおける前記ソフトウェアの種類数に対する割合である占有率を対応付けた実行環境占有率関係情報を記憶しており、前記プロセッサは、前記実行環境占有率関係情報に基づいて、前記設定処理によって設定された前記制約条件下で前記実行環境候補について前記占有率の総和を最大化することにより、前記実行環境候補群の中から第2端末群で実行される特定の第2実行環境候補を選定する第2選定処理を実行し、前記出力処理では、前記プロセッサは、前記第2選定処理によって選定された前記特定の第2実行環境候補を出力することを特徴とする計算機。

請求項13

請求項12に記載の計算機であって、前記記憶デバイスは、同一端末内で実行可能な1以上のである実行環境候補群を記憶する実行環境候補情報と、前記ソフトウェアに当該ソフトウェアの特徴情報として前記占有率を対応付けたソフトウェア特徴情報と、を記憶しており、前記プロセッサは、前記実行環境候補情報内の前記実行環境候補群の各実行環境候補内の前記ソフトウェアに前記ソフトウェア特徴情報内の前記占有率を対応付けることにより、実行環境占有率関係情報を作成して前記記憶デバイスに格納する作成処理を実行し、前記第2選定処理では、前記プロセッサは、前記作成処理によって作成された前記実行環境占有率関係情報に基づいて、前記制約条件下で前記実行環境候補について前記占有率の総和を最大化することにより、前記実行環境候補群の中から前記特定の第2実行環境候補を選定することを特徴とする計算機。

請求項14

プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する計算機による選定方法であって、前記記憶デバイスは、同一端末内で実行可能な1以上のソフトウェアの組み合わせである実行環境候補群の各実行環境候補内の前記ソフトウェアに、当該ソフトウェアに含まれる脆弱性を対応付けた実行環境脆弱性関係情報を記憶しており、前記プロセッサは、前記ソフトウェアの組み合わせである第1実行環境を第1端末群で実行する場合に要求される制約条件を設定する設定処理と、前記実行環境脆弱性関係情報に基づいて、前記設定処理によって設定された前記制約条件下で前記実行環境候補について前記脆弱性の数を最大化することにより、前記実行環境候補群の中から第2端末群で実行される特定の実行環境候補を選定する選定処理と、前記選定処理によって選定された前記特定の実行環境候補を出力する出力処理と、を実行することを特徴とする選定方法。

請求項15

記憶デバイスにアクセス可能なプロセッサに実行させる選定プログラムであって、前記記憶デバイスは、同一端末内で実行可能な1以上のソフトウェアの組み合わせである実行環境候補群の各実行環境候補内の前記ソフトウェアに、当該ソフトウェアに含まれる脆弱性を対応付けた実行環境脆弱性関係情報を記憶しており、前記プロセッサに、前記ソフトウェアの組み合わせである第1実行環境を第1端末群で実行する場合に要求される制約条件を設定する設定処理と、前記実行環境脆弱性関係情報に基づいて、前記設定処理によって設定された前記制約条件下で前記実行環境候補について前記脆弱性の数を最大化することにより、前記実行環境候補群の中から第2端末群で実行される特定の実行環境候補を選定する選定処理と、前記選定処理によって選定された前記特定の実行環境候補を出力する出力処理と、を実行させることを特徴とする選定プログラム。

技術分野

0001

本発明は、計算機選定方法、および選定プログラムに関する。

背景技術

0002

近年、企業のシステムにおける脆弱性を狙い、システムへ侵入機密情報の窃取などを行う標的型攻撃件数は、増加の一途をたどっている。標的型攻撃は、マルウェアと呼ばれるコンピュータウイルスをメールへ添付し、標的の企業へ送りつけることで開始される。これに対し、マルウェアの検知や解析を目的としたマルウェア解析システムの導入が進んでいる。

0003

マルウェア解析は、ユーザPC上で発見されたマルウェアの可能性がある実行ファイル擬陽性ファイル)を、マルウェアを実行するために用意した端末の上で実行し、その挙動を観察することで行われるが、前記端末の上でマルウェアにユーザPC上と同等の振る舞いをさせて、ユーザPCにおける脅威を特定するためには、前記端末の上に、ユーザPCと同等の実行環境を用意する必要がある。

先行技術

0004

特開2012−221170号公報

発明が解決しようとする課題

0005

特許文献1の技術は、あるユーザ組織のマルウェアの実行環境として、ユーザPCと同等の実行環境を備えた実行端末を複数用意することで、ユーザ組織のあるユーザ端末でマルウェアの感染が発覚した際に、迅速にマルウェア解析を行うことを可能としている。しかし、ユーザ組織の規模に応じて、ユーザPCの台数と、ユーザPCにインストールされるソフトウェアの種類は増加するため、本技術の適用においては、必要となるマルウェアの実行端末の個数は際限なく増加する。このため、本技術において用意することが求められる実行端末の、個数や、端末の用意に係る予算について、ユーザ組織ごとの要求を反映させることが困難である。

0006

本発明は、制約条件遵守したマルウェアの実行環境を容易に生成することを目的とする。

課題を解決するための手段

0007

本願において開示される発明の一側面となる計算機は、選定プログラムを実行するプロセッサと、前記選定プログラムを記憶する記憶デバイスと、を有する計算機であって、前記記憶デバイスは、同一端末内で実行可能な1以上のソフトウェアの組み合わせである実行環境候補群各実行環境候補内の前記ソフトウェアに、当該ソフトウェアに含まれる脆弱性を対応付けた実行環境脆弱性関係情報を記憶しており、前記プロセッサは、前記ソフトウェアの組み合わせである第1実行環境を第1端末群で実行する場合に要求される制約条件を設定する設定処理と、前記実行環境脆弱性関係情報に基づいて、前記設定処理によって設定された前記制約条件下で前記実行環境候補について前記脆弱性の数を最大化することにより、前記実行環境候補群の中から第2端末群で実行される特定の第1実行環境候補を選定する第1選定処理と、前記第1選定処理によって選定された前記特定の第1実行環境候補を出力する出力処理と、を実行することを特徴とする。

発明の効果

0008

本発明の代表的な実施の形態によれば、制約条件に遵守したマルウェアの実行環境を容易に生成することができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。

図面の簡単な説明

0009

図1は、実施例にかかる実行環境構築システムシステム構成例を示すブロック図である。
図2は、ユーザ環境脆弱性テーブルの記憶内容例を示す説明図である。
図3は、解析環境脆弱性テーブルの一例を示す図である。
図4は、ソフトウェア脆弱性関係情報の記憶内容例を示す説明図である。
図5は、ソフトウェア特徴情報テーブルの記憶内容例を示す説明図である。
図6は、ソフトウェア関係テーブルの記憶内容例を示す説明図である。
図7は、実行環境候補情報の一例を示す説明図である。
図8は、実行環境脆弱性関係情報の記憶内容例を示す説明図である。
図9は、実行環境占有率関係情報の記憶内容例を示す説明図である。
図10は、実行環境構築装置による実行環境構築処理手順例を示すフローチャートである。
図11は、環境構築判定プログラムによる環境構築判定処理(ステップS1003)の詳細な処理手順例を示すフローチャートである。
図12は、実行環境構成決定プログラムによる実行環境構成決定処理(ステップS1004)の詳細な処理手順例を示すフローチャートである。
図13は、実行環境構成決定プログラムによる実行環境候補情報作成処理(ステップS1201)の詳細な処理手順例を示すフローチャートである。
図14は、実行環境候補情報作成処理(ステップS1201)での実行環境候補情報の作成過程を示す説明図である。
図15は、実行環境構成決定プログラムによる実行環境選定処理(ステップS1202)の詳細な処理手順例を示すフローチャートである。
図16は、判定結果表示プログラムによる出力画面例を示す説明図である。
図17は、実行環境脆弱性関係情報の他の記憶内容例を示す説明図である。

実施例

0010

本実施例では、ユーザからの制約条件として、たとえば、マルウェアを解析する端末の端末環境の構築に係るソフトウェアに関する費用、またはマルウェアを解析する端末の個数に関して制限がある場合を例に挙げて説明する。また、以後は、マルウェアを解析する端末の端末環境と、ユーザ組織に存在する端末の端末環境とにおいて、端末環境として、特に端末のソフトウェア構成に着目する。

0011

また、以下では「プログラム」を主語動作主体)として本発明の実施形態における各処理について説明を行う場合があるが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート通信制御装置)を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。プログラムの一部または全ては専用ハードウェアで実現してもよく、また、モジュール化されていてもよい。各種プログラムはプログラム配布サーバ記憶メディアによって各計算機にインストールされてもよい。

0012

<システム構成例>
図1は、実施例にかかる実行環境構築システムのシステム構成例を示すブロック図である。実行環境構築システムは、ユーザ環境と、マルウェア解析環境と、実行環境構築装置と、を有する。ユーザ環境はネットワーク121aを介して実行環境構築装置と通信可能である。ユーザ環境は、ユーザ組織に存在する1以上のクライアント端末集合である。クライアント端末120a、120bは、ユーザが使用するコンピュータである。パーソナルコンピュータワークステーション、その他のコンピュータにて実現される。なお、図1では、クライアント端末120a、120bを示したが、これらを区別する必要がない場合は、クライアント端末120と称することもある。なお、各クライアント端末120には、オペレーティングシステム文書編集ツールなどの複数のソフトウェアがインストールされていることを想定する。また、図1には、2台のクライアント端末120しか示していないが、3台以上のクライアント端末120を設けてもよい。

0013

マルウェア解析環境は、ネットワーク121bを介して実行環境構築装置と通信可能である。マルウェア解析環境は、マルウェアを解析する1以上の実行端末の集合である。実行端末123a、123bは、マルウェアを実行する際に用いるコンピュータである。パーソナルコンピュータやワークステーション、その他のコンピュータにて実現される。なお、図1では、実行端末123a,123bを示したが、これらを区別する必要がない場合は、実行端末123と称することもある。なお、各実行端末123には、クライアント端末120と同様に、オペレーティングシステムや文書編集ツールなどの複数のソフトウェアがインストールされていることを想定する。また、図1には、2台の実行端末123しか示していないが、3台以上の実行端末123を設けてもよい。

0014

実行環境構築装置101は、ユーザ環境とマルウェア環境とを互いに比較し、比較の結果一定以上の差異が見られた場合に、マルウェア解析環境を、ユーザから要求された一定の制約条件の下で再構成する。

0015

実行環境構築装置101は、プロセッサ103と、プロセッサ103が処理を実行するために必要なデータを格納するためのメインメモリ104と、大量のデータを記憶する容量を持つハードディスクフラッシュメモリなどの記憶装置105と、他装置と通信を行なうためのIF(InterFace)102a,102bと、キーボードディスプレイなどの入出力を行うための入出力装置106と、これらの各装置を接続する通信路107と、を有する。実行環境構築装置101は、例えば、パーソナルコンピュータやワークステーション、その他のコンピュータにより実現される。なお、通信路107は、例えば、バスケーブルといった情報伝達媒体である。

0016

プロセッサ103は、メインメモリ104に格納された環境構築判定プログラム108を実行することで、マルウェア解析環境124上の実行端末123の、ソフトウェア構成を再構築する必要性を判定する。プロセッサ103は、メインメモリ104に格納された実行環境構成決定プログラム109を実行することで、実行端末123の上で構築可能なソフトウェア構成を決定する。プロセッサ103は、メインメモリ104に格納された判定結果表示プログラム110を実行することで、環境構築判定プログラム108の出力結果および実行環境構成決定プログラム109の出力結果をそれぞれ表示する。プロセッサ103は、メインメモリ104に格納された実行端末実装プログラム111を実行することで、実行環境構成決定プログラム109の出力結果に基づき、マルウェア解析環境124の中に、実行端末123のソフトウェア構成を再構築する。

0017

メインメモリ104は、環境構築判定プログラム108と、実行環境構成決定プログラム109と、判定結果表示プログラム110と、実行端末実装プログラム111と、を記憶する記憶デバイスである。環境構築判定プログラム108は、記憶装置105内のユーザ環境脆弱性テーブル112と解析環境脆弱性テーブル113とを参照し、実行端末123のソフトウェア構成を再構築する必要性を判定する。

0018

実行環境構成決定プログラム109は、記憶装置105内のユーザ環境脆弱性テーブル112とソフトウェア脆弱性関係情報114とソフトウェア特徴情報テーブル115とソフトウェア関係テーブル116とを参照する。そして、実行環境構成決定プログラム109は、記憶装置105上で実行環境候補情報117と、実行環境脆弱性関係情報118と、実行環境占有率関係情報119とを作成する。そして、実行環境構成決定プログラム109は、作成した情報(117〜119)を参照することで、マルウェア解析環境124で構築する実行端末123のソフトウェア構成を決定する。なお、実行環境構成決定プログラム109は、ソフトウェア構成としては、実行環境脆弱性関係情報118を用いた結果と、実行環境占有率関係情報119を用いた結果との二通りを、候補として出力する。

0019

判定結果表示プログラム110は、実行環境構成決定プログラム109の出力結果を参照し、マルウェア解析環境124上の実行端末123がソフトウェア構成を再構築する必要がある旨を入出力装置106に表示する。判定結果表示プログラム110は、実行環境構成決定プログラム109の出力結果を参照し、再構築後の実行端末123のソフトウェア構成を、入出力装置106に二通り表示する。これにより、いずれか一方の出力結果がユーザに選択可能である。

0020

実行端末実装プログラム111は、判定結果表示プログラム110により入出力装置106に表示されたメッセージに対し、ユーザが選択した出力結果を入出力装置106から参照し、マルウェア解析環境124の実行端末123の上に、ソフトウェア構成を再構築する。

0021

記憶装置105には、マルウェア解析環境124上の実行端末123のソフトウェア構成を再構築する必要性の有無の判定に用いる記録データが記憶される。また、記憶装置105には、再構築の必要が生じた際、マルウェア解析環境124上に再構築する実行端末123の、ソフトウェア構成の候補情報を出力するために用いる記録データが記憶される。また、記憶装置105には、候補情報を格納する記録データが記憶される。

0022

具体的には、記憶装置105は、ユーザ環境脆弱性テーブル112と、解析環境脆弱性テーブル113と、ソフトウェア脆弱性関係情報114と、ソフトウェア特徴情報テーブル115と、ソフトウェア関係テーブル116と、実行環境候補情報117と、実行環境脆弱性関係情報118と、実行環境占有率関係情報119と、を記憶する記憶デバイスである。

0023

ユーザ環境脆弱性テーブル112は、ユーザ環境122のクライアント端末120に存在する脆弱性を記録する。解析環境脆弱性テーブル113は、マルウェア解析環境124の実行端末123に存在する脆弱性を記録する。ソフトウェア脆弱性関係情報114は、ユーザ環境脆弱性テーブル112に記録された各脆弱性に対し、該当するソフトウェアとそのバージョンの情報を記録する。ソフトウェア特徴情報テーブル115は、ソフトウェア脆弱性関係情報114に記録された各ソフトウェアとそのバージョンに付随する情報を記録する。

0024

ソフトウェア関係テーブル116は、ユーザ環境122に含まれるクライアント端末120から抽出した、同一の端末にインストール可能な二つのソフトウェアの対応関係を記録する。実行環境候補情報117は、マルウェア解析環境124上に構築する実行端末123のソフトウェア構成の候補情報を記録する。実行環境脆弱性関係情報118は、実行環境候補情報117に記録されたソフトウェア構成の候補情報と、ソフトウェア構成に存在する脆弱性と、の対応関係を記録する。実行環境占有率関係情報119は、実行環境候補情報117に記録されたソフトウェア構成の候補情報と、各ソフトウェアがユーザ環境122上のクライアント端末120にインストールされている割合と、の対応関係を記録する。

0025

<各種テーブルの記憶内容例>
図2図9を用いて、記憶装置に記憶されているテーブル群および情報の記憶内容例について説明する。以降のテーブルの説明において、AAフィールドbbb(AAはフィールド名、bbbは符号)の値を、AAbbbと表記する場合がある。たとえば、ユーザ環境脆弱性フィールド201の値を、ユーザ環境脆弱性201と表記する。

0026

図2は、ユーザ環境脆弱性テーブル112の記憶内容例を示す説明図である。ユーザ環境脆弱性テーブル112は、ユーザ環境脆弱性フィールド201と、ユーザ環境内占有率フィールド202と、脅威指標フィールド203と、を有する。同一行における各フィールド201〜203の値の組み合わせによりエントリが構成される。なお、ユーザ環境脆弱性テーブル112は、後述するステップS1103と、ステップS1104と、ステップS1106とで、それぞれ参照される。ステップS1103と、ステップS1104と、ステップS1106とについては、図11を用いて後述する。

0027

ユーザ環境脆弱性フィールド201は、ユーザ環境脆弱性を格納する記憶領域である。ユーザ環境脆弱性201は、ユーザ環境122上のクライアント端末120のいずれかに存在する脆弱性を一意に特定する識別子である。ユーザ環境脆弱性201は、たとえば、MITRE Corporationの採番するCVE(Common Vulnerabilities and Exposures)の形式を用いて記述される。だたし、ユーザ環境脆弱性201には、その他公的な機関(たとえば、IPA(Information‐technology Promotion Agency))の採番する脆弱性のIDを用いてもよい。また、ユーザ環境122上のいずれかのクライアント端末120に存在する脆弱性は、すべてユーザ環境脆弱性テーブル112に含まれる。

0028

ユーザ環境内占有率フィールド202は、ユーザ環境内占有率を格納する記憶領域である。ユーザ環境内占有率202は、ユーザ環境脆弱性テーブル112において同一の行で対応するユーザ環境脆弱性201が、ユーザ環境122のクライアント端末120に存在する脆弱性全体に占める割合である。ユーザ環境内占有率202は、たとえば、以下のように構成される。ユーザ環境122上のすべてのクライアント端末120から、クライアント端末120に存在する脆弱性を、重複を認めて全て列挙した際、列挙した結果の個数全体に対して、対象のユーザ環境脆弱性201が占める割合が、ユーザ環境内占有率202である。なお、ユーザ環境内占有率202は、たとえば、パーセンテージを単位とした数値で表される。

0029

脅威指標フィールド203は、脅威指標を格納する記憶領域である。脅威指標203は、ユーザ環境脆弱性テーブル112において同一の行で対応するユーザ環境脆弱性201に付随して存在する脆弱性の脅威を区分けした指標値である。脅威指標203には、たとえば、CVSS(Common Vulnerability Scoring System)などを用いて表される。

0030

なお、ユーザ環境脆弱性201は、ユーザ環境122上のクライアント端末120のいずれかに存在する脆弱性の一覧を出力するシステムにより、あらかじめ格納されているものとする。また、ユーザ環境内占有率202および脅威指標203についても、あらかじめ格納されているものとする。

0031

図3は、解析環境脆弱性テーブル113の一例を示す図である。図3に示すように、解析環境脆弱性テーブル113は、解析環境脆弱性フィールド301と、ユーザ環境内占有率フィールド202と、を有する。同一行における各フィールド301,202の値の組み合わせによりエントリが構成される。なお、解析環境脆弱性テーブル113は、ステップS1106で参照される。ステップS1106については、図11を用いて後述する。

0032

解析環境脆弱性フィールド301は、解析環境脆弱性を格納する記憶領域である。解析環境脆弱性301は、マルウェア解析環境124上の実行端末123のいずれかに存在する脆弱性である。解析環境脆弱性301は、ユーザ環境脆弱性201と同様の形式で記述される。また、マルウェア解析環境124上のいずれかの実行端末123に存在する脆弱性は、すべて解析環境脆弱性テーブル113に含まれる。

0033

解析環境脆弱性テーブル113におけるユーザ環境内占有率202は、以下のように格納される。プロセッサ103は、解析環境脆弱性301に対して、ユーザ環境脆弱性テーブル112のユーザ環境脆弱性201において対応する行を探索する。対応する行が存在した場合、プロセッサ103は、対応するユーザ環境脆弱性201と同一の行に格納されているユーザ環境内占有率202を、解析環境脆弱性テーブル113におけるユーザ環境内占有率フィールド202に格納する。

0034

たとえば、解析環境脆弱性301が「CVE−TTTT−UUUU」である場合、プロセッサ103は、ユーザ環境脆弱性テーブル112において、ユーザ環境脆弱性201が「CVE−TTTT−UUUU」であるエントリを探索し、当該エントリのユーザ環境内占有率202である「0.03%」を特定する。そして、プロセッサ103は、特定したユーザ環境内占有率202の「0.03%」を、解析環境脆弱性テーブル113の解析環境脆弱性301が「CVE−TTTT−UUUU」であるエントリのユーザ環境内占有率フィールド202に格納する。

0035

なお、ユーザ環境脆弱性テーブル112の中に解析環境脆弱性301に対応する格納情報が存在しない場合は、解析環境脆弱性テーブル113におけるユーザ環境内占有率202の値は入力なしとなる。また、解析環境脆弱性301は、マルウェア解析環境124上の実行端末123のいずれかに存在する脆弱性の一覧を出力するシステムにより、あらかじめ格納されているものとする。

0036

図4は、ソフトウェア脆弱性関係情報114の記憶内容例を示す説明図である。ソフトウェア脆弱性関係情報114は、ユーザ環境脆弱性201を行とし、ソフトウェアバージョン401を列とする表データである。なお、ソフトウェア脆弱性関係情報114におけるセルに含まれる値は、対応する列の表すソフトウェアのバージョンに、対応する行の表す脆弱性が存在するかを示す。存在する場合は「1」、存在しない場合は「0」となる。なお、ソフトウェア脆弱性関係情報114は、ステップS1402で参照される。ステップS1402については、図14を用いて後述する。

0037

ソフトウェアバージョン401(401a,401b,401c,…)は、ソフトウェアの名称とそのバージョンを示す。ソフトウェアの名称とそのバージョンは、たとえば、MITRE Corporationの採番するCVE(Common Vulnerabilities and Exposures)の、定義の記述に利用される形式を用いて記述される。たとえば、列401aの場合、ソフトウェアXXのバージョンYYは、ユーザ環境脆弱性201bとして「CVE−RRRR−SSSS」を有する。なお、ソフトウェア脆弱性関係情報114は、ソフトウェアに対して存在する脆弱性を出力するシステムにより、あらかじめ格納されているものとする。

0038

図5は、ソフトウェア特徴情報テーブル115の記憶内容例を示す説明図である。図5に示すように、ソフトウェア特徴情報テーブル115は、ソフトウェアIDフィールド501と、ソフトウェアバージョンフィールド401と、費用フィールド502と、必要データ量フィールド503と、占有率フィールド504と、ソフトウェアカテゴリフィールド505と、を有する。同一行における各フィールド401,502〜505の値の組み合わせによりエントリが構成される。

0039

なお、ソフトウェア特徴情報テーブル115は、ステップS1309と、ステップS1312と、ステップS1403と、ステップS1404と、ステップS1405とで、それぞれ参照される。ステップS1309と、ステップS1302とについては、図13を用いて後述し、ステップS1403と、ステップS1404については、図14を用いて後述する。

0040

ソフトウェアIDフィールド501は、ソフトウェアIDを格納する記憶領域である。ソフトウェアID501は、ソフトウェアバージョン401を一意に特定する識別情報である。費用フィールド502は、費用を格納する記憶領域である。費用502は、あるソフトウェアのバージョンを、ユーザ環境122へ導入する際に発生する、全般の費用を示す。費用502には、たとえば、OS(Operating System)やアプリケーションライセンス費が含まれる。

0041

必要容量フィールド503は、必要データ量を格納する記憶領域である。必要データ量503は、あるソフトウェアのバージョンを、ユーザ環境122上のクライアント端末120へインストールする際に必要となるデータ量である。必要データ量503は、たとえば、キロバイトを単位とした数値で記述される。

0042

占有率フィールド504は、占有率を格納する記憶領域である。占有率504は、あるソフトウェアのバージョンが、ユーザ環境122上のクライアント端末120にインストールされている割合である。占有率504は、たとえば、ユーザ環境122上のすべてのクライアント端末120から、クライアント端末120にインストールされたソフトウェアのバージョンを、重複を認めて全て列挙した際、列挙した結果の個数全体(すなわち、ソフトウェアのバージョンの種類数)に対する、対象のソフトウェアのバージョンが占める割合である。なお、占有率504は、たとえば、パーセンテージを単位とした数値で表される。

0043

ソフトウェアカテゴリフィールド505は、ソフトウェアカテゴリを格納する記憶領域である。ソフトウェアカテゴリ505は、ソフトウェアの種類をいくつかのグループ分類するための分類情報である。ソフトウェアカテゴリ505の例として、OS、文書編集ソフト、インターネットブラウザが挙げられる。ソフトウェアカテゴリ505は、ステップS1312において、同一の分類であるソフトウェアを複数持つようなソフトウェア構成を、削除するために用いられる。

0044

なお、費用502と必要データ量503とは、該当ソフトウェアの取扱説明書に記載の内容や、各企業の公式ウェブサイトに記載されたリリース情報等から抽出される。また、占有率504は、ユーザ環境122に含まれるクライアント端末120を構成するソフトウェアを全て列挙するシステムにより抽出される。費用502〜占有率504は、あらかじめ格納されているものとする。

0045

図6は、ソフトウェア関係テーブル116の記憶内容例を示す説明図である。ソフトウェア関係テーブル116は、関係ID601と、ソフトウェアバージョンA602と、ソフトウェアバージョンB603と、を有する。同一行における各フィールド401,502〜505の値の組み合わせによりエントリが構成される。なお、ソフトウェア関係テーブル116は、ステップS1302と、ステップS1308と、ステップS1403と、ステップS1405と、ステップS1406とで、それぞれ参照される。ステップS1302と、ステップS1308とは、図13を用いて後述し、ステップS1403と、ステップS1405と、ステップS1406とは、図14を用いて後述する。

0046

関係IDフィールド601は、関係IDを格納する記憶領域である。関係ID601は、ソフトウェアバージョンA602と、ソフトウェアバージョンB603とを一意に特定する識別情報である。なお、同一の関係ID601に対応する、ソフトウェアバージョンA602と、ソフトウェアバージョンB603との組み合わせは、同一の端末にインストール可能なソフトウェアのバージョンの組み合わせであることを示す。たとえば、関係ID601が「D1」のエントリでは、ソフトウェアバージョンA602が「ソフトウェアXXのバージョンYY」であり、ソフトウェアバージョンB603が「ソフトウェアPPのバージョンQQ」である。したがって、「ソフトウェアXXのバージョンYY」および「ソフトウェアPPのバージョンQQ」は、同一端末にインストール可能である。

0047

ソフトウェアバージョンAフィールド602は、ソフトウェアバージョンAの識別情報を格納する記憶領域である。ソフトウェアバージョンAの識別情報(以下、単に、「ソフトウェアバージョンA」)602は、ソフトウェアバージョン401と同様に、ソフトウェアの名称とそのバージョンを示す。なお、ソフトウェアバージョンA602で特定されるソフトウェアのバージョンは、関係ID601により対応するソフトウェアバージョンB603で特定されるソフトウェアのバージョンに対し、リリース時期が早いものとする。さらに、ソフトウェアバージョンA602で特定されるソフトウェアのバージョンは、リリース時期に関して昇順で格納されるものとする。

0048

ソフトウェアバージョンBフィールド603は、ソフトウェアバージョンBの識別情報を格納する記憶領域である。ソフトウェアバージョンBの識別情報(以下、単に、「ソフトウェアバージョンB」)603は、ソフトウェアバージョン401と同様に、ソフトウェアの名称とそのバージョンを示す。なお、ソフトウェアバージョンB603で特定されるソフトウェアのバージョンは、関係ID601により対応するソフトウェアバージョンA602で特定されるソフトウェアのバージョンに対し、リリース時期が遅いものとする。さらに、ソフトウェアバージョンB603で特定されるソフトウェアのバージョンは、リリース時期に関して昇順で、格納されるものとする。

0049

ソフトウェア関係テーブル116は、以下の方式であらかじめ構成されていることを想定する。たとえば、ユーザ環境122に存在するクライアント端末120のソフトウェア構成から、同一の端末にインストールされた、任意の二つのソフトウェアの組み合わせが、同一エントリの行にて対応する、ソフトウェアバージョンAフィールド602とソフトウェアバージョンBフィールド603とに格納される。この場合、前リリース時期が古い方のソフトウェアバージョンが、ソフトウェアバージョンAフィールド602に格納される。

0050

また、プロセッサ103は、異なる二つのエントリから、推移律により対応すると分かった二つのソフトウェアの組み合わせについても、ソフトウェア関係テーブル116の新たな行に追記してもよい。たとえば、ある行にてソフトウェアXとソフトウェアYがそれぞれソフトウェアバージョンAフィールド602とソフトウェアバージョンBフィールド603とに格納されており、かつ、別のエントリにてソフトウェアXとソフトウェアZがそれぞれソフトウェアバージョンAフィールド602とソフトウェアバージョンBフィールド603とに格納されているものとする。

0051

この場合、プロセッサ103は、ソフトウェアYとソフトウェアZとを、新規エントリのソフトウェアバージョンAフィールド602とソフトウェアバージョンBフィールド603とに格納する。さらに、ソフトウェア関係テーブル116のソフトウェアバージョンAフィールド602を参照し、ソフトウェアバージョンA602に関して、そのリリース時期が昇順となるように、ソフトウェア関係テーブル116のソフトウェアバージョンAフィールド602とソフトウェアバージョンBフィールド603を並べ替える。

0052

なお、ソフトウェア関係テーブル116は、ソフトウェア特徴情報テーブル115におけるソフトウェアバージョン401と、ソフトウェアの取扱説明書に記載のリリース時期や、各企業の公式ウェブサイトに記載されたリリース情報等の情報から格納可能である。

0053

図7は、実行環境候補情報117の一例を示す説明図である。実行環境候補情報117は、1以上の実行環境候補を列挙した表データである。実行環境候補情報117は、1以上の実行環境候補インデックス(図では、4個の実行環境候補インデックス701〜704。総称して、実行環境候補インデックス700)を有する。実行環境候補情報117は、ステップS1202で作成され、ステップS1402で参照される。ステップS1202は、図12を用いて後述し、ステップS1402は、図14を用いて後述する。

0054

実行環境候補700は、マルウェア解析環境124上の実行端末123で構築する、ソフトウェア構成の候補情報、すなわち、ソフトウェアのバージョンを1以上含む。実行環境候補700は、ソフトウェア特徴情報テーブル115における、ソフトウェアバージョン401の中の1個のソフトウェアのバージョン、または、複数のソフトウェアのバージョンにより構成される。なお、実行環境候補701〜704は、それぞれ、一つの端末上で構築可能なソフトウェア構成である。

0055

図8は、実行環境脆弱性関係情報118の記憶内容例を示す説明図である。実行環境脆弱性関係情報118は、ユーザ環境脆弱性201を行とし、実行環境候補700を列とする表データである。なお、実行環境脆弱性関係情報118におけるセルに含まれる値は、当該セルが対応する列の実行環境候補700に対し、実行環境候補700を構成するソフトウェアに、当該セルが対応する行の脆弱性201が存在する場合は「1」、存在しない場合は「0」となる。なお、実行環境脆弱性関係情報118は、ステップS1402で作成され、ステップS1403で参照される。ステップS1402と、ステップS1403とは、図14を用いて後述する。

0056

図9は、実行環境占有率関係情報119の記憶内容例を示す説明図である。実行環境占有率関係情報119は、ソフトウェアバージョン401を行とし、実行環境候補701を列とする表データである。なお、実行環境占有率関係情報119におけるセルに含まれる値は、当該セルが対応する列の実行環境候補700に対し、実行環境候補700を構成するソフトウェアに、当該セルが対応する行のソフトウェアのバージョンが該当する場合は、当該ソフトウェアのバージョンの占有率504の数値、該当しない場合は「0」の数値となる。なお、実行環境占有率関係情報119は、ステップS1404で作成され、ステップS1405で参照される。ステップS1404と、ステップS1405とは、図14を用いて後述する。

0057

<実行環境構築処理手順例>
図10は、実行環境構築装置による実行環境構築処理手順例を示すフローチャートである。実行環境構築装置101は、まず、管理者からの操作により制約条件を設定する(ステップS1000)。設定される制約条件は、具体的には、たとえば、マルウェアを解析する実行端末123に構築されるソフトウェアに関する費用や、マルウェアを解析する実行端末123の台数である。

0058

つぎに、実行環境構築装置101は、最終実行日時から一定期間が経過したことを条件として(ステップS1001:Yes)、メインメモリ104に格納された、環境構築判定プログラム108により環境構築判定処理を実行する(ステップS1003)。初回の実行環境構築処理の場合も同様である。最終実行日時から一定期間が経過していない場合(ステップS1001:No)、最終実行日時から一定期間が経過するまで待機する。一定期間は、管理者により任意に設定される。環境構築判定処理(ステップS1003)の詳細は、図11で後述する。

0059

つぎに、実行環境構築装置101は、環境構築判定処理の判定結果が「再構築の必要あり」か否かを判定する(ステップS1003)。再構築の必要なしの場合(ステップS1003:No)、実行環境構築装置101は、実行環境構築処理を終了する。一方、再構築の必要がある場合(ステップS1003:Yes)、実行環境構築装置101は、実行環境構成決定プログラム109による実行環境構成決定処理を実行する(ステップS1004)。

0060

実行環境構成決定処理(ステップS1004)の決定結果は2種類存在し、当該決定結果は、それぞれ、マルウェア解析環境124の実行端末123に再構築するソフトウェア構成を表す。すなわち、一方の決定結果は、ユーザ環境122のクライアント端末120に存在する脆弱性を、より多く有することを目的としたソフトウェア構成である。他方の決定結果は、ユーザ環境122のクライアント端末120で実際にインストールされている個数の多いソフトウェアを、より多く有したソフトウェア構成である。実行環境構成決定処理(ステップS1004)の詳細については、図12で後述する。

0061

そして、実行環境構築装置101は、判定結果表示プログラム110を実行することで、環境構築判定処理(ステップS1003)の判定結果と、実行環境構成決定処理(ステップS1004)の決定結果とを用いて表示情報を生成し、入出力装置106に表示する(ステップS1005)。表示情報は、実行環境構成決定処理(ステップS1004)の2種類の決定結果である再構築環境候補群と、それらを選択するインタフェース(たとえば、選択ボタン)と、を含む。当該表示情報の詳細については図16で後述する。

0062

実行環境構築装置101は、入出力装置106に表示された表示情報からユーザによる再構築環境候補の選択を受け付ける(ステップS1006)と、実行端末実装プログラム111により、選択された再構築候補であるソフトウェア構成をマルウェア解析環境124上の実行端末123に構築する(ステップS1007)。

0063

<環境構築判定処理(ステップS1003)>
図11は、環境構築判定プログラム108による環境構築判定処理(ステップS1003)の詳細な処理手順例を示すフローチャートである。環境構築判定プログラム108は、マルウェア解析環境124上の実行端末123の、ソフトウェア構成を再構築する必要性の有無を判定するプログラムである。当該判定には、ユーザ環境122のクライアント端末120に存在する脆弱性の数(後述する変数Mの最終的な値)と、マルウェア解析環境124の実行端末123に存在する脆弱性の数(後述する変数Xの最終的な値)と、が用いられる。

0064

環境構築判定プログラム108は、変数Mと、変数Xを、それぞれ値を0として定義する(ステップS1101)。ここで、変数Mは、ユーザ環境122上のクライアント端末120に存在する脆弱性の総数を示す。変数Xは、ユーザ環境122上のクライアント端末120に存在し、かつ、マルウェア解析環境124上の実行端末123に存在する脆弱性の総数を示す。

0065

環境構築判定プログラム108は、ユーザ環境脆弱性テーブル112の、ユーザ環境脆弱性フィールド201の列から、新たに一行(ユーザ環境脆弱性201)を読み出る(ステップS1102)。

0066

環境構築判定プログラム108は、ステップS1102において読み出した行が、ユーザ環境脆弱性フィールド201の列の最終行であるか否かを判定する(ステップS1103)。最終行である場合(ステップS1103:Yes)、ステップS1107へ進み、最終行ではない場合(ステップS1103:No)、環境構築判定プログラム108は、変数Mの値を、M+1の値に更新する(ステップS1104)。これにより、ユーザ環境脆弱性テーブル112のユーザ環境脆弱性フィールド201の列におけるユーザ環境脆弱性201の総数が計数される。

0067

環境構築判定プログラム108は、解析環境脆弱性テーブル113の、解析環境脆弱性フィールド301の列を参照する。そして、環境構築判定プログラム108は、ステップS1102において読み出し中の行(ユーザ環境脆弱性201)が、解析環境脆弱性フィールド301の列に存在するか否かを判定する(ステップS1105)。存在しない場合(ステップS1105:No)、ステップS1102に戻る。一方、存在する場合(ステップS1105:Yes)、環境構築判定プログラム108は、変数Xの値を、X+1の値に更新する(ステップS1106)。これにより、ユーザ環境脆弱性テーブル112のユーザ環境脆弱性フィールド201の列に存在し、かつ、解析環境脆弱性テーブル113の解析環境脆弱性フィールド301の列に存在する脆弱性の総数が計数される。

0068

ステップS1107において、環境構築判定プログラム108は、変数Mの値が「0」であるか否かを判定する(ステップS1107)。「0」である場合(ステップS1107:Yes)、ステップS1109へ進み、Mの値が「0」ではない場合(ステップS1107:No)、ステップS1108へ進む。この場合、環境構築判定プログラム108は、変数Mの値と、変数Xの値とを参照し、X/Mの値を算出する。そして、環境構築判定プログラム108は、X/Mがあらかじめ定められた閾値以下であるか否かを判定する(ステップS1108)。

0069

X/Mの値が閾値以下である場合(ステップS1108:Yes)、環境構築判定プログラム108は、”必要あり”を出力する(ステップS1110)。X/Mの値が閾値を超える場合(ステップS1108:No)、環境構築判定プログラム108は、”必要なし”を出力する(ステップS1109)。これにより、環境構築判定処理(ステップS1003)が終了する。ここで、閾値は、マルウェア解析環境124上の実行端末123に存在する脆弱性と、ユーザ環境122上のクライアント端末120に存在する脆弱性との間で、共通する脆弱性の数に依存して変化する設定値である。また、閾値は、ユーザ組織ごとにあらかじめ定められる。

0070

<実行環境構成決定処理(ステップS1004)>
図12は、実行環境構成決定プログラム109による実行環境構成決定処理(ステップS1004)の詳細な処理手順例を示すフローチャートである。実行環境構成決定プログラム109は、実行環境候補情報作成処理を開始して、図7に示した実行環境候補情報117を作成する(ステップS1201)。実行環境候補情報作成処理(ステップS1201)の詳細については、図13で後述する。実行環境構成決定プログラム109は、実行環境選定処理を実行して、実行環境候補情報117から、マルウェア解析環境124上の実行端末123に構築するソフトウェア構成を出力する(ステップS1202)。なお、出力結果であるソフトウェア構成は2種類存在し、その内訳は、ステップS1004で前述した。実行環境選定処理(ステップS1202)の詳細については、図15で後述する。

0071

<実行環境候補情報作成処理(ステップS1201)>
図13は、実行環境構成決定プログラム109による実行環境候補情報作成処理(ステップS1201)の詳細な処理手順例を示すフローチャートである。図14は、実行環境候補情報作成処理(ステップS1201)での実行環境候補情報117の作成過程を示す説明図である。なお、実行環境候補情報作成処理(ステップS1201)を開始する時点で、実行環境候補情報117は、すべてのセルにおける格納情報が空である。

0072

実行環境構成決定プログラム109は、ソフトウェア関係テーブル116のソフトウェアバージョンAフィールド602の列から、新たに一行を読み出す(ステップS1302)。読み出されたソフトウェアバージョンA602を「候補データ」と称す。たとえば、実行環境構成決定プログラム109は、関係ID601が「D1」のエントリのソフトウェアバージョンA602(ソフトウェアXXバージョンYY)を候補データD1Aとして読み出す。

0073

実行環境構成決定プログラム109は、実行環境候補インデックス700を新規作成し、実行環境候補情報117の最終列に追加する。そして、実行環境構成決定プログラム109は、ステップS1301において読み出し中の候補データを、新規作成した実行環境候補インデックス700に関連付ける(ステップS1302)。具体的には、たとえば、図14の(A)において、実行環境候補インデックス701が新規作成された場合、実行環境構成決定プログラム109は、実行環境候補インデックス701の列に、候補データD1Aである「ソフトウェアXXバージョンYY」を関連付ける。

0074

実行環境構成決定プログラム109は、実行環境候補情報117の左端から、読み出していない実行環境候補インデックス700の列を読み出す(ステップS1303)。そして、実行環境構成決定プログラム109は、ステップS1303において読み出し中の実行環境候補インデックス700の列の最終行の候補データを読み出す。たとえば、図14の(A)では、実行環境候補インデックス701の列の最終行は、候補データD1Aである「ソフトウェアXXバージョンYY」である。したがって、候補データD1Aが読み出される。実行環境構成決定プログラム109は、当該読み出し中の候補データと、ステップS1301において読み出し中の候補データとを比較する(ステップS1304)。両者が一致する場合(ステップS1304:Yes)は、ステップS1305へ進み、両者が一致しない場合(ステップS1304:No)は、ステップS1306へ進む。

0075

具体的には、たとえば、ステップS1301において読み出し中の候補データが候補データD1Aである場合、図14の(A)に示したように、実行環境候補インデックス701の列の最終行は、候補データD1Aである「ソフトウェアXXバージョンYY」である。両者は、ともに候補データD1Aであるため、ステップS1305に移行する。

0076

両候補データが一致する場合(ステップS1304:Yes)、実行環境構成決定プログラム109は、ステップS1303において読み出し中の実行環境候補インデックス700の列を引数として、対応関係追記処理を実行する(ステップS1305)。

0077

対応関係追記処理では、実行環境構成決定プログラム109は、まず、実行環境候補インデックス700を新規作成し、実行環境候補情報117の最終列に追加する。実行環境構成決定プログラム109は、つぎに、読み出し中の実行環境候補インデックス700の列の候補データ群を複製し、新規作成した実行環境候補インデックス700の列に追記する。実行環境構成決定プログラム109は、最後に、ステップS1301において読み出し中の候補データに対応するソフトウェアバージョンB603をソフトウェア関係テーブル116から読み出し、新規作成した実行環境候補インデックス700の列に追記する。

0078

具体的には、たとえば、図14の(A)において、実行環境構成決定プログラム109は、まず、実行環境候補インデックス702を新規作成し、(B)に示すように、実行環境候補情報117の最終列に追加する。つぎに、読み出し中の実行環境候補インデックス701の列の候補データD1Aを複製し、(B)に示すように、新規作成した実行環境候補インデックス702の列に追記する。実行環境構成決定プログラム109は、最後に、ステップS1301において読み出し中の候補データD1Aに対応するソフトウェアバージョンB603(ソフトウェアPPバージョンQQ)を候補データD1Bとしてソフトウェア関係テーブル116から読み出し、(B)に示すように、新規作成した実行環境候補インデックス702の列に追記する。

0079

つぎに、実行環境構成決定プログラム109は、ステップS1303において読み出した実行環境候補インデックス700の列が、実行環境候補情報117の最終列(EOC)であるか否かを判定する(ステップS1307)。最終列である場合(ステップS1307:Yes)、ステップS1308へ進み、最終列ではない場合(ステップS1307:No)、ステップS1303に戻る。

0080

具体的には、たとえば、ステップS1303において読み出した実行環境候補インデックス700が実行環境候補インデックス701である場合、実行環境候補インデックス702が存在するため、実行環境候補インデックス701は最終列に該当しない。したがって、ステップS1303に戻る。この場合、実行環境構成決定プログラム109は、実行環境候補情報117の左端から、読み出していない実行環境候補インデックス702の列を読み出す(ステップS1303)。

0081

そして、実行環境構成決定プログラム109は、図14の(B)に示したように、ステップS1303において読み出し中の実行環境候補インデックス702の列の最終行の候補データD1B(ソフトウェアPPバージョンQQ)を読み出す。実行環境構成決定プログラム109は、当該読み出し中の候補データD1Bと、ステップS1301において読み出し中の候補データD1Aとを比較する(ステップS1304)。両者は不一致であるため(ステップS1304:No)、ステップS1306へ進む。実行環境候補インデックス702の列は、図14の(B)の時点で最終列となるため(ステップS1307:Yes)、ステップS1307に移行する。

0082

ステップS1307において、実行環境構成決定プログラム109は、ステップS1301において読み出した候補データが、ソフトウェア関係テーブル116におけるソフトウェアバージョンAフィールド602の列の最終行であるか否かを判定する(ステップS1307)。最終行である場合(ステップS1307:Yes)、ステップS1308へ進み、最終行ではない場合(ステップS1307:No)、ステップS1301に戻る。

0083

図14の(B)の時点では、ステップS1301において読み出した候補データは候補データD1Aであり、ソフトウェア関係テーブル116におけるソフトウェアバージョンAフィールド602の列の最終行ではない。したがって、ステップS1301に戻り、実行環境構成決定プログラム109は、ソフトウェア関係テーブル116のソフトウェアバージョンAフィールド602の列から、新たな一行として、関係ID601が「D2」のエントリのソフトウェアバージョンA602(ソフトウェアPPバージョンQQ)を候補データD2Aとして読み出す(ステップS1302)。

0084

実行環境構成決定プログラム109は、図14の(C)に示すように、実行環境候補インデックス703を新規作成し、実行環境候補インデックス703の列に、今回読み出した候補データD2Aである「ソフトウェアPPバージョンQQ」を関連付ける(ステップS1302)。

0085

実行環境構成決定プログラム109は、図14の(C)の時点で、実行環境候補情報117の左端から、読み出していない実行環境候補インデックス703の列を読み出す(ステップS1303)。そして、実行環境構成決定プログラム109は、図14の(C)において、実行環境候補インデックス703の列の最終行の候補データD2A(ソフトウェアPPバージョンQQ)を読み出す。そして、実行環境構成決定プログラム109は、当該読み出し中の候補データD2Aと、ステップS1301において読み出し中の候補データD2Aとを比較する(ステップS1304)。両者はともに候補データD2Aであるため、ステップS1305に移行する。

0086

実行環境構成決定プログラム109は、まず、実行環境候補インデックス704を新規作成し、(D)に示すように、実行環境候補情報117の最終列に追加する。つぎに、読み出し中の実行環境候補インデックス703の列の候補データD2Aを複製し、(D)に示すように、新規作成した実行環境候補インデックス704の列に追記する。なお、候補データD2Aである「ソフトウェアPPバージョンQQ」は、実行環境候補インデックス702において、「ソフトウェアXX バージョンYY」と関連付けられている。したがって、実行環境構成決定プログラム109は、推移律を利用して、「ソフトウェアXX バージョンYY」である候補データD1Aも複製してもよい。実行環境構成決定プログラム109は、最後に、ステップS1301において読み出し中の候補データD2Aに対応するソフトウェアバージョンB603(ソフトウェアZZバージョンWW)を候補データD2Bとしてソフトウェア関係テーブル116から読み出し、(D)に示すように、新規作成した実行環境候補インデックス704の列に追記する。

0087

ステップS1303において読み出した実行環境候補インデックス703は、実行環境候補インデックス704が存在するため、実行環境候補インデックス703は最終列に該当しない。したがって、ステップS1303に戻る。この場合、実行環境構成決定プログラム109は、実行環境候補情報117の左端から、読み出していない実行環境候補インデックス704の列を読み出す(ステップS1303)。

0088

そして、実行環境構成決定プログラム109は、図14の(D)に示したように、ステップS1303において読み出し中の実行環境候補インデックス704の列の最終行の候補データD2B(ソフトウェアZZバージョンWW)を読み出す。実行環境構成決定プログラム109は、当該読み出し中の候補データD2Bと、ステップS1301において読み出し中の候補データD1Aとを比較する(ステップS1304)。両者は不一致であるため(ステップS1304:No)、ステップS1306へ進む。実行環境候補インデックス704の列は、図14の(D)の時点で最終列となるため(ステップS1307:Yes)、ステップS1308に移行する。

0089

このように、ステップS1301〜S1308の処理により、ソフトウェア関係テーブル116に記録された同一の端末にインストール可能なソフトウェアの組み合わせをもとに、構成可能なソフトウェア構成を列挙することができる。

0090

ステップS1307:Yesの場合、実行環境構成決定プログラム109は、データ量超過削除処理(ステップS1308)、重複列削除処理(ステップS1309)、包含列削除処理(ステップS1310)、およびカテゴリ重複列削除処理(ステップS1311)を実行し、実行環境候補情報作成処理(ステップS1201)を終了する。これらの処理(S1308〜S1311)の実行可否は、管理者が設定可能である。

0091

データ量超過列削除処理(ステップS1308)は、所定のデータ量しきい値を超過したソフトウェア構成である実行環境候補を削除する処理である。たとえば、図14の(D)の実行環境候補4(実行環境候補インデックス704の列)の総必要データ量が所定のデータ量しきい値を超過する場合、実行環境構成決定プログラム109は、実行環境候補情報117から実行環境候補4を削除する。この場合、実行環境構成決定プログラム109は、ソフトウェア特徴情報テーブル115から各ソフトウェアのバージョンの必要データ量503を読み出して、総必要データ量を求める。なお、所定のデータ量しきい値は、マルウェア解析環境124上の実行端末123にインストール可能なソフトウェアのデータ量に関する制限値である。所定のデータ量しきい値は、ユーザ組織ごとに、あらかじめ定められる。これにより、実質的に再構成できないソフトウェア構成を除外することができ、無駄な再構成を抑制することができる。

0092

重複列削除処理(ステップS1309)は、ソフトウェア構成が完全一致する実行環境候補が複数存在する場合、当該複数の実行環境候補のうち1つのみ残して他を削除する処理である。

0093

包含列削除処理(ステップS1310)は、一方の実行環境候補のソフトウェア構成が、他方の実行環境のソフトウェア構成に包含される場合、一方の実行環境候補を削除する処理である。たとえば、実行環境候補1〜3は、実行環境候補4に包含されるため、実行環境候補1〜3は削除される。

0094

カテゴリ重複列削除処理(ステップS1311)は、カテゴリが同一なソフトウェアバージョンが複数存在する実行環境候補を削除する処理である。たとえば、実行環境候補2において、候補データD1Aである「ソフトウェアXXバージョンYY」のカテゴリが「OS」であり、候補データD1Bである「ソフトウェアPP バージョンQQ」のカテゴリも「OS」である場合、実行環境候補2は削除される。この場合、実行環境構成決定プログラム109は、ソフトウェア特徴情報テーブル115から各ソフトウェアのバージョンのソフトウェアカテゴリ505を読み出して、総必要データ量を求める。なお、対象とするカテゴリを特定のカテゴリ(たとえば、OS)に限定してもよい。

0095

<実行環境選定処理(ステップS1202)>
図15は、実行環境構成決定プログラム109による実行環境選定処理(ステップS1202)の詳細な処理手順例を示すフローチャートである。実行環境選定処理(ステップS1202)は、図7の実行環境候補情報117を用いて、図8の実行環境脆弱性関係情報118および図9の実行環境占有率関係情報119を作成し、作成した実行環境脆弱性関係情報118および実行環境占有率関係情報119を用いて、実行環境を選定する処理である。

0096

実行環境構成決定プログラム109は、まず、実行環境脆弱性関係情報118を作成する(ステップS1501)。実行環境脆弱性関係情報118の任意のセルに格納される値は、以下のように決定される。実行環境構成決定プログラム109は、図7の実行環境候補情報117の対象となる実行環境候補700について、ソフトウェア構成であるソフトウェアバージョン401を特定する。実行環境構成決定プログラム109は、ソフトウェア脆弱性関係情報114を参照し、特定した各ソフトウェアバージョン401について、ユーザ環境脆弱性201が含まれているか否かを判断する。

0097

ユーザ環境脆弱性201が含まれている場合、実行環境構成決定プログラム109は、実行環境脆弱性関係情報118の対象となる実行環境候補700の列において、そのソフトウェア構成内のソフトウェアバージョン401に含まれているユーザ環境脆弱性201のセルの値を「1」に設定する。含まれていない場合は、「0」に設定する。

0098

具体的には、たとえば、実行環境候補1には、ソフトウェア構成として「ソフトウェアXXバージョンYY」が含まれている。図4のソフトウェア脆弱性関係情報114を参照すると、ソフトウェアXX バージョンYYの列401aにおいてセルの値が「1」であるユーザ環境脆弱性201は、ユーザ環境脆弱性201bの「CVE−RRRR−SSSS」であり、他のユーザ環境脆弱性201a,201cについては、セルの値は「0」である。したがって、実行環境構成決定プログラム109は、実行環境脆弱性関係情報118の実行環境候補インデックス701の列(実行環境候補1)において、ユーザ環境脆弱性201bの「CVE−RRRR−SSSS」に対応するセルの値を「1」に設定し、それ以外のセルの値を「0」に設定する。

0099

つぎに、実行環境構成決定プログラム109は、ステップS1501で作成した実行環境脆弱性関係情報118から、ユーザ環境122上のクライアント端末120に存在する脆弱性に共通する脆弱性がより多く存在するようなソフトウェア構成の組み合わせを選択する(ステップS1502)。

0100

ここで選択されたソフトウェア構成は、マルウェア解析環境124の実行端末123の上でソフトウェア構成を構築する際に利用される。なお、ステップS1502は、マルウェア解析環境124の実行端末123の上でソフトウェア構成を構築する際に係る費用、または、用意可能な実行端末123の個数に関して、ユーザ組織の要求により制限がかけられた場合に、当該制限に対応しながら実行される。

0101

ステップS1502は、たとえば、以下の方式により実現可能である。実行環境構成決定プログラム109は、実行環境脆弱性関係情報118から、複数の列の組み合わせを選択する。この選択には、ステップS1000で設定された制約条件が適用される。

0102

たとえば、ユーザ組織によりマルウェア解析環境124に用意可能な実行端末123の個数について制約条件が与えられている場合がある。この場合、実行環境脆弱性関係情報118から列の組み合わせを選択する際に、選択する列の数が、ユーザ組織による実行端末123の個数を超えないことになる。

0103

また、ユーザ組織により費用ついて制約条件が与えられている場合がある。この場合、実行環境脆弱性関係情報118から列の組み合わせを選択する際に、当該組み合わせに含まれるソフトウェアバージョン401に対応する費用502の総和が、ユーザ組織による費用の制限を超えないことになる。

0104

以上の制約条件の下で、実行環境構成決定プログラム109は、実行環境脆弱性関係情報118から複数の列を選択する際、選択結果に対して、行ごとにMAXを、列に関してSUMを取った結果が最大となるような列の組み合わせを求める最適化問題を解けばよい。なお、最適化問題は、たとえば、数理計画問題解くための近似アルゴリズムにより、近似解を求めることができる。これにより、マルウェア解析環境124上の実行端末123に構築するソフトウェア構成として、ユーザ環境脆弱性テーブル112のユーザ環境脆弱性201に格納された脆弱性を、より多く具備するようなソフトウェア構成を導出することができる。

0105

ここで、ステップS1502の数理計画問題について具体的に説明する。ここで、ステップS1502の数理計画問題における目的関数および制約条件の組み合わせ(以下、要求A)は、以下の通りである。

0106

0107

ステップS1502は、要求Aを満たす実行環境候補jを選定する処理となる。すなわち、ステップS1502は、制約条件下で目的関数を最大化する処理となる。ここで、jは、1≦j≦Nを満たす整数である。xjは、実行環境候補jを選択した(xj=1)か、選択しない(xj=0)かを示す。実行環境候補jの選択の有無については、たとえば、制約条件により決まる。Nは、実行環境候補700の総数である。図7の場合は、N=4となる。iは、1≦i≦Mを満たす整数である。Mは、ユーザ環境脆弱性201の総数である。L1は、実行環境候補jを選択する個数のしきい値である。aijは、図8の実行環境脆弱性関係情報118を行列Pにした場合の要素である。

0108

0109

ステップS1502の数理計画問題を解いた場合の出力は、下記式Xでベクトル表現される。

0110

X={x1,x2,…,xj,…,xN}

0111

つぎに、実行環境構成決定プログラム109は、実行環境占有率関係情報作成処理を実行する(ステップS1503)。なお、実行環境占有率関係情報119の任意のセルに格納される値は以下のように決定される。実行環境構成決定プログラム109は、図7の実行環境候補情報117の対象となる実行環境候補700について、ソフトウェア構成であるソフトウェアバージョン401を特定する。実行環境構成決定プログラム109は、ソフトウェア特徴情報テーブル115を参照し、特定した各ソフトウェアバージョン401について、占有率504が含まれているか否かを判断する。占有率504が含まれている場合、実行環境構成決定プログラム109は、実行環境占有率関係情報119の対象となる実行環境候補700の列において、そのソフトウェア構成内のソフトウェアバージョン401に含まれているセルに、占有率504を設定する。含まれていない場合は、当該セルに「0」に設定する。

0112

具体的には、たとえば、実行環境候補1には、ソフトウェア構成として「ソフトウェアXXバージョンYY」が含まれている。図5のソフトウェア特徴情報テーブル115を参照すると、ソフトウェアバージョン401が「ソフトウェアXX バージョンYY」であるエントリ(ソフトウェアID501が「C1」)において、占有率504は「5.0」である。

0113

したがって、実行環境構成決定プログラム109は、実行環境占有率関係情報119の実行環境候補インデックス701の列(実行環境候補1)のうちユーザ環境脆弱性201が「ソフトウェアXXバージョンYY」であるセル(図9の左上のセル)の値を、「5.0」に設定する。また、実行環境構成決定プログラム109は、実行環境占有率関係情報119の実行環境候補1の列(実行環境候補701)のうち、ユーザ環境脆弱性201が「ソフトウェアXX バージョンYY」でないセルの値を、「0」に設定する。

0114

つぎに、実行環境構成決定プログラム109は、ステップS1503で作成した実行環境占有率関係情報119から、ユーザ環境122上のクライアント端末120で、より多くインストールされているソフトウェアから成るような、ソフトウェア構成の組み合わせを選択する(ステップS1504)。

0115

なお、ステップS1504は、ステップS1502と同様、マルウェア解析環境124の実行端末123の上でソフトウェア構成を構築する際に利用される。すなわち、ソフトウェア構成を構築する際に係る費用、または、用意可能な実行端末123の個数に関して、ユーザ組織の要求により制限がかけられた場合に、当該制限に対応しながら実行される。

0116

ステップS1504は、たとえば、ステップS1502で示した方式と同様の方式により実現可能である。実行環境構成決定プログラム109は、実行環境占有率関係情報119から、複数の列の組み合わせを選択する。この選択には、ステップS1000で設定された制約条件が適用される。

0117

たとえば、ユーザ組織によりマルウェア解析環境124に用意可能な実行端末123の個数について制約条件が与えられている場合がある。この場合、実行環境占有率関係情報119から列の組み合わせを選択する際に、選択する列の数が、ユーザ組織による実行端末123の個数を超えないことになる。

0118

また、ユーザ組織により費用ついて制約条件が与えられている場合がある。この場合、実行環境占有率関係情報119から列の組み合わせを選択する際に、当該組み合わせに含まれるソフトウェアバージョン401に対応する費用502の総和が、ユーザ組織による費用の制限を超えないことになる。

0119

以上の制約条件の下で、実行環境構成決定プログラム109は、実行環境占有率関係情報119から複数の列を選択する際、選択結果に対して、行ごとにMAX(最大値)を、列に関してSUM(総和)を取った結果が最大となるような列の組み合わせを求める最適化問題を解けばよい。なお、最適化問題は、たとえば、数理計画問題を解くための近似アルゴリズムにより、近似解を求めることができる。これにより、マルウェア解析環境124上の実行端末123に構築するソフトウェア構成として、より多くインストールされているソフトウェアから成るソフトウェア構成を導出することができる。

0120

ここで、ステップS1504の数理計画問題について具体的に説明する。ここで、ステップS1502の数理計画問題における目的関数および制約条件の組み合わせ(以下、要求B)は、以下の通りである。

0121

0122

ステップS1504は、要求Bを満たす実行環境候補jを選定する処理となる。すなわち、ステップS1504は、制約条件下で目的関数を最大化する処理となる。ここで、jは、1≦j≦Nを満たす整数である。xjは、実行環境候補jを選択した(xj=1)か、選択しない(xj=0)かを示す。実行環境候補jの選択の有無については、たとえば、制約条件により決まる。Nは、実行環境候補700の総数である。図7の場合は、N=4となる。iは、1≦i≦Mを満たす整数である。Mは、ユーザ環境脆弱性201の総数である。L2は、実行環境候補jを選択する個数のしきい値である。cijは、図9の実行環境占有率関係情報119を行列Qにした場合の要素である。cijは占有率504であり、aijまたは0となる行列Qのi行j列の要素となる。

0123

0124

ステップS1504の数理計画問題を解いた場合の出力は、下記式Xでベクトル表現される。

0125

X={x1,x2,…,xj,…,xN}

0126

つぎに、実行環境構成決定プログラム109は、ステップS1502と、ステップS1504でそれぞれ得られたソフトウェア構成の組み合わせを出力する(ステップS1505)。出力結果は、ステップS1005において、判定結果表示プログラム110により入出力装置106に表示される。

0127

<出力画面例>
図16は、判定結果表示プログラム110による出力画面例を示す説明図である。出力画面1600は、判定結果表示画面1601と、解析環境情報画面1602と、再構築事由表示画面1607と、構築環境候補表示画面1608とを表示する。

0128

判定結果表示画面1601は、環境構築判定プログラム108を実行した結果、マルウェア解析環境124上の実行端末123のソフトウェア構成を再構築する必要が生じた旨が表示される画面である。

0129

解析環境情報画面1602は、その時点でのマルウェア解析環境124上に構築された実行端末123に関する情報を表示する画面である。解析環境情報画面1602は、最終更新日1603と、クライアント環境情報1604と、解析環境情報1605と、前回結果1606とを表示する。

0130

最終更新日1603は、実行環境構築装置101により、最後に、マルウェア解析環境124上の実行端末123の、ソフトウェア構成が再構築された日時である。最終更新日1603は、たとえば、実行環境構築装置101の起動した日時をメインメモリ104に記憶しておくことで表示可能である。

0131

クライアント環境情報1604は、ユーザ環境122上のクライアント端末120に存在する脆弱性の数を表示する。クライアント環境情報1604は、たとえば、ステップS1109で参照されたMの値である。

0132

解析環境情報1605は、マルウェア解析環境124上の実行端末123に存在し、かつ、クライアント端末120にも存在する脆弱性の数が、ユーザ環境122上のクライアント端末120に存在する脆弱性の数全体に占める割合の数値を表示する。解析環境情報1605は、たとえば、ステップS1109で参照されたMの値とXの値とを用いて表示される(たとえば、X/M)。

0133

前回結果1606は、実行環境構築装置101の前回実行結果における、解析環境情報1605の情報を表示する。前回結果1606は、たとえば、メインメモリ104に保存されている実行環境構築装置101の前回実行結果である。

0134

再構築事由表示画面1607は、解析環境情報画面1602の結果を用いて、マルウェア解析環境124の実行端末123のソフトウェア構成を再構築する必要の生じた理由を説明するメッセージを表示する画面である。再構築事由表示画面1607は、たとえば、図10のステップS1103:Yesとなった場合に表示される。

0135

構築環境候補表示画面1608は、環境候補A選択画面1609と、環境候補B選択画面1510とをそれぞれ表示し、いずれか一方をユーザに選択させる旨を表示する画面である。環境候補A選択画面1609および環境候補B選択画面1510は、選択ボタンとしても機能する。

0136

環境候補A選択画面1609は、ステップS1502により出力されたソフトウェア構成を表示する画面である。なお、環境候補A選択画面1609は、ユーザによる入力を受け付けるGUI(Graphical User Interface)である。ユーザが環境候補A選択画面1609にて入力を行った場合、ステップS1502で導出されたソフトウェア構成が、判定結果表示プログラム110の出力となる。なお、当該出力結果は、ステップS1007で示した実行端末実装プログラム111による処理の入力となる。

0137

環境候補B選択画面1510は、ステップS1504により出力されたソフトウェア構成を表示する画面である。なお、環境候補B選択画面1510は、ユーザによる入力を受け付けるGUIである。ユーザが環境候補B選択画面1510にて入力を行った場合、ステップS1405で導出されたソフトウェア構成が、判定結果表示プログラム110の出力となる。なお、当該出力結果は、ステップS1008で示した実行端末実装プログラム111による処理の入力となる。

0138

本実施例による実行環境構築装置101の処理を説明する。なお、ここでは、ステップS1006において、ユーザは、環境候補A選択画面1609を押下することを想定する。すなわち、ユーザは、ユーザ環境122上のクライアント端末120に存在する脆弱性に着目し、再構築のためのソフトウェア構成を選択するものとする。

0139

実行環境構築装置101の最終起動日時から一定期間が経過した際、実行環境構築装置101が起動し、環境構築判定プログラム108が実行される。環境構築判定プログラム108では、ユーザ環境脆弱性テーブル112と、解析環境脆弱性テーブル113とを参照し、これにより、ユーザ環境122上のクライアント端末120と、マルウェア解析環境124上の実行端末123との間に、共通して存在する脆弱性の割合が出力される。

0140

当該共通する脆弱性の割合が所定の閾値を下回った場合、実行環境構成決定プログラム109が実行される。具体的には、たとえば、実行環境構成決定プログラム109は、ソフトウェア特徴情報テーブル115と、ソフトウェア関係テーブル116とを参照し、実行環境候補情報117を作成する。さらに、実行環境構成決定プログラム109は、ユーザ環境脆弱性テーブル112と、ソフトウェア脆弱性関係情報114と、ソフトウェア特徴情報テーブル115と、実行環境候補情報117とを参照する。そして、実行環境構成決定プログラム109は、マルウェア解析環境124上の実行端末123に構築するソフトウェア構成が、当該ソフトウェア構成の構築に付随する予算や、実行端末123の個数に関するユーザからの固有の要求の下で決定し、出力結果として出力する。

0141

判定結果表示プログラム110は、当該出力結果であるソフトウェア構成を、入出力装置106に表示する。ユーザは環境候補A選択画面1609のボタンを押下することで、マルウェア解析環境124上の実行端末123の上での、ソフトウェア構成の再構築を承認する。ユーザによる環境候補A選択画面1609のボタン押下により、実行環境構成決定プログラム109の出力結果が、実行端末実装プログラム111に入力される。

0142

これにより、実行端末実装プログラム111は、入力結果であるソフトウェア構成に基づき、マルウェア解析環境124上の実行端末123を、入力結果であるソフトウェア構成に基づき再構築する。再構築された実行環境は、一定期間が経過するごとに、実行環境構築装置101に含まれる環境構築判定プログラム108によって、ユーザ環境122上のクライアント端末120と、マルウェア解析環境124上の実行端末123との間に、共通して存在する脆弱性の割合(X/M)が導出され、評価される。

0143

以上により、ユーザ組織におけるマルウェア解析環境124上の実行端末123で、ソフトウェア構成の再構築が、実行端末123の個数や、ソフトウェア構成の構築に付随する費用に関するユーザ組織ごとの固有の要件に基づき、実行可能となる。

0144

なお、本実施例の一部を変更して、次のように実施してもよい。たとえば、環境構築判定処理(ステップS1002)は、脅威指標203で重み付けして判定してもよい。具体的には、たとえば、ステップS1109の式が下記式(1)に置き換わる。

0145

0146

daは、図2のユーザ環境脆弱性テーブル112のa番目のエントリの脅威指標203である。yaは、daの脅威指標203の採用(ya=1)または不採用(ya=0)を示す値である。dbは、図3の解析環境脆弱性テーブル113の解析環境脆弱性301と共通するユーザ環境脆弱性201のエントリにおける脅威指標203である。ybは、daの脅威指標203の採用(yb=1)または不採用(yb=0)を示す値である。yaおよびybは、たとえば、あらかじめステップS1000の制約条件で設定される。これにより、環境構築判定プログラム108は、マルウェア解析環境124上の実行端末123と、ユーザ環境122上のクライアント端末120とで、脅威指標203の値が高いソフトウェアが共通しているかという観点で、齟齬があるか否かを判定することができる。

0147

また、環境構築判定処理(ステップS1002)は、脅威指標203で重み付けして判定してもよい。具体的には、たとえば、ステップS1109の式が下記式(2)に置き換わる。

0148

0149

faは、図2のユーザ環境脆弱性テーブル112のa番目のエントリのユーザ環境内占有率202である。yaは、faのユーザ環境内占有率202の採用(ya=1)または不採用(ya=0)を示す値である。fbは、図3の解析環境脆弱性テーブル113の解析環境脆弱性301と共通するユーザ環境脆弱性201のエントリにおけるユーザ環境内占有率202である。ybは、faのユーザ環境内占有率202の採用(yb=1)または不採用(yb=0)を示す値である。yaおよびybは、たとえば、あらかじめステップS1000の制約条件で設定される。これにより、環境構築判定プログラム108は、マルウェア解析環境124上の実行端末123と、ユーザ環境122上のクライアント端末120とで、ユーザ環境内占有率202の値が高いソフトウェアが共通しているかという観点で、齟齬があるか否かを判定することができる。

0150

実行環境脆弱性関係情報作成処理(ステップS1501)において、実行環境脆弱性関係情報118の作成には、ユーザ環境内占有率202が用いられてもよい。これにより、ステップS1502において、実行環境構成決定プログラム109は、ユーザ環境122上の多くのクライアント端末120に存在する脆弱性とユーザ環境内占有率202とを優先して、マルウェア解析環境124上の実行端末123を再構築する際のソフトウェア構成を決定することができる。

0151

実行環境脆弱性関係情報作成処理(ステップS1501)において、実行環境脆弱性関係情報118の作成には、脅威指標203が用いられてもよい。図17は、実行環境脆弱性関係情報118の他の記憶内容例を示す説明図である。図17は、図8の実行環境脆弱性関係情報118のセル値図2のユーザ環境脆弱性テーブル112の脅威指標203を重み付けした実行環境脆弱性関係情報118である。これにより、ステップS1502において、実行環境構成決定プログラム109は、脅威に関する指標が一定水準より高い脆弱性と脅威指標203とを優先して、マルウェア解析環境124上の実行端末123を再構築する際のソフトウェア構成を決定することができる。なお、この場合、ステップS1502では、要求Bのような目的関数が適用され、実行環境脆弱性関係情報118の行列Pは行列Qのようになる。

0152

なお、本実施例では、ユーザ組織からのステップS1000で設定された制約条件として、マルウェア解析環境124の実行端末123の構築にかかるソフトウェアの費用に関する制約条件を想定した。この他にも、たとえば、実行端末123にそれぞれかかるハードウェア導入費用や、実行端末123の接続される電源の個数、実行端末123を格納する際のラックのデータ量や床面積、実行端末123の重量に関する他の制約条件を想定してもよい。これらを想定して制約条件が定められた場合は、実行環境候補情報作成処理(ステップS1201)において、実行環境構成決定プログラム109は、実行環境候補情報117における実行端末候補700のそれぞれに対し、ハードウェア費用や、電源の個数や、床面積等を関連付ければよい。具体的には、要求A,Bの制約条件の式に当該他の制約条件を適用すればよい。

0153

以上説明したように、本実施例にかかる実行環境構築装置101は、制約条件下で実行環境候補について脆弱性の数を最大化することにより、実行環境候補群の中から第2端末群で構築する特定の実行環境候補を選定する。これにより、制約条件に遵守し、かつ、脆弱性をより多く含むマルウェアの実行環境を容易に生成することができる。したがって、ユーザ組織ごとの固有の要件に基づき、ユーザ組織のマルウェアの実行環境を、第2端末(実行端末123)上に構築、または再構築することができる。

0154

また、実行環境構築装置101は、各実行環境候補内のソフトウェアに脆弱性を対応付けた実行環境脆弱性関係情報を自動作成する。これにより、実行環境候補と脆弱性との対応関係を自動的に網羅することができる。またこれにより、特定の実行環境候補の選定の効率化を図ることができる。

0155

また、実行環境構築装置101は、同一端末内で実行可能なソフトウェアどうしを対応付けて実行環境候補情報を作成する。これにより、第2端末(実行端末123)上で実行できない無駄な実行環境候補の作成を抑制することができる。

0156

また、実行環境構築装置101は、ソフトウェア特徴情報に基づいて、実行環境候補群を絞り込んで実行環境候補情報を作成する。これにより、特徴を考慮した実行環境候補を作成することができる。

0157

たとえば、実行環境構築装置101は、実行環境候補を構成するソフトウェアのデータ量の総和を算出し、当該総和が所定データ量を超過した実行環境候補を削除する。これにより、第2端末(実行端末123)にインストールできない無駄な実行環境候補の作成を抑制することができる。

0158

また、たとえば、実行環境構築装置101は、実行環境候補群のうち同一カテゴリのソフトウェアを有する実行環境候補を削除して実行環境候補情報を作成する。これにより、第2端末(実行端末123)内でカテゴリ重複による無駄なソフトウェアのインストールを抑制することができる。

0159

また、実行環境構築装置101は、ソフトウェアの組み合わせが完全一致する前記実行環境候補が複数存在する場合、ソフトウェアの組み合わせが完全一致する複数の実行環境候補のうち1つのみ残して残余を削除する。これにより、無駄な第2実行環境(マルウェア解析環境124)の構築を抑制することができる。

0160

また、実行環境構築装置101は、実行環境候補間で包含関係がある場合、包含される実行環境候補を削除する。これにより、無駄な第2実行環境(マルウェア解析環境124)の構築を抑制することができる。

0161

また、実行環境構築装置101は、第1実行環境(ユーザ環境122)に含まれる脆弱性の総数に対する、第1実行環境(ユーザ環境122)および第2実行環境(マルウェア解析環境124)に共通して含まれる脆弱性の総数の割合を算出し、当該割合に基づいて、特定の実行環境候補を選定する。これにより、第2実行環境(マルウェア解析環境124)の構築の必要性を自動で判定することができ、実行環境構築装置101を効率的に運用することができる。

0162

また、実行環境構築装置101は、第1実行環境(ユーザ環境122)に含まれる脆弱性を脅威指標に対応付けて、上記割合を算出する。これにより、脅威に関する指標が一定水準より高い脆弱性と脅威指標とを優先して、第2端末(実行端末123)を再構築する際のソフトウェア構成を決定することができる。

0163

また、実行環境構築装置101は、第1端末群のうち脆弱性を含むソフトウェアを有する第1端末の割合を示す第1端末群内占有率(ユーザ環境内占有率202)を脆弱性に対応付けて、上記割合を算出する。これにより、ユーザ環境122上の多くのクライアント端末120に存在する脆弱性と第1端末群内占有率(ユーザ環境内占有率202)とを優先して、第2端末(実行端末123)を再構築する際のソフトウェア構成を決定することができる。

0164

また、実行環境構築装置101は、制約条件下で実行環境候補について占有率の総和を最大化することにより、実行環境候補群の中から第2端末群で構築する特定の実行環境候補を選定する。これにより、制約条件に遵守し、かつ、ソフトウェアがより多くインストールされるマルウェアの実行環境を容易に生成することができる。したがって、ユーザ組織ごとの固有の要件に基づき、ユーザ組織のマルウェアの実行環境を、第2端末(実行端末123)上に構築、または再構築することができる。

0165

また、実行環境構築装置101は、各実行環境候補内のソフトウェアに占有率を対応付けた実行環境脆弱性関係情報を自動作成する。これにより、実行環境候補と占有率との対応関係を自動的に網羅することができる。またこれにより、特定の実行環境候補の選定の効率化を図ることができる。

0166

なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。

0167

また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。

0168

各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、IC(IntegratedCircuit)カードSDカード、DVD(Digital Versatile Disc)の記録媒体に格納することができる。

0169

また、制御線情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。

0170

101実行環境構築装置
103プロセッサ
108 環境構築判定プログラム
109実行環境構成決定プログラム
110判定結果表示プログラム
111実行端末実装プログラム
112ユーザ環境脆弱性テーブル
113解析環境脆弱性テーブル
114ソフトウェア脆弱性関係情報
115 ソフトウェア特徴情報テーブル
116 ソフトウェア関係テーブル
117 実行環境候補情報
118 実行環境脆弱性関係情報
119 実行環境占有率関係情報
120クライアント端末
122 ユーザ環境
123 実行端末
124マルウェア解析環境

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ