(57)【特許請求の範囲】
【請求項１】
端末のプロセスの起動イベントを示すプロセス起動ログと、ファイルの操作イベントを示すファイル操作ログと、を含むログ情報を蓄積するログ蓄積部と、
前記端末上で動作していたプログラムの脆弱性情報に含まれる実行ファイル名を、トレースの起点となる検索条件であるトレースキーとして取得し、前記トレースキーに関連する前記プロセス起動ログまたは前記ファイル操作ログを、トレースログとして抽出し、該トレースログに関連する他のプロセス起動ログ、または、該トレースログに関連する他のファイル操作ログを、トレースログとして抽出し、抽出したトレースログのうち、発生時刻の範囲が、前記脆弱性情報の公開日時から前記脆弱性情報に含まれるパッチ適用日時までの間であるトレースログを出力するログ抽出部と、
を有し、
前記ファイル操作ログは、ファイル操作イベントに伴う入力対象ファイルを特定する情報、および出力対象ファイルを特定する情報を含み、
前記ログ抽出部は、前記トレースログにおけるファイル操作ログの出力対象ファイルと、他のファイル操作ログの入力対象ファイルとが一致する場合に、該トレースログと他のファイル操作ログが関連すると判定し、該他のファイル操作ログをトレースログとして抽出することを特徴とするログ抽出システム。
【請求項２】
前記プロセス起動ログは、プロセス起動イベントに伴う実行ファイルを特定する情報、前記実行ファイルにより実行されるプロセスのＩＤであるプロセスＩＤ、および、前記実行ファイルを実行させるプロセスのＩＤである親プロセスＩＤのうちいずれか一つまたは複数を含み、
前記ファイル操作ログは、ファイル操作イベントに伴う入力対象ファイルを特定する情報、出力対象ファイルを特定する情報、前記入力対象ファイルまたは前記出力対象ファイルに対して行われる操作の種別を示す操作種別を特定する情報、および、前記操作を行うプロセスのＩＤを示すプロセスＩＤのうちいずれか一つまたは複数を含み、
前記ログ抽出部は、前記トレースログにおけるファイル操作ログの対象ファイルと、他のファイル操作ログの対象ファイルとが一致するか、前記トレースログにおけるファイル操作ログの対象ファイルと、他のプロセス起動ログの実行ファイルとが一致するか、前記トレースログにおけるファイル操作ログのプロセスＩＤと、他のプロセス起動ログのプロセスＩＤとが一致するか、または、前記トレースログにおけるプロセス起動ログのプロセスＩＤと、他のプロセス起動ログの親プロセスＩＤが一致する場合に、該トレースログと他のプロセス起動ログまたは他のファイル操作ログが関連すると判定し、該他のファイル操作ログの対象ファイルまたは該他のプロセス起動ログをトレースログとして抽出することを特徴とする請求項１に記載のログ抽出システム。
【請求項３】
前記ログ抽出部は、前記ファイル操作ログ同士が関連付けられたツリー構造を形成している場合に、トレースログに関連し、前記ツリー構造を形成している前記ファイル操作ログをトレースログとして一括で抽出することを特徴とする請求項１または２に記載のログ抽出システム。
【請求項４】
端末のプロセスの起動イベントを示すプロセス起動ログと、ファイルの操作イベントを示すファイル操作ログと、を含むログ情報を蓄積するログ蓄積工程と、
前記端末上で動作していたプログラムの脆弱性情報に含まれる実行ファイル名を、トレースの起点となる検索条件であるトレースキーとして取得し、前記トレースキーに関連する前記プロセス起動ログまたは前記ファイル操作ログを、トレースログとして抽出し、該トレースログに関連する他のプロセス起動ログ、または、該トレースログに関連する他のファイル操作ログを、トレースログとして抽出し、抽出したトレースログのうち、発生時刻の範囲が、前記脆弱性情報の公開日時から前記脆弱性情報に含まれるパッチ適用日時までの間であるトレースログを出力するログ抽出工程と、
を含み、
前記ファイル操作ログは、ファイル操作イベントに伴う入力対象ファイルを特定する情報、および出力対象ファイルを特定する情報を含み、
前記ログ抽出工程は、前記トレースログにおけるファイル操作ログの出力対象ファイルと、他のファイル操作ログの入力対象ファイルとが一致する場合に、該トレースログと他のファイル操作ログが関連すると判定し、該他のファイル操作ログをトレースログとして抽出することを特徴とするログ抽出方法。
【請求項５】
コンピュータを、請求項１から３のいずれか１項に記載のログ抽出システムとして機能させるためのログ抽出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ログ抽出システム、ログ抽出方法およびログ抽出プログラムに関する。
【背景技術】
【０００２】
オフィスで日常的に行われる業務の多くは、コンピュータを用いて、文書作成、表計算作成、電子メール操作、Ｗｅｂブラウジングを行い、電子ファイルを作成したり、編集したりしながら、進められている。このようなコンピュータシステムでは、電子ファイルに対して行った操作をログとして保存し、電子ファイルの利用状況等を把握するためのログ管理システムが利用されている。
【０００３】
従来、ログ管理システムに保存されたログを利用して、コンピュータシステム上で動作した非定常プログラムの動作ログを収集、蓄積し、動作の履歴を指定してトレース（追跡）するフォレンジクス技術が知られている。なお、非定常プログラムとは、業務上不必要だったり、使用が禁止されたりしているプログラムや例えばマルウェアといった業務端末上で日常的でなく動作するプログラムである。
【０００４】
例えば、フォレンジクス技術に関連して、大量のファイル操作のログを可視化し、ファイルに対して行われた操作をトレース可能にする技術が知られている（例えば、非特許文献１または非特許文献２参照）。また、ファイル操作ログのツリーを高速に抽出する方法が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１６１２８８号公報
【非特許文献】
【０００６】
【非特許文献１】中原  慎一、藤木  直人、牛島  重彦、「クラウドトレーサビリティ（CBoC  TRX）」、ＮＴＴ技術ジャーナルVol.23、No.10、2011.
【非特許文献２】元田  敏浩、永吉  剛、秋葉  淳哉、竹内  格、「トレーサビリティ基盤TRX」、ＮＴＴ技術ジャーナルVol.26、No.3、2014.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術においては、ファイル操作のログは蓄積されていたが、プロセスの起動に関する情報が蓄積されていないため、非定常プログラムが実行されたことを確実に把握することができないという問題がある。
【０００８】
例えば、非定常プログラムが確かに実行されたことを曖昧さなく確実に把握するためには、プロセス起動のログを参照する必要がある。しかし、非特許文献１および非特許文献２には、ファイル操作のログを可視化することは記載されているが、プロセスの起動に関する情報についての記載はない。
【０００９】
具体的には、蓄積されるログがファイル操作イベントに関するものに限られている場合、ファイルの生成、削除等については判別できるが、例えば、プロセスＡ自身のファイルＡが生成されたログと、プロセスＡがファイルＢを生成したログと、プロセスＢがファイルＡを削除したログに対して、ファイル名だけではファイルＡとファイルＢを曖昧さなく結びつけることは困難であった。
【課題を解決するための手段】
【００１０】
本発明のログ抽出システムは、端末のプロセスの起動イベントを示すプロセス起動ログと、ファイルの操作イベントを示すファイル操作ログと、を含むログ情報を蓄積するログ蓄積部と、トレースの起点となる検索条件であるトレースキーに関連する前記プロセス起動ログまたは前記ファイル操作ログを、トレースログとして抽出し、該トレースログに関連する他のプロセス起動ログまたは他のファイル操作ログを、トレースログとして抽出するログ抽出部と、を有することを特徴とする。
【００１１】
本発明のログ抽出方法は、端末のプロセスの起動イベントを示すプロセス起動ログと、ファイルの操作イベントを示すファイル操作ログと、を含むログ情報を蓄積するログ蓄積工程と、トレースの起点となる検索条件であるトレースキーに関連する前記プロセス起動ログまたは前記ファイル操作ログを、トレースログとして抽出し、該トレースログに関連する他のプロセス起動ログまたは他のファイル操作ログを、トレースログとして抽出するログ抽出工程と、を含んだことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ファイル操作のログだけでなく、プロセスの起動に関する情報も利用し、非定常プログラムが実行されたことを確実に把握する。
【図面の簡単な説明】
【００１３】
【図１】図１は、第１の実施形態に係るログ抽出システムの構成の一例を示す図である。
【図２−１】図２−１は、第１の実施形態に係るログ抽出システムにおけるファイル操作ログの一例を示す図である。
【図２−２】図２−２は、第１の実施形態に係るログ抽出システムにおけるファイル操作ログの項目の一例を示す図である。
【図３−１】図３−１は、第１の実施形態に係るログ抽出システムにおけるプロセス起動ログの一例を示す図である。
【図３−２】図３−２は、第１の実施形態に係るログ抽出システムにおけるプロセス起動ログの項目の一例を示す図である。
【図４−１】図４−１は、第１の実施形態に係るログ抽出システムにおけるファイル操作イベントを示す図である。
【図４−２】図４−２は、第１の実施形態に係るログ抽出システムにおけるプロセス起動イベントを示す図である。
【図５−１】図５−１は、第１の実施形態に係るログ抽出システムにおけるイベントの連結パターンの一例を示す図である。
【図５−２】図５−２は、第１の実施形態に係るログ抽出システムにおけるイベントの連結パターンの一例を示す図である。
【図５−３】図５−３は、第１の実施形態に係るログ抽出システムにおけるイベントの連結パターンの一例を示す図である。
【図５−４】図５−４は、第１の実施形態に係るログ抽出システムにおけるイベントの連結パターンの一例を示す図である。
【図６】図６は、第１の実施形態に係るログ抽出システムの処理の一例を示す図である。
【図７】図７は、マルウェアの動作シーケンスの一例を示す図である。
【図８】図８は、第１の実施形態に係るログ抽出システムにおけるログの連なりの一例を示す図である。
【図９】図９は、第１の実施形態に係るログ抽出システムにおけるログの検索結果の出力例を示す図である。
【図１０】図１０は、第２の実施形態に係るログ抽出システムの処理の一例を示す図である。
【図１１】図１１は、第２の実施形態に係るログ抽出システムのトレースログの一例を示す図である。
【図１２】図１２は、第２の実施形態に係るログ抽出システムのトレースログの一例を示す図である。
【図１３】図１３は、第３の実施形態に係るログ抽出システムの処理の一例を示す図である。
【図１４】図１４は、第３の実施形態に係るログ抽出システムの処理の一例を示す図である。
【図１５】図１５は、第３の実施形態に係るログ抽出システムにおけるファイル操作ログの一例を示す図である。
【図１６】図１６は、プログラムが実行されることにより、ログ抽出システムまたはログ管理装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１４】
以下に、本願に係るログ抽出システム、ログ抽出方法およびログ抽出プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係るログ抽出システム、ログ抽出方法およびログ抽出プログラムが限定されるものではない。
【００１５】
［第１の実施形態の構成］
まず、図１を用いて、ログ抽出システムの構成について説明する。図１は、第１の実施形態に係るログ抽出システムの構成の一例を示す図である。図１に示すように、ログ抽出システム１は、端末１０、ログ管理装置２０および管理端末３０を有する。
【００１６】
端末１０はエージェントソフトウェア１１を備え、ログをログ管理装置２０へ転送する。そして、ログ管理装置２０は、受信部２１、ログ抽出部２２、ログ蓄積部２３を有する。また、ログ蓄積部２３には、ファイルの操作イベントを示すファイル操作ログを蓄積するファイル操作ログ蓄積部２３１および端末のプロセスの起動イベントを示すプロセス起動ログを蓄積するプロセス起動ログ蓄積部２３２が含まれる。また、管理端末３０は、トレースキー設定部３２、クエリ送信部３１および表示部３３を有する。
【００１７】
端末１０、ログ管理装置２０および管理端末３０はネットワークに接続され相互に通信可能になっているものとする。また、端末１０には、ログを生成し蓄積する機能およびログをログ管理装置２０に送信する機能を有するエージェントソフトウェア１１がインストールされている。なお、エージェントソフトウェア１１が生成し送信するログには、ファイル操作ログおよびプロセス起動ログが含まれている。また、端末１０はネットワーク上に複数台あっても良く、ネットワークは例えば会社内で使用するＬＡＮ（Local  Area  Network）であってもよい。また、ネットワークは、ロケーションが分かれていても論理的にＬＡＮを構成するものであってもよいし、インターネットに直接接続されていてもよい。
【００１８】
ログ管理装置２０の受信部２１は端末１０からログを受信し、受信したログをログ蓄積部２３のファイル操作ログ蓄積部２３１およびプロセス起動ログ蓄積部２３２に登録し蓄積する。また、ログ抽出部２２は、管理端末３０のトレースキー設定部３２で設定されたトレースキーを、クエリ送信部３１を介して受け取る。そして、ログ抽出部２２は、トレースキーを用いてログ蓄積部２３に蓄積されているログを検索しトレースログとして抽出する。
【００１９】
この時、ログ抽出部２２は、単にトレースキーを検索条件としてログを検索し抽出するだけでなく、トレースの起点となる検索条件であるトレースキーに関連するプロセス起動ログまたはファイル操作ログを、トレースログとして抽出し、該トレースログに関連するプロセス起動ログまたはファイル操作ログを、トレースログとして抽出する。これにより、ログ抽出部２２は、トレースキーに直接および間接的に関連するログを検索する。そして、ログ抽出部２２は、検索したトレースログの集合を管理端末３０に送信する。なお、図１のログ抽出部２２およびログ蓄積部２３が本発明の最小構成である。
【００２０】
また、プロセス起動ログは、プロセス起動イベントに伴う実行ファイルを特定する情報、実行ファイルにより実行されるプロセスのＩＤであるプロセスＩＤ、および、実行ファイルを実行させるプロセスのＩＤである親プロセスＩＤのうちいずれか一つまたは複数を含み、ファイル操作ログは、ファイル操作イベントに伴う入力対象ファイルを特定する情報、出力対象ファイルを特定する情報、入力対象ファイルまたは出力対象ファイルに対して行われる操作の種別を示す操作種別を特定する情報、および、操作を行うプロセスのＩＤを示すプロセスＩＤのうちいずれか一つまたは複数を含み、ログ抽出部２２は、トレースログにおけるファイル操作ログの対象ファイルと、他のファイル操作ログの対象ファイルとが一致するか、トレースログにおけるファイル操作ログの対象ファイルと、他のプロセス起動ログの実行ファイルとが一致するか、トレースログにおけるファイル操作ログのプロセスＩＤと、他のプロセス起動ログのプロセスＩＤとが一致するか、または、トレースログにおけるプロセス起動ログのプロセスＩＤと、他のプロセス起動ログの親プロセスＩＤが一致する場合に、該トレースログと他のプロセス起動ログまたは他のファイル操作ログが関連すると判定し、該他のファイル操作ログの対象ファイルまたは該他のプロセス起動ログをトレースログとして抽出してもよい。
【００２１】
管理端末３０のクエリ送信部３１は、ログ管理装置２０のログ蓄積部２３を検索するためのクエリをログ抽出部２２へ送信する。なお、クエリ送信部３１は、トレースキー設定部３２で設定されたトレースキーをクエリに含めてもよい。また、表示部３３は、ログ管理装置２０のログ抽出部２２から受信したトレースログの集合を画面等に表示する。
【００２２】
図２−１および図２−２を用いて、ファイル操作ログについて説明する。図２−１は、第１の実施形態に係るログ抽出システムにおけるファイル操作ログの一例を示す図である。また、図２−２は、第１の実施形態に係るログ抽出システムにおけるファイル操作ログの項目の一例を示す図である。なお、インシデントの発生とは、ファイル操作イベントおよびプロセス起動イベントの発生を表している。
【００２３】
図２−２に示すように、「発生時刻」はインシデントが発生した時刻、「ドメイン名」はドメイン名またはコンピュータ名、「ユーザ名」はファイル操作を行ったユーザ名、「プロセス名」はファイル操作を行ったプロセスのプロセス名、「プロセスＩＤ」はファイル操作を行ったプロセスのプロセスＩＤ、「操作種別」は更新内容を表す文字列であり、
”Read”、”Create”、”Modify”、”Rename”、”SaveAs”、”Move”、”Copy”、”Delete”、”ToRecycler”、”FromRecycler”が含まれる。「操作元ファイル名」は操作対象になったファイルの名前、「操作元ファイルパス」は操作対象になったファイルフルパス、「操作元ファイルサイズ」は操作対象になったファイルサイズ、「操作先ファイル名」は新ファイルの名前、「操作先ファイルパス」は新ファイルのフルパス、「操作先ファイルサイズ」は新ファイルのファイルサイズを示している。なお、「操作種別」は、具体的には、入力対象ファイルまたは前記出力対象ファイルに対して行われる操作の種別を示すものである。
【００２４】
図２−１に示すファイル操作ログの例においては、発生時刻が「2011/12/12  12:15:23.223」、ドメイン名が「PC_01」、ユーザ名が「User_A」、プロセス名が「notepad.exe」、プロセスＩＤが「2353」、操作種別が「Create」、操作元ファイル名が「議事録.txt」、操作元ファイルパスが「C:\My  Documents\議事録.txt」、操作元ファイルサイズが「11KByte」である。また、操作先ファイル名、操作先ファイルパス、操作先ファイルサイズの情報は含まれない。ファイル操作ログには、元ファイルまたは先ファイルのうちのいずれか一方の情報が含まれていればよい。例えば、ファイルの削除が行われた場合は、操作先のファイルは存在しないことになる。また、ファイルの名称変更が行われた場合は、操作先ファイルとして、操作元ファイルとファイル名の異なるファイルが存在することになる。
【００２５】
図３−１および図３−２を用いて、プロセス起動ログについて説明する。図３−１は、第１の実施形態に係るログ抽出システムにおけるプロセス起動ログの一例を示す図である。また、図３−２は、第１の実施形態に係るログ抽出システムにおけるプロセス起動ログの項目の一例を示す図である。
【００２６】
図３−２に示すように、「発生時刻」はインシデントが発生した時刻、「ドメイン名」はドメイン名またはコンピュータ名、「ユーザ名」はプロセスを実行したユーザ名、「実行プロセス名」は実行されたプロセスのラベル名、「コマンドライン」はプロセス実行のコマンドライン、「実行ファイルパス」は実行されたプロセスのファイルパス、「プロセスＩＤ」は実行プロセスのプロセスＩＤ、「親プロセスＩＤ」は実行プロセスの親プロセスのプロセスＩＤを示している。また、「プロセスＩＤ」は実行ファイルにより実行されるプロセスのＩＤ、「親プロセスＩＤ」は実行ファイルを実行させるプロセスのＩＤということもできる。
【００２７】
図３−１に示すプロセス起動ログの例においては、発生時刻が「2011/12/12  12:15:23.223」、ドメイン名が「PC_01」、ユーザ名が「User_A」、実行プロセス名が「notepad.exe」、実行ファイルパスが「C:\Windows\System32\notepad.exe」プロセスＩＤが「2353」、親プロセスＩＤが「260」である。図３−１に示すように、例えば、マウスクリックによってプロセスを起動した場合はコマンドラインが含まれない。これに対して、例えば、コマンドラインからプロセスを起動した場合は、「notepad.exe」のようなコマンドラインが含まれる。
【００２８】
図４−１および図４−２を用いて、ファイル操作イベントおよびプロセス起動イベントについて説明する。図４−１は、第１の実施形態に係るログ抽出システムにおけるファイル操作イベントを示す図である。図４−２は、第１の実施形態に係るログ抽出システムにおけるプロセス起動イベントを示す図である。
【００２９】
図４−１は、ファイル操作イベントを模式的に表したものである。図４−１のＳｒｃファイルおよびＤｓｔファイルは、それぞれファイル操作ログの操作元ファイルと操作先ファイルに対応している。また、ファイル操作はファイル操作ログの操作種別に対応し、ＰＩＤはプロセスＩＤに対応している。
【００３０】
図４−２は、プロセス起動イベントを模式的に表したものである。図４−２の親ＰＩＤおよびＰＩＤは、それぞれプロセス起動ログの親プロセスＩＤおよびプロセスＩＤに対応している。また、実行ファイルはプロセスを実行する実行ファイルである。
【００３１】
ログ抽出部２２は、下記の４つの条件のいずれかを満たすログを関連したログとして検索する。
（条件１）ファイル操作ログの対象ファイルと、他のファイル操作ログの対象ファイルとが一致
（条件２）ファイル操作ログの対象ファイルと、他のプロセス起動ログの実行ファイルとが一致
（条件３）ファイル操作ログのプロセスＩＤと、他のプロセス起動ログのプロセスＩＤとが一致
（条件４）プロセス起動ログのプロセスＩＤと、他のプロセス起動ログの親プロセスＩＤとが一致
【００３２】
図５−１〜図５−４を用いて、ログが上記の（１）〜（４）を満たす場合の連結パターンについて説明する。図５−１〜図５−４は、第１の実施形態に係るログ抽出システムにおけるイベントの連結パターンの一例を示す図である。なお、図５−１〜図５−４において、ＰＩＤはプロセスＩＤを示している。
【００３３】
図５−１は、（条件１）、すなわち、ファイル操作ログの対象ファイルと、他のファイル操作ログの対象ファイルとが一致している場合を示している。図５−１に示すように、ファイル操作イベント５１１のＤｓｔファイルとファイル操作イベント５１２のＳｒｃファイルとが一致している。図５−１に示す連結パターンは、例えば、複製した派生ファイルをさらに複製する操作等により発生する。
【００３４】
図５−２は、（条件２）、すなわち、ファイル操作ログの対象ファイルと、他のプロセス起動ログの実行ファイルとが一致している場合を示している。図５−２の（ａ）に示すように、ファイル操作イベント５１２ａのＤｓｔファイルとプロセス起動イベント５２２ａの実行ファイルとが一致している。また、図５−２の（ｂ）に示すように、ファイル操作イベント５２１ｂのＳｒｃファイルとプロセス起動イベント５２２ｂの実行ファイルとが一致している。図５−２の（ａ）に示す連結パターンは、例えば、実行ファイルを複製して起動する操作等により発生する。また、図５−２の（ｂ）に示す連結パターンは、例えば、プロセスを起動後に実行ファイルを削除する操作等により発生する。
【００３５】
図５−３は、（条件３）、すなわち、ファイル操作ログのプロセスＩＤと、他のプロセス起動ログのプロセスＩＤとが一致している場合を示している。図５−３に示すように、ファイル操作イベント５３１のプロセスＩＤとプロセス起動イベント５３２のプロセスＩＤとが一致している。図５−３に示す連結パターンは、例えば、起動したプロセスがファイルを複製した場合等により発生する。
【００３６】
図５−４は、（条件４）、すなわち、プロセス起動ログのプロセスＩＤと、他のプロセス起動ログの親プロセスＩＤとが一致している場合を示している。図５−４に示すように、プロセス起動イベント５４１のプロセスＩＤとプロセス起動イベント５４２のプロセスＩＤとが一致している。図５−４に示す連結パターンは、例えば、親プロセスが子プロセスを起動した場合等に発生する。
【００３７】
［第１の実施形態の処理］
まず、図６を用いて、ログ抽出システム１の処理について説明する。その後、図７〜図９を用いて、ログ抽出システム１が、実際にトレースキーからトレースログが抽出されるまでの流れを具体的な例を挙げて説明する。
【００３８】
図６は、第１の実施形態に係るログ抽出システムの処理の一例を示す図である。まず、管理端末３０は、トレースキー設定部３２で設定されたトレースキーを、クエリ送信部３１を介してログ管理装置２０のログ抽出部２２に入力する（ステップＳ１０１）。
【００３９】
そして、ログ管理装置２０のログ抽出部２２は、トレースキーを用いてログ蓄積部２３のログを検索しトレースログとして抽出する（ステップＳ１０２）。この時検索されるログには、ファイル操作ログおよびプロセス起動ログが含まれる。また、具体的な検索処理については後述する。その後、ログ抽出部２２は、抽出したトレースログの１つを検索用トレースログとして選択し、また、管理端末３０へ出力する（ステップＳ１０３）。
【００４０】
さらに、ログ管理装置２０のログ抽出部２２は、検索用トレースログを用いて、ログ蓄積部２３から所定の条件を満たすファイル操作ログまたはプロセス起動ログを検索し抽出する（ステップＳ１０４）。ここで、所定の条件とは、例えば下記の４つの条件である。
（条件１）ファイル操作ログの対象ファイルと、他のファイル操作ログの対象ファイルとが一致
（条件２）ファイル操作ログの対象ファイルと、他のプロセス起動ログの実行ファイルとが一致
（条件３）ファイル操作ログのプロセスＩＤと、他のプロセス起動ログのプロセスＩＤとが一致
（条件４）プロセス起動ログのプロセスＩＤと、他のプロセス起動ログの親プロセスＩＤとが一致
【００４１】
そして、ログ抽出部２２は、抽出したトレースログのうちこれまで未選択の検索用トレースログを選択し、管理端末３０へ出力する（ステップＳ１０５）。なお、全てのトレースログが選択済の場合は何も選択しない（ステップＳ１０５）。ここで、新たな検索用トレースログが選択された場合（ステップＳ１０６、Ｙｅｓ）は、ログ抽出部２２は、ログ蓄積部２３から所定の条件を満たすファイル操作ログまたはプロセス起動ログを検索し抽出する（ステップＳ１０４）。また、新たな検索用トレースログが選択されなかった場合（ステップＳ１０６、Ｎｏ）は、ログ抽出部２２は、処理を終了する。
【００４２】
次に、ログ抽出システム１の処理について、具体的な例を挙げて説明する。なお、以下の説明におけるログ抽出システム１およびマルウェアが動作するオペレーティングシステムは、Windows（登録商標）であるものとする。図７は、マルウェアの動作シーケンスの一例を示す図である。図７に示すように、まず、マルウェア導入プログラム（mdload.exe）は、ブラウザ（iexplorer.exe）等により、悪意あるＷｅｂサイト等を通じてダウンロードされる。マルウェアは、便利なユーティリティ等に偽装されている場合が多い。ここでは、例として、winword.exeとして偽装されているものとする。
【００４３】
ダウンロード後、マルウェア導入プログラムの保存（１１ａ）が行われ、ユーザによりマルウェア導入プログラムがダブルクリック等で実行される（２１ｂ）。次に、マルウェア導入プログラムは、第１のマルウェア（winword.exe）をダウンロード（２１ｂ）し、保存（１２ａ）し、実行（２２ｂ）する。
【００４４】
そして、実行された第１のマルウェアにより、第２のマルウェアであるblacken2.exeを起動時に実行するようスタートアップ登録（１３ａ）が行われる。その後、Windows再起動時にblacken2.exeが起動してＷｅｂサイトにアクセスし、端末から不正に読み取った情報を送信する（２３ｂ）。最終的にblacken2.exeは、送信情報を読み込み（１４ａ）、自身(blacken2.exe)を削除する（１５ａ）。
【００４５】
図８を用いて、各動作シーケンスのファイル操作ログおよびプロセス起動ログの検索方法について説明する。図８は、第１の実施形態に係るログ抽出システムにおけるログの連なりの一例を示す図である。まず、トレースキーとして実行ファイル「winword.exe」を設定する。なお、ここでは実行ファイル名をトレースキーとしたが、トレースキーはプロセスＩＤやプロセス名であってもよく、また、ログ自体であってもよい。
【００４６】
図８に示すように、トレースキーを実行ファイルパスに含むプロセス起動ログである２２ｂが検索される。そして、２２ｂの実行ファイルパスとファイル操作ログである１２ａの元ファイルパスとが一致している（条件２）。また、ファイル操作ログである１２ａのプロセスＩＤとプロセス起動ログである２１ｂのプロセスＩＤとが一致している（条件３）。また、プロセス起動ログである２１ｂの実行ファイルパスとファイル操作ログである１１ａの元ファイルパスとが一致している（条件３）。また、プロセス起動ログである２１ｂの実行ファイルパスとファイル操作ログである１１ａの元ファイルパスとが一致している（条件２）。
【００４７】
また、プロセス起動ログである２２ｂのプロセスＩＤとファイル操作ログである１３ａのプロセスＩＤとが一致している（条件３）。また、ファイル操作ログである１３ａの元ファイルパスとプロセス起動ログである２３ｂの実行ファイルパスとが一致している（条件２）。また、プロセス起動ログである２３ｂのプロセスＩＤとファイル操作ログである１４ａのプロセスＩＤとが一致している（条件３）。また、プロセス起動ログである２３ｂの実行ファイルパスとファイル操作ログである１５ａの元ファイルパスとが一致している（条件２）。
【００４８】
以上の検索結果を図示すると図９のようになる。図９は、第１の実施形態に係るログ抽出システムにおけるログの検索結果の出力例を示す図である。図９に示すように、１１ａの対象ファイルと２１ｂの実行ファイル、２１ｂのプロセスＩＤと１２ａのプロセスＩＤ、１２ａの対象ファイルと２２ｂの実行ファイル、２２ｂのプロセスＩＤと１３ａのプロセスＩＤ、１３ａの対象ファイルと２３ｂの実行ファイル、２３ｂのプロセスＩＤと１４ａのプロセスＩＤ、２３ｂの実行ファイルと１５ａの対象ファイルがそれぞれ関連付けられている。
【００４９】
また、説明した具体例を、図６のフローチャートに当てはめると、例えば以下のようになる。
（１）実行ファイル「winword.exe」をトレースキーとして入力（ステップＳ１０１）
（２）トレースログを用いてログ蓄積部２３から検索用トレースログとして２２ｂを抽出（ステップＳ１０２）
（３）２２ｂを検索用トレースログとして選択し、管理端末３０へ出力（ステップＳ１０３）
（４）２２ｂを用いてログ蓄積部２３からトレースログとして、１２ａおよび１３ａを抽出（ステップＳ１０４）
（５）１２ａを検索用トレースログとして選択し、管理端末３０へ出力（ステップＳ１０３）
選択済：１２ａ
未選択：１３ａ
（６）１２ａを用いてログ蓄積部２３からトレースログとして、２１ｂを抽出（ステップＳ１０４）
（７）２１ｂを検索用トレースログとして選択（ステップＳ１０５）
選択済：１２ａ、２１ｂ
未選択：１３ａ
（８）検索用トレースログが選択されたので処理を続行（ステップＳ１０６、Ｙｅｓ）
（９）２１ｂを用いてログ蓄積部２３からトレースログとして、１１ａを抽出（ステップＳ１０４）
（１０）１１ａを検索用トレースログとして選択（ステップＳ１０５）
選択済：１２ａ、２１ｂ、１１ａ
未選択：１３ａ
（１１）検索用トレースログが選択されたので処理を続行（ステップＳ１０６、Ｙｅｓ）
（１２）１１ａに関連するログがないので、何も抽出しない（ステップＳ１０４）
（１３）１３ａを検索用トレースログとして選択（ステップＳ１０５）
選択済：１２ａ、２１ｂ、１１ａ、１３ａ
未選択：なし
（１４）検索用トレースログが選択されたので処理を続行（ステップＳ１０６、Ｙｅｓ）
（１５）１３ａを用いてログ蓄積部２３からトレースログとして、２３ｂを抽出（ステップＳ１０４）
（１６）２３ｂを検索用トレースログとして選択（ステップＳ１０５）
選択済：１２ａ、２１ｂ、１１ａ、１３ａ、２３ｂ
未選択：なし
（１７）検索用トレースログが選択されたので処理を続行（ステップＳ１０６、Ｙｅｓ）
（１８）２３ｂを用いてログ蓄積部２３からトレースログとして、１４ａおよび１５ａを抽出（ステップＳ１０４）
（１９）１４ａを検索用トレースログとして選択（ステップＳ１０５）
選択済：１２ａ、２１ｂ、１１ａ、１３ａ、２３ｂ、１４ａ
未選択：１５ａ
（２０）検索用トレースログが選択されたので処理を続行（ステップＳ１０６、Ｙｅｓ）
（２１）１４ａに関連するログがないので、何も抽出しない（ステップＳ１０４）
（２２）１５ａを検索用トレースログとして選択（ステップＳ１０５）
選択済：１２ａ、２１ｂ、１１ａ、１３ａ、２３ｂ、１４ａ、１５ａ
未選択：なし
（２３）検索用トレースログが選択されたので処理を続行（ステップＳ１０６、Ｙｅｓ）
（２４）１５ａに関連するログがないので、何も抽出しない（ステップＳ１０４）
（２５）未選択のログがないためトレースログを選択しない（ステップＳ１０５）
選択済：１２ａ、２１ｂ、１１ａ、１３ａ、２３ｂ、１４ａ、１５ａ
未選択：なし
（２６）検索用トレースログが選択されなかったので処理を終了（ステップＳ１０６、Ｎｏ）
【００５０】
［第１の実施形態の効果］
端末１０のプロセスの起動イベントを示すプロセス起動ログと、ファイルの操作イベントを示すファイル操作ログと、を含むログ情報をログ蓄積部２３に蓄積し、ログ抽出部２２は、トレースの起点となる検索条件であるトレースキーに関連するプロセス起動ログまたはファイル操作ログを、トレースログとして抽出し、該トレースログに関連するプロセス起動ログまたはファイル操作ログを、トレースログとして抽出する。また、プロセス起動ログは、プロセス起動イベントに伴う実行ファイル、プロセスＩＤ、親プロセスＩＤを特定する情報を含み、ファイル操作ログは、ファイル操作イベントに伴う入力対象ファイル、出力対象ファイル、操作種別、プロセスＩＤを特定する情報を含む。そして、ログ抽出部２２は、
（１）一のファイル操作ログの対象ファイルと、他のファイル操作ログの対象ファイルが一致
（２）一のファイル操作ログの対象ファイルと、他のプロセス起動ログの実行ファイルが一致
（３）一のファイル操作ログのプロセスＩＤと、他のプロセス起動ログのプロセスＩＤが一致
（４）一のプロセス起動ログのプロセスＩＤと、他のプロセス起動ログの親プロセスＩＤが一致
のいずれかの条件を満たす場合に、一のファイル操作ログの対象ファイルまたは一のプロセス起動ログと、他のファイル操作ログの対象ファイルまたは他のプロセス起動ログとが関連すると判定する。
【００５１】
これにより、プロセス起動ログとファイル操作ログとを関連付けることが可能となり、非定常プログラムが実行されたことを確実に把握することができる。
【００５２】
［第２の実施形態］
蓄積されたログの検索を行う際に、所定の選択条件を追加することで、トレースログの利用目的に合った出力を得ることができる。第２の実施形態として、例えば、インシデントの発生時刻を選択条件として追加することで、マルウェアによるゼロデイ攻撃の痕跡を検知する場合について説明する。
【００５３】
具体的には、ログ抽出部２２は、端末１０上で動作していたプログラムの脆弱性情報と、脆弱性に対するパッチ適用結果に基づいて脆弱性公開日時、パッチ適用日時およびトレースキーを取得し、発生時刻の範囲が脆弱性公開日時とパッチ適用日時の間であるトレースログを出力する。
【００５４】
［第２の実施形態の構成］
第２の実施形態のログ抽出システム１においては、ログ抽出部２２は関連するログを検索するだけでなく、選択条件として指定された条件によってもログを検索することができる。また、管理端末３０のクエリ送信部３１は、トレースキーだけでなく、例えば、インシデントの発生時刻の範囲を選択条件として設定したクエリを送信する。その他の構成は第１の実施形態と同様である。
【００５５】
［第２の実施形態の処理］
第２の実施形態においては、トレースログのうち選択条件を満たすものを管理端末３０へ出力する。そのため、ログ管理装置２０は、検索用トレースログとして選択されたトレースログが、選択条件を満たしているか否かを判定する。図１０を用いて、第２の実施形態のログ抽出システム１の処理について説明する。図１０は、第２の実施形態に係るログ抽出システムの処理の一例を示す図である。
【００５６】
まず、管理端末３０は、脆弱性情報をログ管理装置２０のログ抽出部２２に入力する（ステップＳ２０１）。そして、脆弱性情報からトレースキー、選択条件１および選択条件２を決定する（ステップＳ２０２）。
【００５７】
そして、ログ管理装置２０のログ抽出部２２は、トレースキーを用いてログ蓄積部２３のログを検索しトレースログとして抽出する（ステップＳ２０３）。この時検索されるログには、ファイル操作ログおよびプロセス起動ログが含まれる。また、具体的な検索処理については第１の実施形態の場合と同様である。その後、ログ抽出部２２は、抽出したトレースログの１つを検索用トレースログとして選択する（ステップＳ２０４）。
【００５８】
ここで、ログ抽出部２２は、検索用トレースログが選択条件１を満たしているか否かを判定する（ステップＳ２０５）。そして、検索用トレースログが選択条件１を満たしている場合（ステップＳ２０５、Ｙｅｓ）は、ログ抽出部２２は、検索用トレースログが選択条件２を満たしているか否かを判定する（ステップＳ２０６）。さらに、検索用トレースログが選択条件２を満たしている場合（ステップＳ２０６、Ｙｅｓ）は、ログ抽出部２２は、検索用トレースログを管理端末３０に出力する（ステップＳ２０７）。
【００５９】
検索用トレースログが選択条件１を満たしていない場合（ステップＳ２０５、Ｎｏ）、または検索用トレースログが選択条件２を満たしていない場合（ステップＳ２０６、Ｎｏ）、検索用トレースログを管理端末３０へ出力することなく次の処理へ進む。
【００６０】
次に、ログ管理装置２０のログ抽出部２２は、検索用トレースログを用いて、ログ蓄積部２３から所定の条件を満たすファイル操作ログまたはプロセス起動ログを検索し抽出する（ステップＳ２０８）。ここで、所定の条件とは、第１の実施形態の場合と同様である。
【００６１】
そして、ログ抽出部２２は、抽出したトレースログのうちこれまで未選択の検索用トレースログを選択し、管理端末３０へ出力する（ステップＳ２０９）。なお、全てのトレースログが選択済の場合は何も選択しない（ステップＳ２０９）。ここで、新たな検索用トレースログが選択された場合（ステップＳ２１０、Ｙｅｓ）は、ログ抽出部２２は、検索用トレースログが選択条件１を満たしているか否かを判定する（ステップＳ２０５）。また、新たな検索用トレースログが選択されなかった場合（ステップＳ２１０、Ｎｏ）は、ログ抽出部２２は、処理を終了する。
【００６２】
ここで、図１１および図１２を用いて、具体的な例を挙げて第２の実施形態の処理について説明する。この場合、ゼロデイ攻撃の痕跡を検知するためにトレースログを出力することを目的とするものとする。まず、選択条件１および選択条件２を下記のように設定する。ここで、t1は、パッチ公開のタイミングを、t2はパッチ当て完了のタイミングを示している。また、「Bash.exe」の起動をトレースキーとする。
（選択条件１）
実行ファイル名が「Bash.exe」、かつ操作種別が「Read」、かつ操作ファイル名が「secret.ini」である。
（選択条件２）
インシデントが発生した期間がt1からt2の間である。
【００６３】
まず、図１１を用いて、ゼロデイ攻撃が陰性の場合の処理について説明する。図１１は、第２の実施形態に係るログ抽出システムのログの一例を示す図である。この場合、下記のような処理が行われる。
（１）入力された脆弱性情報より、「Bash.exe」をトレースキーとして選択し、選択条件１および選択条件２を決定する（ステップＳ２０１、Ｓ２０２）
（２）トレースログを用いてログ蓄積部２３から検索用トレースログとして２２１ｂを抽出（ステップＳ２０３）
（３）２２１ｂを検索用トレースログとして選択（ステップＳ２０９）
選択済：２２１ｂ
未選択：なし
（４）２２１ｂは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ２０５、Ｎｏ）
（５）２２１ｂを用いてログ蓄積部２３からトレースログとして、２１６ａおよび２１１ａを抽出（ステップＳ２０８）
（６）２１１ａを検索用トレースログとして選択（ステップＳ２０９）
選択済：２２１ｂ、２１１ａ
未選択：２１６ａ
（７）検索用トレースログが選択されたので処理を続行（ステップＳ２１０、Ｙｅｓ）
（８）２１１ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ２０５、Ｎｏ）
（９）２１１ａを用いてログ蓄積部２３からトレースログとして、２１２ａおよび２１５ａを抽出（ステップＳ２０８）
（１０）２１２ａを検索用トレースログとして選択（ステップＳ２０９）
（１１）検索用トレースログが選択されたので処理を続行（ステップＳ２１０、Ｙｅｓ）
選択済：２２１ｂ、２１１ａ、２１２ａ
未選択：２１６ａ、２１５ａ
（１２）２１２ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ２０５、Ｎｏ）
（１３）２１２ａを用いてログ蓄積部２３からトレースログとして、２１３ａを抽出（ステップＳ２０８）
（１４）２１３ａを検索用トレースログとして選択（ステップＳ２０９）
（１５）検索用トレースログが選択されたので処理を続行（ステップＳ２１０、Ｙｅｓ）
選択済：２２１ｂ、２１１ａ、２１２ａ、２１３ａ
未選択：２１６ａ、２１５ａ
（１６）２１３ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ２０５、Ｎｏ）
（１７）２１３ａを用いてログ蓄積部２３からトレースログとして、２１４ａを抽出（ステップＳ２０８）
（１８）２１４ａを検索用トレースログとして選択（ステップＳ２０９）
（１９）検索用トレースログが選択されたので処理を続行（ステップＳ２１０、Ｙｅｓ）
選択済：２２１ｂ、２１１ａ、２１２ａ、２１３ａ、２１４ａ
未選択：２１６ａ、２１５ａ
（２０）２１４ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ２０５、Ｎｏ）
（２１）２１４ａに関連するログがないので、何も抽出しない（ステップＳ２０８）
（２２）２１５ａを検索用トレースログとして選択（ステップＳ２０９）
（２３）検索用トレースログが選択されたので処理を続行（ステップＳ２１０、Ｙｅｓ）
選択済：２２１ｂ、２１１ａ、２１２ａ、２１３ａ、２１４ａ、２１５ａ
未選択：２１６ａ
（２４）２１５ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ２０５、Ｎｏ）
（２５）２１４ａに関連するログがないので、何も抽出しない（ステップＳ２０８）
（２６）２１５ａを検索用トレースログとして選択（ステップＳ２０９）
（２７）検索用トレースログが選択されたので処理を続行（ステップＳ２１０、Ｙｅｓ）
選択済：２２１ｂ、２１１ａ、２１２ａ、２１３ａ、２１４ａ、２１５ａ
未選択：２１６ａ
（２８）２１５ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ２０５、Ｎｏ）
（２９）２１４ａに関連するログがないので、何も抽出しない（ステップＳ２０８）
（３０）２１６ａを検索用トレースログとして選択（ステップＳ２０９）
（３１）検索用トレースログが選択されたので処理を続行（ステップＳ２１０、Ｙｅｓ）
選択済：２２１ｂ、２１１ａ、２１２ａ、２１３ａ、２１４ａ、２１５ａ、２１６ａ
未選択：なし
（３２）２１６ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ２０５、Ｎｏ）
（３３）２１６ａを用いてログ蓄積部２３からトレースログとして、２１７ａを抽出（ステップＳ２０８）
（３４）２１７ａを検索用トレースログとして選択（ステップＳ２０９）
（３５）検索用トレースログが選択されたので処理を続行（ステップＳ２１０、Ｙｅｓ）
選択済：２２１ｂ、２１１ａ、２１２ａ、２１３ａ、２１４ａ、２１５ａ、２１６ａ、２１７ａ
未選択：なし
（３６）２１７ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ２０５、Ｎｏ）
（３７）２１７ａを用いてログ蓄積部２３からトレースログとして、２２２ｂを抽出（ステップＳ２０８）
（３８）２２２ｂを検索用トレースログとして選択（ステップＳ２０９）
（３９）検索用トレースログが選択されたので処理を続行（ステップＳ２１０、Ｙｅｓ）
選択済：２２１ｂ、２１１ａ、２１２ａ、２１３ａ、２１４ａ、２１５ａ、２１６ａ、２１７ａ、２２２ｂ
未選択：なし
（４０）２２２ｂは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ２０５、Ｎｏ）
（４１）２２２ｂに関連するログがないので、何も抽出しない（ステップＳ２０８）
（４２）未選択のログがないためトレースログを選択しない（ステップＳ２０９）
（４３）検索用トレースログが選択されなかったので処理を終了（ステップＳ２１０、Ｎｏ）
この場合、管理端末３０に出力されたログ、すなわち選択条件１および選択条件２を満たすログが存在しなかったため、ゼロデイ攻撃は陰性であるといえる。
【００６４】
次に、図１２を用いて、ゼロデイ攻撃が陽性の場合の処理について説明する。図１２は、第２の実施形態に係るログ抽出システムのログの一例を示す図である。この場合、下記のような処理が行われる。
（１）入力された脆弱性情報より、「Bash.exe」をトレースキーとして選択し、選択条件１および選択条件２を決定する（ステップＳ２０１、Ｓ２０２）。
（２）トレースログを用いてログ蓄積部２３から検索用トレースログとして３２１ｂを抽出（ステップＳ２０３）
（３）３２１ｂを検索用トレースログとして選択（ステップＳ２０９）
選択済：３２１ｂ
未選択：なし
（４）３２１ｂは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ２０５、Ｎｏ）
（５）３２１ｂを用いてログ蓄積部２３からトレースログとして、３１６ａおよび３１１ａを抽出（ステップＳ２０８）
（６）３１１ａを検索用トレースログとして選択（ステップＳ２０９）
選択済：３２１ｂ、３１１ａ
未選択：３１６ａ
（７）検索用トレースログが選択されたので処理を続行（ステップＳ２１０、Ｙｅｓ）
（８）３１１ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ２０５、Ｎｏ）
（９）３１１ａを用いてログ蓄積部２３からトレースログとして、３１２ａおよび３１５ａを抽出（ステップＳ２０８）
（１０）３１２ａを検索用トレースログとして選択（ステップＳ２０９）
（１１）検索用トレースログが選択されたので処理を続行（ステップＳ２１０、Ｙｅｓ）
選択済：３２１ｂ、３１１ａ、３１２ａ
未選択：３１６ａ、３１５ａ
（１２）３１２ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ２０５、Ｎｏ）
（１３）３１２ａを用いてログ蓄積部２３からトレースログとして、３１３ａを抽出（ステップＳ２０８）
（１４）３１３ａを検索用トレースログとして選択（ステップＳ２０９）
（１５）検索用トレースログが選択されたので処理を続行（ステップＳ２１０、Ｙｅｓ）
選択済：３２１ｂ、３１１ａ、３１２ａ、３１３ａ
未選択：３１６ａ、３１５ａ
（１６）３１３ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ２０５、Ｎｏ）
（１７）３１３ａを用いてログ蓄積部２３からトレースログとして、３１４ａを抽出（ステップＳ２０８）
（１８）３１４ａを検索用トレースログとして選択（ステップＳ２０９）
（１９）検索用トレースログが選択されたので処理を続行（ステップＳ２１０、Ｙｅｓ）
選択済：３２１ｂ、３１１ａ、３１２ａ、３１３ａ、３１４ａ
未選択：３１６ａ、３１５ａ
（２０）３１４ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ２０５、Ｎｏ）
（２１）３１４ａに関連するログがないので、何も抽出しない（ステップＳ２０８）
（２２）３１５ａを検索用トレースログとして選択（ステップＳ２０９）
（２３）検索用トレースログが選択されたので処理を続行（ステップＳ２１０、Ｙｅｓ）
選択済：３２１ｂ、３１１ａ、３１２ａ、３１３ａ、３１４ａ、３１５ａ
未選択：３１６ａ
（２４）３１５ａは選択条件１および選択条件２を満たしているため、管理端末３０に出力する（ステップＳ２０５、Ｙｅｓ、Ｓ２０６、Ｙｅｓ、Ｓ２０７）
（２５）３１４ａに関連するログがないので、何も抽出しない（ステップＳ２０８）
（２６）３１５ａを検索用トレースログとして選択（ステップＳ２０９）
（２７）検索用トレースログが選択されたので処理を続行（ステップＳ２１０、Ｙｅｓ）
選択済：３２１ｂ、３１１ａ、３１２ａ、３１３ａ、３１４ａ、３１５ａ
未選択：３１６ａ
（２８）３１５ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ２０５、Ｎｏ）
（２９）３１４ａに関連するログがないので、何も抽出しない（ステップＳ２０８）
（３０）３１６ａを検索用トレースログとして選択（ステップＳ２０９）
（３１）検索用トレースログが選択されたので処理を続行（ステップＳ２１０、Ｙｅｓ）
選択済：３２１ｂ、３１１ａ、３１２ａ、３１３ａ、３１４ａ、３１５ａ、３１６ａ
未選択：なし
（３２）３１６ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ２０５、Ｎｏ）
（３３）３１６ａを用いてログ蓄積部２３からトレースログとして、３１７ａを抽出（ステップＳ２０８）
（３４）３１７ａを検索用トレースログとして選択（ステップＳ２０９）
（３５）検索用トレースログが選択されたので処理を続行（ステップＳ２１０、Ｙｅｓ）
選択済：３２１ｂ、３１１ａ、３１２ａ、３１３ａ、３１４ａ、３１５ａ、３１６ａ、３１７ａ
未選択：なし
（３６）３１７ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ２０５、Ｎｏ）
（３７）３１７ａを用いてログ蓄積部２３からトレースログとして、３２２ｂを抽出（ステップＳ２０８）
（３８）３２２ｂを検索用トレースログとして選択（ステップＳ２０９）
（３９）検索用トレースログが選択されたので処理を続行（ステップＳ２１０、Ｙｅｓ）
選択済：３２１ｂ、３１１ａ、３１２ａ、３１３ａ、３１４ａ、３１５ａ、３１６ａ、３１７ａ、３２２ｂ
未選択：なし
（４０）３２２ｂは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ２０５、Ｎｏ）
（４１）３２２ｂに関連するログがないので、何も抽出しない（ステップＳ２０８）
（４２）未選択のログがないためトレースログを選択しない（ステップＳ２０９）
（４３）検索用トレースログが選択されなかったので処理を終了（ステップＳ２１０、Ｎｏ）
この場合、管理端末３０に出力されたログ、すなわち選択条件１および選択条件２を満たすログが存在したため、ゼロデイ攻撃は陽性であるといえる。
【００６５】
［第２の実施形態の効果］
ログ抽出部２２は、端末１０上で動作していたプログラムの脆弱性情報と、脆弱性に対するパッチ適用結果に基づいて脆弱性公開日時、パッチ適用日時およびトレースキーを取得し、発生時刻の範囲が脆弱性公開日時とパッチ適用日時の間であるトレースログを出力する。これにより、ゼロデイ攻撃の痕跡を検知するという目的を達成するために、無駄な処理を行うことなくトレースログの抽出し出力することができる。
【００６６】
［第３の実施形態］
第３の実施形態においては、ログ抽出部２２は、ファイル操作ログ同士が関連付けられたツリー構造を形成している場合に、トレースログに関連し、ツリー構造を形成しているファイル操作ログをトレースログとして一括で抽出する。具体的には、既存の高速なツリー抽出手段（例えば、特許文献１参照）を適用することで、ファイル操作ログの検索を高速に行うことができる。第３の実施形態のログ抽出システムにおいては、高速なツリー抽出手段が適用されている。
【００６７】
［第３の実施形態の構成］
第３の実施形態のログ抽出システム１においては、ログ抽出部２２において高速なツリー抽出手段が用いられる。その他の構成は第２の実施形態と同様である。なお、第３の実施形態の説明においては、プロセス起動ログの検索については説明していないが、高速なツリー抽出手段によってファイル操作ログの予備的な検索を行い、第１の実施形態または第２の実施形態による方法でファイル操作ログおよびプロセス起動ログの両方の検索を行うようにしてもよい。
【００６８】
第３の実施形態においては、前提として以下の処理により、ファイル操作ログにファミリＩＤが付与されているものとする（詳細については、特許文献１の段落００２４〜００４０を参照）。まず、ツリーのノードとなるファイル操作ログを、派生先のみを有する根、派生元および派生先の両方を有する枝、派生元のみを有する葉に分類する。なお、根には任意のＩＤが付されているものとする。次に、根から派生する枝および葉を再帰的に検索し、根と同じＩＤをファミリＩＤとして付与する。
【００６９】
［第３の実施形態の処理］
まず、図１３を用いて、ＤＴＳ（Distributed  Tree  Search）、即ち高速なツリー抽出手段を適用しない場合の処理について説明する。図１３は、第３の実施形態に係るログ抽出システムの処理の一例を示す図である。図１３に示すように、まず、管理端末３０は、トレースキーおよび選択条件１を決定し、ログ抽出部２２に入力する（ステップＳ３０１）。
【００７０】
そして、ログ管理装置２０のログ抽出部２２は、トレースキーを用いてログ蓄積部２３のログの木群を検索し抽出する（ステップＳ３０２）。この時検索される木には、ファイル操作ログが含まれる。そして、ログ抽出部２２は、抽出した木群のうちこれまで未選択の木を選択し、選択した木の１番目のログを検索用ノードとして選択する（ステップＳ３０３）。
【００７１】
ここで、ログ抽出部２２は、検索用ノードが選択条件１を満たしているか否かを判定する（ステップＳ３０４）。そして、検索用ノードが選択条件１を満たしている場合（ステップＳ３０４、Ｙｅｓ）は、ログ抽出部２２は、検索用ノードを管理端末３０に出力する（ステップＳ３０５）。
【００７２】
検索用ノードが選択条件１を満たしていない場合（ステップＳ３０４、Ｎｏ）、検索用トレースログを管理端末３０へ出力することなく次の処理へ進む。
【００７３】
次に、ログ管理装置２０のログ抽出部２２は、検索用ノードを用いて、ログ蓄積部２３から下記の条件を満たすファイル操作ログを検索し抽出する（ステップＳ３０６）。
（条件１）ファイル操作ログの対象ファイルと、他のファイル操作ログの対象ファイルとが一致
【００７４】
そして、抽出したファイル操作ログのうちこれまで未選択のものを検索用ノードとして選択する（ステップＳ３０７）。なお、選択した木に含まれる全てのファイル操作ログが選択済の場合は何も選択しない（ステップＳ３０７）。ここで、新たな検索用ノードが選択された場合（ステップＳ３０８、Ｙｅｓ）は、ログ抽出部２２は、検索用ノードが選択条件１を満たしているか否かを判定する（ステップＳ３０４）。
【００７５】
また、新たな検索用ノードが選択されなかった場合（ステップＳ３０８、Ｎｏ）は、ログ抽出部２２は、未選択の木が存在しているか否かを確認する（ステップＳ３０９）。未選択の木が存在している場合（ステップＳ３０９、Ｙｅｓ）は、ログ抽出部２２は、抽出したトレースログのうちこれまで未選択の木を選択し、選択した木の１番目のログを検索用ノードとして選択する（ステップＳ３０３）。未選択の木が存在しない場合（ステップＳ３０９、Ｎｏ）は、ログ抽出部２２は、処理を終了する。
【００７６】
次に、図１４を用いて、高速なツリー抽出手段を適用した場合の処理について説明する。図１４は、第３の実施形態に係るログ抽出システムの処理の一例を示す図である。図１４に示すように、まず、管理端末３０は、トレースキーおよび選択条件１を決定し、ログ抽出部２２に入力する（ステップＳ３５１）。
【００７７】
そして、ログ管理装置２０のログ抽出部２２は、トレースキーを用いてログ蓄積部２３のログの木群を検索し抽出する（ステップＳ３５２）。この時検索される木には、ファイル操作ログが含まれる。そして、ログ抽出部２２は、抽出した木群のうちこれまで未選択の木を選択し、選択した木のファミリＩＤに該当するノードを抽出する（ステップＳ３５３）。次に、ログ抽出部２２は、抽出したノードのうち、選択条件１を満たすものを管理端末３０に出力する（ステップＳ３５４）。
【００７８】
ログ抽出部２２は、未選択の木が存在しているか否かを確認する（ステップＳ３５５）。ここで、未選択の木が存在している場合（ステップＳ３５５、Ｙｅｓ）は、ログ抽出部２２は、抽出した木群のうちこれまで未選択の木を選択し、選択した木のファミリＩＤに該当するノードを抽出する（ステップＳ３５３）。未選択の木が存在しない場合（ステップＳ３５５、Ｎｏ）は、ログ抽出部２２は、処理を終了する。
【００７９】
ここで、図１５を用いて、具体的な例を挙げて第３の実施形態の処理について説明する。なお、選択条件１を下記のように設定する。
（選択条件１）
トレースキーと実行ユーザが異なる。
また、実際には、図１５に示す木、即ちファイル操作ログの群が１０００件存在しているものとする。さらに、前述の通り、同一の木に含まれるファイル操作ログには同一のファミリＩＤが付されているものとする。まず、図１３に示すフローチャートを当てはめた場合は、以下のような処理が行われる。
【００８０】
（１）トレースキー（share.exe）および選択条件１を決定し入力（ステップＳ３０１）
（２）トレースログを用いてログ蓄積部２３からログの木群を検索し抽出（ステップＳ３０２）
（３）抽出した木群からこれまで未選択の木を選択し、選択した木の１番目のログを検索用ノードとして選択（ステップＳ３０３）
ここでは、トレースキーが１２１ｂ、選択した木が１２１ｂ、１１２ａ、１１３ａ、１１４ａ、１１５ａ、１１６ａ、１１７ａ、１１８ａ、１１９ａおよび１２０ａとなり、検索用ノードが１１２ａがとなる。
選択済：１１２ａ
未選択：なし
（４）１１２ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ３０４、Ｎｏ）
（５）１１２ａを用いてログ蓄積部２３からファイル操作ログとして、１１３ａを抽出（ステップＳ３０６）
（６）１１３ａを検索用ノードとして選択（ステップＳ３０７）
選択済：１１２ａ、１１３ａ
未選択：なし
（７）検索用ノードが選択されたので処理を続行（ステップＳ３０８、Ｙｅｓ）
（８）１１３ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ３０４、Ｎｏ）
（９）１１３ａを用いてログ蓄積部２３からファイル操作ログとして、１１４ａを抽出（ステップＳ３０６）
（１０）１１４ａを検索用ノードとして選択（ステップＳ３０７）
選択済：１１２ａ、１１３ａ、１１４ａ
未選択：なし
（１１）検索用ノードが選択されたので処理を続行（ステップＳ３０８、Ｙｅｓ）
（１２）１１４ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ３０４、Ｎｏ）
（１３）１１４ａを用いてログ蓄積部２３からファイル操作ログとして、１１５ａ、１１７ａ、１１８ａを抽出（ステップＳ３０６）
（１４）１１５ａを検索用ノードとして選択（ステップＳ３０７）
選択済：１１２ａ、１１３ａ、１１４ａ、１１５ａ
未選択：１１７ａ、１１８ａ
（１５）検索用ノードが選択されたので処理を続行（ステップＳ３０８、Ｙｅｓ）
（１６）１１５ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ３０４、Ｎｏ）
（１７）１１５ａを用いてログ蓄積部２３からファイル操作ログとして、１１６ａを抽出（ステップＳ３０６）
（１８）１１６ａを検索用ノードとして選択（ステップＳ３０７）
選択済：１１２ａ、１１３ａ、１１４ａ、１１５ａ、１１６ａ
未選択：１１７ａ、１１８ａ
（１９）検索用ノードが選択されたので処理を続行（ステップＳ３０８、Ｙｅｓ）
（２０）１１６ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ３０４、Ｎｏ）
（２１）１１６ａに関連するログがないので、何も抽出しない（ステップＳ３０６）
（２２）１１７ａを検索用ノードとして選択（ステップＳ３０７）
選択済：１１２ａ、１１３ａ、１１４ａ、１１５ａ、１１６ａ、１１７ａ
未選択：１１８ａ
（２３）検索用ノードが選択されたので処理を続行（ステップＳ３０８、Ｙｅｓ）
（２４）１１５ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ３０４、Ｎｏ）
（２５）１１６ａに関連するログがないので、何も抽出しない（ステップＳ３０６）
（２６）１１８ａを検索用ノードとして選択（ステップＳ３０７）
選択済：１１２ａ、１１３ａ、１１４ａ、１１５ａ、１１６ａ、１１７ａ、１１８ａ
未選択：なし  
（２７）検索用ノードが選択されたので処理を続行（ステップＳ３０８、Ｙｅｓ）
（２８）１１８ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ３０４、Ｎｏ）
（２９）１１８ａを用いてログ蓄積部２３からファイル操作ログとして、１１９ａを抽出（ステップＳ３０６）
（３０）１１９ａを検索用ノードとして選択（ステップＳ３０７）
選択済：１１２ａ、１１３ａ、１１４ａ、１１５ａ、１１６ａ、１１７ａ、１１８ａ、１１９ａ
未選択：なし  
（３１）検索用ノードが選択されたので処理を続行（ステップＳ３０８、Ｙｅｓ）
（３２）１１９ａは選択条件１を満たしていないため、管理端末３０に出力しない（ステップＳ３０４、Ｎｏ）
（３３）１１９ａを用いてログ蓄積部２３からファイル操作ログとして、１２０ａを抽出（ステップＳ３０６）
（３４）１２０ａを検索用ノードとして選択（ステップＳ３０７）
選択済：１１２ａ、１１３ａ、１１４ａ、１１５ａ、１１６ａ、１１７ａ、１１８ａ、１１９ａ、１２０ａ
未選択：なし  
（３５）検索用ノードが選択されたので処理を続行（ステップＳ３０８、Ｙｅｓ）
（３６）１１９ａは選択条件１を満たしているため（ステップＳ３０４、Ｙｅｓ）、管理端末３０に出力（ステップＳ３０５）
（３７）１１６ａに関連するログがないので、何も抽出しない（ステップＳ３０６）
（３８）未選択の木群が存在する場合（ステップＳ３０９、Ｙｅｓ）は処理を繰り返し行う、存在しない場合（ステップＳ３０９、Ｎｏ）は、ログ抽出部２２は、処理を終了する。
【００８１】
次に、図１４に示すフローチャートを当てはめた場合は、以下のような処理が行われる。
（１）トレースキー（share.exe）および選択条件１を決定し入力（ステップＳ３５１）
（２）トレースログを用いてログ蓄積部２３からログの木群を検索し抽出（ステップＳ３５２）
（３）抽出した木群からこれまで未選択の木を選択し、選択した木のファミリＩＤに該当するノードを抽出（ステップＳ３５３）
（４）抽出したノードのうち選択条件１を満たすノードを管理端末３０に出力（ステップＳ３５４）
（５）未選択の木群が存在する場合（ステップＳ３５５、Ｙｅｓ）は処理を繰り返し行う、存在しない場合（ステップＳ３５５、Ｎｏ）は、ログ抽出部２２は、処理を終了する。
【００８２】
［第３の実施形態の効果］
ログ抽出部２２は、ファイル操作ログ同士が関連付けられたツリー構造を形成している場合に、トレースログに関連し、ツリー構造を形成しているファイル操作ログをトレースログとして一括で抽出する。これにより、トレースログ抽出処理を効率良く行うことができるようになる。
【００８３】
［システム構成等］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８４】
また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８５】
［プログラム］
図１６は、プログラムが実行されることにより、ログ抽出システムまたはログ管理装置が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００８６】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００８７】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、ログ抽出システム１またはログ管理装置２０の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、ログ抽出システム１またはログ管理装置２０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【００８８】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００８９】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３およびプログラムデータ１０９４は、ネットワーク（ＬＡＮ、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３およびプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００９０】
１  ログ抽出システム
１０  端末
１１  エージェントソフトウェア
２０  ログ管理装置
２１  受信部
２２  ログ抽出部
２３  ログ蓄積部
２３１  ファイル操作ログ蓄積部
２３２  プロセス起動ログ蓄積部
３０  管理端末
３１  クエリ送信部
３２  トレースキー設定部
３３  表示部
【図１】
0006577241.tif 000002
【図２−１】
0006577241.tif 000003
【図２−２】
0006577241.tif 000004
【図３−１】
0006577241.tif 000005
【図３−２】
0006577241.tif 000006
【図４−１】
0006577241.tif 000007
【図４−２】
0006577241.tif 000008
【図５−１】
0006577241.tif 000009
【図５−２】
0006577241.tif 000010
【図５−３】
0006577241.tif 000011
【図５−４】
0006577241.tif 000012
【図６】
0006577241.tif 000013
【図７】
0006577241.tif 000014
【図８】
0006577241.tif 000015
【図９】
0006577241.tif 000016
【図１０】
0006577241.tif 000017
【図１１】
0006577241.tif 000018
【図１２】
0006577241.tif 000019
【図１３】
0006577241.tif 000020
【図１４】
0006577241.tif 000021
【図１５】
0006577241.tif 000022
【図１６】
0006577241.tif 000023