(57)【特許請求の範囲】
【請求項１】
ファイルを記憶するクライアントコンピュータと、前記クライアントコンピュータを管理するための管理装置とを含む計算機システムの管理方法であって、
前記ファイルの操作に関するメタ情報を、前記クライアントコンピュータと前記管理装置の有する管理情報とに記憶し、
前記ファイルが操作される場合、操作元のファイルに関するメタ情報を前記クライアントコンピュータから取得し、
前記操作元のファイルに関する前記メタ情報に基づいて、操作先のファイルに関するメタ情報を生成し、
前記操作先のファイルに関する前記メタ情報を、前記クライアントコンピュータと前記管理情報とに記憶し、
前記クライアントコンピュータに記憶されている、前記操作元のファイルに関する前記メタ情報を、前記操作元のファイルの操作内容に応じて更新し、
前記操作元のファイル及び／または前記操作先のファイルの操作履歴を、前記管理情報に基づいて検出し、検出された前記操作履歴を出力させる、
計算機システムの管理方法。
【請求項２】
前記クライアントコンピュータに記憶される前記メタ情報は、前記ファイル内の所定領域に記憶される、
請求項１に記載の計算機システムの管理方法。
【請求項３】
前記メタ情報には、
前記ファイルが前記クライアントコンピュータの有するファイルシステムに格納される場合に前記ファイルに設定される識別情報であって、前記ファイルを特定するためのファイル格納識別情報と、
前記ファイルが操作された回数を示す操作世代情報と、
前記ファイルのコピー回数を示すコピー回数情報と、
が含まれている、請求項２に記載の計算機システムの管理方法。
【請求項４】
前記操作世代情報は、前記操作元のファイルが操作される度に桁数が増加するように構成されており、
前記操作先のファイルに関する前記メタ情報に含まれる前記操作世代情報は、前記操作元のファイルに関する前記メタ情報に含まれる前記操作世代情報と前記コピー回数情報とに基づいて設定される、
請求項３に記載の計算機システムの管理方法。
【請求項５】
前記操作世代情報の桁数が所定値に達した場合は、前記操作先のファイルの出力先が所定の出力先であると判定されるまでの間、前記操作元のファイルが操作されても前記操作先のファイルに関する前記操作世代情報を更新せず、前記操作先のファイルの出力先が前記所定の出力先であると判定された場合は、前記操作先のファイルに関する前記操作世代情報を更新させる、
請求項４に記載の計算機システムの管理方法。
【請求項６】
前記コピー回数情報の値が他の所定値に達した場合、前記操作先のファイルの出力先が前記所定の出力先であると判定されたときは、前記操作先のファイルに関する前記メタ情報に含まれる前記操作世代情報に所定コードを追加する、
請求項５に記載の計算機システムの管理方法。
【請求項７】
前記操作履歴を検出する場合は、
前記管理情報の各レコードを前記各ファイル格納識別情報毎にまとめ、
前記各ファイル格納識別情報毎の前記各レコードを前記操作世代情報に基づいて並び替えることにより、前記操作履歴を検出する、
請求項６に記載の計算機システムの管理方法。
【請求項８】
前記操作履歴をツリー構造で表示出力させる、請求項７に記載の計算機システムの管理方法。
【請求項９】
前記計算機システムは、不正操作を検知する不正操作検知システムを含んでおり、
（１）前記不正操作検知システムは、
（1-1）前記クライアントコンピュータのマイクロプロセッサを監視対象として、前記監視対象に接続された出力装置の画面上の情報に対する操作を監視する監視装置と、
（1-2）前記監視装置を管理対象として、前記監視装置の監視結果を管理する管理端末と、を有し、
（２）前記監視装置は、
（2-1）前記監視対象に情報を入力するための操作に応答して、前記監視対象に入力される入力情報の入手元を識別するとともに、前記入力情報に、当該入力情報の入手元を示す識別子を付与し、
（2-2）前記監視対象から情報を出力するための操作に応答して、前記監視対象から出力される出力情報の出力先を識別するとともに、前記出力情報の入手元を示す識別子を検索し、前記識別された出力情報の出力先と前記検索された出力情報の入手元の組み合わせが不正操作の条件に適合するか否かを判定し、この判定結果に従ってアラートを生成するようになっている、
請求項８に記載の計算機システムの管理方法。
【請求項１０】
管理装置により管理されるクライアントコンピュータであって、
前記管理装置は、
前記クライアントコンピュータと通信するための通信インターフェースと、
前記クライアントコンピュータを管理するための管理情報と管理プログラムとを記憶するメモリと、
前記メモリに記憶された前記管理プログラムを読み込んで実行することにより、前記メモリに記憶された前記管理情報に基づいて前記クライアントコンピュータを管理するマイクロプロセッサとを、含んでおり、
前記クライアントコンピュータは、
前記管理装置の有する前記通信インターフェースを介して前記管理装置と通信するための他の通信インターフェースと、
複数のファイルを記憶するファイルシステムと、
他の管理プログラムを記憶する他のメモリと、
前記他の管理プログラムを読み込んで実行することにより、前記各ファイルに関するメタ情報を管理する他のマイクロプロセッサとを、含んでおり、
前記他のマイクロプロセッサは、
前記ファイルシステムに記憶されるファイルの操作に関するメタ情報を、他の管理情報と前記管理装置の有する前記管理情報とに記憶させ、
前記ファイルシステムに記憶されるファイルが操作される場合、操作元のファイルに関するメタ情報を、前記他の管理情報から取得し、
前記操作元のファイルに関する前記メタ情報に基づいて、操作先のファイルに関するメタ情報を生成し、
前記操作先のファイルに関する前記メタ情報を、前記他の管理情報と前記管理装置の有する前記管理情報とに記憶させ、
前記他の管理情報に記憶されている、前記操作元のファイルに関する前記メタ情報を、前記操作元のファイルの操作内容に応じて更新させる、
クライアントコンピュータ。
【請求項１１】
前記他の管理情報は、前記ファイル内または前記メモリ内のいずれか一方に設けられている、請求項１０に記載のクライアントコンピュータ。
【請求項１２】
前記メタ情報には、
前記ファイルが前記ファイルシステムに格納される場合に前記ファイルに設定される識別情報であって、前記ファイルを特定するためのファイル格納識別情報と、
前記ファイルが操作された回数を示す操作世代情報と、
前記ファイルのコピー回数を示すコピー回数情報と、
が含まれている、請求項１１に記載のクライアントコンピュータ。
【請求項１３】
前記操作世代情報は、前記操作元のファイルが操作される度に桁数が増加するように構成されており、
前記操作先のファイルに関する前記メタ情報に含まれる前記操作世代情報は、前記操作元のファイルに関する前記メタ情報に含まれる前記操作世代情報と前記コピー回数情報とに基づいて設定される、
請求項１２に記載のクライアントコンピュータ。
【請求項１４】
前記操作世代情報の桁数が所定値に達した場合は、前記操作先のファイルの出力先が所定の出力先であると判定されるまでの間、前記操作元のファイルが操作されても前記操作先のファイルに関する前記操作世代情報を更新せず、前記操作先のファイルの出力先が前記所定の出力先であると判定された場合は、前記操作先のファイルに関する前記操作世代情報を更新させる、
請求項１３に記載のクライアントコンピュータ。
【請求項１５】
前記ファイルシステムに入出力される第１ファイルのデータに基づいて当該第１ファイルを特定するための第１ハッシュ値を生成し、
前記他の通信インターフェースを介して入出力される第２ファイルのデータに基づいて当該第２ファイルを特定するための第２ハッシュ値を生成し、
前記第１ハッシュ値と前記第２ハッシュ値とを比較し、
前記第１ハッシュ値と前記第２ハッシュ値とが一致する場合は、前記第１ファイルと前記第２ファイルが同一であると判定し、前記第１ファイルを示すパス情報を前記第２ファイルに対応付け、さらに、前記第１ファイルに関する前記メタ情報を前記第２ファイルに関連付けるか、あるいは、前記第２ファイルに関する前記メタ情報を前記第１ファイルに関連付けるかのいずれかを実行させる、
請求項１４に記載のクライアントコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムの管理方法及びクライアントコンピュータに関する。
【背景技術】
【０００２】
悪意のある操作、又は、疑わしい操作を検知する操作検知システムとして、特許文献１がある。特許文献１で示される技術では、あらかじめ管理者（ユーザ）が悪意ある不正操作パターンを作成し、ログ分析サーバのデータベースに登録した上で、予め記録しておいたユーザの操作ログの内容のマッチング度により危険性を判断する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２０８１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１記載の技術の操作パターンではクライアントＰＣ自体に格納されたファイルの情報漏えいの検知が可能であるが、クライアントＰＣ外部の複数のサーバ計算機にアクセスを行った場合に、クライアントＰＣ管理者が意図した漏えい検知を容易に行うことが出来ない。また、上記の従来技術では、ファイル操作の履歴を簡単に表示することもできない。
【課題を解決するための手段】
【０００５】
前記目的を達成するために、本発明は、ファイルの操作履歴に関する情報を、追加のメタ情報として用いる。追加のメタ情報は、ファイル内の所定の記憶領域またはファイル外の他の領域に記憶される。そのメタ情報は、ファイルがクライアントコンピュータのファイルシステムに格納された場合に付与されるファイル格納識別情報と、操作の回数を示す操作世代識別情報と、コピー回数を示すコピー回数情報を含むことができる。ファイルが操作されると、操作先のファイルに関してメタ情報が作成され、対応付けられる。メタ情報は管理装置にも送られて記憶される。管理装置の保持するメタ情報に基づいて、ファイルの操作履歴を検出して表示させることができる。
さらに、本発明では、不正なファイル操作を検出するための不正操作検知システムを備える。不正操作検知システムは、監視装置と管理端末とを備える。監視装置は、クライアントコンピュータのマイクロプロセッサを監視対象として、監視対象に接続された出力装置の画面上の情報に対する操作を監視する。管理端末は、監視装置を管理対象として、監視装置の監視結果を管理する。
監視装置は、監視対象に情報を入力するための操作に応答して、監視対象に入力される入力情報の入手元を識別するとともに、入力情報に、当該入力情報の入手元を示す識別子を付与し、監視対象から情報を出力するための操作に応答して、監視対象から出力される出力情報の出力先を識別するとともに、出力情報の入手元を示す識別子を検索し、識別された出力情報の出力先と検索された出力情報の入手元の組み合わせが不正操作の条件に適合するか否かを判定し、この判定結果に従ってアラートを生成する。
【図面の簡単な説明】
【０００６】
【図１】本発明の計算機システムの一実施形態を示すシステム構成図である。
【図２】本発明におけるクライアントPCの構成の一例を示す図である。
【図３】クライアントPC上で動作するエージェントプログラムの構成の一例を示す図である。
【図４】Webブラウザでファイルをインポートする際に、ユーザの操作と、ダイアログ操作監視モジュールと、ブラウザ監視モジュールとの間で実行されるシーケンスの一例を示す図である。
【図５】Webブラウザでファイルをインポートする際に、ユーザの操作と、ダイアログ操作監視モジュールと、ブラウザ監視モジュールと、ファイル操作監視モジュールの間で実行されるシーケンスの一例で示す図である。
【図６】メーラでファイルをインポートする際に、ユーザの操作と、ダイアログ操作監視モジュールと、TCP通信監視モジュールとの間で実行されるシーケンスの一例を示す図である。
【図７】メーラでドラッグ＆ドロップを用いてファイルをインポートする際に、ユーザの操作と、ファイル操作監視モジュールと、TCP通信監視モジュールとの間で実行されるシーケンスの一例を示す図である。
【図８】Webブラウザでファイルをエクスポートする際に、ユーザの操作と、ダイアログ操作監視モジュールと、ブラウザ監視モジュールとの間で実行されるシーケンスの一例を示す図である。
【図９】メーラでファイルをエクスポートする際に、ユーザの操作と、ダイアログ操作監視モジュールと、TCP通信監視モジュールとの間で実行されるシーケンスの一例を示す図である。
【図１０】メーラでドラッグ＆ドロップを用いてファイルをエクスポートする際に、ユーザの操作と、ファイル操作監視モジュールと、TCP通信監視モジュールとの間で実行されるシーケンスの一例を示す図である。
【図１１】ファイルを印刷する際に、ユーザの操作と、ダイアログ操作監視モジュールで実行されるシーケンスの一例を示す図である。
【図１２】ファイルサーバからファイルをインポートする際と、リムーバブルメディアにファイルをエクスポートする際に、ユーザの操作と、ファイル操作監視モジュールで実行されるシーケンスの一例を示す図である。
【図１３】エージェント内で使用される入手元DBと、各ファイルに付与される入手元情報のフォーマットの一例を示す図である。
【図１４】エージェント内のモジュールである、ブラウザ監視モジュールのフローチャートの一例を示す図である。
【図１５】エージェント内のモジュールである、ダイアログ操作監視モジュールのフローチャートの全体像の一例を示す図である。
【図１６】エージェント内のモジュールである、ダイアログ操作監視モジュールのメーラによるダウンロード・アップロードスレット部分のフローチャートの一例を示す図である。
【図１７】エージェント内のモジュールである、ダイアログ操作監視モジュールのブラウザによるダウンロード・アップロードスレット部分のフローチャートの一例を示す図である。
【図１８】エージェント内のモジュールである、ダイアログ操作監視モジュールの印刷チェックスレッド部分のフローチャートの一例を示す図である。
【図１９】エージェント内のモジュールである、ファイル操作監視モジュールのフローチャートの一例を示す図である。
【図２０】エージェント内のモジュールである、TCP通信監視モジュールのフローチャートの一例を示す図である。
【図２１】本発明の動作に関連する、Webブラウザの画面の一例を示す図である。
【図２２】本発明における管理サーバの構成の一例を示す図である。
【図２３】本発明の第２実施例に係り、ファイル操作に伴ってメタ情報（インファイルトレース情報）が生成される様子を示す。
【図２４】初期状態、及び、ファイルコピーまたはファイルダウンロード等によりインファイルトレース情報が作成された状態を示す。
【図２５】図２４右側に示す状態から、コピー操作が行われた状態を示す。
【図２６】図２５右側に示す状態から、ファイル名が変更された状態を示す。
【図２７】図２６右側に示す状態から、ファイルが移動された状態を示す。
【図２８】図２７右側に示す状態から、ファイルが削除された状態を示す。
【図２９】管理サーバに記憶された情報に基づいて、ファイル操作をトレースする一例を示す。
【図３０】インファイルトレース情報の一例を示す。
【図３１】ユーザによるファイル操作を監視するシーケンスを示す。
【図３２】インファイルトレース情報を作成または更新する処理を示すフローチャートである。
【図３３】インファイルトレース情報を作成する処理のフローチャートである。
【図３４】操作先ファイルのインファイルトレース情報を作成する処理と、操作元ファイルのインファイルトレース情報を更新する処理と、を示すフローチャートである。
【図３５】カウント値を文字コードに変換するためのテーブルを示す。
【図３６】コピー回数が所定のコピー回数に達した場合に、操作識別子の最終桁に文字コードが付加される様子を示す。
【図３７】操作回数（操作世代数）が所定の操作回数に達した後、ファイルが不正に操作された場合は、操作識別子の桁数を上限値にする様子を示す。
【図３８】管理サーバに記憶された情報（インファイルトレース情報と同一の情報）に基づいて、ファイル操作の履歴をツリー構造で表示させる様子を示す。
【図３９】電子メールに添付されたファイル等の操作履歴を追跡するために使用されるデータベースの一部を示す。
【図４０】電子メールに添付されたファイルの操作履歴をツリー構造で表示させる様子を示す。
【図４１】第３実施例に係り、クライアントコンピュータの構成例を示す。
【図４２】エージェントプログラムの構成を示す。
【図４３】ウェブブラウザを用いてファイルをダウンロードする場合の監視シーケンスを示す。
【図４４】ウェブブラウザを用いてファイルをアップロードする場合の監視シーケンスを示す。
【図４５】電子メールを受信する場合の監視シーケンスを示す。
【図４６】電子メールを送信する場合の監視シーケンスを示す。
【図４７】電子メールを転送する場合の監視シーケンスを示す。
【図４８】ウェブブラウザを介してダウンロードされたファイルの操作履歴を監視するために使用されるデータベースの一部を示す。
【図４９】ウェブブラウザを介してアップロードされたファイルの操作履歴を監視するために使用されるデータベースの一部を示す。
【図５０】受信された電子メールに添付されたファイルの操作履歴を監視するために使用されるデータベースの一部を示す。
【図５１】送信された電子メールに添付されたファイルの操作履歴を監視するために使用されるデータベースの一部を示す。
【図５２】ファイルの操作の履歴を管理するための情報を格納する変形例を示す。
【発明を実施するための形態】
【０００７】
以下、本発明の実施形態を説明する。まず最初に、不正なファイル操作を検知するための方法を説明し、次に、ファイル操作の履歴を管理する方法を説明する。さらに、ファイルのパスを取得する方法を説明する。
【実施例１】
【０００８】
本実施例は、「クライアントコンピュータ」としてのクライアントPC（Personal  Computer）で稼動するアプリケーションプログラムに対する操作内容を監視し、クライアントPCに入力される入力情報の入手元を識別するとともに、入力情報に、当該入力情報の入手元を示す識別子を付与する第一の手段と、クライアントPCから出力される出力情報の出力先を識別するとともに、出力情報に付与された識別子を検査し、出力情報の入手元と出力先の条件に応じてアラートを生成する第二の手段を有するものである。【０００９】
以下、本発明の一実施例を図面に基づいて説明する。図１は、本発明の不正操作検知システムの一実施形態を示すシステム構成図である。本発明の不正操作検知システムは、情報センタ101内のLAN（LOCAL  Area  Network）117と拠点102内のネットワーク124が広域ネットワーク103で接続され、前記情報センタ101は、さらに広域ネットワーク104を介してインターネットに接続されているものとする。不正操作検知システムは、情報センタ101内に設置された管理サーバ111と、拠点102内に設置されたクライアントPC121により構成される。【００１０】
管理サーバ111は、情報センタ101内と拠点102内を管理領域とし、この管理領域内に配置された機器、例えば、メールサーバ114、ファイルサーバ115、組織内Webサーバ116、クライアントPC121、ネットワークプリンタ123などを管理対象として、これら管理対象を管理する。この管理サーバ111では、不正操作検知システムの全体を統括するマネージャ112と、前記マネージャが複数のクライアントPCを管理するために使用するPC管理DB（DataBase）を格納するディスク113が稼動する。管理サーバ111は、「管理端末」または／及び「管理装置」に該当する。【００１１】
各クライアントPC121は、各種アプリケーションプログラムが搭載されたマイクロプロセッサで構成されている。各クライアントPC121では、各クライアントPC121を監視対象とし、この監視対象に接続された出力装置の画面上の情報に対する操作を監視する監視装置としてのエージェント122が稼動する。クライアントPC121は、例えば、パーソナルコンピュータ、携帯情報端末、携帯電話等のようなコンピュータとして構成される。【００１２】
クライアントPC121を使用するユーザは、電子メール、Webサーバ、ファイルサーバ等を用いて業務を遂行する。このため、情報センタ101には、メールサーバ114と、ファイルサーバ115と、組織内Webサーバ116が設置されており、LAN117に接続されている。またインターネットには、クライアントPC121からアクセス可能な組織外Webサーバ131が接続されている。【００１３】
また、拠点102内のネットワーク124には、印刷に使用するネットワークプリンタ123が接続されている。なお、組織外Webサーバ131と、クライアントPC121に接続される記憶媒体のうちフラッシュメモリなどのリームバブルメディア125は、管理サーバ111の管理対象から外れた機器であって、検査対象として処理される。【００１４】
図２２は、本発明における管理サーバ111の構成の一例を示すブロック構成図である。管理サーバ111は、CPU（Central  Processing  Unit）2201、バス2202、メモリ2203、ディスク113、113内にあるPC管理DB2204、ネットワークI/F2205、デバイスI/F2206、入力デバイス2208、表示デバイス2209、から構成されている。デバイスI/F2206は、例えば、USB（Universal  Serial  Bus）インタフェース等で構成される。メモリ2203上にはOS（Operating  System）2207がロードされており、マネージャプログラム112が動作している。【００１５】
図２は、本発明におけるクライアントPC121の構成の一例を示すブロック構成図である。クライアントPC121は、CPU（Central  Processing  Unit）201、バス202、メモリ203、ローカルファイルシステム204、ネットワークI/F205、デバイスI/F206、ディスク209、入力デバイス210、表示デバイス211、を備えている。デバイスI/F 206は、例えば、USB（Universal  Serial  Bus）インタフェース等で構成される。メモリ203上にはOS（Operating  System）207がロードされている。OS207の上で、不正操作検知システムの構成要素であるエージェント122のプログラムと、ファイルエクスプローラ、Webブラウザ（ブラウザと略記する場合がある）、メーラ、ワードプロセッサまたは表計算ソフトといった複数のアプリケーションプログラム（アプリケーションと略記する場合がある）208がメモリ203に格納されて動作している。【００１６】
ここで、クライアントPC121を使用するユーザは、アプリケーションプログラム208のいずれかを用いて、メールサーバ114に到着した自分宛のメールに添付されたファイル、または、ファイルサーバ115内に格納されたファイル、または、組織内Webサーバ116に登録されたファイルを、ローカルファイルとして、クライアントPC121のファイルシステムフォーマットされたディスク209内のローカルファイルシステム204に保存する。【００１７】
ローカルファイルシステム204に保存されたファイル209は、アプリケーションプログラム208のいずれかを用いて、クライアントPC121の外部にエクスポートされることがある。例えば、ファイルエクスプローラを用いて、デバイスI/F206に接続されたリムーバブルメディアにコピーされたり、または、ワードプロセッサあるいは表計算ソフトの印刷機能を用いて、ネットワークプリンタ123で印刷されたりする。【００１８】
また、メーラで作成したメール本文にファイルを添付して、組織内および組織外の相手にファイルを送信されたり、組織内および組織外にあるWebサーバにファイルをアップロードされたりする。【００１９】
このとき用いるWebブラウザ画面を図２１に示す。図２１は、ユーザがクライアントPC121でアプリケーションを操作して、ファイルをインポートする際の画面の一例を示す図である。【００２０】
Webブラウザ画面（クライアントPC121に接続される出力装置の画面）2101上には、いわゆるリンクと呼ばれるエリアが存在する。そのリンクをポインティングデバイス（クライアントPC121に接続されるマウス等の入力装置）を用いてクリックすると、画面遷移等が引き起こされる。リンク文字列2102上にマウスカーソルを置き、左ボタンをクリックした場合、次の画面（ページとも言う）に遷移するか、もしくは、クリックしたリンク先にある対象（ファイル）をダウンロードするためのダウンロードダイアログ2111を表示する処理が実行される。【００２１】
また、リンク文字列2102上にマウスカーソルを置き、右ボタンをクリックした場合、いわゆるコンテキストメニューと呼ばれるポップアップウィンドウが表示される。ここで表示されたコンテキストメニュー2103には、「対象をファイルに保存（A）…」という項目があり、この項目を左クリックすることにより、対象をダウンロードするためのダウンロードダイアログ2111を表示する処理が実行される。【００２２】
ダウンロードダイアログ2111には、ダウンロードしたファイルを保存する場所を示すフィールド2112と、保存先フォルダの選択肢を表示するフィールド2113と、保存するファイル名を示す2114がある。保存するファイル名は書き換えることが可能である。ユーザは、フィールド2112および2113を操作してファイルを保存するフォルダを選択し、必要に応じてフィールド2114で保存ファイル名を変更し、保存ボタン2115をクリックすることにより、Webブラウザを用いてファイルをダウンロードし、任意のフォルダにファイルを保存することができる。【００２３】
図３は、クライアントPC121上で稼動するエージェント122のモジュール構成の一例を示す図である。エージェント122は、マネージャ112との通信を担当するマネージャ通信機能モジュール301と、クライアントPC121でのユーザの操作を監視する各種監視モジュールを統括する監視モジュール制御モジュール302を持つ。【００２４】
エージェント122は、プロセス監視モジュール310と、プリンタ監視モジュール320と、ブラウザ監視モジュール330と、ダイアログ操作監視モジュール340と、ファイル操作監視モジュール350と、TCP通信監視モジュール360を有する。【００２５】
プロセス監視モジュール310は、クライアントPC121上で稼動するアプリケーションプログラム303の稼働状況を監視する。プリンタ監視モジュール320は、ネットワークプリンタ123を含むプリンタ304への出力操作を監視する。ブラウザ監視モジュール330は、Webブラウザ305によるユーザの操作を監視する。ダイアログ操作監視モジュール340は、クライアントPC121の画面上に表示され、ユーザがダウンロードまたはアップロードの際にファイルを選択するために使用する各種ダイアログ306を監視する。ファイル操作監視モジュール350は、クライアントPC121の画面上で、ユーザがマウス等のポインティングデバイスを用いて、前記画面上に表示された各種アプリケーション307に対する操作（例えば、ボタンのクリックやアプリケーションウィンドウ内に表示されたオブジェクトのドラッグ＆ドロップなど）を監視する。TCP通信監視モジュール360は、例えば、メーラなど、ネットワークを介してデータを送受信するアプリケーションが、ユーザの操作によりTCP/IP（Transmission  Control  Protocol/  Internet  Protocol）のソケット308等を用いてデータストリームを送信もしくは受信している状況を監視する。【００２６】
また、エージェント122は、モジュールの動作を制御するための設定ファイルであるシステムポリシ391と、特にセキュリティに関連する制御を行うための設定ファイルであるセキュリティポリシ392を持つとともに、先ほど説明した監視モジュール群がユーザ操作に関連する情報を構成する上で必要となる情報を格納する入手元DB393を備えている。入手元DB393の内容や役割については後述する。【００２７】
プロセス監視モジュール310は、クライアントPC121上でプロセス303の起動が要求されたことを検知する起動検知機能311と、起動されるプロセス303がセキュリティポリシ392に抵触するものである場合に、起動を抑止する抑止機能312と、ユーザに起動を抑止したことを通知するユーザ通知機能313を実現するものである。【００２８】
プリンタ監視モジュール320は、クライアントPC121上でプリンタ304を用いた印刷が要求されたことを検知する印刷検知機能321と、印刷されるデータがセキュリティポリシ392に抵触するものである場合に、印刷を抑止する抑止機能322と、ユーザに起動を抑止したことを通知するユーザ通知機能323を実現するものである。【００２９】
ブラウザ監視モジュール330は、クライアントPC121上でブラウザ305を用いてWebサーバにアクセスしたことを検知するアクセス検知機能331と、アクセスしたWebサーバのURL（Uniform  Resource  Name）、受信したhtml（Hypertext  Markup  Language）データ等を一時的に保持する検知内容保持機能332を実現するものである。【００３０】
ダイアログ操作監視モジュール340は、ユーザがクライアントPC121上のアプリケーションプログラム208を操作することにより、ファイル選択用ダイアログ、もしくは印刷用ダイアログが表示されたことを検知するダイアログ検知機能341と、前記ダイアログを用いて操作されたファイルに対し、そのファイルの入手元に関する情報の付与、および、付与された入手元に関する情報の検査を実行する入手元情報付与・検査機能342を実現するものである。【００３１】
ここで、ファイル選択用ダイアログを表示する操作とは、例えば、Webブラウザを用いてファイルをダウンロードもしくはアップロードする操作や、メーラを用いて受信メールから添付ファイルを保存する操作もしくは送信メールにファイルを添付する操作がある。また、印刷用ダイアログを表示する操作とは、ワードプロセッサや表計算ソフトで印刷機能を選択する操作が該当する。【００３２】
ファイル操作監視モジュール350は、クライアントPC121上のアプリケーションプログラム208のウィンドウ上でマウスボタンのクリック操作、または、ウィンドウ内に表示されたオブジェクトのドラッグ＆ドロップなどの操作が行われたことを検知する操作検知機能351と、マウスを用いて操作されたファイルに対し、そのファイルの入手元に関する情報の付与、および、付与された入手元に関する情報の検査を実行する入手元情報付与・検査機能352とを実現するものである。【００３３】
ここで、マウスボタンのクリックによるファイル操作とは、例えば、Webブラウザの画面上に表示されたリンクを右クリックし、表示されたメニューに、リンクが指し示すオブジェクトをファイルとして保存する操作、または、メーラの受信メッセージ画面に添付されていたファイルをドラッグ＆ドロップして、デスクトップ上にコピーする操作が該当する。【００３４】
TCP通信監視モジュール360は、ユーザがクライアントPC121 上のネットワークアプリケーションで操作を行った結果、ネットワークを介してファイルの送受信が行われたことを検知するソケット受信検知機能361と、前記ソケットを介して送受信されたデータを解析するプロトコル解析機能362と、ソケットを介してファイルがクライアントPC121にダウンロードされた場合に、そのファイルの入手元に関する情報を入手元DB393に登録するとともに、そのファイルの入手元に関する情報を入手元情報付与・検査モジュール342、352に通知する登録・通知機能363を持つ。【００３５】
上記で説明した各監視モジュールは、検知した内容に応じて、他の監視モジュールまたは入手元DB393と通信する機能と、監視モジュール制御302およびマネージャ通信機構301を介してマネージャ112にアラートを送信する機能と、アラート及び／または検知内容ログを生成する機能とを持つことができる。【００３６】
なお、以後の説明では、ファイルに関する情報などの表現にて本発明に関する情報を説明するが、これら情報は、テーブル等のデータ構造以外で表現されてもよい。そのため、データ構造に依存しないことを示すために、「ファイルに関する情報」等について、単に「情報」と呼ぶことがある。同様に、ＤＢとして説明した部分についても必ずしもデータベースとしてのデータ構造を有することは必須ではないため、ＤＢとした説明についても単に「情報」と呼ぶことがある。【００３７】
また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」という表現を用いるが、これらについては互いに置換が可能である。【００３８】
さらに、以後の説明では、「プログラム」を主語として説明を行う場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理をメモリ及び通信ポート（通信制御装置）を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は、管理サーバ111等の計算機、情報処理装置が行う処理としてもよい。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。また、本発明は必ずしもスレッド機構を用いて実現する必要なく、マイクロスレッドやプロセス機構等ＯＳが提供するプログラムの実行を管理する機構によって実行できればいかような機構を用いても良い。【００３９】
また、各種プログラムは、プログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。【００４０】
なお、管理計算機111は入出力装置を有する。この入出力装置の例としては、ディスプレイとキーボードとポインタデバイスを挙げることができるが、これ以外の装置であってもよい。また、入出力装置の代替として、シリアルインターフェースやイーサーネットインターフェースを入出力装置とし、当該インタフェースにディスプレイ又はキーボード又はポインタデバイスを有する表示用計算機を接続し、表示用情報を表示用計算機で表示を行い、入力を受け付けることで入出力装置での入力及び表示を代替してもよい。【００４１】
次に、ユーザが、クライアントPCへのインポート操作を行ったことを検出し、インポート操作されたことを示す識別子を付与する第一の手段を実現するシーケンスを図４〜図７に従って説明する。【００４２】
図４は、ユーザがWebブラウザでファイルをダウンロードする際に、ブラウザ監視モジュール330とダイアログ操作監視モジュール340が実行する処理の流れを示すシーケンスの一例である。【００４３】
ユーザがWebブラウザに表示されたリンクの左クリック操作（401）を行うと、Webブラウザでは、ページ遷移のユーザ操作イベントが発生し、ブラウザ監視モジュール330は、ページ遷移のユーザ操作イベントを検知する（402）。ブラウザ監視モジュール330は、遷移後のURL（すなわちクリックされたリンク先のオブジェクトのURL）を保存し、ダイアログ操作監視モジュール340からの情報提供リクエストを待つ（403）。【００４４】
一方、左クリック操作（401）により、リンクで指定されたオブジェクトが、Webブラウザでインライン表示できないタイプのものである場合、ファイルダウンロードダイアログが表示される。この場合、ダイアログ操作監視モジュール340は、ファイルダウンロードダイアログが表示されたときに、ダイアログ操作イベントを検知し（404）、ブラウザ監視モジュール330に遷移後URL情報の提供をリクエストし、その後、ブラウザ監視モジュール330から遷移後URL情報を入手する（405）。【００４５】
前記ファイルダウンロードダイアログで保存ボタンがクリックされると、ダイアログ操作監視モジュール340は、ダイアログに表示された情報（OS207の処理による情報）から保存先ファイル名を入手し、前記ファイルの保存先情報としてフルパスを取得する（406）。さらにダイアログ操作監視モジュールは、ステップ405で入手した遷移後URLに含まれるサーバが、組織内Webサーバ116であった場合には、前記ファイルに入手元を示す識別子を付与する（407）。この識別子は、クライアントPC121が利用するローカルファイルシステム204として、Microsoft（登録商標）社のNTFS（NT  File  System）が用いられている場合、「代替ストリーム」を用いて実現することができる。【００４６】
図５は、ユーザがWebブラウザでファイルをダウンロードする際に、ブラウザ監視モジュール330とダイアログ操作監視モジュール340、およびファイル操作監視モジュール350が実行する処理の流れを示すシーケンスの一例である。【００４７】
ユーザがWebブラウザでページを表示すると、ブラウザ監視モジュール330は、ページ遷移のユーザ操作イベントを検知する（501）。この際Webブラウザは、遷移後のURLおよびページソースを保持し、ブラウザ監視モジュール330の要求に応じてそれらを渡すことができるようになる。この状態でWebブラウザに表示されているリンクに対して、ユーザが右クリック操作を行うと（503）、マウス操作イベントが発生し、ファイル操作監視モジュール350は前記イベントを検知する（505）。【００４８】
マウス操作イベントの発生を検知したファイル操作監視モジュール350は、Webブラウザ上でマウス操作イベントが発生した位置に関する情報をオブジェクト関連情報として保存し、ブラウザ監視モジュール330に送付する（506）。【００４９】
ブラウザ監視モジュール330は、Webブラウザでページが表示されるたびに遷移後のページのURLおよび、ページのソースを保存する（502）。【００５０】
ユーザの右クリックにより、表示されたコンテキストメニューの中から、「ファイルの保存」に関する項目が選択されると（504）、ファイル保存ダイアログが表示される。【００５１】
ダイアログ操作監視モジュール340は、前記のダイアログ表示イベントを検知すると（507）、ブラウザ監視モジュール330から、表示されたページのURLおよびページソース（ページデータ）を取得する（508）。さらに、ダイアログ操作監視モジュール340は、前記ファイルが保存されたファイルパスを取得し（510）、前記ファイルのURLに含まれるサーバが組織内Webサーバ116である場合には、ファイルの入手元が監視対象であるとして、ファイルに入手元を示す識別子を付与する（511）。【００５２】
図６は、ユーザがメールに添付されたファイルをメーラでローカルシステム204に保存する際に、TCP通信監視モジュール360と、ダイアログ操作監視モジュール340が実行する処理の流れを示すシーケンスの一例である。【００５３】
ユーザがメーラを起動したり、メールの表示操作を実行したりするなどのメッセージ受信操作を行うと（601）、POP（Post  Office  Protocol）3やIMAP（Internet  Message  Access  Protocol  ）4などのプロトコルに従い、メールサーバ114からメッセージがダウンロードされる。すると、ネットワークドライバまたはTCP/IPプロトコルスタックの中でソケットを監視するTCP通信監視モジュール360は、メール本文データの解析処理を実施し（603）、メッセージ内の送信者名および添付ファイル名を取得する（604）。【００５４】
さらにTCP通信監視モジュール360は、Base64等でコード化された添付ファイルデータをデコードし、ハッシュ値を計算する（605）。ステップ604およびステップ605により得られた添付ファイル名、ハッシュ値、および添付ファイルの送信者名は、入手元DB393に登録しておく（606）。【００５５】
ユーザが、メーラを用いてメール本文を閲覧している最中に、添付ファイルをローカルファイルシステム204に保存する操作を実行しようとすることがある（この操作は、メールデータをダウンロードした直後ではなく、相当の時間をあけて実行されることがある）。メーラが、ファイル保存ダイアログを用いて添付ファイルを保存する操作を行うと（602）、ダイアログ操作監視モジュール340は、ダイアログ表示イベントを検知し（607）、ダイアログに表示された情報からファイル名を入手し（608）、ファイルの保存先のフルパスを入手する（609）。さらに、前記ダイアログに表示されたファイル名をキーとして入手元DB393を検索し、ファイルの送信者名などの属性を取得する（610）。【００５６】
ここで、添付ファイル名が一般的な名称、例えば「仕様書.doc」といったものである場合、入手元DB393には、複数のレコードが登録されている場合も考えられる。そのような場合には、ステップ608で入手した保存先ファイル名のファイルについてハッシュ値を計算し、前記ハッシュ値をキーとして入手元DB393を検索することにより、ファイルの送信者名を取得することが可能である。【００５７】
ステップ610で、ファイルの送信者が組織内の別ユーザであった場合、前記ファイルに入手元を示す識別子を付与する（611）。【００５８】
図７は、ユーザがメールに添付されたファイルをメーラでローカルファイルシステム204に保存する際に、TCP通信監視モジュール360と、ファイル操作監視モジュール350が実行する処理の流れを示すシーケンスの一例である。【００５９】
ステップ701からステップ706までの処理は、図６におけるシーケンス（ステップ601からステップ606）と同一のものである。ユーザが、メーラを用いてメール本文を閲覧している最中に、添付ファイルをローカルファイルシステム204に保存する操作としては、ファイル保存ダイアログを用いて行う方法だけではなく、メーラ画面内に表示された添付ファイルを示すアイコンをデスクトップやファイルエクスプローラにドラッグ＆ドロップする方法もある。【００６０】
このような操作を行う場合、ファイル操作監視モジュール350は、メーラ画面からのマウスによるドラッグ＆ドロップイベントを検知する（707）。さらに、ファイル操作監視モジュール350は、ファイルシステムに対するファイル生成イベントを監視し、マウスによるドラッグ＆ドロップ操作に応答して、ローカルファイルシステム204で生成されたファイルの名称の取得（708）、およびフルパスを取得し
（709）、ファイル名およびファイルのハッシュ値をキーとして入手元DB393を検索し、ファイルの送信者名などの属性を取得する（710）。ステップ710においてファイルの送信者が組織内の別ユーザであった場合、前記ファイルに入手元を示す識別子を付与する（711）。【００６１】
次に、ユーザがクライアントPCからのエクスポート操作を行ったことを検出し、インポートされたことを示す識別子を確認し、アラートを送信する第二の手段を実現するシーケンスを図８〜図１１に従って説明する。【００６２】
図８は、ユーザがWebブラウザを用いてファイルをアップロードする際に、ブラウザ監視モジュール330とダイアログ操作監視モジュール340がそれぞれ実行する処理の流れを示すシーケンスの一例である。【００６３】
Webブラウザに表示された、ファイルアップロードに使用するフォーム画面で、ユーザが、アップロード対象のファイルを追加するボタンをクリックすると（801）、Webブラウザは、ファイル選択ダイアログを表示する。ダイアログ操作監視モジュール340は、ファイル選択ダイアログが表示されたイベントを検知し、選択されたファイルの名称を取得するとともに、ファイルオープンの監視を開始する（805）。【００６４】
ユーザが、ファイル選択ダイアログを用いてファイルを選択し、前記フォーム画面においてファイル登録ボタンをクリックすると（802）、フォーム画面がサブミットされて、Webブラウザに表示された画面が遷移する。【００６５】
ブラウザ監視モジュール330は、その結果発生するページ遷移イベントを検知し（803）、遷移後のURLを保存する（804）。【００６６】
このとき、ファイルアップロードがサブミットされた場合、ダイアログ操作監視モジュール340は、該当ファイルに対するファイルオープンを検知し（806）、該当ファイルのファイルパスをOS207から取得する（807）。【００６７】
ダイアログ操作監視モジュール340は、アラート条件を満たすか否かを判定し、アラート条件を満たすと判断した場合にアラートをマネージャ１１２に送信する（809）。ダイアログ操作監視モジュール340は、ブラウザ監視モジュール330から、ページ遷移後のURLを取得し、ファイルの出力先が検査対象であるか否かを判定し、ファイルをアップロードしたWebサーバが組織外のサーバであった場合、ファイルの出力先が検査対象であるとして、ファイルの入手元の識別子を確認する。ダイアログ操作監視モジュール340は、組織内のファイルサーバ115からコピーされたファイル、または、組織内Webサーバ116からダウンロードされたファイル、または、メーラに添付されて取得されたファイルがアップロード対象のファイルである場合、アラートを出力する処理を実施する（809）。【００６８】
アラートを出力する処理とは、所定のアラート条件に一致した場合に、アラートを管理サーバ111のマネージャ112に送信する処理である。
所定のアラート条件は、ファイルのアップロード先サーバが組織外Webサーバ131のような監視対象であって、かつ、アップロード対象のファイルが管理対象である場合にアラートを送信するように設定されている。【００６９】
クライアントPC121から出力される出力情報の出力先、即ち、例えば、ファイルをアップロードしたWebサーバが組織外Webサーバ131の場合、そのWebサーバ131は、管理サーバ111の管理対象とは異なる検査対象である。【００７０】
管理サーバ111による管理対象のファイルとは、クライアントPC121で処理されたファイルが、例えば、（１）組織内のファイルサーバ115からコピーされたファイル、（２）組織内Webサーバ116からダウンロードされたファイル、（３）メーラに添付されて取得したファイル、のいずれかに該当するファイルである。このように、ファイルの入手元が管理サーバ111の管理対象である場合、クライアントPC121から出力される出力情報（ファイル）は、不正操作によって生成された情報であると判断される。その結果、不正操作の条件（アラート条件）に適合する旨のアラートが生成され、そのアラートは管理サーバ111に送信される。【００７１】
この場合、管理サーバ111は、情報漏洩事故につながるリスクの高い不正操作が検出されたと判断し、不正操作に伴う情報を、アラートで処理すべき情報として管理する。これにより、管理者は、管理サーバ111に収集されたアラートを基に、情報漏洩を抑制するための対策などを実行することができる。【００７２】
図９は、ユーザがメーラを用いて添付ファイル付きメールを送信する際に、TCP通信監視モジュール360とダイアログ操作監視モジュール340が実行する処理の流れを示すシーケンスの一例である。【００７３】
ユーザが、メーラで送信メールを作成中に、ファイル選択ダイアログを用いてファイル添付操作を行うと（901）、ダイアログ操作監視モジュール340は、ファイル選択ダイアログの表示イベントを検知し（906）、選択されたファイルの名称およびファイルのフルパスを取得して（907）、メールが送信されるまで待機する。【００７４】
この後、ユーザが、メーラでメール送信操作を実施すると（902）、TCP通信監視モジュール360は、SMTP（Simple  Mail  Transfer  Protocol）のプロトコルで送信されるデータを解析し（903）、送信先および添付ファイル名を取得する（904）。【００７５】
送信メールに添付ファイルがつけられており、かつ、メール送信先が組織外であった場合、TCP通信監視モジュール360は、待機中のダイアログ操作監視モジュール340に、メールが組織外のあて先に送信されたことを通知する（905）。【００７６】
ダイアログ操作監視モジュール340は、送信されたファイルの入手元を示す識別子を確認し、組織内のファイルサーバからコピーされたファイル、または、組織内のWebサーバからダウンロードされたファイル、または、メーラに添付されて取得したファイルのいずれかであった場合には、アラートを出力する処理を実施する（908）。【００７７】
図１０は、ユーザがメーラを用いて添付ファイル付きメールを送信する際に、TCP通信監視モジュール360とファイル操作監視モジュール350が実行する処理の流れを示すシーケンスの一例である。【００７８】
ユーザが、メーラで送信メールを作成中に、ドラッグ＆ドロップを用いてファイル添付操作を行うと（1001）、ファイル操作監視モジュール350は、ファイルエクスプローラ等から、メーラのウィンドウにファイルがドラッグ＆ドロップされたことを検知し（1006）、選択されたファイルの名称およびファイルのフルパスを取得して（1007）、メールが送信されるまで待機する。【００７９】
この後、ユーザが、メーラでメール送信操作を実施すると（1002）、TCP通信監視モジュール360は、SMTPのプロトコルで送信されるデータを解析し（1003）、送信先および添付ファイル名を取得する（1004）。【００８０】
送信メールに添付ファイルがつけられており、かつ、メール送信先が組織外であった場合、TCP通信監視モジュール360は、待機中のダイアログ操作監視モジュール340に、メールが組織外のあて先に送信されたことを通知する（1005）。【００８１】
ファイル操作監視モジュール350は、送信されたファイルの入手元を示す識別子を確認し、組織内のファイルサーバからコピーされたファイル、または、組織内のWebサーバからダウンロードされたファイル、または、メーラに添付されて取得したファイルのいずれかであった場合には、アラートを出力する処理を実施する（1008）。【００８２】
図１１は、ユーザがアプリケーションで印刷操作を行う際に、ダイアログ操作監視モジュール340が実行する処理の流れを示すシーケンスの一例である。【００８３】
ユーザが、アプリケーションで印刷操作を行うと（1101）、ダイアログ操作監視モジュール340は、印刷ダイアログの表示イベントを検知し（1103）、印刷を実施するアプリケーションのウィンドウタイトルを取得する（1104）。これにより、ダイアログ操作監視モジュール340は、アプリケーションがオープンして、印刷を実行しようとしているファイルのフルパスを取得する（1105）。【００８４】
この後、ユーザが、印刷ダイアログにおいて印刷ボタンをクリックすると（1102）、ダイアログ操作監視モジュール340は、ダイアログがクローズされたことを検知し（1206）、送信されたファイルの入手元を示す識別子を確認し、組織内のファイルサーバからコピーされたファイルや、組織内のWebサーバからダウンロードされたファイルや、メーラに添付されて取得したファイルであった場合にはアラートを出力する処理を実施する（1107）。【００８５】
図１２には、２つのシーケンスが表示されている。図１２の上側には、ユーザが、ファイルエクスプローラを用いて、ファイルサーバ115の情報をローカルファイルシステム204にコピーする際に、ファイル操作監視モジュール350により実行される処理により実現される第一の手段のシーケンスが示されている。図１２の下側には、ユーザが、ファイルエクスプローラを用いて、ファイルをリムーバブルメディアにコピーする際に、ファイル操作監視モジュール350により実行される処理により実現される第二の手段のシーケンスが示されている。【００８６】
第一の手段に相当するシーケンスを先に説明する。ユーザが、ファイルエクスプローラを用いたファイルのコピー、もしくは移動操作を行うと（1201）、ファイル操作監視モジュール350は、ファイルのコピー元とコピー先を特定する（1202）。ファイル操作監視モジュール350は、コピー元がファイルサーバ115で、かつ、コピー先がクライアントPC121であった場合には、操作対象のファイルに入手元を示す識別子を付与する（1203）。【００８７】
第二の手段に相当するシーケンスを説明する。ユーザが、ファイルエクスプローラを用いてファイルのコピー、もしくは移動操作を行うと（1211）、ファイル操作監視モジュール350は、ファイルのコピー元とコピー先を特定する（1212）。ファイル操作監視モジュール350は、コピー元がクライアントPC121のローカルファイルシステム204で、かつ、コピー先がクライアントPC121に接続されたリムーバブルメディアであった場合には、操作対象のファイルに入手元を示す識別子を確認する。ファイル操作監視モジュール350は、操作対象のファイルが組織内のからコピーされたファイル、または、組織内のWebサーバからダウンロードされたファイル、または、メーラに添付されて取得されたファイルのいずれかであった場合には、アラートを出力する処理を実施する（1213）。【００８８】
図１３は、受信したメールに関する情報を格納するために使用する入手元DB393および、ローカルファイルシステム204に格納されたファイルに付与する入手元を示す識別子1311のフォーマットの一例である。【００８９】
入手元DB393は、ファイル名を格納するフィールド1301と、メールの送信者名を格納するフィールド1302と、フィールド1301に記載されたファイルのハッシュ値を格納するフィールド1303により構成されている。【００９０】
入手元を示す識別子1311は、図５でも述べたように、Microsoft社のNTFSであれば「代替ストリーム」を用いて、iniファイル形式のデータとして実現することができる。メールサーバ114から入手したファイルであれば、From行に送信者のメールアドレスが記載される。ファイルサーバ115から入手したファイルであれば、Server行にファイルサーバのサーバ名もしくはIPアドレスが記載される。組織内Webサーバから入手したファイルであれば、入手したファイルを示すURLが記載される。未使用の行は消去してあってもよいし、イコール以降が空白であってもよい。【００９１】
本発明では、入手元を示す識別子1311に含まれる内容を、第二の手段でアラートとして管理サーバ111に送信できる。第一の手段によって、管理対象の情報がクライアントPC121にインポートされた時刻を入手元識別子1311に含ませる場合、エクスポートされた情報の入手元以外に、入手日時もアラートの中身に含めることができる。【００９２】
上記を実現するために入手元DB393のフィールドとして、添付ファイルを含むメールを受信した時刻を格納するための時刻情報フィールドを追加してもよい。TCP通信モジュール360が、ステップ606、706において、メールヘッダに記載された受信時刻を時刻情報フィールドに登録し、ファイル属性を取得するステップ610、710において、時刻情報フィールドの記録時刻も取得して、入手元識別子1311に時刻情報を付与する構成でもよい。【００９３】
図１４は、ブラウザ監視モジュール330が実行する処理の概要を示すフローチャートの一例である。【００９４】
ブラウザ監視モジュール330は、Webブラウザが起動されたタイミングで起動され、図４、図５、図８で説明したWebブラウザに対するユーザ操作イベントの監視を設定し（1401）、イベントが発生したかを判別するループに入る（1402）。イベントの発生を検知した場合、ブラウザ監視モジュール330は、ユーザの左クリック操作でページが遷移したかどうかを判別するステップを実行する（1403）。【００９５】
ユーザの左クリック操作でページが遷移した場合には、ブラウザ監視モジュール330は、遷移後のURLを取得するステップ（1404）を実行後、ダイアログ監視モジュール340にURLを送信するステップ（1408）を実行する。【００９６】
一方、ページが遷移しなかった場合には、ブラウザ監視モジュール330は、ファイル操作監視モジュール350よりマウスイベントのブラウザ上の座標情報を取得するステップ（1405）を実行する。ブラウザ監視モジュール330は、マウスカーソルの下に位置するHTMLのアンカータグを取得するステップ（1406）を実行し、マウスカーソルで選択したURLを抽出するステップ（1407）を実行する。ブザー監視モジュール330は、ダイアログ監視モジュール340にURLを送信するステップ（1404）を実行する。【００９７】
図１５は、ダイアログ操作監視モジュール340が実行する処理の概要を示すフローチャートの一例である。【００９８】
ダイアログ操作監視モジュール340は、ユーザがクライアントPC121にログオンしたタイミングで起動される。ダイアログ操作監視モジュール340は、図４、図５、図６、図８、図９、図１１で説明したダイアログを用いたファイル操作を監視するもので、例えば、タイマー監視等のセットアップ（1501）を行った後、ダイアログが表示されるイベントを監視する（1502）。【００９９】
イベントが発生した場合、ダイアログ操作監視モジュール340は、アップロードダイアログまたはダウンロードダイアログのいずれが表示されているかをチェックし（1503）、いずれかのダイアログが表示されていた場合には、そのダイアログを表示させたアプリケーションの種別を判別する（1504）。アプリケーションがメーラであった場合には、メーラチェックスレッドを生成するステップ（1505）、Webブラウザであった場合には、Webブラウザチェックスレッドを生成するステップ（1506）を実施する。【０１００】
また、ステップ1503において、表示されているダイアログがアップロードダイアログまたはダウンロードダイアログのいずれでもない場合、ダイアログ操作監視モジュール340は、その表示されたダイアログが印刷用ダイアログであるか否かを判別する（1507）。ダイアログ操作監視モジュール340は、印刷用ダイアログの場合、印刷チェックスレッドを生成するステップ（1508）を実施する。【０１０１】
各スレッドを生成するステップを実施した後、ダイアログ操作監視モジュール340は、ダイアログが表示されるイベントを監視するステップ（1502）に戻る。【０１０２】
図１６は、ダイアログ操作監視モジュール340が実行する処理のうち、メーラチェックスレッドの生成ステップ1505の概要を示すフローチャートの一例である。【０１０３】
本スレッドでは、ダイアログ操作監視モジュール340は、アップロードダイアログまたはダウンロードダイアログのいずれかが表示されているかをチェックし（1601）、いずれかのダイアログが表示されている場合には、ダイアログに表示されている文字列からフォルダ名の取得（1602）と、ファイル名の取得（1603）を行う。ダイアログ操作監視モジュール340は、アップロード対象またはダウンロード対象のファイルのフルパスを構成した上で（1604）、ステップ1601に戻る。【０１０４】
この後、ユーザが、ダイアログの保存ボタン等をクリックしてダイアログが非表示になると、ステップ1611以降の処理を実行する。【０１０５】
まず、ダイアログ操作監視モジュール340は、ステップ1604によりフルパスが取得されており、かつ、そのフルパスで示されるファイルが存在するか判別する（1611）。ダイアログ操作監視モジュール340は、ファイルが存在する場合にはステップ1612以降の処理を実行し、ファイルが存在しない場合にはステップ1601に戻る。【０１０６】
ファイルが存在する場合、ダイアログ操作監視モジュール340は、まずダウンロードダイアログか否かを判別し（1612）、ダウンロードダイアログである場合には、ステップ1604で特定されるファイルのハッシュ値を計算する（1613）。ダイアログ操作監視モジュール340は、図６、図７で示したように、TCP通信監視モジュール360が入手元DB393に登録した情報を検索し（1614）、入手元が組織内の他ユーザである場合など所定の条件に一致する場合、ステップ1604で取得されるフルパスで特定されるファイルに、入手元情報を書き込む（1609）。【０１０７】
アップロードダイアログの場合、ダイアログ操作監視モジュール340は、図９、図１０で示したように、TCP通信モジュール360から送信先情報を受信し（1621）、アップロードダイアログで指定されたファイルがメールに添付されて送信された場合、ステップ1604で特定されるファイルの入手元情報を読み込む（1622）。ダイアログ操作監視モジュール340は、アラート条件をチェックしてアラートを生成し、必要に応じてアラートを管理サーバ111に送信する（1623）。【０１０８】
図１７は、ダイアログ操作監視モジュール340が実行する処理のうち、Webブラウザチェックスレッドの生成ステップ1506の概要を示すフローチャートの一例である。【０１０９】
本スレッドでは、ダイアログ操作監視モジュール340は、アップロードダイアログまたはダウンロードダイアログのいずれかが表示されているかをチェックし（1701）、いずれかのダイアログが表示されている場合には、ダイアログに表示されている文字列からフォルダ名の取得（1702）と、ファイル名の取得（1703）を行い、アップロード対象またはダウンロード対象のファイルのフルパスを構成して（1704）、ステップ1701に戻る。この後、ユーザが、ダイアログの保存ボタン等をクリックしてダイアログが非表示になると、ステップ1705以降の処理を実行する。【０１１０】
まず、ダイアログ操作監視モジュール340は、ステップ1704によりフルパスが取得されており、かつフルパスで示されるファイルが存在するかを判別する（1705）。ダイアログ操作監視モジュール340は、ファイルが存在する場合にはステップ1706以降の処理を実行し、ファイルが存在しない場合にはステップ1701に戻る。ダイアログ操作監視モジュール340は、ファイルが存在する場合、まずダウンロードダイアログか否かを判別し（1706）、ダウンロードダイアログであった場合には、図４、図５で示したようにブラウザ監視モジュール330が保持するダウンロード元情報を入手し（1707）、入手元が組織内の他ユーザであるなど所定の条件に一致する場合、ステップ1704で取得されたフルパスで示されるファイルに、入手元情報を書き込む（1708）。【０１１１】
アップロードダイアログであった場合には、ダイアログ操作監視モジュール340は、図８で示したように、ブラウザ監視モジュール330が保持するアップロード先情報を、ブラウザ監視モジュール330から入手する（1709）。ダイアログ操作監視モジュール340は、アップロードダイアログで指定されたファイルが送信された場合、ステップ1704で取得されたフルパスで特定されるファイルの入手元情報を読み込み（1710）、アラート条件に合致するか否かをチェックしてアラートを生成し、必要に応じてアラートを管理サーバ111に送信する（1711）。【０１１２】
図１８は、ダイアログ操作監視モジュール340が実行する処理のうち、アプリケーションによる印刷チェックスレッドを生成するステップ1508の概要を示すフローチャートの一例である。【０１１３】
本スレッドでは、ダイアログ操作監視モジュール340は、印刷ダイアログが表示されているかをチェックし（1801）、ダイアログが表示されている場合には、印刷元のアプリケーションプログラムのプロセスIDを取得し（1802）、さらに、そのプロセスIDで特定されるアプリケーションプログラムがオープンしているファイル一覧の中からファイル名を取得する（1803）。ダイアログ操作監視モジュール340は、印刷対象のファイルのフルパスを構成して（1804）、ステップ1801に戻る。【０１１４】
この後、ユーザが、ダイアログの印刷ボタン等をクリックしてダイアログが非表示になると、ダイアログ操作監視モジュール340は、印刷対象ファイルの入手元情報を読み込み（1805）、アラート条件をチェックしてアラートを生成し、必要に応じてアラートを管理サーバ111に送信する（1806）。【０１１５】
図１９は、ファイル操作監視モジュール350が実行する処理の概要を示すフローチャートの一例である。【０１１６】
ファイル操作監視モジュール350は、ユーザがクライアントPC121にログオンしたタイミングで起動され、マウスイベントのフックを開始（1901）した後、図５、図７、図１０で説明した、マウスを用いたファイル操作を監視する。ファイル操作監視モジュール350は、イベントを検知したときには、検知したマウス操作イベントが右クリックであるか否か判別する（1902）。【０１１７】
右クリック操作の場合、ファイル操作監視モジュール350は、フォアグラウンドウィンドウでのマウスカーソル座標を取得し（1903）、ブラウザウィンドウの座標への変換処理を実行し（1904）、ブラウザ監視モジュール330にステップ1904で取得した座標を通知する処理を実行し（1905）、イベント監視に戻る。【０１１８】
一方、ステップ1902で、マウス操作イベントが右クリックでないと判定した場合には、ファイル操作監視モジュール350は、ドラッグイベントであるかを判別する処理を実行し（1911）、ドラッグイベントでなかった場合にはイベント監視に戻る。【０１１９】
イベントがドラッグイベントである場合は、ファイル操作監視モジュール350は、ドラッグされたオブジェクトがドロップされるイベントを検出し、ファイルエクスプローラ上でドラッグされたファイルが、メーラ上でドロップされたかを判定する（1912）。【０１２０】
ステップ1912でNoと判定された場合には、ファイル操作監視モジュール350は、後述のステップ1921に移る。ステップ1912でYesと判定された場合、ファイル操作監視モジュール350は、ドラッグ元ファイルパスを取得し（1913）、ステップ1913で取得したフルパスで特定されるファイルの入手元情報を読み込み（1914）、アラート条件をチェックした上で必要に応じてアラートを管理サーバ111に送信する（1915）。【０１２１】
ステップ1912で、オブジェクトのドロップされた先がメーラ上でない場合、ファイル操作監視モジュール350は、ドラッグ＆ドロップイベントが、メーラ上でドラッグされ、ファイルエクスプローラ上でドロップされたかを判定する（1921）。【０１２２】
ステップ1921がNoと判定された場合、ファイル操作監視モジュール350は、イベント監視に戻り、ステップ1921でYesと判定された場合には、メールに添付されたファイルのドロップ先のファイルパスを取得する（1922）。次に、ファイル操作監視モジュール350は、ステップ1922でフルパスが取得されたファイルのハッシュ値を計算し（1923）、入手元DB393に登録した情報を検索する（1924）。ファイル操作監視モジュール350は、入手元が組織内の他ユーザである場合など所定の条件に一致する場合、ステップ1922で取得されたフルパスで示されるファイルに、入手元情報を書き込む（1915）。【０１２３】
なお、図１２で示したシーケンスに対するファイル操作監視モジュール350の処理も、ドラッグ元がファイルサーバ115でドロップ先がローカルファイルシステム204である場合には、ステップ1922とステップ1925に準じる処理を、ドラッグ元がローカルファイルシステム204で、ドロップ先がリムーバブルメディアであった場合にはステップ1913とステップ1915に準じる処理を行えばよい。【０１２４】
また、ドラッグ元がファイルサーバ115で、ドロップ先がリムーバブルメディア125であった場合には、ステップ1915に準じる処理を行えばよい。【０１２５】
図２０は、TCP通信監視モジュール360が実行する処理の概要を示すフローチャートの一例である。【０１２６】
TCP通信監視モジュール360は、ユーザがクライアントPC121にログオンしたタイミングで起動され、SMTP、POP3、IMAP4の各プロトコルでの通信データを監視する。TCP通信監視モジュール360は、ソケット通信の監視を開始し（2001）、前記各プロトコルのいずれかでの送受信データかどうかを判別する（2002）。ステップ2002がNoの場合、ソケット通信の監視に戻り、Yesの場合はステップ2003以降の処理を実施する。【０１２７】
ステップ2003では、TCP通信監視モジュール360は、メールデータの解析を実施する。この際、メールデータのヘッダ領域から送信者および受信者の情報を解析でき、さらに、MIME（Multipurpose  Internet  Mail  Extension）パートの解析により添付ファイルの有無およびファイル名称等の情報を得ることができる。【０１２８】
次に、TCP通信監視モジュール360は、メールに添付ファイルがあるかどうか識別し（2004）、添付されている場合は、さらにプロトコル種別がメール受信用のPOP3もしくはIMAP4のいずれかであるか、または、メール送信用のSMTPであるかを判別する（2005）。メール受信の場合、TCP通信監視モジュール360は、送信者名と添付ファイル名を取得し（2006）、添付ファイルのデータをデコードした後でハッシュ値を計算し（2007）、さらに、入手元DB393への登録を行ってから、ソケット通信の監視に戻る。【０１２９】
一方、ステップ2005で、メール送信と判定された場合、TCP通信監視モジュール360は、送信者名と添付ファイル名を取得し（2009）、ダイアログ監視モジュール350およびファイル監視モジュール360に、ステップ2009で取得した情報を送付する（2010）。【０１３０】
以上の構成および処理により、本システムでは、監視対象とは異なる機器からクライアントPC121にインポートされた情報（入力情報）が、検査対象となる機器にエクスポートされたことを識別することが可能となる。クライアントPC121に情報をインポートする方法としては、
（１）Webブラウザでのダウンロード、
（２）受信メールに添付されたファイル
（３）ファイルエクスプローラを用いた、ファイルサーバからローカルファイルシステム204へのコピーおよび移動、
がある。
それらのいずれの操作でも、インポートされた情報には、インポート元に関する情報を含む入手元を示す識別子1311が付与される。【０１３１】
クライアントPC121のローカルファイルシステム内でインポートされた情報に、コピー、または、名前変更、または、移動の各処理を行った場合、処理後の情報（コピーされた情報を含む）にも入手元を示す識別子1311が付与される機能が備わっているファイルシステム（例えばMicrosoft社のNTFS）であれば、
本実施例の不正操作検知システムが想定する、情報エクスポート操作として、
（１）Webブラウザでのファイルアップロード、
（２）添付ファイル付きメールの送信、
（３）アプリケーションプログラムでの印刷、
（４）リムーバブルメディアへのコピーおよび移動、
が行われる際に、アラートを管理サーバ111に送信可能である。【０１３２】
本システムを用いてアラートを送信するためのアラート条件は、入手元を示す識別子1311の内容に基づいて決定してもよい。例えば、Webブラウザを用いたダウンロードによりインポートされた情報であれば、組織内の全てのWebサーバを対象としてもよく、または、重要な情報が格納されているWebサーバを識別できるのであれば、特定のWebサーバのURLが入手元を示す識別子1311に含まれている場合のみを対象とするように、セキュリティポリシ392に設定してもよい。【０１３３】
また、エクスポート操作を行う時間帯や、情報の種別、サイズに応じてアラートを出力する条件を変えることも可能である。【０１３４】
本実施例によれば、組織内の他の計算機で作成された機密情報を、ユーザが自分の使用するクライアントPC121にインポートした後で、組織外にエクスポートした操作を、不正操作として検出することが可能である。従って、本実施例では、ユーザが行った情報漏洩につながるリスクの高い操作を不正操作として検出することができる。【０１３５】
これにより、情報漏洩につながるリスクの高いユーザの操作を検知するために、特定の情報出力操作が行われた場合にアラートを出力する初期設定や、不正な操作パターンを定義する初期設定を行わずに、情報漏洩のリスクの高い不正操作に対して、アラートを上げる機能を実現することができる。【０１３６】
また、情報漏洩事故につながるリスクの高い不正操作を検出し、不正操作に伴う情報を、アラートで処理すべき情報として管理することで、情報漏洩を抑制できる。
【実施例２】
【０１３７】
図２３−図４０を参照して第２実施例を説明する。本実施例では、ファイル操作の履歴を管理するためのインファイルトレース情報を各ファイル内に記憶させ、さらに、インファイルトレース情報と同一の情報を管理サーバ111にも記憶させる。本実施例を含む以下の各実施例では、上述した実施例と異なる部分を中心に説明する。【０１３８】
図２３は、インファイルトレース情報が生成される様子を示す。インファイルトレース情報は、例えば、どのファイルのどの世代の何回目のコピーであるかを示す情報であり、例えば、NTFSの代替データストリーム（以下、代替ストリーム）に記録される。後述のように、インファイルトレース情報を参照することにより、各ファイル間の関係を比較的簡単に把握でき、ファイル間の関係をツリー構造で表示することができる。【０１３９】
ユーザがファイルを新たに作成すると、そのファイル作成は、ファイル操作監視モジュール350により検出される。ファイル操作監視モジュール350は、インファイルトレース情報を作成する（3001）。作成されたインファイルトレース情報は、ファイル3002の代替ストリームに格納される。さらに、エージェントプログラム122は、作成されたインファイルトレース情報をマネージャ112に送信する。これにより、PC管理DBにも、インファイルトレース情報と同一の情報が格納される（図２９の3101）。【０１４０】
インファイルトレース情報は、例えば、ファイル格納識別子（FID）と、操作識別子（OID）と、カウントとを備える。ファイル格納識別子は、ファイルがクライアントPC121の有するファイルシステム204に格納される場合に設定される情報であり、そのファイルを一意に特定するための情報である。操作識別子は、「操作世代情報」に該当し、ファイル操作の回数（世代）を示す情報である。カウントは、「コピー回数情報」に該当し、ファイルがコピーされた回数を示す。換言すれば、カウントは、ファイルから枝分かれした系統の数を示す。【０１４１】
なお、ファイル3002内に示されている”カウント”は、次の操作識別子を生成するためにも使用される。つまり、一回コピーされる度に系統が一つ増加するため、どの系統のファイルの何回目の操作であるかを示すために、操作元ファイル内のカウントの値は、操作先のファイルの操作識別子に受け継がれる。【０１４２】
次に、ファイル3002がコピーされた場合、ファイル操作監視モジュール350は、ファイル3002の代替ストリームからインファイルトレース情報を取得し、コピー操作後のインファイルトレース情報を作成する（3003）。作成されたインファイルトレース情報（3003）は、コピー先のファイル3004の代替ストリームに格納される。さらに、そのインファイルトレース情報と同一の情報が、コピー先ファイルに対応付けられて、PC管理DBに格納される。【０１４３】
コピー操作に伴って、コピー元のファイル3002のカウントの値は、”0”から”1”に更新される。ファイルのコピーは、コピー元を残したままで、同一内容のファイルを新たに作成することを意味する。即ち、同一内容のファイルが複数併存することになる。そこで、コピー回数に応じてカウントの値を更新し、コピー毎の系統を区別する。【０１４４】
ファイル操作はコピーであり、操作元のファイル3002はコピー元のファイルであり、操作先のファイル3004はコピー先のファイルである。コピー元ファイル3002とコピー先ファイル3004とは、同一のファイルデータを有する。従って、コピー元ファイル3002のファイル格納識別子とコピー先ファイル3004のファイル格納識別子とは同一である。【０１４５】
操作識別子の変化に着目する。コピー元ファイル3002の操作識別子は”0”である。コピー先ファイル3004の操作識別子は”00”である。操作の回数が１つ増加するたびに、操作識別子の桁数が１つ増加する。操作先ファイルの操作識別子は、操作元ファイルの操作識別子及びカウントから構成される。操作元ファイル3002の操作識別子は”0”であり、カウントも"0"である。従って、操作先ファイル3004の操作識別子は、操作元ファイル3002の操作識別子"0"と、操作元ファイル3002のカウント"0"とを並べることにより、"00"として作成される。【０１４６】
つまり、操作識別子は、操作回数と系統（分岐の数）の両方を示す。操作識別子の桁数は、操作回数を示している。２桁なら、２回目の操作であることを示す。先の例では、１回目の操作は、ファイルの作成である。操作識別子に含まれる”0”以外の数字（または文字）は、何回目のコピーの子孫であるかを示す。例えば、操作識別子が”000”であるファイル3006は、操作識別子が"0"であるファイル3002の直系の子孫であり、３回目の操作により作成されたファイルである。【０１４７】
ファイル3004の名称が手動または自動で変更された場合を説明する。この場合のファイル操作は、名称変更である。操作元ファイルは、名称変更元（名称変更前）のファイル3004である。操作先ファイルは、名称変更先（名称変更後）のファイル3006である。【０１４８】
ファイル操作監視モジュール350は、ファイル3004の代替ストリームからインファイルトレース情報を取得し、名称変更後のインファイルトレース情報を作成する（3005）。作成されたインファイルトレース情報（3005）は、名称変更先のファイル3006の代替ストリームに格納される。前記同様に、そのインファイルトレース情報と同一の情報が、名称変更先ファイル3006に対応付けられて、PC管理DBに格納される。【０１４９】
名称変更先ファイル3006は、名称が変更されただけであり、ファイル3004と同一のファイルデータを有する。従って、名称変更元のファイル3004のファイル格納識別子と名称変更先ファイル3006のファイル格納識別子とは同一である。【０１５０】
名称変更先ファイル3006の操作識別子”000”は、名称変更元のファイル3004の操作識別子”00”とカウント"0"とを並べることにより生成される。名称変更元ファイル3006の操作識別子”000”は３桁であるから、そのファイル3006は、起点となるファイル3002の作成から数えて３回目の操作で作成されたファイルであることがわかる。なお、名称変更先ファイル3006のカウントには”0”が設定される。【０１５１】
名称変更されたファイル3006が手動または自動でファイルシステム204から削除された場合を説明する。ここでのファイル操作は、ファイル削除である。操作元ファイルは、削除対象のファイル3006である。操作先ファイルは存在しない。削除されるためである。【０１５２】
操作先のファイルは存在しないが、操作先ファイル用のインファイルトレース情報3007は作成される。ファイル格納識別子は、削除対象ファイル3004のファイル格納識別子と同一である。操作識別子"0000"は、削除対象ファイル3004の操作識別子”000”とカウント”0”とを並べることにより作成される。操作先ファイル用に作成されたインファイルトレース情報3007と同一の情報が、PC管理DBに格納される。【０１５３】
大元のファイル3002が移動された場合を説明する。この場合、ファイル操作はファイル移動であり、操作元ファイルは移動元ファイル3002であり、操作先ファイルは移動先ファイル3009である。ファイル操作監視モジュール350は、そのファイル移動を検出すると、移動元ファイル3002のインファイルトレース情報を取得し、そのインファイルトレース情報に基づいて移動先ファイル3009のインファイルトレース情報3008を作成する。【０１５４】
ファイル移動は、ファイルコピーと同様に、ファイル操作の前後でファイルデータに変化はない。従って、移動先ファイル3009のインファイルトレース情報3008において、ファイル格納識別子は、移動元ファイル3002のファイル格納識別子と同一である。移動先ファイル3009のインファイルトレース情報3008において、操作識別子"01"は、移動元ファイル3002の操作識別子"0"とカウント”1”を並べることにより生成される。なお、前記同様に、移動先ファイル3009のカウントには、初期値”0”が設定される。【０１５５】
なお、ファイル移動の場合は、ファイルコピーと異なり、移動元ファイル3002は消滅し、移動先ファイル3009のみがファイルシステム204に残る。しかし、PC管理DBには、移動元ファイル3002に関するインファイルトレース情報3001が記憶され続ける。【０１５６】
移動先ファイル3009が削除された場合を説明する。この場合のファイル操作はファイル削除であり、操作元ファイルは削除対象ファイル3009である。ファイルが削除されるため、操作先ファイルは存在しない。しかし、前記同様に、操作先ファイル用のインファイルトレース情報3010が作成されて、PC管理DBに記憶される。インファイルトレース情報3010において、操作識別子"010"は、削除対象ファイル3002の操作識別子"0"とカウント”1”とを並べて生成される。インファイルトレース情報3010のカウントの値には、初期値である”0”が設定される。【０１５７】
図２３で述べたファイル操作の履歴を、図２４−図２８を参照して再度説明する。図２４−図２８では、図２３に示す各ファイル操作を一つずつ説明する。但し、図２３に示す各ファイル操作のうち重複したファイル操作（ファイル削除）は、図２４−図２８では１つのみ示される。【０１５８】
図２４−図２８には、インファイルトレース情報とPC管理DBの記憶内容との関係が示されている。図２４の左側は初期状態を示す。初期状態では、クライアントPC121のファイルシステム204に一つもファイルが格納されておらず、PC管理DBにもレコードが記録されていない。【０１５９】
図２４の右側は、一つのファイル3002がファイルシステムに格納された状態を示す。例えば、Webサーバ116，131からダウンロードされたファイル、ファイルサーバ115からダウンロードされたファイル、リムーバブルメディア125からコピーされたファイル、電子メールに添付されていたファイル等のファイルが、ファイルシステムに格納される。【０１６０】
ファイルシステム204にファイル3002が格納されると、そのファイル用のインファイルトレース情報3001が作成される。そのインファイルトレース情報3001では、操作識別子に”0”が設定され、カウントにも初期値”0”が設定される。PC管理DBには、インファイルトレース情報3001と同一の情報が記憶される。さらに、PC管理DBには、ファイル操作の内容（どこから取得されたファイルであるか等を示す情報）も一緒に記憶される。【０１６１】
図２５を参照する。図２５の左側は図２４の右側と同一である。従って、図２５の右側の状態を説明する。図２５の右側は、図２４の右側でファイルシステムに格納された最初のファイル3002（C:\test.txt）が、他のディレクトリにコピーされた状態を示す。コピー先ファイル3004（C:\test\test.txt）のインファイルトレース情報3003では、操作識別子（OID）に”00”が設定され、カウントに”0”が設定される。ファイル格納識別子（FID）は、コピー前と同じである。PC管理DBには、コピー先ファイル3004のインファイルトレース情報と同一の情報3003と操作内容とが対応付けられて記憶される。【０１６２】
最初のファイル3002（C:\test.txt）から一つのコピー（C:\test\test.txt）が作成されたことにより、最初のファイル3002のインファイルトレース情報に含まれるカウンタの値は、”0”から”1”に変化する。しかし、PC管理DBに記憶されている最初のファイル3002のインファイルトレース情報に対応するレコードは、コピー操作の前後で変更されない。PC管理DBに記憶されている、最初のファイル3002のインファイルトレース情報は一切変更されない。つまり、PC管理DBには、ファイル操作後のインファイルトレース情報と同一の情報が記憶され、その後に、そのインファイルトレース情報に対応するファイルがさらに操作された場合でも、操作されたファイルのインファイルトレース情報に対応するレコードの内容は変化しない。【０１６３】
図２６を参照する。図２６の左側は図２５の右側と同一である。従って、図２６の右側の状態を説明する。図２６の右側は、図２５の右側においてコピーされたファイル3004のファイル名を”text.txt”から”text2.txt”に変更した状態を示す。【０１６４】
名称変更元のファイル3004（C:\test\text.txt）のインファイルトレース情報に基づいて、名称変更先ファイル3006（C:\test\text2.txt）のインファイルトレース情報が作成される。その作成されたインファイルトレース情報は、名称変更先ファイル3006の代替ストリームに格納される。さらに、作成されたインファイルトレース情報と同一の情報3005は、PC管理DBにも記憶される。【０１６５】
名称変更先ファイル3006のインファイルトレース情報において、操作識別子は”000”に設定される。名称変更元ファイル3004の操作識別子”00”とカウント”0”とを並べて３桁にすることにより、名称変更先ファイル3006に関する操作識別子”000”が生成される。名称変更先ファイル3006に関するカウントには、初期値”0”が設定される。【０１６６】
図２６の右下に示すPC管理DBに着目すると、PC管理DBには、最初のファイル3002に関するインファイルトレース情報（正確には、インファイルトレース情報と同一の情報に操作内容を加えた情報。以下同様）と、コピーされたファイル3004に関するインファイルトレース情報と、名称変更されたファイル3006に関するインファイルトレース情報との、合計３つのインファイルトレース情報が格納されている。上述の通り、PC管理DBに格納された各インファイルトレース情報の内容は、その後のファイル操作に関わらず、変更されない。PC管理DBに記憶される各インファイルトレース情報に基づいて、ファイル操作の変遷（履歴）検出し、可視化するためである。【０１６７】
図２７を参照する。図２７の左側は図２６の右側と同一である。従って、図２７の右側の状態を説明する。図２７の右側は、最初のファイル3002（C:\text.txt）を別のディレクトリ（D:\）に移動させた状態を示す。【０１６８】
移動先ファイル3009（D:\text.txt）に関するインファイルトレース情報は、移動元ファイル3002（C:\text.txt）のインファイルトレース情報に基づいて作成され、移動先ファイル3009の代替ストリームに格納される。前記同様に、PC管理DBには、そのインファイルトレース情報と同一の情報が送信されて記憶される。【０１６９】
移動先ファイル3009に関する操作識別子”01”は、移動元ファイル3002の操作識別子”0”とカウント”1”とを並べて２桁にすることにより作成される。カウントの値には初期値”0”が設定される。なお、図２４−図２８を通じて、ファイル格納識別子に変化はない。【０１７０】
図２８を参照する。図２８の左側は図２７の右側と同一であるため、図２８の右側の状態を説明する。図２８の右側は、図２７の右側において移動されたファイル3009を、ファイルシステムから削除した状態を示す。【０１７１】
削除されたファイルのインファイルトレース情報は、削除対象のファイル3009（D:\text.txt）のインファイルトレース情報に基づいて作成される。作成されたインファイルトレース情報と同一の情報3010は、PC管理DBに送信されて記憶される。作成されたインファイルトレース情報は、代替ストリームに格納されない。ファイルが削除されており、格納すべき代替ストリームが存在しないためである。【０１７２】
削除されたファイルに関する操作識別子”010”は、削除対象ファイル3009の操作識別子”01”とカウント”0”を並べて３桁にすることにより作成される。削除されたファイルに関するカウントには、初期値”0”が設定される。既にファイルは削除されているため、そのカウントの値が増加することはない。【０１７３】
図２９は、PC管理DBの記憶例を示す。図２３で示したような複数のファイル操作が実行されることにより、図２９に示すような管理データがPC管理DBに格納される。PC管理DBは、各ファイル操作に対応するレコード3101-3106を有する。PC管理DBの各レコードは、例えば、ファイル格納識別子フィールド3110と、操作識別子フィールド3111と、操作種別フィールド3112と、操作元パスフィールド3113と、操作先パスフィールド3114と、を含む。このほかに、例えば、ファイルの操作日時、ファイルを操作したユーザ等の情報をPC管理DBで管理することもできる。上記各フィールドのうち、ファイル格納識別子フィールド3110及び操作識別子フィールド3111は、ファイル操作を追跡して可視化するために必須の情報である。その他のフィールドは、ファイル操作の内容を示す情報である。【０１７４】
ユーザ（管理者）がファイル操作の履歴の出力を希望する場合、次のような処理が実行される。まず、ユーザは、起点となるインファイルトレース情報を選択する。管理サーバ111内のマネージャ112は、ユーザにより選択されたインファイルトレース情報に含まれるファイル格納識別子で、PC管理DBを検索する。これにより、ユーザにより選択されたファイル格納識別子を有するレコードのみが抽出される。さらに、マネージャ112は、ユーザにより選択されたファイル格納識別子を有する各レコードを、操作識別子に基づいて並び替える。【０１７５】
このようにして得られる情報は、全て同一のファイルから発したファイル操作の履歴を示している。操作識別子の先頭から最終桁の１つ前までの桁が共通するインファイルトレース情報は、同一系統の操作に属する。同一系統のファイル操作に属するインファイルトレース情報において、操作識別子の桁数（操作識別子の文字数）が１つ多いインファイルトレース情報は、その次の操作を示す。【０１７６】
図３０は、代替ストリームに格納されるインファイルトレース情報の例を示す。この例では、iniファイルの形式で、ファイル識別子と操作識別子とカウントとを格納する。この例では、ファイル識別子には、UUID（Universally Unique Identifier）を設定し、操作識別子の桁数は32文字とし、操作識別子の使用可能な文字の範囲は0-9、A-Z、a-zとし、カウントの範囲は0から60までとする。【０１７７】
図３１は、ファイル操作を監視するシーケンスを示す。ユーザがエクスプローラ等のアプリケーションプログラムを用いてファイル操作（例えば、ファイルの作成、移動、コピー、名称変更、削除のいずれか）を行うと（1201）、ファイル操作監視モジュール350は、そのファイル操作を検知する。以下、ファイルコピーの場合を中心に述べる。【０１７８】
ファイル操作監視モジュール350は、コピー元及びコピー先を確認し（1202）、必要に応じて、操作されたファイルの代替ストリームに入手元情報を書き込む（1203）。そして、ファイル操作監視モジュール350は、操作されたファイルの代替ストリームに、インファイルトレース情報を書き込む（3301）。【０１７９】
上述の通り、エクスプローラ等のアプリケーションプログラムを用いて、ファイルが移動またはコピーされた場合、ファイルの代替ストリームの内容も、移動またはコピーされる（操作識別子の値は変化する）。ファイルが削除されると、代替ストリームの内容も削除される。【０１８０】
ファイル操作監視モジュール350は、操作先のインファイルトレース情報を作成し、操作先のインファイルトレース情報をマネージャ112に送信してPC管理DBに記憶させ、さらに、必要に応じて操作元のインファイルトレース情報を更新する。インファイルトレース情報の操作の詳細は、後述する。【０１８１】
図３４は、図３１に示すインファイルトレース情報を操作する処理3301の詳細を示すフローチャートである。まず最初に、ファイル操作監視モジュール350（以下、監視モジュール350と略記する場合がある）は、ファイル操作の起点となる操作であるか否かを判定する（3401）。ファイル操作の起点となる操作とは、ファイルの作成を意味する。例えば、Webサーバ等からクライアントPC121にファイルをダウンロードする操作は、ファイルの起点となる操作に該当する。【０１８２】
起点となるファイル操作であると判定されると、監視モジュール350は、インファイルトレース情報を新規作成し（3402）、新たに作成されたファイルの代替ストリームに、新規作成されたインファイルトレース情報を書き込む（3403）。さらに、監視モジュール350は、新規作成されたインファイルトレース情報をマネージャ112に送信し、PC管理DBに記憶させる（3404）。【０１８３】
起点となるファイル操作ではないと判定されると、監視モジュール350は、操作元となるファイルの代替ストリームからのインファイルトレース情報の取得を試みる（3410）。監視モジュール350は、操作元ファイルの代替ストリームからインファイルトレース情報を取得できたか否かを判定する（3411）。操作元ファイルの代替ストリームからインファイルトレース情報を取得できなかった場合、監視モジュール350は、操作元ファイル用のインファイルトレース情報を新規に作成する（3412）。【０１８４】
例えば、本実施例に係るファイル操作履歴の管理システムが計算機システムに導入されるよりも前から存在するファイルの代替ストリームには、インファイルトレース情報が書き込まれていない。従って、そのようなファイルには、新たにインファイルトレース情報を作成して代替ストリームに書き込む（3412，3418）。【０１８５】
監視モジュール350は、操作先ファイルに関するインファイルトレース情報を作成し、さらに、更新が必要な場合は操作元ファイルに関するインファイルトレース情報を更新させる（3413）。ステップ3411で操作元ファイルの代替ストリームからインファイルトレース情報を取得できた場合は、ステップ3413に移る。【０１８６】
監視モジュール350は、ユーザの希望するファイル操作を実行し（3414）、操作先ファイルが存在するか否かを判定する（3415）。操作先ファイルが存在する場合、監視モジュール350は、ステップ3413で作成した操作先ファイルに関するインファイルトレース情報を、操作先ファイルの代替ストリームに書き込む（3416）。【０１８７】
操作先ファイルが存在しない場合、監視モジュール350は、操作元ファイルが存在するか否かを判定する（3417）。操作元ファイルが存在する場合、監視モジュール350は、更新が必要ならば、ステップ3413で作成したインファイルトレース情報を操作元ファイルの代替ストリームに書き込む（3418）。例えば、ファイルコピーの場合は、操作元ファイル（コピー元ファイル）に関するインファイルトレース情報内のカウント値を増加させる必要がある。【０１８８】
操作元ファイルが存在しない場合、または、操作元ファイルの代替ストリームに記憶されるインファイルトレース情報を更新した場合のいずれかの場合、監視モジュール350は、操作先ファイルに関するインファイルトレース情報をマネージャ112に送信して、PC管理DBに記憶させる（3419）。【０１８９】
上述の通り、ファイルの作成、コピー、移動、名称変更の場合は、操作先のファイルが存在する。ファイルを削除する場合、操作先のファイルは存在しない。操作先ファイルが存在しない場合、ステップ3413で生成された操作先ファイル用のインファイルトレース情報は、PC管理DBでのみ管理される。【０１９０】
ファイルの移動、名称変更、削除の場合、操作元ファイルは存在しなくなる。ファイルの作成またはコピーの場合のみ、操作元ファイルは存在する。【０１９１】
図３３は、図３２中のステップ3402の詳細を示す。監視モジュール350はUUIDを生成し（3501）、インファイルトレース情報内のファイル格納識別子にUUIDを設定する（3502）。監視モジュール350は、操作識別子に初期値”0”を設定し（3503）、さらに、カウントに初期値”0”を設定する（3504）。【０１９２】
図３４は、図３２中のステップ3413の詳細を示すフローチャートである。監視モジュール350は、操作元ファイルに関するインファイルトレース情報のコピーを作成し、操作先のインファイルトレース情報の基礎とする（3601）。【０１９３】
監視モジュール350は、操作先ファイルに関するインファイルトレース情報の操作識別子の桁数が31桁よりも小さいか否かを判定する（3602）。上述の通り、操作識別子は操作されるたびに１つずつ増加し、その上限値は32である。【０１９４】
操作識別子の桁数が31桁よりも小さい場合、監視モジュール350は、操作先ファイルに関するインファイルトレース情報内のカウントの値が60よりも小さいか否かを判定する（3603）。上述の通り、カウントは、コピーされるたびに１つずつ増加し、その上限値は60である。カウントの値が60未満の場合、監視モジュール350は、操作先ファイルに関する操作識別子の最後に、操作元ファイルに関するカウントから変換された文字を１つ追加する（3604）。これにより、操作先ファイルに関する操作識別子は、操作元ファイルに関する操作識別子と操作元ファイルに関するカウントとを並べた値となる。【０１９５】
図３５は、カウントの値を文字に変換するためのテーブルを示す。図３５に示すように、カウント値が”0”から”9”までの間は、0-9が割り当てられる。カウント値が”10”から”35”までの間は、大文字のアルファベットＡ-Ｚが割り当てられる。カウント値が”36”から”59”までの間は、小文字のアルファベットa-xが割り当てられる。例えば、操作元ファイルに関する操作識別子が”000”、カウントの値が”29”の場合、操作先ファイルの操作識別子は”000”と”T（=29）”を並べた”000T”となる。【０１９６】
図３４に戻る。ステップ3604の後、監視モジュール350は、操作先ファイルに関するカウントに初期値”0”を設定し（3605）、さらに、カウントの更新が必要な場合には、操作元ファイルに関するカウントの値を１つ増加させる（3606）。つまり、ファイルがコピーされた場合には、操作元ファイルのカウントの値を１つ増加させる。それ以外のファイル操作の場合は、操作元ファイルのカウントの値は変化しない。【０１９７】
操作先ファイルに関するカウントの値が60未満ではない場合、監視モジュール350は、不正操作であるか否かを判定する（3607）。第１実施例で述べたように、例えば、入手元識別子の設定されたファイルが外部のサーバまたはリムーバブルメディアに出力された場合には、不正操作であると判定することができる。【０１９８】
不正なファイル操作であると判定された場合、監視モジュール350は、操作先ファイルに関する操作識別子の最終桁（60桁目）に、”z”を設定する（3608）。操作先ファイルに関するカウントには、”0”が設定される（3609）。【０１９９】
不正なファイル操作ではないと判定された場合、監視モジュール350は、操作先ファイルに関する操作識別子の最終桁（60桁目）に、”y”を設定する（3610）。操作先ファイルに関するカウントには、”0”が設定される（3611）。【０２００】
操作識別子の桁数が31桁未満ではないと判定された場合、操作識別子の桁数が31桁であるか否かが判定される（3612）。操作識別子が31桁では無い場合、本処理は終了する。操作識別子の桁数が31桁の場合、監視モジュール350は、不正なファイル操作が行われたか否かを判定する（3613）。不正なファイル操作ではない場合、本処理は終了する。不正なファイル操作が行われた場合、監視モジュール350は、操作先ファイルに関する操作識別子の最終桁に”0”を追加して、32桁の操作識別子を生成する（3614）。【０２０１】
ステップ3607及びステップ3613で、不正なファイル操作であるか否かを判定する理由について説明する。例えば、ファイルがリムーバブルメディア125に書き込まれたり、または、ファイルが組織外のWebサーバ131にアップロードされた場合、操作先ファイルの代替ストリームにインファイルトレース情報を書き込むことはできない。操作先ファイルはクライアントPC121のファイルシステム204の外部に存在するためである。従って、不正に操作された場合の操作先ファイルは、ツリー構造の末端の葉に相当する。【０２０２】
ところで、データを格納可能な領域は無限でないため、本実施例では、操作識別子の桁数を32桁（32文字）、操作識別子として使用可能な文字の範囲を0-9、A-Z、a-zに制限している。【０２０３】
もしも、不正操作であるか否かを問わずにファイル操作の履歴を追跡する場合、操作識別子が”z”で終わるファイルのグループと、操作識別子が上限値の32文字に達したファイルのグループとの２つのグループができる。これらのファイルグループは、ファイル操作履歴のツリー構造において葉の部分となるが、必ずしも不正な操作されたファイルであるとは限らない。【０２０４】
従って、本実施例では、操作識別子の桁数が32文字に達した場合（3614）と、操作識別子の最後が”z”で終わっている場合（3608）とを、不正操作のための値(状態)とする。不正操作以外の操作の場合は、それぞれの一つ前の状態の操作識別子の桁数が31文字になる状態まで、または、操作識別子に文字”y”が追加される状態まで遷移させる。【０２０５】
図３６は、同一のファイルを何度もコピーした場合のファイル操作履歴のツリー構造を示す。大元のファイル3801をコピーするたびに、コピー先ファイルに関する操作識別子に付与される文字が0, 1, 2・・・と増えていき、やがて上限”y”に達する(3802)。【０２０６】
それ以降の不正操作でないコピー操作により作成されるファイルの操作識別子には、全て”y”が付与される(3803、3804)。その後、ファイル3801に対して不正操作を行うと、操作識別子に”z”が付与される(3807)。操作識別子に”z”が付与された操作には、子ノードはできない。従って、操作識別子の最後に”z”が設定されている操作は、不正操作であると一見して分かる。【０２０７】
図３７は、操作先ファイルをさらに操作する場合を示す。コピー操作を繰り返すと、操作識別子の桁が増えていき、やがて操作識別子の桁数が31桁の上限に達する(3901)。操作識別子が31桁に達したファイルをさらに操作した場合、操作識別子は更新されない(3902、3903)。操作識別子が31桁に達したファイルグループ(3904)に属するいずれかのファイルが外部に持ち出された場合、その持ち出されたファイルに関する操作識別子に”0”を設定する。これにより、その操作識別子は32桁となり、操作識別子に”z”を付与したときと同様に、ツリー構造の葉となる。従って、ツリー構造を見れば、直ちに不正操作であることが分かる。【０２０８】
図３８は、PC管理DBに記憶された管理情報4001-4008を用いて、ファイル操作の履歴をツリー構造として可視化する様子を示す。まず始めに、ユーザは、PC管理DBに記憶されている各操作のうち、追跡したいファイルを選択する。
管理サーバ111のマネージャ112は、ユーザにより選択されたファイルのファイル格納識別子を検索キーとしてPC管理DBを検索し、選択されたファイル格納識別子を有するレコードを抽出する。さらに、マネージャ112は、抽出された各レコードを操作識別子に基づいてソートする。並び替えた結果が、図３８の上側に示すテーブル4010である。【０２０９】
テーブル4010の結果は、ツリー構造を深さ優先探索(Depth First
Search)した順を示すため、テーブル4010の結果に基づいて容易にツリー構造4020を描画できる。操作識別子の最後の文字を取り除いたトレース情報が、親のトレース情報となる。例えば、操作識別子が”0010” である操作の親の操作（親の操作とは、それよりも一つ前の操作）は、操作識別子”001”を有する操作となる。ツリー表示画面4020とテーブル4010とにおいて、4001と4011、4002と4012、4003と4013、4004と4014、4005と4015、4006と4016、4007と4017、4008と4018が、それぞれ対応する。【０２１０】
以上、ファイルシステム204上でのファイル操作を中心に、ファイル操作の履歴監視（ファイル操作トレース）を説明した。しかし、本実施例は、ファイルシステム上でのファイル操作に限定されず、Webブラウザを用いたファイルのアップロードまたはダウンロード、電子メールを利用したファイルの送受信、アプリケーションプログラムからの印刷、のような場合にも適用できる。【０２１１】
ファイル操作としては、上述したファイルの作成、移動、コピー、名称変更、削除に限定されない。例えば、
（１）Webブラウザを用いたファイルのダウンロード、
（２）Webブラウザを用いたファイルのアップロード、
（３）添付ファイル付き電子メールの受信、
（４）添付ファイルの保存、
（５）添付ファイル付き電子メールの送信、
（６）印刷
を、ファイル操作として管理できる。【０２１２】
Webブラウザを用いたファイルのアップロードまたはダウンロード等において、操作元ファイルと操作先ファイルの関係は次の通りとなる。ここでは、操作元ファイルを操作元、操作先ファイルを操作先と略す。
（１）Webブラウザでのファイルダウンロード
（１Ａ）操作元→ダウンロード元のURL（ステップ403、502で取得）
（１Ｂ）操作先→保存先のファイルパス（ステップ406、510で取得）
（２）Webブラウザでのファイルアップロード
（２Ａ）操作元→アップロードするファイルパス（ステップ807で取得）
（２Ｂ）操作先→アップロード先のURL（ステップ808で取得）
（３）添付ファイル付きメールの受信
（３Ａ）操作元→送信元のメールアドレス（ステップ604、704の送信者名）
（３Ｂ）操作先→入力元DB393
（４）添付ファイルの保存
（４Ａ）操作元→入力元DB393
（４Ｂ）操作先→保存先のファイルパス（ステップ609、709で取得）
（５）添付ファイル付きメールの送信
（５Ａ）操作元→送信するファイルパス（ステップ907、1007で取得）
（５Ｂ）操作先→送信先のメールアドレス（ステップ904、1004の送信者名）
（６）印刷
（６Ａ）操作元→印刷元のファイルパス（ステップ1105で取得）【０２１３】
図３９は、入力元DB393の構成例を示す。図３９では、クライアントPC121が添付ファイル付き電子メールを受信した場合に、その操作元を入力元DB393とすべく、入力元DB393でファイル格納識別子と操作識別子及びカウントを管理できるようにしている。そのために、入力元DB393には、ファイル格納識別子フィールド4101と、操作識別子フィールド4102と、カウントフィールド4103とが追加されている。【０２１４】
上記各操作（１）−（６）を追跡するために、入力元識別子を付与するステップ（407、511、611、711）と、アラート条件に該当するか否かをチェック等するステップ（809、908、1008、1107）と、入力元DB393に登録するステップ（606、706）とのそれぞれにおいて、図３２で述べた処理を実行する。【０２１５】
図３２の処理を実行するにあたり、上記各操作（１）−（６）毎に、以下の点が相違する。
（１）Webブラウザでのファイルダウンロード
この操作はファイルの起点となる操作であるから、ステップ3401の判定は必ず”Yes”となる。
（２）Webブラウザでのファイルアップロード
起点となる操作であるため、ステップ3401では”No”と判定される。
ステップ3415のチェックでは、操作先がURL（外部）となるため、”No”と判定される。
（３）添付ファイル付きメールの受信
この操作はファイルの起点となる操作であり、ステップ3401の判定では必ず”Yes”となる。
ステップ3403の処理では操作先が入力元DB393であるため、ファイルの代替ストリームにトレース情報を書き込むのではなく、入力元DB393にインファイルトレース情報を格納する。操作先を入力元DB393にするのは、電子メールに添付されたファイルが複数回ファイルシステム204にコピーされた場合でも、大元の操作（添付ファイル付き電子メールの受信）を特定できるようにするためである。
（４）添付ファイルの保存
ステップ3401では”No”と判定される。
ステップ3410では、操作元の代替ストリームからインファイルトレース情報を取得するのではなく、入力元DB393からインファイルトレース情報を取得する。
ステップ3418も同様に、入力元DB393にインファイルトレース情報を格納する。
（５）添付ファイル付きメールの送信
ステップ3401では”No”と判定される。
ステップ3415では、操作先がメールアドレス（外部）のため”No”と判定される。
（６）印刷
ステップ3401では”No”と判定される。
ステップ3415では、操作先が紙媒体（外部）のため”No”と判定される。【０２１６】
以上のように、本実施例は、上記（１）−（６）の操作の履歴も管理できる。図４０には、ユーザの選択した条件に従ってPC管理DBから抽出されたテーブル4210と、テーブル4210に基づいて描画されるファイル操作履歴のツリー構造4220とが示されている。【０２１７】
このように構成される本実施例では、ファイル操作の履歴を効率的に管理することができる。さらに、ファイル格納識別子及び操作識別子を用いることにより、ファイル操作の履歴をツリー構造で簡単に表示することができる。【０２１８】
ファイル格納識別子及び操作識別子を備えないDBの場合は、操作元ファイルをDBから読み込んだ後、その操作元ファイルで操作先ファイルのフィールドを検索し、検索されたファイル名で操作元ファイルのフィールドを再び検索する等の作業を何度も繰り返す必要がある。従って、DBへのアクセス数が大幅に増加し、操作履歴を抽出したテーブルの作成及びツリー構造の表示に時間がかかる。【０２１９】
これに対し、本実施例では、ファイル格納識別子と操作識別子をPC管理DBから読み込むだけで、ユーザの選択したファイルの操作履歴を容易に抽出でき、ツリー構造で表示することができる。従って、使い勝手が向上する。【０２２０】
さらに、本実施例では、ファイルの代替ストリームに、ファイル格納識別子と操作識別子及びカウントを書き込む（さらに、第１実施例で述べたように、代替ストリームに入手元識別子が書き込まれる場合もある）。従って、もしも、PC管理DBが一時的に停止したり、レコードの一部が破損等した場合でも、ファイルの代替ストリームに記憶されているインファイルトレース情報を読み出すことにより、ファイル操作の履歴を管理することができる。【０２２１】
なお、ファイルの操作の履歴を管理するための情報を、ファイルの代替ストリームに格納するのではなく、クライアントPC内のDBに格納して管理する構成でもよい。例えば、図５２に示すような構成のDBを用いて、クライアントPCに入出力されるファイルの操作履歴を監視することもできる。【０２２２】
また、NTFSの代替ストリームに限らず、例えば、リソースフォークのような、付属データ領域を用いても良い。付属データ領域とは、ファイルに付属するデータ領域であって、ファイルが操作されるとファイルデータと共に操作対象となる領域である。付属データ領域には、ファイルデータに対するリード関数またはライト関数とは別の関数を用いることにより、または、リード関数またはライト関数に通常とは異なる引数を指定することにより、データを読み書きすることができる。
【実施例３】
【０２２３】
図４１−図５１を参照して第３実施例を説明する。第１実施例では、Webブラウザ上のユーザ操作またはダイアログへの入力文字列等を取得することで、URLまたはメールアドレスと、ファイルシステム204上のフルパスとを取得する。本実施例では、他の方法を用いて、ファイルのパス情報（フルパス）とURLまたはメールアドレスとの対応関係を検出する。【０２２４】
図４１は、クライアントPC121の構成を示す。ディスク209には、ファイルシステム204と、システムポリシ391と、セキュリティポリシ392と、ブラウザ入力DB4901と、ブラウザ出力DB4902と、メール入力DB4903と、メール出力DB4904とが格納されている。【０２２５】
図４２は、エージェントプログラム１２２の構成を示す。本実施例では、プロセス監視モジュール310と、プリンタ監視モジュール320と、ファイルI/O監視モジュール370と、HTTP通信監視モジュール380と、TCP通信監視モジュール360とを備える。【０２２６】
ファイルI/O監視モジュール370は、Webブラウザ305または各種アプリケーションプログラムで発生したファイル入出力を検知するファイルI/O検知機能371と、ファイルの代替ストリームに入手元情報（入手元識別子）を書き込むための入手元情報付与機能372とを備える。【０２２７】
HTTP通信監視モジュール380は、ファイルの送受信を検知するソケット受信検知機能381と、ソケット308を介して送受信されたデータを解析するプロトコル解析機能382と、登録と入手元情報の付与及び検査をする機能383とを備える。登録及び通知等を行う機能383は、ソケット308を介してファイルがクライアントPC121にダウンロードされた場合に、そのファイルに入手元情報を付与し、ブラウザ入力DB4901に登録させる。【０２２８】
TCP通信監視モジュール360とHTTP通信監視モジュール380とは、通信ネットワーク上の通信を監視する。TCP通信監視モジュール360は、メール（POP3・IMAP・SMTP）の送受信を監視する。HTTP通信監視モジュール380は、HTTP通信を監視する。ファイルI/O監視モジュール370は、Webブラウザまたはメーラを用いた、ファイルの読み書きを監視するものである。【０２２９】
本実施例では、通信ネットワークを介して送受信されたファイルデータと、ファイルシステム204に入出力されたファイルデータとを結びつけるために、それらファイルデータのハッシュ値をキーとするDB4901−4904を設けている。【０２３０】
ファイルをクライアントPC121にダウンロードする場合を説明する。ユーザがファイルをダウンロードすると、TCP通信監視モジュール360またはHTTP通信監視モジュール380により、ダウンロード元の情報（URLまたはメールアドレス）とダウンロードデータとを取得できる。このダウンロード元の情報とダウンロードされたデータのハッシュ値とを、入力DB（図４８、図５０参照）に格納する。【０２３１】
ここで図４８を参照する。図４８は、ブラウザ入力DB4901の構成例を示す。ブラウザ入力DB4901は、Webブラウザを介してダウンロードされたファイルを管理する。ブラウザ入力DB4901は、例えば、入手元URLフィールド4901Aと、ハッシュ値フィールド4901Bと、ファイル格納識別子フィールド4901Cと、操作識別子フィールド4901Dと、カウントフィールド4901Eとを備える。【０２３２】
入手元URLフィールド4901Aには、ファイルのダウンロード元のURLが記憶される。ハッシュ値4901Bには、ダウンロードされたファイルのデータから算出されるハッシュ値が記憶される。ファイル格納識別子フィールド4901Cには、ダウンロードされたファイルに付与されるファイル格納識別子が記憶される。操作識別子フィールド4901Dには、ダウンロードされたファイルに設定される操作識別子が記憶される。カウントフィールド4901Eには、ダウンロードされたファイルに関するカウントが記憶される。ハッシュ値、ファイル格納識別子、操作識別子、カウントについては、後述する他のDBも同様である。【０２３３】
図５０を参照する。図５０は、メーラを介して取得されるファイル（電子メールに添付されたファイル）を管理するDB4903の例を示す。メール入力DB4903は、例えば、ファイル名フィールド4903Aと、送信者名フィールド4903Bと、ハッシュ値フィールド4903Cと、ファイル格納識別子フィールド4903Dと、操作識別子フィールド4903Eと、カウントフィールド4903Fとを備える。【０２３４】
ファイル名フィールド4903Aには、電子メールに添付されたファイルの名称が記憶される。送信者名フィールド4903Bには、ファイルの添付された電子メールの送信者名が記憶される。ハッシュ値、ファイル格納識別子、操作識別子及びカウントは、図４８と同様であるため説明を省略する。【０２３５】
ブラウザまたはメーラがファイルをダウンロードすると、クライアントPCのファイルシステム上にダウンロードされたファイルデータが書き込まれる。ファイルI/O監視モジュール370は、ファイルシステム204へのファイルデータの書き込みを検知する。【０２３６】
ファイルI/O監視モジュール370は、ブラウザまたはメーラが保存したファイルデータのハッシュ値を求め、入力DB4901，4903（図４８、図５０）に同一ハッシュ値のレコードがあるかを探す。同一のハッシュ値のレコードが存在する場合、そのレコードはダウンロードされたファイルを示している。従って、ハッシュ値により特定されるファイルに、対応する入力元情報やインファイルトレース情報を付与する。【０２３７】
ファイルをアップロードする場合を説明する。ユーザは、Webブラウザまたは電子メールを用いて、ファイルをクライアントPCの外部に送信することができる。ユーザがファイルをアップロードすると、ブラウザまたはメーラは、アップロード対象のファイルデータを読み込む。ファイルI/O監視モジュール370は、そのファイルデータの読み込みを検知する。ファイルI/O監視モジュール370は、ブラウザまたはメーラが読み込んだファイルの、パス及びハッシュ値を求めて、出力DB4902，4904（図４９、図５１）に格納する。【０２３８】
図４９を参照する。図４９は、ブラウザを用いてクライアントPC121の外部に出力されたファイルを管理するDB4902である。ブラウザ出力DB4902は、例えば、アップロードファイルフィールド4902Aと、ハッシュ値4902Bと、送信元フィールド4902Cと、サーバフィールド4902Dと、URLフィールド4902Eと、ファイル格納識別子フィールド4902Fと、操作識別子フィールド4902Gと、カウントフィールド4902Hとを備える。【０２３９】
アップロードファイルフィールド4902Aには、アップロードされたファイルのパス情報がアップロードされたファイルの格納先を示すパス情報が記憶される。送信元フィールド4902Cには、ファイルをアップロードしたユーザ名が記憶される。サーバフィールド4902Dには、アップロード先のサーバ名が記憶される。URLフィールド4902Eには、アップロード先のURLが記憶される。【０２４０】
ブラウザまたはメーラは、ファイルデータを読み込むと、そのファイルデータをアップロードする。TCP通信監視モジュール360またはHTTP通信監視モジュール380は、ファイルのアップロードを検知する。【０２４１】
TCP通信監視モジュール360またはHTTP通信監視モジュール380は、アップロードされるファイルのデータを取得し、そのハッシュ値を求める。TCP通信監視モジュール360またはHTTP通信監視モジュール380は、求めたハッシュ値と同一のハッシュ値を有するレコードが出力DB4902，4904あるかを検索する。同じハッシュ値のレコードが存在する場合、ユーザがファイルをアップロードしたと判断できる。ファイルがアップロードされたと判断された場合、第１実施例で述べたように、アラート条件に合致するか否かのチェックと、アラートの送信と、インファイルトレース情報の操作等が行われる。【０２４２】
図４３を参照する。図４３は、ブラウザを用いてファイルをダウンロードする場合のシーケンスを示す。【０２４３】
ユーザは、ブラウザを用いてファイルのダウンロードを開始する（5101）。HTTP通信監視モジュールは、HTTP通信のヘッダを検知し、そのヘッダ解析する（5102）。解析の結果、受信操作であれば、ステップ5103以降を実行する。送信操作であれば図４４のステップ5212以降を実行する。【０２４４】
HTTP通信監視モジュールは、ステップ5102の解析結果から入手元URLと入手データ（ダウンロードファイル）とを取得する（5103）。HTTP通信監視モジュールは、ステップ5103で取得した入手データのハッシュ値を計算する（5104）。HTTP通信監視モジュールは、図３２に示すインファイルトレース情報の操作を行う（5105）。ここでは、ブラウザでのファイルダウンロードであるため、新規にインファイルトレース情報を作成する。HTTP通信監視モジュールは、入手元URLと、入手データのハッシュ値と、インファイルトレース情報とを、ブラウザ入力DB4901に格納する（5106）。【０２４５】
ファイルのダウンロードが開始されると、ブラウザは、ソケット308からダウンロードデータを受け取り、ファイルシステム204へダウンロードデータを書き込む（5111）。【０２４６】
ファイルI/O監視モジュールは、ステップ5111の動作をAPI（Application Programming Interface）フックなどの方法で検知する（5112）。ファイルI/O監視モジュールは、ブラウザがファイルシステム204に書き込んだデータのハッシュ値を求める（5113）。ファイルI/O監視モジュールは、ブラウザによるファイル書込先のパスを取得する（5114）。【０２４７】
ファイルI/O監視モジュールは、ステップ5113で求めたハッシュ値を検索キーとしてブラウザ入力DB4901を検索する。同一のハッシュ値を有するレコードが見つかった場合、そのレコードで管理されるファイルは、ユーザがダウンロードしたファイルである。そこで、ファイルI/O監視モジュールは、ブラウザ入力DB4901からファイル属性（入手元URL、ファイル操作トレース情報）を取得し、ステップ5116以降を実行する。【０２４８】
ダウンロードされたファイルのハッシュ値と同一ハッシュ値を有するレコードが見つからない場合、ユーザのダウンロード操作で発生したファイル書き込みではないため、本処理を終了する。【０２４９】
ファイルI/O監視モジュールは、ハッシュ値に基づいて発見されたファイルの代替ストリームに、入手元情報（図13の1311）を書き込む（5116）。さらに、ファイルI/O監視モジュールは、ファイルの代替ストリームに、インファイルトレース情報（図３０の3201）を書き込む（5117）。【０２５０】
図４４は、ブラウザを用いたファイルのアップロード処理を示すシーケンスである。ユーザがブラウザを用いてファイルのアップロードを開始すると（5201）、 ブラウザはアップロード対象のファイルを読み込む（5202）。【０２５１】
ファイルI/O監視モジュールは、ステップ5202の動作をAPIフックなどの方法で検知する（5203）。ファイルI/O監視モジュールは、ブラウザが読み込んだファイルのハッシュ値を求める（5204）。ファイルI/O監視モジュールは、ファイルの代替ストリームから入手元情報を取得する（5205）。さらに、ファイルI/O監視モジュールは、ファイルの代替ストリームからインファイルトレース情報を取得する（5206）。ファイルI/O監視モジュールは、ファイルのパスと、ファイルのハッシュ値と、入手元情報と、インファイルトレース情報とを、ブラウザ出力DB4902（図４９）へ格納させる。【０２５２】
ブラウザは、アップロードファイルの読込みを完了すると、ソケット308を介してファイルをアップロードする。この送信動作は、HTTP通信監視モジュールにより検知される（5211）。HTTP通信監視モジュールは、HTTPヘッダを解析し（5211）、送信操作であればステップ5212以降を実行する。受信操作であれば、図４３の5103以降を実行する。【０２５３】
HTTP通信監視モジュールは、ステップ5211におけるヘッダ解析結果からアップロード先URLと、アップロードデータとを取得する（5212）。HTTP通信監視モジュールは、ステップ5212で取得したアップロードデータのハッシュ値を計算する（5213）。【０２５４】
HTTP通信監視モジュールは、ステップ5213で求めたハッシュ値に基づいてブラウザ出力DB4902を検索し、アップロードされたファイルのハッシュ値と同一のハッシュ値を有するレコードを取得する。同一ハッシュ値のレコードが見つかった場合、そのレコードで管理されるファイルは、ユーザによりアップロードされたファイルである。従って、HTTP通信監視モジュールは、そのレコードからファイル属性（ファイルのパス、入手元情報、ファイル操作トレース情報（FID、OID、カウント））を取得し（5214）、ステップ5215以降を実行する。もしも、同一ハッシュ値のレコードが見つからなかった場合、監視対象のブラウザ以外のプログラムによる通信であるため、本処理を終了する。【０２５５】
HTTP通信監視モジュールは、ハッシュ値に基づいて検出されたファイルについてインファイルトレース情報を操作する（5215）。さらに、HTTP通信監視モジュールは、ブラウザによるファイルのアップロードがアラート条件に合致するか否かをチェックし、必要ならばアラートを送信する（5216）。【０２５６】
図４５は、メーラを用いたファイルの受信と、受信ファイルの保存とに関するシーケンスである。ユーザがメーラを用いてメール受信を開始すると（5301）、TCP通信監視モジュールは、TCP通信のヘッダを検知し、そのヘッダを解析する（5302）。【０２５７】
解析の結果、受信メールにファイルが添付されている場合はステップ5303以降を実行する。なお、送信されるメールにファイルが添付されている場合は、図４４の5412以降を実行する。添付ファイルがないメール送受信の場合、または、メール送受信以外の通信の場合は、本処理を終了する。【０２５８】
TCP通信監視モジュールは、ステップ5302の解析結果から、メールの送信者名と添付ファイルのファイル名と添付ファイルのデータとを取得する（5303）。続いて、TCP通信監視モジュールは、ステップ5303で取得した添付ファイルのデータのハッシュ値を計算する（5304）。【０２５９】
TCP通信監視モジュールは、図３２に示すインファイルトレース情報の操作を行う（5305）。添付ファイル付きメールを受信した場合であるため、新規にインファイルトレース情報が作成される。TCP通信監視モジュールは、添付ファイル名と、送信者名と、添付ファイルデータのハッシュ値と、インファイルトレース情報とを、メール入力DB4903（図５０）へ格納する（5306）。【０２６０】
ユーザが、メールに添付されたファイルの保存操作を行うと（5310）、メーラは添付ファイルをファイルシステム204に書き込む（5311）。【０２６１】
ファイルI/O監視モジュールは、ステップ5311の動作をAPIフックなどの方法で検知する（5312）。ファイルI/O監視モジュールは、メーラが書き込んだファイルデータのハッシュ値を求める（5313）。さらに、ファイルI/O監視モジュールは、メーラがファイルを書き込んだ先のパスを取得する（5314）。【０２６２】
ファイルI/O監視モジュールは、ステップ5313で求めたハッシュ値に基づいて、メール入力DB4903（図５０）を検索する。メーラによりファイルシステムに書き込まれたファイルのハッシュ値と同一ハッシュ値のレコードが見つかった場合、そのレコードに対応するファイルは、メールに添付されていたファイルである。そこで、ファイルI/O監視モジュールは、そのレコードからファイル属性（添付ファイル名、送信者名、ファイル操作トレース情報）を取得し（5315）、ステップ5316以降を実行する。【０２６３】
同一ハッシュ値のレコードが見つからない場合、ステップ5311のファイル書込みは、添付ファイルのダウンロード操作（5310）で発生したファイル書き込みではないため、本処理を終了する。【０２６４】
ファイルI/O監視モジュールは、インファイルトレース情報の操作を行う（5316）。インファイルトレース情報の操作処理の中で、保存ファイル（メールに添付されていたファイルであって、ファイルシステム204に記憶されたファウル）の代替ストリームに、ファイル操作トレース情報が書き込まれる（5316）。さらに、ファイルI/O監視モジュールは、保存ファイルの代替ストリームに入手元情報（図13の1311）を付与する。【０２６５】
図４６は、メールにファイルを添付して送信する場合のシーケンスを示す。ユーザがメーラを用いてメールへのファイル添付を操作すると（5401）、メーラは、メールに添付するファイルをファイルシステム204から読み込む（5402）。【０２６６】
ファイルI/O監視モジュールは、ステップ5402でのファイル読込みを、APIフックなどの方法で検知する（5403）。ファイルI/O監視モジュールは、メーラが読み込んだファイルのハッシュ値を求める（5404）。ファイルI/O監視モジュールは、ファイルの代替ストリームから入手元情報を取得する（5405）。ファイルI/O監視モジュールは、ファイルの代替ストリームからインファイルトレース情報を取得する（5406）。ファイルI/O監視モジュールは、ファイルのパスと、ファイルのハッシュ値と、入手元情報と、インファイルトレース情報とを、メール出力DB4904（図５１）へ格納する（5407）。【０２６７】
ユーザが、ファイルを添付したメールを送信させると（5410）、メーラはソケット308を介して、ファイルが添付されたメールを送信する。TCP通信監視モジュールは、そのメール送信を検知し、TCPヘッダを解析する（5411）。ファイルの添付されたメールが送信された場合、ステップ5412以降を実行する。なお、ファイルの添付されたメールを受信した場合は、図４５の5303以降を実行する。ファイルの添付されていないメールの送信または受信の場合、あるいは、メール送受信以外の通信の場合は、本処理を終了する。【０２６８】
TCP通信監視モジュールは、ステップ5411でのヘッダ解析結果から、送信先メールアドレスとメールに添付されたファイルのデータとを取得する（5412）。TCP通信監視モジュールは、ステップ5412で取得したファイルデータのハッシュ値を計算する（5413）。【０２６９】
TCP通信監視モジュールは、ステップ5413で求めたハッシュ値に基づいて、メール出力DB4904とメール入力DB4903とを検索し、ファイル属性を取得する（5414）。メール出力DB4904とメール入力DB4903とを検索する理由は、後述する。【０２７０】
TCP通信監視モジュールは、ハッシュ値に基づいて検出されたファイルについて、インファイルトレース情報を操作し（5415）、アラート条件をチェックし、必要があればアラートを送信する（5416）。【０２７１】
図４７は、ファイルの添付されたメールを転送する場合のシーケンスを示す。ファイルの添付されたメールを転送する場合の処理は、図４６に示すステップ5410からステップ5416までの処理と同じである。つまり、図４７のステップ5510−5516は、図４６のステップ5410−5416と同一であるため、説明を省略する。【０２７２】
図４６のステップ5414において、メール出力DB4904とメール入力DB4903の両方を検索する理由を述べる。ユーザがメールにファイルを添付して送信する場合（図４６）、メール出力DB4904にレコードが格納される。【０２７３】
一方、ファイルの添付されたメールが転送された場合（図４７）、ユーザは、メール転送の前に、そのメールを受信している（図４５）。ファイルの添付されたメールをクライアントPC121のメーラが受信した場合、メール入力DB4903にレコードが格納される。【０２７４】
TCP通信監視モジュールは、通信を監視しているだけであり、監視している通信が図４６に該当する通信（メール送信）なのか、それとも図４７に該当する通信（メール転送）なのかを判断できない。そこで、本実施例では、メールの送信か転送かを問わずに、いずれの場合もメール出力DB4904とメール入力DB4903の両方を検索する。【０２７５】
このように構成される本実施例では、クライアントPCとネットワークとの間の通信を監視し、かつ、ファイルシステムへの入出力を監視する。そして、通信で検出されたファイルのハッシュ値とファイルシステムで管理されているファイルのハッシュ値とを比較することにより、ファイルを特定する。特定されたファイルに入手元情報及びインファイルトレース情報を関連付ける。【０２７６】
従って、ブラウザを用いたユーザ操作に基づいて、または、ダイアログへ入力された文字列に基づいて、ファイルを特定する構成に比べて、本実施例では、比較的簡単にファイルを特定でき、パス情報またはメールアドレスまたはURLとファイルとを対応付けることができる。【０２７７】
例えば、ユーザの使用するブラウザの種類が変わったり、または、ブラウザがバージョンアップしたりすることがある。また、アプリケーションプログラムのバージョンアップ等でダイアログの構成が変化したり、全く新しいアプリケーションプログラムがクライアントPC121にインストールされたりする場合もある。それらの環境変化に対応するためには、ブラウザまたはダイアログからパス等を取得するためのコンピュータプログラムをこまめに手直しする必要があり、本システムの維持に手間がかかる。これに対し、本実施例では、通信の監視結果とシステムへの入出力の監視結果とを、共通のハッシュ値で対応付ける。従って、上述のような環境変化の影響を少なくして、本システムを比較的簡単に維持し、運営することができる。なお、本実施例は第１実施例または第２実施例と結合することができる。【０２７８】
なお、本発明は、上述した実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、第２実施例は、第１実施例と結合することもできるし、第１実施例と独立した構成にもできる。つまり、一つのクライアントPC内で、または、複数のクライアントPCを含むグループ内で、ファイル操作の履歴を管理し、ツリー構造で可視化することができる。
【符号の説明】
【０２７９】
111…管理サーバ、114…メールサーバ、115…ファイルサーバ、116…組織内Webサーバ、121…クライアントPC、122…エージェントプログラム、123…ネットワークプリンタ123、204…ローカルファイルシステム、310…プロセス監視モジュール、320…プリンタ監視モジュール、330…ブラウザ監視モジュール、340…ダイアログ操作監視モジュール、350…ファイル操作監視モジュール、360…TCP通信監視モジュール、370…ファイルI/O監視モジュール、380…HTTP通信監視モジュール、393…入手元DB、1311…入手元を示す識別子、3201…インファイルトレース情報。
【図１】
0005417533.tif 000002
【図２】
0005417533.tif 000003
【図３】
0005417533.tif 000004
【図４】
0005417533.tif 000005
【図５】
0005417533.tif 000006
【図６】
0005417533.tif 000007
【図７】
0005417533.tif 000008
【図８】
0005417533.tif 000009
【図９】
0005417533.tif 000010
【図１０】
0005417533.tif 000011
【図１１】
0005417533.tif 000012
【図１２】
0005417533.tif 000013
【図１３】
0005417533.tif 000014
【図１４】
0005417533.tif 000015
【図１５】
0005417533.tif 000016
【図１６】
0005417533.tif 000017
【図１７】
0005417533.tif 000018
【図１８】
0005417533.tif 000019
【図１９】
0005417533.tif 000020
【図２０】
0005417533.tif 000021
【図２１】
0005417533.tif 000022
【図２２】
0005417533.tif 000023
【図２３】
0005417533.tif 000024
【図２４】
0005417533.tif 000025
【図２５】
0005417533.tif 000026
【図２６】
0005417533.tif 000027
【図２７】
0005417533.tif 000028
【図２８】
0005417533.tif 000029
【図２９】
0005417533.tif 000030
【図３０】
0005417533.tif 000031
【図３１】
0005417533.tif 000032
【図３２】
0005417533.tif 000033
【図３３】
0005417533.tif 000034
【図３４】
0005417533.tif 000035
【図３５】
0005417533.tif 000036
【図３６】
0005417533.tif 000037
【図３７】
0005417533.tif 000038
【図３８】
0005417533.tif 000039
【図３９】
0005417533.tif 000040
【図４０】
0005417533.tif 000041
【図４１】
0005417533.tif 000042
【図４２】
0005417533.tif 000043
【図４３】
0005417533.tif 000044
【図４４】
0005417533.tif 000045
【図４５】
0005417533.tif 000046
【図４６】
0005417533.tif 000047
【図４７】
0005417533.tif 000048
【図４８】
0005417533.tif 000049
【図４９】
0005417533.tif 000050
【図５０】
0005417533.tif 000051
【図５１】
0005417533.tif 000052
【図５２】
0005417533.tif 000053