(57)【要約】【課題】監視対象のファイル入出力情報を抽出する際の、メモリやＣＰＵの圧迫を低減する。【解決手段】情報抽出装置１０は、コンピュータ２０からファイル入出力情報１０１を取得し、またコンピュータ２０で起動中のプロセス一覧であるプロセスリストを取得する。そして、情報抽出装置１０は、コンピュータ２０からプロセスリストが取得されるたび、監視対象外のプロセスのpidを示した除外PIDリスト１０３を作成する。そして、情報抽出装置１０は、まず、コンピュータ２０からファイル入出力情報１０１を取得したタイミングで除外PIDリスト１０３を用いて、フィルタ処理を行いバッファ１３１に蓄積する。その後、情報抽出装置１０は、バッファ１３１に蓄積されたファイル入出力情報１０４を取得し除外PIDリスト１０３を用いて、フィルタ処理を行う。【選択図】図１
2015133013.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにおけるファイルの入出力操作のうち、監視対象のプロセスによるファイルの入出力操作に関するファイル入出力情報を抽出する情報抽出装置であって、
前記コンピュータにおける前記ファイルに対する操作を監視し、前記操作を行ったプロセスの識別情報を含む前記ファイル入出力情報を取得するファイル入出力情報取得部と、
所定のタイミングで、前記コンピュータから、当該コンピュータにおいて起動中のプロセスの一覧であるプロセスリストを取得するリスト取得部と、
前記プロセスリストが取得されるたび、前記取得したプロセスリストから、前記監視対象のプロセス以外のプロセスの識別情報を抽出した除外PIDリストを作成し、記憶部に格納する抽出部と、
前記記憶部に格納される除外PIDリストを参照して、前記取得したファイル入出力情報から、前記除外PIDリストに示されるプロセスによるファイル入出力情報以外のファイル入出力情報を抽出することにより、前記ファイル入出力情報のフィルタ処理を行うフィルタ処理部とを備え、
前記フィルタ処理部は、
前記コンピュータからファイル入出力情報が取得されたタイミングで、前記除外PIDリストを用いた前記フィルタ処理を行った後、前記フィルタ処理後のファイル入出力情報をバッファに蓄積し、前記バッファから、前記除外PIDリストの作成元となったプロセスリストの取得時刻よりも前の時刻におけるファイル入出力情報を取得し、前記取得したファイル入出力情報に対し、再度、前記除外PIDリストを用いた前記フィルタ処理を行うことを特徴とする情報抽出装置。
【請求項２】
前記情報抽出装置は、さらに、
前記ファイル入出力情報取得部により取得されたファイル入出力情報に、前記プロセスリストに示されるプロセス以外のプロセスに関するファイル入出力情報が含まれているか否かを判定する判定部を備え、
前記判定部により、前記取得されたファイル入出力情報に、前記プロセスリストに示されるプロセス以外のプロセスに関するファイル入出力情報が含まれていると判定されたとき、
前記リスト取得部は、
前記コンピュータから、最新の前記プロセスリストを取得し、
前記抽出部は、
前記取得したプロセスリストから、前記監視対象のプロセス以外のプロセスの識別情報を抽出した除外PIDリストを作成し、前記記憶部に格納することを特徴とする請求項１に記載の情報抽出装置。
【請求項３】
前記抽出部により作成された除外PIDリストを蓄積する除外PIDリスト用バッファをさらに備え、
前記フィルタ処理部は、
前記コンピュータからファイル入出力情報が取得されたタイミングで、前記除外PIDリストを用いた前記フィルタ処理を行う際、前記除外PIDリスト用バッファから取得した前記除外PIDリストを用いて前記フィルタ処理を行うことを特徴とする請求項１または請求項２に記載の情報抽出装置。
【請求項４】
コンピュータにおけるファイルの入出力操作のうち、監視対象のプロセスによるファイルの入出力操作に関するファイル入出力情報を抽出する情報抽出装置が、
前記コンピュータにおける前記ファイルに対する操作を監視し、前記ファイル入出力情報を取得するファイル入出力情報取得ステップと、
所定のタイミングで、前記コンピュータから、当該コンピュータにおいて起動中のプロセスの一覧であるプロセスリストを取得するリスト取得ステップと、
前記プロセスリストが取得されるたび、前記取得したプロセスリストから、前記監視対象のプロセス以外のプロセスの識別情報を抽出した除外PIDリストを作成し、記憶部に格納する抽出ステップと、
前記記憶部に格納される除外PIDリストを参照して、前記取得したファイル入出力情報から、前記除外PIDリストに示されるプロセスによるファイル入出力情報以外のファイル入出力情報を抽出することにより、前記ファイル入出力情報のフィルタ処理を行うフィルタ処理ステップとを実行し、
前記フィルタ処理ステップにおいて、
前記コンピュータからファイル入出力情報が取得されたタイミングで、前記除外PIDリストを用いた前記フィルタ処理を行った後、前記フィルタ処理後のファイル入出力情報をバッファに蓄積し、前記バッファから、前記除外PIDリストの作成元となったプロセスリストの取得時刻よりも前の時刻におけるファイル入出力情報を取得し、前記取得したファイル入出力情報に対し、再度、前記除外PIDリストを用いた前記フィルタ処理を行うことを特徴とする情報抽出方法。
【請求項５】
コンピュータにおけるファイルの入出力操作のうち、監視対象のプロセスによるファイルの入出力操作に関するファイル入出力情報を抽出するための情報抽出装置に、
前記コンピュータにおける前記ファイルに対する操作を監視し、前記ファイル入出力情報を取得するファイル入出力情報取得ステップと、
所定のタイミングで、前記コンピュータから、当該コンピュータにおいて起動中のプロセスの一覧であるプロセスリストを取得するリスト取得ステップと、
前記プロセスリストが取得されるたび、前記取得したプロセスリストから、前記監視対象のプロセス以外のプロセスの識別情報を抽出した除外PIDリストを作成し、記憶部に格納する抽出ステップと、
前記記憶部に格納される除外PIDリストを参照して、前記取得したファイル入出力情報から、前記除外PIDリストに示されるプロセスによるファイル入出力情報以外のファイル入出力情報を抽出することにより、前記ファイル入出力情報のフィルタ処理を行うフィルタ処理ステップとを実行させ、
前記フィルタ処理ステップにおいて、
前記コンピュータからファイル入出力情報が取得されたタイミングで、前記除外PIDリストを用いた前記フィルタ処理を行った後、前記フィルタ処理後のファイル入出力情報をバッファに蓄積し、前記バッファから、前記除外PIDリストの作成元となったプロセスリストの取得時刻よりも前の時刻におけるファイル入出力情報を取得し、前記取得したファイル入出力情報に対し、再度、前記除外PIDリストを用いた前記フィルタ処理を行わせることを特徴とする情報抽出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報抽出装置、情報抽出方法、および、情報抽出プログラムに関する。
【背景技術】
【０００２】
機密情報の流通を監視する目的で、コンピュータのＯＳ（Operating  System）等のファイル入出力を全て監視して、その中から対象となる機密情報の取り扱いについての情報を抽出し、情報加工・移動の履歴（トレース情報）として保存し、証跡化する技術がある（非特許文献１参照）。
【０００３】
このような技術において、ファイル入出力には作業用ファイルの操作等、監視する必要の無い操作も多く、多くの情報の中から不要な情報を取り除き必要な情報のみを抽出する必要がある。
【０００４】
ファイル入出力の操作の際に取得される情報は、例えば、操作対象のファイルのID、操作の種類、当該操作を行っているプロセスのID等のID情報のみである。よって、それらの情報から監視の要・不要を識別するためには、各ID情報からその詳細情報（例えば、プロセスIDから対応する実行形式ファイル名等）を取得して、それに基づいた処理を行う必要があった。しかし、一般にこの詳細情報の取得は処理負荷が大きく、ファイル入出力操作のたびに実行することは困難か、もしくはＯＳ全体の動作に影響を与える場合があった。
【０００５】
そこで、プロセスIDからその詳細情報の取得を行う場合について、所定間隔で、プロセス一覧を取得し、詳細情報に基づいてファイル入出力情報を収集する必要のないプロセスID（除外PID）リストを作成しておき、この除外PIDリストを用いてファイル入出力情報をフィルタする方法がとられる。このような方法によれば、ファイル入出力操作のたびに、詳細情報を取得してフィルタ処理を行う必要がないので、ファイル入出力情報のフィルタ処理の負荷を低減できる。
【０００６】
しかし、前記した方法において、プロセス一覧から除外PIDリストを作成するには所定時間を要し、この除外PIDリストを作成するまでの間に、フィルタ処理に漏れが生じるおそれがある。そこで、これを防止するため、コンピュータから取得したファイル入出力情報をバッファに一時的に蓄えておき、除外PIDリストが出来た段階で、バッファに蓄積されたファイル入出力情報にフィルタ処理を行っていた。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Filter  Manager  Concepts、［online］、［平成25年7月17日検索］、インターネット〈URL：http://msdn.microsoft.com/en-us/library/windows/hardware/ff541610〉
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、このようにファイル入出力情報のフィルタ処理（抽出）を行う場合において、ファイル入出力情報が大量に発生した場合、バッファ溢れが生じたり、当該ファイル入出力情報に対する除外PIDリストの用意が間に合わないことによるフィルタ漏れが生じたりするおそれがある。このような問題を防止するため、ファイル入出力情報を蓄積するためのバッファ用のメモリを大量に確保しておいたり、コンピュータから頻繁にプロセス一覧を取得し、除外PIDリストを作成したりする対策がとられ、前者ではメモリの圧迫に、後者ではＣＰＵ（Central  Processing  Unit）処理の圧迫になっていた。そこで本発明は、前記した問題を解決し、ファイル入出力情報の抽出において、メモリやＣＰＵの圧迫を低減することを課題とする。
【課題を解決するための手段】
【０００９】
前記した課題を解決するため、本発明は、コンピュータにおけるファイルの入出力操作のうち、監視対象のプロセスによるファイルの入出力操作に関するファイル入出力情報を抽出する情報抽出装置であって、前記コンピュータにおける前記ファイルに対する操作を監視し、前記操作を行ったプロセスの識別情報を含む前記ファイル入出力情報を取得するファイル入出力情報取得部と、所定のタイミングで、前記コンピュータから、当該コンピュータにおいて起動中のプロセスの一覧であるプロセスリストを取得するリスト取得部と、前記プロセスリストが取得されるたび、前記取得したプロセスリストから、前記監視対象のプロセス以外のプロセスの識別情報を抽出した除外PIDリストを作成し、記憶部に格納する抽出部と、前記記憶部に格納される除外PIDリストを参照して、前記取得したファイル入出力情報から、前記除外PIDリストに示されるプロセスによるファイル入出力情報以外のファイル入出力情報を抽出することにより、前記ファイル入出力情報のフィルタ処理を行うフィルタ処理部とを備え、前記フィルタ処理部は、前記コンピュータからファイル入出力情報が取得されたタイミングで、前記除外PIDリストを用いた前記フィルタ処理を行った後、前記フィルタ処理後のファイル入出力情報をバッファに蓄積し、前記バッファから、前記除外PIDリストの作成元となったプロセスリストの取得時刻よりも前の時刻におけるファイル入出力情報を取得し、前記取得したファイル入出力情報に対し、再度、前記除外PIDリストを用いた前記フィルタ処理を行うことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ファイル入出力情報の抽出において、メモリやＣＰＵの圧迫を低減することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、第１の実施形態の情報抽出装置の動作概要を説明するための図である。
【図２】図２は、第１の実施形態の情報抽出装置の機能構成を示すブロック図である。
【図３】図３は、図２のコンピュータにおいてファイル入出力が発生したときに、情報抽出装置で行われる処理を示すフローチャートである。
【図４】図４は、図２の情報抽出装置において所定時間ごとのタイマー起動により行われる処理を示すフローチャートである。
【図５】図５は、第２の実施形態の情報抽出装置の機能構成を示すブロック図である。
【図６】図６は、図５の情報抽出装置によるフィルタ処理の処理手順を示すフローチャートである。
【図７】図７は、図６のＳ４６における保存１の除外PIDリストの更新処理を示すフローチャートである。
【図８】図８は、第３の実施形態の情報抽出装置の動作概要を示す図である。
【図９】図９は、第３の実施形態の情報抽出装置の機能構成を示すブロック図である。
【図１０】図１０は、図９のコンピュータにおいてファイル入出力が発生したときに、情報抽出装置で行われる処理を示すフローチャートである。
【図１１】図１１は、図９の情報抽出装置における保存１の除外PIDリストの更新処理の手順を示すフローチャートである。
【図１２】図１２は、図１０のＳ２５の保存２の除外PIDリストの更新処理を示すフローチャートである。
【図１３】図１３は、情報抽出プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１２】
（第１の実施形態）
以下、本発明を実施するための形態（実施形態）を第１の実施形態から第３の実施形態に分けて説明する。まず、第１の実施形態の情報抽出装置の動作概要を、図１を用いて説明する。図１は、第１の実施形態の情報抽出装置の動作概要を説明するための図である。ここでは、情報抽出装置１０により監視されるコンピュータ２０内に２つのプロセス（プロセス名（ProcName）「test.exe」、pid「1235」のプロセスＡと、プロセス名（ProcName）「edit.exe」、pid「1234」のプロセスＢ）が存在する場合を例に説明する。また、情報抽出装置１０は、コンピュータ２０内のプロセスＢのファイルに対する入出力操作を監視対象とする場合を例に説明する。
【００１３】
また、情報抽出装置１０は、コンピュータ２０とは別個の装置として説明するがこれに限定されない。例えば、情報抽出装置１０の機能を、コンピュータ２０内で動作するプログラムモジュールとして実現してもよい。さらに、プロセスリストの作成、除外PIDリストの作成および最新の除外PIDリストを用いたフィルタ処理については、コンピュータ２０のユーザプロセスにより実行し、過去に作成された除外PIDリストを用いたフィルタ処理は、当該コンピュータ２０のＯＳ２２２におけるデバイスドライバ側で実行するようにしてもよい。
【００１４】
まず、情報抽出装置１０はコンピュータ２０を監視し、各プロセスがファイル入出力を実行したタイミングでまずファイル入出力情報を取得する（Ｓ１）。例えば、符号１０１の各１行が１回のファイル入出力に該当し、情報抽出装置１０は、１回のファイル入出力毎に直ちにファイル入出力情報を取得する。ファイル入出力情報は、符号１０１に例示するように、ファイル入出力が発生した時刻(t)、ファイル操作を行ったプロセスの識別情報（pid）、操作内容（op）、操作の対象となるファイルのファイル名（FileName）等が示される。
【００１５】
そして、情報抽出装置１０は、取得したファイル入出力情報に対し、まず、保存１に保存された除外PIDリスト１０３を用いてフィルタ処理を行う（Ｓ２）。ここでファイル入出力情報が除外対象ではないと判断された場合、ファイル入出力情報をバッファ１３１に書き込む。例えば、情報抽出装置１０は符号１０１に示すファイル入出力情報から、pid「1235」以外のプロセス（つまり、pid「1234」のプロセスＢ）によるファイル入出力情報を抽出する。つまり、情報抽出装置１０は、符号１０４に示すファイル入出力情報を抽出する。保存１の除外PIDリスト１０３はタイマー処理により作成されるため、タイマーが動作するまでは空白であり、また、コンピュータ２０に新規プロセスが生成された場合にも次にタイマーの動作タイミングになるまでは新規プロセスが反映されないため、ここでのフィルタ処理（Ｓ２）は完全ではなく取りこぼしが発生する。
【００１６】
また、情報抽出装置１０は、所定期間ごと（例えば、200msごと）に、コンピュータ２０内のＯＳ２２２からコンピュータ２０内に存在するプロセスの一覧であるプロセスリストを取得する（Ｓ４：リスト取得）。その際、情報抽出装置１０は、プロセスリスト取得直前の時刻をプロセスリスト取得時刻として保存する（Ｓ３：プロセスリスト取得時刻を保存）。
【００１７】
その後、情報抽出装置１０は、監視対象プロセス名（例えば、「edit.exe」）の入力を受け付け、プロセスリストに示されるプロセスの中から、監視対象プロセス以外のプロセスのpidを示したリスト（除外PIDリスト）を抽出する（Ｓ５：抽出処理）。例えば、コンピュータ２０のＯＳ２２２から取得したプロセスリストに示されるpidのうち、「edit.exe」を示すpid「1234」を除外したpid「1235」を除外PIDリスト１０３として抽出する。
【００１８】
情報抽出装置１０は、このようにしてプロセスリストを取得するたびに、除外PIDリストを抽出（作成）し、保存１の除外PIDリスト１０３を保持する。なお、以下の説明において、保存１とは、情報抽出装置１０の記憶部１３における、除外PIDリスト１０３を保存するための領域である。
【００１９】
その後、情報抽出装置１０は、バッファ１３１にプロセスリスト取得時刻以降のファイル入出力情報があるか否かを確認し、もしあればファイル入出力情報をバッファ１３１から読み込む。そして、情報抽出装置１０は、保存１に保存された除外PIDリスト１０３を取り出し、バッファ１３１から読み込んだファイル入出力情報のpidが除外PIDリスト１０３に含まれるか否かを確認し、含まれないなら、このファイル入出力情報を出力する（Ｓ６：フィルタ処理）。例えば、後述のファイル入出力情報の監視が並行して行われバッファ１３１にファイル入出力情報が順次格納されていく状況の中で、情報抽出装置１０が１回目（t=10:00:00.200）にプロセスリストを取得したとすると、その時点でバッファ１３１に格納されているt=10:00:00.200以前のファイル入出力情報を対象としてフィルタ処理を行った結果、符号１０５の(1)の行が出力され、６回目（t=10:00:01.200）にプロセスリストを取得したタイミングでは、符号１０５の(3)の行が出力される。
【００２０】
このように、情報抽出装置１０は、最新だと保証出来るタイミングで除外PIDリスト１０３を用いてファイル入出力情報のフィルタ処理を行う前に、ファイル入出力が実行されたタイミングで一度除外PIDリスト１０３を用いてフィルタ処理を行う。よって、情報抽出装置１０が監視対象のファイル入出力情報の抽出を行うために、バッファ用のメモリを多く確保する必要がない。また、情報抽出装置１０は、頻繁にプロセスリストを取得する必要もないので、ＣＰＵの負荷も低減することができる。
【００２１】
（構成）
次に図２を用いて、情報抽出装置１０の構成を説明する。図２は、第１の実施形態の情報抽出装置の機能構成を示すブロック図である。
【００２２】
図２に示すように、情報抽出装置１０は、入出力部１１、制御部１２、記憶部１３を備える。
【００２３】
入出力部１１は、コンピュータ２０等の外部装置から、各種情報の入力を受け付けたり、制御部１２から出力される情報を外部装置へ出力したりするインタフェースである。ここでは入出力部１１は、主に、コンピュータ２０からファイル入出力情報を取得したり、プロセスリストを取得したりする。この入出力部１１は、ネットワーク経由で外部装置とのデータ通信を行うための通信インタフェースを備え、ネットワーク経由でコンピュータ２０とのデータ入出力を行うようにしてもよい。
【００２４】
制御部１２は、情報抽出装置１０全体の制御を司り、ここでは主に、コンピュータ２０から取得したファイル入出力情報のうち、監視対象のプロセスによるファイル入出力情報を抽出する。この制御部１２は、リスト取得部１２１、監視対象受付部１２２、抽出部１２３、ファイル入出力情報取得部１２４、フィルタ処理部１２５を備える。この制御部１２は、情報抽出装置１０の備えるＣＰＵ（Central  Processing  Unit）によるプログラム実行処理や、専用のハードウェアにより実現される。
【００２５】
リスト取得部１２１は、所定のタイミングで、入出力部１１経由でコンピュータ２０のＯＳ２２２からプロセスリストを取得する。例えば、リスト取得部１２１は、所定期間（例えば、200ms）ごとに、コンピュータ２０のＯＳ２２２からプロセスリストを取得する。
【００２６】
また、このリスト取得部１２１は、プロセスリスト取得直前の時刻をプロセスリスト取得時刻として記憶部１３に格納する。このプロセスリスト取得時刻は、フィルタ処理部１２５において、バッファ１３１に蓄積されたファイル入出力情報のうち、除外PIDリスト１０３を用いたフィルタ処理の対象となるファイル入出力情報を抽出する際に参照される。なお、プロセスリスト取得時刻をプロセスリスト取得直前の時刻としたのは、プロセスリストの取得には所定時間がかかり、その間にコンピュータ２０に新たなプロセスが生成される可能性があるからである。つまり、プロセスリスト取得時刻を「プロセスリスト取得直前」とすることで、除外PIDリスト１０３によるフィルタ漏れを低減することができる。
【００２７】
監視対象受付部１２２は、入出力部１１経由で監視対象プロセスの情報（例えば、監視対象プロセス名）の入力を受け付ける。監視対象受付部１２２は、受け付けた監視対象プロセスの情報を記憶部１３に格納する。
【００２８】
抽出部１２３は、監視対象プロセスの情報から、この監視対象プロセスのpidを特定する。ここでのpidの特定は、例えば、記憶部１３に格納される各監視対象プロセスのpidを示した情報（図示省略）の参照等により行われる。そして、抽出部１２３は、リスト取得部１２１によりプロセスリストが取得されるたび、このプロセスリストに示されるpidのうち、監視対象プロセス以外のプロセスのpidを抽出し、除外PIDリストを作成する。例えば、除外PIDリスト１０３を作成する。抽出部１２３は、作成した除外PIDリスト１０３を、記憶部１３に格納する。なお、抽出部１２３は、最新の除外PIDリスト１０３を作成したとき、除外PIDリスト１０３よりも前に作成した除外PIDリストについては、記憶部１３から削除するようにしてもよい。
【００２９】
ファイル入出力情報取得部１２４は、コンピュータ２０のプロセス（例えば、プロセスＡ，Ｂ）による記憶部２３内のファイルに対する操作を監視し、ファイル入出力情報を取得する。
【００３０】
フィルタ処理部１２５は、除外PIDリスト１０３を用いて、入力されたファイル入出力情報のうち、除外PIDリスト１０３に示されるpid以外のpidのファイル入出力情報を抽出する。具体的には、フィルタ処理部１２５は、まず、ファイル入出力情報取得部１２４によりファイル入出力情報が取得されたタイミングで、除外PIDリスト１０３に示されるpid以外のpidのファイル入出力情報を抽出する。つまり、フィルタ処理部１２５は、コンピュータ２０からファイル入出力情報が取得されたタイミングで、除外PIDリスト１０３を用いて１回目のフィルタ処理を行う。
【００３１】
その後、フィルタ処理部１２５は、除外PIDリスト１０３でフィルタ処理を行ったファイル入出力情報をバッファ１３１に蓄積する。そして、フィルタ処理部１２５はバッファ１３１に蓄積されたファイル入出力情報のうち、プロセスリスト取得時刻に示される時刻以前のファイル入出力情報に対し、除外PIDリスト１０３によるフィルタ処理を行う。つまり、フィルタ処理部１２５は、除外PIDリスト１０３によるフィルタ処理を行う際、除外PIDリスト１０３のもととなったプロセスリストが生成された時刻よりも前のファイル入出力情報に対し、２回目のフィルタ処理を行う。そして、フィルタ処理部１２５は、この除外PIDリスト１０３による２回目のフィルタ処理の結果であるファイル入出力情報を出力する。このようにしてフィルタ処理部１２５は、監視対象プロセスに関するファイル入出力情報を抽出する。
【００３２】
記憶部１３は、抽出部１２３により作成された除外PIDリスト１０３、リスト取得部１２１により取得されたプロセスリスト、監視対象受付部１２２により入力された監視対象プロセスの情報（監視対象プロセス名）、プロセスリスト取得時刻を記憶する。また、記憶部１３は、所定領域に、除外PIDリスト１０３によりフィルタ処理されたファイル入出力情報を一時的に記憶する領域（バッファ１３１）を備える。この記憶部１３は、半導体メモリや、ハードディスク装置等の記憶媒体により実現される。
【００３３】
（処理手順）
次に、図３を用いて、情報抽出装置１０の処理手順を説明する。図３は、図２のコンピュータにおいてファイル入出力が発生したときに、情報抽出装置で行われる処理を示すフローチャートである。
【００３４】
まず、情報抽出装置１０のファイル入出力情報取得部１２４は、コンピュータ２０を監視し、各プロセスがファイル入出力を実行したタイミングでファイル入出力情報を読み込む（Ｓ２１）。
【００３５】
そして、フィルタ処理部１２５は、Ｓ２１で読み込んだファイル入出力情報に対し、まず、保存１に保存された除外PIDリスト１０３でフィルタ処理を行い（Ｓ２２）、当該ファイル入出力情報が除外対象ではないと判断された場合（Ｓ２３でＮｏ）、当該ファイル入出力情報をバッファ１３１に書き込む（Ｓ２４）。一方、当該ファイル入出力情報が除外対象であると判断された場合（Ｓ２３でＹｅｓ）、フィルタ処理部１２５は、ファイル入出力情報をバッファ１３１に書き込まず、処理を終了する。
【００３６】
次に、図４を用いて、情報抽出装置１０において所定時間ごと（例えば、200msごと）のタイマー起動により行われる処理を説明する。図４は、図２の情報抽出装置において所定時間ごとのタイマー起動により行われる処理を示すフローチャートである。
【００３７】
まず、情報抽出装置１０のリスト取得部１２１は、タイマーにより所定時刻を迎えると、プロセスリスト取得時刻を記憶部１３に保存する（Ｓ３１）。そして、リスト取得部１２１は、コンピュータ２０のＯＳ２２２からプロセスリストを取得する（Ｓ３２）。次に、抽出部１２３は、プロセスリストに示されるプロセスの中から、監視対象プロセス以外のプロセスのpidを示したリスト（除外PIDリスト１０３）を抽出する（Ｓ３３）。そして、抽出部１２３は、抽出した除外PIDリスト１０３を保存１に保存する（Ｓ３４）。つまり、抽出部１２３は、抽出した除外PIDリスト１０３を記憶部１３の保存１用の領域に格納する。
【００３８】
次に、フィルタ処理部１２５は、バッファ１３１にプロセスリスト取得時刻以前のファイル入出力情報があれば（Ｓ３５でＹｅｓ）、当該ファイル入出力情報をバッファ１３１から読み込む（Ｓ３６）。そして、フィルタ処理部１２５は、読み込んだファイル入出力情報に対し、保存１に保存されている除外PIDリスト１０３でフィルタ処理を行い（Ｓ３７）、当該ファイル入出力情報が除外対象でなければ（Ｓ３８でＮｏ）、当該ファイル入出力情報を出力する（Ｓ３９）。そして、Ｓ３５へ戻る。一方、Ｓ３７のフィルタ処理の結果、当該ファイル入出力情報が除外対象であった場合も（Ｓ３８でＹｅｓ）、Ｓ３５へ戻る。バッファ１３１にプロセスリスト取得時刻以前のファイル入出力情報が無ければ（Ｓ３５でＮｏ）、タイマー処理を終える。
【００３９】
情報抽出装置１０は、上記のタイマー処理を繰り返すことで、最新のプロセスリストから除外PIDリストを抽出し、この除外PIDリストによるフィルタ処理を行う。なお、このタイマー処理は、タイマーのスタートにより初期化が行われ、タイマーの停止により終了する。
【００４０】
このように、情報抽出装置１０は、最新だと保証出来るタイミングで除外PIDリスト１０３を用いてファイル入出力情報のフィルタ処理を行う前に、ファイル入出力が実行されたタイミングで一度除外PIDリスト１０３を用いてフィルタ処理を行う。よって、情報抽出装置１０が監視対象のファイル入出力情報の抽出を行うために、バッファ用のメモリを多く確保する必要がない。また、情報抽出装置１０は、頻繁にプロセスリストを取得する必要もないので、ＣＰＵの負荷も低減することができる。
【００４１】
また、情報抽出装置１０は、ファイル入出力情報のフィルタ処理に「除外PIDリスト」を用いる。よって、情報抽出装置１０においてファイル入出力情報に対するフィルタ処理の適用が遅れた場合でも、出力されるファイル入出力情報には余分な情報（監視対象外のプロセスに関するファイル入出力情報）が含まれるだけで、監視対象のプロセスに関するファイル入出力情報の抽出漏れが発生することはない。
【００４２】
（第２の実施形態）
第２の実施形態の情報抽出装置１０ａは、バッファ１３１に蓄積されたファイル入出力情報を取得してから、除外PIDリスト１０３を最新のものに更新し、その更新された除外PIDリスト１０３でフィルタ処理を行う。
【００４３】
（構成）
図５は、第２の実施形態の情報抽出装置の機能構成を示すブロック図である。前記した実施形態と同じ構成は、同じ符号を付して説明を省略する。図５に示すように、情報抽出装置１０ａの制御部１２は、判定部１２６をさらに備える。
【００４４】
この判定部１２６は、バッファ１３１に蓄積されたファイル入出力情報に、プロセスリストに示されるプロセス以外のプロセスに関するファイル入出力情報が含まれているか否かを判定する。
【００４５】
そして、判定部１２６が、当該ファイル入出力情報に、プロセスリストに示されるプロセス以外のプロセスに関するファイル入出力情報が含まれていると判定したとき、リスト取得部１２１は、コンピュータ２０から、最新のプロセスリストを取得し、抽出部１２３は、当該取得した最新のプロセスリストから、監視対象のプロセス以外のプロセスの識別情報を抽出した除外PIDリスト１０３を作成し、保存１に保存する。つまり、抽出部１２３は除外PIDリスト１０３を最新のものに更新する。そして、フィルタ処理部１２５は、この除外PIDリスト１０３を用いてフィルタ処理を行う。
【００４６】
（処理手順）
次に、情報抽出装置１０ａの処理手順を説明する。なお、情報抽出装置１０ａが、コンピュータ２０からファイル入出力情報を読み込む（取得する）処理は第１の実施形態と同様であるので説明を省略し、ここでは、情報抽出装置１０ａが、バッファ１３１からファイル入出力情報を読み込み、フィルタ処理を行う手順を説明する。
【００４７】
図６は、図５の情報抽出装置によるフィルタ処理の処理手順を示すフローチャートである。このフィルタ処理は終了フラグにＯＮが設定されたとき（つまり、Ｓ４４でＹｅｓ）、処理を終了するが、終了フラグがＯＮではないとき（つまり、Ｓ４４でＮｏ）である限り継続される。終了フラグは一連の処理を終了させるための手段として用いているが、割り込み処理による強制終了などこの他の手段による終了であってもかまわない。
【００４８】
情報抽出装置１０ａは、まず、記憶部１３におけるプロセスリスト、除外PIDリスト１０３をクリアする。そして、フィルタ処理部１２５、先ずバッファ１３１にファイル入出力情報があるか否かを確認する（Ｓ４３）。ここで、バッファ１３１にファイル入出力情報がなければ（Ｓ４３でＮｏ）、終了フラグを判定し（Ｓ４４）、ＯＮになっていなければ（Ｓ４４でＮｏ）、Ｓ４３へ戻り、バッファ１３１にファイル入出力情報が書き込まれるタイミングを待つ。一方、Ｓ４３においてバッファ１３１にファイル入出力情報があれば（Ｓ４３でＹｅｓ）、フィルタ処理部１２５は、ファイル入出力情報をバッファ１３１から読み込み（Ｓ４５）、抽出部１２３は、保存１の除外PIDリスト１０３の更新処理を行う（Ｓ４６）。この除外PIDリスト１０３の更新処理の詳細は後記する。なお、Ｓ４４で終了フラグがＯＮであれば（Ｓ４４のＹｅｓ）、処理を終了する。
【００４９】
Ｓ４６の後、フィルタ処理部１２５は、Ｓ４５で読み込んだファイル入出力情報に対し、保存１に保存されている除外PIDリスト１０３でフィルタ処理を行い（Ｓ４７）、この読み込んだファイル入出力情報が除外対象でなければ（Ｓ４８でＮｏ）、このファイル入出力情報を出力する（Ｓ４９）。そして、Ｓ４３へ戻る。また、フィルタ処理部１２５は、Ｓ４５で読み込んだファイル入出力情報が除外対象だった場合も（Ｓ４８でＹｅｓ）、Ｓ４３へ戻る。
【００５０】
次に、図７を用いて、図６のＳ４６における保存１の除外PIDリスト１０３の更新処理を詳細に説明する。図７は、図６のＳ４６における保存１の除外PIDリストの更新処理を示すフローチャートである。
【００５１】
情報抽出装置１０ａの判定部１２６は、バッファ１３１から読み込んだファイル入出力情報に含まれるpidが、プロセスリストに含まれるか否かを判定し（Ｓ４６１）、バッファ１３１から読み込んだファイル入出力情報に含まれるpidが、プロセスリストに含まれないと判定された場合（Ｓ４６１でＮｏ）、リスト取得部１２１はコンピュータ２０から最新のプロセスリストを取得し（Ｓ４６２）、このプロセスリストを記憶部１３に保存する（Ｓ４６３）。そして、抽出部１２３は、取得された最新のプロセスリストから、除外PIDリスト１０３を抽出し（Ｓ４６４）、この除外PIDリスト１０３を保存１に保存する（Ｓ４６５）。そして、除外PIDリスト１０３の更新処理を終了する。一方、判定部１２６において、バッファ１３１から読み込んだファイル入出力情報に含まれるpidが、プロセスリストに含まれると判定された場合（Ｓ４６１でＹｅｓ）、保存１の除外PIDリスト１０３の更新処理を終了する。
【００５２】
このように、情報抽出装置１０ａは、バッファ１３１にファイル入出力情報の書き込みを検出したタイミングで、先ずファイル入出力情報をバッファ１３１から読み込み、保存１の除外PIDリスト１０３の更新が必要であれば更新を行い、フィルタ処理を行う。つまり、情報抽出装置１０ａは、除外PIDリスト１０３の更新が必要になった段階で、プロセスリストを取得し、除外PIDリスト１０３の更新を行うので、必要以上にプロセスリストの取得を行う必要がなくなる。なお、図６に示したバッファ１３１からのファイル入出力情報の取得（読み込み）は、情報抽出装置１０ａのＣＰＵの負荷低減のため、例えば、Sleep()等の命令により所定時間ＣＰＵを解放しつつ待機したり、情報抽出装置１０ａのＯＳ（図示省略）が提供するバッファ１３１のイベント待ち機能等を用いたりしてもよい。
【００５３】
（第３の実施形態）
第３の実施形態の情報抽出装置１０ｂは、第２の実施形態の情報抽出装置１０ａとほぼ同様の処理を行うが、抽出部１２３により抽出された除外PIDリストを蓄積する除外PIDリスト用バッファ１３２を備える点が異なる。そして、情報抽出装置１０ｂは、コンピュータ２０から読み込んだファイル入出力情報のフィルタ処理を行う際には、この除外PIDリスト用バッファ１３２に蓄積された除外PIDリスト（除外PIDリスト１０２）を用いてフィルタ処理を行い、フィルタ処理後のファイル入出力情報をバッファ１３１に蓄積した後、保存１の除外PIDリスト１０３を用いたフィルタ処理を行う。なお、以下の説明において情報抽出装置１０ｂの記憶部１３における、除外PIDリスト１０２（除外PIDリスト用バッファ１３２から取得された除外PIDリスト）を保存するための領域を保存２とする。
【００５４】
図８は、第３の実施形態の情報抽出装置の動作概要を示す図である。図８に示すように、情報抽出装置１０ｂは、第１の実施形態および第２の実施形態と同様に、コンピュータ２０においてファイル入出力が実行されたタイミングで、ファイル入出力情報を読み込む（Ｓ１）。その後、情報抽出装置１０ｂは、除外PIDリスト用バッファ１３２から、除外PIDリストを取得して、この取得した除外PIDリストで保存２の除外PIDリスト１０２の更新を行う（Ｓ１１）。その後、情報抽出装置１０ｂは、保存２の除外PIDリスト１０２でフィルタ処理を行う（Ｓ１２）。
【００５５】
また、情報抽出装置１０ｂは、バッファ１３１に蓄積されたファイル入出力情報にプロセスリストにないpidを発見すると、コンピュータ２０から新たなプロセスリストを取得し（Ｓ１３：リスト取得）、除外PIDリスト１０３の抽出を行う（Ｓ１４）。そして、情報抽出装置１０ｂは、この除外PIDリスト１０３を除外PIDリスト用バッファ１３２に書き込む（Ｓ１５）。また、情報抽出装置１０ｂは、バッファ１３１から取得したファイル入出力情報に対し除外PIDリスト１０３を用いてフィルタ処理を行う（Ｓ１６）。
【００５６】
（構成）
図９は、第３の実施形態の情報抽出装置の機能構成を示すブロック図である。前記した実施形態と同じ構成は、同じ符号を付して説明を省略する。
【００５７】
図９に示すように、情報抽出装置１０ｂの記憶部１３は所定領域に、除外PIDリスト１０２および除外PIDリスト１０３を記憶し、除外PIDリストを蓄積する除外PIDリスト用バッファ１３２を備える。さらに、制御部１２は、除外PIDリスト更新部１２７を備える。
【００５８】
除外PIDリスト用バッファ１３２は、抽出部１２３により作成された除外PIDリストを蓄積するバッファである。
【００５９】
除外PIDリスト更新部１２７は、ファイル入出力情報取得部１２４により、コンピュータ２０からファイル入出力情報が読み込まれると、このファイル入出力情報のフィルタ処理に用いる除外PIDリスト１０２の更新を行う。具体的には、除外PIDリスト更新部１２７は、ファイル入出力情報がコンピュータ２０から読み込まれると、除外PIDリスト用バッファ１３２から除外PIDリストを取得し、保存２の除外PIDリスト１０２を更新する。そして、フィルタ処理部１２５は、この更新された除外PIDリスト１０２を用いて、ファイル入出力情報のフィルタ処理を行う。
【００６０】
（処理手順）
次に、情報抽出装置１０ｂの処理手順を説明する。図１０は、図９のコンピュータにおいてファイル入出力が発生したときに、情報抽出装置で行われる処理を示すフローチャートである。図１０に示すように、情報抽出装置１０ｂのファイル入出力情報取得部１２４が、図３のＳ２１と同様に、コンピュータ２０からファイル入出力情報を読み込むと、除外PIDリスト更新部１２７は、保存２の除外PIDリスト１０２の更新処理（Ｓ２５）を行う。保存２の除外PIDリスト１０２の更新処理の詳細は、図１２を用いて後記する。そして、フィルタ処理部１２５は、Ｓ２１で読み込んだファイル入出力情報に対し、保存２に保存されている除外PIDリスト１０２を用いてフィルタ処理を行う（Ｓ２６）。この後の処理は、図３のＳ２３、Ｓ２４と同様なので説明を省略する。
【００６１】
また、情報抽出装置１０ｂは、情報抽出装置１０ａと同様に、ファイル入出力情報に新たなpidを発見したときは保存１の除外PIDリスト１０３の更新処理を行う。
【００６２】
図１１は、図９の情報抽出装置における保存１の除外PIDリストの更新処理の手順を示すフローチャートである。情報抽出装置１０ｂによる保存１の除外PIDリスト１０３の更新手順は、前記した図７とほぼ同様であるが、図１１に示すように、Ｓ４６５で、抽出部１２３が除外PIDリスト１０３を保存１に保存した後、この除外PIDリスト１０３を除外PIDリスト用バッファ１３２に書き込む（Ｓ４６６）点が異なる。
【００６３】
図１２を用いて、図１０のＳ２５における保存２の除外PIDリスト１０２の更新処理を詳細に説明する。図１２は、図１０のＳ２５の保存２の除外PIDリストの更新処理を示すフローチャートである。
【００６４】
図１０のＳ２１において、コンピュータ２０からファイル入出力情報が読み込まれると、除外PIDリスト更新部１２７は、除外PIDリスト用バッファ１３２に書き込みがあるか否かを判断する（Ｓ２５１）。ここで、除外PIDリスト用バッファ１３２に書き込みがあるとき（Ｓ２５１でＹｅｓ）、除外PIDリスト更新部１２７は、この除外PIDリスト用バッファ１３２から除外PIDリストを取り出し（Ｓ２５２）、この除外PIDリストを除外PIDリスト１０３として保存２に保存する（Ｓ２５３）。そして、保存２の除外PIDリストの更新処理を終了する。なお、除外PIDリスト用バッファ１３２に書き込みがなければ（Ｓ２５１でＮｏ）、保存２の除外PIDリストの更新処理を終了する。
【００６５】
このように情報抽出装置１０ｂが、コンピュータ２０から読み込んだファイル入出力情報に対し、保存２の除外PIDリスト１０２によるフィルタ処理を行うことで、保存１に保存予定の除外PIDリスト１０３を準備中の段階であってもフィルタ処理を行うことができる。
【００６６】
また、このように情報抽出装置１０ｂが除外PIDリスト用バッファ１３２を設けることで、例えば、コンピュータ２０から読み込んだファイル入出力情報のフィルタ処理をコンピュータ２０のデバイスドライバ側で実行し、その後のフィルタ処理をユーザプロセスで行うような場合に、デバイスドライバ側への除外PIDリストの受け渡しをスムーズに行うことができる。この場合、ユーザプロセスにおいて作成された除外PIDリストを一時的に蓄積するバッファを設け、コンピュータ２０のデバイスドライバ側は、このバッファに蓄積された過去の除外PIDリストを取り出し、フィルタ処理を行うようにしてもよい。
【００６７】
（その他の実施形態）
なお、前記した実施形態において、情報抽出装置１０，１０ａ，１０ｂの除外PIDリストには、監視対象外のプロセスのpid以外にも監視対象外のファイルのIDや、ファイル名、ファイル名に含まれるキーワード等を含み、フィルタ処理部１２５は、この除外PIDリストを用いてファイル入出力情報のフィルタ処理を行ってもよい。
【００６８】
このようにすることで、情報抽出装置１０，１０ａ，１０ｂは監視対象外のファイルのファイル名やキーワードの条件も用いてファイル入出力情報のフィルタ処理を行うことができる。
【００６９】
（プログラム）
前記した情報抽出装置１０，１０ａ，１０ｂが実行する処理をコンピュータが実行可能な言語で記述した情報抽出プログラムで実現することもできる。この場合、コンピュータが情報抽出プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる情報抽出プログラムをコンピュータで読み取り可能な記録媒体に記録して、この記録媒体に記録された情報抽出プログラムをコンピュータに読み込ませて実行することにより前記した実施形態と同様の処理を実現してもよい。以下に、情報抽出装置１０と同様の機能を実現する情報抽出プログラムを実行するコンピュータの一例を説明する。
【００７０】
図１３は、情報抽出プログラムを実行するコンピュータを示す図である。図１３に例示するように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有し、これらの各部はバス１０８０によって接続される。
【００７１】
メモリ１０１０は、図１３に例示するように、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、図１３に例示するように、ハードディスクドライブ１０３１に接続される。ディスクドライブインタフェース１０４０は、図１３に例示するように、ディスクドライブ１０４１に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１０４１に挿入される。シリアルポートインタフェース１０５０は、図１３に例示するように、例えばマウス１０５１、キーボード１０５２に接続される。ビデオアダプタ１０６０は、図１３に例示するように、例えばディスプレイ１０６１に接続される。  
【００７２】
ここで、図１３に例示するように、ハードディスクドライブ１０３１は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、上記の情報抽出プログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ１０３１に記憶される。  
【００７３】
また、上記実施の形態で説明した各種データは、プログラムデータとして、例えばメモリ１０１０やハードディスクドライブ１０３１に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０３１に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出し、前記した情報抽出装置１０の制御部１２の機能を実現する。
【００７４】
なお、情報抽出プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０３１に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１０４１等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００７５】
１０    情報抽出装置
１１    入出力部
１２、２２    制御部
１３、２３    記憶部
２０    コンピュータ
１０２、１０３  除外PIDリスト
１２１  リスト取得部
１２２  監視対象受付部
１２３  抽出部
１２４  ファイル入出力情報取得部
１２５  フィルタ処理部
１２６  判定部
１２７  除外PIDリスト更新部
１３１  バッファ
１３２  除外PIDリスト用バッファ
【図１】
2015133013.tif 000003
【図２】
2015133013.tif 000004
【図３】
2015133013.tif 000005
【図４】
2015133013.tif 000006
【図５】
2015133013.tif 000007
【図６】
2015133013.tif 000008
【図７】
2015133013.tif 000009
【図８】
2015133013.tif 000010
【図９】
2015133013.tif 000011
【図１０】
2015133013.tif 000012
【図１１】
2015133013.tif 000013
【図１２】
2015133013.tif 000014
【図１３】
2015133013.tif 000015