(57)【特許請求の範囲】
【請求項１】
分析装置で実行される分析方法であって、
サーバに対するリクエストを含むイベントのログを取得するイベント取得工程と、
前記ログに含まれるイベントを処理したプロセスのプロセスＩＤを用いて、前記リクエストとそれに関連するイベントとの集合をイベントブロックとして作成するイベントブロック作成工程と、
攻撃検知対象のイベントのログから作成されたイベントブロックを、正常なイベントから作成されたイベントブロックに対比させて類似度を求め、該類似度が所定の閾値以下の場合に、攻撃による異常なイベントを含むイベントブロックとして検知する攻撃検知工程と、
を含んだことを特徴とする分析方法。
【請求項２】
前記イベントブロック作成工程において、さらに前記イベントに含まれる送信元ポート番号を用いてイベントブロックを作成することを特徴とする請求項１に記載の分析方法。
【請求項３】
前記イベント取得工程において、前記リクエストについて、処理開始および処理終了をそれぞれイベントとして取得して、
前記イベントブロック作成工程において、発生時刻が該リクエストの処理開始のイベントの発生時刻から処理終了のイベントの発生時刻までの間であるイベントを、該リクエストに関連があるイベントとして前記イベントブロックに含める、
ことを特徴とする請求項１または２に記載の分析方法。
【請求項４】
サーバに対するリクエストを含むイベントのログを取得するイベント取得部と、
前記ログに含まれるイベントを処理したプロセスのプロセスＩＤを用いて、前記リクエストとそれに関連するイベントとの集合をイベントブロックとして作成するイベントブロック作成部と、
攻撃検知対象のイベントのログから作成されたイベントブロックを、正常なイベントから作成されたイベントブロックに対比させて類似度を求め、該類似度が所定の閾値以下の場合に、攻撃による異常なイベントを含むイベントブロックとして検知する攻撃検知部と、
を備えることを特徴とする分析装置。
【請求項５】
サーバに対するリクエストを含むイベントのログを取得するイベント取得ステップと、
前記ログに含まれるイベントを処理したプロセスのプロセスＩＤを用いて、前記リクエストとそれに関連するイベントとの集合をイベントブロックとして作成するイベントブロック作成ステップと、
攻撃検知対象のイベントのログから作成されたイベントブロックを、正常なイベントから作成されたイベントブロックに対比させて類似度を求め、該類似度が所定の閾値以下の場合に、攻撃による異常なイベントを含むイベントブロックとして検知する攻撃検知ステップと、
をコンピュータに実行させるための分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分析方法、分析装置、および分析プログラムに関する。
【背景技術】
【０００２】
近年、Ｗｅｂアプリケーションは、多くのサービスで利用され、社会基盤の一部となりつつある。同時に、Ｗｅｂアプリケーションの脆弱性を悪用する攻撃も増加している。このような攻撃によりコンテンツ改ざんや情報漏洩が発生すると、サービス提供者に甚大な被害が発生するため、攻撃を検知する必要がある。【０００３】
Ｗｅｂアプリケーションへの攻撃を検知するため、同一のＷｅｂサーバ内で発生したＨＴＴＰリクエストイベントと他のイベント等の異種の複数のイベントを関連付けする技術が知られている。例えば、ＨＴＴＰリクエストとＦｉｒｅＷａｌｌログとが比較され、イベントの発生時刻が近いものが相互に関連があるイベントとして関連付けされている（非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Florian  Skopik，Roman  Fiedler，“Intrusion  Detection  in  Distributed  Systems  using  Fingerprinting  and  Massive  Event  Correlation”［online］，２０１２年、［平成２７年７月１６日検索］、インターネット＜ＵＲＬ：http://www.ait.ac.at/uploads/media/Skopik_Fiedler_2013_02.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、イベントの発生時刻のみを参照してイベントの関連付けを行うと、正しく関連付けが行われないケースが発生する恐れがある。例えば、関連がない複数のイベントが偶然に近い時刻に発生すると、誤って関連付けされてしまう場合がある。一方、関連がある複数のイベントの発生時刻が大きく異なると、関連があるにも関わらず関連付けされない場合がある。このように複数のイベントの関連付けが正確に行われないと、Ｗｅｂアプリケーションへの攻撃を正確に検知することができない恐れがある。【０００６】
本発明は、上記に鑑みてなされたものであって、同一のサーバ内で発生した異種の複数のイベントを正確に関連付けして、Ｗｅｂアプリケーションへの攻撃を正確に検知することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明に係る分析方法は、サーバに対するリクエストを含むイベントのログを取得するイベント取得工程と、前記ログに含まれるイベントを処理したプロセスのプロセスＩＤを用いて、前記リクエストとそれに関連するイベントとの集合をイベントブロックとして作成するイベントブロック作成工程と、攻撃検知対象のイベントのログから作成されたイベントブロックを、正常なイベントから作成されたイベントブロックに対比させて類似度を求め、該類似度が所定の閾値以下の場合に、攻撃による異常なイベントを含むイベントブロックとして検知する攻撃検知工程と、を含んだことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、同一のサーバ内で発生した異種の複数のイベントを正確に関連付けして、Ｗｅｂアプリケーションへの攻撃を正確に検知することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本発明の一実施形態に係る分析装置の分析対象のシステムの概略構成を示す模式図である。
【図２】図２は、本実施形態に係る分析装置の概略構成を示す模式図である。
【図３】図３は、本実施形態の分析処理の対象とするイベントを説明するための説明図である。
【図４】図４は、本実施形態のイベントブロックを説明するための説明図である。
【図５】図５は、本実施形態のプロセスツリーを例示する模式図である。
【図６】図６は、本実施形態の送信元ポート番号方式を説明するための説明図である。
【図７】図７は、本実施形態のイベントブロックに対するＩＤ付与を説明するための説明図である。
【図８】図８は、本実施形態のプロファイルリストを例示する図である。
【図９】図９は、本実施形態の攻撃検知処理を示す説明図である。
【図１０】図１０は、本実施形態の分析処理手順を示すフローチャートである。
【図１１Ａ】図１１Ａは、他の実施形態を説明するための説明図である。
【図１１Ｂ】図１１Ｂは、他の実施形態を説明するための説明図である。
【図１２】図１２は、他の実施形態を説明するための説明図である。
【図１３】図１３は、分析プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【００１１】
［システム構成］
図１は、本実施形態に係る分析装置が分析対象とするシステムの概略構成を例示する模式図である。図１に示すように、サービス提供者が運用するＷｅｂサーバ１は、ネットワーク２を介してクライアント端末３からのＨＴＴＰリクエスト等のＷｅｂサーバ１に対するリクエストを受け付けて、クライアント端末３の使用者にＷｅｂアプリケーションサービスを提供する。Ｗｅｂサーバ１は、Ｗｅｂアプリケーションサービス提供に関するＨＴＴＰリクエスト、ファイルアクセス、ネットワークアクセス、コマンド実行、およびデータベース（ＤＢ）アクセス等のイベントのログを適当な記憶領域に記憶している。
【００１２】
このようなシステムにおいて、本実施形態の分析装置１０は、Ｗｅｂサーバ１からイベントのログを取得し、後述する分析処理により、Ｗｅｂサーバ１内で発生した異種の複数のイベントの関連付けを行う。なお、分析装置１０とＷｅｂサーバ１とを同一のハードウェアで構成してもよい。その場合、Ｗｅｂサーバ１が分析処理を行う。
【００１３】
［分析装置の構成］
図２は、本実施形態に係る分析装置の概略構成を示す模式図である。分析装置１０は、ワークステーションやパソコン等の汎用コンピュータで実現され、入力部１１と、出力部１２と、通信制御部１３と、記憶部１４と、制御部１５とを備える。
【００１４】
入力部１１は、キーボードまたはマウス等の入力デバイスを用いて実現され、データ分析者による入力操作に対応して、制御部１５に対して処理開始などの各種指示情報を入力する。出力部１２は、液晶ディスプレイなどの表示装置、プリンター等の印刷装置、情報通信装置等によって実現され、後述する分析処理の結果等をデータ分析者に対して出力する。通信制御部１３は、ＮＩＣ（Network  Interface  Card）等で実現され、ＬＡＮ（Local  Area  Network）やインターネットなどの電気通信回線を介したＷｅｂサーバ１等の外部の装置と制御部１５との通信を制御する。
【００１５】
記憶部１４は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現され、未関連イベントリスト１４１と、イベントブロックリスト１４２と、プロファイルリスト１４３とを記憶する。これらの情報は、後述するように、通信制御部１３あるいは入力部１１を介してＷｅｂサーバ１から取得されるイベントのログをもとに、分析処理において生成される。なお、記憶部１４は、通信制御部１３を介して制御部１５と通信する構成としてもよい。
【００１６】
制御部１５は、ＣＰＵ（Central  Processing  Unit）等の演算処理装置がメモリに記憶された処理プログラムを実行することにより、図２に例示するように、イベント取得部１５１、イベント相関部１５２、イベントＩＤ付与部１５３、プロファイル化部１５４、および攻撃検知部１５５として機能する。
【００１７】
イベント取得部１５１は、サーバに対するリクエストを含むイベントのログを取得する。具体的に、イベント取得部１５１は、Ｗｅｂサーバ１からＨＴＴＰリクエストを含むイベントのログを取得し、図３に例示するように、後述する分析処理を行い易くするために形式を整形する。例えば、イベント取得部１５１は、Ｗｅｂサーバ１から取得した次式（１）に例示されるＨＴＴＰリクエストを、次式（２）に例示するように形式の整形を行う。
【００１８】
【数１】
0006473234.tif 000002
【数２】
0006473234.tif 000003
【００１９】
この整形では、例えば、ＨＴＴＰリクエスト、ファイルアクセス、ネットワークアクセス、コマンド実行、またはデータベース（ＤＢ）アクセス等のイベントの種類が、項目「ｔｙｐｅ」に設定される。具体的には、例えば、ＨＴＴＰリクエストは「ｔｙｐｅ：ｈｔｔｐ＿ｒｅｑ」、ファイルアクセスは「ｔｙｐｅ：ｆｉｌｅ」、ネットワークアクセスは「ｔｙｐｅ：ｎｅｔ」、コマンド実行は「ｔｙｐｅ：ｃｏｍｍａｎｄ」、ＤＢアクセスは「ｔｙｐｅ：ｄｂ」として設定される。
【００２０】
イベント相関部１５２は、イベント取得部１５１により取得されたイベントについて、イベントを処理したプロセスのプロセスＩＤを用いて、ＨＴＴＰリクエストとそれに関連するイベントとの集合をイベントブロックとして作成するイベントブロック作成処理を行う。具体的に、イベント相関部１５２は、図４に例示するように、整形されたイベントからイベントブロックを作成して、記憶部１４のイベントブロックリスト１４２に格納する。また、イベント相関部１５２は、イベントブロックに含められなかったイベントを、記憶部１４の未関連イベントリスト１４１に格納する。
【００２１】
イベント相関部１５２は、イベントブロック作成処理を行う際、各イベント間の関連の有無を確認する方式として、イベントの種類に応じて、プロセスＩＤ方式、送信元ポート番号方式の２つの方式のいずれかを適用する。ここで、プロセスＩＤ方式では、各イベントのプロセスＩＤ（以下、ＰＩＤと略記する場合もある）が用いられる。一方、送信元ポート番号方式では、各イベントの送信元ポート番号（以下、ＳＲＣ＿ＰＯＲＴと略記する場合もある）が用いられる。
【００２２】
プロセスＩＤ方式では、イベント相関部１５２は、ＨＴＴＰリクエストのＰＩＤと各イベントのＰＩＤまたは親プロセスのＰＩＤ（親プロセスＩＤ、以下、ＰＰＩＤと略記する）との関係を確認して関連付けを行う。このプロセスＩＤ方式は、ＨＴＴＰリクエストと、ファイルアクセス、ネットワークアクセス、コマンド実行等のＰＩＤおよび／またはＰＰＩＤが含まれるイベントが対象とされる。
【００２３】
具体的に、イベント相関部１５２は、まず、図５に例示するように、ＨＴＴＰリクエストを処理したプロセスを親プロセスとした各イベントの親子関係を木構造で表すプロセスツリーを求める。プロセスツリーは、例えばＵＮＩＸ（登録商標）のｐｓｔｒｅｅ等のＯＳの機能を用いることにより求められる。図５の例では、ＨＴＴＰリクエストのＰＩＤと、ファイルアクセス、コマンド実行、およびネットワークアクセスのＰＩＤまたはＰＰＩＤとが一致する等して親子関係にあることが表されている。すなわち、ＨＴＴＰリクエスト、ファイルアクセス、ネットワークアクセスのＰＩＤが一致している（ＰＩＤ＝１００１）。また、ファイルアクセスに続くコマンド実行のＰＰＩＤ（＝１００１）がファイルアクセスのＰＩＤと一致することから、親子関係が確認される。このコマンド実行のＰＩＤ（＝１００２）と、これに続くコマンド実行のＰＰＩＤ（＝１００２）とが一致することから、親子関係が確認される。
【００２４】
次に、イベント相関部１５２は、求められたプロセスツリーを構成するＰＩＤが含まれるイベントのうち、親プロセスであるＨＴＴＰリクエストとの発生時刻の差が所定時間Δ以内のイベントを、このＨＴＴＰリクエストに関連があるイベントとして関連付けする。
【００２５】
ここで、所定時間Δとは、Ｗｅｂサーバ１のＯＳが、異なるプロセスに同一のＰＩＤを再利用するまでの最短の時間を意味する。通常、Ｗｅｂサーバ１は、Ｐｒｅｆｏｒｋと呼ばれるモードで動作してメモリリークを防止している。このＰｒｅｆｏｒｋモードでは、各ＨＴＴＰリクエストにプロセスが割り当てられ、１つのプロセスで同時に複数のＨＴＴＰリクエストの処理は行われない。したがって、所定時間Δ以内には、各ＨＴＴＰリクエストをＰＩＤで識別することができる。
【００２６】
送信元ポート番号方式では、イベント相関部１５２は、上記のプロセスＩＤ方式でＨＴＴＰリクエストに関連付けされたイベントと、含まれる送信元ポート番号が一致するイベントをこのＨＴＴＰリクエストに関連付けする。この送信元ポート番号方式は、ネットワークアクセス、ＤＢアクセス等の送信元ポート番号が含まれるイベントが対象とされる。
【００２７】
具体的に、イベント相関部１５２は、プロセスＩＤ方式でＨＴＴＰリクエストに関連付けされたネットワークアクセスと、含まれる送信元ポート番号が一致するＤＢアクセスについて、発生時刻を確認する。そして、ＨＴＴＰリクエストとの発生時刻の差がΔ以内であれば、イベント相関部１５２は、このＤＢアクセスをＨＴＴＰリクエストおよびネットワークアクセスに関連があるイベントとして関連付けする。
【００２８】
通常、Ｗｅｂサーバ１の外部のＤＢにＴＣＰ通信を利用してアクセスするＤＢアクセスには、ＨＴＴＰリクエストのＰＩＤが付与されない。そこで、ＷｅｂサーバとＤＢとの間のＴＣＰ通信で用いられる送信元ポート番号を確認することにより、ＤＢクエリに対する応答を確認でき、ＨＴＴＰリクエストに関連があるＤＢアクセスを特定することができる。これにより、図６に例示するように、送信元ポート番号方式によりＤＢアクセスがＨＴＴＰリクエストおよびネットワークアクセスに関連付けされる。
【００２９】
図６の例では、ＨＴＴＰリクエストとネットワークアクセスとが、ＰＩＤが一致する（ＰＩＤ＝１００１）ことから、プロセスＩＤ方式により関連付けされている。さらに、ネットワークアクセスとＤＢアクセスとが、送信元ポート番号が一致する（ＳＲＣ＿ＰＯＲＴ＝５０００１）ことから、送信元ポート番号方式により関連付けされている。
【００３０】
同様に、図４の例では、ｅｖｅｎｔ１とｅｖｅｎｔ２、ｅｖｅｎｔ３、およびｅｖｅｎｔ６とは、ＰＩＤが一致する（ｐｉｄ：１００１）ことから、プロセスＩＤ方式により関連付けされている。また、ｅｖｅｎｔ４は、ＰＰＩＤ（：１００１）がｅｖｅｎｔ１のＰＩＤ（：１００１）と一致すること、すなわち、ｅｖｅｎｔ１がｅｖｅｎｔ４の親プロセスであることから、プロセスＩＤ方式により関連付けされている。また、ｅｖｅｎｔ８は、ＰＰＩＤ（：１００２）がｅｖｅｎｔ４のＰＩＤ（：１００２）と一致すること、すなわち、ｅｖｅｎｔ４がｅｖｅｎｔ８の親プロセスであることから、プロセスＩＤ方式により関連付けされている。さらに、ｅｖｅｎｔ６とｅｖｅｎｔ７とは、送信元ポート番号（ｓｒｃ＿ｐｏｒｔ：５０００１）が一致することから、送信元ポート番号方式により関連付けされている。
【００３１】
イベントＩＤ付与部１５３は、イベントブロック内の各イベントを識別可能なイベントＩＤを付与する。例えば、図７に例示するように、ｗｅｂ１、ｆｉｌｅ２、ｎｅｔｗｏｒｋ１、ｃｏｍｍａｎｄ１、ｄｂ１等のように、各イベントをイベントの種類とともに識別可能なイベントＩＤが付与される。図７の例では、ＨＴＴＰリクエストが「ｗｅｂ」、ファイルアクセスが「ｆｉｌｅ」、ネットワークアクセスが「ｎｅｔｗｏｒｋ」、コマンド実行が「ｃｏｍｍａｎｄ」、ＤＢアクセスが「ｄｂ」で表されている。
【００３２】
プロファイル化部１５４は、イベントブロックを抽象化してプロファイルを作成する。具体的に、プロファイル化部１５４は、イベントブロックリスト１４２のイベントブロックから、関連付けされたイベントのイベントＩＤと順序とを識別可能なパターンをプロファイルとして作成する。例えば、図７に例示されたイベントブロックから、次式（３）に例示するプロファイルが作成される。なお、式（３）には、各イベントが何回発生したかが表されている。例えば、Ｗｅｂ１：１とは、Ｗｅｂ１のイベントが１回発生したことを表している。
【００３３】
【数３】
0006473234.tif 000004
【００３４】
そして、プロファイル化部１５４は、作成したプロファイルを、図８に例示するように、プロファイルリスト１４３に格納する。なお、上記のイベントＩＤ付与部１５３によるイベントＩＤ付与処理と、プロファイル化部１５４によるプロファイル作成処理とは、後述する攻撃検知部１５５による攻撃検知処理のための学習に相当する。
【００３５】
攻撃検知部１５５は、攻撃検知対象のイベントのログから作成されたイベントブロックを、正常なイベントから作成されたプロファイルリスト１４３のプロファイルに対比させて類似度を求め、該類似度が所定の閾値以下の場合に、攻撃による異常なイベントを含むイベントブロックとして検知する攻撃検知処理を行う。
【００３６】
具体的に、攻撃検知部１５５は、図９に例示するように、まず、検知対象のイベントブロックをプロファイルと対比させる。すなわち、攻撃検知部１５５は、親プロセスとしてのＨＴＴＰリクエスト（ｗｅｂ１）と、このイベントブロックに含まれるイベント（ｗｅｂ１，ｆｉｌｅ１，ｆｉｌｅ２，ｃｏｍｍａｎｄ１，ｃｏｍｍａｎｄ２，ｎｅｔｗｏｒｋ１，ｄｂ１）とを列挙する。図９に示す例では、各イベントの発生回数が併せて示されている。
【００３７】
そして、攻撃検知部１５５は、検知対象のイベントブロックに含まれる各イベントとプロファイルリスト１４３のプロファイルの各イベントとの類似度を算出する。ここで類似度は、例えば、ＴＦ（Term  Frequency、単語の出現頻度）とＩＤＦ（Inverse  Document  Frequency、逆文書頻度）との二つの指標にもとづいて算出されるＴＦ−ＩＤＦ等が用いられる。図９の例では、類似度に代えて非類似度を算出し、この非類似度が所定の閾値より大きい異常値を示した場合に、攻撃検知部１５５は、攻撃による異常と判定している。例えば、図９に示す例では、ｃｏｍｍａｎｄ２の非類似度２．３が所定の閾値より大きい異常値であることから、攻撃検知部１５５は、攻撃による異常と判定している。
【００３８】
なお、攻撃検知部１５５は、攻撃検知対象のイベントブロックの各イベントの類似度を算出する代わりに、イベントブロックそのものとプロファイルリスト１４３のプロファイルとの類似度を算出してもよい。また、攻撃検知部１５５は、異常なイベントから作成されたプロファイルリスト１４３を用いてもよい。その場合には、攻撃検知部１５５は、プロファイルリスト１４３のプロファイルとの類似度が所定の閾値より高い場合に、攻撃による異常と判定する。
【００３９】
［分析処理］
次に、図１０のフローチャートを参照して、分析装置１０における分析処理手順について説明する。図１０のフローチャートは、例えば、データ分析者により入力部１１を介して分析開始の指示入力があったタイミングで開始となり、分析終了の命令を示す入力がある（ステップＳ１，Ｙｅｓ）まで、以降の処理が続行される（ステップＳ１，Ｎｏ）。
【００４０】
イベント相関部１５２は、まず、未処理のイベントがあるかをチェックする（ステップＳ２）。イベント相関部１５２は、未処理のイベントがなければ（ステップＳ２，Ｎｏ）、ステップＳ１の処理に戻した後、次の未処理のイベントがあるかをチェックする。未処理のイベントがあれば（ステップＳ２，Ｙｅｓ）、ＨＴＴＰリクエストであるか否かを確認する（ステップＳ３）。
【００４１】
ＨＴＴＰリクエストであれば（ステップＳ３，Ｙｅｓ）、イベント相関部１５２は、このＨＴＴＰリクエストを含むイベントブロックを作成する（ステップＳ３１）。また、イベント相関部１５２は、未関連イベントリスト１４１に、このＨＴＴＰリクエストに関連付けできるイベントがあれば、未関連イベントリスト１４１から取り除き、このイベントブロックに加え（ステップＳ３２）、ステップＳ１の処理に戻した後、次の未処理イベントがあるかをチェックする。一方、ＨＴＴＰリクエストでなければ（ステップＳ３，Ｎｏ）、イベント相関部１５２は、ＰＩＤが含まれるイベントか否かを確認する（ステップＳ４）。
【００４２】
ＰＩＤが含まれるイベントであれば（ステップＳ４，Ｙｅｓ）、イベント相関部１５２は、ステップＳ３１の処理で作成済みのイベントブロックに関連付けできるかを確認する（ステップＳ４１）。関連付けできる場合には（ステップＳ４１，Ｙｅｓ）、イベント相関部１５２は、当該イベントをイベントブロックに加え（ステップＳ４２）、ステップＳ１の処理に戻した後、次のイベントを参照する。一方、関連付けできない場合には（ステップＳ４１，Ｎｏ）、イベント相関部１５２は、当該イベントを未関連イベントリスト１４１に加え（ステップＳ４３）、ステップＳ１の処理に戻した後、次のイベントを参照する。ＰＩＤが含まれるイベントでなければ（ステップＳ４，Ｎｏ）、イベント相関部１５２は、ＳＲＣ＿ＰＯＲＴが含まれるイベントか否かを確認する（ステップＳ５）。
【００４３】
ＳＲＣ＿ＰＯＲＴが含まれるイベントであれば（ステップＳ５，Ｙｅｓ）、イベント相関部１５２は、ステップＳ３１の処理で作成済みのイベントブロックのネットワークアクセスイベントに関連付けできるかを確認する（ステップＳ５１）。関連付けできる場合には（ステップＳ５１，Ｙｅｓ）、イベント相関部１５２は、当該イベントをイベントブロックに加え（ステップＳ５２）、ステップＳ１の処理に戻した後、次のイベントを参照する。一方、関連付けできない場合には（ステップＳ５１，Ｎｏ）、イベント相関部１５２は、当該イベントを未関連イベントリスト１４１に加え（ステップＳ５３）、ステップＳ１の処理に戻した後、次のイベントを参照する。ＳＲＣ＿ＰＯＲＴが含まれるイベントでなければ（ステップＳ５，Ｎｏ）、イベント相関部１５２は、ステップＳ１の処理に戻した後、次のイベントを参照する。
【００４４】
イベント相関部１５２は、上記の処理により、正常なイベントからイベントブロックを作成した後、攻撃検知対象のイベントのログからイベントブロックを作成する。そして、攻撃検知部１５５が、攻撃検知対象のイベントのログから作成されたイベントブロックを、正常なイベントからイベントＩＤ付与部１５３およびプロファイル化部１５４により作成されたプロファイルリスト１４３のプロファイルに対比させて類似度を求める。また、攻撃検知部１５５が、求めた類似度が所定の閾値以下の場合に、攻撃による異常なイベントを含むイベントブロックとして検知する攻撃検知処理を行う。これにより、一連の分析処理が終了する。
【００４５】
以上、説明したように、本実施形態の分析装置１０では、イベント取得部１５１がＷｅｂサーバ１に対するＨＴＴＰリクエストを含むイベントのログを取得し、イベント相関部１５２が、イベントを処理したプロセスのプロセスＩＤを用いて、ＨＴＴＰリクエストとそれに関連するイベントとの集合をイベントブロックとして作成する。これにより、同一のＷｅｂサーバ１内で発生した異種の複数のイベントを正確に関連付けすることができる。
【００４６】
また、攻撃検知部１５５が、攻撃検知対象のイベントのログから作成されたイベントブロックを、正常なイベントから作成されたプロファイルリスト１４３のプロファイルに対比させて類似度を求め、該類似度が所定の閾値以下の場合に、攻撃による異常なイベントを含むイベントブロックとして検知する。したがって、Ｗｅｂアプリケーションへの攻撃を正確に検知することが可能となる。
【００４７】
なお、上記したイベント相関部１５２の処理において、所定時間Δ以内の各ＨＴＴＰリクエストをＰＩＤで識別している。ただし、図１１Ａに示すように、所定時間Δ以内のごく短時間に複数のＨＴＴＰリクエストが発生した場合に、同一のＰＩＤ（＝１）で処理が行われる可能性がある。この場合に、後続するイベントが異なるＨＴＴＰリクエストに誤って関連付けされる恐れがある。そこで、図１１Ｂに示すように、イベント取得部１５１が、Ｗｅｂサーバ１のＨＴＴＰリクエストについて、処理開始および処理終了をイベントとして取得する。そうすれば、イベント相関部１５２は、ＨＴＴＰリクエストの処理開始から処理終了までの間に発生したイベントをこのＨＴＴＰリクエストに関連付けすればよい。
【００４８】
具体的には、図１２に例示するように、イベント取得部１５１が、ｅｖｅｎｔ１のＨＴＴＰリクエストの処理開始をｅｖｅｎｔ１−１、処理終了をｅｖｅｎｔ１−２として取得する。また、ｅｖｅｎｔ２のＨＴＴＰリクエストの処理開始をｅｖｅｎｔ２−１、処理終了をｅｖｅｎｔ２−２として取得する。ここでは、ｓｔａｒｔが含まれているイベントをｅｖｅｎｔｘ−１、ｅｎｄが含まれているイベントをｅｖｅｎｔｘ−２としている。これにより、イベント相関部１５２は、ｅｖｅｎｔ１（ｅｖｅｎｔ１−１，ｅｖｅｎｔ１−２）、ｅｖｅｎｔ２（ｅｖｅｎｔ２−１，ｅｖｅｎｔ２−２）のＰＩＤが同一（ｐｉｄ：１００１）であっても、ｅｖｅｎｔ３を正確にｅｖｅｎｔ２に関連付けすることができる。すなわち、イベント相関部１５２は、各イベントの発生時刻ｔｉｍｅｓｔａｍｐを参照して、ｅｖｅｎｔ３の発生時刻が、ｅｖｅｎｔ２−１の発生時刻すなわちｅｖｅｎｔ２の処理開始から、ｅｖｅｎｔ２−２の発生時刻すなわちｅｖｅｎｔ２の処理終了までの間であることを確認する。これにより、ｅｖｅｎｔ３が正確にｅｖｅｎｔ１ではなくｅｖｅｎｔ２に関連付けされる。
【００４９】
［プログラム］
上記実施形態に係る分析装置１０が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、係るプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、分析装置１０と同様の機能を実現する分析プログラムを実行するコンピュータの一例を説明する。
【００５０】
図１３に示すように、分析プログラムを実行するコンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。これらの各部は、バス１０８０によって接続される。
【００５１】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０３１に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１０４１に接続される。ディスクドライブ１０４１には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース１０５０には、例えば、マウス１０５１およびキーボード１０５２が接続される。ビデオアダプタ１０６０には、例えば、ディスプレイ１０６１が接続される。
【００５２】
ここで、図１３に示すように、ハードディスクドライブ１０３１は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３およびプログラムデータ１０９４を記憶する。上記実施形態で説明した各テーブルは、例えばハードディスクドライブ１０３１やメモリ１０１０に記憶される。
【００５３】
また、分析プログラムは、例えば、コンピュータ１０００によって実行される指令が記述されたプログラムモジュール１０９３として、ハードディスクドライブ１０３１に記憶される。具体的には、上記実施形態で説明した分析装置１０が実行する各処理が記述されたプログラムモジュールが、ハードディスクドライブ１０３１に記憶される。
【００５４】
また、分析プログラムによる情報処理に用いられるデータは、プログラムデータ１０９４として、例えば、ハードディスクドライブ１０３１に記憶される。そして、ＣＰＵ１０２０が、ハードディスクドライブ１０３１に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した各手順を実行する。
【００５５】
なお、分析プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０３１に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ１０４１等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、分析プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【００５６】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。
【産業上の利用可能性】
【００５７】
以上のように、本発明は、Ｗｅｂアプリケーションへの攻撃の検知に適用することができる。
【符号の説明】
【００５８】
１  Ｗｅｂサーバ
２  ネットワーク
３  クライアント端末
１０  分析装置
１１  入力部
１２  出力部
１３  通信制御部
１４  記憶部
１４１  未関連イベントリスト
１４２  イベントブロックリスト
１４３  プロファイルリスト
１５  制御部
１５１  イベント取得部
１５２  イベント相関部
１５３  イベントＩＤ付与部
１５４  プロファイル化部
１５５  攻撃検知部
【図１】
0006473234.tif 000005
【図２】
0006473234.tif 000006
【図３】
0006473234.tif 000007
【図４】
0006473234.tif 000008
【図５】
0006473234.tif 000009
【図６】
0006473234.tif 000010
【図７】
0006473234.tif 000011
【図８】
0006473234.tif 000012
【図９】
0006473234.tif 000013
【図１０】
0006473234.tif 000014
【図１１Ａ】
0006473234.tif 000015
【図１１Ｂ】
0006473234.tif 000016
【図１２】
0006473234.tif 000017
【図１３】
0006473234.tif 000018