(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025001146
(43)【公開日】2025-01-08
(54)【発明の名称】情報処理装置、情報処理システム、プログラムおよび情報処理方法
(51)【国際特許分類】
G06F 11/30 20060101AFI20241225BHJP
G06F 11/34 20060101ALI20241225BHJP
【FI】
G06F11/30 175
G06F11/34 176
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2023100578
(22)【出願日】2023-06-20
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】前田 智紀
(72)【発明者】
【氏名】中西 福友
(72)【発明者】
【氏名】大矢 章晴
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042MA08
5B042MA11
5B042MA16
5B042MC15
5B042MC40
(57)【要約】
【課題】解析に有効な一部のログを効率良く記憶させる。
【解決手段】情報処理装置は、先頭プロセス特定部と、ログ列取得部と、部分列検出部と、解析対象書込部とを備える。先頭プロセス特定部は、複数のログのうち正常リストに違反する違反ログを取得し、違反ログにより履歴が記述されている事象を発生させたプロセスを、先頭プロセスとして特定する。ログ列取得部は、先頭プロセスのログおよび先頭プロセスの生成元を過去に順次に遡った複数世代のプロセスのそれぞれのログを含むログ列を取得する。部分列検出部は、正常グラフに基づき、ログ列における正常である親子関係が予め定められた第1世代数連続する最も新しい部分列を、正常部分列として検出する。解析対象書込部は、ログ列における少なくとも違反ログから正常部分列までを解析対象記憶装置に記憶させる。
【選択図】
図10
【特許請求の範囲】
【請求項1】
それぞれに対象装置において発生した事象の履歴が記述された複数のログのうちの、一部のログを解析対象記憶装置に記憶させる情報処理装置であって、
前記複数のログのうち、正常なログであることの条件が記述された正常リストに違反する違反ログを取得し、前記違反ログにより履歴が記述されている前記事象を発生させたプロセスを、先頭プロセスとして特定する先頭プロセス特定部と、
前記先頭プロセスのログおよび前記先頭プロセスの生成元を過去に順次に遡った複数世代のプロセスのそれぞれのログを含むログ列を取得するログ列取得部と、
任意のログにより履歴が記述されるプロセスを子プロセスとし、前記子プロセスの生成元となるプロセスを親プロセスとした場合、前記子プロセスの履歴が記述されるログと前記親プロセスの履歴が記述されるログとの親子関係が正常であることの条件が記述された正常グラフに基づき、前記ログ列における正常である前記親子関係が予め定められた第1世代数連続する最も新しい部分列を、正常部分列として検出する部分列検出部と、
前記ログ列における少なくとも前記違反ログから前記正常部分列までを前記解析対象記憶装置に記憶させる解析対象書込部と、
を有する情報処理装置。
【請求項2】
前記正常リストは、正常なログであることの条件が記述された1または複数のルールを含む
請求項1に記載の情報処理装置。
【請求項3】
前記正常グラフは、前記1または複数のルールのそれぞれについて、対象のルールを前記子プロセスの履歴を記述したログが満たす場合における、前記親プロセスの履歴を記述したログが満たすべきルールを含み、
前記親子関係が正常か否かの判断において、前記部分列検出部は、前記子プロセスの履歴が記述されたログが満たすルールと、前記親プロセスの履歴が記述されたログが満たすルールとが、前記正常グラフに一致する場合、前記親子関係が正常であると判断する
請求項2に記載の情報処理装置。
【請求項4】
前記対象装置において発生した前記事象は、前記対象装置において発生したイベントまたは前記対象装置において実行されたプロセスである
請求項1に記載の情報処理装置。
【請求項5】
前記ログ列取得部は、前記ログ列をn(nは、前記第1世代数より大きい整数)世代毎に分割した分割ログ列を、前記正常部分列が検出されるまで繰り返して取得し、
前記部分列検出部は、前記分割ログ列を取得する毎に、前記正常部分列を検出し、
前記解析対象書込部は、前記分割ログ列を取得する毎に、取得した前記分割ログ列を前記解析対象記憶装置に記憶させる
請求項1に記載の情報処理装置。
【請求項6】
前記ログ列取得部は、前記先頭プロセスの履歴を記述されたログが前記解析対象記憶装置に記憶されている場合、次の前記分割ログ列の取得をせずに処理を終了する
請求項5に記載の情報処理装置。
【請求項7】
前記対象装置からログを受信し、前記正常リストに基づき、受信したログが前記違反ログであるか否かを判断する正常リスト比較部をさらに有する
請求項1に記載の情報処理装置。
【請求項8】
請求項1から6の何れか1項に記載の情報処理装置と、
前記対象装置と、
前記対象装置を監視する監視装置と、
を備え、
前記対象装置は、前記事象が発生する毎に、前記事象の履歴が記述されたログを生成し、生成したログを前記情報処理装置および前記監視装置に送信するログ生成部を有し
前記監視装置は、
ログ記憶部と、
前記対象装置からログを受信し、取得したログを前記ログ記憶部に書き込むログ書込部と、
前記情報処理装置から取得要求に応じて前記ログ記憶部から前記ログ列を読み出して前記情報処理装置に送信するログ読出部と、
を有し、
前記情報処理装置は、前記対象装置からログを受信し、受信したログと前記正常リストとを比較して、受信したログが前記違反ログであるか否かを判断する正常リスト比較部をさらに有する
情報処理システム。
【請求項9】
請求項1から6の何れか1項に記載の情報処理装置と、
前記対象装置と、
前記対象装置を監視する監視装置と、
を備え、
前記対象装置は、前記事象が発生する毎に、前記事象の履歴が記述されたログを生成し、生成したログを前記監視装置に送信するログ生成部を有し
前記監視装置は、
ログ記憶部と、
前記対象装置からログを受信し、取得したログを前記ログ記憶部に書き込むログ書込部と、
前記情報処理装置から取得要求に応じて前記ログ記憶部から前記ログ列を読み出して前記情報処理装置に送信するログ読出部と、
を有し、
前記監視装置は、前記対象装置からログを受信し、受信したログと前記正常リストとを比較して、受信したログが前記違反ログであるか否かを判断する正常リスト比較部をさらに有し、
前記正常リスト比較部は、前記ログ列を前記情報処理装置に送信する
情報処理システム。
【請求項10】
請求項1から6の何れか1項に記載の情報処理装置と、
前記対象装置と、
前記対象装置を監視する監視装置と、
を備え、
前記対象装置は、前記事象が発生する毎に、前記事象の履歴が記述されたログを生成し、生成したログを前記監視装置に送信するログ生成部を有し
前記監視装置は、
ログ記憶部と、
前記対象装置からログを受信し、取得したログを前記ログ記憶部に書き込むログ書込部と、
前記ログ記憶部から前記ログ列を読み出して前記情報処理装置に送信するログ読出部と、
を有し、
前記監視装置は、前記対象装置からログを受信し、受信したログと前記正常リストとを比較して、受信したログが前記違反ログであるか否かを判断する正常リスト比較部をさらに有し、
前記ログ読出部は、前記違反ログが検出された場合、前記ログ列を前記情報処理装置に送信する
情報処理システム。
【請求項11】
コンピュータを、それぞれに対象装置において発生した事象の履歴が記述された複数のログのうちの、一部のログを解析対象記憶装置に記憶させる情報処理装置として機能させるためのプログラムであって、
前記コンピュータを、
前記複数のログのうち、正常なログであることの条件が記述された正常リストに違反する違反ログを取得し、前記違反ログにより履歴が記述されている前記事象を発生させたプロセスを、先頭プロセスとして特定する先頭プロセス特定部と、
前記先頭プロセスのログおよび前記先頭プロセスの生成元を過去に順次に遡った複数世代のプロセスのそれぞれのログを含むログ列を取得するログ列取得部と、
任意のログにより履歴が記述されるプロセスを子プロセスとし、前記子プロセスの生成元となるプロセスを親プロセスとした場合、前記子プロセスの履歴が記述されるログと前記親プロセスの履歴が記述されるログとの親子関係が正常であることの条件が記述された正常グラフに基づき、前記ログ列における正常である前記親子関係が予め定められた第1世代数連続する最も新しい部分列を、正常部分列として検出する部分列検出部と、
前記ログ列における少なくとも前記違反ログから前記正常部分列までを前記解析対象記憶装置に記憶させる解析対象書込部と、
して機能させるプログラム。
【請求項12】
それぞれに対象装置において発生した事象の履歴が記述された複数のログのうちの、一部のログを解析対象記憶装置に記憶させる情報処理装置により実行される情報処理方法であって、
前記情報処理装置が、
前記複数のログのうち、正常なログであることの条件が記述された正常リストに違反する違反ログを取得し、前記違反ログにより履歴が記述されている前記事象を発生させたプロセスを、先頭プロセスとして特定し、
前記先頭プロセスのログおよび前記先頭プロセスの生成元を過去に順次に遡った複数世代のプロセスのそれぞれのログを含むログ列を取得し、
任意のログにより履歴が記述されるプロセスを子プロセスとし、前記子プロセスの生成元となるプロセスを親プロセスとした場合、前記子プロセスの履歴が記述されるログと前記親プロセスの履歴が記述されるログとの親子関係が正常であることの条件が記述された正常グラフに基づき、前記ログ列における正常である前記親子関係が予め定められた第1世代数連続する最も新しい部分列を、正常部分列として検出し、
前記ログ列における少なくとも前記違反ログから前記正常部分列までを前記解析対象記憶装置に記憶させる
情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置、情報処理システム、プログラムおよび情報処理方法に関する。
【背景技術】
【0002】
SIEM(Security Information and Event Management)と呼ばれる管理システムが知られている。SIEMは、ネットワーク内の全ての機器からログを収集し、一つのサーバで全ての機器のログを監視する。SIEMは、ネットワーク内の全ての機器のログを1つのログサーバにより監視することができるので、攻撃の検知およびフォレンジック等を容易に実行することができる。
【0003】
しかし、このような管理システムは、大規模ネットワークに適用された場合、サーバが収集するログの量が膨大となる。従って、管理システムは、ログを記憶するキャパシティおよびログを解析する解析量の観点から、サーバに全てのログを記憶して全てのログを解析することは非常に困難となる。
【0004】
このため、管理システムは、大量のログが発生する場合、収集するログを選定して少なくしたり、正常リストを用いて収集するログの数を制限したりしている。正常リストを用いて収集するログを制限した場合、管理システムは、正常リストに存在しないログのみを記憶する。しかし、正常リストに存在しないログは、どのプロセスによって生成されたかが不明である。このため、管理システムは、正常リストに存在しないログを記憶したとしても、記憶したログが攻撃により発生したログであるのか、正常なログであるかを判断することが難しい。
【0005】
このような問題を解決する技術として、例えば、ログの時系列特徴を表す1つ以上のノードおよびエッジを有するグラフィカルモデルを生成して、異常なイベントを特定する技術が知られている。この技術では、複数のログの関係性に基づき危険度の高いログのみを抽出することができる。しかし、この技術は、大量に存在するログの全てに対して前後のログを一時的に記憶し、さらに、グラフィカルモデルを生成しなければならない。従って、この技術は、ログを一時的に記憶するための記憶装置のキャパシティが大きくなり、さらに、グラフィカルモデルの生成のための演算量が膨大となってしまう。
【0006】
また、通信パターンのグラフ特徴量に基づき、通信の異常性および通信の異常性の原因を分析する技術が知られている。この技術も、複数のログの関係性に基づき危険度の高いログのみを抽出することができる。しかし、この技術は、大量に存在するログの全てに対して前後のログを一時的に記憶して、グラフ特徴量を算出しなければならない。従って、この技術も、ログを一時的に記憶するための記憶装置のキャパシティが大きくなり、さらに、グラフ特徴量の算出のための演算量が膨大となってしまう。
【0007】
また、各ログの親プロセスを遡り、正常と定義されているログに辿り着くかどうかを確認することで、ログが正常であるかどうかを確認する技術が知られている。この技術も、複数のログの関係性に基づき危険度の高いログのみを抽出することができる。しかし、この技術は、正常なプロセスを間に挟んで攻撃を実行する悪意のあるプログラムを、正常なプログラムと認識してしまう可能性がある。例えば、Windows(登録商標)のようなオペレーティングシステムでマルウェアをダウンロードした後に、explorer.exeからマルウェアを実行した場合、マルウェアを生成する親プロセスがexplorer.exeとなる。このような場合、この技術では、explorer.exeを正常なプログラムとして定義していると、実行されたマルウェアが正常なプロセスとして認識してしまう可能性がある。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特許第6599946号公報
【特許文献2】国際公開第2019/225710号
【特許文献3】特表2019-531519号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明が解決しようとする課題は、対象装置において生成される複数のログのうち解析に有効な一部のログを、解析対象記憶装置に効率良く記憶させることにある。
【課題を解決するための手段】
【0010】
実施形態に係る情報処理装置は、それぞれに対象装置において発生した事象の履歴が記述された複数のログのうちの、一部のログを解析対象記憶装置に記憶させる。前記情報処理装置は、先頭プロセス特定部と、ログ列取得部と、部分列検出部と、解析対象書込部とを備える。前記先頭プロセス特定部は、前記複数のログのうち、正常なログであることの条件が記述された正常リストに違反する違反ログを取得し、前記違反ログにより履歴が記述されている前記事象を発生させたプロセスを、先頭プロセスとして特定する。前記ログ列取得部は、前記先頭プロセスのログおよび前記先頭プロセスの生成元を過去に順次に遡った複数世代のプロセスのそれぞれのログを含むログ列を取得する。前記部分列検出部は、任意のログにより履歴が記述されるプロセスを子プロセスとし、前記子プロセスの生成元となるプロセスを親プロセスとした場合、前記子プロセスの履歴が記述されるログと前記親プロセスの履歴が記述されるログとの親子関係が正常であることの条件が記述された正常グラフに基づき、前記ログ列における正常である前記親子関係が予め定められた第1世代数連続する最も新しい部分列を、正常部分列として検出する。前記解析対象書込部は、前記ログ列における少なくとも前記違反ログから前記正常部分列までを前記解析対象記憶装置に記憶させる。
【図面の簡単な説明】
【0011】
【
図8】親子関係を、正常グラフを用いて比較した場合の第1例を示す図。
【
図9】親子関係を、正常グラフを用いて比較した場合の第2例を示す図。
【
図10】第1実施形態に係る情報処理システムの機能構成図。
【
図11】第1実施形態に係る情報処理システムの処理の流れを示すフローチャート。
【
図12】S1013の比較ログ列の生成処理についての説明図。
【
図13】S1011の処理の流れを示すフローチャート。
【
図14】第2実施形態に係る情報処理システムの機能構成図。
【
図15】第2実施形態に係る情報処理システムの処理の流れを示すフローチャート。
【
図16】第3実施形態に係る情報処理システムの機能構成図。
【
図17】第3実施形態に係る情報処理システムの処理の流れを示すフローチャート。
【
図18】実施形態に係る情報処理装置のハードウェア構成図。
【発明を実施するための形態】
【0012】
以下、図面を参照しながら実施形態について説明する。
【0013】
(第1実施形態)
図1は、情報処理システム10を示す図である。
【0014】
情報処理システム10は、1または複数の対象装置12と、1または複数の監視装置14と、情報処理装置20と、解析対象記憶装置24と、解析装置26とを備える。
【0015】
1または複数の対象装置12のそれぞれは、プロセッサおよびメモリを有し、プロセッサおよびメモリがプログラムを実行することにより情報処理を実行する装置である。1または複数の対象装置12のそれぞれは、コンピュータであってもよいし、ロボットであってもよいし、工場またはプラント等のインフラストラクチャの施設に設置される情報処理機能を有する装置であってもよい。
【0016】
1または複数の対象装置12のそれぞれは、事象が発生する毎に、発生した事象の履歴が記述されたログを生成する。1または複数の対象装置12のそれぞれは、1または複数の監視装置14の何れか1つの監視装置14に対応付けられている。そして、1または複数の対象装置12のそれぞれは、対応付けられている監視装置14へ、生成したログを出力する。また、1または複数の対象装置12のそれぞれは、情報処理装置20へも、生成したログを出力する。なお、ログについては、詳細を
図2、
図3、
図4および
図5を参照して後述する。
【0017】
1または複数の対象装置12のそれぞれにおいて発生する事象は、例えば、対象装置12において発生するイベントまたは対象装置12において実行されたプロセスである。イベントは、一例として、対象装置12において検知された動作、対象装置12に対する入力操作および外部装置からの通知等である。プロセスは、対象装置12が実行したプログラムの処理である。
【0018】
1または複数の監視装置14のそれぞれは、プロセッサおよびメモリを有し、プロセッサがメモリ上においてプログラムを実行することにより情報処理を実行する装置である。1または複数の監視装置14は、1または複数の対象装置12と一対一で対応していてもよい。また、1または複数の対象装置12のそれぞれが何れか1個の監視装置14に対応していれば、1または複数の監視装置14の何れかは、2個以上の対象装置12と対応していてもよい。また、1または複数の監視装置14の何れかは、対応する対象装置12と一体となっていてもよい。また、1または複数の監視装置14の何れかは、情報処理装置20と一体となっていてもよい。
【0019】
1または複数の監視装置14のそれぞれは、1または複数の対象装置12のうちの対応付けられている対象装置12からログを受信する。そして、1または複数の監視装置14のそれぞれは、受信したログを記憶する。
【0020】
また、1または複数の監視装置14のそれぞれは、情報処理装置20から、先頭プロセスを特定する情報を含む取得要求を受け取る。1または複数の監視装置14のそれぞれは、記憶している多数のログのうち、取得要求に示された先頭プロセスの履歴を記述したログ、および、先頭プロセスの生成元を過去に遡った複数世代のプロセスのそれぞれのログを含むログ列を選択する。そして、1または複数の監視装置14のそれぞれは、選択したログ列を情報処理装置20に出力する。
【0021】
情報処理装置20は、プロセッサおよびメモリを有し、プロセッサがメモリ上においてプログラムを実行することにより情報処理を実行する装置である。情報処理装置20は、サーバ装置であってもよいし、1または複数のサーバ装置が連携して動作するクラウド等であってもよい。情報処理装置20は、1または複数の対象装置12において発生する事象の履歴が記述された複数のログのうちの解析対象となる一部のログを解析対象記憶装置24に記憶させる。
【0022】
情報処理装置20は、予め定められた正常リスト、および、予め定められた正常グラフを記憶する。
【0023】
正常リストは、正常なログであることの条件が記述された情報である。例えば、正常リストは、正常なログであることの条件が記述された1または複数のルールを含む。なお、正常リストについては、詳細を
図6を参照して後述する。
【0024】
正常グラフは、親子関係が正常であることの条件が記述された情報である。親子関係は、任意のログにより履歴が記述されるプロセスを子プロセスとし、その子プロセスの生成元となるプロセスを親プロセスとした場合、子プロセスの履歴が記述されるログと親プロセスの履歴が記述されるログとの関係である。例えば、正常グラフは、1または複数のルールのそれぞれについて、対象のルールを子プロセスの履歴を記述したログが満たす場合における、親プロセスの履歴を記述したログが満たすべきルールを含む。なお、正常グラフについては、詳細を
図7、
図8および
図9を参照して後述する。
【0025】
情報処理装置20は、1または複数の対象装置12のそれぞれからログを取得する。情報処理装置20は、ログを取得する毎に、取得したログが正常リストに違反する違反ログであるか否かを判断する。そして、情報処理装置20は、取得したログが違反ログである場合、違反ログにより履歴が記述されている事象を発生させたプロセスを、先頭プロセスとして特定する。
【0026】
続いて、情報処理装置20は、取得したログを記憶する監視装置14に対して、先頭プロセスを特定する情報を含む取得要求を与える。そして、情報処理装置20は、対応する監視装置14から、先頭プロセスのログおよび先頭プロセスの生成元を過去に順次に遡った複数世代のプロセスのそれぞれのログを含むログ列を取得する。
【0027】
続いて、情報処理装置20は、ログ列における正常である親子関係が予め定められた第1世代数連続する最も新しい部分列を、正常部分列として検出する。具体的には、情報処理装置20は、取得したログ列を先頭プロセスのログから過去に順次に遡って、正常グラフに基づき正常部分列を検出する。なお、第1世代数は、mで表され、2以上の予め定められた整数である。
【0028】
そして、情報処理装置20は、取得したログ列における、少なくとも違反ログから正常部分列までを、解析対象となる解析対象ログ列として解析対象記憶装置24に記憶させる。なお、解析対象ログ列は、違反ログから正常部分列までを少なくとも含んでいれば、正常部分列より過去のログを含んでもよい。
【0029】
解析対象記憶装置24は、情報処理装置20により生成された解析対象ログ列を記憶する。解析対象記憶装置24は、情報処理装置20と一体的に設けられた装置であってもよい。解析対象記憶装置24は、ネットワーク上に設けられて、ネットワークを介して端末装置等にアクセスされるストレージ装置であってもよい。
【0030】
解析装置26は、解析対象記憶装置24に記憶された解析対象ログ列を取得する。解析装置26は、取得した解析対象ログ列に含まれる複数のログを解析して、1または複数の対象装置12への攻撃の有無および種類等、並びに攻撃の可能性等を解析する。そして、解析装置26は、例えば解析結果を表示装置等に表示することによりユーザに出力する。
【0031】
図2は、ログの第1例を示す図である。
図3は、ログの第2例を示す図である。
図4は、ログの第3例を示す図である。
図5は、ログの第4例を示す図である。
【0032】
ログは、対象装置12において発生するイベントおよび対象装置12において実行されるプロセス等の事象についての履歴が、プロセッサにより解釈が可能な予め定められたフォーマットにより記述される情報である。ログは、予め定められたフォーマットにより記述されていれば、どのようなフォーマットで記述されてもよい。
【0033】
一例として、ログは、複数の項目111と、複数のエントリ112とを含む。複数の項目111と複数のエントリ112とは、一対一で対応する。複数の項目111のそれぞれは、対応するエントリ112に記述される情報の見出しを表す。複数のエントリ112のそれぞれは、イベントまたはプロセス等の事象における、対応する項目111についての履歴が記述される。
【0034】
ログは、項目として、“概要”、“プロセスID”、“親プロセス名”、“親プロセスID”、“ファイル名”、“ファイルパス”、“子プロセス名”および“子プロセスID”等を含む。
【0035】
“概要”は、イベントまたはプロセス等の対象の事象の内容を表す情報が、対応するエントリ112に記述される。“プロセスID”は、対象のプロセスを識別する識別情報が、対応するエントリ112に記述される。“親プロセス名”は、対象のプロセスの生成元となる親プロセスの名称が、対応するエントリ112に記述される。“親プロセスID”は、対象のプロセスの生成元となる親プロセスを識別する識別情報が、対応するエントリ112に記述される。“ファイル名”は、対象のプロセスにより生成されたファイルの名称が、対応するエントリ112に記述される。“ファイルパス”は、対象のプロセスにより生成されたファイルの格納位置を示すパスが、対応するエントリ112に記述される。“子プロセス名”は、対象のプロセスが親プロセスとなって生成した子プロセスの名称が、対応するエントリ112に記述される。“子プロセスID”は、対象のプロセスが親プロセスとなって生成した子プロセスを識別する識別情報が、対応するエントリ112に記述される。
【0036】
ログに記述される情報は、
図3~
図5に示した情報に限らない。また、ログに記述される項目は、フォーマットにより定められる複数の項目のうち、イベントまたはプロセス等の対象の事象の履歴を記述するために必要となる一部の項目のみが含まれてよい。
【0037】
なお、本実施形態に係る情報処理システム10は、親プロセスを特定するための情報を含むことができるフォーマットのログを用いる。例えば、Windows(登録商標)のSymon等のログは、親プロセスを特定するための情報を含むことができる。
【0038】
図6は、正常リストの一例を示す図である。正常リストは、正常なログであることの条件が、プロセッサにより解釈が可能な予め定められたフォーマットにより記述される情報である。
【0039】
本実施形態において、正常リストは、正常なログであることの条件を記述した1または複数のルールを含む。
【0040】
例えば、
図6に示す正常リストは、“概要”が“ファイル作成”である場合、“ファイル名”が“ab”で始まる、という第1ルール(rule_1)を含む。従って、情報処理装置20は、取得したログの“概要”に“ファイル作成”が記述されている場合、“ファイル名”に“ab”から始まる文字が記述されていれば、取得したログが正常であると判断する。また、情報処理装置20は、取得したログの“概要”に“ファイル作成”が記述されている場合、ファイル名に“ab”から始まる文字が記述されていなければ、取得したログが正常リストに違反していると判断する。
【0041】
例えば、
図6に示す正常リストは、 “概要”が“子プロセス生成”且つ“子プロセス名”が“YYY.exe”である場合、“親プロセス名”が“XXX.exe”ではない、という第2ルール(rule_2)を含む。従って、情報処理装置20は、取得したログの“概要”に“ファイル作成”が記述され且つ“子プロセス名”に“YYY.exe”が記述されている場合、“親プロセス名”に“XXX.exe”以外が記述されていれば、取得したログが正常であると判断する。また、情報処理装置20は、取得したログの“概要”に“ファイル作成”が記述され且つ“子プロセス名”に“YYY.exe”が記述されている場合、親プロセス名”に“XXX.exe”が記述されていれば、取得したログが違反であると判断する。
【0042】
例えば、
図2に示したログは、
図6に示す正常リストの第1ルール(rule_1)を満たす。従って、この場合、情報処理装置20は、
図2に示したログを正常であると判断する。また、例えば、
図3に示したログは、
図6に示す正常リストの第1ルール(rule_1)を満たさない。従って、この場合、情報処理装置20は、
図3に示したログを違反ログであると判断する。
【0043】
例えば、
図4に示したログは、
図6に示す正常リストの第2ルール(rule_2)を満たさない。従って、この場合、情報処理装置20は、
図4に示したログを違反ログと判断する。また、例えば、
図5に示したログは、
図6に示す正常リストの第2ルール(rule_2)を満たす。従って、この場合、情報処理装置20は、
図5に示したログを正常であると判断する。
【0044】
なお、
図6の例においては、正常リストは、各ルールが文章により記述されている。しかし、正常リストは、記述方式は、プロセッサにより解釈が可能であれば、文章に限らず、どのような方法および記述言語であってもよい。
【0045】
図7は、正常グラフの一例を示す図である。正常グラフは、親子関係が正常であることの条件が、プロセッサにより解釈が可能な予め定められたフォーマットにより記述される情報である。
【0046】
本実施形態において、正常グラフは、1または複数のルールのそれぞれについて、対象のルールを子プロセスの履歴を記述したログが満たす場合における、親プロセスの履歴を記述したログが満たすべきルールを含む。例えば、
図7に示す正常グラフは、第1ルール(rulu_1)から第18ルール(rulu_18)のそれぞれについて、対象のルールを子プロセスの履歴を記述したログが満たす場合における、親プロセスの履歴を記述したログが満たすべきルールを含む。
【0047】
例えば、
図7に示す正常グラフは、第1ルール(rulu_1)を子プロセスのログが満たす場合、親プロセスのログが満たすべきルールが、第5ルール(rulu_5)、第8ルール(rule_8)または第12ルール(rulu_12)であることが記述されている。
【0048】
また、
図7に示す正常グラフは、第5ルール(rulu_5)を子プロセスのログが満たす場合、親プロセスのログが満たすべきルールが、第9ルール(rulu_9)、第11ルール(rulu_11)または第12ルール(rulu_12)であることが記述されている。
【0049】
また、
図7に示す正常グラフは、第8ルール(rule_8)を子プロセスのログが満たす場合、親プロセスのログが満たすべきルールが、第8ルール(rule_8)、第13ルール(rulu_13)または第18ルール(rulu_18)であることが記述される。
【0050】
また、
図7に示す正常グラフは、第12ルール(rulu_12)を子プロセスのログが満たす場合、親プロセスのログが満たすべきルールが、第1ルール(rulu_1)、第15ルール(rulu_15)または第18ルール(rulu_18)であることが記述されている。
【0051】
また、
図7に示した正常グラフは、第18ルール(rulu_18)を子プロセスのログが満たす場合、親プロセスのログが満たすべきルールは、第3ルール(rulu_3)、第4ルール(rulu_4)または第17ルール(rulu_17)であることが記述されている。
【0052】
図8は、親子関係を、正常グラフを用いて比較した場合の第1例を示す図である。
【0053】
例えば、ログの一例である、
図8に示す第1ログ122は、子プロセスの履歴が記述されている。第1ログ122は、“概要”が“ファイル作成”、“プロセスID”が“000002”、“親プロセス名”が“XXX.exe”、“親プロセスID”が“000001”、“ファイル名”が“abc”および“ファイルパス”が“C:¥Users¥someone¥Documents¥abcである。
【0054】
また、ログの一例である、
図8に示す第2ログ124は、第1ログ122により履歴が表される子プロセスの生成元となる親プロセスの履歴が記述されている。第2ログ124は、“概要”が“プロセス生成”、“親プロセス名”が“AAA.exe”、“親プロセスID”が“000001”、“子プロセス名”が“XXX.exe”、“子プロセスID”が“000002”である。
【0055】
第1ログ122は、第1ルール(rulu_1)を満たす。正常グラフは、第1ルール(rulu_1)について、親プロセスが第5ルール(rulu_5)、第8ルール(rule_8)または第12ルール(rulu_12)を満たすべきことが記述される。従って、この場合、情報処理装置20は、第2ログ124が、第5ルール(rulu_5)、第8ルール(rule_8)または第12ルール(rulu_12)の何れかを満たせば、第1ログ122と第2ログ124との親子関係が正常であると判断することができる。
図8の例においては、第2ログ124は、第12ルール(rulu_12)を満たす。従って、この場合、情報処理装置20は、第1ログ122と第2ログ124とが、正常グラフを満たす正常な親子関係であると判断する。
【0056】
図9は、親子関係を、正常グラフを用いて比較した場合の第2例を示す図である。
【0057】
例えば、ログの一例である、
図9に示す第3ログ126は、子プロセスの履歴が記述される。第3ログ126は、“概要”が“ファイル作成”、“プロセスID”が“000002”、“親プロセス名”が“XXX.exe”、“親プロセスID”が“000001”、“ファイル名”が“abd”および“ファイルパス”が“C:¥Users¥someone¥Documents¥abdである。
【0058】
例えば、ログの一例である、
図9に示す第4ログ128は、第3ログ126により履歴が表される子プロセスの生成元となる親プロセスの履歴が記述される。第4ログ128は、“概要”が“プロセス生成”、“親プロセス名”が“BBB.exe”、“親プロセスID”が“000001”、“子プロセス名”が“XCC.exe”、“子プロセスID”が“000002”である。
【0059】
第3ログ126は、第1ルール(rulu_1)を満たす。正常グラフは、第1ルール(rulu_1)について、親プロセスが第5ルール(rulu_5)、第8ルール(rule_8)または第12ルール(rulu_12)を満たすべきことが記述される。従って、情報処理装置20は、第4ログ128が、第5ルール(rulu_5)、第8ルール(rulu_8)または第12ルール(rulu_12)の何れかを満たせば、第3ログ126と第4ログ128との親子関係が正常であると判断することができる。
図9の例においては、第4ログ128は、第5ルール(rulu_5)、第8ルール(rulu_8)および第12ルール(rulu_12)の何れも満たさない。従って、この場合、情報処理装置20は、第3ログ126と第4ログ128とが、正常グラフを満たす正常な親子関係ではないと、判断する。
【0060】
図10は、第1実施形態に係る情報処理システム10における対象装置12、監視装置14および情報処理装置20の機能構成を示す図である。
【0061】
対象装置12は、ログ生成部32を有する。ログ生成部32は、対象装置12において事象が発生する毎に、発生した事象の履歴が記述されたログを生成する。ログ生成部32は、対象装置12において例えばイベントが発生した場合、または、プロセスが実行された場合、ログを生成する。ログ生成部32は、生成したログを、情報処理装置20、および、対象装置12に対応付けられた監視装置14に送信する。
【0062】
監視装置14は、ログ記憶部42と、ログ書込部44と、ログ読出部46とを有する。ログ記憶部42は、対応する対象装置12により生成された複数のログを記憶する。ログ書込部44は、対応する対象装置12から送信されたログを受信し、受信したログをログ記憶部42に書き込む。
【0063】
ログ読出部46は、情報処理装置20から、先頭プロセスを識別する情報を含む取得要求を受け取る。ログ読出部46は、取得要求を受け取った場合、ログ記憶部42から、先頭プロセスのログ、および、先頭プロセスの生成元を過去に遡った複数世代のプロセスのそれぞれのログを含むログ列を読み出す。そして、ログ読出部46は、読み出したログ列を情報処理装置20に出力する。
【0064】
なお、本実施形態においては、ログ読出部46は、取得要求を受け取る毎に、ログ記憶部42から、n世代分のログを含む分割ログ列を読み出す。nは、第1世代数(m)より大きい予め定められた整数である。すなわち、本実施形態においては、ログ読出部46は、取得要求を受け取る毎に、ログ記憶部42から、先頭プロセスのログおよび先頭プロセスの生成元を過去に(n-1)世代遡った(n-1)世代のプロセスのそれぞれのログを含む分割ログ列を読み出す。そして、本実施形態においては、ログ読出部46は、取得要求を受け取る毎に、読み出した分割ログ列を情報処理装置20に出力する。
【0065】
情報処理装置20は、一時記憶部52と、正常リスト比較部54と、先頭プロセス特定部56と、ログ列取得部58と、部分列検出部60と、解析対象書込部62とを有する。
【0066】
一時記憶部52は、複数のログを一時的に記憶する。
【0067】
正常リスト比較部54は、正常リストが予め設定される。正常リスト比較部54は、対象装置12から送信されたログを受信する。正常リスト比較部54は、ログを受信する毎に、受信したログと正常リストとを比較して、受信したログが正常リストに違反する違反ログであるか否かを判断する。正常リスト比較部54は、受信したログが違反ログである場合、違反ログを解析対象記憶装置24に書き込む。また、正常リスト比較部54は、受信したログが違反ログである場合、違反ログを一時記憶部52に書き込む。さらに、正常リスト比較部54は、受信したログが違反ログである場合、違反ログを先頭プロセス特定部56に与える。
【0068】
先頭プロセス特定部56は、違反ログを取得する。先頭プロセス特定部56は、違反ログを取得した場合、違反ログにより履歴が記述されている事象を発生させたプロセスを、先頭プロセスとして特定する。すなわち、先頭プロセス特定部56は、違反ログにより履歴が記述されている事象の親プロセスを、先頭プロセスとして特定する。先頭プロセス特定部56は、特定した先頭プロセスを識別する情報をログ列取得部58に与える。
【0069】
ログ列取得部58は、先頭プロセスを識別する情報を先頭プロセス特定部56から取得した場合、先頭プロセスを実行した対象装置12に対応する監視装置14に対して、先頭プロセスを識別する情報を含む取得要求を与える。そして、ログ列取得部58は、取得要求を与えた監視装置14から、先頭プロセスのログおよび先頭プロセスの生成元を過去に順次に遡った複数世代のプロセスのそれぞれのログを含むログ列を取得する。ログ列取得部58は、取得したログ列を一時記憶部52に書き込む。また、ログ列取得部58は、取得したログ列を解析対象書込部62に与える。
【0070】
部分列検出部60は、正常グラフが予め設定される。部分列検出部60は、正常グラフに基づき、一時記憶部52に記憶されたログ列における正常である親子関係が予め定められた第1世代数(m世代数)連続する最も新しい部分列を、正常部分列として検出する。なお、親子関係が正常か否かの判断において、部分列検出部60は、子プロセスの履歴を記述したログが満たすルールと、親プロセスの履歴を記述したログが満たすルールとが、正常グラフに一致する場合、正常な親子関係であると判断する。
【0071】
解析対象書込部62は、ログ列のうちの、少なくとも違反ログから、部分列検出部60により検出された正常部分列までを、解析対象となる解析対象ログ列として解析対象記憶装置24に記憶させる。
【0072】
なお、本実施形態においては、ログ列取得部58は、ログ列をn世代毎に分割した分割ログ列を、部分列検出部60により正常部分列が検出されるまで繰り返して監視装置14から取得する。この場合、部分列検出部60は、ログ列取得部58が分割ログ列を取得する毎に、違反ログから最後に取得した分割ログ列までの間に、正常部分列が含まれる否かを検出する。
【0073】
また、本実施形態においては、ログ列取得部58が分割ログ列を取得する毎に、違反ログから最後に取得した分割ログ列までの間に正常部分列が含まれていない場合、先頭プロセス特定部56は、最後に取得した分割ログ列の最も古いログの生成元となるプロセス、すなわち、最後に取得した分割ログ列の最も古いログを生成したプロセスの親プロセスを、先頭プロセスとして特定する。そして、部分列検出部60は、2回目以降の分割ログ列を取得する場合、最後に取得した分割ログ列の最も古いログに基づき特定された先頭プロセスを識別する情報を含む取得要求を、監視装置14に与える。
【0074】
また、本実施形態においては、解析対象書込部62は、ログ列取得部58が分割ログ列を取得する毎に、取得した分割ログ列を解析対象記憶装置24に記憶させる。また、本実施形態においては、部分列検出部60は、違反ログから最後に取得した分割ログ列までの間に、正常部分列が含まれている場合、次の分割ログ列の取得をせずに処理を終了する。また、本実施形態においては、ログ列取得部58は、先頭プロセスまたは分割ログ列の最も過去のログの生成元となるプロセスのログが、解析対象記憶装置24に記憶されている場合、次の分割ログ列の取得をせずに処理を終了する。
【0075】
図11は、第1実施形態に係る情報処理システム10の処理の流れを示すフローチャートである。第1実施形態に係る情報処理システム10は、
図11の流れで処理を実行する。
【0076】
まず、S1001において、情報処理システム10は、第1世代数であるmおよび分割ログ列に含めるログ数であるnを設定する。例えば、情報処理システム10は、ユーザにより入力されたmおよびnを設定してもよい。なお、nは、mより大きい。
【0077】
続いて、S1002において、対象装置12は、ログを生成する。情報処理システム10は、対象装置12においてログが生成される毎に、S1002以下の処理を実行する。
【0078】
続いて、S1003において、対象装置12は、生成したログを情報処理装置20に送信する。
【0079】
続いて、S1004において、対象装置12は、生成したログを対応する監視装置14に送信し、対応する監視装置14のログ記憶部42に記憶させる。なお、情報処理システム10は、S1004の処理を、S1003以降であればいつ実行してもよい。
【0080】
S1003に続いて、S1005において、情報処理装置20は、受信したログが予め設定された正常リストに違反するか否かを判断する。受信したログが正常リストに違反しない場合(S1005のNo)、情報処理装置20は、S1002で生成されたログについての本フローの処理を終了する。受信したログが正常リストに違反する場合(S1005のYes)、情報処理装置20は、受信したログを違反ログとして、S1006、S1007およびS1008の処理を実行する。
【0081】
S1006において、情報処理装置20は、違反ログにより履歴が記述されているイベントまたはプロセスを発生させた親プロセスを先頭プロセスとして特定する。S1007において、情報処理装置20は、違反ログを解析対象記憶装置24に記憶させる。S1008において、情報処理装置20は、違反ログを一時記憶部52に記憶させる。なお、情報処理装置20は、S1006、S1007およびS1008の処理をどのような順序で実行してもよい。ただし、情報処理装置20は、S1008の処理を、S1013の前に実行しなければならない。
【0082】
S1006に続いて、S1009において、情報処理装置20は、先頭プロセスのログが、解析対象記憶装置24に既に記憶されているか否かを判断する。先頭プロセスのログが解析対象記憶装置24に既に記憶されている場合(S1009のYes)、情報処理装置20は、S1002で生成されたログについての本フローの処理を終了する。先頭プロセスのログが解析対象記憶装置24に既に記憶されている場合、先頭プロセスの生成元を過去に順次に遡った複数世代のプロセスのそれぞれのログを含むログ列も、既に解析対象記憶装置24に記憶されている。従って、情報処理装置20は、先頭プロセスのログが既に解析対象記憶装置24に記憶されている場合に本フローの処理を終了することにより、重複したログを解析対象記憶装置24に記憶させないようにすることができる。先頭プロセスのログが解析対象記憶装置24に記憶されていない場合(S1009のNo)、情報処理装置20は、処理をS1010に進める。
【0083】
S1010において、情報処理装置20は、先頭プロセスを特定する情報を含む取得要求を、S1002でログを生成した対象装置12に対応する監視装置14に送信する。そして、監視装置14は、情報処理装置20から取得要求を受信する。
【0084】
続いて、S1011において、情報処理装置20から取得要求を受信した監視装置14は、取得要求に含まれる情報により特定される先頭プロセスのログ、および、先頭プロセスの生成元を過去に順次に遡ったn世代分のプロセスのそれぞれのログをログ記憶部42から読み出す。そして、監視装置14は、先頭プロセスからn世代分遡ったn世代数分のプロセスのそれぞれのログを含む分割ログ列を生成する。なお、監視装置14における分割ログ列の生成処理については、さらなる詳細を
図13を参照して後述する。
【0085】
続いて、S1012において、監視装置14は、生成した分割ログ列を情報処理装置20に送信する。そして、情報処理装置20は、監視装置14から、分割ログ列を取得する。S1012に続いて、情報処理装置20は、取得した分割処理列について、S1013、S1014およびS1015の処理を実行する。
【0086】
S1013において、情報処理装置20は、取得した分割ログ列よりも新しいログを一時記憶部52から読み出し、一時記憶部52から読み出したログと取得した分割ログ列と合成した比較ログ列を生成する。なお、情報処理装置20は、一時記憶部52に(m+1)世代よりも多い世代数のログが記憶されている場合には、取得した分割ログ列の直近の(m+1)世代分のログを取得すればよい。なお、情報処理装置20は、一時記憶部52に(m+1)世代よりも多い世代数のログが記憶されている場合には、古い方から(m+1)世代分のログを一時記憶部52に残し、残りのログを任意のタイミングにおいて削除してもよい。
【0087】
S1014において、情報処理装置20は、取得した分割ログ列を解析対象記憶装置24に記憶させる。S1015において、情報処理装置20は、取得した分割ログ列を一時記憶部52に記憶させる。なお、情報処理装置20は、S1013、S1014およびS1015の処理をどのような順序で実行してもよい。ただし、情報処理装置20は、S1015の処理を、次のループ処理におけるS1013の前に実行しなければならない。
【0088】
S1013に続いて、S1016において、情報処理装置20は、比較ログ列を最も新しいログから過去に順次に遡って、比較ログ列に正常なプロセスの親子関係が予め定められた第1世代数(m個)連続する正常部分列が含まれるか否かを判断する。なお、親子関係が正常か否かの判断においては、情報処理装置20は、子プロセスの履歴を記述したログが満たすルールと、親プロセスの履歴を記述したログが満たすルールとが、正常グラフに一致する場合、正常な親子関係であると判断する。
【0089】
比較ログ列に正常部分列が含まれる場合(S1016のYes)、情報処理装置20は、S1002で生成されたログについての本フローの処理を終了する。比較ログ列に正常部分列が含まれない場合(S1016のNo)、情報処理装置20は、処理をS1017に進める。
【0090】
S1017において、情報処理装置20は、取得した分割ログ列のうち最も古いログを改めて違反ログとし、処理をS1006に戻す。これにより、情報処理装置20は、次のループのS1006において、直近に取得した分割ログ列に含まれる最も古いログに履歴が記述されるプロセスの親プロセスを、新たな先頭プロセスとして特定することができる。従って、情報処理装置20は、次のループにおいて、次の分割ログ列に対する処理を実行することができる。そして、情報処理装置20は、S1006、S1009~S1017の処理を繰り返す。
【0091】
図12は、S1013の比較ログ列の生成処理について説明するための図である。
【0092】
情報処理装置20は、S1012において、監視装置14から、n世代数のログを含む分割ログ列を取得する。また、情報処理装置20の一時記憶部52は、分割ログ列より新しい1または複数のログを記憶している。情報処理装置20は、監視装置14から分割ログ列を取得した場合、分割ログ列より新しいログを一時記憶部52から読み出し、分割ログ列と、分割ログ列より新しいログとを合成した比較ログ列を生成する。そして、情報処理装置20は、比較ログ列に、正常な親子関係が第1世代数(m個)連続する正常部分列が含まれるか否かを判断する。
【0093】
なお、情報処理装置20は、一時記憶部52に(m-1)世代以上のログが記憶されている場合、分割ログ列より新しい(m-1)世代分のログを一時記憶部52から読み出して分割ログ列と合成すればよい。これにより、情報処理装置20は、取得した分割ログ列を一部分に含む正常部分列を検出することができる。
【0094】
図13は、S1011の監視装置14による分割ログ列の生成処理の流れを示すフローチャートである。監視装置14は、S1011において、
図13に示す流れで処理を実行する。
【0095】
まず、S1121において、監視装置14は、情報処理装置20から送信された取得要求から、先頭プロセスを識別する情報を取得する。
【0096】
続いて、S1122において、監視装置14は、先頭プロセスを識別する情報に基づき、先頭プロセスの履歴を表すログをログ記憶部42から読み出す。続いて、S1123において、監視装置14は、n個のログを読み出したか否かを判断する。n個のログを読み出した場合(S1123のYes)、監視装置14は、本フローを終了する。n個のログを読み出していない場合(S1123のNo)、監視装置14は、処理をS1124に進める。
【0097】
S1124において、監視装置14は、直近に読み出したログにより履歴が表されるプロセスを発生した親プロセスを特定する。続いて、S1125において、監視装置14は、S1123で特定した親プロセスのログを、ログ記憶部42から読み出す。そして、S1125の処理を終えると、監視装置14は、処理をS1123に戻し、n個のログを読み出すまで、S1123からS1125の処理を繰り返す。
【0098】
以上のような情報処理システム10は、対象装置12により生成されたログが正常リストに違反する違反ログである場合、違反ログの生成元となるプロセスを順次に遡った複数世代のプロセスのそれぞれのログを含むログ列を取得する。情報処理システム10は、取得したログ列における親子関係が正常であるか否かを正常グラフを用いて判断し、ログ列における正常である親子関係が第1世代数連続する最も新しい部分列である正常部分列を検出する。そして、情報処理システム10は、ログ列における、少なくとも違反ログから正常部分列までを、解析装置26による解析対象として解析対象記憶装置24に記憶させる。
【0099】
これにより、情報処理システム10は、例えば、正常なプロセスを間に挟んで攻撃を実行する悪意のあるプロセスが発生したような場合であっても、このような悪意のあるプロセスの検出および解析をすることが可能となる。また、情報処理システム10は、ログ列における正常である親子関係が第1世代数連続する最も新しい正常部分列よりも古いログを解析対象記憶装置24に記憶させないので、解析対象記憶装置24のキャパシティおよび解析装置26の解析量を少なくすることができる。
【0100】
このように情報処理システム10によれば、対象装置12において生成される複数のログのうち解析に有効な一部のログを、解析対象記憶装置24に効率良く記憶させるとともに、解析装置26による正常でない事象の履歴の解析を容易にすることができる。
【0101】
(第2実施形態)
つぎに、第2実施形態に係る情報処理システム10について説明する。第2実施形態に係る情報処理システム10は、全体構成は第1実施形態と同様であり、各構成要素の機能および構成も、第1実施形態とほぼ同一である。従って、第2実施形態に係る情報処理システム10の説明において、第1実施形態と略同一の機能および構成の要素については同一の符号を付けて、相違点を除き詳細な説明を省略する。
【0102】
図14は、第2実施形態に係る情報処理システム10における対象装置12、監視装置14および情報処理装置20の機能構成を示す図である。
【0103】
第2実施形態に係る対象装置12のログ生成部32は、生成したログを、情報処理装置20には送信せずに、対象装置12に対応付けられた監視装置14のみに送信する。
【0104】
第2実施形態に係る監視装置14は、正常リスト比較部54をさらに有する。1または複数の監視装置14のそれぞれの正常リスト比較部54は、正常リストが予め設定される。正常リスト比較部54は、対応する対象装置12から送信されたログを受信し、受信したログが正常リストに違反する違反ログであるか否かを判断する。正常リスト比較部54は、受信したログが違反ログである場合、情報処理装置20に違反ログを送信する。
【0105】
第2実施形態に係る情報処理装置20は、正常リスト比較部54を有さない。第2実施形態に係る情報処理装置20は、違反ログ取得部72をさらに有する。違反ログ取得部72は、1または複数の監視装置14のそれぞれから違反ログを受信する。違反ログ取得部72は、違反ログを受信した場合、違反ログを解析対象記憶装置24に書き込む。また、違反ログ取得部72は、違反ログを受信した場合、違反ログを一時記憶部52に書き込む。さらに、違反ログ取得部72は、違反ログを受信した場合、違反ログを先頭プロセス特定部56に与える。
【0106】
図15は、第2実施形態に係る情報処理システム10の処理の流れを示すフローチャートである。第2実施形態に係る情報処理システム10は、
図15の流れで処理を実行する。
【0107】
第2実施形態に係る情報処理システム10は、S1001およびS1002の処理を、第1実施形態と同様に実行する。
【0108】
第2実施形態に係る情報処理システム10は、S1003の処理に代えて、S1201の処理を実行する。S1201において、対象装置12は、生成したログを、対応する監視装置14に送信する。
【0109】
また、第2実施形態に係る情報処理システム10は、S1005の処理に代えて、S1202およびS1203の処理を実行する。第2実施形態に係る情報処理システム10は、S1201の処理に続いてS1202の処理を実行する。
【0110】
S1202において、監視装置14は、受信したログが予め設定された正常リストに違反するか否かを判断する。受信したログが正常リストに違反しない場合(S1202のNo)、監視装置14は、S1002で生成されたログについての本フローの処理を終了する。受信したログが正常リストに違反する場合(S1202のYes)、監視装置14は、受信したログを違反ログとして、S1203の処理を実行する。
【0111】
S1203において、監視装置14は、違反ログを情報処理装置20に送信する。そして、情報処理装置20は、監視装置14から違反ログを受信する。
【0112】
そして、第2実施形態に係る情報処理システム10は、S1203に続いて、S1006、S1007およびS1008の処理を実行する。第2実施形態に係る情報処理システム10は、S1006、S1007およびS1008以降、第1実施形態と同様の処理を実行する。
【0113】
このような第2実施形態に係る情報処理システム10は、第1実施形態と同様に、例えば正常なプロセスを間に挟んで攻撃を実行する悪意のあるプロセスが発生したような場合であっても、このような悪意のあるプロセスの検出および解析をすることが可能となる。また、第2実施形態に係る情報処理システム10は、ログ列における正常である親子関係が第1世代数連続する最も新しい正常部分列よりも古いログを解析対象記憶装置24に記憶させないので、解析対象記憶装置24のキャパシティおよび解析装置26の解析量を少なくすることができる。
【0114】
さらに、第2実施形態に係る情報処理システム10は、対象装置12において生成されたログが違反ログであるか否かを監視装置14が判断するので、対象装置12が情報処理装置20へとログを送信しなくてよく、違反ログが検出された場合にのみ監視装置14が情報処理装置20へ違反ログを送信すればよい。従って、第2実施形態に係る情報処理システム10は、情報処理装置20が受信するログの量を少なくすることができ、通信負担を軽減することができる。
【0115】
(第3実施形態)
つぎに、第3実施形態に係る情報処理システム10について説明する。第3実施形態に係る情報処理システム10は、全体構成は第2実施形態と同様であり、各構成要素の機能および構成も、第2実施形態とほぼ同一である。従って、第3実施形態に係る情報処理システム10の説明において、第2実施形態と略同一の機能および構成の要素については同一の符号を付けて、相違点を除き詳細な説明を省略する。
【0116】
図16は、第3実施形態に係る情報処理システム10における対象装置12、監視装置14および情報処理装置20の機能構成を示す図である。
【0117】
第3実施形態に係る監視装置14は、第1先頭プロセス特定部82をさらに有する。
【0118】
第3実施形態に係る正常リスト比較部54は、受信したログが違反ログである場合、情報処理装置20に違反ログを送信することに代えて、第1先頭プロセス特定部82に違反ログを与える。
【0119】
第1先頭プロセス特定部82は、正常リスト比較部54から違反ログを取得する。第1先頭プロセス特定部82は、正常リスト比較部54から違反ログを取得した場合、違反ログにより履歴が記述されている事象を発生させたプロセスを、先頭プロセスとして特定する。第1先頭プロセス特定部82は、特定した先頭プロセスを識別する情報をログ読出部46に与える。
【0120】
第3実施形態に係るログ読出部46は、第1先頭プロセス特定部82から先頭プロセスを識別する情報を受け取る。第3実施形態に係るログ読出部46は、第1先頭プロセス特定部82から先頭プロセスを識別する情報を受け取った場合、ログ記憶部42から、n世代分のログを含む分割ログ列を読み出す。すなわち、第3実施形態に係るログ読出部46は、先頭プロセスのログおよび先頭プロセスの生成元を過去に(n-1)世代遡った(n-1)世代のプロセスのそれぞれのログを含む分割ログ列を読み出す。そして、本実施形態においては、ログ読出部46は、取得要求を受け取る毎に、読み出した分割ログ列を情報処理装置20に出力する。
【0121】
なお、第3実施形態に係るログ読出部46は、第2実施形態と同様に、情報処理装置20から取得要求を受け取る場合もある。この場合、第3実施形態に係るログ読出部46は、第2実施形態と同様に処理を実行して、分割ログ列を情報処理装置20に出力する。
【0122】
第3実施形態に係る情報処理装置20は、一時記憶部52と、先頭プロセス特定部56と、ログ列取得部58と、部分列検出部60と、解析対象書込部62とを有する。すなわち、第3実施形態に係る情報処理装置20は、第2実施形態と比較して、正常リスト比較部54を有さない構成である。従って、第3実施形態に係る一時記憶部52および先頭プロセス特定部56は、正常リスト比較部54から違反ログを取得しない。
【0123】
第3実施形態に係るログ列取得部58は、取得要求を監視装置14へと送信しない場合であっても、分割ログ列を監視装置14から受信する場合がある。この場合、第3実施形態に係るログ列取得部58は、取得した分割ログ列を一時記憶部52に書き込み、取得した分割ログ列を解析対象書込部62に与える。第3実施形態に係るログ列取得部58は、部分列検出部60により正常部分列が検出されなかった場合には、第2実施形態と同様に処理を実行する。
【0124】
図17は、第3実施形態に係る情報処理システム10の処理の流れを示すフローチャートである。第3実施形態に係る情報処理システム10は、
図17の流れで処理を実行する。
【0125】
第3実施形態に係る情報処理システム10は、S1001、S1002、S1201およびS1202の処理を、第2実施形態と同様に実行する。なお、第3実施形態に係る情報処理システム10は、S1004およびS1203の処理を実行しない。
【0126】
S1202に続いて、第3実施形態に係る情報処理システム10は、S1301の処理を実行する。S1301において、監視装置14は、違反ログにより履歴が記述されているイベントまたはプロセスを発生させたプロセスを先頭プロセスとして特定する。
【0127】
第3実施形態に係る情報処理システム10は、S1301に続いて、処理をS1011に進める。そして、第3実施形態に係る情報処理システム10は、以後、S1011から処理を実行し、S1006からS1017までの処理を、S1009またはS1016において本フローの処理を終了するまで繰り返す。
【0128】
このような第3実施形態に係る情報処理システム10は、第2実施形態と同様に、例えば正常なプロセスを間に挟んで攻撃を実行する悪意のあるプロセスが発生したような場合であっても、このような悪意のあるプロセスの検出および解析をすることが可能となる。また、第3実施形態に係る情報処理システム10は、ログ列における正常である親子関係が第1世代数連続する最も新しい正常部分列よりも古いログを解析対象記憶装置24に記憶させないので、解析対象記憶装置24のキャパシティおよび解析装置26の解析量を少なくすることができる。
【0129】
さらに、第3実施形態に係る情報処理システム10は、対象装置12において生成されたログが違反ログであるか否かを監視装置14が判断するので、対象装置12が情報処理装置20へとログを送信しなくてよい。さらに、第3実施形態に係る情報処理システム10は、違反ログが検出された場合に、情報処理装置20からの取得要求を受け取らずに、監視装置14が情報処理装置20へ分割ログ列を送信する。従って、第3実施形態に係る情報処理システム10は、情報処理装置20が受信するログの量を少なくするとともに、情報処理装置20での処理量を少なくすることができる。
【0130】
(ハードウェア構成)
図18は、実施形態に係る情報処理装置20のハードウェア構成の一例を示す図である。情報処理装置20は、例えば
図18に示すようなハードウェア構成のコンピュータにより実現される。情報処理装置20は、CPU(Central Processing Unit)301と、RAM(Random Access Memory)302と、ROM(Read Only Memory)303と、操作入力装置304と、表示装置305と、記憶装置306と、通信装置307とを備える。そして、これらの各部は、バスにより接続される。
【0131】
CPU301は、プログラムに従って演算処理および制御処理等を実行するプロセッサである。CPU301は、RAM302の所定領域を作業領域として、ROM303および記憶装置306等に記憶されたプログラムとの協働により各種処理を実行する。
【0132】
RAM302は、SDRAM(Synchronous Dynamic Random Access Memory)等のメモリである。RAM302は、CPU301の作業領域として機能する。ROM303は、プログラムおよび各種情報を書き換え不可能に記憶するメモリである。
【0133】
操作入力装置304は、マウスおよびキーボード等の入力デバイスである。操作入力装置304は、ユーザから操作入力された情報を指示信号として受け付け、指示信号をCPU301に出力する。
【0134】
表示装置305は、LCD(Liquid Crystal Display)等の表示デバイスである。表示装置305は、CPU301からの表示信号に基づいて、各種情報を表示する。
【0135】
記憶装置306は、フラッシュメモリ等の半導体による記憶媒体、または、磁気的若しくは光学的に記録可能な記憶媒体等にデータを書き込みおよび読み出しをする装置である。記憶装置306は、CPU301からの制御に応じて、記憶媒体にデータの書き込みおよび読み出しをする。通信装置307は、CPU301からの制御に応じて外部の機器とネットワークを介して通信する。
【0136】
コンピュータで実行されるプログラムは、正常リスト比較モジュールと、先頭プロセス特定モジュールと、ログ列取得モジュールと、部分列検出モジュールと、解析対象書込モジュールとを含むモジュール構成となっている。このプログラムは、CPU301(プロセッサ)によりRAM302上に展開して実行されることにより、CPU301(プロセッサ)を正常リスト比較部54、先頭プロセス特定部56、ログ列取得部58、部分列検出部60および解析対象書込部62として機能させる。また、RAM302および記憶装置306は、一時記憶部52として機能する。なお、コンピュータで実行されるプログラムは、第2実施形態および第3実施形態のように正常リスト比較モジュールを含まない構成であってもよい。
【0137】
また、コンピュータで実行されるプログラムは、コンピュータにインストール可能な形式または実行可能な形式のファイルで、CD-ROM、フレキシブルディスク、CD-R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【0138】
また、このプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、このプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、情報処理装置20で実行されるプログラムを、ROM303等に予め組み込んで提供するように構成してもよい。
【0139】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0140】
10 情報処理システム
12 対象装置
14 監視装置
20 情報処理装置
24 解析対象記憶装置
26 解析装置
32 ログ生成部
42 ログ記憶部
44 ログ書込部
46 ログ読出部
52 一時記憶部
54 正常リスト比較部
56 先頭プロセス特定部
58 ログ列取得部
60 部分列検出部
62 解析対象書込部
72 違反ログ取得部
82 監視装置内先頭プロセス特定部