(57)【要約】【課題】通信情報の蓄積処理及び解析処理のそれぞれを高速に実行することのできる通信情報監査装置、方法及びプログラムを提供する。【解決手段】通信情報監査装置は、各フレームデータをそれぞれ記憶部へ格納する格納手段と、この記憶部に格納された各フレームについて、該フレームの格納位置を示すオフセット情報及び該フレームに含まれるパケットのアドレス情報を含むフレーム情報をそれぞれ取得する取得手段と、この取得手段により取得されたフレーム情報に基づいて上記記憶部に格納されたフレームデータを参照することにより、仮想通信路でやりとりされたパケットの統計情報を生成する解析手段と、この解析手段により生成された各仮想通信路に関する統計情報をそれぞれ出力する出力手段と、上記格納手段、上記取得手段、上記解析手段、上記出力手段がそれぞれ並列処理されるように制御する制御手段と、を備える。【選択図】図３
2008205954.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上を流れるフレームを取得し、取得された各フレームデータをそれぞれ記憶部へ格納する格納手段と、
前記記憶部に格納された各フレームについて、該フレームの格納位置を示すオフセット情報及び該フレームに含まれるパケットのアドレス情報を含むフレーム情報をそれぞれ取得する取得手段と、
前記取得手段により取得されたフレーム情報に基づいて前記記憶部に格納されたフレームデータを参照することにより、パケットをやりとりするための仮想通信路毎に、該仮想通信路でやりとりされたパケットの統計情報を生成する解析手段と、
前記解析手段により生成された各仮想通信路に関する統計情報をそれぞれ出力する出力手段と、
前記格納手段、前記取得手段、前記解析手段、前記出力手段がそれぞれ並列処理されるように制御する制御手段と、
を備えることを特徴とする通信情報監査装置。
【請求項２】
前記解析手段を複数備え、
前記制御手段は、更に、前記複数の解析手段が並列処理されるように制御することを特徴とする請求項１に記載の通信情報監査装置。
【請求項３】
前記フレーム情報をフレーム単位に格納する解析キューを前記解析手段の数に応じて更に備え、
前記取得手段は、
前記パケットのアドレス情報に基づいて生成される解析キーに対応する解析キューに前記フレーム情報を順次格納し、
前記各解析手段はそれぞれ、
前記複数の解析キューのうち対応する１つの解析キューから前記フレーム情報を順次取得し、取得されたフレーム情報に含まれる前記オフセット情報により、前記記憶部に格納されたフレームデータのうち解析対象となるフレームデータを特定し参照する、ことを特徴とする請求項２に記載の通信情報監査装置。
【請求項４】
前記解析手段は、
前記フレーム情報のオフセット情報により解析対象のフレームデータを参照し、このフレームデータに含まれるパケットのアドレス情報及びポート情報に基づいて、該パケットがやりとりされる仮想通信路を特定するための接続キーを生成する接続キー生成手段と、
前記仮想通信路毎に生成された統計情報を前記仮想通信路毎に保持する接続情報保持部と、
前記解析対象のフレームデータに関連する仮想通信路についての統計情報が保持される前記接続情報保持部内の位置を前記接続キーで特定し、特定された仮想通信路に関する統計情報をこの解析対象のフレームデータにより更新する統計情報生成手段と、
を有することを特徴とする請求項１から３のいずれか１つに記載の通信情報監査装置。
【請求項５】
前記解析手段は、
前記仮想通信路の統計情報に含まれる通信状態情報がこの仮想通信路を利用した通信の終了を示す場合に、この仮想通信路に関する統計情報を出力するように前記出力手段に依頼する依頼手段を更に有し、
前記依頼手段は、
前記解析対象のフレームデータの取得時刻が、同一仮想通信路でやりとりされたパケットを含むフレームであって既に解析済みとなったフレームデータの取得時刻から所定の
時間経過している場合に、この仮想通信路の異常と判定し、この仮想通信路に関する統計情報を出力するように前記出力手段に依頼する、
ことを特徴とする請求項４に記載の通信情報監査装置。
【請求項６】
前記仮想通信路に関する統計情報には、仮想通信路でやりとりされた総パケットデータ長を含み、
前記統計情報生成手段は、前記解析対象のフレームデータに含まれるパケットについての仮想通信路がＴＣＰ（Transmission Control Protocol）コネクションである場合に、そのパケットに格納される確認応答情報に基づき前記総パケットデータ長を更新する、
ことを特徴とする請求項４又は５に記載の通信情報監査装置。
【請求項７】
前記出力手段は、各仮想通信路に関する統計情報と共に、各仮想通信路でやりとりされたパケットを含むフレームのオフセット情報リストをそれぞれ出力し、
不正パケット検出手段から不正パケットのアドレス情報及びポート情報を含む警報情報を取得する警報取得手段と、
前記不正パケットのアドレス情報及びポート情報に基づいて、該不正パケットに関する仮想通信路でやりとりされたパケットを含む全てのフレームのオフセット情報を前記オフセット情報リストから抽出する抽出手段と、
前記抽出手段により抽出されたオフセット情報の示す位置に格納されるフレームデータを前記記憶部から取得する関連フレーム取得手段と、
を更に備えることを特徴とする請求項１から６のいずれか１つに記載の通信情報監査装置。
【請求項８】
前記出力手段は、前記オフセット情報リストを各仮想通信路を特定するための前記接続キーに関連付けてそれぞれ出力し、
前記抽出手段は、前記警報取得手段により取得された不正パケットのアドレス情報及びポート情報に基づいて生成される接続キーを用いて前記オフセット情報リストから対象のフレームのオフセット情報を抽出する、
ことを特徴とする請求項７に記載の通信情報監査装置。
【請求項９】
ネットワーク上を流れるフレームを取得し、取得された各フレームデータをそれぞれ記憶部へ格納する格納ステップと、
前記記憶部に格納された各フレームについて、該フレームの格納位置を示すオフセット情報及び該フレームに含まれるパケットのアドレス情報を含むフレーム情報をそれぞれ取得する取得ステップと、
前記取得ステップにより取得されたフレーム情報に基づいて前記記憶部に格納されたフレームデータを参照することにより、パケットをやりとりするための仮想通信路毎に、該仮想通信路でやりとりされたパケットの統計情報を生成する解析ステップと、
前記解析ステップにより生成された各仮想通信路に関する統計情報をそれぞれ出力する出力ステップと、を備え、
前記格納ステップ、前記取得ステップ、前記解析ステップ、前記出力ステップがそれぞれ並列処理される、
ことを特徴とする通信情報監査方法。
【請求項１０】
ネットワークに接続されるコンピュータに通信情報監査処理を実行させるプログラムであって、
前記通信情報監査処理は、
ネットワーク上を流れるフレームを取得し、取得された各フレームデータをそれぞれ記憶部へ格納する格納ステップと、
前記記憶部に格納された各フレームについて、該フレームの格納位置を示すオフセット
情報及び該フレームに含まれるパケットのアドレス情報を含むフレーム情報をそれぞれ取得する取得ステップと、
前記取得ステップにより取得されたフレーム情報に基づいて前記記憶部に格納されたフレームデータを参照することにより、パケットをやりとりするための仮想通信路毎に、該仮想通信路でやりとりされたパケットの統計情報を生成する解析ステップと、
前記解析ステップにより生成された各仮想通信路に関する統計情報をそれぞれ出力する出力手段と、を備え、
前記格納ステップ、前記取得ステップ、前記解析ステップ、前記出力ステップがそれぞれ並列処理されることで実現される、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを流れる通信情報を蓄積及び解析しその解析結果を出力する通信情報監査装置、方法及びプログラムに関する。
【背景技術】
【０００２】
インターネットの普及と共に、ネットワークセキュリティの重要性が増している。特に、インターネットに接続されるネットワークシステムは、インターネット上の不正ユーザからの様々な手法による不正行為から防御する機能を備える必要がある。この不正行為には、例えば、ネットワークシステム内のサーバコンピュータへ不正侵入する行為や、ＤｏＳ（Denial of Service）攻撃によりそのシステムのサービス提供を不能に陥れる行為等がある。
【０００３】
このような不正侵入から防御するための技術として、ファイアウォール、侵入検出システム（以降、ＩＤＳ（Intrusion Detection System）と表記する）等がある。ファイアウォールは、パケットの種類（ポート番号等）や送受信先等の許可されるパターンが予め設定され、そのパターン以外のパケットを遮断する技術である。ＩＤＳは、全てのパケットを監視し、予め登録される不正なパケットのパターン（シグネチャ）と受信されたパケットのパターンとのマッチングを行うことにより、不正アクセスを検知する技術である。
【０００４】
このＩＤＳに関し、既知の不正アクセスに関わるパケットのもつ特徴の一覧のみを参照して不正パケットの検索を行うことにより、パケット解析処理を高速化する技術が開示されている（例えば、特許文献１参照）。
【０００５】
しかしながら、ＩＤＳは不正アクセスに関わるパケット検知を目的とするものであるため、シグネチャとパターンマッチした不正パケット及びその後数パケットに関する情報が出力されるに過ぎない。これでは、その不正パケットが送信された前後においてどのようなやりとりがされたのかを解析することができないため、不正アクセスの成否や被害状況等を解明することはできない。
【０００６】
一方、対象ネットワークを流れるデータストリームのデータを傍受し、この傍受したデータを各セッションで区分し所定の解析データを付加した状態でデータベースに蓄積することにより、対象ネットワークの通信結果を容易に確認できるようにする技術（通信情報記録装置）がある（下記特許文献２参照）。
【特許文献１】特開２００３−２２３３７５号公報
【特許文献２】特表２００２−０２９５７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述の従来技術の通信情報記録装置では、通信情報蓄積処理及び通信情報解析処理を併せて行う必要があるため、通信速度が向上した近年においては通信速度に装置の処理スピードが追い付かず、蓄積すべき通信情報の取りこぼし等それらの処理が適切に実行されない場合がある。
【０００８】
本発明は、かかる課題を解決するために、通信情報の蓄積処理及び解析処理のそれぞれを高速に実行することのできる通信情報監査装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、上述した課題を解決するために以下の構成を採用する。即ち、本発明は、ネットワーク上を流れるフレームを取得し、取得された各フレームデータをそれぞれ記憶部へ格納する格納手段と、この記憶部に格納された各フレームについて、該フレームの格納位置を示すオフセット情報及び該フレームに含まれるパケットのアドレス情報を含むフレーム情報をそれぞれ取得する取得手段と、この取得手段により取得されたフレーム情報に基づいて上記記憶部に格納されたフレームデータを参照することにより、パケットをやりとりするための仮想通信路毎に、該仮想通信路でやりとりされたパケットの統計情報を生成する解析手段と、この解析手段により生成された各仮想通信路に関する統計情報をそれぞれ出力する出力手段と、上記格納手段、上記取得手段、上記解析手段、上記出力手段がそれぞれ並列処理されるように制御する制御手段と、を備えることを特徴とする通信情報監査装置についてのものである。
【００１０】
本発明によれば、フレームデータを記憶部に格納する格納手段と、この記憶部に格納されたフレームデータを解析して各仮想通信路に関する統計情報を生成する解析手段と、この解析手段により生成された統計情報を出力する出力手段とがそれぞれ並列処理される。
【００１１】
すなわち、一般的に処理速度が遅いといわれる記憶部へのアクセスを必要とする上記格納手段、上記取得手段及び上記出力手段と、それ以外の上記解析処理とが並列処理されるため、通信情報の蓄積処理をもれなく実行しながら、略同時に解析処理を実行することができる。ひいては、通信情報の蓄積処理及び解析処理を高速に実行することができる。
【００１２】
ここで、仮想通信路とは、例えば、ＴＣＰ（Transmission Control Protocol）のコネクションであり、ＵＤＰ（User Datagram Protocol）を用いて２つのエンドポイント間でデータグラムをやりとりするための通信路である。また、この仮想通信路は、単に２つの通信装置間で相互通信される単位であってもよいものとする。
【００１３】
更に、本発明に係る通信情報監査装置は、上記解析手段を複数備えるようにし、上記制御手段が更にこれら複数の解析手段が並列処理されるように制御するようにしてもよい。
【００１４】
これにより、更に高速の解析処理を実現することが可能となる。
【００１５】
解析手段を複数備える構成において、本発明に係る通信情報監査装置は、上記フレーム情報をフレーム単位に格納する解析キューを解析手段の数に応じて更に備えるようにし、上記取得手段が、上記パケットのアドレス情報に基づいて生成される解析キーに対応する解析キューに上記フレーム情報を順次格納するようにし、上記解析手段が、これら複数の解析キューのうち対応する１つの解析キューからフレーム情報を順次取得し、取得されたフレーム情報に含まれるオフセット情報により、上記記憶部に格納されたフレームデータのうち解析対象となるフレームデータを特定し参照するようにしてもよい。
【００１６】
これによれば、取得手段が上記記憶部に格納された各フレームについての格納位置を示すオフセット情報を解析キーに対応する解析キューに順次格納していく。このとき、格納すべき解析キューを特定するための解析キーはアドレス情報により生成される。
【００１７】
これにより、１つの仮想通信路でやりとりされるパケットを含むフレームに関するフレーム情報が異なる解析キューに格納されることはないように構成されている。
【００１８】
従って、各解析手段は、対応する１の解析キューからオフセット情報をフレーム毎にそれぞれ取得するようにすれば、解析手段が複数存在しそれらが並行に動作する場合であっても、各解析手段は、１つの仮想通信路に関する統計情報をそれぞれがまとめて統計する
ことができる。言い換えれば、複数の解析手段が１つの仮想通信路に関する統計情報を生成することがないため、処理が煩雑にならずかつ解析処理の高速化を実現することができる。
【００１９】
すなわち、１つの取得手段と複数の解析手段とを備えかつそれらを並行動作させることにより解析処理の高速化を図ったとしても、適切な解析処理を実現することができる。
【００２０】
また、上記解析手段については、上記フレーム情報のオフセット情報により解析対象のフレームデータを参照し、このフレームデータに含まれるパケットのアドレス情報及びポート情報に基づいて、このパケットがやりとりされる仮想通信路を特定するための接続キーを生成する接続キー生成手段と、仮想通信路毎に生成された統計情報を仮想通信路毎に保持する接続情報保持部と、解析対象のフレームデータに関連する仮想通信路についての統計情報が保持される接続情報保持部内の位置を上記接続キーで特定し、特定された仮想通信路に関する統計情報をこの解析対象のフレームデータにより更新する統計情報生成手段とを有するように構成してもよい。
【００２１】
これによれば、各仮想通信路に関する統計情報は、解析対象のフレームデータに含まれるパケットを参照する度に更新される。よって、各仮想通信路でやりとりされるパケットの含まれるフレーム群を検出するのに、一度参照されたフレームデータを更に参照するような重複参照を避けることができるため、高速の解析処理を実現することができる。
【００２２】
更に、統計情報の更新にあたり、更新対象となる情報が保持されている接続情報保持部内の位置が接続キーにより特定される。この接続キーは、パケットのアドレス情報及びポート情報に基づいて生成されるため仮想通信路を特定し得るキーとなる。
【００２３】
従って、統計情報を接続情報保持部内で逐次更新していくという上記構成を取ったとしても高速な解析処理を実現することができる。
【００２４】
また、上記解析手段については、仮想通信路の統計情報に含まれる通信状態情報がこの仮想通信路を利用した通信の終了を示す場合に、この仮想通信路に関する統計情報を出力するように出力手段に依頼する依頼手段を更に有するようにし、この依頼手段が、解析対象のフレームデータの取得時刻が、同一仮想通信路でやりとりされたパケットを含むフレームであって既に解析済みとなったフレームデータの取得時刻から所定の時間経過している場合に、この仮想通信路の異常と判定し、この仮想通信路に関する統計情報を出力するように出力手段に依頼するようにしてもよい。
【００２５】
これによれば、各解析手段で仮想通信路を利用した通信の終了を検出することができ、この通信の終了が検出された仮想通信路毎に統計情報を出力手段に出力するように依頼することができるため、複数の解析手段及び出力手段が並行動作していたとしても適切なタイミングで統計情報の出力を行うことができる。更に、通信の終了を検出した解析手段から順に出力手段に出力依頼が出されるために出力手段による出力処理を時間的に分散させることができ、トータルとして解析処理を高速化することができる。
【００２６】
また、仮想通信路に関する統計情報には、仮想通信路でやりとりされた総パケットデータ長を含むようにし、上記統計情報生成手段が、解析対象のフレームデータに含まれるパケットについての仮想通信路がＴＣＰコネクションである場合に、そのパケットに格納される確認応答情報に基づき総パケットデータ長を更新するようにしてもよい。
【００２７】
ここで、この確認応答情報とは、ＴＣＰヘッダに格納される「Acknowledgement Number」である。
【００２８】
従来、或る仮想通信路でやりとりされた全てのパケットのデータ長の合計（総パケットデータ長）を算出する場合には、例えばＴＣＰコネクションでは再送が行われることがあるため重複するパケットのデータ長を除くために、過去に参照されたパケットについてフラグメント化されたパケットを再構築しながら全てそのパケット長を加算していくという処理が行われており、この処理がボトルネックになっていた。
【００２９】
しかしながら、上記態様によれば、ＡＣＫパケットの確認応答番号によってのみパケットストリーム長を更新することで正確な総パケットデータ長を得ることができるため、フラグメント化されたパケット全体の再構築等の処理を省くことができるため、解析処理を高速化することができる。
【００３０】
また、本発明に係る通信情報監査装置では、上記出力手段が、各仮想通信路に関する統計情報と共に、各仮想通信路でやりとりされたパケットを含むフレームのオフセット情報リストをそれぞれ出力するようにし、不正パケット検出手段から不正パケットのアドレス情報及びポート情報を含む警報情報を取得する警報取得手段と、上記不正パケットのアドレス情報及びポート情報に基づいて、当該不正パケットに関する仮想通信路でやりとりされたパケットを含む全てのフレームのオフセット情報を上記オフセット情報リストから抽出する抽出手段と、この抽出手段により抽出されたオフセット情報の示す位置に格納されるフレームデータを上記記憶部から取得する関連フレーム取得手段とを更に備えるように構成してもよい。
【００３１】
ここで、不正パケット検出手段とは、例えば、ＩＤＳが相当する。
【００３２】
このような構成により、従来のシステムではＩＤＳの検知した不正パケット及びその後数パケットに関する情報しか出力されていなかったのに対して、本発明によれば、不正パケット検出手段により検知されたアラートの対象となったパケットに関する仮想通信路でやりとりされた全パケットを対象として解析することができる。
【００３３】
このような構成において、上記出力手段が、上記オフセット情報リストを各仮想通信路を特定するための接続キーに関連付けてそれぞれ出力するようにし、上記抽出手段が、上記警報取得手段により取得された不正パケットのアドレス情報及びポート情報に基づいて生成される接続キーを用いてオフセット情報リストから対象のフレームのオフセット情報を抽出するようにしてもよい。
【００３４】
このような構成にすることで、関連する全てのパケットを解析対象とした場合でも高速にそのデータを取得することが可能となる。
【００３５】
なお、本発明は、上記何れかの機能を実行する通信情報監査方法であってもよいし、以上の何れかの機能をコンピュータに実現させるプログラムであってもよい。また、本発明は、そのようなプログラムを記録したコンピュータが読み取り可能な記憶媒体であってもよい。
【発明の効果】
【００３６】
本発明によれば、通信情報の蓄積処理及び解析処理のそれぞれを高速に実行することのできる通信情報監査装置、方法及びプログラムを実現することができる。
【発明を実施するための最良の形態】
【００３７】
以下、図面を参照して、本発明を実施するための最良の形態（以下、実施形態という）に係るネットワーク監査装置について説明する。実施形態の構成は例示であり、本発明は
実施形態の構成に限定されない。
【００３８】
［設置環境］
本実施形態におけるネットワーク監査装置１０は、監査を行う対象ネットワーク（社内ＬＡＮ（Local Area Network）等）にタップ等を用いて接続される。図１は、本実施形態におけるネットワーク監査装置１０が設置されるネットワーク環境の例を示す図である。図１の例では、ネットワーク３にパーソナルコンピュータ等のクライアント端末５及び６、サーバ７及び８等が接続され社内ＬＡＮが構築されている。更に、このネットワーク３は、インターネット１にルータ（図示せず）等を介して接続されている。
【００３９】
本実施形態におけるネットワーク監査装置１０は、このネットワーク３に接続され、このネットワーク３を監査対象ネットワークとしている。例えば、サーバ７及び８がＷｅｂサーバとしてコンテンツをインターネット１に配信している場合には、このサーバ７及び８に対してインターネット１上から不正アクセスがなされることが考えられる。また、ウィルス等に感染したクライアント端末５及び６から重要ファイルが漏洩することも考えられる。本実施形態におけるネットワーク監査装置１０は、このような事象を検知するために、ネットワーク３に流れる全てのパケットを蓄積及び解析する。
【００４０】
〔装置構成〕
以下、本実施形態におけるネットワーク監査装置１０の装置構成について図２及び３を用いて説明する。図２は、本実施形態におけるネットワーク監査装置１０のハードウェア構成例を示す概念図である。図３は、本実施形態におけるネットワーク監査装置１０の機能構成を示すブロック図である。
【００４１】
〈ハードウェア構成〉
まず、本実施形態におけるネットワーク監査装置１０のハードウェア構成の例について図２を用いて説明する。本ネットワーク監査装置１０は、キャプチャカード２１、ハードディスクドライブ（以降、ＨＤＤと表記する）２３及び２４、ネットワーク監査カード２５等がそれぞれバス２０で接続されている。図２は、本発明に関連のあるハードウェアについてのみ記載しているため、当然にそれ以外のハードウェアを備えるようにしてもよい。
【００４２】
キャプチャカード２１は、ネットワーク３に接続するための接続ポートを持つ。キャプチャカード２１は、ネットワーク３で送受信されるプロトコルに対応したプロトコルスタックを有する。本実施形態では、１ギガビットＥｔｈｅｒｎｅｔ（登録商標）が利用される場合を例に挙げる。本実施形態におけるネットワーク監査装置１０は、このような１ギガビット毎秒（Ｇｂｐｓ）の通信速度を持つネットワークにおいても適切なパケット蓄積及び解析を可能とする。
【００４３】
ＨＤＤ２３は、蓄積するフレームデータ量に応じた容量を持つ。ＨＤＤ２４は、ネットワーク監査の処理結果として出力されるファイルが格納される。ＨＤＤ２３及び２４は、例えば、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）により構成されるようにしてもよい。
【００４４】
ネットワーク監査カード２５は、４つのＣＰＵ（Central Processing Unit）２７が１つのメモリ２６を共有するマルチプロセッサ構成を持つ。各ＣＰＵ２７はそれぞれＣＰＵコアであり全体として１つのＣＰＵパッケージとして構成されていてもよい。また、メモリ２６には、ＯＳ（operating system）やプログラムが格納されるメモリ、キャッシュメモリ等が含まれる。次に説明する本実施形態におけるネットワーク監査装置１０の各機能は、このプログラムがロードされ実行されることにより実現される。なお、本発明はこの
ＣＰＵ２７の数を限定するものではない。１つのＣＰＵコアで構成されたとしても、インテル（登録商標）ＸＥＯＮ（登録商標）３．２ギガヘルツ（ＧＨｚ）程度の性能を有すれば以下に述べるネットワーク監査処理に関し１Ｇｂｐｓのスループットを実現することは立証済みである。また、図２のハードウェア構成例では、ネットワーク監査カード２５が１つのカードとして構成される例を挙げているが、このネットワーク監査カード２５が複数のカードとして構成されるようにしてもよい。
【００４５】
〈機能構成〉
次に、本実施形態におけるネットワーク監査装置１０の機能構成について図３を用いて説明する。図３に示すように、本実施形態におけるネットワーク監査装置１０は、通信インタフェース部３１、キャプチャ部３２、蓄積制御部３３、フレームデータファイル群３４、解析部３５、不正検知部６０、統計情報ファイル３８、オフセットファイル３９等を備える。以下、本実施形態におけるネットワーク監査装置１０を構成する各機能部についてそれぞれ説明する。
【００４６】
〈〈通信インタフェース部、キャプチャ部〉〉
通信インタフェース部３１及びキャプチャ部３２は、上記ハードウェア構成のうち例えばキャプチャカード２１で実現される。キャプチャ部３２は、通信インタフェース部３１から入力される、ネットワーク３上に流れるＥｔｈｅｒｎｅｔ（登録商標）フレーム（以降、単にフレームと表記する）列を順次取り込む。キャプチャ部３２は、取り込まれたフレーム列を蓄積制御部３３に渡す。なお、キャプチャ部３２は、取り込まれたフレーム列をリングバッファ等に格納し、蓄積制御部３３は、そのリングバッファを参照するようにしてもよい。
【００４７】
〈〈蓄積制御部〉〉
蓄積制御部３３は、ネットワーク監査カード２５上のメモリ２６に格納されるプログラムが実行されることにより実現される。蓄積制御部３３は、キャプチャ部３２により取り込まれるフレーム列を所定の単位で１つのフレームデータファイルに書き込む。本実施形態では、蓄積制御部３３は、５分単位で新たなフレームデータファイル３４を順次作成していくものとする。このとき、蓄積制御部３３は、１つのフレームが２つのフレームデータファイル３４に跨って書き込まれることのないように、フレーム区切りを判別することによりフレーム単位でフレームデータファイル３４に書き込む。なお、本発明は、このフレームデータファイル３４の作成単位を限定するものではない。
【００４８】
〈〈フレームデータファイル〉〉
蓄積制御部３３により作成された各フレームデータファイル３４は、ＨＤＤ２３にそれぞれ格納される。図４は、フレームデータファイル群の例を示す図である。図４に示されるように、各フレームデータファイル３４は、例えば日付及び時刻を示すファイル名が付されてそれぞれ格納される。図４の例では、括弧で囲まれた部分がファイル名を示しており、２００６年１２月４日１５時２０分に生成されたファイルは、２００６１２０４１５２０というファイル名を持つ。
【００４９】
また、各フレームデータファイル３４にはそれぞれ、ファイルヘッダが先頭に格納され、その後にフレーム毎にフレーム付加情報及びフレームデータが続けて格納される。ファイルヘッダには、格納されたフレームがＥｔｈｅｒｎｅｔ（登録商標）フレームであるか否か、最大フレーム長等のフレーム仕様が記載される。フレーム付加情報には、キャプチャされたタイムスタンプ、フレーム長、パケット長等が記載される。なお、このファイルヘッダ、フレーム毎に格納されるフレーム付加情報は格納されないようにしてもよい。フレームデータとは、フレームを構成する生データである。このフレームデータファイル３４のファイル形式は、ｐｃａｐ形式を利用するようにしてもよい。
【００５０】
ここで、各フレームデータファイル３４のファイルサイズは、本実施形態では、１ＧｂｐｓのＥｔｈｅｒｎｅｔ（登録商標）を用い、上り下りの全二重通信を対象とするため、約７６ギガバイト（ＧＢ）（＝２×約３８（ＧＢ）＝２×（１（Ｇｂｐｓ）×６０（秒）×５（分）÷８（ビット）＋その他の付加情報（バイト）））となる。このファイルサイズは、蓄積制御部３３のファイル作成単位により決まる。
【００５１】
〈〈解析部〉〉
解析部３５は、ネットワーク監査カード２５上のメモリ２６に格納されるプログラムが実行されることにより実現される。解析部３５は、読み取り部４１、ヘッダ解析部４２、接続追跡部４３、統計情報生成部４４、統計情報出力部４５、ハッシュテーブル４７等を有する。図３の例における解析部３５は、ヘッダ解析部４２、接続追跡部４３及び統計情報生成部４４をそれぞれ実現する４つの解析スレッド４９と、読み取り部４１を実現する１つのスレッドと統計情報出力部４５を実現する１つのスレッドとの６つのスレッドが上記マルチプロセッサによる並列処理されることにより実現される。但し、本発明は、この解析部３５を実現するスレッド構成を限定するものではない。以下、解析部３５を構成する各詳細機能部についてそれぞれ説明する。
【００５２】
読み取り部４１は、フレームデータファイル群３４を参照することにより、蓄積制御部３３により新たなフレームデータファイルが生成され保存されたか否かを定周期に検査する。読み取り部４１は、新たなフレームデータファイルが作成されたことを検知すると、そのフレームデータファイルを開く。読み取り部４１は、その開かれたフレームデータファイルに格納されている各フレームデータをファイルの先頭から（古いフレームから）順番に参照し、各フレームに関し、オフセット情報、ヘッダ情報、レイヤ３（ネットワーク層：ＩＰ（Internet Protocol））の送信先アドレス及び送信元アドレスに基づくキー（以降、Ｌ３キーと表記する）をそれぞれ生成する。
【００５３】
上記オフセット情報とは、フレームデータファイルの先頭アドレスからのその対象フレームの先頭アドレスまでのオフセットアドレスである。上記ヘッダ情報とは、図４に示されるフレーム付加情報のうちキャプチャされたタイムスタンプ、フレーム長等である。上記Ｌ３キーは、ＩＰパケットに含まれる送信先アドレスと送信元アドレスとの排他的論理和を所定の数で割った余りとして生成される。これにより、Ｌ３キーは、相互通信する装置間においていずれの方向のパケットに対しても同一の値となる。なお、所定の数は、解析スレッド４９のスレッド数に設定される。
【００５４】
読み取り部４１は、Ｌ３キーに対応するキュー（以降、このキューを解析キューと表記する）を生成する。解析キューは、Ｌ３キーの数に応じて予め生成されるようにしてもよいし、新たなＬ３キーが生成される毎に生成されるようにしてもよい。この解析キューの数及び解析スレッド４９の数はそれぞれこのＬ３キーの数と同数となるように構成される。
【００５５】
読み取り部４１は、この解析キューに、オフセット情報、ヘッダ情報、Ｌ３キーをフレーム毎に格納する。このフレーム毎に格納されるオフセット情報、ヘッダ情報及びＬ３キーをフレーム情報と表記するものとする。読み取り部４１は、対象フレームについて生成されたＬ３キーに対応する解析キューにフレーム情報を入力する。
【００５６】
解析スレッド４９は、各解析キューにそれぞれ対応するように構成される。
【００５７】
ヘッダ解析部４２は、対応する解析キューからフレーム情報をフレーム毎に取り出す。ヘッダ解析部４２は、取り出されたフレーム情報の示すフレームの正当性を検査する。ヘ
ッダ解析部４２は、フレームの正当性を検査するにあたり、対象フレームに含まれるＩＰパケットのヘッダ部に設定されるチェックサムを用いる。このとき、ヘッダ解析部４２は、取り出されたオフセット情報に基づき、読み取り部４１により開かれている解析対象のフレームデータファイルにおける対象フレームの先頭アドレスを知る。ヘッダ解析部４２は、その対象フレームの先頭アドレスからＩＰヘッダのチェックサム格納エリアを求め、そのエリアからチェックサムを抽出する。
【００５８】
接続追跡部４３は、ヘッダ解析部４２によりフレームの正当性が検証されると、そのフレームに含まれるＩＰパケットの接続追跡処理を行う。接続追跡処理とは、同一コネクションで送受信される全てのＩＰパケットを追跡しそれらＩＰパケットに関する情報を取得し、コネクション毎に取りまとめる処理をいう。以降、同一コネクションで送受信される全てのパケットを１つのパケットストリームと表記するものとする。
【００５９】
図５は、接続追跡部４３による接続追跡処理の概要を示す図である。図５では、ＩＰアドレス（１０．０．２１３．５）のエンドポイントとＩＰアドレス（１０．０．２１３．１０）のエンドポイントとの間で確立されたコネクション（ポート番号８０とポート番号５００００とを使用するコネクション）でやりとりされる全てのパケットに関する情報が、パケットストリーム１として取得しまとめられることが示されている。
【００６０】
このように接続追跡処理でまとめられるデータ単位となるコネクションとは、レイヤ４（トランスポート層）におけるＴＣＰ（Transmission Control Protocol）コネクションの他、ＵＤＰ（User Datagram Protocol）を用いて２つのエンドポイント間でデータグラムをやりとりするための通信路（ＩＰアドレスとポート番号との組の組み合わせによって管理される通信路）を含むものとする。なお、ＩＣＭＰ（Internet Control Message Protocol）パケットの場合には、２つのエンドポイントのＩＰアドレスの組み合わせが１つのコネクションとして取り扱われる。
【００６１】
接続追跡部４３は、この接続追跡処理により取りまとめられた情報を、コネクション毎（パケットストリーム毎）にハッシュテーブル４７に格納する。接続追跡部４３は、正当性の検証されたフレームに含まれるＩＰパケットを参照し、ＩＰヘッダに設定されるプロトコル番号、送信先ＩＰアドレス、送信元ＩＰアドレス、ＴＣＰヘッダ若しくはＵＤＰヘッダに設定される送信先ポート番号、送信元ポート番号を取得する。接続追跡部４３は、取得されたプロトコル番号（１：ＩＣＭＰ、６：ＴＣＰ、１７：ＵＤＰ、等）に応じて格納すべきハッシュテーブル４７を決定する。ハッシュテーブル４７は、プロトコル番号に対応するように設けられている。接続追跡部４３は、同様に取得された送信先ＩＰアドレス、送信元ＩＰアドレス、送信先ポート番号及び送信元ポート番号を所定のハッシュ関数に与えることにより得られるハッシュ値をキー（以降、コネクションキーと表記する）として、ハッシュテーブル４７の中のそのキーの示すレコードを検索する。このコネクションキーは、１コネクション若しくは１パケットストリームにつきユニークな識別子となる。なお、本発明は、このハッシュ関数を限定するものではなく一般的なハッシュ関数であればよい。なお、ＩＣＭＰパケットについてのコネクションキーは、送信先アドレス及び送信元アドレスの対により得られる。
【００６２】
図６は、ハッシュテーブル４７のうちＴＣＰ用のハッシュテーブルの例を示す概念図である。ハッシュテーブル４７は、プロトコル番号（プロトコル種別）に応じて設けられる。各ハッシュテーブル４７には、１コネクション（１パケットストリーム）を１レコードとしてそれぞれ格納される。各レコードには、そのコネクションに関する接続情報及びパケット情報リストが格納される。この接続情報には、通信開始時刻、通信終了時刻、通信開始元接続情報、通信先接続情報等が格納される。この通信開始元接続情報には、通信開始を要求した（ＳＹＮを送信した）側（以降、通信開始元又はクライアントと表記する）
からこの通信開始を要求された（ＳＹＮを受信した）側（以降、通信先又はサーバと表記する）へ送信されるパケットに関する情報が格納され、具体的には、シーケンス番号、ウィンドウサイズ、ウィンドウスケーリング、タイムスタンプ、フラグメント情報、累積パケット数、ＡＣＫ番号、パケットストリーム長、ＴＣＰコネクション状態等が格納される。一方、通信先接続情報とは、サーバ側からクライアント側へ送信されるパケットに関する情報が格納され、通信開始元接続情報と同様のデータが格納される。なお、ＴＣＰの場合に、ここで表記されるクライアントとはアクティブオープン状態となったノードを、サーバとはパッシブオープン状態となったノードを意味するものである。
【００６３】
接続追跡部４３は、コネクションキーによりハッシュテーブル４７を検索し、そのコネクションキーの示すレコードを参照パケットの情報で更新する。以下、接続追跡部４３によるＴＣＰ用のハッシュテーブルにおける接続情報の具体的な更新方法について説明する。
【００６４】
通信開始時刻には、ＴＣＰコネクションの確立を示すフレームのキャプチャされた時刻が設定される。具体的には、通信開始時刻は、参照パケットにより後述するＴＣＰコネクション状態がコネクション確立状態とされる場合に、解析キューから取得されたヘッダ情報に含まれるキャプチャされたタイムスタンプが設定される。
【００６５】
通信終了時刻は、パケットが参照される度に、上記解析キューから取得されたヘッダ情報に含まれるキャプチャされたタイムスタンプが設定される。これにより、最終的に統計情報が出力される際の通信終了時刻には、そのコネクションによる通信が終了する直前のフレームのキャプチャされた時刻が設定されることになる。
【００６６】
接続追跡部４３は、参照パケットがクライアントからサーバへ送信されたパケットであると判断すると、その参照パケットにより通信開始元接続情報を更新し、参照パケットがサーバからクライアントへ送信されたパケットであると判断すると、その参照パケットにより通信先接続情報を更新する。以下、通信開始元接続情報及び通信先接続情報に含まれる各項目についてそれぞれ説明する。
【００６７】
シーケンス番号は、参照パケットがＳＹＮパケット、（ＳＹＮ＋ＡＣＫ）パケット、ＡＣＫパケット、ＦＩＮパケットである場合に、そのパケットのＴＣＰヘッダの「Sequence
Number」フィールドに格納されるデータで更新される。このとき、接続追跡部４３は、参照パケットが３ＷＡＹハンドシェーク時のＡＣＫパケットであり、更新前の接続情報に設定されているシーケンス番号が参照パケットのシーケンス番号から１差し引いた番号となっている場合に、その参照されているＡＣＫパケットを正常と判断し、そのシーケンス番号により更新する。
【００６８】
ウィンドウサイズは、現在参照されるパケットのＴＣＰヘッダの「Window」フィールドに格納されるデータで更新される。
【００６９】
タイムスタンプは、現在参照されるパケットのＴＣＰヘッダの「Option」フィールドに格納されるデータで更新される。
【００７０】
ウィンドウスケーリングは、参照されるパケットがＳＹＮパケットの場合にそのＴＣＰヘッダの「Option」フィールドに格納されているウィンドウスケーリングデータで更新される。
【００７１】
フラグメント情報は、参照されるパケットのＩＰヘッダの「Flags」フィールドにフラグメント化されたパケットが含まれることを示すデータが格納されていた場合に、更新さ
れる。
【００７２】
累積パケット数は、パケットが参照される度に１ずつ加算される。
【００７３】
ＡＣＫ番号は、参照されるパケットのＴＣＰヘッダの「Acknowledgement Number」フィールドに格納される数値」が既に設定されている数値よりも大きい場合にその数値により更新される。
【００７４】
パケットストリーム長には、そのコネクションのうち各方向に関しそれぞれ送信された全パケットの合計データ長が設定される。接続追跡部４３は、参照パケットのＴＣＰヘッダの「Acknowledgement Number」フィールドに格納される数値から更新前の上記ＡＣＫ番号に設定される数値を引いた値を既に設定されている値に加算する。ＴＣＰでは再送が行われる場合がありその再送によって重複したセグメントについてはパケットストリーム長として加算されないようにする必要がある。これを防止するための処理としては通常、過去に参照されたパケットについてフラグメント化されたパケットを再構築しながら全てそのパケット長を加算していくという処理が行われていた。本実施形態では、上記のようにサーバから送信されるＡＣＫパケットの「Acknowledgement Number」によってのみパケットストリーム長を更新することにより高速化を実現する。
【００７５】
ＴＣＰコネクション状態には、クライアントがＳＹＮパケットを送信した状態（状態１）、サーバが上記ＳＹＮパケットに対する（ＳＹＮ＋ＡＣＫ）パケットを送信した状態（状態２）、クライアントが上記（ＳＹＮ＋ＡＣＫ）パケットに対するＡＣＫパケットを送信した状態（コネクション確立状態）（状態３）、クライアント若しくはサーバがＦＩＮパケットを送信した状態（状態４）、サーバ若しくはクライアントが上記ＦＩＮパケットに対するＡＣＫパケットを送信した状態（状態５）のいずれかが設定される。上記（状態３）は、上記コネクション確立状態から（状態４）までの間の通信状態を含む。
【００７６】
接続追跡部４３は、参照パケットがＳＹＮパケット、（ＳＹＮ＋ＡＣＫ）パケット、ＡＣＫパケット、ＦＩＮパケットのいずれかの場合に、このＴＣＰコネクション状態を上記（状態１）から（状態５）のいずれかを示すデータに更新する。このとき、接続追跡部４３は、既に設定されているＴＣＰコネクション状態と参照パケットの示すコネクション状態との比較により、この接続情報のＴＣＰコネクション状態を更新すべきか否かを決定する。例えば、既に設定されているＴＣＰコネクション状態が上記（状態１）であるにも関わらず参照パケットがＳＹＮパケットである場合には、その対象コネクションは切断されたものと判断し、この参照パケットによりそのレコードを更新しない。
【００７７】
ＵＤＰ用のハッシュテーブルでは、ＴＣＰのようなコネクションの明示的なクローズ（ＦＩＮパケット）やリセット（ＲＳＴパケット）が存在しないため、上記ＴＣＰコネクション状態については、「片方向のＵＤＰ通信」と「双方向のＵＤＰ通信」のような通信状態が設定される。
【００７８】
接続追跡部４３は、ハッシュテーブル４７の接続情報の更新の他、参照パケットが含まれるフレームの格納されるフレームデータファイル内のオフセットアドレスを、参照した順にハッシュテーブル４７のパケット情報リストに追加していく。
【００７９】
また、接続追跡部４３は、タイムアウト状態として２つの状態を検出する。１つは、接続情報のタイムスタンプを更新する際に、既に設定されているタイムスタンプと参照パケットに格納されるタイムスタンプとを比較することにより、両者の時間差が所定の閾値以上ある場合に、そのコネクションを無応答状態として検出するものである。この所定の閾値には、例えば、再送タイマとして設定される時間が利用される。
【００８０】
もう１つについては、接続確立後、所定の時間経過しているコネクションを異常状態として検出するものである。この異常状態の検出には、リンクドリストが参照される。接続追跡部４３は、参照されるパケットにより上記接続確立状態を検出した際に、ハッシュテーブル内のそのコネクションの格納されるレコードを指すポインタを接続確立順に格納していくことにより、このリンクドリスト（Linked List）を生成する。接続追跡部４３は、パケットを参照する度に、このリンクドリストを最も古く接続確立されたコネクションから順に参照することにより、各コネクションについて接続確立からの経過時間を測定し、異常状態を検出する。
【００８１】
接続追跡部４３は、ハッシュテーブル４７の通信開始元接続情報及び通信先接続情報のいずれのＴＣＰコネクション状態も上記（状態５）に更新した場合、参照パケットがＲＳＴパケットであった場合、上記タイムアウト状態であると判断された場合のいずれかになった場合に、統計情報生成部４４にそのコネクションについての統計情報の生成を指示する。また、ＵＤＰについては、上記タイムアウト状態であると判断された場合、すなわち、ＵＤＰパケットが送信されてから一定時間を経過しても次のＵＤＰパケットが送信されていないと判断された場合にＵＤＰデータグラムが終了したと判断して統計情報の生成が指示される。
【００８２】
統計情報生成部４４は、接続追跡部４３により指示されるコネクションについて、ハッシュテーブル４７の対象レコードを参照することにより、そのコネクションについての以下のような統計情報を生成する。このとき、ハッシュテーブル４７内の通信開始元接続情報及び通信先接続情報はそれぞれ１コネクションの情報としてまとめられる。
【００８３】
統計情報生成部４４は、ハッシュテーブル４７の対象レコードのパケット情報リストに格納されているいずれか１つのオフセットアドレスの指し示すフレームのＩＰヘッダを参照することにより、クライアントＩＰアドレス（source address）、サーバＩＰアドレス（destination address）、プロトコルを取得し、同フレームのＴＣＰヘッダを参照することにより、クライアントポート番号（source port）、サーバポート番号（destination
port）を取得する。
【００８４】
更に、統計情報生成部４４は、ハッシュテーブル４７の対象レコードの接続情報から通信開始時刻、通信終了時刻、フラグメント情報、累積パケット数、パケットストリーム長を取得する。累積パケット数及びパケットストリーム長については、通信開始元接続情報及び通信先接続情報のそれぞれの累積パケット数及びパケットストリーム長のそれぞれの合計が算出される。
【００８５】
また、統計情報生成部４４は、コネクション状態として、ハッシュテーブル４７の対象レコードの接続情報のＴＣＰコネクション状態を取得するが、ＲＳＴパケット若しくはタイムアウトによりコネクション終了とみなされた場合には、それらの情報が取得される。統計情報生成部４４は、コネクションＩＤとして、そのコネクションキーを取得する。
【００８６】
統計情報生成部４４は、取得された上記統計情報とパケット情報リストを統計情報出力部４５へ渡す。
【００８７】
統計情報出力部４５は、統計情報生成部４４から渡された上記統計情報を所定の統計情報ファイル３８に出力する。統計情報出力部４５は、統計情報生成部４４から渡されたパケット情報リストに含まれる、そのコネクションに関するオフセットアドレスの集合をそのコネクションに関連付けてオフセットファイル３９に出力する。
【００８８】
＜＜統計情報ファイル＞＞
統計情報ファイル３８は、ＨＤＤ２４に格納される。統計情報ファイル３８は、各フレームデータファイル３４についてそれぞれ別ファイルとして生成される。図７は、統計情報ファイル３８の構成例を示す図である。図７に示されるように、統計情報ファイル３８には、各コネクション（パケットストリーム）についてそれぞれコネクションＩＤ、通信開始時刻、通信終了時刻、クライアントＩＰアドレス、サーバＩＰアドレス、フラグメントの有無、プロトコル、コネクション状態、クライアントポート番号、サーバポート番号、累積パケット数、パケットストリーム長が格納される。
【００８９】
この統計情報ファイル３８は、例えば、他のアプリケーションにより通信情報分析、フォレンジクス情報として利用される。
【００９０】
＜＜オフセットファイル＞＞
オフセットファイル３９は、ＨＤＤ２４に格納される。オフセットファイル３９は、各フレームデータファイル３４についてそれぞれ別ファイルとして生成される。図８は、オフセットファイル３９の構成例を示す図である。図８に示されるように、オフセットファイル３９には、各コネクション（パケットストリーム）でやりとりされた各パケットの含まれるフレームの格納されるフレームデータファイル３４内のオフセットアドレスがコネクション毎に格納される。図８の例では、パケットストリーム１でやりとりされたパケットが６個あり、各パケットの含まれるフレームのオフセットアドレスがそれぞれ格納されている。
【００９１】
＜＜不正検知部６０＞＞
不正検知部６０は、ＩＤＳ６２、アラートファイル６４、関連情報出力部６６等を有する。不正検知部６０は、ユーザインタフェース（図示せず）からの要求により、ＩＤＳ６２から出力されるアラートに関連するパケット情報を出力する。例えば、ユーザインタフェースがＷｅｂブラウザである場合には、不正検知部６０は、出力形式としてＨＴＭＬファイルを出力するようにしてもよい。
【００９２】
ＩＤＳ６２は、例えば、Ｓｎｏｒｔ（登録商標）をベースとして構築される。ＩＤＳ６２は、フレームデータファイル群３４に格納されたフレームを監視することによって不正アクセス等の不正パケットを検知する。この不正パケットを検知するために、ＩＤＳ６２は、不正パケットの特徴情報を記録したシグネチャや不正通信等をルール化したポリシー情報等を用いる。ＩＤＳ６２は、検知された不正パケットに関する情報を含めたアラート情報を出力する。なお、本発明は、ＩＤＳ６２自体の機能を限定するものではなく、ＩＤＳ６２は一般的なＩＤＳとしての機能を有していればよいため、詳細説明を省略する。
【００９３】
アラートファイル６４は、ＩＤＳ６２から出力されるアラート情報を格納する。ＩＤＳ６２から出力される各アラートには、アラートの種類、アラート対象のパケットの送信元ＩＰアドレス、送信元ポート番号、送信先ＩＰアドレス、送信先ポート番号等がそれぞれ含まれる。アラートファイル６４は、これらの情報をアラート毎に格納する。
【００９４】
関連情報出力部６６は、ユーザインタフェースから所定のアラートについての出力指示を受けると、その指示内容に応じたそのアラート対象のパケットに関連する情報を出力する。指示内容が関連パケット情報の出力である場合には、関連情報出力部６６は、アラート対象のパケットの属するコネクションでやりとりされた全てのパケットに関する情報を出力する。指示内容が指定されたパケットの詳細情報の出力である場合には、関連情報出力部６６は、その指定されたパケットのデータを出力する。
【００９５】
このように所定のデータを出力するにあたり、関連情報出力部６６は、指定されたアラ
ートの対象となったパケットの送信元ＩＰアドレス、送信元ポート番号、送信先ＩＰアドレス、送信先ポート番号を用いて上述の接続追跡部４３と同様の方法によりコネクションキーを生成する。関連情報出力部６６は、オフセットファイル３９に格納されるコネクションＩＤがこのコネクションキーとなるレコードを検索する。関連情報出力部６６は、検索されたレコードに含まれる各フレームのオフセットアドレスをそれぞれ取得し、その取得されたオフセットアドレスに基づいてフレームデータファイル３４から各フレームデータをそれぞれ取得する。なお、各フレームのオフセットアドレスを取得するにあたり、統計情報ファイル３８にオフセットファイルのレコードＩＤが格納されるようにし、そのレコードＩＤを元にオフセットファイルのレコードを検索するようにしてもよい。
【００９６】
このように、本実施形態によれば、ＩＤＳ６２により検知されたアラートの対象となったパケットに関連する全てのパケットを対象として解析することができる。これは、フレームデータファイル３４に全てのフレームが格納されているからできることである。よって、従来のシステムではＩＤＳの検知した不正パケット及びその後数パケットに関する情報のみが出力されていたという問題点を解決することができる。
【００９７】
更に、本実施形態によれば、関連する全てのパケットを対象とした場合でも高速にそのデータを取得することが可能となる。
【００９８】
〔動作例〕
次に、本実施形態におけるネットワーク監査装置１０の動作例として、上述した解析部３５とその他の各機能部の連携動作について図９及び１０を用いて説明する。図９は、解析部３５の並列処理の概念を示す図である。図１０は、本実施形態におけるネットワーク監査装置１０の各機能部のスレッドスケジューリングの例を示す図である。
【００９９】
まず、解析部３５を構成する各機能部の連係動作について図９を用いて説明する。本実施形態における解析部３５では、読み取り部４１及び統計情報出力部４５がそれぞれ１スレッドで実行され、ヘッダ解析部４２、接続追跡部４３及び統計情報生成部４４が実行される解析スレッド４９が４つ生成される。
【０１００】
読み取り部４１は、新たなフレームデータファイルが作成されたことを検知すると、そのフレームデータファイルに格納されている各フレームデータをファイルの先頭から（古いフレームから）順番に参照する。読み取り部４１は、参照された各フレームに関し、オフセット情報、ヘッダ情報、Ｌ３キーをそれぞれ生成し、このＬ３キーに対応する解析キューに生成されたフレーム情報を格納していく。図９の例では、４つのＬ３キーが生成され（Ｌ３−ＫＥＹ１、Ｌ３−ＫＥＹ２、Ｌ３−ＫＥＹ３、Ｌ３−ＫＥＹ４）、各Ｌ３キーに対応するように４つの解析キュー（８１−１、８１−２、８１−３、８１−４）が設けられる。
【０１０１】
読み取り部４１は、解析スレッド４９の動作に関係なく、フレームデータファイルに格納される全てのフレームに関するフレーム情報を順次何れかの解析キューに格納していく。このとき、フレーム情報を格納する解析キューを決定するためのＬ３キーは、レイヤ３のアドレス情報が利用されるため、同一コネクションでやりとりされるパケットを含むフレームに関するフレーム情報が異なる解析キューに格納されることはない。
【０１０２】
解析スレッド４９は、対応する解析キューから順次オフセット情報を取り出す。図９の例では、解析スレッド４９−１が解析キュー８１−１に対応し、解析スレッド４９−２が解析キュー８１−２に対応し、解析スレッド４９−３が解析キュー８２−３に対応し、解析スレッド４９−４が解析キュー８２−４に対応する。解析スレッド４９は、読み出されたフレーム情報に基づいてフレームデータファイル内の解析対象のフレームデータの格納
位置を特定する。
【０１０３】
解析スレッド４９は、解析対象のフレームデータに関し、フレームの正当性検証を行い（ヘッダ解析部４２）、正当性の検証されたフレームについてＩＰパケットの接続追跡処理（接続追跡部４３）を実行する。これにより、各コネクションについての統計情報が参照されるフレームによって逐次更新される。
【０１０４】
従って、各コネクションでやりとりされるパケット群を検出するのに、一度参照されたフレームデータを更に参照するような重複参照を避けることができるため、高速の解析処理を実現することができる。
【０１０５】
解析キューが上述のように取り扱われるため、１つのコネクションでやりとりされるパケットが異なる解析スレッドで扱われることはない。これにより、複数の解析スレッドが並列に動作したとしても、各解析スレッドは、１つのコネクション（パケットストリーム）に関する統計情報を独立してまとめて統計することができる。言い換えれば、複数の解析スレッドが１つのコネクションに関する統計情報を生成することがないため、処理が煩雑にならずかつ処理の高速化を実現することができる。
【０１０６】
解析スレッド内の統計情報生成部４４は、接続追跡部４３により参照されたパケットにより決定されるコネクション状態が、ＦＩＮパケットに対するＡＣＫパケットが送信された状態であるとき、ＲＳＴパケットが送信された状態であるとき、タイムアウト状態であるときのいずれかになった場合に、そのコネクションについての統計情報を生成する。言い換えれば、各解析スレッドは、扱われるコネクション状態が上記所定の状態となったと検出する度に、そのコネクションの統計情報を生成し、その統計情報の出力を統計情報出力部４５にそれぞれ依頼する。各解析スレッドは、対応する解析キューが空になるまで処理を継続する。
【０１０７】
統計情報出力部４５は、複数の解析スレッドの何れかから統計情報の出力を依頼される度に、その依頼されたコネクションについて統計情報を対象の統計情報ファイル３８に出力する。このとき、統計情報出力部４５は、同様に解析スレッドから渡される対象コネクションに関連するフレームのオフセット情報リストに基づいて、各コネクション（パケットストリーム）でやりとりされたフレーム生データをコネクション毎にオフセットファイル３９に格納する。
【０１０８】
これにより、各解析スレッドでコネクション毎の通信終了を検出することができ、この通信終了が検出されたコネクション毎に統計情報の出力依頼が出されるため、複数の解析スレッドと統計情報出力部４５が並列動作していたとしても適切なタイミングで統計情報の出力を行うことができる。更に、通信の終了を検出した解析スレッドから順に統計情報出力部４５に出力依頼が出されるため、統計情報出力部４５による出力処理を時間的に分散させることができ、トータルとして解析処理を高速化することができる。
【０１０９】
次に、上述した解析部３５を構成する各機能部及び蓄積制御部３３の連携動作について図１０に示されるスレッドスケジューリングの例を参照して説明する。なお、本発明の図１０に示されるスレッドスケジューリングに限定するものではない。これら各機能部は、ネットワーク監査カード２５に備えられる４つのＣＰＵ２７のマルチプロセッシングにより実行される。同ネットワーク監査カード２５内のメモリ２６に格納されるＯＳは、図１０の例のようなスレッドスケジューリングを実行する。
【０１１０】
図１０の例では、蓄積制御部３３は、キャプチャ部３２によりフレームデータが常に取り込まれるため、１つのＣＰＵ２７−１を占有して実行される。蓄積制御部３３のスレッ
ド（図１０に示す蓄積制御（１））が新たなフレームデータファイルを生成し終了すると、そのフレームデータファイルを参照する読み取り部４１が実行される。読み取り部４１が実行され解析キューにフレーム情報が格納されると、各解析スレッド４９（図１０に示す解析（１）から（４））がそれぞれ実行される。
【０１１１】
読み取り部４１は、１つのフレームデータファイルに格納されるフレームデータを全て参照することで処理が完了するため、１つのＣＰＵ２７−２を占有して実行される。また、統計情報出力部４５は、基本的に、ＨＤＤ２３に統計情報ファイル３８若しくはオフセットファイル３９を保存する処理であるため、ＣＰＵ２７−２を占有する時間が短くなる。解析スレッド４９の解析処理がＣＰＵ２７−３及びＣＰＵ２７−４を占有し、各解析スレッド４９はＣＰＵ２７−３及びＣＰＵ２７−４を切り替えながら実行される。
【０１１２】
このように、ネットワーク監査カード２５上で実行されるＯＳは、蓄積制御部３３、読み取り部４１、統計情報出力部４５、解析スレッド４９が並列処理されるように制御する。これにより、一般的に処理速度が遅いといわれるＨＤＤ２３若しくは２４へのアクセスを必要とする蓄積制御部３３、読み取り部４１及び統計情報出力部４５と、それ以外の解析スレッド４９とが並列処理されるため、監査対象のネットワーク３を流れるフレームを漏れなく蓄積しながら、略同時に解析処理を実行することができる。ひいては、通信情報の蓄積処理及び解析処理を高速に実行することができる。
【図面の簡単な説明】
【０１１３】
【図１】本実施形態におけるネットワーク監査装置が設置されるネットワーク環境の例を示す図である。
【図２】本実施形態におけるネットワーク監査装置１０のハードウェア構成例を示す概念図である。
【図３】本実施形態におけるネットワーク監査装置の機能構成を示すブロック図である。
【図４】フレームデータファイル群の例を示す図である。
【図５】接続追跡部による接続追跡処理の概要を示す図である。
【図６】ＴＣＰ用のハッシュテーブルの例を示す概念図である。
【図７】統計情報ファイルの構成例を示す図である。
【図８】オフセットファイルの構成例を示す図である。
【図９】解析部の並列処理の概念を示す図である。
【図１０】本実施形態におけるネットワーク監査装置の各機能部のスレッドスケジューリングの例を示す図である。
【符号の説明】
【０１１４】
１  インターネット
３  ネットワーク（社内ＬＡＮ）
５、６  クライアント端末
７、８  サーバ
１０  ネットワーク監査装置
２０  バス
２１  キャプチャカード
２３、２４  ハードディスクドライブ（ＨＤＤ）
２５  ネットワーク監査カード
２６  メモリ
２７、２７−１、２７−２、２７−３、２７−４  ＣＰＵ（ＣＰＵコア）
３１  通信インタフェース部
３２  キャプチャ部
３３  蓄積制御部
３４  フレームデータファイル群
３５  解析部
３８  統計情報ファイル
３９  オフセットファイル
４１  読み取り部
４２  ヘッダ解析部
４３  接続追跡部
４４  統計情報生成部
４５  統計情報出力部
４７  ハッシュテーブル
４９、４９−１、４９−２、４９−３、４９−４  解析スレッド
６０  不正検知部
６２  ＩＤＳ
６４  アラートファイル
６６  関連情報出力部
８１−１、８１−２、８１−３、８１−４  解析キュー
【図１】
2008205954.tif 000003
【図２】
2008205954.tif 000004
【図３】
2008205954.tif 000005
【図４】
2008205954.tif 000006
【図５】
2008205954.tif 000007
【図６】
2008205954.tif 000008
【図７】
2008205954.tif 000009
【図８】
2008205954.tif 000010
【図９】
2008205954.tif 000011
【図１０】
2008205954.tif 000012