以下、図面を参照して、本発明の一実施の形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
[実施の形態1]
まず、実施の形態1に係るファイル管理装置について、概略構成、ファイル確認処理の流れ及び具体例を説明する。本実施の形態1は、事前に作成された共有の照合情報の少なくとも一部を取得し、該照合情報を用いて、ファイルの改ざん、ファイルの削除、ファイル管理装置に配置されるべきでないファイルの追加の少なくともいずれか一つを確認する。
図1は、実施の形態1に係るファイル管理装置を有する管理システムの概略構成を示す模式図である。図1に示すように、実施の形態1に係る管理システムは、共有情報データベース(DB)2と、複数のファイル管理装置3X〜3Zとが通信可能に接続する構成を有する。
共有情報DB2は、共有の照合情報Rs1,Rs2,Rs3を有する。共有情報DB2からは、各ファイル管理装置3X〜3Zに、それぞれのファイル管理装置3X〜3Zが必要とする共有の照合情報Rs1,Rs2,Rs3を送信する。なお、共有の照合情報Rs1,Rs2,Rs3の保管及び流通は、図1のような集中管理方式に限らず、種々の既存手段を適用することが可能である。
ファイル管理装置3X〜3Zは、管理対象であるファイル管理装置3に配置(インストール)された複数のファイルFを管理する。ファイル管理装置3X〜3Zは、一般的なオペレーティングシステムを搭載したPC(Personal Computer)やサーバ装置等である。なお、図1に示すファイル管理装置3X〜3Zの数は、あくまで一例であり、これに限られるものではない。また、複数のファイル管理装置3X〜3Zについて、特に区別なく説明する場合には、ファイル管理装置3と記載する。
ファイル管理装置3X〜3Zが管理するファイル集合は、具体的には、ソフトウェアパッケージを構成するファイル集合である。ファイル集合は、例えば、プログラムを実行するプログラムファイルや、プログラムファイルの実行順序を既定する設定ファイルを含む。これらのファイル集合のファイルパスやディレクトリ構造は、インストール先によらず共通であることが多い。そして、プログラムファイル等は、インストール先によらず同じデータであることが多い。これに対し、設定ファイル等はインストール先に応じてデータを編集することが多い。
ファイル管理装置3X〜3Zは、管理対象のファイルについて、ファイルパスによってファイルデータを識別し、ディレクトリによってファイルパスを分類し、ディレクトリパスによってディレクトリを識別する。
ファイル管理装置3X〜3Zは、共有情報DB2内の共有の照合情報Rs1,Rs2,Rs3の少なくとも一部を取得する。そして、ファイル管理装置3X〜3Zは、取得した照合情報Rs1,Rs2,Rs3と管理対象のファイルとを照合する。ファイル管理装置3X〜3Zは、ファイルの改ざん、ファイルの削除、データベースに配置されるべきでないファイルの追加の少なくともいずれか一つの確認項目A1〜A3について確認を行い、確認結果を出力する。なお、ファイル管理装置3X〜3Zは、個々のファイル管理装置3X〜3Zにおいて、所定の項目においては、個別に照合情報を作成する。例えば、ファイル管理装置3Zは、本ファイル管理装置3Zに個別の照合情報Rc3を作成して、確認処理を行う。
[ファイル管理装置の構成]
次に、図2を参照して、図1に示すファイル管理装置3の構成について説明する。図2は、図1に示すファイル管理装置3の概略構成を示す模式図である。図2に示すように、記憶部10、通信部13、制御部14、入力部15及び出力部16を有する。
記憶部10は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光ディスク等の記憶装置である。なお、記憶部10は、RAM(Random Access Memory)、フラッシュメモリ、NVSRAM(Non Volatile Static Random Access Memory)等のデータを書き換え可能な半導体メモリであってもよい。記憶部10は、ファイル管理装置3で実行されるOS(Operating System)や各種プログラムを記憶する。さらに、記憶部10は、プログラムの実行で用いられる各種情報を記憶する。記憶部10は、ファイル記憶部11及び確認用情報記憶部12を有する。
ファイル記憶部11は、複数のファイルFで構成されるファイル集合Fsを複数配置する。ファイル集合Fsは、前述したように、例えば、ソフトウェアパッケージを構成するファイル集合である。なお、ファイル記憶部11には確認対象外のファイルも配置される。
確認用情報記憶部12は、ファイルの完全性を確認するために制御部14(後述)が使用する情報を記憶する。確認用情報記憶部12は、確認内容情報121、照合情報122、条件情報123、対応関係情報124を有する。確認用情報もファイルで構成される場合は、これらは、ファイル記憶部11に記録されるのが一般的な構成である。ただし、その場合、確認用情報自体の完全性保護について、留意する必要がある。
まず、確認内容情報121について説明する。図3は、図2に示す確認内容情報121を説明する図である。確認内容情報121は、図3に示すように、確認項目と、その内容とが対応付けられている。ここで、配置されるべきファイル集合は、ソフトウェアパッケージについて、プログラムや設定ファイルの不正な(攻撃、あるいは誤運用による)改ざん、追加、削除などが行われていない状態のファイル集合である。一方、ファイル管理装置3に配置されているファイル集合は、これらの状態を維持していない可能性がある。このため、ファイル管理装置3では、完全性確認を実施する必要性が生じる。
ファイル管理装置3では、完全性の確認内容として、図3に示す確認項目A1〜A3が設定される。具体的には、確認項目A1(第1の確認内容)は、ファイル記憶部11に配置されるべきファイルが改ざんされていないことである。確認項目A2(第2の確認内容)は、ファイル記憶部11に配置されるべきファイルが削除されていないことである。確認項目A3(第3の確認内容)は、データベースに配置されるべきでないファイルが追加されていないことである。ファイル管理装置3では、これらの確認項目A1〜A3の全て、或いは、少なくともいずれか一つを確認する。
次に、照合情報122について説明する。この照合情報122は、ファイル管理装置3が、自身が管理するファイル集合に対応する照合情報として、共有情報DB2から取得したものである。照合情報122は、リストB1(第1のリスト)、リストB2(第2のリスト)及びリストB3(第3のリスト)から構成されている。このリストB1〜B3について、図4を参照して説明する。
図4は、図2に示す照合情報122が有するリストB1〜B3の内容を説明する図である。図4の表122aに示すように、リストB1には、ファイル記憶部11に配置されるべきであるファイルであり、かつ、ファイルデータが変化しないファイルの、ファイルパスとファイルデータのダイジェスト値との組み合わせのリストが示される。ここで、ダイジェスト値は、例えば、ファイルデータのhash値である。hash値とは、元のデータをSHA256等のhash関数で変換した値であり、サイズが小さく、かつ元のデータが変化(改ざん)したらhash値も変化することから、改ざんの判定に用いる。
そして、リストB2には、ファイル記憶部11に配置されるべきファイルであり、かつ、ファイルデータが変化しうるファイルのファイルパスのリストが示される。
また、リストB3には、以下のディレクトリ条件b31〜b33を満たすディレクトリのディレクトリパスのリストを示す。ディレクトリ条件b31(第1のディレクトリ条件)は、直下のファイルは同じ照合情報に属するリストB1またはリストB2に記載のファイルである。ディレクトリ条件b32(第2のディレクトリ条件)は、直下のディレクトリは同じ照合情報に属するリストB1またはリストB2に記載のファイルを一つ以上配下に配置するディレクトリである。ディレクトリ条件b33(第3のディレクトリ条件)は、直下にディレクトリ条件b31またはディレクトリ条件b32に該当しないファイルまたはディレクトリを配置しないことである。
図5は、図2に示す照合情報122の一例を示す図である。図5に示すように、照合情報Rxxは、リストRxx−B1〜Rxx−B3を有する。具体的には、リストRxx−B1には、ファイルF11〜F13のファイルパス「ファイルパス11〜13」とファイルデータのダイジェスト値「ダイジェスト値1〜3」との組み合わせが記載されている。ファイルF11〜F13は、ファイル記憶部11に配置されるべきであるファイルであり、かつ、ファイルデータが変化しないファイルである。また、リストRxx−B2には、ファイルF21〜F23のファイルパス「ファイルパス21〜23」を記載されている。ファイルF21〜F23のファイルは、ファイル記憶部11に配置されるべきファイルであり、かつ、ファイルデータが変化しうるファイルである。また、リストRxx−B3には、ディレクトリ条件b31〜b33を満たすディレクトリパスの「ディレクトリパス1〜3」が記載されている。
次に、条件情報123について説明する。条件情報123は、ファイル記憶部11に配置されたファイル集合Fsと照合情報122とを照合し、確認内容を満たすか否かを判定する際にファイル管理装置3が用いる照合条件を示す情報である。
図6は、図2に示す条件情報123について説明する図である。図6に示すように、ファイル管理装置3は、照合条件として、照合条件C1(第1の照合条件)、照合条件C2(第2の照合条件)、照合条件C3(第3の照合条件)を用いる。
照合条件C1は、リストB1が示すファイルパスとファイルデータのダイジェスト値との組み合わせに一致する全てのファイルがファイル管理装置3に配置されていることである。照合条件C2は、リストB2が示すファイルパスに一致する全てのファイルがフファイル管理装置3に配置されていることである。そして、照合条件C3は、リストB3が示すディレクトリパスに一致する全てのディレクトリがファイル管理装置3に配置されており該ディレクトリの直下にはディレクトリ条件b31またはディレクトリ条件b32に該当しないファイルまたはディレクトリが配置されてないことである。ファイル管理装置3は、照合条件C1〜C3の少なくとも一つを満たすか否かを判定する。
対応関係情報124は、確認項目A1〜A3と、そのために要する照合情報122のリストB1〜B3との対応関係を示す情報である。対応関係情報124は、確認項目A1〜A3の全てを確認する場合には、リストB1〜B3の全てを必要であることが示す。また、確認項目A1〜A3のいずれかを確認する場合には、リストB1〜B3の一部のみで足りることを示す。
このため、ファイル管理装置3は、対応関係情報124を参照し、確認項目A1〜A3の確認の有無に応じて必要となるリストB1〜B3のみを、共有情報DB2内の照合情報Rs1〜Rs3から取得すればよい。すなわち、ファイル管理装置3は、共有情報DB2内の共有の照合情報Rs1〜Rs3のうち、自身が確認する確認項目で用いるリストを取得すればよい。なお、本実施の形態1では、ファイル管理装置3が確認項目A1〜A3の全てを確認する場合を例に説明する。
通信部13は、ネットワーク等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースである。通信部13は、NIC(Network Interface Card)等で実現され、LAN(Local Area Network)やインターネットなどの電気通信回線を介した他の装置(例えば、共有情報DB2)と制御部14(後述)との間の通信を行う。例えば、通信部13は、共有情報DB2から送信された照合情報Rs1〜Rs3を受信し、ファイル管理装置3による確認結果をファイル改ざんやファイル削除等に対する外部の対応装置に出力する。
制御部14は、ファイル管理装置3全体を制御する。制御部14は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路である。また、制御部14は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部14は、各種のプログラムが動作することにより各種の処理部として機能する。制御部14は、ファイル管理部141及びファイル確認部142を有する。
ファイル管理部141は、配置されたファイル記憶部11のファイルについて、ファイルパスによってファイルデータを識別し、ディレクトリによってファイルパスを分類し、ディレクトリパスによってディレクトリを識別してファイルを管理する。
ファイル確認部142は、共有の照合情報の少なくとも一部を用いてファイル記憶部11のファイルの完全性を確認する。ファイル確認部142は、まず照合情報を決定し、これに対応するファイル集合を確認する、ファイル記憶部11に配置されているファイルの完全性を確認する。ファイル確認部142は、取得部143、照合部144及び確認部145を有する。
取得部143は、共有情報DB2が記憶する共有の照合情報の少なくとも一部を取得する。取得部143は、ファイル記憶部11に配置されているファイル集合に応じた照合情報の送信を、共有情報DB2に要求することによって、確認のために用いる照合情報を取得する。取得部143は、取得した照合情報122を確認用情報記憶部12に記憶する。
照合部144は、ファイル記憶部11に配置されたファイルのファイルパス及び照合情報122が示すファイルパス、ファイル記憶部11に配置されたファイルのファイルデータのダイジェスト値及び照合情報122が示すファイルデータのダイジェスト値、及び、ファイル記憶部11に配置されたファイルのディレクトリパス及び照合情報122が示すディレクトリパス、のいずれか一つを照合する。そして、照合部144は、照合条件C1、照合条件C2、或いは、照合条件C3の少なくとも一つを満たすか否かを判定する。
確認部145は、照合部144による照合結果を基に、確認項目A1〜A3の少なくともいずれか一つを確認する。確認部145は、ファイル記憶部11に配置されたファイルについて、照合条件C1を満たす場合には確認項目A1を満たすと判定し、照合条件C1かつ照合条件C2を満たす場合には確認項目A2を満たすと判定し、照合条件C3を満たす場合には確認項目A3を満たすと判定する。本実施の形態1では、ファイル管理装置3が、管理対象のファイル集合のファイルについて、照合条件C1〜C3全てを判定し、確認項目A1〜A3の全てを確認する場合を例に説明する。
入力部15は、ファイル管理装置3の管理者からの各種操作を受け付ける入力インタフェースである。例えば、入力部15は、タッチパネル、音声入力デバイス、キーボードやマウス等の入力デバイスによって構成される。出力部16は、例えば、液晶ディスプレイなどの表示装置、プリンタ等の印刷装置、情報通信装置等によって実現され、ファイル管理処理に関する情報を出力する。
[取得部の処理]
次に、図7を参照して、共有の照合処理及び取得部143による照合情報122の取得処理について説明する。図7は、実施の形態1における管理システムにおける照合情報122の作成配布を説明する図である。
ソフトウェアパッケージの照合情報は、ソフトウェアの動作仕様などの知識を必要とするため、それぞれのソフトウェアパッケージの提供元が作成することが効率的である。したがって、図7に示すように、ソフトウェアパッケージAP1の提供元がソフトウェアパッケージAP1の照合情報Rs1を作成して、共有情報DB2に格納し、複数のファイル管理装置3X〜3Z間で共有可能とする。同様に、ソフトウェアパッケージAP2、AP3の提供元がソフトウェアパッケージAP2,AP3の照合情報Rs2,Rs3を作成して、共有情報DB2に格納し、複数のファイル管理装置3X〜3Z間で共有可能とする。
このように、本実施の形態1では、照合情報Rs1,Rs2,Rs3は、ファイル集合(ソフトウェアパッケージ)の提供元単位で分割作成し、複数のファイル管理装置3X〜3Zで共有できる。そして、ファイル管理装置3X〜3Zの管理者は、ファイル管理装置3X〜3Z個別の照合情報のみを作成すればよい。
例えば、ファイル管理装置3Xでは、管理対象のファイル集合に対応する照合情報Rs1,Rs2,Rs3を、共有情報DB2から取得する(矢印Y11参照)。ファイル管理装置3Y「では、管理対象のファイル集合に対応する照合情報Rs1を、共有情報DB2から取得すればよい(矢印Y12参照)。
また、ファイル管理装置3Zでは、管理対象のファイル集合に対応する照合情報Rs1,Rs2を、共有情報DB2から取得する(矢印Y13参照)。そして、図7の例では、ファイル管理装置3Zの管理者は、ファイル管理装置3Zに固有の照合情報Rc1のみを作成する。
したがって、本実施の形態1によれば、ファイル管理のために使用する照合情報の作成に関するファイル管理装置3の管理者の負担を低減でき、管理者による照合情報作成コストも軽減できる。
[照合部の処理]
次に、照合部144の処理について説明する。図8及び図9は、図2に示す照合部144の処理を説明する図である。図8のように、照合部144は、まず、確認に用いる照合情報Rxxを決定し、この照合情報Rxxを用いて、確認項目A1〜A3に対する確認結果を出力する場合を例に説明する。例えば、照合部144は、ファイル管理装置3に配置されている確認対象のファイルが、照合情報Rxxに記載の条件をすべて満たすか否かを確認する。
ここで、確認対象のファイルとディレクトリとの配置は、図9右の枠W2内に示すとおりである。具体的には、ファイルf1,f2は、データ改ざん確認(確認項目A1)対象であり、かつ、ディレクトリd1直下の過不足確認(確認項目A2)対象のファイルである。ファイルf3は、ディレクトリd1直下の過不足確認(確認項目A2)対象のファイルである。ディレクトリd1は、過不足確認(確認項目A3)対象のディレクトリである。ファイルf4は、ファイル完全性確認対象外のファイルである。
そして、このような配置を有するファイル集合に対して設定された照合情報Rxxの一例を、図9左の枠W1内に示す。図9に示すように、照合情報Rxxでは、リストB1に、データ改ざん確認対象のファイルf1,f2のファイルパスとディレクト値との組み合わせが記載される。照合情報Rxxでは、リストB2に過不足確認対象のファイルf3のファイルパスが記載され、リストB3に過不足確認対象のディレクトリd1のディレクトリパスが記載される。なお、枠W2内のディレクトリd2は、直下にリストB1,B2不記載のファイルf4を配置するため、リストB3には記載されない。なお、アプリケーションの正常な動作の結果、直下のファイルが増減する可能性もあるため、直下にリストB1,B2記載のファイルのみを配置するディレクトリを必ずリストB3に記載するとは限らない。照合情報作成者がファイル集合に関する知識(例:アプリケーションの動作仕様)に基づき決定する。
照合部144は、照合情報Rxxの各リストの記載内容と、ファイルf1〜f4のファイルパス、ダイジェスト値及びディレクトリと、を照合する(矢印Y10参照)。そして、確認部145は、照合結果を基に、確認対象のファイルが確認項目A1〜A3の全てを満たすか否かを確認する。
ここで、照合部144の具体的な処理について説明する。まず、照合部144は、確認対象のうちリストB1記載のファイルf1,f2について、照合条件C1を満たすか否かを判定する。この場合、照合部144は、ファイル管理装置3に、照合情報RxxのリストB1に記載のファイルパス「/d1/f1」が配置されているか否かを確認する。照合部144は、図9の例の場合、照合情報RxxのリストB1に記載のファイルパス「/d1/f1」がファイル管理装置3に配置されている。このため、照合部144は、ファイル管理装置3の「/d1/f1」ファイルのhash値を算出し、照合情報RxxのリストB1に記載のダイジェスト値「データ1」と照合する。
続いて、照合部144は、ファイル管理装置3に、照合情報RxxのリストB1に記載のファイルパス「/d1/f2」が配置されていることを確認し、配置されていることを確認すると、ファイル管理装置3の「/d1/f2ファイル」のhash値を算出し、照合情報RxxのリストB1に記載のダイジェスト値「データ2」と照合する。照合部144は、いずれについても算出したhash値とリストB1のダイジェスト値とが一致していた場合には、照合条件C1を満たすと判定する。
次に、照合部144は、照合部144は、確認対象のうちリストB2記載のファイルf3について、照合条件C2を満たすか否かを判定する。この場合、照合部144は、ファイル管理装置3に、照合情報RxxのリストB2に記載のファイルパス「/d1/d2/f3」が配置されていることを確認する。図9の例では、照合部144は、照合情報RxxのリストB2に記載のファイルパス「/d1/d2/f3」が配置されていることを確認できるため、照合条件C2を満たすと判定する。
次に、照合部144は、リストB3記載のディレクトリパス「d1」について、照合条件C3を満たすか否かを判定する。この場合、照合部144は、照合情報RxxのリストB3に記載のディレクトリパス「/d1」がファイル管理装置3に配置されていることを確認する。図9の例では、照合情報RxxのリストB3に記載のディレクトリパス「/d1」がファイル管理装置3に配置されていることが確認できる。
そして、ファイル管理装置3上の「/d1」直下のファイル{d1/f1, d1/f2}について、照合部144は、以下を確認する。まず、照合部144は、「/d1」直下のファイル「/d1/f1」,「/d1/f2」が、照合情報RxxのリストB1またはリストB2に記載のファイルであるか否かを判定する。図9の例では、「/d1」直下のファイル「/d1/f1」,「/d1/f2」はいずれも、照合情報RxxのリストB1に記載のファイルパスである。このため、照合部144は、「/d1」直下のファイル「/d1/f1」,「/d1/f2」が、照合情報RxxのリストB1に記載のファイルであると判定できる。
続いて、照合部144は、「/d1」直下のディレクトリ「/d1/d2」について、照合情報RxxのリストB1またはリストB2に記載のファイルを、配下に配置するディレクトリパスであることを確認する。図9の場合には、ディレクトリ「/d1/d2」の配下にはリストB2記載のファイルf3が配置されるため、「/d1」直下のディレクトリ「/d1/d2」について、照合情報RxxのリストB2に記載のファイルを、配下に配置するディレクトリパスであることを確認できる。すなわち、図9の例では、ディレクトリ「/d1」直下のファイルは、いずれもディレクトリ条件b31,b32を満たすため、照合部144は、照合条件C3を満たすと判定する。照合部144は、以上の照合結果を確認部145に出力する。
[確認部の処理]
次に、図9の例の場合に対する確認部145の処理について説明する。確認部145は、照合部144の照合結果を基に、確認項目A1〜A3について確認を行う。
まず、確認部145は、ファイル管理装置3に配置されたファイルが、照合情報RxxのリストB1記載の全てのリストについて、照合条件C1を満たす場合には、確認項目A1を満たすと判定する。すなわち、確認部145は、配置されるべきファイルが改ざんされてないと判定する。一方、確認部145は、ファイル管理装置3に配置されたファイルが、照合情報RxxのリストB1記載の全てのリストについて、照合条件C1を満たさない場合には、確認項目A1を満たしていないと判定する。すなわち、確認部145は、配置されるべきファイルが改ざんされていると判定する。
続いて、確認部145は、ファイル管理装置3に配置されたファイルが、照合情報RxxのリストB1記載の全てのリストについて照合条件C1を満たし、かつ、照合情報RxxのリストB2記載の全てのリストについて照合条件C2を満たす場合には、確認項目A2を満たすと判定する。すなわち、確認部145は、配置されるべきファイルが削除されてないと判定する。一方、確認部145は、ファイル管理装置3に配置されたファイルが、照合情報RxxのリストB1記載の全てのリストについて照合条件C1を満たしていない、または、照合情報RxxのリストB2記載の全てのリストについて照合条件C2を満たしていない場合には、確認項目A2を満たさないと判定する。すなわち、確認部145は、配置されるべきファイルが削除されていると判定する。
そして、確認部145は、ファイル管理装置3に配置されたファイルが、照合情報RxxのリストB3記載の全てのリストについて、照合条件C3を満たす場合には、確認項目A3を満たすと判定する。すなわち、確認部145は、配置されるべきでないファイルが追加されてないと判定する。一方、確認部145は、ファイル管理装置3に配置されたファイルが、照合情報RxxのリストB3記載の全てのリストについて、照合条件C3を満たしていない場合には、確認項目A3を満たさないと判定する。すなわち、確認部145は、配置されるべきでないファイルが追加されていると判定する。
なお、ファイル管理装置3は、複数の照合情報Rx1,Rx2,Rx3を登録しておき、複数の照合情報に対して順次または同時に照合及び確認を実施してもよい。また、ファイル管理装置3は、一つまたは複数の照合情報に対する完全性確認の順序や時刻をスケジューラ機能などに事前登録し、自動的に照合処及び確認を実施してもよい。また、ファイル管理装置3は、確認結果に基づきログやアラームなどを生成する他、エラーとなったファイルに対するアクセスを禁止する等の対処を取ってもよい。
[ファイル確認処理の処理手順]
次に、ファイル管理装置3によるファイル確認処理の処理手順について説明する。図10は、実施の形態1に係るファイル確認処理の処理手順のフローチャートである。
まず、ファイル管理装置3では、ファイル管理部141が、管理対象のファイルについて、ファイルパスによってファイルデータを識別し、ディレクトリによってファイルパスを分類し、ディレクトリパスによってディレクトリを識別するファイル管理工程を実行すする。また、取得部143が、共有情報DB2から、自身に配置されたファイル集合の確認のために用いる照合情報を取得し(ステップS11)、確認用情報記憶部12に記憶させる。
そして、照合部144は、確認対象のファイル集合に応じて、確認に用いる照合情報122を決定し、照合処理を行う(ステップS12)。照合処理は、所定の確認タイミングに達すると、配置されたファイルのファイルパス及び照合情報122が示すファイルパス、配置されたファイルのファイルデータのダイジェスト値及び照合情報122が示すファイルデータのダイジェスト値、及び、配置されたファイルのディレクトリパス及び照合情報122が示すディレクトリパス、のいずれか一つを照合する処理である。
続いて、確認部145は、照合部144による照合結果を基に、確認項目A1〜A3の少なくともいずれか一つを確認する確認処理を行い(ステップS13)、通信部13或いは出力部16が確認結果を出力する(ステップS14)。
[照合処理の処理手順]
次に、照合処理(ステップS12)の処理手順について説明する。図11は、図10に示す照合処理の処理手順を示すフローチャートである。
図11に示すように、照合部144は、照合情報122のリストB1のファイルパスとダイジェスト値との組み合わせを参照する(ステップS21)。そして、照合部144は、ファイル管理装置3にリストB1記載のファイルパスに一致する全てのファイルが配置されているか否かを確認する(ステップS22)。
照合部144は、ファイル管理装置3にリストB1記載のファイルパスに一致する全てのファイルが配置されていないこと確認した場合(ステップS22:No)、ファイル管理装置3に配置されたファイルは照合条件C1を満たさないと判定し(ステップS23)、ステップS28に進む。
一方、照合部144は、ファイル管理装置3にリストB1記載のファイルパスに一致する全てのファイルが配置されていること確認した場合(ステップS22:Yes)、ファイル管理装置3に配置された各ファイルのファイルデータのhash値を計算する(ステップS24)。そして、照合部144は、ファイルごとに、リストB1のダイジェスト値と計算したhash値とを照合する(ステップS25)。照合部144は、全てのファイルについて、リストB1のダイジェスト値と計算したhash値とが一致するか否かを判定する(ステップS26)。
照合部144は、全てのファイルについて、リストB1のダイジェスト値と計算したhash値とが一致しないと判定した場合(ステップS26:No)、このファイルは照合条件C1を満たさないと判定し(ステップS23)。ステップS28に進む。一方、照合部144は、全てのファイルについて、リストB1のダイジェスト値と計算したhash値とが一致すると判定した場合(ステップS26:Yes)、このファイルは照合条件C1を満たすと判定する(ステップS27)。
続いて、照合部144は、照合情報122のリストB2のファイルパスを参照する(ステップS28)。照合部144は、ファイル管理装置3に、リストB2記載の全てのファイルパスが確認対象のファイル集合内に配置されているか否かを判定する(ステップS29)。照合部144は、リストB2記載の全てのファイルパスが配置されていないと判定した場合(ステップS29:No)、照合条件C2を満たさないと判定し(ステップS30)、ステップS32に進む。一方、照合部144は、リストB2記載の全てのファイルパスが配置されていると判定した場合(ステップS29:Yes)、照合条件C2を満たすと判定する(ステップS31)。
続いて、照合部144は、照合情報122のリストB3のディレクトリパスを参照する(ステップS32)。そして、照合部144は、照合情報122のリストB3の全てのディレクトリパスがファイル管理装置3に配置されているか否かを判定する(ステップS33)。照合部144は、照合情報122のリストB3の全てのディレクトリパスがファイル管理装置3に配置されていると判定した場合(ステップS33:Yes)、該ディレクトリの直下のファイルは、照合情報122のリストB1またはリストB2に記載のファイルであるか否かを判定する(ステップS35)。
照合部144は、ディレクトリの直下のファイルは、照合情報122のリストB1またはリストB2に記載のファイルでないと判定した場合(ステップS35:No)、直下のディレクトリは、リストB1,B2に記載のファイルを一つ以上配下に配置するディレクリであるか否かを判定する(ステップS36)。
照合部144は、照合情報122のリストB3の全てのディレクトリパスがファイル管理装置3に配置されていないと判定した場合(ステップS33:No)、直下のディレクトリは、リストB1,B2に記載のファイルを一つ以上配下に配置するディレクリでないと判定した場合(ステップS36:No)、照合条件C3を満たさないと判定し(ステップS34)、ステップS38へ進む。
これに対し、照合部144は、ディレクトリの直下のファイルは、照合情報122のリストB1またはリストB2に記載のファイルであると判定した場合(ステップS35:Yes)、または、直下のディレクトリは、リストB1,B2に記載のファイルを一つ以上配下に配置するディレクリであると判定した場合(ステップS36:Yes)、照合条件C3を満たすと判定する(ステップS37)。照合部144は、照合条件C1〜C3に対する照合結果を確認部145に出力する(ステップS38)。
[確認処理の処理手順]
次に、確認処理(ステップS13)の処理手順について説明する。図12は、図10に示す確認処理の処理手順を示すフローチャートである。
図12に示すように、確認部145は、照合部144による照合結果を取得すると(ステップS41)、ファイル管理装置3に配置されたファイルが、照合情報122のリストB1記載の全てのリストについて、照合条件C1を満たすか否かを判定する(ステップS42)。確認部145は、照合情報122のリストB1記載の全てのリストについて、照合条件C1を満たすと判定した場合(ステップS42:Yes)、配置されるべきファイルが改ざんされていないこと(確認項目A1)を確認する(ステップS43)。これに対し、確認部145は、照合情報122のリストB1記載の全てのリストについて、照合条件C1を満たしていないと判定した場合(ステップS42:No)、配置されるべきファイルが改ざんされていることを確認する(ステップS44)。
続いて、確認部145は、ファイル管理装置3に配置されたファイルが、照合情報122のリストB1記載の全てのリストについて照合条件C1を満たし、かつ、照合情報122のリストB2記載の全てのリストについて照合条件C2を満たすか否かを判定する(ステップS45)。
確認部145は、照合情報122のリストB1記載の全てのリストについて照合条件C1を満たし、かつ、照合情報122のリストB2記載の全てのリストについて照合条件C2を満たすと判定した場合には(ステップS45:Yes)、配置されるべきファイルが削除されていない(確認項目A2)と判定する(ステップS46)。これに対し、確認部145は、照合情報122のリストB1記載の全てのリストについて照合条件C1を満たし、かつ、照合情報122のリストB2記載の全てのリストについて照合条件C2を満たしていないと判定した場合には(ステップS45:No)、配置されるべきファイルが削除されていると判定する(ステップS47)。
そして、確認部145は、ファイル管理装置3に配置されたファイルが、照合情報122のリストB3記載の全てのリストについて、照合条件C3を満たすか否かを判定する(ステップS48)。確認部145は、照合情報122のリストB3記載の全てのリストについて、照合条件C3を満たすと判定した場合(ステップS48:Yes)、配置されるべきでないファイルが追加されてない(確認項目A3)と判定する(ステップS49)。確認部145は、照合情報122のリストB3記載の全てのリストについて、照合条件C3を満たさないと判定した場合(ステップS48:No)、配置されるべきでないファイルが追加されていると判定する(ステップS50)。
続いて、確認部145は、確認結果を作成し(ステップS51)、通信部13又は出力部16に出力して確認処理を終了する。
[実施の形態1の効果]
このように、本実施の形態1では、事前に作成された共有の照合情報の少なくとも一部を外部から取得して、ファイルの完全性を確認している。このため、本実施の形態1によれば、ファイル管理のために使用する照合情報の作成に関するファイル管理装置3の管理者の負担を低減でき、管理者による照合情報作成コストも軽減できる。
また、本実施の形態1では、照合情報122として、配置されるべきであるファイルであり、かつ、ファイルデータが変化しないファイルのファイルパスとファイルデータのダイジェスト値との組み合わせを示すリストB1を有する照合情報を用いる。そして、本実施の形態1では、配置されたファイルのファイルパス及び照合情報122が示すファイルパス、配置されたファイルのファイルデータのダイジェスト値及び照合情報122が示すファイルデータのダイジェスト値を照合し、配置されるべきファイルが改ざんされてないことを確認している。したがって、本実施の形態1によれば、ファイル管理装置3の管理者の負担なく、ファイルの過不足を確認することが可能になる。
そして、本実施の形態1では、照合情報122として、配置されるべきファイルであり、かつ、ファイルデータが変化しうるファイルのファイルパスを示すリストB2を有する照合条件を用いる。そして、本実施の形態1では、照合情報122として、直下のファイルは同じ照合情報に属するリストB1またはリストB2に記載のファイルである第1のディレクトリ条件、直下のディレクトリは同じ照合情報に属するリストB1またはリストB2に記載のファイルを一つ以上配下に配置するディレクトリである第2のディレクトリ条件、直下に第1のディレクトリ条件または第2のディレクトリ条件に該当しないファイルまたはディレクトリを配置しない第3のディレクトリ条件を満たすディレクトリのディレクトリパスを示すリストB3、を有する照合情報を用いる。
そして、本実施の形態1では、配置されたファイルのファイルパス及び照合情報122が示すファイルパス、配置されたファイルのディレクトリパス及び照合情報122が示すディレクトリパス、ディレクトリ条件を照合することによって、ログファイル等のダイジェスト値を定義できないファイル、及び、ディレクトリの過不足確認を適切に行うことができる。
このように、実施の形態1によれば、ファイル管理に関する管理者の負担を低減するとともに、管理対象のファイルを正確に確認することができる。
[実施の形態1の変形例]
実施の形態1として、ファイル管理装置3が、確認項目A1〜A3の全てを確認する場合について説明したが、もちろん、ファイル管理装置3は、確認項目A1〜A3のいずれかを選択して確認を行ってもよい。その場合には、確認対象の確認項目によって使用する照合情報のリストの組み合わせが異なる。言い換えると、ファイル管理装置3は、取得した照合情報122が有するリストB1〜B3の組み合わせに応じて、確認項目A1と、確認項目A2,A3との少なくともいずれか一つを確認する。
図13は、図2に示す対応関係情報124のデータ構成の一例を示す図である。図13に示すように、対応関係情報124は、改ざん確認(確認項目A1)、過不足確認(確認項目A2,A3)の確認をする、または、しない、の組み合わせに応じて、照合情報のリストB1〜B3が必要(図13では、「要」と示す。)、または、不要であるかを対応付けている。
上述したように、改ざん確認(確認項目A1)、過不足確認(確認項目A2,A3)のいずれについても実行する場合には、1行目の方法1に示すように、照合情報122のリストB1〜B3の全てが必要である。また、改ざん確認(確認項目A1)のみを実行する場合には、2行目の方法2に示すように、リストB1のみが必要である。また、過不足確認(確認項目A2,A3)のみを実行する場合には、3行目の方法3に示すように、リストB2,B3のみが必要である。なお、改ざん確認(確認項目A1)、過不足確認(確認項目A2,A3)のいずれについても実行しない場合には、4行目に示すように、リストB1〜B3のいずれも不要である。このように、ファイル管理装置3は、確認項目の組み合わせに応じて、必要となるリストB1〜B3を取得すればよい(確認項目決定方法1)。一方、取得可能な照合情報、すなわち、作成・配布された照合情報にリストB1,B2,B3全てが備わっておらず、リストB1のみ、リストB2,B3のみ、といったケースが存在し、これらのケースにおいて実施可能な確認項目を確認する方法もある(確認項目決定方法2)。例えば、リストB1のみの照合情報であれば、確認項目A1のみ確認し、リストB2、B3のみの照合情報であれば、確認項目A2,A3のみを確認する。確認項目決定方法1と確認項目決定方法2は矛盾しないため、1つのシステムで両方実現可能であるが、確認項目決定方法2のみを実施するシステムであってもよい。
[実施の形態2]
次に、実施の形態2について説明する。実施の形態2では、ファイル管理装置3に配置されるファイルのうち、プログラムのアクセスの開始を検知したファイルに対して、完全性の確認処理を行い、確認結果に応じてアクセス先ファイルに対するアクセス遮断を行う。
図14は、実施の形態2に係るファイル管理装置の概略構成を示す模式図である。図14に示すように、実施の形態2に係るファイル管理装置303は、図2に示すファイル管理装置3と比して、アクセス検知部2141をさらに有する制御部214を備える。そして、制御部214は、アクセス検知部2141がプログラムのアクセスの開始を検知したファイルであるアクセス先ファイルに対して条件情報2123を参照して照合情報との照合を行う照合部2144及び確認部2145を有するファイル確認部2142を有する。
アクセス検知部2141は、配置されたファイルのいずれかに対するプログラムのアクセスの開始を検知する。例えば、アクセス検知部2141は、Linux(登録商標) OSではアクセスを開始するときに発行するAPIである“open”を実行するときに、openの実行を一時停止し、プロセスIDと、アクセス対象ファイルパスを、アクセス先ファイルとしてファイル確認部2142に通知するように設定することができる。
そして、照合部2144が参照する条件情報2123について説明する。図15は、図14に示す条件情報2123について説明する図である。図15に示すように、ファイル管理装置303は、アクセス先ファイルに対する照合条件として、照合条件C4(第4の照合条件)、照合条件C5(第5の照合条件)を用いる。
照合条件C4は、アクセス先ファイルに一致するファイルパスが照合情報122のリストB1に記載されており、アクセス先ファイルのファイルパスとファイルデータのダイジェスト値との組み合わせがリストB1に記載されていることである。照合条件C5は、アクセス先ファイルのファイルパスを配下に配置するディレクトリパスが照合情報122のリストB3に記載されている場合にアクセス先ファイルのファイルパスのディレクトリパス直下のファイルまたはディレクトリがディレクトリ条件b31またはディレクトリ条件b32を満たすことである。
照合部2144は、アクセス先ファイルに対して、照合情報122を照合し、照合条件C4、及び、照合条件C5を満たすか否かを判定する。そして、確認部2145は、アクセス先ファイルについて、照合条件C4を満たす場合には確認項目A1を満たすと判定する。また、確認部2145は、照合条件C5を満たす場合には確認項目A2,A3を満たすと判定する。一方、確認部2145は、アクセス先ファイルが照合情報122に記載がない場合には確認項目A1の確認対象外であると判定する。さらに、確認部2145は、アクセス先ファイルがリストB3に記載のディレクトリ配下に存在しない場合には確認項目A3の確認対象外であると判定する。
[照合部の処理]
図16及び図17は、図14に示す照合部2144の処理について説明する図である。実施の形態1では、まず、先に照合情報122を決定し、これに基づきファイル管理装置3に配置されるファイルを確認する。したがって、ファイル管理装置3では、配置されたファイルが照合情報122に記載されてなければ、違反判定となった。
これに対し、図16に示すように、本実施の形態2では、アクセス検知部2141が、まず先にファイル管理装置303における確認対象(アクセス先ファイル)(例えば、図17の枠W22記載の配置を有するファイルとディレクトリ)を決定する。続いて、照合部2144は、このアクセス先ファイルを、1つまたは複数の照合情報122(例えば、図17の枠W21内の照合情報Rxx)と照合し(図17の矢印Y21)、確認部2145は、照合結果を基に、確認項目A1,A3について確認を行う。
なお、本実施の形態2では、アクセス先ファイルの存在が前提となるため、確認項目A2(配置されるべきファイルが削除されてないこと)は自明であり、確認部2145は、確認項目A2の確認は行わない。また、実施の形態2では、アクセス先ファイルが照合情報122に記載されてない場合は、確認対象外となる。
ここで、照合部2144の具体的な処理について説明する。アクセス検知部2141が、プログラムがファイル「/d1/f1」にアクセスを開始したことを検知した場合を例に説明する。まず、照合部2144は、ファイル「/d1/f1」が照合条件C4を満たすか否かを判定する。すなわち、照合部2144は、アクセス先ファイルである「/d1/f1」が照合情報RxxのリストB1に記載されているか確認する。
そして、照合部2144は、アクセス先ファイルである「/d1/f1」が照合情報RxxのリストB1に記載されていることを確認すると、ファイル管理システムの「/d1/f1」ファイルのhash値を算出し、照合情報RxxのリストB1に記載のダイジェスト値「データ1」と照合する。照合部2144は、hash値とリストB1のダイジェスト値とが一致していた場合には、照合条件C4を満たすと判定する。なお、アクセス先ファイルである「/d1/f1」が照合情報RxxのリストB1に記載されていない場合には、このアクセス先ファイル「/d1/f1」は、改ざん確認対象外(確認項目A1対象外)である。
続いて、照合部2144は、アクセス先ファイル「/d1/f1」を配下に配置するディレクトリパスについて、照合条件C5を満たすか否かを判定する。まず、照合部2144は、アクセス先ファイル「/d1/f1」を配下に配置するディレクトリ「/d1」が照合情報RxxのリストB3に存在するか確認する。そして、照合部2144は、アクセス先ファイルパスのディレクトリパス直下のファイルまたはディレクトリが、ディレクトリ条件b31またはディレクトリ条件b32を満たすことを確認する。
この場合、照合部2144は、ディレクトリ条件b31について、アクセス先ファイルパスの「/d1」直下のファイルは、{d1/f1}であるため、これらについて以下を確認する。照合部2144は、「/d1」直下のファイル「/d1/f1」は、照合情報RxxのリストB1に記載のファイルパスであることを確認する。なお、「d1/f2」は、アクセス先ファイルパスではないので、確認しない。ただし、条件b32を確認する場合にはさらに以下に示すように留意が必要である。この場合には、「/d1」直下のファイル「/d1/f1」は、照合情報RxxのリストB1に記載のファイルパスであるため、照合部2144は、照合条件C5を満たすと判定する。なお、ファイル「f1」のd1直下は、ディレクトリではないため、照合部2144は、条件b32の確認は行わない。
[確認部の処理]
次に、図17の例の場合に対する確認部2145の処理について説明する。確認部2145は、照合部2144の照合結果を基に、確認項目A1,A3について確認を行う。
まず、確認部2145は、アクセス先ファイルについて、照合条件C4を満たす場合には、確認項目A1を満たすと判定する。すなわち、確認部2145は、アクセス先ファイルが改ざんされてないと判定する。一方、確認部2145は、アクセス先ファイルが、照合条件C4を満たさない場合には、確認項目A1を満たしていないと判定する。すなわち、確認部2145は、アクセス先ファイルが改ざんされていると判定する。
そして、確認部2145は、アクセス先ファイルについて、照合条件C5を満たす場合には、確認項目A3を満たすと判定する。すなわち、確認部2145は、アクセス先ファイルが追加されてないと判定する。一方、確認部2145は、アクセス先ファイルが、照合条件C5を満たしていない場合には、確認項目A3を満たさないと判定する。すなわち、確認部2145は、アクセス先ファイルが追加されていると判定する。
なお、確認部2145は、アクセス先ファイルが照合情報RxxのリストB1に記載がない場合にはアクセス先ファイルが確認項目A1の確認対象外であると判定する。そして、確認部2145は、アクセス先ファイルが照合情報RxxのリストB3に記載のディレクトリ配下に存在しない場合には確認項目A3の確認対象外であると判定する。
図18は、図17に示す照合情報Rxxを用いたアクセス検知ファイルに対する確認項目A3の判定結果を示す図である。図18に示すファイルパスをアクセス検知部2141が検知した場合のA3判定は、図18のようになる。
[ファイル確認処理の処理手順]
次に、ファイル管理装置303によるファイル確認処理の処理手順について説明する。図19は、実施の形態2に係るファイル確認処理の処理手順のフローチャートである。
まず、ファイル管理装置303では、取得部143が、共有情報DB2から、自身に配置されたファイル集合の確認のために用いる照合情報を取得し(ステップS61)、確認用情報記憶部12に記憶させる。
続いて、アクセス検知部2141が、配置されたファイルのいずれかに対するプログラムのアクセスの開始を検知する(ステップS62)。
照合部2144は、ファイル確認部2142がアクセスの開始を検知したアクセス先ファイルに応じて、確認に用いる照合情報122を決定し、照合処理を行う(ステップS63)。続いて、確認部2145は、照合部2144による照合結果を基に、確認項目A1,A2、A3の少なくともいずれか一つを確認する確認処理を行い(ステップS64)、通信部13或いは出力部16が確認結果を出力する(ステップS65)。なお、確認結果が照合条件違反の場合には、アクセスの先ファイルに対するアクセス遮断等の対処が実行される。
[照合処理の処理手順]
次に、照合処理(ステップS63)の処理手順について説明する。図20は、図19に示す照合処理の処理手順を示すフローチャートである。
図20に示すように、照合部2144は、照合情報122のリストB1のファイルパスとダイジェスト値との組み合わせを参照する(ステップS71)。そして、照合部2144は、アクセス先ファイルに一致するファイルパスが、リストB1に記載されているか否かを確認する(ステップS72)。
照合部2144は、アクセス先ファイルに一致するファイルパスが、リストB1に記載されていないこと確認した場合(ステップS72:No)、アクセス先ファイルは改ざん確認(確認項目A1)対象外であると判定する(ステップS73)。
一方、照合部2144は、アクセス先ファイルに一致するファイルパスが、リストB1に記載されていること確認した場合(ステップS72:Yes)、アクセス先ファイルのファイルデータのhash値を計算し(ステップS74)、リストB1のダイジェスト値と計算したhash値とを照合する(ステップS75)。照合部2144は、アクセス先ファイルについて、リストB1のダイジェスト値と計算したhash値とが一致するか否かを判定する(ステップS76)。
照合部2144は、アクセス先ファイルについて、リストB1のダイジェスト値と計算したhash値とが一致すると判定した場合(ステップS76:Yes)、このアクセス先ファイルは照合条件C4を満たすと判定する(ステップS77)。一方、照合部2144は、アクセス先ファイルについて、リストB1のダイジェスト値と計算したhash値とが一致しないと判定した場合(ステップS76:No)、アクセス先ファイルは照合条件C4を満たさないと判定する(ステップS78)。
続いて、照合部2144は、照合情報122のリストB3のディレクトリパスを参照する(ステップS79)。そして、照合部2144は、アクセス先ファイルを配下に配置するディレクトリパスがリストB3に記載されているか否かを判定する(ステップS80)。この時点で、「過不足確認対象ディレクトリ」が決定する。図17の例では、過不足確認対象ディレクトリ「/d1」が決定する。
照合部2144は、アクセス先ファイルを配下に配置するディレクトリパスがリストB3に記載されていないと判定した場合(ステップS80:No)、このアクセス先ファイルは不正追加確認(確認項目A3)対象外であると判定する(ステップS81)。
これに対し、照合部2144は、アクセス先ファイルを配下に配置するディレクトリパスがリストB3に記載されていると判定した場合(ステップS80:Yes)、該アクセス先ファイルは、過不足確認対象ディレクトリ直下のファイルであり、かつ、照合情報122のリストB1またはリストB2に記載のファイルであるか否かを判定する(ステップS82)。なお、図18の「/d1/f1」,「/d1/f2」がアクセス先ファイルの場合は、ステップS82は「Yes」となる。
照合部2144は、アクセス先ファイルは、過不足確認対象ディレクトリ直下のファイルでない、または、照合情報122のリストB1またはリストB2に記載のファイルでないと判定した場合(ステップS82:No)、アクセス先ファイルパスの過不足確認対象ディレクトリ直下のディレクトリは、リストB1,B2に記載のファイルを一つ以上配下に配置するディレクリであるか否かを判定する(ステップS83)。
例えば、アクセス先ファイルパスが「/d1/d2/d3」であり、アクセス先ファイルパスの過不足確認対象ディレクトリが「/d1」であり、アクセス先ファイルパスの過不足確認対象ディレクトリ直下のディレクトリが「/d1/d2」である場合、「/d1/d2」配下にリストB1,B2に記載のファイルが1つ以上存在するかについて(ステップS83)は、「/d1/d2/d3」があるため、Yesとなる。なお、上記は、ファイルシステム上の存在有無ではなく、照合情報上の存在有無の確認となる。また、例えば、アクセス先ファイルパスが「/d1/d2/d4」であり、アクセス先ファイルパスの過不足確認対象ディレクトリが「/d1」であり、アクセス先ファイルパスの過不足確認対象ディレクトリ直下のディレクトリ「/d1/d2」である場合、「/d1/d2」配下にリストB1,B2に記載のファイルが1つ以上存在するかについて(ステップS83)は、「/d1/d2/d3」があるため、Yesとなる。なお、上記は、ファイルシステム上の存在有無ではなく、照合情報上の存在有無の確認である。
照合部2144は、アクセス先ファイルについて、過不足確認対象ディレクトリ直下のファイルであり、かつ、照合情報122のリストB1またはリストB2に記載のファイルであると判定した場合(ステップS82:Yes)、または、アクセス先ファイルパスの過不足確認対象ディレクトリ直下のディレクトリは、リストB1,B2に記載のファイルを一つ以上配下に配置するディレクリであると判定した場合(ステップS83:Yes)、照合条件C5を満たすと判定する(ステップS84)。
一方、照合部2144は、アクセス先ファイルについて、(ステップS82:No)かつ、アクセス先ファイルパスの過不足確認対象ディレクトリ直下のディレクトリは、リストB1,B2に記載のファイルを一つ以上配下に配置するディレクリでないと判定した場合(ステップS83:No)、照合条件C5を満たさないと判定する(ステップS85)。照合部2144は、照合条件C4,C5に対する照合結果に加え、改ざん確認(確認項目A1)対象外とした場合における判定結果、及び、不正追加確認(確認項目A3)対象外とした場合における判定結果を確認部145に出力する(ステップS86)。
[確認処理の処理手順]
次に、確認処理(ステップS64)の処理手順について説明する。図21は、図19に示す確認処理の処理手順を示すフローチャートである。
図21に示すように、確認部2145は、照合部2144による照合結果を取得すると(ステップS91)、アクセス先ファイルについて、照合条件C4を満たすか否かを判定する(ステップS92)。確認部2145は、アクセス先ファイルについて、照合条件C4を満たすと判定した場合(ステップS92:Yes)、アクセス先ファイルが改ざんされていないこと(確認項目A1)を確認する(ステップS93)。これに対し、確認部2145は、アクセス先ファイルについて、照合条件C4を満たしていないと判定した場合(ステップS92:No)、アクセス先ファイルが改ざんされていることを確認する(ステップS94)。
そして、確認部2145は、アクセス先ファイルが、照合条件C5を満たすか否かを判定する(ステップS95)。確認部2145は、アクセス先ファイルについて、照合条件C5を満たすと判定した場合(ステップS95:Yes)、配置されるべきでないファイルが追加されてない(確認項目A3)と判定する(ステップS96)。確認部2145は、アクセス先ファイルについて、照合条件C5を満たさないと判定した場合(ステップS95:No)、配置されるべきでないファイルが追加されていると判定する(ステップS97)。
続いて、確認部2145は、アクセス先ファイルについての改ざん確認(確認項目A1)対象であるか否か及び不正追加確認(確認項目A3)対象であるか否かに関する判定結果を加えて、アクセス先ファイルについての確認結果を作成し(ステップS98)、通信部13又は出力部16に出力して確認処理を終了する。
[実施の形態2の効果]
従来技術では、ファイル管理システムのファイルが不正に改ざんされた時点から、監視確認するまでの時点まで、改ざんを確認できない期間が存在するという問題があった。これに対し、本実施の形態2では、プログラムによるアクセスを開始されたファイルを検知し、このアクセス先ファイルについて、照合及び確認を行う。言い換えると、本実施の形態2では、プログラムによるアクセスを開始されたファイルを検知しながら、照合及び確認を行う。このため、実施の形態2は、実施の形態1の効果に加え、不正改ざんの確認や過不足確認をリアルタイムに確認することができるという効果をさらに奏する。
[実施の形態3]
次に、実施の形態3について説明する。実施の形態3では、ソフトウェアパッケージのインストール条件によってファイルデータが変更するファイルについては、ファイル管理装置の管理者がこのファイルに対応したリストB1を有する照合情報を個別に生成する場合について説明する。なお、共有の照合情報は、ソフトウェアパッケージのファイル集合のうちインストール条件によってファイルパス及びファイルデータが変化しないファイル集合の各ファイルのファイルパスとファイルデータのダイジェスト値とを第1のリストを示す。この共有の照合情報は、それぞれのソフトウェア提供者によって作成、提供されたものである。
[ファイル管理装置の構成]
まず、実施の形態3に係るファイル管理装置の構成について説明する。図22は、実施の形態3に係るファイル管理装置の概略構成を示す模式図である。
図22に示すように、実施の形態3に係るファイル管理装置303は、図2に示すファイル管理装置3と比して、制御部314が、共通の照合情報と、個別の照合情報とを取得する取得部3143を有する構成を有する。ファイル管理装置303が複数のファイルで構成されるソフトウェアパッケージをインストールした場合、取得部3143は、ソフトウェアパッケージの一部のファイルについて、該ファイル管理装置303固有の個別の照合情報を取得する。取得部3143は、通信部13または入力部15を介して、個別の照合情報を取得する。
なお、共有情報DB2から取得した共有の照合情報は、ソフトウェアパッケージのファイル集合のうちインストール条件によってファイルパス及びファイルデータが変化しない第2のファイル集合の各ファイルのファイルパスとファイルデータのダイジェスト値とをリストB2に示すものである。
そして、照合部3144は、ファイルパス及びダイジェスト値の照合を実行する際には、第1のファイル集合については固有の照合情報におけるリストB1を参照し、第2のファイル集合については共有の照合情報におけるリストB2を参照する。
[照合情報の取得処理]
次、取得部3143による固有の照合情報取得処理について説明する。図23は、図21に示す取得部3143による固有の照合情報取得処理を説明する図である。
図23に示すように、ファイル管理装置303がソフトウェアパッケージPiをインストールした例について説明する。ソフトウェアパッケージPiは、設定ファイルなどのファイルを含む第1のファイル集合と、プログラムファイルなどのファイルを含む第2のファイル集合とによって構成される。プログラムファイルは、ファイルデータ(すなわちダイジェスト値)が固定して変化しないファイルである。これに対し、設定ファイルは、設定ファイルなど個別にカスタマイズして利用するファイルである。
ソフトウェアパッケージの提供元は、多数のソフトウェアパッケージについて実施の形態1,2と同様に、共有の照合情報Rsi,Rsi´を事前に作成し(図23の(1)参照)、他のファイル管理装置でも利用可能となるように、共有情報DB2に格納する。
ソフトウェアパッケージPiをインストールするファイル管理装置303は、インストールするソフトウェアパッケージPiに対応する共有の照合情報Rsiを共有情報DB2から取得する(矢印Y61参照)。ファイル管理装置303は、プログラムファイルFiなどファイルデータがインストール条件によらず変化せず固定であるファイル集合については、改ざん確認に用いる照合情報のリストB1として共有の照合情報RsiのリストB1を適用する(図23の(2)参照)。
そして、ファイル管理装置303は、設定ファイルFuなどファイルデータがインストール条件によって変更しカスタマイズされるファイル集合については、改ざん確認に用いる照合情報のリストB1として、この設定ファイルFuについて個別に設定されたリストB1を有する照合情報Rxiを取得する。具体的には、取得部3143は、設定ファイルFuのファイルパスと、ファイルデータのhash値をファイルデータのダイジェスト値として取得し、ファイルパスに対応付けてリストB1に記載する。ファイル管理装置303は、設定ファイルFuについては、改ざん確認に用いる照合情報のリストB1として個別に取得した照合情報RxiのリストB1を適用する(図23の(3)参照)。
[本実施の形態3の効果]
従来では、ソフトウェアパッケージに属するファイルのうち、設定ファイル等の個々の環境に応じてデータを変更するファイルは、ソフトウェア提供元が照合情報を作成できない。
これに対し、実施の形態3では、ファイルデータがインストール条件によって変化し得る設定ファイルなどは、改ざん確認に用いる照合情報のリストB1の情報は、ファイル管理装置が個別に取得する。このように、実施の形態3では、設定ファイル等の個々の環境に応じてデータを変更するファイルについては、個々のファイル管理装置で取得する。このため、実施の形態3によれば、環境に応じてデータを変更するファイルについても適切な照合情報を用いて確認処理を行うことができる。
そして、実施の形態3では、ファイルデータがインストール条件によらず固定であるプログラムファイルなどは、改ざん確認に用いる照合情報のリストB1の情報は複数のファイル管理装置で共有する。したがって、本実施の形態3によれば、ファイル管理のために使用する照合情報の取得に関する管理者の負担を低減でき、管理者による照合情報作成コストも軽減できる。
[実施の形態3の実施例1]
図24は、実施の形態3の実施例1について説明する図である。図24に示すように、ファイル管理装置303が、複数のソフトウェアパッケージP1,P2をインストールする場合に、このソフトウェアパッケージP1,P2間で設定ファイルFuを共有する場合について説明する。この場合には、ファイル管理装置303は、インストールするソフトウェアパッケージP1,P2に対応する共有の照合情報Rs1,Rs2を共有情報DB2から取得する(矢印Y62参照)。
そして、ファイル管理装置303は、ソフトウェアパッケージP1については、改ざん確認に用いる照合情報のリストB1として共有の照合情報Rs1のリストB1を適用する(図24の(1)参照)。ファイル管理装置303は、ソフトウェアパッケージP2については、改ざん確認に用いる照合情報のリストB1として共有の照合情報Rs2のリストB1を適用する(図24の(2)参照)。
そして、ファイル管理装置303は、設定ファイルFuについては、改ざん確認に用いる照合情報のリストB1として、この設定ファイルFuについて個別に設定されたリストB1を有する照合情報Rc0を取得する。そして、ソフトウェアパッケージP1,P2の設定ファイルFuについては、改ざん確認に用いる照合情報のリストB1として個別に取得した照合情報Rc0のリストB1を適用する(図24の(3)参照)。
[実施の形態3の実施例2]
次に、実施の形態3の実施例2について説明する。本実施例2では、ソフトウェアパッケージのインストール条件によってファイルデータが変更するか否かに応じてリストB1を共有の照合情報或いは個別に取得した照合情報のいずれかから選択するとともに、過不足確認の際に用いるリストB2,B3は、共有の照合情報のリストB2,B3を採用する場合について説明する。
図25は、実施の形態3の実施例2に係るファイル管理装置が用いる照合情報について説明する図である。図25では、図23と同様に、ファイル管理装置303は、ソフトウェアパッケージの提供元が事前作成した共有の照合情報Rs1(図25の(1)参照)を取得する(矢印Y63)。そして、ファイル管理装置303は、プログラムファイルFiを含む第2のファイル集合については、改ざん確認に用いる照合情報のリストB1として共有の照合情報Rs1のリストB1を適用する(図25の(2)参照)。そして、ファイル管理装置303は、設定ファイルFuを含む第1のファイル集合については、この設定ファイルFuについて個別に設定されたリストB1を有する照合情報Rxiを取得する(図25の(3)参照)。
ここで、共有の照合情報Rs1は、プログラムファイルFiなどを含む第2のファイル集合及び設定ファイルFuなどを含む第1のファイル集合のうち、ソフトウェアパッケージのインストール条件によってファイルパスが変化せずソフトウェアパッケージのインストール条件によってファイルデータが変化するファイルのファイルパスをリストB2に示す。そして、共有の照合情報Rs1は、該第リストB2に記載したファイルを直下に配置するディレクトリのディレクトリパスをリストB3に示すものである。
すなわち、共有の照合情報Rs1は、リストB2及びリストB3に、ソフトウェアパッケージP1について過不足確認(確認項目A2,A3)を行うために要するファイルパス、ディレクトリパスを示している。したがって、照合情報Rs1のリストB2及びリストB3については、プログラムファイルFiを含む第2のファイル集合、設定ファイルFuを含む第1のファイル集合のいずれについても共有する(図25の(2)参照)。
これによって、照合部3144は、ファイルパス及びディレクトリパスの照合を実行する際には、第1のファイル集合及び第2のファイル集合のいずれについても、共有の照合情報Rs1におけるリストB1及びリストB3を参照する。
図25に示すように、ファイル管理装置の管理者が個別に作成する照合情報は、設定ファイルFuを含む第1のファイル集合についてのリストB1のみであるため、ファイル管理のために使用する照合情報の作成に関する管理者の負担を低減できる。
また、図26は、実施の形態3の実施例2に係るファイル管理装置303が用いる照合情報の他の例について説明する図である。ファイル管理装置303が、複数のソフトウェアパッケージP1,P2間で設定ファイルFuを共有する場合、共有の照合情報Rs1,Rs2を共有情報DB2から取得する(矢印Y64参照)。
そして、ファイル管理装置303は、ソフトウェアパッケージP1,P2のプログラムファイルF1を含む第2のファイル集合のそれぞれに対し、改ざん確認に用いる照合情報のリストB1として、それぞれ対応する照合情報Rs1,Rs2のリストB1を適用する。また、ファイル管理装置303は、ソフトウェアパッケージP1,P2のプログラムファイルF1を含む第2のファイル集合のそれぞれに対し、過不足確認(確認項目A3,A2)照合情報のリストB1としてそれぞれ対応する共有の照合情報Rs1,Rs2のリストB2,B3を適用する。
ファイル管理装置303は、設定ファイルFuを含む第1のファイル集合については、改ざん確認に用いる照合情報のリストB1として、個別に設定されたリストB1を有する照合情報Rc0を取得し(図26の(1)参照)、ソフトウェアパッケージP1,P2間で共有する。そして、ファイル管理装置303は、設定ファイルFuについては、過不足確認(確認項目A3,A2)に用いるリストB2,B3として、共有の照合情報Rs1,Rs2のリストB2,B3を適用する。
図26に示すように、ソフトウェアパッケージP1,P2をインストールする場合であっても、ファイル管理装置の管理者が個別に作成する照合情報は、設定ファイルFuを含む第1のファイル集合についてのリストB1のみであるため、ファイル管理のために使用する照合情報の作成に関する管理者の負担を低減できる。
図27は、ファイル管理装置が3つのソフトウェアパッケージをインストールする場合に関する照合情報の共有状態を説明する図である。図27の上段に示すように、3つのソフトウェアパッケージP1,P2,P3をインストールした場合について説明する。
この場合、ソフトウェアパッケージP1〜P3の各第2のファイル集合については、リストB1〜B3のいずれについても、共有情報DB2から取得したそれぞれのソフトウェアパッケージP1〜P3に対応する共有の照合情報Rs1〜Rs3のRs1〜Rs3−リストB1〜B3が適用される。そして、ファイル管理装置303は、3つのソフトウェアパッケージP1,P2,P3間で共有する設定ファイルFuのリストB1については、この設定ファイルFu固有の照合情報Rc0−B1を作成する。そして、ファイル管理装置303は、設定ファイルFuのリストB2,B3については、共有の照合情報Rs1〜Rs3−リストB2,B3を適用する。
[実施の形態4]
次に、実施の形態4について説明する。実施の形態4では、特定のディレクトリ直下に構成要素となるファイルを配置する複数のソフトウェアパッケージをインストールした場合に使用する照合情報の作成について説明する。実施の形態4に係るファイル管理装置は、ファイル管理装置303と同構成である。図28は、実施の形態4に係るファイル管理装置が用いる照合情報について説明する図である。
この場合、図28に示すように、ファイル管理装置は、共通のディレクトリに、複数のソフトウェアパッケージP1,P2に属するファイルをインストールする。この場合、共通のディレクトリに配置されるファイルFtには、ファイルデータがインストールによらず固定であることから、リストB1として、共有の照合情報Rs1,Rs2のうち対応する方のリストB1が適用される。
作成部3143は、ファイルFtに関する固有の照合情報として、ディレクトリ直下の複数のファイルパスをリストB2に示し、ディレクトリ直下のディレクトリパスをリストB3に示した照合情報Rc0を個別に取得する(図28の(2)参照)。照合部3144は、ファイルパス及びディレクトリパスの照合を実行する際には、共通のディレクトリ直下に配置されたファイルFtについては、固有の照合情報Sc0におけるリストB1及びリストB3を参照する。
[実施の形態4の効果]
従来では、複数のソフトウェアパッケージに属するファイルが配置されるディレクトリ(例えば、「/user/local/bin」ディレクトリなど)に対して、過不足確認を行う場合、ソフトウェア提供元は自社以外のソフトウェアパッケージのファイル情報を知ることができないため、照合情報を作成できないという問題があった。
これに対し、実施の形態4では、特定のディレクトリ直下に構成要素となるファイルを配置する複数のソフトウェアパッケージをインストールした場合、ディレクトリ直下に配置されたファイルFtに対し、過不足確認用のリストB2,B3をファイルFtの配置状態に応じて個別に取得する。このように、実施の形態4では、特定のディレクトリ直下に配置されるファイル集合についても、適切な照合情報を用いて過不足確認処理を行うことができる。
そして、実施の形態4では、ファイルFtのファイルデータがインストール条件によらず固定であるため、改ざん確認に用いる照合情報のリストB1の情報は複数のファイル管理装置で共有する。したがって、本実施の形態4によれば、ファイル管理のために使用する照合情報の作成に関する管理者の負担を低減でき、管理者による照合情報作成コストも軽減できる。
なお、図29は、実施の形態4に係るファイル管理装置が3つのソフトウェアパッケージをインストールする場合に関する照合情報の共有状態を説明する図である。図29の上段に示すように、3つのソフトウェアパッケージP1,P2,P3をインストールした場合について説明する。この場合、特定のディレクトリ直下に構成要素となるファイルFtが配置される。
ソフトウェアパッケージP1〜P3に属する各ファイルは、リストB1として、それぞれのソフトウェアパッケージP1〜P3に対応する共有の照合情報Rs1〜Rs3−B1が適用される。これに対し、リストB2,B3については、ファイルFtに固有のリストB2,B3を有する照合情報Rc0−B2,B3を作成する。そして、ファイル管理装置は、ファイルFtのファイルについては、リストB2,B3として、固有の照合情報Sc0−B2,B3を適用する。なお、ファイルFt以外のファイルについては、それぞれのソフトウェアパッケージP1〜P3に対応する共有の照合情報Rs1〜Rs3のリストB2,B3が適用される。
[実施の形態のシステム構成について]
図1に示したファイル管理装置3,203,303と各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、ファイル管理装置3,203,303の機能の分散及び統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散または統合して構成することができる。
また、ファイル管理装置3,203,303においておこなわれる各処理は、全部または任意の一部が、CPU、GPU(Graphics Processing Unit)、及び、CPU、GPUにより解析実行されるプログラムにて実現されてもよい。また、ファイル管理装置3,203,303においておこなわれる各処理は、ワイヤードロジックによるハードウェアとして実現されてもよい。
また、実施の形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的に行うこともできる。もしくは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述及び図示の処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて適宜変更することができる。
[プログラム]
図30は、プログラムが実行されることにより、ファイル管理装置3,203,303が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、ファイル管理装置3,203,303の各処理を規定するプログラムは、コンピュータ1000により実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、ファイル管理装置3,203,303における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSDにより代替されてもよい。
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例及び運用技術等は全て本発明の範疇に含まれる。