以下に、本願の開示する判定制御プログラム、判定制御装置および判定制御方法の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
[実施例に係る判定制御システムの全体構成]
図1は、実施例に係る判定制御装置を含む判定制御システムの全体構成を示す図である。図1に示すように、判定制御システム3は、判定制御装置1と複数のPC(Personal Computer)2とを有する。判定制御装置1に適用されているセキュリティ管理プログラムは、各PCに適用されているウィルス検出ソフトウェア(以降、ウィルス検出ソフト)のウィルス定義が最新であるか否かの判定制御を行う。セキュリティ管理プログラムは、セキュリティ管理プログラムベンダー4によって作成され、管理される。ウィルス定義は、ウィルス検出ソフトベンダー5によって作成され、公開される。
ここで、ウィルス検出ソフトベンダー5によってウィルス定義が公開されると、PC2は、公開されたウィルス定義が自己に適用されているウィルス検出ソフトのウィルス定義であれば、このウィルス定義をダウンロードすることが可能となる。すなわち、PC2に適用されているウィルス検出ソフトは、ダウンロードした最新のウィルス定義を適用して、ウィルスを検出することが可能となる。したがって、PC2が、公開されたウィルス定義をダウンロードしなければ、古いままのウィルス定義を適用して、ウィルスを検出することになる。また、PC2では、エージェントが、ウィルス定義のバージョン識別子を判定制御装置1に通知する。エージェントは、予め定められたタイミングでウィルス定義のバージョン識別子を検索し、検索したバージョン識別子を判定制御装置1のマネージャに通知する。なお、予め定められたタイミングとは、例えば、PC2が立ち上がったタイミングであったり、予め定められた時刻であったりする。
また、ウィルス検出ソフトベンダー5によってウィルス定義が公開されると、セキュリティ管理プログラムベンダー4は、公開されたウィルス定義のバージョン識別子を参照し、ウィルス定義の辞書を作成する。辞書には、ウィルス定義のバージョン識別子の履歴が記録される。辞書は、ウィルス検出ソフト毎に作成される。そして、セキュリティ管理プログラムベンダー4によって辞書が公開されると、判定制御装置1は、公開された辞書をダウンロードすることが可能となる。すなわち、判定制御装置1に適用されているセキュリティ管理プログラムは、ダウンロードした辞書を適用して、各PCに適用されているウィルス検出ソフトのウィルス定義が最新であるか否かの判定制御を行う。したがって、判定制御装置1が、公開された辞書をダウンロードするタイミングが遅くなると、古いままの辞書を適用して判定制御を行うことになるので、判定制御を正確に行うことができない。
そこで、実施例に係る判定制御装置1は、PC2のエージェントから実際に収集したバージョン識別子を、エージェント毎に蓄積する。判定制御装置1は、エージェント毎に蓄積したバージョン識別子の履歴と辞書とからウィルス定義のマスタ履歴を生成する。マスタ履歴は、ウィルス検出ソフト毎に生成される。そして、判定制御装置1は、生成したマスタ履歴を用いて、PC2に適用されたウィルス検出ソフトが用いるウィルス定義のバージョン識別子の判定を行う。バージョン識別子の判定は、例えば、最新であるか否かであるが、これに限定されず、何世代前であるかを含んでも良い。
[実施例に係る判定制御装置の構成]
図2は、実施例に係る判定制御装置の構成を示す機能ブロック図である。判定制御装置1は、記憶部11および制御部12を有する。
記憶部11は、例えばフラッシュメモリ(Flash Memory)やFRAM(登録商標)(Ferroelectric Random Access Memory)等の不揮発性の半導体メモリ素子等の記憶装置に対応する。記憶部11には、辞書111、個別履歴112、暫定マスタ履歴113およびマスタ履歴114が含まれる。
辞書111は、セキュリティ管理プログラムベンダー4によって作成されたウィルス定義の辞書である。辞書111は、ウィルス検出ソフト毎に作成される。辞書111は、セキュリティ管理プログラムベンダー4によって公開されると、判定制御装置1からダウンロード可能となる。ここで、辞書111のデータ構造の一例について、図3を参照して説明する。
図3は、実施例に係る辞書のデータ構造の一例を示す図である。図3に示すように、辞書111は、新旧111aおよびバージョン識別子111bを対応付けて記憶する。新旧111aは、バージョン識別子の新旧を示す。一例として、新旧111aには、バージョン識別子が最新であるか、何世代前であるかが設定される。例えば、「最新」は、バージョン識別子が最新であることを示す。「−1」は、バージョン識別子が最新から1世代前であることを示す。但し、新旧111aが「最新」であったとしても、実際に「最新」であるとは限らない。例えば、判定制御装置1が、公開された辞書をダウンロードしない状態が続くと、現に記憶されている辞書111と公開された辞書とが異なることになるので、辞書111の新旧111aが「最新」であっても、実際に「最新」のものとは異なる。バージョン識別子111bは、バージョン識別子を示す。バージョン識別子は、新旧に応じて連続する番号であっても良いし連続する番号でなくても良い。また、バージョン識別子は、新旧に応じて途中で識別子の構成が変わっても良い。
一例として、新旧111aが「最新」である場合に、バージョン識別子111bとして「ffde2f866」を記憶している。新旧111aが「−1」である場合に、バージョン識別子111bとして「5554e0e4」を記憶している。
図2に戻って、個別履歴112は、エージェント毎に個別に収集されたウィルス定義のバージョン識別子の履歴である。個別履歴112は、ウィルス検出ソフト毎に生成される。暫定マスタ履歴113は、エージェント毎に収集された個別履歴112を統合したバージョン識別子の履歴である。暫定マスタ履歴113は、ウィルス検出ソフト毎に生成される。マスタ履歴114は、暫定マスタ履歴113および辞書111を統合したバージョン識別子の履歴である。マスタ履歴114は、ウィルス検出ソフト毎に生成される。なお、個別履歴112、暫定マスタ履歴113およびマスタ履歴114のデータ構造は、後述するものとする。
制御部12は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。プログラムには、マネージャを含み、マネージャは、例えば、セキュリティ管理プログラムを含む。そして、制御部12は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路の電子回路に対応する。または、制御部12は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路に対応する。さらに、制御部12は、辞書適用部121、個別履歴更新部122、暫定マスタ履歴生成部123、マスタ履歴生成部124および評価部125を有する。
辞書適用部121は、セキュリティ管理プログラムベンダー4から辞書111をダウンロードし、ダウンロードした辞書111を適用する。例えば、辞書適用部121は、特定のウィルス検出ソフトに対応する辞書の公開を検知すると、辞書の公開を行ったセキュリティ管理プログラムベンダー4から当該辞書をダウンロードする。辞書適用部121は、ダウンロードした辞書を記憶部11に格納する。
個別履歴更新部122は、個別履歴112を個別に更新する。例えば、個別履歴更新部122は、PC2のエージェントから通知されたインベントリ情報を受け取る。ここでいうインベントリ情報とは、PC2上のウィルス定義の検出に関する情報を示す。インベントリ情報には、一例として、ウィルス定義のバージョン識別子を検出するエージェントのID(identification)、検出されたPC2の識別子、ウィルス検出ソフトの名称、ウィルス定義のバージョン識別子および検出時刻が含まれる。個別履歴更新部122は、ウィルス検出ソフト毎且つエージェント毎の個別履歴112に、通知されたインベントリ情報の内容を追加する。一例として、ウィルス検出ソフトの名称およびエージェントの識別子に対応する個別履歴112に、ウィルス定義のバージョン識別子および検出時刻が追加される。
個別履歴更新部122は、通知されたバージョン識別子に応じて、個別履歴112を修正する。例えば、個別履歴更新部122は、通知されたインベントリ情報に含まれるバージョン識別子が個別履歴112に存在する場合には、通知されたバージョン識別子が個別履歴112内で最新のバージョン識別子であるか否かを判定する。個別履歴更新部122は、通知されたバージョン識別子が個別履歴112内で最新のバージョン識別子でない場合には、個別履歴112内の、通知されたバージョン識別子と一致するものより後に通知されたバージョン識別子を削除する。これは、通知されたバージョン識別子を個別履歴112内で最新にするためである。つまり、PC2上でバージョン識別子が古いものに戻った場合に、個別履歴更新部122は、PC2上のバージョン識別子に合わせるために個別履歴112を修正する。PC上でバージョン識別子が古いものに戻る場合には、一例としてバックアップデータをリストアしたり、ウィルス検出ソフトを再インストールしたりした場合がある。
なお、通知されたバージョン識別子が個別履歴112に存在しなくても、マスタ履歴114に存在する場合がある。かかる場合には、個別履歴更新部122は、通知されたバージョン識別子を個別履歴112に追加しない。これは、通信されたバージョン識別子が古いバージョン識別子であると判断されるためである。
ここで、個別履歴112のデータ構造の一例について、図4を参照して説明する。図4は、実施例に係る個別履歴のデータ構造の一例を示す図である。図4に示すように、個別履歴112は、エージェントID112a、ウィルス検出ソフト112b、検出時刻112cおよびバージョン識別子112dを対応付けて記憶する。エージェントID112aは、PC2上で適用されたエージェントのIDである。ウィルス検出ソフト112bは、PC2で適用されているウィルス検出ソフトの名称である。検出時刻112cは、ウィルス定義のバージョン識別子の検出時刻である。バージョン識別子112dは、検出時刻に検出されたウィルス定義のバージョン識別子である。
一例として、エージェントID112aが「A1」、ウィルス検出ソフト112bが「SoftA」および検出時刻112cが「2013−07−18T09:01:00」である場合に、バージョン識別子112dとして「e9be84118」と記憶している。
図2に戻って、暫定マスタ履歴生成部123は、ウィルス検出ソフト毎に、暫定マスタ履歴113を生成する。例えば、暫定マスタ履歴生成部123は、1つのウィルス検出ソフトを選択し、選択したウィルス検出ソフトの最新のバージョン識別子を探索する。
一例として、暫定マスタ履歴生成部123は、選択したウィルス検出ソフトに対する複数の個別履歴112を対象に、各個別履歴112からそれぞれ最新のバージョン識別子および検出時刻を抽出する。暫定マスタ履歴生成部123は、抽出したバージョン識別子の中に同一のバージョン識別子が存在する場合には、検出時刻が最古のものだけを残す。これは、重複したバージョン識別子をなくすためである。
暫定マスタ履歴生成部123は、抽出したバージョン識別子の中に、いずれかの個別履歴112の最新でない部分に存在しているものがあれば、このバージョン識別子を抽出したバージョン識別子の中から削除する。個別履歴112の最新でない部分に存在するバージョン識別子は、最新のバージョン識別子でないからである。
暫定マスタ履歴生成部123は、抽出したバージョン識別子の中で残ったものが1つである場合には、残ったバージョン識別子を最新のバージョン識別子として、検出時刻とともに暫定マスタ履歴113に追加する。暫定マスタ履歴生成部123は、抽出したバージョン識別子の中で残ったものが1つでない場合には、検出時刻が最新であるバージョン識別子を最新のバージョン識別子として、検出時刻とともに暫定マスタ履歴113に追加する。そして、暫定マスタ履歴生成部123は、対象の個別履歴112から暫定マスタ履歴113に追加したバージョン識別子を除いて、次に新しいバージョン識別子を探索する。
マスタ履歴生成部124は、ウィルス検出ソフト毎に、マスタ履歴114を生成する。例えば、マスタ履歴生成部124は、1つのウィルス検出ソフトを選択し、選択したウィルス検出ソフトについて、辞書111に含まれるバージョン識別子の履歴を、暫定マスタ履歴113とマージし、最新のマスタ履歴114を生成する。ここでは、暫定マスタ履歴113および辞書111は、予め履歴順にソートされているものとする。以下に、辞書111と暫定マスタ履歴113とをマージする一例について示すが、マージ方法についてはこれに限定するものではない。
一例として、マスタ履歴生成部124は、辞書111の最新のバージョン識別子が暫定マスタ履歴113内に存在しているか否かを判定する。マスタ履歴生成部124は、辞書111の最新のバージョン識別子が暫定マスタ履歴113内に存在している場合には、暫定マスタ履歴113に存在していたバージョン識別子の位置(B1)の次に新しいバージョン識別子の位置(B2)を特定する。そして、マスタ履歴生成部124は、特定した位置(B2)のバージョン識別子が辞書111内に存在しているか否かを判定する。
マスタ履歴生成部124は、特定した位置(B2)のバージョン識別子が辞書111内に存在している場合には、以下の処理を行う。すなわち、マスタ履歴生成部124は、暫定マスタ履歴113内の位置B1と位置B2の間に、辞書111内の最新のバージョン識別子と位置B2のバージョン識別子が存在する辞書111内の位置に挟まれたバージョン識別子を挿入する。
マスタ履歴生成部124は、特定した位置(B2)のバージョン識別子が辞書111内に存在していない場合には、以下の処理を行う。すなわち、マスタ履歴生成部124は、暫定マスタ履歴113内の位置B1と位置B2の間に、辞書111内の最新のバージョン識別子がある位置より古い位置にある全てのバージョン識別子を挿入する。
マスタ履歴生成部124は、暫定マスタ履歴113に存在していたバージョン識別子の位置(B1)が暫定マスタ履歴113内の最古である場合には、以下の処理を行う。すなわち、マスタ履歴生成部124は、辞書111内の最新のバージョン識別子がある位置より古い位置にある全てのバージョン識別子を、暫定マスタ履歴113内の位置B1より古い部分に挿入する。
マスタ履歴生成部124は、マスタ履歴生成部124は、辞書111の最新のバージョン識別子が暫定マスタ履歴113内に存在していない場合には、辞書111の最新のバージョン識別子の位置(A1)の次に新しいバージョン識別子の位置(A2)を特定する。そして、マスタ履歴生成部124は、特定した位置(A2)のバージョン識別子が暫定マスタ履歴113内に存在しているか否かを判定する。マスタ履歴生成部124は、特定した位置(A2)のバージョン識別子が暫定マスタ履歴113内に存在していない場合には、辞書111内の特定した位置の次に新しいバージョン識別子の位置(A2)を特定する。
マスタ履歴生成部124は、特定した位置(A2)のバージョン識別子が暫定マスタ履歴113内に存在している場合には、以下の処理を行う。すなわち、マスタ履歴生成部124は、暫定マスタ履歴113内に存在していたバージョン識別子を、辞書111内の位置A1から位置A2までのバージョン識別子に置き換える。
マスタ履歴生成部124は、できあがった暫定マスタ履歴113を、選択したウィルス検出ソフトのマスタ履歴114とする。
ここで、マスタ履歴114のデータ構造の一例について、図5を参照して説明する。図5は、実施例に係るマスタ履歴のデータ構造の一例を示す図である。図5に示すように、マスタ履歴114は、新旧114a、バージョン識別子114bおよび最古検出時刻114cを対応付けて記憶する。新旧114aは、バージョン識別子の新旧を示す。一例として、新旧114aには、バージョン識別子が最新であるか、何世代前であるかが設定される。例えば、「最新」は、バージョン識別子が最新であることを示す。「−1」は、バージョン識別子が最新から1世代前であることを示す。バージョン識別子114bは、バージョン識別子を示す。最古検出時刻114cは、バージョン識別子114bに対する最古の検出時刻を示す。
一例として、新旧114aが「最新」である場合に、バージョン識別子114bとして「e9be84118」、最古検出時刻114cとして「2013−07−18T09:01:00」と記憶している。新旧114aが「−1」である場合に、バージョン識別子114bとして「ffde2f866」、最古検出時刻114cとして「2013−07−17T08:32:17」を記憶している。
なお、暫定マスタ履歴113は、新旧113a、バージョン識別子113bおよび最古検出時刻113cを対応付けて記憶する。暫定マスタ履歴113のデータ構造は、マスタ履歴114のデータ構造と同様であるので、その説明を省略する。
図2に戻って、評価部125は、ウィルス検出ソフト毎のマスタ履歴114を用いて、PC2のエージェントから通知されたバージョン識別子を評価する。例えば、評価部125は、PC2のエージェントから通知されたインベントリ情報を取得する。評価部125は、イベントリ情報に含まれるウィルス検出ソフトの名称に対応するマスタ履歴114を選択する。評価部125は、選択したマスタ履歴114から、インベントリ情報に含まれるバージョン識別子と一致するバージョン識別子114bに対応する新旧114aを取得する。すなわち、評価部125は、通知されたバージョン識別子が最新よりどれだけ古いかを確認する。そして、評価部125は、取得した新旧114aを評価し、評価結果を例えば管理者に提供する。
[実施例に係るPCの構成]
図6は、実施例に係るPCの構成を示す機能ブロック図である。PC2は、記憶部21および制御部22を有する。
記憶部21は、例えばフラッシュメモリ(Flash Memory)やFRAM(登録商標)(Ferroelectric Random Access Memory)等の不揮発性の半導体メモリ素子等の記憶装置に対応する。記憶部21には、バージョン識別子211が含まれる。バージョン識別子211は、PC2上に適用されたウィルス検出ソフトが用いるウィルス定義のバージョン識別子を示す。
制御部22は、各種の処理手順を規定したプログラム(エージェントを含む)や制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。そして、制御部22は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路の電子回路に対応する。または、制御部22は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路に対応する。さらに、制御部22は、適用部221および通知部222を有する。
適用部221は、ウィルス検出ソフトベーダー5によって公開されたウィルス定義を、所定のタイミングで適用する。例えば、適用部221は、自己が適用しているウィルス検出ソフトのウィルス定義が公開されたことを検知すると、公開されたウィルス定義をダウンロードする。適用部221は、ダウンロードしたウィルス定義を適用し、適用したウィルス定義のバージョン識別子を記憶部11に格納する。なお、適用部221は、公開されたウィルス定義を適用するタイミングを公開されたタイミングとして説明したが、これに限定されない。一例として、適用部221は、公開されたウィルス定義を適用するタイミングを、予め定められた時刻や日時としても良い。別の例として、適用部221は、手動で適用するタイミングとしても良い。
通知部222は、予め定められたタイミングで、ウィルス定義のバージョン識別子を判定制御装置1に通知する。予め定められたタイミングとは、例えば、PC2が立ち上がったタイミングであったり、予め定められた時刻であったりする。例えば、通知部222は、予め定められたタイミングを検知すると、バージョン識別子211を検索する。通知部222は、検索したバージョン識別子211を含むインベントリ情報を作成し、作成したインベントリ情報を判定制御装置1のマネージャに通知する。
[判定制御システムの処理の一例]
次に、図7〜図11を参照して、判定制御システム3の処理の一例を説明する。図7は、PCによる通知処理の一例を示す図である。図8A〜図8Cは、実施例に係る個別履歴更新処理の一例を示す図である。図9A〜図9Bは、実施例に係る暫定マスタ履歴生成処理の一例を示す図である。図10は、実施例に係るマスタ履歴生成処理の一例を示す図である。図11は、実施例に係る評価処理の一例を示す図である。
図7に示すように、PC2のエージェントは、予め定められたタイミングで、ウィルス検出ソフトが用いるウィルス定義のバージョン識別子211を検索する。そして、検索したバージョン識別子211を含むインベントリ情報を、判定制御装置1のマネージャに通知する。PC2のエージェントは、この処理を定期的に実施する。ここでは、PC2−1のエージェントA1は、エージェントとして「A1」、検出場所として「PC2−1」、ウィルス検出ソフトとして「SoftA」、バージョン識別子として「SAIDn」、検出時刻として「TA1x」のインベントリ情報を通知する。PC2−2のエージェントA2は、エージェントとして「A2」、検出場所として「PC2−2」、ウィルス検出ソフトとして「SoftA」、バージョン識別子として「SAIDn」、検出時刻として「TA2y」のインベントリ情報を通知する。PC2−9のエージェントA9は、エージェントとして「A9」、検出場所として「PC2−9」、ウィルス検出ソフトとして「SoftZ」、バージョン識別子として「SZIDm」、検出時刻として「TA9z」のインベントリ情報を通知する。
図8Aに示すように、判定制御装置1のマネージャは、PC2のエージェントから通知されたインベントリ情報を受け取り、ウィルス検出ソフト且つPC2毎の個別履歴112に、通知されたインベントリ情報の内容を追加する。ここでは、PC2−1のエージェントA1から通知されたバージョン識別子「SAIDn」および検出時刻「TA1X」が、ウィルス検出ソフトとして「SoftA」、検出場所として「PC2−1」の個別履歴112に追加される。PC2−2のエージェントA2から通知されたバージョン識別子「SAIDn」および検出時刻「TA2y」が、ウィルス検出ソフトとして「SoftA」、検出場所として「PC2−2」の個別履歴112に追加される。PC2−9のエージェントA9から通知されたバージョン識別子「SZIDm」および検出時刻「TA9z」が、ウィルス検出ソフトとして「SoftZ」、検出場所として「PC2−9」の個別履歴112に追加される。
ここで、判定制御装置1のマネージャは、PC2−1のエージェントA1から通知された、バージョン識別子「SAIDn−4」を含むインベントリ情報を受け取ったとする。
図8Bに示すように、判定制御装置1のマネージャは、通知されたバージョン識別子が個別履歴112に存在するが、最新のバージョン識別子でない場合には、以下の処理を行う。マネージャは、個別履歴112内の、通知されたバージョン識別子と一致するものより後に通知されたバージョン識別子を削除する。すなわち、マネージャは、個別履歴112を修正する。ここでは、通知されたバージョン識別子「SAIDn−4」は個別履歴112内で最新のバージョン識別子でないので、個別履歴112内のバージョン識別子「SAIDn−4」より後に通知された「SAIDn−3」、「SAIDn−2」、「SAIDn−1」が削除される。これにより、マネージャは、PC2−1に対応する個別履歴112を、PC2−1上のバージョン識別子に合わせることができる。
図8Cに示すように、判定制御装置1のマネージャは、通知されたバージョン識別子が個別履歴112に存在しないが、マスタ履歴114に存在する場合には、以下の処理を行う。マネージャは、通知されたバージョン識別子を個別履歴112に追加しない。これは、通信されたバージョン識別子が相当古いバージョン識別子であると判断されるためである。ここでは、通知されたバージョン識別子「SAIDn−4」は個別履歴112に存在しないが、マスタ履歴114に存在する。この場合には、通知されたバージョン識別子「SAIDn−4」は個別履歴112に追加されない。
ここで、判定制御装置1のマネージャは、ウィルス検出ソフトが「SoftA」である場合の暫定マスタ履歴113を生成するものとする。
図9Aの1段目に示すように、ウィルス検出ソフトが「SoftA」である場合の個別履歴112として、PC2−1の個別履歴112、PC2−2の個別履歴112、・・・、PC2−kの個別履歴112があるとする。
図9Aの2段目に示すように、判定制御装置1のマネージャは、各個別履歴112からそれぞれ最新のバージョン識別子および検出時刻を抽出する。ここでは、PC2−1の個別履歴112からバージョン識別子「SAIDn」および検出時刻「TA1x」が抽出される。PC2−2の個別履歴112からバージョン識別子「SAIDn」および検出時刻「TA2y」が抽出される。PC2−kの個別履歴112からバージョン識別子「SAIDn−1」および検出時刻「TAkz」が抽出される。検出時刻「TA1x」は、検出時刻「TA2y」より古いものとする。
図9Aの3段目に示すように、判定制御装置1のマネージャは、抽出したバージョン識別子の中に同一のバージョン識別子が存在する場合には、検出時刻が最古のものだけを残す。ここでは、抽出したバージョン識別子の中に同一のバージョン識別子「SAIDn」が存在している。そこで、マネージャは、同一のバージョン識別子「SAIDn」に対応する検出時刻のうち古い方の検出時刻「TA1x」の方を残し、新しい方の検出時刻「TA2y」の方を削除する。
図9Aの4段目に示すように、判定制御装置1のマネージャは、抽出したバージョン識別子の中に、いずれかの個別履歴112の最新でない部分に存在しているものがあれば、このバージョン識別子を抽出したバージョン識別子の中から削除する。ここでは、バージョン識別子「SAIDn−1」が、PC2−1の個別履歴112の最新でない部分に存在している。そこで、マネージャは、バージョン識別子「SAIDn−1」を抽出したバージョン識別子の中から削除する。これにより、バージョン識別子「SAIDn−1」は、最新のバージョン識別子の候補から除外される。
図9Aの5段目に示すように、判定制御装置1のマネージャは、抽出したバージョン識別子の中で残ったものが1つである場合には、残ったバージョン識別子を最新のバージョン識別子として、検出時刻とともに暫定マスタ履歴113に追加する。ここでは、バージョン識別子「SAIDn」が、最新のバージョン識別子として、検出時刻「TA1x」とともに暫定マスタ履歴113に追加される。
図9Bの1段目に示すように、判定制御装置1のマネージャは、追加されたバージョン識別子を個別履歴112から削除する。ここでは、バージョン識別子「SAIDn」および対応する検出時刻が、PC2−1の個別履歴112、PC2−2の個別履歴112から削除される。この結果、図9Bの2段目に示すように、各個別履歴112が生成される。マネージャは、生成された各個別履歴112の内容で、最新のバージョン識別子を探索し、探索したバージョン識別子を暫定マスタ履歴113に追加する。
このようにして、判定制御装置1のマネージャは、各個別履歴112から全てのバージョン識別子がなくなるまで、図9Aの2段目〜図9Bの2段目を繰り返す。そして、各個別履歴112から全てのバージョン識別子がなくなったとき、暫定マスタ履歴113が完成する。図9Bの3段目に示すように、ウィルス検出ソフトが「SoftA」である暫定マスタ履歴113が完成する。
図10に示すように、判定制御装置1のマネージャは、ウィルス検出ソフト「SoftA」に対して、暫定マスタ履歴113および辞書111をマージして最新のマスタ履歴114を生成する。ここでは、辞書111の最新のバージョン識別子が暫定マスタ履歴113内に存在する場合とする。マネージャは、辞書111の最新のバージョン識別子が暫定マスタ履歴113内に存在している場合には、暫定マスタ履歴113に存在していたバージョン識別子の位置(B1)の次に新しいバージョン識別子の位置(B2)を特定する。そして、マネージャは、特定した位置(B2)のバージョン識別子が辞書111内に存在しているか否かを判定する。マネージャは、特定した位置(B2)のバージョン識別子が辞書111内に存在している場合には、以下の処理を行う。すなわち、マネージャは、暫定マスタ履歴113内の位置B1と位置B2の間に、辞書111内の最新のバージョン識別子と位置B2のバージョン識別子が存在する辞書111内の位置に挟まれたバージョン識別子を挿入する。ここでは、位置B1と位置B2の間に、辞書111内の最新のバージョン識別子「SAIDn−1」と位置B2のバージョン識別子「SAIDn−2」が存在する辞書111内の位置に挟まれたバージョン識別子「SAIDa」が挿入される。挿入されたバージョン識別子「SAIDa」は、新旧114aとして「−2」を対応付けられる。
図11に示すように、判定制御装置1のマネージャは、生成されたウィルス検出ソフト「SoftA」のマスタ履歴114を用いて、各PC2のエージェントから通知されたバージョン識別子を評価する。ここでは、PC2−1から通知されたバージョン識別子は、「SAIDn」であるとする。PC2−2から通知されたバージョン識別子は、「SAIDn」であるとする。PC2−3から通知されたバージョン識別子は、「SAIDn−1」であるとする。PC2−nから通知されたバージョン識別子は、「SAIDn−2」であるとする。すると、マネージャは、PC2−1、PC2−2について、評価を「OK」とし、評価理由を「最新」として評価する。マネージャは、PC2−3について、評価を「OK」とし、評価理由を「1つ古い」として評価する。マネージャは、PC2−nについて、評価を「OLD」とし、評価理由を「3つ古い」として評価する。なお、評価と評価理由の関係は、あらかじめ、セキュリティプログラムに対して設定される。評価と評価理由の関係は、適宜変更されることが可能である。
[PC側における通知処理のフローチャート]
次に、実施例に係るPC2側における通知処理のフローチャートを、図12を参照して説明する。図12は、実施例に係るPC側における通知処理のフローチャートを示す図である。なお、PC2のエージェントは、予め定められた時刻に適用されているウィルス検出ソフトのウィルス定義のバージョン識別子を検出するものとする。
PC2のエージェントは、予め定められている時刻を検知すると、適用されているウィルス検出ソフトを検出する(ステップS11)。エージェントは、検出したウィルス検出ソフトのウィルス定義のバージョン識別子を抽出する(ステップS12)。例えば、エージェントは、記憶部21の特定の領域に記憶されているバージョン識別子211を読み出すことで、ウィルス検出ソフトのウィルス定義のバージョン識別子を抽出する。
そして、エージェントは、通知するデータを作成する(ステップS13)。作成するデータは、PC2上のウィルス定義の検出に関するインベントリ情報である。例えば、エージェントは、エージェントID、検出場所としてPC2の識別子、ウィルス検出ソフトの名称、抽出したバージョン識別子および検出時刻を含むインベントリ情報を作成する。
そして、エージェントは、作成したデータを判定制御装置1のマネージャに通知する(ステップS14)。
[判定制御装置側における判定制御処理のフローチャート]
次に、実施例に係る判定制御装置1側における判定制御処理のフローチャートを、図13を参照して説明する。図13は、実施例に係る判定制御装置側における判定制御処理のフローチャートを示す図である。
まず、判定制御装置1のマネージャは、PC2のエージェントから通知されたバージョンに関する通知を受信したか否かを判定する(ステップS21)。例えば、マネージャは、PC2のエージェントから通知されたインベントリ情報を受信したか否かを判定する。そして、バージョンに関する通知を受信していないと判定した場合には(ステップS21;No)、マネージャは、バージョンに関する通知を受信するまで、判定処理を繰り返す。
一方、バージョンに関する通知を受信したと判定した場合には(ステップS21;Yes)、マネージャは、個別履歴更新部122による個別履歴更新処理を実行する(ステップS22)。なお、個別履歴更新処理のフローチャートは、後述する。
そして、マネージャは、暫定マスタ履歴生成部123による暫定マスタ履歴生成処理を実行する(ステップS23)。なお、暫定マスタ履歴生成処理のフローチャートは、後述する。
そして、マネージャは、マスタ履歴生成部124によるマスタ履歴生成処理を実行する(ステップS24)。なお、マスタ履歴生成処理のフローチャートは、後述する。
その後、マネージャは、評価部125による評価処理を実行する(ステップS25)。なお、評価処理のフローチャートは、後述する。
[個別履歴更新処理のフローチャート]
次に、個別履歴更新処理のフローチャートを、図14を参照して説明する。図14は、個別履歴更新処理のフローチャートを示す図である。判定制御装置1のマネージャは、PC2のエージェントから通知されたインベントリ情報を受信したものとする。なお、図14では、バージョン識別子をバージョンと略記するものとする。
判定制御装置1のマネージャは、通知されたウィルス検出ソフトの名称とエージェントIDに一致する個別履歴112は存在するか否かを判定する(ステップS31)。ウィルス検出ソフトの名称とエージェントIDに一致する個別履歴112は存在しないと判定する場合には(ステップS31;No)、マネージャは、ウィルス検出ソフトの名称とエージェントIDに対応する個別履歴112を新規に生成する(ステップS32)。
一方、ウィルス検出ソフトの名称とエージェントIDに一致する個別履歴112は存在すると判定する場合には(ステップS31;Yes)、マネージャは、通知されたバージョンが個別履歴112内に存在するか否かを判定する(ステップS33)。通知されたバージョンが個別履歴112内に存在すると判定する場合には(ステップS33;Yes)、マネージャは、通知されたバージョンは個別履歴112内の最新バージョンと同一か否かを判定する(ステップS34)。
通知されたバージョンは個別履歴112内の最新バージョンと同一であると判定する場合には(ステップS34;Yes)、マネージャは、個別履歴更新処理を終了する。一方、通知されたバージョンは個別履歴112内の最新バージョンと同一でないと判定する場合には(ステップS34;No)、マネージャは、個別履歴112内で、通知されたバージョンと一致するものより後に通知されたバージョンを削除する(ステップS35)。一例として、図8Bで説明した場合である。そして、マネージャは、個別履歴更新処理を終了する。
ステップS33において、マネージャは、通知されたバージョンが個別履歴112内に存在しないと判定する場合には(ステップS33;No)、通知されたバージョンがマスタ履歴114内に存在するか否かを判定する(ステップS36)。通知されたバージョンがマスタ履歴114内に存在すると判定した場合には(ステップS36;Yes)、マネージャは、個別履歴112に追加しない。一例として、図8Cで説明した場合である。そして、マネージャは、個別履歴更新処理を終了する。
通知されたバージョンがマスタ履歴114内に存在しないと判定した場合には(ステップS36;No)、マネージャは、通知されたバージョンを個別履歴112に追加する。一例として、図8Aで説明した場合である。そして、マネージャは、個別履歴更新処理を終了する。
[暫定マスタ履歴生成処理のフローチャート]
次に、暫定マスタ履歴生成処理のフローチャートを、図15を参照して説明する。図15は、暫定マスタ履歴生成処理のフローチャートを示す図である。なお、図15では、バージョン識別子をバージョンと略記するものとする。
判定制御装置1のマネージャは、該当するウィルス検出ソフトの個別履歴112全てを記憶部11の一時領域にコピーする(ステップS41)。例えば、マネージャは、PC2のエージェントから通知されたインベントリ情報に含まれるウィルス検出ソフト名のウィルス検出ソフトに関する個別履歴112全てを記憶部11の一時領域にコピーする。
ここで、マネージャは、1種類のバージョンだけを含む個別履歴112を一時領域から削除する(ステップS42)。これは、PC2上のウィルス定義のバージョンが実際にダウンロードされたウィルス定義のものではなく、予め設定された初期のバージョンであるおそれがあるからである。
そして、マネージャは、各個別履歴112から、最新のバージョンと検出時刻の対を履歴データとして取り出し、比較テーブルに書き出す(ステップS43)。比較テーブルとは、各個別履歴112のバージョンを比較するために用いられるテーブルであり、記憶部11の一時領域に確保される。一例として、図9Aの2段目で説明した場合である。
そして、マネージャは、比較テーブル内の同一バージョンの検出時刻を比較し、最古の検出時刻を持つ履歴データを残し、その他の履歴データを削除する(ステップS44)。これは、重複したバージョンをなくすためである。一例として、図9Aの3段目で説明した場合である。
そして、マネージャは、比較テーブルの履歴データで、いずれかの個別履歴112の最新でない部分に出現している履歴データを削除する(ステップS45)。個別履歴112の最新でない部分に存在するバージョンは、最新のバージョンでないからである。一例として、図9Aの4段目で説明した場合である。
そして、マネージャは、比較テーブルの残りの履歴データの中で、検出時刻が最新の履歴データを暫定マスタ履歴113に最新バージョンとして追加する(ステップS46)。一例として、図9Aの5段目で説明した場合である。なお、比較テーブルの残りの履歴データが1つである場合には、マネージャは、残りの履歴データをそのまま暫定マスタ履歴113に追加すれば良い。
マネージャは、暫定マスタ履歴113に追加されたバージョンの履歴データを、一時領域内の全ての個別履歴112から削除する(ステップS47)。一例として、図9Bの1段目で説明した場合である。そして、マネージャは、一時領域内の個別履歴112に履歴データが存在するか否かを判定する(ステップS48)。
履歴データが存在すると判定した場合には(ステップS48;Yes)、マネージャは、次の最新のバージョンを探索すべく、ステップS43に移行する。一例として、図9Bの2段目で説明した場合である。一方、履歴データが存在しないと判定した場合には(ステップS48;No)、マネージャは、暫定マスタ履歴生成処理を終了する。
[マスタ履歴生成処理のフローチャート]
次に、マスタ履歴生成処理のフローチャートを、図16を参照して説明する。図16は、マスタ履歴生成処理のフローチャートを示す図である。なお、図16では、図17A〜図17Fを適宜参照しながら説明する。また、図16では、バージョン識別子をバージョンと略記するものとする。
判定制御装置1のマネージャは、辞書111の最新のバージョンの位置をA1とし、暫定マスタ履歴113の最新のバージョンの位置をB1とする(ステップS50)。マネージャは、A1のバージョンが暫定マスタ履歴113内に出現しているか否かを判定する(ステップS51)。A1のバージョンが暫定マスタ履歴113内に出現していると判定した場合には(ステップS51;Yes)、マネージャは、A1のバージョンが見つかった暫定マスタ履歴113の位置をB1とする(ステップS52)。
そして、マネージャは、B1が暫定マスタ履歴113内で最古であるか否かを判定する(ステップS53)。B1が暫定マスタ履歴113内で最古でないと判定した場合には(ステップS53;No)、マネージャは、暫定マスタ履歴113内のB1の次に新しい位置をB2とする(ステップS54)。
そして、マネージャは、B2のバージョンが辞書111内に出現しているか否かを判定する(ステップS55)。B2のバージョンが辞書111内に出現していると判定した場合には(ステップS55;Yes)、マネージャは、B2のバージョンが出現する辞書111内の位置をA2とする。そして、マネージャは、暫定マスタ履歴113のB1とB2の間に、辞書111内のA1、A2に挟まれたバージョンを挿入する(ステップS56)。一例として、図10で説明した場合である。
別の例として、図17Aに示すように、辞書111の最新のバージョンの位置A1には、バージョン「ffde2f866」が設定されている。位置A1のバージョン「ffde2f866」が暫定マスタ履歴113内に出現している。暫定マスタ履歴113内に出現している位置は、B1である。B2は、暫定マスタ履歴113内のB1の次に新しい位置である。位置B2のバージョン「5554e0e4」が辞書111内に出現している。辞書111内に出現している位置は、A2である。マネージャは、暫定マスタ履歴113のB1とB2の間に、辞書111内のA1、A2に挟まれたバージョン「z5gg824157」を挿入する。すなわち、バージョン「z5gg824157」が新旧「−2」に対応付けて挿入される。
続いて、マネージャは、辞書111内でA2の次に新しい位置をA1とする(ステップS57)。そして、マネージャは、マスタ履歴生成処理を継続すべく、ステップS51に移行する。
ステップS55において、マネージャは、B2のバージョンが辞書111内に出現していないと判定した場合には(ステップS55;No)、以下の処理を行う。すなわち、マネージャは、暫定マスタ履歴113内のB1とB2の間に、辞書111内のA1より古い位置にある全てのバージョンを挿入する(ステップS58)。続いて、マネージャは、ステップS60に移行する。
一例として、図17Bに示すように、辞書111の最新のバージョンの位置A1には、バージョン「ffde2f866」が設定されている。位置A1のバージョン「ffde2f866」が暫定マスタ履歴113内に出現している。暫定マスタ履歴113内に出現している位置は、B1である。B2は、暫定マスタ履歴113内のB1の次に新しい位置である。位置B2のバージョン「5554e0e4」が辞書111内に出現していない。マネージャは、暫定マスタ履歴113内のB1とB2の間に、辞書111内のA1より古い位置にある全てのバージョン「z5gg824157」〜「sa890bv24」を挿入する。
ステップS53において、マネージャは、B1が暫定マスタ履歴113内で最古であると判定した場合には(ステップS53;Yes)、暫定マスタ履歴113内のB1の次に新しい仮の位置をB2とする(ステップS59)。そして、マネージャは、暫定マスタ履歴113内のB1とB2の間に、辞書111内のA1より古い位置にある全てのバージョンを挿入すべく、ステップS58に移行する。
一例として、図17Cに示すように、辞書111の最新のバージョンの位置A1には、バージョン「ffde2f866」が設定されている。位置A1のバージョン「ffde2f866」が暫定マスタ履歴113内に出現している。暫定マスタ履歴113内に出現している位置はB1であり、最古の位置にある。B2は、暫定マスタ履歴113内のB1の次に新しい仮の位置とする。マネージャは、暫定マスタ履歴113内のB1とB2の間に、辞書111内のA1より古い位置にある全てのバージョン「z5gg824157」〜「sa890bv24」を挿入する。
ステップS60において、マネージャは、暫定マスタ履歴113をマスタ履歴114とする(ステップS60)。そして、マネージャは、マスタ履歴生成処理を終了する。
ステップS51において、マネージャは、A1のバージョンが暫定マスタ履歴113内に出現していないと判定した場合には(ステップS51;No)、A1が辞書111内で最古であるか否かを判定する(ステップS61)。A1が辞書111内で最古でないと判定した場合には(ステップS61;No)、マネージャは、辞書111内のA1の次に新しい位置をA2とする(ステップS62)。
そして、マネージャは、A2のバージョンが暫定マスタ履歴113内に出現しているか否かを判定する(ステップS63)。A2のバージョンが暫定マスタ履歴113内に出現していないと判定した場合には(ステップS63;No)、マネージャは、A2が辞書111内で最古であるか否かを判定する(ステップS64)。A2が辞書111内で最古でないと判定した場合には(ステップS64;No)、マネージャは、辞書111内でA2の次に新しい位置を新たなA2とし(ステップS65)、ステップS63に移行する。
ステップS63において、A2のバージョンが暫定マスタ履歴113内に出現していると判定した場合には(ステップS63;Yes)、マネージャは、A2のバージョンが暫定マスタ履歴113内で出現する位置をB2とする(ステップS66)。そして、マネージャは、暫定マスタ履歴113のB2のバージョンを、辞書111内のA1とA2に挟まれたバージョン(A1、A2を含む)に置き換える(ステップS67)。
一例として、図17Dに示すように、辞書111の最新のバージョンの位置A1には、バージョン「ffde2f866」が設定されている。位置A1のバージョン「ffde2f866」が暫定マスタ履歴113内に出現していない。位置A1の次に新しい位置をA2とするが、位置A2のバージョン「z5gg824157」は、暫定マスタ履歴113内に出現していない。そこで、辞書111内でA2の次に新しい位置をA2とする。位置A2のバージョンは、「27f14r87z」である。位置A2のバージョン「27f14r87z」が暫定マスタ履歴113内に出現している。暫定マスタ履歴113内に出現している位置は、B2である。マネージャは、暫定マスタ履歴113のB2のバージョンを、辞書111内のA1とA2に挟まれたバージョン(A1、A2を含む)に書き換える。すなわち、マネージャは、暫定マスタ履歴113のB2のバージョンを、「ffde2f866」、「z5gg824157」、「27f14r87z」に置き換える。
続いて、マネージャは、辞書111内でA2の次に新しい位置をA1とする(ステップS68)。そして、マネージャは、マスタ履歴生成処理を継続すべく、ステップS51に移行する。
ステップS64において、マネージャは、A2が辞書111内で最古であると判定した場合には(ステップS64;Yes)、暫定マスタ履歴113内で最古の位置よりも古い仮の位置をB2とする(ステップS69)。そして、マネージャは、暫定マスタ履歴113のB2のバージョンを、辞書111内のA1とA2に挟まれたバージョン(A1、A2を含む)に書き換えるべく、ステップS67に移行する。
一例として、図17Eに示すように、辞書111のA1の位置には、バージョン「ffde2f866」が設定されている。位置A1のバージョン「ffde2f866」が暫定マスタ履歴113内に出現していない。位置A1の次に新しい位置をA2とするが、位置A2のバージョン「z5gg824157」は、暫定マスタ履歴113内に出現していない。さらに、位置A2の次に新しい位置をA2とするが、位置A2のバージョン「27f14r87z」は、暫定マスタ履歴113内に出現していない。また、位置A2は、辞書111内で最古の位置である。そこで、マネージャは、暫定マスタ履歴113内で最古の位置よりも古い仮の位置をB2とする。マネージャは、暫定マスタ履歴113のB2のバージョンを、辞書111内のA1とA2に挟まれたバージョン(A1、A2を含む)に書き換える。すなわち、マネージャは、暫定マスタ履歴113のB2のバージョンを、「ffde2f866」、「z5gg824157」、「27f14r87z」に置き換える。
ステップS61において、マネージャは、A1が辞書111内で最古であると判定した場合には(ステップS61;Yes)、暫定マスタ履歴113の最古の部分に辞書111のA1のバージョンを追加する(ステップS70)。
一例として、図17Fに示すように、辞書111のA1の位置には、バージョン「sa890bv24」が設定されている。位置A1のバージョン「sa890bv24」が暫定マスタ履歴113内に出現していない。位置A1は、辞書111内で最古である。マネージャは、暫定マスタ履歴113の最古の部分に辞書111のA1のバージョンを追加する。すなわち、マネージャは、辞書111の最古のバージョン「sa890bv24」を暫定マスタ履歴113の最古の部分に追加する。
そして、マネージャは、ステップS60に移行し、マスタ履歴生成処理を終了する。この結果、マネージャは、PC2のエージェントから通知されたインベントリ情報に含まれるウィルス検出ソフト名のウィルス検出ソフトに対するマスタ履歴114を完成する。
[評価処理のフローチャート]
次に、評価処理のフローチャートを、図18を参照して説明する。図18は、評価処理のフローチャートを示す図である。なお、図18では、バージョン識別子をバージョンと略記するものとする。
判定制御装置1のマネージャは、マスタ履歴114から評価対象PC2のバージョンが最新よりどれだけ古いかを確認する(ステップS71)。例えば、マネージャは、PC2のエージェントから通知されたインベントリ情報に含まれるバージョンを取得する。マネージャは、マスタ履歴114から、取得したバージョンと一致するバージョンに対応する新旧114aを取得する。マネージャは、マスタ履歴114を参照して、取得した新旧114aが最新よりどれだけ古いかを確認する。
そして、マネージャは、セキュリティ管理プログラムへの設定に基づいて、バージョンが問題あるかどうかを評価する(ステップS72)。そして、マネージャは、評価結果を例えば管理者に提供する。(ステップS73)。
[実施例の効果]
上記実施例によれば、判定制御装置1は、ウィルス検出ソフトが導入されたPC2から送信されたインベントリ情報より、ウィルス検出ソフトの定義情報を取得する。判定制御装置1は、取得した定義情報および定義情報の履歴から、ウィルス検出ソフトの定義情報の判定に用いられる判定定義情報を生成する。判定制御装置1は、生成した判定定義情報を用いて、PC2に導入されたウィルス検出ソフトの定義情報の判定を行う。かかる構成によれば、判定制御装置1は、ウィルス検出ソフトが導入されたPC2から送信された定義情報を用いて判定定義情報を生成することで、同じウィルス検出ソフトが導入されたPC2の定義情報を正しく判定することが可能となる。すなわち、判定制御装置1は、セキュリティ管理プログラムベンダー4からダウンロードして用いられる辞書の代わりに判定制御情報を生成することで、PC2に導入されたウィルス検出ソフトの定義情報を正しく判定することが可能となる。
また、上記実施例によれば、判定制御装置1は、取得した定義情報が記憶部11に蓄積された定義情報のうちの最新の取得タイミングの定義情報と一致する場合に、取得した定義情報を最新バージョンと判定する判定定義情報を生成する。かかる構成によれば、判定制御装置1は、PC2から取得する定義情報を利用して、定義情報のバージョン判定に用いられる判定定義情報を生成することができる。
また、上記実施例によれば、判定制御装置1は、ウィルス検出ソフトが導入された複数のPC2から送信されたそれぞれのインベントリ情報より、ウィルス検出ソフトのそれぞれの定義情報を取得する。判定制御装置1は、PC2毎に蓄積された定義情報をバージョンの新しい順に併合した判定定義情報を生成する。かかる構成によれば、判定制御装置1は、複数のPC2から取得する定義情報を利用して、定義情報のバージョン判定に用いられる判定定義情報を生成することができる。
また、上記実施例によれば、判定制御装置1は、PC2毎に蓄積された定義情報をバージョンの新しい順に併合した第1の情報と、ウィルス検出ソフトの定義情報の実績を示す第2の情報とを用いて、定義情報をバージョンの新しい順に併合した判定定義情報を生成する。かかる構成によれば、判定制御装置1は、複数のPC2から取得する定義情報および定義情報の実績を示す情報を利用して、定義情報のバージョン判定に用いられる判定定義情報を生成することができる。
[その他]
なお、判定制御装置1は、PC2のエージェントからインベントリ情報を通知したタイミングで、個別履歴を更新し、該当するウィルス検出ソフトに関する暫定マスタ履歴を生成し、マスタ履歴を生成するように説明した。しかしながら、判定制御装置1は、これに限定せず、PC2のエージェントからインベントリ情報を通知したタイミングで、個別履歴を更新するのみにしても良い。そして、判定制御装置1は、所定のタイミングで、マスタ履歴が更新されていないウィルス検出ソフトを順番に選択し、選択したウィルス検出ソフトに関する暫定マスタ履歴を生成し、マスタ履歴を生成するようにしても良い。
また、判定制御装置1は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記した個別履歴更新部122、暫定マスタ履歴生成部123およびマスタ履歴生成部124などの各機能を搭載することによって実現することができる。
また、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、暫定マスタ履歴生成部123とマスタ履歴生成部124とを1個の部として統合しても良い。一方、個別履歴更新部122を、通知された履歴データ(バージョン識別子など)を個別履歴112に追加する追加部と、通知されたバージョン識別子に応じて個別履歴112を修正する修正部を分散しても良い。また、辞書111、個別履歴112、暫定マスタ履歴113およびマスタ履歴114を判定制御装置1の外部装置としてネットワーク経由で接続するようにしても良い。
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図1に示したパケット解析装置1と同様の機能を実現するパケット解析プログラムを実行するコンピュータの一例を説明する。図19は、判定制御プログラムを実行するコンピュータの一例を示す図である。
図19に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207とを有する。また、コンピュータ200は、記憶媒体からプログラムなどを読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
ドライブ装置213は、例えばリムーバブルディスク211用の装置である。HDD205は、判定制御プログラム205aおよび判定制御処理関連情報205bを記憶する。
CPU203は、判定制御プログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは、判定制御装置1の各機能部に対応する。判定制御処理関連情報205bは、辞書111、個別履歴112、暫定マスタ履歴113およびマスタ履歴114に対応する。そして、例えばリムーバブルディスク211が、判定制御プログラム205aなどの各情報を記憶する。
なお、判定制御プログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらから判定制御プログラム205aを読み出して実行するようにしても良い。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータに、
ウィルス対策ソフトウェアが導入された端末装置から送信されたインベントリ情報より、前記ウィルス対策ソフトウェアの定義情報を取得し、
該取得した定義情報と、記憶部に記憶された前記端末装置からの前記定義情報の取得履歴と、に基づいて、前記ウィルス対策ソフトウェアの定義情報のバージョン判定に用いられる判定定義情報を生成し、
該生成した判定定義情報を用いて、前記端末装置に導入された前記ウィルス対策ソフトウェアの定義情報のバージョン判定を行う
処理を実行させることを特徴とする判定制御プログラム。
(付記2)該生成する処理は、該取得した定義情報が前記記憶部に記憶された前記定義情報の取得履歴のうちの最新の取得タイミングの定義情報と一致する場合に、該取得した定義情報を最新バージョンと判定する
処理を実行させることを特徴とする付記1に記載の判定制御プログラム。
(付記3)該取得する処理は、前記ウィルス対策ソフトウェアが導入された複数の端末装置から送信されたそれぞれのインベントリ情報より、前記ウィルス対策ソフトウェアのそれぞれの定義情報を取得し、
前記コンピュータに、
前記端末装置毎に蓄積された定義情報と、該定義情報それぞれのバージョンについての新旧の順序情報とを含む判定定義情報を生成する
処理を実行させることを特徴とする付記2に記載の判定制御プログラム。
(付記4)該生成する処理は、前記端末装置毎に蓄積された定義情報をバージョンの新しい順に併合した第1の情報と、前記ウィルス対策ソフトウェアの定義情報の実績を示す第2の情報とを用いて、前記定義情報をバージョンの新しい順に併合した判定定義情報を生成する
処理を実行させることを特徴とする付記3に記載の判定制御プログラム。
(付記5)該生成する処理は、該取得した定義情報が、対応する定義情報の蓄積の中で最新のバージョンと異なるバージョンと一致する定義情報である場合には、対応する定義情報の蓄積を該取得した定義情報を最新のバージョンとする蓄積に修正し、該修正した蓄積を含んで、前記端末装置毎に蓄積された定義情報をバージョンの新しい順に併合した判定定義情報を生成する
処理を実行させることを特徴とする付記3に記載の判定制御プログラム。
(付記6)ウィルス対策ソフトウェアが導入された端末装置から送信されたインベントリ情報より、前記ウィルス対策ソフトウェアの定義情報を取得する取得部と、
前記取得部によって取得された定義情報と、記憶部に記憶された前記端末装置からの前記定義情報の取得履歴と、に基づいて、前記ウィルス対策ソフトウェアの定義情報のバージョン判定に用いられる判定定義情報を生成する生成部と、
前記生成部によって生成された判定定義情報を用いて、前記端末装置に導入された前記ウィルス対策ソフトウェアの定義情報のバージョン判定を行う判定部と、
を有することを特徴とする判定制御装置。
(付記7)コンピュータが、
ウィルス対策ソフトウェアが導入された端末装置から送信されたインベントリ情報より、前記ウィルス対策ソフトウェアの定義情報を取得し、
該取得した定義情報と、記憶部に記憶された前記端末装置からの前記定義情報の取得履歴と、に基づいて、前記ウィルス対策ソフトウェアの定義情報のバージョン判定に用いられる判定定義情報を生成し、
該生成した判定定義情報を用いて、前記端末装置に導入された前記ウィルス対策ソフトウェアの定義情報のバージョン判定を行う
各処理を実行することを特徴とする判定制御方法。