(57)【要約】【課題】ファイル検査システムの運用におけるユーザビリティを向上すること。【解決手段】  本発明におけるプログラムは、コンピュータによるファイル検査のための設定データを生成するための処理を実行させるプログラムであって、ファイルもしくは複数のファイルからなるファイル群のうちの少なくとも一方についての管理情報を記憶する管理情報記憶手段にアクセスする工程と、管理情報記憶手段に記録された管理情報を解析し、重要度決定に必要な解析結果情報を生成する工程と、解析結果情報に基づき、重要度を決定する工程と、決定された重要度に基づきファイル検査のための設定データを生成し、前記設定データを設定データ記憶手段に記録する工程を含むプログラムである。このようにすることによりファイル検査システムの運用におけるユーザビリティを向上することが可能となる。【選択図】図３
2006072856.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによるファイル検査のための設定データを生成するための処理を、コンピュータに実行させる、ファイル検査のための設定データ生成プログラムであって、前記処理は、
（ａ）ファイルもしくは複数のファイルからなるファイル群のうちの少なくとも一方についての管理情報を記憶する管理情報記憶手段にアクセスする工程と、
（ｂ）前記アクセスした管理情報記憶手段に記録された管理情報を解析し、ファイルもしくはファイル群のうちの少なくとも一方の重要度決定に必要な解析結果情報を生成する工程と、
（ｃ）前記解析結果情報に基づき、前記ファイルもしくはファイル群のうちの少なくとも一方の重要度を決定する工程と、
（ｄ）前記決定された重要度に基づきファイル検査のための設定データを生成し、前記設定データを設定データ記憶手段に記録する工程と、
を含む、ファイル検査のための設定データ生成プログラム。
【請求項２】
前記管理情報記憶手段には複数のファイル群の管理情報が記録され、
前記解析結果情報は、前記複数のファイル群の各ファイル群の重要度決定に必要な情報を含み、
前記工程（ｃ）は、前記各ファイル群の重要度に基づき、前記各ファイル群に含まれるファイルの重要度を決定する、
請求項１に記載のファイル検査のための設定データ生成プログラム。
【請求項３】
前記解析結果情報は、ファイル間もしくはファイル群間の依存関係に関する情報のうちの少なくとも一方を含み、
前記工程（ｃ）は、前記解析結果情報に含まれる前記依存関係に基づきファイルもしくはファイル群のうちの少なくとも一方の重要度を決定する、
請求項１に記載のファイル検査のための設定データ生成プログラム。
【請求項４】
前記管理情報記憶手段には複数のファイル群の各ファイル群に関する管理情報が記録され、
前記解析結果情報は前記複数のファイル群間の依存関係に関する情報を含み、
前記工程（ｃ）は、ファイルが含まれるファイル群の他のファイル群との依存関係に基づき、前記ファイルの重要度を決定する、
請求項３に記載のファイル検査のための設定データ生成プログラム。
【請求項５】
前記工程（ｃ）は、前記ファイルの重要度を、当該ファイルが含まれるファイル群の依存関係と当該ファイルの属性に基づいて決定する、請求項４に記載のファイル検査のための設定データ生成プログラム。
【請求項６】
前記工程（ｃ）は、ファイル群に依存する依存ファイル群数に基づいて当該ファイル群の重要度を決定する、請求項３に記載のファイル検査のための設定データ生成プログラム。
【請求項７】
前記依存ファイル群は、ファイル群に直接に依存するファイル群と他のファイル群を介して当該ファイル群に間接的に依存するファイル群を含む、請求項６に記載のファイル検査のための設定データ生成プログラム。
【請求項８】
前記間接的な依存ファイル群は、予め定められた階層の依存先までの依存ファイル群から構成される、請求項７に記載のファイル検査のための設定データ生成プログラム。
【請求項９】
前記工程（ｃ）は、被依存ファイルに依存する依存ファイル数に基づいて当該被依存ファイルの重要度を決定する、請求項３に記載のファイル検査のための設定データ生成プログラム。
【請求項１０】
ファイルもしくはファイル群のインストール処理に応答して、前記工程（ａ）を開始する、請求項１に記載のファイル検査のための設定データ生成プログラム。
【請求項１１】
コンピュータによるファイル検査のための設定データを生成するシステムであって、
ファイルもしくは複数のファイルからなるファイル群のうちの少なくとも一方の管理情報を記憶する管理情報記憶手段と、
前記アクセスした管理情報記憶手段に記録された管理情報を解析し、ファイルもしくはファイル群のうちの少なくとも一方の重要度決定に必要な解析結果情報を生成する、解析手段と、
前記解析結果情報に基づき、前記ファイルもしくはファイル群のうちの少なくとも一方の重要度を決定する、重要度決定手段と、
前記決定された重要度に基づきファイル検査のための設定データを生成する、設定データ生成手段と、
を含むシステム。
【請求項１２】
前記重要度決定手段は、前記ファイル間もしくはファイル群間の依存関係に基づいて重要度を決定する、請求項１１に記載のシステム。
【請求項１３】
ファイルもしくはファイル群のインストールによって、管理情報記憶手段の管理情報が更新され、
前記解析手段は、前記インストールに応答して、前記更新された管理情報記憶手段の管理情報の解析を開始する、
請求項１１又は１２に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル検査のための設定データ生成プログラム及びシステムに関する。
【背景技術】
【０００２】
コンピュータによるネットワークの技術は近年、急速な進化を遂げており、遠隔地のコンピュータにアクセスし、ファイルの入出力や書き換え等の操作を行うということが当然のように出来る時代になってきた。しかし、ネットワーク技術の進歩に伴い、他人のコンピュータにアクセスし、不正に機密情報を入手したり、他人のシステムを書き換えて業務妨害をしたりというネットワーク犯罪の問題も増加するようになってきた。
【０００３】
そのような不正なアクセスからコンピュータを守る手段として、完全性検査システムがある。完全性検査システムとは、コンピュータシステム内のファイルが完全な状態を保っているかという完全性を検査し、コンピュータシステムが健全な状態にあるか否かを自動的に判断するシステムである。完全性検査の方法は、コンピュータシステム内の各ファイルに対して、ファイル自体の書き換えや書き込み許可情報の書き換えなどを検査することによりファイルの状態変化を確認し、その状態変化が許される状態変化かどうかを判断する方法で行われる。
【０００４】
しかしながら、このような完全性検査システムは、各ファイルに合わせて検査する書き込み許可情報や状態の変化が許されるものであるかの情報を設定しなければならず、詳しい知識を必要とするものであった。また、コンピュータシステムは、構成するファイル数が全部で数十万という数にも及ぶものが多く、全てのファイルについて検査を行うとコンピュータに対する負荷が重く、時間がかかるという問題点があった。また、新しいプログラムをインストールし、あるいは、既存のプログラムをアップデートするなどしてコンピュータシステムの更新が行われると、ファイル群の全体構成が変化する。このため、コンピュータシステムの更新があるたびに、設定をやり直さなくてはならなかった。
【０００５】
この対策として、ファイルに応じて検査項目を変更する方法（例えば、特許文献１など）や、検査頻度を変更するという方法がある。つまり、コンピュータシステムの動作になくてはならないファイルは、検査項目を多くしたり、検査頻度を高くしたりし、ほとんど使用されないファイルは、その逆を行う。このようにすることにより、検査の時間を短縮することができ、なくてはならないファイルに対する削除や書き換えなどを早期発見することが可能になる。
【特許文献１】特開平０５−３１４１１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、ファイルの種類などに応じて、その検査項目や検査頻度を決定するには、専門的な知識が必要となる。また、数十万に及ぶファイル数の一つ一つのファイルに対して手作業で設定することは事実上不可能であった。
【０００７】
本発明は上記のような事情を背景としてなされたものであって、本発明の目的は、ファイル検査システムの運用におけるユーザビリティを向上することである。
【課題を解決するための手段】
【０００８】
本発明におけるファイル検査のための設定データ生成プログラムは、コンピュータによるファイル検査のための設定データを生成するための処理を、コンピュータに実行させる、ファイル検査のための設定データ生成プログラムであって、前記処理は、（ａ）ファイルもしくは複数のファイルからなるファイル群のうちの少なくとも一方についての管理情報を記憶する管理情報記憶手段にアクセスする工程と、（ｂ）前記アクセスした管理情報記憶手段に記録された管理情報を解析し、ファイルもしくはファイル群のうちの少なくとも一方の重要度決定に必要な解析結果情報を生成する工程と、（ｃ）前記解析結果情報に基づき、前記ファイルもしくはファイル群のうちの少なくとも一方の重要度を決定する工程と、（ｄ）前記決定された重要度に基づきファイル検査のための設定データを生成し、前記設定データを設定データ記憶手段に記録する工程と、を含む、ファイル検査のための設定データ生成プログラムである。このようにすることにより、ファイル検査システムの運用におけるユーザビリティを向上することが可能となる。
【０００９】
前記管理情報記憶手段には複数のファイル群の管理情報が記録され、前記解析結果情報は、前記複数のファイル群の各ファイル群の重要度決定に必要な情報を含み、前記工程（ｃ）は、前記各ファイル群の重要度に基づき、前記各ファイル群に含まれるファイルの重要度を決定するようにしてもよい。こうすることにより、決定される重要度の精度を上げることが可能となる。
【００１０】
前記解析結果情報は、ファイル間もしくはファイル群間の依存関係に関する情報のうちの少なくとも一方を含み、前記工程（ｃ）は、前記解析結果情報に含まれる前記依存関係に基づきファイルもしくはファイル群のうちの少なくとも一方の重要度を決定するようにしてもよい。こうすることにより、依存関係による重要度への影響を反映させ、決定される重要度の精度を上げることが可能となる。
【００１１】
前記管理情報記憶手段には複数のファイル群の各ファイル群に関する管理情報が記録され、前記解析結果情報は前記複数のファイル群間の依存関係に関する情報を含み、前記工程（ｃ）は、ファイルが含まれるファイル群の他のファイル群との依存関係に基づき、前記ファイルの重要度を決定するようにしてもよい。こうすることにより、決定される重要度の精度を上げることが可能となる。
【００１２】
前記工程（ｃ）は、前記ファイルの重要度を、当該ファイルが含まれるファイル群の依存関係と当該ファイルの属性に基づいて決定するようにしてもよい。こうすることにより、依存関係とファイルの属性を重要度に反映させることができ、決定される重要度の精度を上げることが可能となる。
【００１３】
前記工程（ｃ）は、ファイル群に依存する依存ファイル群数に基づいて当該ファイル群の重要度を決定するようにしてもよい。こうすることにより、依存関係を明確に数値で反映させることができ、決定される重要度の精度を上げることが可能となる。
【００１４】
前記依存ファイル群は、ファイル群に直接に依存するファイル群と他のファイル群を介して当該ファイル群に間接的に依存するファイル群を含むようにしてもよい。こうすることにより、より詳細な依存関係が把握でき、決定される重要度の精度を上げることが可能となる。
【００１５】
前記間接的な依存ファイル群は、予め定められた階層の依存先までの依存ファイル群から構成されるようにしてもよい。こうすることにより、重要度決定にかかる時間を短縮することが可能となる。
【００１６】
前記工程（ｃ）は、被依存ファイルに依存する依存ファイル数に基づいて当該被依存ファイルの重要度を決定するようにしてもよい。こうすることにより、依存関係を明確に数値で反映させることができ、決定される重要度の精度を上げることが可能となる。
【００１７】
ファイルもしくはファイル群のインストール処理に応答して、前記工程（ａ）を開始するようにしてもよい。こうすることにより、インストール処理と管理情報記憶手段の解析及び設定データの生成を別途行わずにまとめて行うことができるので、作業効率を高めることが可能となる。
【００１８】
本発明におけるシステムは、コンピュータによるファイル検査のための設定データを生成するシステムであって、ファイルもしくは複数のファイルからなるファイル群のうちの少なくとも一方の管理情報を記憶する管理情報記憶手段と、前記アクセスした管理情報記憶手段に記録された管理情報を解析し、ファイルもしくはファイル群のうちの少なくとも一方の重要度決定に必要な解析結果情報を生成する、解析手段と、前記解析結果情報に基づき、前記ファイルもしくはファイル群のうちの少なくとも一方の重要度を決定する、重要度決定手段と、前記決定された重要度に基づきファイル検査のための設定データを生成する、設定データ生成手段と、を含むシステムである。このような構成により、ファイル検査システムの運用におけるユーザビリティを向上することが可能となる。
【００１９】
前記重要度決定手段は、前記ファイル間もしくはファイル群間の依存関係に基づいて重要度を決定するようにしてもよい。こうすることにより、依存関係とファイルの属性を重要度に反映させることができ、決定される重要度の精度を上げることが可能となる。
【００２０】
ファイルもしくはファイル群のインストールによって、管理情報記憶手段の管理情報が更新され、前記解析手段は、前記インストールに応答して、前記更新された管理情報記憶手段の管理情報の解析を開始するようにしてもよい。こうすることにより、インストール処理と管理情報記憶手段の解析を別途行わずにまとめて行うことができるので、作業効率を高めることが可能となる。
【発明の効果】
【００２１】
本発明によれば、ファイル検査システムの運用におけるユーザビリティを向上することが可能となる。
【発明を実施するための最良の形態】
【００２２】
発明の実施の形態１．
本実施形態の完全性検査システム設定システムは、ファイルの完全性を検査する完全性検査システムが使用する設定ファイルを生成する。特に、パッケージのメタデータを参照し、それに基づいてパッケージ及びそれに含まれるファイルの重要度を決定する。好ましくはメタデータに含まれるパッケージ間の依存関係情報を利用して、パッケージ及びファイルの重要度を決定する。重要度を決定すると、各ファイルの重要度に応じて検査を特定した設定ファイルを生成する。
図１を参照して、本発明の実施の形態１における、完全性検査システム設定システムが実装されたコンピュータの利用形態を示す。コンピュータ１は、インターネット網などの通信網に接続されたコンピュータであり、市販のＰＣ（Personal Computer）をそのまま利用することが可能である。本例において、完全性検査システム設定システムは、コンピュータ１に実装されている。サーバ２は、インターネット網などの通信網を介して、コンピュータ１にソフトウェアの配信を行うサーバである。サーバ２も、コンピュータ１同様に、市販のＰＣをそのまま利用することが可能であり、また、サーバ専用機を用いてもよい。コンピュータ１は、サーバ２の記憶手段に格納されたソフトウェアをインターネット網などの通信網を利用してダウンロードし、インストールを行うことができる。
【００２３】
図２は、本発明の実施の形態１における、コンピュータ１のハードウェア構成の一例を示している。尚、サーバ２も同様の構成を備えることができる。コンピュータ１は、中央処理装置（ＣＰＵ）２０１とメモリ２０４とを含んでいる。ＣＰＵ２０１とメモリ２０４とは、バスを介して補助記憶装置としてのハードディスク装置２１３に接続される。フレキシブルディスク装置２２０、ハードディスク装置２１３、ＣＤ−ＲＯＭドライブ２２６等の記憶媒体駆動装置は、フレキシブルディスク・コントローラ２１９、ＩＤＥコントローラ２２５などの各種コントローラを介してバスに接続される。ＲＯＭ２１４には、ＢＩＯＳ等のハードウェアとＯＳ間のデータの受け渡しを行うプログラム等が格納されている。フレキシブルディスク装置２２０等の記憶媒体駆動装置には、フレキシブルディスク等の可搬型記憶媒体が挿入される。可搬型記憶媒体としてはフロッピィディスクが代表的であるが、ＭＯなどの光磁気ディスクやＣＤ−Ｒ、ＤＶＤ−Ｒなどでもよい。また、ここでは記憶媒体駆動装置は、ＣＤ−ＲＯＭドライブとしたが、ＤＶＤ−ＲＯＭドライブなど他の記憶媒体駆動装置を利用してもよい。
【００２４】
記憶媒体にはオペレーティングシステムと共同してＣＰＵ２０１に命令を与え、本実施形態を実施するためのコンピュータ・プログラムを記憶することができる。本実施形態におけるコマンド、ライブラリ、モジュールは全てコンピュータ・プログラムの一つである。また、本実施形態におけるプログラムが生成するデータは、メモリ２０４に記憶され、必要に応じて、ハードディスク装置２１３にも記憶される。コンピュータ・プログラムは、メモリ２０４にロードされることによって実行される。コンピュータ・プログラムは圧縮し、又、複数に分割して記憶媒体に記憶することができる。ハードウェア構成は、典型的には、ユーザー・インターフェース・ハードウェアを備える。
【００２５】
ユーザ・インターフェース・ハードウェアとしては、例えば、入力をするためのポインティング・デバイス（マウス２０７、ジョイスティック等）やキーボード２０６、あるいは、視覚データをユーザーに提示するための液晶ディスプレイなどの表示装置２１１がある。入力された情報はキーボードマウスコントローラ２０５を介してＣＰＵ２０１に出力される。画像データはＶＲＡＭ２０９に記憶され、ＶＧＡコントローラ２０８からＤＡＣ／ＬＣＤコントローラ（ＬＣＤＣ）２１０を介して表示装置２１１に送られる。本実施例におけるユーザーからの入力は、全てマウス２０７やキーボード２０６などを介して行われるが、マウスの代わりにトラックボール、トラックポインタやジョイスティックなどの別のポインティングデバイスを用いてもよいし、キーボードの代わりに音声認識入力等の入力手段を用いてもよい。また、シリアルポート２１５を介してモデムを接続することが可能であり、シリアルポート２１５や通信アダプタ２１８を介してネットワークに接続し、サーバ２等の他のコンピュータシステムと通信を行うことができる。また、パラレルポート２１６には、プリンタ等の周辺機器をつなぐことができる。上記構成は必要に応じて省略することができる。また、必要に応じて同等の機能の別の装置と入れ替えて構成することも可能である。
【００２６】
図３は、本発明における完全性検査システム設定システムの構成を示すブロック図である。完全性検査システム設定システム１０は、パッケージマネージャラッパコマンド１００、データベース解析ライブラリ１０１、重要度決定モジュール１０２、完全性検査システム設定ファイル生成モジュール１０３、完全性検査システム設定ファイル１０４を備える。完全性検査システム設定システム１０は、プログラムファイル及びデータファイルとして、コンピュータ１の備える記憶手段に格納され、コンピュータ１の備えるＣＰＵ２０１がプログラムに含まれる命令に従って動作することによって、コンピュータ１上で実現される。
【００２７】
パッケージマネージャラッパコマンド１００は、パッケージマネージャ２０を起動するコマンドである。パッケージのインストールやアンインストールを行う場合、パッケージマネージャラッパコマンド１００を実行し、起動されたパッケージマネージャ２０が、パッケージのインストールやアンインストールを実行する。パッケージマネージャ２０起動後は、データベース解析ライブラリ１０１の起動も行う。
【００２８】
データベース解析ライブラリ１０１は、パッケージマネージャ２０の生成するパッケージ情報データベース２１に基づいて、パッケージの解析結果情報の生成を行うデータベース解析手段である。パッケージ情報データベース２１には、パッケージの管理情報を多数含む、パッケージのメタデータが記憶されている。生成した解析結果情報は、重要度決定モジュール１０２に出力される。重要度決定モジュール１０２は、データベース解析ライブラリ１０１から入力した解析結果情報に基づいて、各ファイルの重要度の決定を行うための重要度決定手段である。この時、ユーザーの入力した条件に応じて重要度決定方法のカスタマイズを行うことが可能である。決定した重要度は、重要度情報として完全性検査システム設定ファイル生成モジュール１０３へ出力される。
【００２９】
完全性検査システム設定ファイル生成モジュール１０３は、重要度決定モジュール１０２から入力した重要度情報に基づいて、完全性検査システム設定ファイル１０４を生成する完全性検査システム設定ファイル生成手段である。完全性検査システム設定ファイル１０４は、完全性検査システム３０が利用する、ファイル検査の項目や頻度などを設定するためのデータファイルである。
【００３０】
続いて、本発明における完全性検査システム設定システム１０の処理の流れについて説明する。本実施例では、Debian GNU/Linux上で動作する全てのソフトウェアについてDebian GNU/Linux上で検査を行うものとするが、動作環境はこれに限定されない。例えば、fink/Mac OS X上でもDebian GNU/Linuxと同様の動作を行うことが可能である。
【００３１】
例えば新たにプログラムをインストールなどのため、ユーザーは、まず、パッケージマネージャラッパコマンド１００が起動する。起動の方法は、ユーザーがプロンプトから起動コマンドを入力する、ＧＵＩ（Graphical User Interface）により画面上のアイコンをクリックあるいはダブルクリックする等の方法で行われる。あるいは、タイマーを用いて毎日０時などの決められた時間に起動する、１時間毎に起動する等、決められた時間や間隔で起動するように設定してもよい。この時、起動コマンドに引数を加えて入力したり、ＧＵＩにより引数をセットしたりすることにより、パッケージマネージャラッパコマンド１００に引数を与えることも可能である。
【００３２】
図４は、本形態におけるパッケージマネージャラッパコマンド１００の処理の流れを示すシーケンス図である。パッケージマネージャラッパコマンド１００が起動すると、ユーザーから与えられた引数の解析及び必要な前処理を行い（Ｓ１０１）、その後パッケージマネージャ２０を起動する（Ｓ１０２）。パッケージマネージャとは、パッケージの管理を行うソフトウェアのことであり、管理する内容については設計によって決定される。パッケージとはソフトウェアに含まれるファイル及びその構成情報などが基本単位として一つにまとまったものであり、パッケージマネージャにより管理される。Debian GNU/Linuxの場合は、dpkg(Debian package system)という独自のパッケージマネージャを有しており、パッケージの情報をデータベースにより管理している。本システムでは、ラッパコマンド１００と、パッケージマネージャ２０とが連動している。この時、先ほど与えられた引数をパッケージマネージャ２０に渡して起動することも可能である。dpkgは、パッケージのインストールやインストール後のパッケージの更新、アンインストールなどを行うことが可能であり、更にパッケージ間の依存情報をパッケージ情報データベースに備えているのが特徴である。パッケージ間の依存情報を備えているため、依存先のパッケージが存在しない状態で当該パッケージをインストールしてしまい動作しなくなるなどの依存先のパッケージとの不整合による動作不具合が起こりにくいのが特徴である。
【００３３】
パッケージマネージャ２０は、起動後、パッケージのインストール、パッケージの更新などを行い（Ｓ１０３）、パッケージ情報データベース２１に記録される管理情報の生成及び更新を行う（Ｓ１０４）。パッケージ情報データベース２１は、コンピュータ１の備えるハードディスク装置２１３に記録される。この時、通常はサーバ２へアクセスすることにより更新情報の確認を行い、更新が必要なパッケージやファイルについての更新が行われるが、ＣＤ−ＲＯＭドライブ２２６等を利用してＣＤ−ＲＯＭによる更新やインストールを行ってもよい。パッケージマネージャ２０の備えるどの機能をどのように利用するかは、パッケージマネージャラッパコマンド１００起動時に与えた引数により設定が可能である。また、パッケージマネージャラッパコマンド１００が起動時に与えられる引数以外に初期設定時の引数を用意して、前処理時にユーザーから与えられた引数に加えて、用意した引数をセットするようにしてもよい。インストール及びパッケージ情報データベース２１の生成処理が終了すると、パッケージマネージャ２０はパッケージマネージャラッパコマンド１００に処理の終了を通知する（Ｓ１０５）。
【００３４】
パッケージマネージャラッパコマンド１００は、パッケージマネージャ２０から処理の終了の通知Ｓ１０５を受けると、データベース解析ライブラリ１０１を起動する（Ｓ１０６）。データベース解析ライブラリ１０１は、パッケージマネージャ２０が生成したパッケージ情報データベース２１から、パッケージの重要度に関する情報の解析を行い、解析結果情報を生成する。このようにして、パッケージマネージャ２０の起動やデータベース解析ライブラリ１０１の起動をパッケージマネージャラッパコマンド１００に行わせることにより、パッケージマネージャ２０によるパッケージ情報データベース２１の生成とデータベース解析ライブラリ１０１によるパッケージ情報データベース２１の解析を自動的に関連付けて行うことが可能となる。これにより、パッケージのインストールなどによってパッケージ情報データベース２１が変更されるたびに、完全性検査システム３０の設定ファイルを生成、更新することができる。
【００３５】
続いて、図５に示すフローチャートを用いて、本発明におけるデータベース解析ライブラリ１０１の処理の流れについて説明する。まず、データベース解析ライブラリ１０１は、パッケージマネージャ２０の生成したパッケージ情報データベース２１の読み込みを行う（Ｓ２０１）。その後、読み込んだパッケージ情報データベース２１の解析を行う（Ｓ２０２）。
【００３６】
ここで、データベース解析ライブラリ１０１によるパッケージ情報データベース２１の解析方法について詳しく説明する。図６は、本実施例におけるパッケージ情報データベース２１に備えられたメタデータ２２の一例を示す図である。メタデータ２２には、パッケージに関する管理情報が多数格納されており、その中からどの情報を利用するかはユーザーがカスタマイズ可能である。重要度決定に使用する管理情報の特に好ましいものは、パッケージ間の依存関係に関する情報である。メタデータ２２は、パッケージが他のどのパッケージを利用しているかをDependsの項目に格納している。ここに記述されているパッケージ間の利用関係が依存関係であり、この依存関係を見ることにより、どのパッケージがどのパッケージに依存しているかを確認することができる。
【００３７】
また、この依存関係から被依存数を知ることもできる。例えば、パッケージＡ、パッケージＢがあり、パッケージＡのDependsの項目にパッケージＢが記述されている場合、パッケージＡがパッケージＢに依存しているという情報と同時に、パッケージＢがパッケージＡに依存されているという情報を知ることができる。つまり、全パッケージ情報のDependsに記述されているパッケージをカウントすることにより、各パッケージの被依存数をカウントすることが可能となる。
【００３８】
他のパッケージに依存されたパッケージに問題が発生すると、そのパッケージに依存している別のパッケージにまで影響が及ぶので、被依存数の多いパッケージは他のパッケージへの影響が大きいため、重要であると考えることができる。そこで、データベース解析ライブラリ１０１は、被依存数を重要度決定に関する重要な情報として解析結果情報を生成する。生成した解析結果情報はコンピュータ１が備えるメモリ２０４に記録される。
【００３９】
更に、直接的な依存関係だけでなく、より深く解析することにより、パッケージの重要度をより詳細に知ることができる。例えば、パッケージＡはパッケージＢに依存され、パッケージＢはパッケージＣ、Ｄ、Ｅ、Ｆに依存されている場合、パッケージＡの被依存数は１で、パッケージＢの被依存数は４であるため、直接的な被依存数のみを見るとパッケージＡよりパッケージＢの方が重要度が高いと判定されてしまうが、パッケージＡが動かなくなると、パッケージＢ、Ｃ、Ｄ、Ｅ、Ｆの５つが動かなくってしまう。他方、パッケージＢが動かなくなると、パッケージＣ、Ｄ、Ｅ、Ｆの４つが動かなくなってしまう。この場合、パッケージＢよりパッケージＡの方が重要であると考えることができる。
【００４０】
このような情報を知るには、パッケージ情報の依存関係だけでなく、依存先のパッケージの依存関係を調べ、更に、その依存先のパッケージ情報の依存関係を調べる、という処理を繰り返すことにより実現可能となる。このようにして、依存先の依存関係を繰り返したどっていくことにより、より詳細な解析結果情報を生成することが可能となる。いくつ先の依存関係まで調べるか、依存関係からどのような計算式で解析結果情報を生成するかはユーザーがコマンドの引数入力や設定ファイルの生成などにより設定可能である。
【００４１】
解析結果情報には、パッケージ情報データベース２１に含まれる、依存関係以外の情報を加えることも可能である。例えば、図６に示すように、パッケージ情報データベースには、Priority、Section等の情報が格納されている。Priorityはパッケージ毎に設定された重要度であり、「必須」「重要」「標準的」等に分類される。また、Sectionはパッケージを利用目的により分類したものであり、「ブートストラップ」「管理用」「基盤」「シェル」「科学計算」「ゲーム」等に分類される。
【００４２】
これらの情報を解析結果情報に反映させることが可能である。例えば、Priorityが「必須」「重要」「標準的」の順に重要度が下がっていくためそれぞれに応じた値を設定し、依存情報に反映させ、「管理用」「基盤」は「ゲーム」より重要であるため、こちらもそれぞれに応じた値を設定し、解析結果情報に反映させることができる。解析結果情報の生成が完了すると（Ｓ２０３）、データベース解析ライブラリ１０１は、重要度決定モジュール１０２に生成した解析結果情報を出力する（Ｓ２０４）。解析結果情報は、例えば、「Depends：libc6->shlib、Priority：standard、Section：base」のように、メタデータ２２の備える情報のうちそのまま利用できる情報はそのまま利用し、依存関係はツリー構造やグラフ構造などの形式にしてもよい。あるいは、「Depends：５、Priority：３、Section：１」のように、メタデータ２２が備えている情報のうち、重要度決定に必要な項目を数値化することによりデータ量の削減を図ってもよい。
【００４３】
続いて、図７に示すフローチャートを用いて、重要度決定モジュール１０２の処理の流れについて説明する。重要度決定モジュール１０２は、データベース解析ライブラリ１０１から解析結果情報を入力すると（Ｓ３０１）、パッケージの重要度（Ｓ３０２）、パッケージを構成するファイル毎の重要度の決定を行う（Ｓ３０３）。ファイル毎の重要度は、データベース解析ライブラリ１０１から入力したパッケージの解析結果情報、ファイルのアクセス制限、ファイルの種類、ファイルのパス等の情報により決定する。ファイルのアクセス制限やファイルの種類、ファイルのパス等の個々のファイルに関する情報がファイルの属性情報である。この時、これらの中からどのような情報を利用するか、どのように重要度に反映させるかは、ユーザーからの入力により変更可能である。
【００４４】
ファイルのアクセス制限は、ファイルが備えるパーミッション情報を見ることで確認することができる。この時、アクセス制限がかかっているファイルは重要なファイルと考えることができるため、ファイル重要度決定時に重みを加える。ファイルの種類は、ファイルの拡張子を見ることによって識別する。例えば、拡張子がiniの場合は初期設定ファイルであり、docやtxtの場合はドキュメントファイルである。ここでも、ini等の初期設定ファイルに破損や紛失があった場合、そのファイルを利用するソフトウェアは動作することができないので、ファイル重要度決定時に重みを加える。また、docやtxt等のドキュメントファイルは破損や紛失があっても、パッケージ内のソフトウェアの動作には影響が無いのでファイル重要度決定時に重みは加えない。
【００４５】
ファイルのパスは、コンピュータ１の備える記憶装置内でのファイルの存在する位置を示すデータである。例えば、システム設定ファイルは設定ディレクトリ内に配置される場合が多く、ドキュメントファイルはドキュメントディレクトリ内に配置される場合が多い。ここでも設定ディレクトリ内のファイルは重要度が高い、ドキュメントディレクトリのファイルは重要度が低い、と考えることができ、それぞれに応じた重みを加えることが可能である。この重みは、ユーザーからの入力により変更が可能である。このようにして、パッケージ内の各ファイルに対して重要度の決定を行う。
【００４６】
更に、パッケージ内の各ファイルに対して検査項目の設定を行う（Ｓ３０４）。検査項目は、ファイルの種類、書き込み許可情報や重要度に応じて設定を行う。まず、ファイルの種類に応じて分類を行う。例えば、標準的なUnix（登録商標）のファイルの種類としては、標準ファイルの他に、ブロック特殊ファイル、キャラクタ特殊ファイル、ディレクトリ、リンク、ソケット、パイプなどがあり、それぞれのファイルについてデフォルトの検査項目を設定する。
【００４７】
その後、ファイルの書き込み許可情報に応じて検査項目の追加や削除を行う。例えば、アクセス制限によって書き込みが禁止されているファイルは読み込み専用ファイルであり、通常はファイルの内容は変化しない。そこで、このような読み込み専用ファイルは、ファイルのブロック数やファイルサイズやファイル内容のチェックサムを検査項目に加え、これらの値が変化した場合は、不正なファイルの書き換えが行われた可能性があると判断できる。
【００４８】
更に、チェックサムの計算方法が複数ある完全性検査システムの場合、重要度に応じてチェックサム計算を行う計算方法を設定することも可能である。例えば、重要度の低いファイルの場合は計算を１種類のみで行うことにより計算量を抑え、重要度の高いファイルの場合は、チェックサムの計算を複数行うことにより厳密なチェックを行う。また、ユーザーからの入力により、回数の設定を行うこともできる。更に、ユーザーから検査にかかる時間の制限値を入力し、その時間内で終了するような範囲での計算を行うように設定することも可能である。
【００４９】
ファイルにアクセス制限がかけられていない書き込み可能ファイルの場合には、上述のファイルのブロック数やファイルサイズやファイル内容のチェックサムなどはファイル内容の変化と共に変わってしまうため、検査項目とすることができない。しかし、ログファイルなどの場合は、通常、ファイルの後ろに新しいログ情報を追加するだけなので、ファイルが追加されただけでなく書き換えが行われた場合は、ファイルの不正書き換えの可能性ありと判断することができる。そこで/var/log以下に設置されるファイルについては、例えば「AppendOnly」という追加のみによる書き換えは正常でそれ以外の書き換えは異常と判定する検査項目を設定することが可能である。
【００５０】
重要度決定モジュール１０２により決定した重要度情報は、コンピュータ１の備えるメモリ２０４に記録される。重要度情報は、例えば、「パッケージＡ−重要度７、構成ファイルＡ１−検査項目：AppendOnly  重要度：５８８、ファイルＡ２−検査項目：……」のような形式にすることができる。重要度決定モジュール１０２による重要度の決定が完了すると、完全性検査システム設定ファイル生成モジュール１０３を起動し、決定した重要度情報の出力を行う（Ｓ３０５）。
【００５１】
完全性検査システム設定ファイル生成モジュール１０３は、完全性検査システム３０で実際に利用される設定ファイルの生成を行う。図８は、完全性検査システム設定ファイル生成モジュール１０３の処理の流れについて説明したフローチャートである。設定ファイルは重要度決定モジュール１０２により決定された内容に基づいて行われる。具体的には、重要度決定モジュール１０２から、パッケージの重要度、ファイルの重要度、検査項目、の３種類の情報を入力し（Ｓ４０１）、その内容を、完全性検査システム３０の設定ファイルフォーマットに合わせてデータのコンバートを行う（Ｓ４０２）。
【００５２】
図９は、本実施例における完全性検査システム設定ファイル１０４の一例を示す図である。本実施例では、完全性検査システムとしてtripwireというソフトウェアを利用している。図９はtripwireの設定ファイルである。ここでの設定ファイルは、パッケージの名前１０４０、パッケージの重要度１０４１、パッケージを構成するファイルの名前１０４２、ファイルの検査項目１０４３、ファイルの重要度１０４４を格納している。完全性検査システムは、この内容に基づいて動作する。完全性検査システム設定ファイル生成モジュール１０３は、入力したパッケージの重要度、ファイルの重要度、検査項目の各データを図９に示すような設定ファイルの形式に変換し、完全性検査システム設定ファイル１０４を生成する。生成した完全性検査システム設定ファイル１０４は、コンピュータ１の備えるハードディスク装置２１３に記録される。
【００５３】
完全性検査システム設定ファイル１０４の生成が完了すると、完全性検査システム設定ファイル生成モジュール１０３は、生成した完全性検査システム設定ファイル１０４を完全性検査システム３０へ出力する。完全性検査システム３０は、完全性検査システム設定ファイル生成モジュール１０３から入力した完全性検査システム設定ファイル１０４の内容に応じて各ファイルの検査を行う。
【００５４】
図１０は、本実施例における重要度分析の結果を示すグラフである。本実施例ではDebian GNU/Linux上で利用可能な約５０００のパッケージについて重要度の計算を行った。その結果、重要度が２００を超えるパッケージは全パッケージの約６０分の１であることが分かった。従って、重要度が２００を超えるパッケージを構成するファイルを重点的に検査することにより、大幅に検査時間を短縮することが可能となる。
尚、本実施形態の完全形検査システム設定システム１０は、パッケージの管理情報を記憶するパッケージ情報データベースを参照してパッケージの重要度及びファイルの重要度を決定するが、ファイル間の依存関係などのファイルの管理情報を記憶するデータベースを生成し、その管理情報によってファイルの重要度及び検査項目などを決定することも可能である。本形態はファイルの完全性検査について説明したが、他の態様のファイル検査に本発明を適用することも可能である。
【００５５】
その他の発明の実施の形態．
上述の例の他に、パッケージの利用頻度を重要度決定の情報として利用してもよい。この場合、別途パッケージに含まれるプログラムの実行時間の総和を計測する必要がある。
【００５６】
パッケージの利用頻度は、例えば、パッケージに含まれるプログラム（ｃｍｄ（ｐ））の実行時間の総和と、そのパッケージが依存する利用頻度の総和として計算することができる。つまり、パッケージｐの利用頻度Ｕｐ（ｐ）を式で表すと、
【数１】
2006072856.tif 000003
数式（１）のようになる。ここで、support(p)は、パッケージｐに直接的にあるいは間接的に依存する全てのパッケージの集合である。つまり、依存先のパッケージの利用頻度を辿ることにより、依存先のパッケージの利用頻度も当該パッケージの利用頻度に反映させることができ、重要度計算の精度を上げることが可能となる。
【図面の簡単な説明】
【００５７】
【図１】本発明における完全性検査システム設定システムを利用したコンピュータの利用形態を示す図である。
【図２】本発明におけるコンピュータ及びサーバの構成を示すブロック図である。
【図３】本発明における完全性検査システム設定システムの構成を示すブロック図である。
【図４】本発明におけるパッケージマネージャラッパコマンドの処理の流れを示すシーケンス図である。
【図５】本発明におけるデータベース解析ライブラリの処理の流れを示すフローチャートである。
【図６】本発明におけるパッケージ情報データベースの一例を示す図である。
【図７】本発明における重要度決定モジュールの処理の流れを示すフローチャートである。
【図８】本発明における完全性検査システム設定ファイル生成モジュールの処理の流れを示すフローチャートである。
【図９】本発明における完全性検査システム設定ファイルの一例を示す図である。
【図１０】本発明における重要度分析の結果を示すグラフである。
【符号の説明】
【００５８】
１        コンピュータ
２        サーバ
２０１    ＣＰＵ
２０４    メモリ
２０５    キーボードマウスコントローラ
２０６    キーボード
２０７    マウス
２０８    ＶＧＡ
２０９    ＶＲＡＭ
２１０    ＤＡＣ／ＬＣＤＣ
２１１    表示装置
２１３    ハードディスク装置
２１４    ＲＯＭ
２１５    シリアルポート
２１６    パラレルポート
２１８    通信アダプタ
２１９    フレキシブルディスク・コントローラ
２２０    フレキシブルディスク装置
２２５    コントローラ
２２６    ドライブ
１０      完全性検査システム設定システム
２０      パッケージマネージャ
２１      パッケージ情報データベース
２２      メタデータ
３０      完全性検査システム
１００    パッケージマネージャラッパコマンド
１００    ラッパコマンド
１０１    データベース解析ライブラリ
１０２    重要度決定モジュール
１０３    完全性検査システム設定ファイル生成モジュール
１０４    完全性検査システム設定ファイル
１０４０  パッケージの名前
１０４１  パッケージの重要度
１０４２  ファイルの名前
１０４３  ファイルの設定項目
１０４４  ファイルの重要度
【図１】
2006072856.tif 000004
【図２】
2006072856.tif 000005
【図３】
2006072856.tif 000006
【図４】
2006072856.tif 000007
【図５】
2006072856.tif 000008
【図６】
2006072856.tif 000009
【図７】
2006072856.tif 000010
【図８】
2006072856.tif 000011
【図９】
2006072856.tif 000012
【図１０】
2006072856.tif 000013