特開2015-133013(P2015-133013A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧 ▶ 株式会社ディアイティの特許一覧

特開2015-133013情報抽出装置、情報抽出方法、および、情報抽出プログラム
<>
  • 特開2015133013-情報抽出装置、情報抽出方法、および、情報抽出プログラム 図000003
  • 特開2015133013-情報抽出装置、情報抽出方法、および、情報抽出プログラム 図000004
  • 特開2015133013-情報抽出装置、情報抽出方法、および、情報抽出プログラム 図000005
  • 特開2015133013-情報抽出装置、情報抽出方法、および、情報抽出プログラム 図000006
  • 特開2015133013-情報抽出装置、情報抽出方法、および、情報抽出プログラム 図000007
  • 特開2015133013-情報抽出装置、情報抽出方法、および、情報抽出プログラム 図000008
  • 特開2015133013-情報抽出装置、情報抽出方法、および、情報抽出プログラム 図000009
  • 特開2015133013-情報抽出装置、情報抽出方法、および、情報抽出プログラム 図000010
  • 特開2015133013-情報抽出装置、情報抽出方法、および、情報抽出プログラム 図000011
  • 特開2015133013-情報抽出装置、情報抽出方法、および、情報抽出プログラム 図000012
  • 特開2015133013-情報抽出装置、情報抽出方法、および、情報抽出プログラム 図000013
  • 特開2015133013-情報抽出装置、情報抽出方法、および、情報抽出プログラム 図000014
  • 特開2015133013-情報抽出装置、情報抽出方法、および、情報抽出プログラム 図000015
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2015-133013(P2015-133013A)
(43)【公開日】2015年7月23日
(54)【発明の名称】情報抽出装置、情報抽出方法、および、情報抽出プログラム
(51)【国際特許分類】
   G06F 11/34 20060101AFI20150630BHJP
   G06F 21/60 20130101ALI20150630BHJP
【FI】
   G06F11/34 B
   G06F21/24 160A
【審査請求】未請求
【請求項の数】5
【出願形態】OL
【全頁数】19
(21)【出願番号】特願2014-4509(P2014-4509)
(22)【出願日】2014年1月14日
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】595172207
【氏名又は名称】株式会社ディアイティ
(74)【代理人】
【識別番号】100089118
【弁理士】
【氏名又は名称】酒井 宏明
(74)【代理人】
【識別番号】100112656
【弁理士】
【氏名又は名称】宮田 英毅
(72)【発明者】
【氏名】元田 敏浩
(72)【発明者】
【氏名】三橋 薫
(72)【発明者】
【氏名】石川 貴之
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GA23
5B042MA05
5B042MA08
5B042MC08
5B042MC40
(57)【要約】
【課題】監視対象のファイル入出力情報を抽出する際の、メモリやCPUの圧迫を低減する。
【解決手段】情報抽出装置10は、コンピュータ20からファイル入出力情報101を取得し、またコンピュータ20で起動中のプロセス一覧であるプロセスリストを取得する。そして、情報抽出装置10は、コンピュータ20からプロセスリストが取得されるたび、監視対象外のプロセスのpidを示した除外PIDリスト103を作成する。そして、情報抽出装置10は、まず、コンピュータ20からファイル入出力情報101を取得したタイミングで除外PIDリスト103を用いて、フィルタ処理を行いバッファ131に蓄積する。その後、情報抽出装置10は、バッファ131に蓄積されたファイル入出力情報104を取得し除外PIDリスト103を用いて、フィルタ処理を行う。
【選択図】図1
【特許請求の範囲】
【請求項1】
コンピュータにおけるファイルの入出力操作のうち、監視対象のプロセスによるファイルの入出力操作に関するファイル入出力情報を抽出する情報抽出装置であって、
前記コンピュータにおける前記ファイルに対する操作を監視し、前記操作を行ったプロセスの識別情報を含む前記ファイル入出力情報を取得するファイル入出力情報取得部と、
所定のタイミングで、前記コンピュータから、当該コンピュータにおいて起動中のプロセスの一覧であるプロセスリストを取得するリスト取得部と、
前記プロセスリストが取得されるたび、前記取得したプロセスリストから、前記監視対象のプロセス以外のプロセスの識別情報を抽出した除外PIDリストを作成し、記憶部に格納する抽出部と、
前記記憶部に格納される除外PIDリストを参照して、前記取得したファイル入出力情報から、前記除外PIDリストに示されるプロセスによるファイル入出力情報以外のファイル入出力情報を抽出することにより、前記ファイル入出力情報のフィルタ処理を行うフィルタ処理部とを備え、
前記フィルタ処理部は、
前記コンピュータからファイル入出力情報が取得されたタイミングで、前記除外PIDリストを用いた前記フィルタ処理を行った後、前記フィルタ処理後のファイル入出力情報をバッファに蓄積し、前記バッファから、前記除外PIDリストの作成元となったプロセスリストの取得時刻よりも前の時刻におけるファイル入出力情報を取得し、前記取得したファイル入出力情報に対し、再度、前記除外PIDリストを用いた前記フィルタ処理を行うことを特徴とする情報抽出装置。
【請求項2】
前記情報抽出装置は、さらに、
前記ファイル入出力情報取得部により取得されたファイル入出力情報に、前記プロセスリストに示されるプロセス以外のプロセスに関するファイル入出力情報が含まれているか否かを判定する判定部を備え、
前記判定部により、前記取得されたファイル入出力情報に、前記プロセスリストに示されるプロセス以外のプロセスに関するファイル入出力情報が含まれていると判定されたとき、
前記リスト取得部は、
前記コンピュータから、最新の前記プロセスリストを取得し、
前記抽出部は、
前記取得したプロセスリストから、前記監視対象のプロセス以外のプロセスの識別情報を抽出した除外PIDリストを作成し、前記記憶部に格納することを特徴とする請求項1に記載の情報抽出装置。
【請求項3】
前記抽出部により作成された除外PIDリストを蓄積する除外PIDリスト用バッファをさらに備え、
前記フィルタ処理部は、
前記コンピュータからファイル入出力情報が取得されたタイミングで、前記除外PIDリストを用いた前記フィルタ処理を行う際、前記除外PIDリスト用バッファから取得した前記除外PIDリストを用いて前記フィルタ処理を行うことを特徴とする請求項1または請求項2に記載の情報抽出装置。
【請求項4】
コンピュータにおけるファイルの入出力操作のうち、監視対象のプロセスによるファイルの入出力操作に関するファイル入出力情報を抽出する情報抽出装置が、
前記コンピュータにおける前記ファイルに対する操作を監視し、前記ファイル入出力情報を取得するファイル入出力情報取得ステップと、
所定のタイミングで、前記コンピュータから、当該コンピュータにおいて起動中のプロセスの一覧であるプロセスリストを取得するリスト取得ステップと、
前記プロセスリストが取得されるたび、前記取得したプロセスリストから、前記監視対象のプロセス以外のプロセスの識別情報を抽出した除外PIDリストを作成し、記憶部に格納する抽出ステップと、
前記記憶部に格納される除外PIDリストを参照して、前記取得したファイル入出力情報から、前記除外PIDリストに示されるプロセスによるファイル入出力情報以外のファイル入出力情報を抽出することにより、前記ファイル入出力情報のフィルタ処理を行うフィルタ処理ステップとを実行し、
前記フィルタ処理ステップにおいて、
前記コンピュータからファイル入出力情報が取得されたタイミングで、前記除外PIDリストを用いた前記フィルタ処理を行った後、前記フィルタ処理後のファイル入出力情報をバッファに蓄積し、前記バッファから、前記除外PIDリストの作成元となったプロセスリストの取得時刻よりも前の時刻におけるファイル入出力情報を取得し、前記取得したファイル入出力情報に対し、再度、前記除外PIDリストを用いた前記フィルタ処理を行うことを特徴とする情報抽出方法。
【請求項5】
コンピュータにおけるファイルの入出力操作のうち、監視対象のプロセスによるファイルの入出力操作に関するファイル入出力情報を抽出するための情報抽出装置に、
前記コンピュータにおける前記ファイルに対する操作を監視し、前記ファイル入出力情報を取得するファイル入出力情報取得ステップと、
所定のタイミングで、前記コンピュータから、当該コンピュータにおいて起動中のプロセスの一覧であるプロセスリストを取得するリスト取得ステップと、
前記プロセスリストが取得されるたび、前記取得したプロセスリストから、前記監視対象のプロセス以外のプロセスの識別情報を抽出した除外PIDリストを作成し、記憶部に格納する抽出ステップと、
前記記憶部に格納される除外PIDリストを参照して、前記取得したファイル入出力情報から、前記除外PIDリストに示されるプロセスによるファイル入出力情報以外のファイル入出力情報を抽出することにより、前記ファイル入出力情報のフィルタ処理を行うフィルタ処理ステップとを実行させ、
前記フィルタ処理ステップにおいて、
前記コンピュータからファイル入出力情報が取得されたタイミングで、前記除外PIDリストを用いた前記フィルタ処理を行った後、前記フィルタ処理後のファイル入出力情報をバッファに蓄積し、前記バッファから、前記除外PIDリストの作成元となったプロセスリストの取得時刻よりも前の時刻におけるファイル入出力情報を取得し、前記取得したファイル入出力情報に対し、再度、前記除外PIDリストを用いた前記フィルタ処理を行わせることを特徴とする情報抽出プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報抽出装置、情報抽出方法、および、情報抽出プログラムに関する。
【背景技術】
【0002】
機密情報の流通を監視する目的で、コンピュータのOS(Operating System)等のファイル入出力を全て監視して、その中から対象となる機密情報の取り扱いについての情報を抽出し、情報加工・移動の履歴(トレース情報)として保存し、証跡化する技術がある(非特許文献1参照)。
【0003】
このような技術において、ファイル入出力には作業用ファイルの操作等、監視する必要の無い操作も多く、多くの情報の中から不要な情報を取り除き必要な情報のみを抽出する必要がある。
【0004】
ファイル入出力の操作の際に取得される情報は、例えば、操作対象のファイルのID、操作の種類、当該操作を行っているプロセスのID等のID情報のみである。よって、それらの情報から監視の要・不要を識別するためには、各ID情報からその詳細情報(例えば、プロセスIDから対応する実行形式ファイル名等)を取得して、それに基づいた処理を行う必要があった。しかし、一般にこの詳細情報の取得は処理負荷が大きく、ファイル入出力操作のたびに実行することは困難か、もしくはOS全体の動作に影響を与える場合があった。
【0005】
そこで、プロセスIDからその詳細情報の取得を行う場合について、所定間隔で、プロセス一覧を取得し、詳細情報に基づいてファイル入出力情報を収集する必要のないプロセスID(除外PID)リストを作成しておき、この除外PIDリストを用いてファイル入出力情報をフィルタする方法がとられる。このような方法によれば、ファイル入出力操作のたびに、詳細情報を取得してフィルタ処理を行う必要がないので、ファイル入出力情報のフィルタ処理の負荷を低減できる。
【0006】
しかし、前記した方法において、プロセス一覧から除外PIDリストを作成するには所定時間を要し、この除外PIDリストを作成するまでの間に、フィルタ処理に漏れが生じるおそれがある。そこで、これを防止するため、コンピュータから取得したファイル入出力情報をバッファに一時的に蓄えておき、除外PIDリストが出来た段階で、バッファに蓄積されたファイル入出力情報にフィルタ処理を行っていた。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】Filter Manager Concepts、[online]、[平成25年7月17日検索]、インターネット〈URL:http://msdn.microsoft.com/en-us/library/windows/hardware/ff541610〉
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、このようにファイル入出力情報のフィルタ処理(抽出)を行う場合において、ファイル入出力情報が大量に発生した場合、バッファ溢れが生じたり、当該ファイル入出力情報に対する除外PIDリストの用意が間に合わないことによるフィルタ漏れが生じたりするおそれがある。このような問題を防止するため、ファイル入出力情報を蓄積するためのバッファ用のメモリを大量に確保しておいたり、コンピュータから頻繁にプロセス一覧を取得し、除外PIDリストを作成したりする対策がとられ、前者ではメモリの圧迫に、後者ではCPU(Central Processing Unit)処理の圧迫になっていた。そこで本発明は、前記した問題を解決し、ファイル入出力情報の抽出において、メモリやCPUの圧迫を低減することを課題とする。
【課題を解決するための手段】
【0009】
前記した課題を解決するため、本発明は、コンピュータにおけるファイルの入出力操作のうち、監視対象のプロセスによるファイルの入出力操作に関するファイル入出力情報を抽出する情報抽出装置であって、前記コンピュータにおける前記ファイルに対する操作を監視し、前記操作を行ったプロセスの識別情報を含む前記ファイル入出力情報を取得するファイル入出力情報取得部と、所定のタイミングで、前記コンピュータから、当該コンピュータにおいて起動中のプロセスの一覧であるプロセスリストを取得するリスト取得部と、前記プロセスリストが取得されるたび、前記取得したプロセスリストから、前記監視対象のプロセス以外のプロセスの識別情報を抽出した除外PIDリストを作成し、記憶部に格納する抽出部と、前記記憶部に格納される除外PIDリストを参照して、前記取得したファイル入出力情報から、前記除外PIDリストに示されるプロセスによるファイル入出力情報以外のファイル入出力情報を抽出することにより、前記ファイル入出力情報のフィルタ処理を行うフィルタ処理部とを備え、前記フィルタ処理部は、前記コンピュータからファイル入出力情報が取得されたタイミングで、前記除外PIDリストを用いた前記フィルタ処理を行った後、前記フィルタ処理後のファイル入出力情報をバッファに蓄積し、前記バッファから、前記除外PIDリストの作成元となったプロセスリストの取得時刻よりも前の時刻におけるファイル入出力情報を取得し、前記取得したファイル入出力情報に対し、再度、前記除外PIDリストを用いた前記フィルタ処理を行うことを特徴とする。
【発明の効果】
【0010】
本発明によれば、ファイル入出力情報の抽出において、メモリやCPUの圧迫を低減することができる。
【図面の簡単な説明】
【0011】
図1図1は、第1の実施形態の情報抽出装置の動作概要を説明するための図である。
図2図2は、第1の実施形態の情報抽出装置の機能構成を示すブロック図である。
図3図3は、図2のコンピュータにおいてファイル入出力が発生したときに、情報抽出装置で行われる処理を示すフローチャートである。
図4図4は、図2の情報抽出装置において所定時間ごとのタイマー起動により行われる処理を示すフローチャートである。
図5図5は、第2の実施形態の情報抽出装置の機能構成を示すブロック図である。
図6図6は、図5の情報抽出装置によるフィルタ処理の処理手順を示すフローチャートである。
図7図7は、図6のS46における保存1の除外PIDリストの更新処理を示すフローチャートである。
図8図8は、第3の実施形態の情報抽出装置の動作概要を示す図である。
図9図9は、第3の実施形態の情報抽出装置の機能構成を示すブロック図である。
図10図10は、図9のコンピュータにおいてファイル入出力が発生したときに、情報抽出装置で行われる処理を示すフローチャートである。
図11図11は、図9の情報抽出装置における保存1の除外PIDリストの更新処理の手順を示すフローチャートである。
図12図12は、図10のS25の保存2の除外PIDリストの更新処理を示すフローチャートである。
図13図13は、情報抽出プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【0012】
(第1の実施形態)
以下、本発明を実施するための形態(実施形態)を第1の実施形態から第3の実施形態に分けて説明する。まず、第1の実施形態の情報抽出装置の動作概要を、図1を用いて説明する。図1は、第1の実施形態の情報抽出装置の動作概要を説明するための図である。ここでは、情報抽出装置10により監視されるコンピュータ20内に2つのプロセス(プロセス名(ProcName)「test.exe」、pid「1235」のプロセスAと、プロセス名(ProcName)「edit.exe」、pid「1234」のプロセスB)が存在する場合を例に説明する。また、情報抽出装置10は、コンピュータ20内のプロセスBのファイルに対する入出力操作を監視対象とする場合を例に説明する。
【0013】
また、情報抽出装置10は、コンピュータ20とは別個の装置として説明するがこれに限定されない。例えば、情報抽出装置10の機能を、コンピュータ20内で動作するプログラムモジュールとして実現してもよい。さらに、プロセスリストの作成、除外PIDリストの作成および最新の除外PIDリストを用いたフィルタ処理については、コンピュータ20のユーザプロセスにより実行し、過去に作成された除外PIDリストを用いたフィルタ処理は、当該コンピュータ20のOS222におけるデバイスドライバ側で実行するようにしてもよい。
【0014】
まず、情報抽出装置10はコンピュータ20を監視し、各プロセスがファイル入出力を実行したタイミングでまずファイル入出力情報を取得する(S1)。例えば、符号101の各1行が1回のファイル入出力に該当し、情報抽出装置10は、1回のファイル入出力毎に直ちにファイル入出力情報を取得する。ファイル入出力情報は、符号101に例示するように、ファイル入出力が発生した時刻(t)、ファイル操作を行ったプロセスの識別情報(pid)、操作内容(op)、操作の対象となるファイルのファイル名(FileName)等が示される。
【0015】
そして、情報抽出装置10は、取得したファイル入出力情報に対し、まず、保存1に保存された除外PIDリスト103を用いてフィルタ処理を行う(S2)。ここでファイル入出力情報が除外対象ではないと判断された場合、ファイル入出力情報をバッファ131に書き込む。例えば、情報抽出装置10は符号101に示すファイル入出力情報から、pid「1235」以外のプロセス(つまり、pid「1234」のプロセスB)によるファイル入出力情報を抽出する。つまり、情報抽出装置10は、符号104に示すファイル入出力情報を抽出する。保存1の除外PIDリスト103はタイマー処理により作成されるため、タイマーが動作するまでは空白であり、また、コンピュータ20に新規プロセスが生成された場合にも次にタイマーの動作タイミングになるまでは新規プロセスが反映されないため、ここでのフィルタ処理(S2)は完全ではなく取りこぼしが発生する。
【0016】
また、情報抽出装置10は、所定期間ごと(例えば、200msごと)に、コンピュータ20内のOS222からコンピュータ20内に存在するプロセスの一覧であるプロセスリストを取得する(S4:リスト取得)。その際、情報抽出装置10は、プロセスリスト取得直前の時刻をプロセスリスト取得時刻として保存する(S3:プロセスリスト取得時刻を保存)。
【0017】
その後、情報抽出装置10は、監視対象プロセス名(例えば、「edit.exe」)の入力を受け付け、プロセスリストに示されるプロセスの中から、監視対象プロセス以外のプロセスのpidを示したリスト(除外PIDリスト)を抽出する(S5:抽出処理)。例えば、コンピュータ20のOS222から取得したプロセスリストに示されるpidのうち、「edit.exe」を示すpid「1234」を除外したpid「1235」を除外PIDリスト103として抽出する。
【0018】
情報抽出装置10は、このようにしてプロセスリストを取得するたびに、除外PIDリストを抽出(作成)し、保存1の除外PIDリスト103を保持する。なお、以下の説明において、保存1とは、情報抽出装置10の記憶部13における、除外PIDリスト103を保存するための領域である。
【0019】
その後、情報抽出装置10は、バッファ131にプロセスリスト取得時刻以降のファイル入出力情報があるか否かを確認し、もしあればファイル入出力情報をバッファ131から読み込む。そして、情報抽出装置10は、保存1に保存された除外PIDリスト103を取り出し、バッファ131から読み込んだファイル入出力情報のpidが除外PIDリスト103に含まれるか否かを確認し、含まれないなら、このファイル入出力情報を出力する(S6:フィルタ処理)。例えば、後述のファイル入出力情報の監視が並行して行われバッファ131にファイル入出力情報が順次格納されていく状況の中で、情報抽出装置10が1回目(t=10:00:00.200)にプロセスリストを取得したとすると、その時点でバッファ131に格納されているt=10:00:00.200以前のファイル入出力情報を対象としてフィルタ処理を行った結果、符号105の(1)の行が出力され、6回目(t=10:00:01.200)にプロセスリストを取得したタイミングでは、符号105の(3)の行が出力される。
【0020】
このように、情報抽出装置10は、最新だと保証出来るタイミングで除外PIDリスト103を用いてファイル入出力情報のフィルタ処理を行う前に、ファイル入出力が実行されたタイミングで一度除外PIDリスト103を用いてフィルタ処理を行う。よって、情報抽出装置10が監視対象のファイル入出力情報の抽出を行うために、バッファ用のメモリを多く確保する必要がない。また、情報抽出装置10は、頻繁にプロセスリストを取得する必要もないので、CPUの負荷も低減することができる。
【0021】
(構成)
次に図2を用いて、情報抽出装置10の構成を説明する。図2は、第1の実施形態の情報抽出装置の機能構成を示すブロック図である。
【0022】
図2に示すように、情報抽出装置10は、入出力部11、制御部12、記憶部13を備える。
【0023】
入出力部11は、コンピュータ20等の外部装置から、各種情報の入力を受け付けたり、制御部12から出力される情報を外部装置へ出力したりするインタフェースである。ここでは入出力部11は、主に、コンピュータ20からファイル入出力情報を取得したり、プロセスリストを取得したりする。この入出力部11は、ネットワーク経由で外部装置とのデータ通信を行うための通信インタフェースを備え、ネットワーク経由でコンピュータ20とのデータ入出力を行うようにしてもよい。
【0024】
制御部12は、情報抽出装置10全体の制御を司り、ここでは主に、コンピュータ20から取得したファイル入出力情報のうち、監視対象のプロセスによるファイル入出力情報を抽出する。この制御部12は、リスト取得部121、監視対象受付部122、抽出部123、ファイル入出力情報取得部124、フィルタ処理部125を備える。この制御部12は、情報抽出装置10の備えるCPU(Central Processing Unit)によるプログラム実行処理や、専用のハードウェアにより実現される。
【0025】
リスト取得部121は、所定のタイミングで、入出力部11経由でコンピュータ20のOS222からプロセスリストを取得する。例えば、リスト取得部121は、所定期間(例えば、200ms)ごとに、コンピュータ20のOS222からプロセスリストを取得する。
【0026】
また、このリスト取得部121は、プロセスリスト取得直前の時刻をプロセスリスト取得時刻として記憶部13に格納する。このプロセスリスト取得時刻は、フィルタ処理部125において、バッファ131に蓄積されたファイル入出力情報のうち、除外PIDリスト103を用いたフィルタ処理の対象となるファイル入出力情報を抽出する際に参照される。なお、プロセスリスト取得時刻をプロセスリスト取得直前の時刻としたのは、プロセスリストの取得には所定時間がかかり、その間にコンピュータ20に新たなプロセスが生成される可能性があるからである。つまり、プロセスリスト取得時刻を「プロセスリスト取得直前」とすることで、除外PIDリスト103によるフィルタ漏れを低減することができる。
【0027】
監視対象受付部122は、入出力部11経由で監視対象プロセスの情報(例えば、監視対象プロセス名)の入力を受け付ける。監視対象受付部122は、受け付けた監視対象プロセスの情報を記憶部13に格納する。
【0028】
抽出部123は、監視対象プロセスの情報から、この監視対象プロセスのpidを特定する。ここでのpidの特定は、例えば、記憶部13に格納される各監視対象プロセスのpidを示した情報(図示省略)の参照等により行われる。そして、抽出部123は、リスト取得部121によりプロセスリストが取得されるたび、このプロセスリストに示されるpidのうち、監視対象プロセス以外のプロセスのpidを抽出し、除外PIDリストを作成する。例えば、除外PIDリスト103を作成する。抽出部123は、作成した除外PIDリスト103を、記憶部13に格納する。なお、抽出部123は、最新の除外PIDリスト103を作成したとき、除外PIDリスト103よりも前に作成した除外PIDリストについては、記憶部13から削除するようにしてもよい。
【0029】
ファイル入出力情報取得部124は、コンピュータ20のプロセス(例えば、プロセスA,B)による記憶部23内のファイルに対する操作を監視し、ファイル入出力情報を取得する。
【0030】
フィルタ処理部125は、除外PIDリスト103を用いて、入力されたファイル入出力情報のうち、除外PIDリスト103に示されるpid以外のpidのファイル入出力情報を抽出する。具体的には、フィルタ処理部125は、まず、ファイル入出力情報取得部124によりファイル入出力情報が取得されたタイミングで、除外PIDリスト103に示されるpid以外のpidのファイル入出力情報を抽出する。つまり、フィルタ処理部125は、コンピュータ20からファイル入出力情報が取得されたタイミングで、除外PIDリスト103を用いて1回目のフィルタ処理を行う。
【0031】
その後、フィルタ処理部125は、除外PIDリスト103でフィルタ処理を行ったファイル入出力情報をバッファ131に蓄積する。そして、フィルタ処理部125はバッファ131に蓄積されたファイル入出力情報のうち、プロセスリスト取得時刻に示される時刻以前のファイル入出力情報に対し、除外PIDリスト103によるフィルタ処理を行う。つまり、フィルタ処理部125は、除外PIDリスト103によるフィルタ処理を行う際、除外PIDリスト103のもととなったプロセスリストが生成された時刻よりも前のファイル入出力情報に対し、2回目のフィルタ処理を行う。そして、フィルタ処理部125は、この除外PIDリスト103による2回目のフィルタ処理の結果であるファイル入出力情報を出力する。このようにしてフィルタ処理部125は、監視対象プロセスに関するファイル入出力情報を抽出する。
【0032】
記憶部13は、抽出部123により作成された除外PIDリスト103、リスト取得部121により取得されたプロセスリスト、監視対象受付部122により入力された監視対象プロセスの情報(監視対象プロセス名)、プロセスリスト取得時刻を記憶する。また、記憶部13は、所定領域に、除外PIDリスト103によりフィルタ処理されたファイル入出力情報を一時的に記憶する領域(バッファ131)を備える。この記憶部13は、半導体メモリや、ハードディスク装置等の記憶媒体により実現される。
【0033】
(処理手順)
次に、図3を用いて、情報抽出装置10の処理手順を説明する。図3は、図2のコンピュータにおいてファイル入出力が発生したときに、情報抽出装置で行われる処理を示すフローチャートである。
【0034】
まず、情報抽出装置10のファイル入出力情報取得部124は、コンピュータ20を監視し、各プロセスがファイル入出力を実行したタイミングでファイル入出力情報を読み込む(S21)。
【0035】
そして、フィルタ処理部125は、S21で読み込んだファイル入出力情報に対し、まず、保存1に保存された除外PIDリスト103でフィルタ処理を行い(S22)、当該ファイル入出力情報が除外対象ではないと判断された場合(S23でNo)、当該ファイル入出力情報をバッファ131に書き込む(S24)。一方、当該ファイル入出力情報が除外対象であると判断された場合(S23でYes)、フィルタ処理部125は、ファイル入出力情報をバッファ131に書き込まず、処理を終了する。
【0036】
次に、図4を用いて、情報抽出装置10において所定時間ごと(例えば、200msごと)のタイマー起動により行われる処理を説明する。図4は、図2の情報抽出装置において所定時間ごとのタイマー起動により行われる処理を示すフローチャートである。
【0037】
まず、情報抽出装置10のリスト取得部121は、タイマーにより所定時刻を迎えると、プロセスリスト取得時刻を記憶部13に保存する(S31)。そして、リスト取得部121は、コンピュータ20のOS222からプロセスリストを取得する(S32)。次に、抽出部123は、プロセスリストに示されるプロセスの中から、監視対象プロセス以外のプロセスのpidを示したリスト(除外PIDリスト103)を抽出する(S33)。そして、抽出部123は、抽出した除外PIDリスト103を保存1に保存する(S34)。つまり、抽出部123は、抽出した除外PIDリスト103を記憶部13の保存1用の領域に格納する。
【0038】
次に、フィルタ処理部125は、バッファ131にプロセスリスト取得時刻以前のファイル入出力情報があれば(S35でYes)、当該ファイル入出力情報をバッファ131から読み込む(S36)。そして、フィルタ処理部125は、読み込んだファイル入出力情報に対し、保存1に保存されている除外PIDリスト103でフィルタ処理を行い(S37)、当該ファイル入出力情報が除外対象でなければ(S38でNo)、当該ファイル入出力情報を出力する(S39)。そして、S35へ戻る。一方、S37のフィルタ処理の結果、当該ファイル入出力情報が除外対象であった場合も(S38でYes)、S35へ戻る。バッファ131にプロセスリスト取得時刻以前のファイル入出力情報が無ければ(S35でNo)、タイマー処理を終える。
【0039】
情報抽出装置10は、上記のタイマー処理を繰り返すことで、最新のプロセスリストから除外PIDリストを抽出し、この除外PIDリストによるフィルタ処理を行う。なお、このタイマー処理は、タイマーのスタートにより初期化が行われ、タイマーの停止により終了する。
【0040】
このように、情報抽出装置10は、最新だと保証出来るタイミングで除外PIDリスト103を用いてファイル入出力情報のフィルタ処理を行う前に、ファイル入出力が実行されたタイミングで一度除外PIDリスト103を用いてフィルタ処理を行う。よって、情報抽出装置10が監視対象のファイル入出力情報の抽出を行うために、バッファ用のメモリを多く確保する必要がない。また、情報抽出装置10は、頻繁にプロセスリストを取得する必要もないので、CPUの負荷も低減することができる。
【0041】
また、情報抽出装置10は、ファイル入出力情報のフィルタ処理に「除外PIDリスト」を用いる。よって、情報抽出装置10においてファイル入出力情報に対するフィルタ処理の適用が遅れた場合でも、出力されるファイル入出力情報には余分な情報(監視対象外のプロセスに関するファイル入出力情報)が含まれるだけで、監視対象のプロセスに関するファイル入出力情報の抽出漏れが発生することはない。
【0042】
(第2の実施形態)
第2の実施形態の情報抽出装置10aは、バッファ131に蓄積されたファイル入出力情報を取得してから、除外PIDリスト103を最新のものに更新し、その更新された除外PIDリスト103でフィルタ処理を行う。
【0043】
(構成)
図5は、第2の実施形態の情報抽出装置の機能構成を示すブロック図である。前記した実施形態と同じ構成は、同じ符号を付して説明を省略する。図5に示すように、情報抽出装置10aの制御部12は、判定部126をさらに備える。
【0044】
この判定部126は、バッファ131に蓄積されたファイル入出力情報に、プロセスリストに示されるプロセス以外のプロセスに関するファイル入出力情報が含まれているか否かを判定する。
【0045】
そして、判定部126が、当該ファイル入出力情報に、プロセスリストに示されるプロセス以外のプロセスに関するファイル入出力情報が含まれていると判定したとき、リスト取得部121は、コンピュータ20から、最新のプロセスリストを取得し、抽出部123は、当該取得した最新のプロセスリストから、監視対象のプロセス以外のプロセスの識別情報を抽出した除外PIDリスト103を作成し、保存1に保存する。つまり、抽出部123は除外PIDリスト103を最新のものに更新する。そして、フィルタ処理部125は、この除外PIDリスト103を用いてフィルタ処理を行う。
【0046】
(処理手順)
次に、情報抽出装置10aの処理手順を説明する。なお、情報抽出装置10aが、コンピュータ20からファイル入出力情報を読み込む(取得する)処理は第1の実施形態と同様であるので説明を省略し、ここでは、情報抽出装置10aが、バッファ131からファイル入出力情報を読み込み、フィルタ処理を行う手順を説明する。
【0047】
図6は、図5の情報抽出装置によるフィルタ処理の処理手順を示すフローチャートである。このフィルタ処理は終了フラグにONが設定されたとき(つまり、S44でYes)、処理を終了するが、終了フラグがONではないとき(つまり、S44でNo)である限り継続される。終了フラグは一連の処理を終了させるための手段として用いているが、割り込み処理による強制終了などこの他の手段による終了であってもかまわない。
【0048】
情報抽出装置10aは、まず、記憶部13におけるプロセスリスト、除外PIDリスト103をクリアする。そして、フィルタ処理部125、先ずバッファ131にファイル入出力情報があるか否かを確認する(S43)。ここで、バッファ131にファイル入出力情報がなければ(S43でNo)、終了フラグを判定し(S44)、ONになっていなければ(S44でNo)、S43へ戻り、バッファ131にファイル入出力情報が書き込まれるタイミングを待つ。一方、S43においてバッファ131にファイル入出力情報があれば(S43でYes)、フィルタ処理部125は、ファイル入出力情報をバッファ131から読み込み(S45)、抽出部123は、保存1の除外PIDリスト103の更新処理を行う(S46)。この除外PIDリスト103の更新処理の詳細は後記する。なお、S44で終了フラグがONであれば(S44のYes)、処理を終了する。
【0049】
S46の後、フィルタ処理部125は、S45で読み込んだファイル入出力情報に対し、保存1に保存されている除外PIDリスト103でフィルタ処理を行い(S47)、この読み込んだファイル入出力情報が除外対象でなければ(S48でNo)、このファイル入出力情報を出力する(S49)。そして、S43へ戻る。また、フィルタ処理部125は、S45で読み込んだファイル入出力情報が除外対象だった場合も(S48でYes)、S43へ戻る。
【0050】
次に、図7を用いて、図6のS46における保存1の除外PIDリスト103の更新処理を詳細に説明する。図7は、図6のS46における保存1の除外PIDリストの更新処理を示すフローチャートである。
【0051】
情報抽出装置10aの判定部126は、バッファ131から読み込んだファイル入出力情報に含まれるpidが、プロセスリストに含まれるか否かを判定し(S461)、バッファ131から読み込んだファイル入出力情報に含まれるpidが、プロセスリストに含まれないと判定された場合(S461でNo)、リスト取得部121はコンピュータ20から最新のプロセスリストを取得し(S462)、このプロセスリストを記憶部13に保存する(S463)。そして、抽出部123は、取得された最新のプロセスリストから、除外PIDリスト103を抽出し(S464)、この除外PIDリスト103を保存1に保存する(S465)。そして、除外PIDリスト103の更新処理を終了する。一方、判定部126において、バッファ131から読み込んだファイル入出力情報に含まれるpidが、プロセスリストに含まれると判定された場合(S461でYes)、保存1の除外PIDリスト103の更新処理を終了する。
【0052】
このように、情報抽出装置10aは、バッファ131にファイル入出力情報の書き込みを検出したタイミングで、先ずファイル入出力情報をバッファ131から読み込み、保存1の除外PIDリスト103の更新が必要であれば更新を行い、フィルタ処理を行う。つまり、情報抽出装置10aは、除外PIDリスト103の更新が必要になった段階で、プロセスリストを取得し、除外PIDリスト103の更新を行うので、必要以上にプロセスリストの取得を行う必要がなくなる。なお、図6に示したバッファ131からのファイル入出力情報の取得(読み込み)は、情報抽出装置10aのCPUの負荷低減のため、例えば、Sleep()等の命令により所定時間CPUを解放しつつ待機したり、情報抽出装置10aのOS(図示省略)が提供するバッファ131のイベント待ち機能等を用いたりしてもよい。
【0053】
(第3の実施形態)
第3の実施形態の情報抽出装置10bは、第2の実施形態の情報抽出装置10aとほぼ同様の処理を行うが、抽出部123により抽出された除外PIDリストを蓄積する除外PIDリスト用バッファ132を備える点が異なる。そして、情報抽出装置10bは、コンピュータ20から読み込んだファイル入出力情報のフィルタ処理を行う際には、この除外PIDリスト用バッファ132に蓄積された除外PIDリスト(除外PIDリスト102)を用いてフィルタ処理を行い、フィルタ処理後のファイル入出力情報をバッファ131に蓄積した後、保存1の除外PIDリスト103を用いたフィルタ処理を行う。なお、以下の説明において情報抽出装置10bの記憶部13における、除外PIDリスト102(除外PIDリスト用バッファ132から取得された除外PIDリスト)を保存するための領域を保存2とする。
【0054】
図8は、第3の実施形態の情報抽出装置の動作概要を示す図である。図8に示すように、情報抽出装置10bは、第1の実施形態および第2の実施形態と同様に、コンピュータ20においてファイル入出力が実行されたタイミングで、ファイル入出力情報を読み込む(S1)。その後、情報抽出装置10bは、除外PIDリスト用バッファ132から、除外PIDリストを取得して、この取得した除外PIDリストで保存2の除外PIDリスト102の更新を行う(S11)。その後、情報抽出装置10bは、保存2の除外PIDリスト102でフィルタ処理を行う(S12)。
【0055】
また、情報抽出装置10bは、バッファ131に蓄積されたファイル入出力情報にプロセスリストにないpidを発見すると、コンピュータ20から新たなプロセスリストを取得し(S13:リスト取得)、除外PIDリスト103の抽出を行う(S14)。そして、情報抽出装置10bは、この除外PIDリスト103を除外PIDリスト用バッファ132に書き込む(S15)。また、情報抽出装置10bは、バッファ131から取得したファイル入出力情報に対し除外PIDリスト103を用いてフィルタ処理を行う(S16)。
【0056】
(構成)
図9は、第3の実施形態の情報抽出装置の機能構成を示すブロック図である。前記した実施形態と同じ構成は、同じ符号を付して説明を省略する。
【0057】
図9に示すように、情報抽出装置10bの記憶部13は所定領域に、除外PIDリスト102および除外PIDリスト103を記憶し、除外PIDリストを蓄積する除外PIDリスト用バッファ132を備える。さらに、制御部12は、除外PIDリスト更新部127を備える。
【0058】
除外PIDリスト用バッファ132は、抽出部123により作成された除外PIDリストを蓄積するバッファである。
【0059】
除外PIDリスト更新部127は、ファイル入出力情報取得部124により、コンピュータ20からファイル入出力情報が読み込まれると、このファイル入出力情報のフィルタ処理に用いる除外PIDリスト102の更新を行う。具体的には、除外PIDリスト更新部127は、ファイル入出力情報がコンピュータ20から読み込まれると、除外PIDリスト用バッファ132から除外PIDリストを取得し、保存2の除外PIDリスト102を更新する。そして、フィルタ処理部125は、この更新された除外PIDリスト102を用いて、ファイル入出力情報のフィルタ処理を行う。
【0060】
(処理手順)
次に、情報抽出装置10bの処理手順を説明する。図10は、図9のコンピュータにおいてファイル入出力が発生したときに、情報抽出装置で行われる処理を示すフローチャートである。図10に示すように、情報抽出装置10bのファイル入出力情報取得部124が、図3のS21と同様に、コンピュータ20からファイル入出力情報を読み込むと、除外PIDリスト更新部127は、保存2の除外PIDリスト102の更新処理(S25)を行う。保存2の除外PIDリスト102の更新処理の詳細は、図12を用いて後記する。そして、フィルタ処理部125は、S21で読み込んだファイル入出力情報に対し、保存2に保存されている除外PIDリスト102を用いてフィルタ処理を行う(S26)。この後の処理は、図3のS23、S24と同様なので説明を省略する。
【0061】
また、情報抽出装置10bは、情報抽出装置10aと同様に、ファイル入出力情報に新たなpidを発見したときは保存1の除外PIDリスト103の更新処理を行う。
【0062】
図11は、図9の情報抽出装置における保存1の除外PIDリストの更新処理の手順を示すフローチャートである。情報抽出装置10bによる保存1の除外PIDリスト103の更新手順は、前記した図7とほぼ同様であるが、図11に示すように、S465で、抽出部123が除外PIDリスト103を保存1に保存した後、この除外PIDリスト103を除外PIDリスト用バッファ132に書き込む(S466)点が異なる。
【0063】
図12を用いて、図10のS25における保存2の除外PIDリスト102の更新処理を詳細に説明する。図12は、図10のS25の保存2の除外PIDリストの更新処理を示すフローチャートである。
【0064】
図10のS21において、コンピュータ20からファイル入出力情報が読み込まれると、除外PIDリスト更新部127は、除外PIDリスト用バッファ132に書き込みがあるか否かを判断する(S251)。ここで、除外PIDリスト用バッファ132に書き込みがあるとき(S251でYes)、除外PIDリスト更新部127は、この除外PIDリスト用バッファ132から除外PIDリストを取り出し(S252)、この除外PIDリストを除外PIDリスト103として保存2に保存する(S253)。そして、保存2の除外PIDリストの更新処理を終了する。なお、除外PIDリスト用バッファ132に書き込みがなければ(S251でNo)、保存2の除外PIDリストの更新処理を終了する。
【0065】
このように情報抽出装置10bが、コンピュータ20から読み込んだファイル入出力情報に対し、保存2の除外PIDリスト102によるフィルタ処理を行うことで、保存1に保存予定の除外PIDリスト103を準備中の段階であってもフィルタ処理を行うことができる。
【0066】
また、このように情報抽出装置10bが除外PIDリスト用バッファ132を設けることで、例えば、コンピュータ20から読み込んだファイル入出力情報のフィルタ処理をコンピュータ20のデバイスドライバ側で実行し、その後のフィルタ処理をユーザプロセスで行うような場合に、デバイスドライバ側への除外PIDリストの受け渡しをスムーズに行うことができる。この場合、ユーザプロセスにおいて作成された除外PIDリストを一時的に蓄積するバッファを設け、コンピュータ20のデバイスドライバ側は、このバッファに蓄積された過去の除外PIDリストを取り出し、フィルタ処理を行うようにしてもよい。
【0067】
(その他の実施形態)
なお、前記した実施形態において、情報抽出装置10,10a,10bの除外PIDリストには、監視対象外のプロセスのpid以外にも監視対象外のファイルのIDや、ファイル名、ファイル名に含まれるキーワード等を含み、フィルタ処理部125は、この除外PIDリストを用いてファイル入出力情報のフィルタ処理を行ってもよい。
【0068】
このようにすることで、情報抽出装置10,10a,10bは監視対象外のファイルのファイル名やキーワードの条件も用いてファイル入出力情報のフィルタ処理を行うことができる。
【0069】
(プログラム)
前記した情報抽出装置10,10a,10bが実行する処理をコンピュータが実行可能な言語で記述した情報抽出プログラムで実現することもできる。この場合、コンピュータが情報抽出プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる情報抽出プログラムをコンピュータで読み取り可能な記録媒体に記録して、この記録媒体に記録された情報抽出プログラムをコンピュータに読み込ませて実行することにより前記した実施形態と同様の処理を実現してもよい。以下に、情報抽出装置10と同様の機能を実現する情報抽出プログラムを実行するコンピュータの一例を説明する。
【0070】
図13は、情報抽出プログラムを実行するコンピュータを示す図である。図13に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
【0071】
メモリ1010は、図13に例示するように、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図13に例示するように、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、図13に例示するように、ディスクドライブ1041に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1041に挿入される。シリアルポートインタフェース1050は、図13に例示するように、例えばマウス1051、キーボード1052に接続される。ビデオアダプタ1060は、図13に例示するように、例えばディスプレイ1061に接続される。
【0072】
ここで、図13に例示するように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の情報抽出プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1031に記憶される。
【0073】
また、上記実施の形態で説明した各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1031に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、前記した情報抽出装置10の制御部12の機能を実現する。
【0074】
なお、情報抽出プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【符号の説明】
【0075】
10 情報抽出装置
11 入出力部
12、22 制御部
13、23 記憶部
20 コンピュータ
102、103 除外PIDリスト
121 リスト取得部
122 監視対象受付部
123 抽出部
124 ファイル入出力情報取得部
125 フィルタ処理部
126 判定部
127 除外PIDリスト更新部
131 バッファ
132 除外PIDリスト用バッファ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13