JP2008205954A - 通信情報監査装置、方法及びプログラム - Google Patents
通信情報監査装置、方法及びプログラム Download PDFInfo
- Publication number
- JP2008205954A JP2008205954A JP2007041248A JP2007041248A JP2008205954A JP 2008205954 A JP2008205954 A JP 2008205954A JP 2007041248 A JP2007041248 A JP 2007041248A JP 2007041248 A JP2007041248 A JP 2007041248A JP 2008205954 A JP2008205954 A JP 2008205954A
- Authority
- JP
- Japan
- Prior art keywords
- information
- frame
- analysis
- packet
- communication path
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】通信情報の蓄積処理及び解析処理のそれぞれを高速に実行することのできる通信情報監査装置、方法及びプログラムを提供する。
【解決手段】通信情報監査装置は、各フレームデータをそれぞれ記憶部へ格納する格納手段と、この記憶部に格納された各フレームについて、該フレームの格納位置を示すオフセット情報及び該フレームに含まれるパケットのアドレス情報を含むフレーム情報をそれぞれ取得する取得手段と、この取得手段により取得されたフレーム情報に基づいて上記記憶部に格納されたフレームデータを参照することにより、仮想通信路でやりとりされたパケットの統計情報を生成する解析手段と、この解析手段により生成された各仮想通信路に関する統計情報をそれぞれ出力する出力手段と、上記格納手段、上記取得手段、上記解析手段、上記出力手段がそれぞれ並列処理されるように制御する制御手段と、を備える。
【選択図】図3
【解決手段】通信情報監査装置は、各フレームデータをそれぞれ記憶部へ格納する格納手段と、この記憶部に格納された各フレームについて、該フレームの格納位置を示すオフセット情報及び該フレームに含まれるパケットのアドレス情報を含むフレーム情報をそれぞれ取得する取得手段と、この取得手段により取得されたフレーム情報に基づいて上記記憶部に格納されたフレームデータを参照することにより、仮想通信路でやりとりされたパケットの統計情報を生成する解析手段と、この解析手段により生成された各仮想通信路に関する統計情報をそれぞれ出力する出力手段と、上記格納手段、上記取得手段、上記解析手段、上記出力手段がそれぞれ並列処理されるように制御する制御手段と、を備える。
【選択図】図3
Description
本発明は、ネットワークを流れる通信情報を蓄積及び解析しその解析結果を出力する通信情報監査装置、方法及びプログラムに関する。
インターネットの普及と共に、ネットワークセキュリティの重要性が増している。特に、インターネットに接続されるネットワークシステムは、インターネット上の不正ユーザからの様々な手法による不正行為から防御する機能を備える必要がある。この不正行為には、例えば、ネットワークシステム内のサーバコンピュータへ不正侵入する行為や、DoS(Denial of Service)攻撃によりそのシステムのサービス提供を不能に陥れる行為等がある。
このような不正侵入から防御するための技術として、ファイアウォール、侵入検出システム(以降、IDS(Intrusion Detection System)と表記する)等がある。ファイアウォールは、パケットの種類(ポート番号等)や送受信先等の許可されるパターンが予め設定され、そのパターン以外のパケットを遮断する技術である。IDSは、全てのパケットを監視し、予め登録される不正なパケットのパターン(シグネチャ)と受信されたパケットのパターンとのマッチングを行うことにより、不正アクセスを検知する技術である。
このIDSに関し、既知の不正アクセスに関わるパケットのもつ特徴の一覧のみを参照して不正パケットの検索を行うことにより、パケット解析処理を高速化する技術が開示されている(例えば、特許文献1参照)。
しかしながら、IDSは不正アクセスに関わるパケット検知を目的とするものであるため、シグネチャとパターンマッチした不正パケット及びその後数パケットに関する情報が出力されるに過ぎない。これでは、その不正パケットが送信された前後においてどのようなやりとりがされたのかを解析することができないため、不正アクセスの成否や被害状況等を解明することはできない。
一方、対象ネットワークを流れるデータストリームのデータを傍受し、この傍受したデータを各セッションで区分し所定の解析データを付加した状態でデータベースに蓄積することにより、対象ネットワークの通信結果を容易に確認できるようにする技術(通信情報記録装置)がある(下記特許文献2参照)。
特開2003−223375号公報
特表2002−029579号公報
しかしながら、上述の従来技術の通信情報記録装置では、通信情報蓄積処理及び通信情報解析処理を併せて行う必要があるため、通信速度が向上した近年においては通信速度に装置の処理スピードが追い付かず、蓄積すべき通信情報の取りこぼし等それらの処理が適切に実行されない場合がある。
本発明は、かかる課題を解決するために、通信情報の蓄積処理及び解析処理のそれぞれを高速に実行することのできる通信情報監査装置、方法及びプログラムを提供することを目的とする。
本発明は、上述した課題を解決するために以下の構成を採用する。即ち、本発明は、ネットワーク上を流れるフレームを取得し、取得された各フレームデータをそれぞれ記憶部へ格納する格納手段と、この記憶部に格納された各フレームについて、該フレームの格納位置を示すオフセット情報及び該フレームに含まれるパケットのアドレス情報を含むフレーム情報をそれぞれ取得する取得手段と、この取得手段により取得されたフレーム情報に基づいて上記記憶部に格納されたフレームデータを参照することにより、パケットをやりとりするための仮想通信路毎に、該仮想通信路でやりとりされたパケットの統計情報を生成する解析手段と、この解析手段により生成された各仮想通信路に関する統計情報をそれぞれ出力する出力手段と、上記格納手段、上記取得手段、上記解析手段、上記出力手段がそれぞれ並列処理されるように制御する制御手段と、を備えることを特徴とする通信情報監査装置についてのものである。
本発明によれば、フレームデータを記憶部に格納する格納手段と、この記憶部に格納されたフレームデータを解析して各仮想通信路に関する統計情報を生成する解析手段と、この解析手段により生成された統計情報を出力する出力手段とがそれぞれ並列処理される。
すなわち、一般的に処理速度が遅いといわれる記憶部へのアクセスを必要とする上記格納手段、上記取得手段及び上記出力手段と、それ以外の上記解析処理とが並列処理されるため、通信情報の蓄積処理をもれなく実行しながら、略同時に解析処理を実行することができる。ひいては、通信情報の蓄積処理及び解析処理を高速に実行することができる。
ここで、仮想通信路とは、例えば、TCP(Transmission Control Protocol)のコネクションであり、UDP(User Datagram Protocol)を用いて2つのエンドポイント間でデータグラムをやりとりするための通信路である。また、この仮想通信路は、単に2つの通信装置間で相互通信される単位であってもよいものとする。
更に、本発明に係る通信情報監査装置は、上記解析手段を複数備えるようにし、上記制御手段が更にこれら複数の解析手段が並列処理されるように制御するようにしてもよい。
これにより、更に高速の解析処理を実現することが可能となる。
解析手段を複数備える構成において、本発明に係る通信情報監査装置は、上記フレーム情報をフレーム単位に格納する解析キューを解析手段の数に応じて更に備えるようにし、上記取得手段が、上記パケットのアドレス情報に基づいて生成される解析キーに対応する解析キューに上記フレーム情報を順次格納するようにし、上記解析手段が、これら複数の解析キューのうち対応する1つの解析キューからフレーム情報を順次取得し、取得されたフレーム情報に含まれるオフセット情報により、上記記憶部に格納されたフレームデータのうち解析対象となるフレームデータを特定し参照するようにしてもよい。
これによれば、取得手段が上記記憶部に格納された各フレームについての格納位置を示すオフセット情報を解析キーに対応する解析キューに順次格納していく。このとき、格納すべき解析キューを特定するための解析キーはアドレス情報により生成される。
これにより、1つの仮想通信路でやりとりされるパケットを含むフレームに関するフレーム情報が異なる解析キューに格納されることはないように構成されている。
従って、各解析手段は、対応する1の解析キューからオフセット情報をフレーム毎にそれぞれ取得するようにすれば、解析手段が複数存在しそれらが並行に動作する場合であっても、各解析手段は、1つの仮想通信路に関する統計情報をそれぞれがまとめて統計する
ことができる。言い換えれば、複数の解析手段が1つの仮想通信路に関する統計情報を生成することがないため、処理が煩雑にならずかつ解析処理の高速化を実現することができる。
ことができる。言い換えれば、複数の解析手段が1つの仮想通信路に関する統計情報を生成することがないため、処理が煩雑にならずかつ解析処理の高速化を実現することができる。
すなわち、1つの取得手段と複数の解析手段とを備えかつそれらを並行動作させることにより解析処理の高速化を図ったとしても、適切な解析処理を実現することができる。
また、上記解析手段については、上記フレーム情報のオフセット情報により解析対象のフレームデータを参照し、このフレームデータに含まれるパケットのアドレス情報及びポート情報に基づいて、このパケットがやりとりされる仮想通信路を特定するための接続キーを生成する接続キー生成手段と、仮想通信路毎に生成された統計情報を仮想通信路毎に保持する接続情報保持部と、解析対象のフレームデータに関連する仮想通信路についての統計情報が保持される接続情報保持部内の位置を上記接続キーで特定し、特定された仮想通信路に関する統計情報をこの解析対象のフレームデータにより更新する統計情報生成手段とを有するように構成してもよい。
これによれば、各仮想通信路に関する統計情報は、解析対象のフレームデータに含まれるパケットを参照する度に更新される。よって、各仮想通信路でやりとりされるパケットの含まれるフレーム群を検出するのに、一度参照されたフレームデータを更に参照するような重複参照を避けることができるため、高速の解析処理を実現することができる。
更に、統計情報の更新にあたり、更新対象となる情報が保持されている接続情報保持部内の位置が接続キーにより特定される。この接続キーは、パケットのアドレス情報及びポート情報に基づいて生成されるため仮想通信路を特定し得るキーとなる。
従って、統計情報を接続情報保持部内で逐次更新していくという上記構成を取ったとしても高速な解析処理を実現することができる。
また、上記解析手段については、仮想通信路の統計情報に含まれる通信状態情報がこの仮想通信路を利用した通信の終了を示す場合に、この仮想通信路に関する統計情報を出力するように出力手段に依頼する依頼手段を更に有するようにし、この依頼手段が、解析対象のフレームデータの取得時刻が、同一仮想通信路でやりとりされたパケットを含むフレームであって既に解析済みとなったフレームデータの取得時刻から所定の時間経過している場合に、この仮想通信路の異常と判定し、この仮想通信路に関する統計情報を出力するように出力手段に依頼するようにしてもよい。
これによれば、各解析手段で仮想通信路を利用した通信の終了を検出することができ、この通信の終了が検出された仮想通信路毎に統計情報を出力手段に出力するように依頼することができるため、複数の解析手段及び出力手段が並行動作していたとしても適切なタイミングで統計情報の出力を行うことができる。更に、通信の終了を検出した解析手段から順に出力手段に出力依頼が出されるために出力手段による出力処理を時間的に分散させることができ、トータルとして解析処理を高速化することができる。
また、仮想通信路に関する統計情報には、仮想通信路でやりとりされた総パケットデータ長を含むようにし、上記統計情報生成手段が、解析対象のフレームデータに含まれるパケットについての仮想通信路がTCPコネクションである場合に、そのパケットに格納される確認応答情報に基づき総パケットデータ長を更新するようにしてもよい。
ここで、この確認応答情報とは、TCPヘッダに格納される「Acknowledgement Number」である。
従来、或る仮想通信路でやりとりされた全てのパケットのデータ長の合計(総パケットデータ長)を算出する場合には、例えばTCPコネクションでは再送が行われることがあるため重複するパケットのデータ長を除くために、過去に参照されたパケットについてフラグメント化されたパケットを再構築しながら全てそのパケット長を加算していくという処理が行われており、この処理がボトルネックになっていた。
しかしながら、上記態様によれば、ACKパケットの確認応答番号によってのみパケットストリーム長を更新することで正確な総パケットデータ長を得ることができるため、フラグメント化されたパケット全体の再構築等の処理を省くことができるため、解析処理を高速化することができる。
また、本発明に係る通信情報監査装置では、上記出力手段が、各仮想通信路に関する統計情報と共に、各仮想通信路でやりとりされたパケットを含むフレームのオフセット情報リストをそれぞれ出力するようにし、不正パケット検出手段から不正パケットのアドレス情報及びポート情報を含む警報情報を取得する警報取得手段と、上記不正パケットのアドレス情報及びポート情報に基づいて、当該不正パケットに関する仮想通信路でやりとりされたパケットを含む全てのフレームのオフセット情報を上記オフセット情報リストから抽出する抽出手段と、この抽出手段により抽出されたオフセット情報の示す位置に格納されるフレームデータを上記記憶部から取得する関連フレーム取得手段とを更に備えるように構成してもよい。
ここで、不正パケット検出手段とは、例えば、IDSが相当する。
このような構成により、従来のシステムではIDSの検知した不正パケット及びその後数パケットに関する情報しか出力されていなかったのに対して、本発明によれば、不正パケット検出手段により検知されたアラートの対象となったパケットに関する仮想通信路でやりとりされた全パケットを対象として解析することができる。
このような構成において、上記出力手段が、上記オフセット情報リストを各仮想通信路を特定するための接続キーに関連付けてそれぞれ出力するようにし、上記抽出手段が、上記警報取得手段により取得された不正パケットのアドレス情報及びポート情報に基づいて生成される接続キーを用いてオフセット情報リストから対象のフレームのオフセット情報を抽出するようにしてもよい。
このような構成にすることで、関連する全てのパケットを解析対象とした場合でも高速にそのデータを取得することが可能となる。
なお、本発明は、上記何れかの機能を実行する通信情報監査方法であってもよいし、以上の何れかの機能をコンピュータに実現させるプログラムであってもよい。また、本発明は、そのようなプログラムを記録したコンピュータが読み取り可能な記憶媒体であってもよい。
本発明によれば、通信情報の蓄積処理及び解析処理のそれぞれを高速に実行することのできる通信情報監査装置、方法及びプログラムを実現することができる。
以下、図面を参照して、本発明を実施するための最良の形態(以下、実施形態という)に係るネットワーク監査装置について説明する。実施形態の構成は例示であり、本発明は
実施形態の構成に限定されない。
実施形態の構成に限定されない。
[設置環境]
本実施形態におけるネットワーク監査装置10は、監査を行う対象ネットワーク(社内LAN(Local Area Network)等)にタップ等を用いて接続される。図1は、本実施形態におけるネットワーク監査装置10が設置されるネットワーク環境の例を示す図である。図1の例では、ネットワーク3にパーソナルコンピュータ等のクライアント端末5及び6、サーバ7及び8等が接続され社内LANが構築されている。更に、このネットワーク3は、インターネット1にルータ(図示せず)等を介して接続されている。
本実施形態におけるネットワーク監査装置10は、監査を行う対象ネットワーク(社内LAN(Local Area Network)等)にタップ等を用いて接続される。図1は、本実施形態におけるネットワーク監査装置10が設置されるネットワーク環境の例を示す図である。図1の例では、ネットワーク3にパーソナルコンピュータ等のクライアント端末5及び6、サーバ7及び8等が接続され社内LANが構築されている。更に、このネットワーク3は、インターネット1にルータ(図示せず)等を介して接続されている。
本実施形態におけるネットワーク監査装置10は、このネットワーク3に接続され、このネットワーク3を監査対象ネットワークとしている。例えば、サーバ7及び8がWebサーバとしてコンテンツをインターネット1に配信している場合には、このサーバ7及び8に対してインターネット1上から不正アクセスがなされることが考えられる。また、ウィルス等に感染したクライアント端末5及び6から重要ファイルが漏洩することも考えられる。本実施形態におけるネットワーク監査装置10は、このような事象を検知するために、ネットワーク3に流れる全てのパケットを蓄積及び解析する。
〔装置構成〕
以下、本実施形態におけるネットワーク監査装置10の装置構成について図2及び3を用いて説明する。図2は、本実施形態におけるネットワーク監査装置10のハードウェア構成例を示す概念図である。図3は、本実施形態におけるネットワーク監査装置10の機能構成を示すブロック図である。
以下、本実施形態におけるネットワーク監査装置10の装置構成について図2及び3を用いて説明する。図2は、本実施形態におけるネットワーク監査装置10のハードウェア構成例を示す概念図である。図3は、本実施形態におけるネットワーク監査装置10の機能構成を示すブロック図である。
〈ハードウェア構成〉
まず、本実施形態におけるネットワーク監査装置10のハードウェア構成の例について図2を用いて説明する。本ネットワーク監査装置10は、キャプチャカード21、ハードディスクドライブ(以降、HDDと表記する)23及び24、ネットワーク監査カード25等がそれぞれバス20で接続されている。図2は、本発明に関連のあるハードウェアについてのみ記載しているため、当然にそれ以外のハードウェアを備えるようにしてもよい。
まず、本実施形態におけるネットワーク監査装置10のハードウェア構成の例について図2を用いて説明する。本ネットワーク監査装置10は、キャプチャカード21、ハードディスクドライブ(以降、HDDと表記する)23及び24、ネットワーク監査カード25等がそれぞれバス20で接続されている。図2は、本発明に関連のあるハードウェアについてのみ記載しているため、当然にそれ以外のハードウェアを備えるようにしてもよい。
キャプチャカード21は、ネットワーク3に接続するための接続ポートを持つ。キャプチャカード21は、ネットワーク3で送受信されるプロトコルに対応したプロトコルスタックを有する。本実施形態では、1ギガビットEthernet(登録商標)が利用される場合を例に挙げる。本実施形態におけるネットワーク監査装置10は、このような1ギガビット毎秒(Gbps)の通信速度を持つネットワークにおいても適切なパケット蓄積及び解析を可能とする。
HDD23は、蓄積するフレームデータ量に応じた容量を持つ。HDD24は、ネットワーク監査の処理結果として出力されるファイルが格納される。HDD23及び24は、例えば、RAID(Redundant Arrays of Inexpensive Disks)により構成されるようにしてもよい。
ネットワーク監査カード25は、4つのCPU(Central Processing Unit)27が1つのメモリ26を共有するマルチプロセッサ構成を持つ。各CPU27はそれぞれCPUコアであり全体として1つのCPUパッケージとして構成されていてもよい。また、メモリ26には、OS(operating system)やプログラムが格納されるメモリ、キャッシュメモリ等が含まれる。次に説明する本実施形態におけるネットワーク監査装置10の各機能は、このプログラムがロードされ実行されることにより実現される。なお、本発明はこの
CPU27の数を限定するものではない。1つのCPUコアで構成されたとしても、インテル(登録商標)XEON(登録商標)3.2ギガヘルツ(GHz)程度の性能を有すれば以下に述べるネットワーク監査処理に関し1Gbpsのスループットを実現することは立証済みである。また、図2のハードウェア構成例では、ネットワーク監査カード25が1つのカードとして構成される例を挙げているが、このネットワーク監査カード25が複数のカードとして構成されるようにしてもよい。
CPU27の数を限定するものではない。1つのCPUコアで構成されたとしても、インテル(登録商標)XEON(登録商標)3.2ギガヘルツ(GHz)程度の性能を有すれば以下に述べるネットワーク監査処理に関し1Gbpsのスループットを実現することは立証済みである。また、図2のハードウェア構成例では、ネットワーク監査カード25が1つのカードとして構成される例を挙げているが、このネットワーク監査カード25が複数のカードとして構成されるようにしてもよい。
〈機能構成〉
次に、本実施形態におけるネットワーク監査装置10の機能構成について図3を用いて説明する。図3に示すように、本実施形態におけるネットワーク監査装置10は、通信インタフェース部31、キャプチャ部32、蓄積制御部33、フレームデータファイル群34、解析部35、不正検知部60、統計情報ファイル38、オフセットファイル39等を備える。以下、本実施形態におけるネットワーク監査装置10を構成する各機能部についてそれぞれ説明する。
次に、本実施形態におけるネットワーク監査装置10の機能構成について図3を用いて説明する。図3に示すように、本実施形態におけるネットワーク監査装置10は、通信インタフェース部31、キャプチャ部32、蓄積制御部33、フレームデータファイル群34、解析部35、不正検知部60、統計情報ファイル38、オフセットファイル39等を備える。以下、本実施形態におけるネットワーク監査装置10を構成する各機能部についてそれぞれ説明する。
〈〈通信インタフェース部、キャプチャ部〉〉
通信インタフェース部31及びキャプチャ部32は、上記ハードウェア構成のうち例えばキャプチャカード21で実現される。キャプチャ部32は、通信インタフェース部31から入力される、ネットワーク3上に流れるEthernet(登録商標)フレーム(以降、単にフレームと表記する)列を順次取り込む。キャプチャ部32は、取り込まれたフレーム列を蓄積制御部33に渡す。なお、キャプチャ部32は、取り込まれたフレーム列をリングバッファ等に格納し、蓄積制御部33は、そのリングバッファを参照するようにしてもよい。
通信インタフェース部31及びキャプチャ部32は、上記ハードウェア構成のうち例えばキャプチャカード21で実現される。キャプチャ部32は、通信インタフェース部31から入力される、ネットワーク3上に流れるEthernet(登録商標)フレーム(以降、単にフレームと表記する)列を順次取り込む。キャプチャ部32は、取り込まれたフレーム列を蓄積制御部33に渡す。なお、キャプチャ部32は、取り込まれたフレーム列をリングバッファ等に格納し、蓄積制御部33は、そのリングバッファを参照するようにしてもよい。
〈〈蓄積制御部〉〉
蓄積制御部33は、ネットワーク監査カード25上のメモリ26に格納されるプログラムが実行されることにより実現される。蓄積制御部33は、キャプチャ部32により取り込まれるフレーム列を所定の単位で1つのフレームデータファイルに書き込む。本実施形態では、蓄積制御部33は、5分単位で新たなフレームデータファイル34を順次作成していくものとする。このとき、蓄積制御部33は、1つのフレームが2つのフレームデータファイル34に跨って書き込まれることのないように、フレーム区切りを判別することによりフレーム単位でフレームデータファイル34に書き込む。なお、本発明は、このフレームデータファイル34の作成単位を限定するものではない。
蓄積制御部33は、ネットワーク監査カード25上のメモリ26に格納されるプログラムが実行されることにより実現される。蓄積制御部33は、キャプチャ部32により取り込まれるフレーム列を所定の単位で1つのフレームデータファイルに書き込む。本実施形態では、蓄積制御部33は、5分単位で新たなフレームデータファイル34を順次作成していくものとする。このとき、蓄積制御部33は、1つのフレームが2つのフレームデータファイル34に跨って書き込まれることのないように、フレーム区切りを判別することによりフレーム単位でフレームデータファイル34に書き込む。なお、本発明は、このフレームデータファイル34の作成単位を限定するものではない。
〈〈フレームデータファイル〉〉
蓄積制御部33により作成された各フレームデータファイル34は、HDD23にそれぞれ格納される。図4は、フレームデータファイル群の例を示す図である。図4に示されるように、各フレームデータファイル34は、例えば日付及び時刻を示すファイル名が付されてそれぞれ格納される。図4の例では、括弧で囲まれた部分がファイル名を示しており、2006年12月4日15時20分に生成されたファイルは、200612041520というファイル名を持つ。
蓄積制御部33により作成された各フレームデータファイル34は、HDD23にそれぞれ格納される。図4は、フレームデータファイル群の例を示す図である。図4に示されるように、各フレームデータファイル34は、例えば日付及び時刻を示すファイル名が付されてそれぞれ格納される。図4の例では、括弧で囲まれた部分がファイル名を示しており、2006年12月4日15時20分に生成されたファイルは、200612041520というファイル名を持つ。
また、各フレームデータファイル34にはそれぞれ、ファイルヘッダが先頭に格納され、その後にフレーム毎にフレーム付加情報及びフレームデータが続けて格納される。ファイルヘッダには、格納されたフレームがEthernet(登録商標)フレームであるか否か、最大フレーム長等のフレーム仕様が記載される。フレーム付加情報には、キャプチャされたタイムスタンプ、フレーム長、パケット長等が記載される。なお、このファイルヘッダ、フレーム毎に格納されるフレーム付加情報は格納されないようにしてもよい。フレームデータとは、フレームを構成する生データである。このフレームデータファイル34のファイル形式は、pcap形式を利用するようにしてもよい。
ここで、各フレームデータファイル34のファイルサイズは、本実施形態では、1GbpsのEthernet(登録商標)を用い、上り下りの全二重通信を対象とするため、約76ギガバイト(GB)(=2×約38(GB)=2×(1(Gbps)×60(秒)×5(分)÷8(ビット)+その他の付加情報(バイト)))となる。このファイルサイズは、蓄積制御部33のファイル作成単位により決まる。
〈〈解析部〉〉
解析部35は、ネットワーク監査カード25上のメモリ26に格納されるプログラムが実行されることにより実現される。解析部35は、読み取り部41、ヘッダ解析部42、接続追跡部43、統計情報生成部44、統計情報出力部45、ハッシュテーブル47等を有する。図3の例における解析部35は、ヘッダ解析部42、接続追跡部43及び統計情報生成部44をそれぞれ実現する4つの解析スレッド49と、読み取り部41を実現する1つのスレッドと統計情報出力部45を実現する1つのスレッドとの6つのスレッドが上記マルチプロセッサによる並列処理されることにより実現される。但し、本発明は、この解析部35を実現するスレッド構成を限定するものではない。以下、解析部35を構成する各詳細機能部についてそれぞれ説明する。
解析部35は、ネットワーク監査カード25上のメモリ26に格納されるプログラムが実行されることにより実現される。解析部35は、読み取り部41、ヘッダ解析部42、接続追跡部43、統計情報生成部44、統計情報出力部45、ハッシュテーブル47等を有する。図3の例における解析部35は、ヘッダ解析部42、接続追跡部43及び統計情報生成部44をそれぞれ実現する4つの解析スレッド49と、読み取り部41を実現する1つのスレッドと統計情報出力部45を実現する1つのスレッドとの6つのスレッドが上記マルチプロセッサによる並列処理されることにより実現される。但し、本発明は、この解析部35を実現するスレッド構成を限定するものではない。以下、解析部35を構成する各詳細機能部についてそれぞれ説明する。
読み取り部41は、フレームデータファイル群34を参照することにより、蓄積制御部33により新たなフレームデータファイルが生成され保存されたか否かを定周期に検査する。読み取り部41は、新たなフレームデータファイルが作成されたことを検知すると、そのフレームデータファイルを開く。読み取り部41は、その開かれたフレームデータファイルに格納されている各フレームデータをファイルの先頭から(古いフレームから)順番に参照し、各フレームに関し、オフセット情報、ヘッダ情報、レイヤ3(ネットワーク層:IP(Internet Protocol))の送信先アドレス及び送信元アドレスに基づくキー(以降、L3キーと表記する)をそれぞれ生成する。
上記オフセット情報とは、フレームデータファイルの先頭アドレスからのその対象フレームの先頭アドレスまでのオフセットアドレスである。上記ヘッダ情報とは、図4に示されるフレーム付加情報のうちキャプチャされたタイムスタンプ、フレーム長等である。上記L3キーは、IPパケットに含まれる送信先アドレスと送信元アドレスとの排他的論理和を所定の数で割った余りとして生成される。これにより、L3キーは、相互通信する装置間においていずれの方向のパケットに対しても同一の値となる。なお、所定の数は、解析スレッド49のスレッド数に設定される。
読み取り部41は、L3キーに対応するキュー(以降、このキューを解析キューと表記する)を生成する。解析キューは、L3キーの数に応じて予め生成されるようにしてもよいし、新たなL3キーが生成される毎に生成されるようにしてもよい。この解析キューの数及び解析スレッド49の数はそれぞれこのL3キーの数と同数となるように構成される。
読み取り部41は、この解析キューに、オフセット情報、ヘッダ情報、L3キーをフレーム毎に格納する。このフレーム毎に格納されるオフセット情報、ヘッダ情報及びL3キーをフレーム情報と表記するものとする。読み取り部41は、対象フレームについて生成されたL3キーに対応する解析キューにフレーム情報を入力する。
解析スレッド49は、各解析キューにそれぞれ対応するように構成される。
ヘッダ解析部42は、対応する解析キューからフレーム情報をフレーム毎に取り出す。ヘッダ解析部42は、取り出されたフレーム情報の示すフレームの正当性を検査する。ヘ
ッダ解析部42は、フレームの正当性を検査するにあたり、対象フレームに含まれるIPパケットのヘッダ部に設定されるチェックサムを用いる。このとき、ヘッダ解析部42は、取り出されたオフセット情報に基づき、読み取り部41により開かれている解析対象のフレームデータファイルにおける対象フレームの先頭アドレスを知る。ヘッダ解析部42は、その対象フレームの先頭アドレスからIPヘッダのチェックサム格納エリアを求め、そのエリアからチェックサムを抽出する。
ッダ解析部42は、フレームの正当性を検査するにあたり、対象フレームに含まれるIPパケットのヘッダ部に設定されるチェックサムを用いる。このとき、ヘッダ解析部42は、取り出されたオフセット情報に基づき、読み取り部41により開かれている解析対象のフレームデータファイルにおける対象フレームの先頭アドレスを知る。ヘッダ解析部42は、その対象フレームの先頭アドレスからIPヘッダのチェックサム格納エリアを求め、そのエリアからチェックサムを抽出する。
接続追跡部43は、ヘッダ解析部42によりフレームの正当性が検証されると、そのフレームに含まれるIPパケットの接続追跡処理を行う。接続追跡処理とは、同一コネクションで送受信される全てのIPパケットを追跡しそれらIPパケットに関する情報を取得し、コネクション毎に取りまとめる処理をいう。以降、同一コネクションで送受信される全てのパケットを1つのパケットストリームと表記するものとする。
図5は、接続追跡部43による接続追跡処理の概要を示す図である。図5では、IPアドレス(10.0.213.5)のエンドポイントとIPアドレス(10.0.213.10)のエンドポイントとの間で確立されたコネクション(ポート番号80とポート番号50000とを使用するコネクション)でやりとりされる全てのパケットに関する情報が、パケットストリーム1として取得しまとめられることが示されている。
このように接続追跡処理でまとめられるデータ単位となるコネクションとは、レイヤ4(トランスポート層)におけるTCP(Transmission Control Protocol)コネクションの他、UDP(User Datagram Protocol)を用いて2つのエンドポイント間でデータグラムをやりとりするための通信路(IPアドレスとポート番号との組の組み合わせによって管理される通信路)を含むものとする。なお、ICMP(Internet Control Message Protocol)パケットの場合には、2つのエンドポイントのIPアドレスの組み合わせが1つのコネクションとして取り扱われる。
接続追跡部43は、この接続追跡処理により取りまとめられた情報を、コネクション毎(パケットストリーム毎)にハッシュテーブル47に格納する。接続追跡部43は、正当性の検証されたフレームに含まれるIPパケットを参照し、IPヘッダに設定されるプロトコル番号、送信先IPアドレス、送信元IPアドレス、TCPヘッダ若しくはUDPヘッダに設定される送信先ポート番号、送信元ポート番号を取得する。接続追跡部43は、取得されたプロトコル番号(1:ICMP、6:TCP、17:UDP、等)に応じて格納すべきハッシュテーブル47を決定する。ハッシュテーブル47は、プロトコル番号に対応するように設けられている。接続追跡部43は、同様に取得された送信先IPアドレス、送信元IPアドレス、送信先ポート番号及び送信元ポート番号を所定のハッシュ関数に与えることにより得られるハッシュ値をキー(以降、コネクションキーと表記する)として、ハッシュテーブル47の中のそのキーの示すレコードを検索する。このコネクションキーは、1コネクション若しくは1パケットストリームにつきユニークな識別子となる。なお、本発明は、このハッシュ関数を限定するものではなく一般的なハッシュ関数であればよい。なお、ICMPパケットについてのコネクションキーは、送信先アドレス及び送信元アドレスの対により得られる。
図6は、ハッシュテーブル47のうちTCP用のハッシュテーブルの例を示す概念図である。ハッシュテーブル47は、プロトコル番号(プロトコル種別)に応じて設けられる。各ハッシュテーブル47には、1コネクション(1パケットストリーム)を1レコードとしてそれぞれ格納される。各レコードには、そのコネクションに関する接続情報及びパケット情報リストが格納される。この接続情報には、通信開始時刻、通信終了時刻、通信開始元接続情報、通信先接続情報等が格納される。この通信開始元接続情報には、通信開始を要求した(SYNを送信した)側(以降、通信開始元又はクライアントと表記する)
からこの通信開始を要求された(SYNを受信した)側(以降、通信先又はサーバと表記する)へ送信されるパケットに関する情報が格納され、具体的には、シーケンス番号、ウィンドウサイズ、ウィンドウスケーリング、タイムスタンプ、フラグメント情報、累積パケット数、ACK番号、パケットストリーム長、TCPコネクション状態等が格納される。一方、通信先接続情報とは、サーバ側からクライアント側へ送信されるパケットに関する情報が格納され、通信開始元接続情報と同様のデータが格納される。なお、TCPの場合に、ここで表記されるクライアントとはアクティブオープン状態となったノードを、サーバとはパッシブオープン状態となったノードを意味するものである。
からこの通信開始を要求された(SYNを受信した)側(以降、通信先又はサーバと表記する)へ送信されるパケットに関する情報が格納され、具体的には、シーケンス番号、ウィンドウサイズ、ウィンドウスケーリング、タイムスタンプ、フラグメント情報、累積パケット数、ACK番号、パケットストリーム長、TCPコネクション状態等が格納される。一方、通信先接続情報とは、サーバ側からクライアント側へ送信されるパケットに関する情報が格納され、通信開始元接続情報と同様のデータが格納される。なお、TCPの場合に、ここで表記されるクライアントとはアクティブオープン状態となったノードを、サーバとはパッシブオープン状態となったノードを意味するものである。
接続追跡部43は、コネクションキーによりハッシュテーブル47を検索し、そのコネクションキーの示すレコードを参照パケットの情報で更新する。以下、接続追跡部43によるTCP用のハッシュテーブルにおける接続情報の具体的な更新方法について説明する。
通信開始時刻には、TCPコネクションの確立を示すフレームのキャプチャされた時刻が設定される。具体的には、通信開始時刻は、参照パケットにより後述するTCPコネクション状態がコネクション確立状態とされる場合に、解析キューから取得されたヘッダ情報に含まれるキャプチャされたタイムスタンプが設定される。
通信終了時刻は、パケットが参照される度に、上記解析キューから取得されたヘッダ情報に含まれるキャプチャされたタイムスタンプが設定される。これにより、最終的に統計情報が出力される際の通信終了時刻には、そのコネクションによる通信が終了する直前のフレームのキャプチャされた時刻が設定されることになる。
接続追跡部43は、参照パケットがクライアントからサーバへ送信されたパケットであると判断すると、その参照パケットにより通信開始元接続情報を更新し、参照パケットがサーバからクライアントへ送信されたパケットであると判断すると、その参照パケットにより通信先接続情報を更新する。以下、通信開始元接続情報及び通信先接続情報に含まれる各項目についてそれぞれ説明する。
シーケンス番号は、参照パケットがSYNパケット、(SYN+ACK)パケット、ACKパケット、FINパケットである場合に、そのパケットのTCPヘッダの「Sequence
Number」フィールドに格納されるデータで更新される。このとき、接続追跡部43は、参照パケットが3WAYハンドシェーク時のACKパケットであり、更新前の接続情報に設定されているシーケンス番号が参照パケットのシーケンス番号から1差し引いた番号となっている場合に、その参照されているACKパケットを正常と判断し、そのシーケンス番号により更新する。
Number」フィールドに格納されるデータで更新される。このとき、接続追跡部43は、参照パケットが3WAYハンドシェーク時のACKパケットであり、更新前の接続情報に設定されているシーケンス番号が参照パケットのシーケンス番号から1差し引いた番号となっている場合に、その参照されているACKパケットを正常と判断し、そのシーケンス番号により更新する。
ウィンドウサイズは、現在参照されるパケットのTCPヘッダの「Window」フィールドに格納されるデータで更新される。
タイムスタンプは、現在参照されるパケットのTCPヘッダの「Option」フィールドに格納されるデータで更新される。
ウィンドウスケーリングは、参照されるパケットがSYNパケットの場合にそのTCPヘッダの「Option」フィールドに格納されているウィンドウスケーリングデータで更新される。
フラグメント情報は、参照されるパケットのIPヘッダの「Flags」フィールドにフラグメント化されたパケットが含まれることを示すデータが格納されていた場合に、更新さ
れる。
れる。
累積パケット数は、パケットが参照される度に1ずつ加算される。
ACK番号は、参照されるパケットのTCPヘッダの「Acknowledgement Number」フィールドに格納される数値」が既に設定されている数値よりも大きい場合にその数値により更新される。
パケットストリーム長には、そのコネクションのうち各方向に関しそれぞれ送信された全パケットの合計データ長が設定される。接続追跡部43は、参照パケットのTCPヘッダの「Acknowledgement Number」フィールドに格納される数値から更新前の上記ACK番号に設定される数値を引いた値を既に設定されている値に加算する。TCPでは再送が行われる場合がありその再送によって重複したセグメントについてはパケットストリーム長として加算されないようにする必要がある。これを防止するための処理としては通常、過去に参照されたパケットについてフラグメント化されたパケットを再構築しながら全てそのパケット長を加算していくという処理が行われていた。本実施形態では、上記のようにサーバから送信されるACKパケットの「Acknowledgement Number」によってのみパケットストリーム長を更新することにより高速化を実現する。
TCPコネクション状態には、クライアントがSYNパケットを送信した状態(状態1)、サーバが上記SYNパケットに対する(SYN+ACK)パケットを送信した状態(状態2)、クライアントが上記(SYN+ACK)パケットに対するACKパケットを送信した状態(コネクション確立状態)(状態3)、クライアント若しくはサーバがFINパケットを送信した状態(状態4)、サーバ若しくはクライアントが上記FINパケットに対するACKパケットを送信した状態(状態5)のいずれかが設定される。上記(状態3)は、上記コネクション確立状態から(状態4)までの間の通信状態を含む。
接続追跡部43は、参照パケットがSYNパケット、(SYN+ACK)パケット、ACKパケット、FINパケットのいずれかの場合に、このTCPコネクション状態を上記(状態1)から(状態5)のいずれかを示すデータに更新する。このとき、接続追跡部43は、既に設定されているTCPコネクション状態と参照パケットの示すコネクション状態との比較により、この接続情報のTCPコネクション状態を更新すべきか否かを決定する。例えば、既に設定されているTCPコネクション状態が上記(状態1)であるにも関わらず参照パケットがSYNパケットである場合には、その対象コネクションは切断されたものと判断し、この参照パケットによりそのレコードを更新しない。
UDP用のハッシュテーブルでは、TCPのようなコネクションの明示的なクローズ(FINパケット)やリセット(RSTパケット)が存在しないため、上記TCPコネクション状態については、「片方向のUDP通信」と「双方向のUDP通信」のような通信状態が設定される。
接続追跡部43は、ハッシュテーブル47の接続情報の更新の他、参照パケットが含まれるフレームの格納されるフレームデータファイル内のオフセットアドレスを、参照した順にハッシュテーブル47のパケット情報リストに追加していく。
また、接続追跡部43は、タイムアウト状態として2つの状態を検出する。1つは、接続情報のタイムスタンプを更新する際に、既に設定されているタイムスタンプと参照パケットに格納されるタイムスタンプとを比較することにより、両者の時間差が所定の閾値以上ある場合に、そのコネクションを無応答状態として検出するものである。この所定の閾値には、例えば、再送タイマとして設定される時間が利用される。
もう1つについては、接続確立後、所定の時間経過しているコネクションを異常状態として検出するものである。この異常状態の検出には、リンクドリストが参照される。接続追跡部43は、参照されるパケットにより上記接続確立状態を検出した際に、ハッシュテーブル内のそのコネクションの格納されるレコードを指すポインタを接続確立順に格納していくことにより、このリンクドリスト(Linked List)を生成する。接続追跡部43は、パケットを参照する度に、このリンクドリストを最も古く接続確立されたコネクションから順に参照することにより、各コネクションについて接続確立からの経過時間を測定し、異常状態を検出する。
接続追跡部43は、ハッシュテーブル47の通信開始元接続情報及び通信先接続情報のいずれのTCPコネクション状態も上記(状態5)に更新した場合、参照パケットがRSTパケットであった場合、上記タイムアウト状態であると判断された場合のいずれかになった場合に、統計情報生成部44にそのコネクションについての統計情報の生成を指示する。また、UDPについては、上記タイムアウト状態であると判断された場合、すなわち、UDPパケットが送信されてから一定時間を経過しても次のUDPパケットが送信されていないと判断された場合にUDPデータグラムが終了したと判断して統計情報の生成が指示される。
統計情報生成部44は、接続追跡部43により指示されるコネクションについて、ハッシュテーブル47の対象レコードを参照することにより、そのコネクションについての以下のような統計情報を生成する。このとき、ハッシュテーブル47内の通信開始元接続情報及び通信先接続情報はそれぞれ1コネクションの情報としてまとめられる。
統計情報生成部44は、ハッシュテーブル47の対象レコードのパケット情報リストに格納されているいずれか1つのオフセットアドレスの指し示すフレームのIPヘッダを参照することにより、クライアントIPアドレス(source address)、サーバIPアドレス(destination address)、プロトコルを取得し、同フレームのTCPヘッダを参照することにより、クライアントポート番号(source port)、サーバポート番号(destination
port)を取得する。
port)を取得する。
更に、統計情報生成部44は、ハッシュテーブル47の対象レコードの接続情報から通信開始時刻、通信終了時刻、フラグメント情報、累積パケット数、パケットストリーム長を取得する。累積パケット数及びパケットストリーム長については、通信開始元接続情報及び通信先接続情報のそれぞれの累積パケット数及びパケットストリーム長のそれぞれの合計が算出される。
また、統計情報生成部44は、コネクション状態として、ハッシュテーブル47の対象レコードの接続情報のTCPコネクション状態を取得するが、RSTパケット若しくはタイムアウトによりコネクション終了とみなされた場合には、それらの情報が取得される。統計情報生成部44は、コネクションIDとして、そのコネクションキーを取得する。
統計情報生成部44は、取得された上記統計情報とパケット情報リストを統計情報出力部45へ渡す。
統計情報出力部45は、統計情報生成部44から渡された上記統計情報を所定の統計情報ファイル38に出力する。統計情報出力部45は、統計情報生成部44から渡されたパケット情報リストに含まれる、そのコネクションに関するオフセットアドレスの集合をそのコネクションに関連付けてオフセットファイル39に出力する。
<<統計情報ファイル>>
統計情報ファイル38は、HDD24に格納される。統計情報ファイル38は、各フレームデータファイル34についてそれぞれ別ファイルとして生成される。図7は、統計情報ファイル38の構成例を示す図である。図7に示されるように、統計情報ファイル38には、各コネクション(パケットストリーム)についてそれぞれコネクションID、通信開始時刻、通信終了時刻、クライアントIPアドレス、サーバIPアドレス、フラグメントの有無、プロトコル、コネクション状態、クライアントポート番号、サーバポート番号、累積パケット数、パケットストリーム長が格納される。
統計情報ファイル38は、HDD24に格納される。統計情報ファイル38は、各フレームデータファイル34についてそれぞれ別ファイルとして生成される。図7は、統計情報ファイル38の構成例を示す図である。図7に示されるように、統計情報ファイル38には、各コネクション(パケットストリーム)についてそれぞれコネクションID、通信開始時刻、通信終了時刻、クライアントIPアドレス、サーバIPアドレス、フラグメントの有無、プロトコル、コネクション状態、クライアントポート番号、サーバポート番号、累積パケット数、パケットストリーム長が格納される。
この統計情報ファイル38は、例えば、他のアプリケーションにより通信情報分析、フォレンジクス情報として利用される。
<<オフセットファイル>>
オフセットファイル39は、HDD24に格納される。オフセットファイル39は、各フレームデータファイル34についてそれぞれ別ファイルとして生成される。図8は、オフセットファイル39の構成例を示す図である。図8に示されるように、オフセットファイル39には、各コネクション(パケットストリーム)でやりとりされた各パケットの含まれるフレームの格納されるフレームデータファイル34内のオフセットアドレスがコネクション毎に格納される。図8の例では、パケットストリーム1でやりとりされたパケットが6個あり、各パケットの含まれるフレームのオフセットアドレスがそれぞれ格納されている。
オフセットファイル39は、HDD24に格納される。オフセットファイル39は、各フレームデータファイル34についてそれぞれ別ファイルとして生成される。図8は、オフセットファイル39の構成例を示す図である。図8に示されるように、オフセットファイル39には、各コネクション(パケットストリーム)でやりとりされた各パケットの含まれるフレームの格納されるフレームデータファイル34内のオフセットアドレスがコネクション毎に格納される。図8の例では、パケットストリーム1でやりとりされたパケットが6個あり、各パケットの含まれるフレームのオフセットアドレスがそれぞれ格納されている。
<<不正検知部60>>
不正検知部60は、IDS62、アラートファイル64、関連情報出力部66等を有する。不正検知部60は、ユーザインタフェース(図示せず)からの要求により、IDS62から出力されるアラートに関連するパケット情報を出力する。例えば、ユーザインタフェースがWebブラウザである場合には、不正検知部60は、出力形式としてHTMLファイルを出力するようにしてもよい。
不正検知部60は、IDS62、アラートファイル64、関連情報出力部66等を有する。不正検知部60は、ユーザインタフェース(図示せず)からの要求により、IDS62から出力されるアラートに関連するパケット情報を出力する。例えば、ユーザインタフェースがWebブラウザである場合には、不正検知部60は、出力形式としてHTMLファイルを出力するようにしてもよい。
IDS62は、例えば、Snort(登録商標)をベースとして構築される。IDS62は、フレームデータファイル群34に格納されたフレームを監視することによって不正アクセス等の不正パケットを検知する。この不正パケットを検知するために、IDS62は、不正パケットの特徴情報を記録したシグネチャや不正通信等をルール化したポリシー情報等を用いる。IDS62は、検知された不正パケットに関する情報を含めたアラート情報を出力する。なお、本発明は、IDS62自体の機能を限定するものではなく、IDS62は一般的なIDSとしての機能を有していればよいため、詳細説明を省略する。
アラートファイル64は、IDS62から出力されるアラート情報を格納する。IDS62から出力される各アラートには、アラートの種類、アラート対象のパケットの送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号等がそれぞれ含まれる。アラートファイル64は、これらの情報をアラート毎に格納する。
関連情報出力部66は、ユーザインタフェースから所定のアラートについての出力指示を受けると、その指示内容に応じたそのアラート対象のパケットに関連する情報を出力する。指示内容が関連パケット情報の出力である場合には、関連情報出力部66は、アラート対象のパケットの属するコネクションでやりとりされた全てのパケットに関する情報を出力する。指示内容が指定されたパケットの詳細情報の出力である場合には、関連情報出力部66は、その指定されたパケットのデータを出力する。
このように所定のデータを出力するにあたり、関連情報出力部66は、指定されたアラ
ートの対象となったパケットの送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号を用いて上述の接続追跡部43と同様の方法によりコネクションキーを生成する。関連情報出力部66は、オフセットファイル39に格納されるコネクションIDがこのコネクションキーとなるレコードを検索する。関連情報出力部66は、検索されたレコードに含まれる各フレームのオフセットアドレスをそれぞれ取得し、その取得されたオフセットアドレスに基づいてフレームデータファイル34から各フレームデータをそれぞれ取得する。なお、各フレームのオフセットアドレスを取得するにあたり、統計情報ファイル38にオフセットファイルのレコードIDが格納されるようにし、そのレコードIDを元にオフセットファイルのレコードを検索するようにしてもよい。
ートの対象となったパケットの送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号を用いて上述の接続追跡部43と同様の方法によりコネクションキーを生成する。関連情報出力部66は、オフセットファイル39に格納されるコネクションIDがこのコネクションキーとなるレコードを検索する。関連情報出力部66は、検索されたレコードに含まれる各フレームのオフセットアドレスをそれぞれ取得し、その取得されたオフセットアドレスに基づいてフレームデータファイル34から各フレームデータをそれぞれ取得する。なお、各フレームのオフセットアドレスを取得するにあたり、統計情報ファイル38にオフセットファイルのレコードIDが格納されるようにし、そのレコードIDを元にオフセットファイルのレコードを検索するようにしてもよい。
このように、本実施形態によれば、IDS62により検知されたアラートの対象となったパケットに関連する全てのパケットを対象として解析することができる。これは、フレームデータファイル34に全てのフレームが格納されているからできることである。よって、従来のシステムではIDSの検知した不正パケット及びその後数パケットに関する情報のみが出力されていたという問題点を解決することができる。
更に、本実施形態によれば、関連する全てのパケットを対象とした場合でも高速にそのデータを取得することが可能となる。
〔動作例〕
次に、本実施形態におけるネットワーク監査装置10の動作例として、上述した解析部35とその他の各機能部の連携動作について図9及び10を用いて説明する。図9は、解析部35の並列処理の概念を示す図である。図10は、本実施形態におけるネットワーク監査装置10の各機能部のスレッドスケジューリングの例を示す図である。
次に、本実施形態におけるネットワーク監査装置10の動作例として、上述した解析部35とその他の各機能部の連携動作について図9及び10を用いて説明する。図9は、解析部35の並列処理の概念を示す図である。図10は、本実施形態におけるネットワーク監査装置10の各機能部のスレッドスケジューリングの例を示す図である。
まず、解析部35を構成する各機能部の連係動作について図9を用いて説明する。本実施形態における解析部35では、読み取り部41及び統計情報出力部45がそれぞれ1スレッドで実行され、ヘッダ解析部42、接続追跡部43及び統計情報生成部44が実行される解析スレッド49が4つ生成される。
読み取り部41は、新たなフレームデータファイルが作成されたことを検知すると、そのフレームデータファイルに格納されている各フレームデータをファイルの先頭から(古いフレームから)順番に参照する。読み取り部41は、参照された各フレームに関し、オフセット情報、ヘッダ情報、L3キーをそれぞれ生成し、このL3キーに対応する解析キューに生成されたフレーム情報を格納していく。図9の例では、4つのL3キーが生成され(L3−KEY1、L3−KEY2、L3−KEY3、L3−KEY4)、各L3キーに対応するように4つの解析キュー(81−1、81−2、81−3、81−4)が設けられる。
読み取り部41は、解析スレッド49の動作に関係なく、フレームデータファイルに格納される全てのフレームに関するフレーム情報を順次何れかの解析キューに格納していく。このとき、フレーム情報を格納する解析キューを決定するためのL3キーは、レイヤ3のアドレス情報が利用されるため、同一コネクションでやりとりされるパケットを含むフレームに関するフレーム情報が異なる解析キューに格納されることはない。
解析スレッド49は、対応する解析キューから順次オフセット情報を取り出す。図9の例では、解析スレッド49−1が解析キュー81−1に対応し、解析スレッド49−2が解析キュー81−2に対応し、解析スレッド49−3が解析キュー82−3に対応し、解析スレッド49−4が解析キュー82−4に対応する。解析スレッド49は、読み出されたフレーム情報に基づいてフレームデータファイル内の解析対象のフレームデータの格納
位置を特定する。
位置を特定する。
解析スレッド49は、解析対象のフレームデータに関し、フレームの正当性検証を行い(ヘッダ解析部42)、正当性の検証されたフレームについてIPパケットの接続追跡処理(接続追跡部43)を実行する。これにより、各コネクションについての統計情報が参照されるフレームによって逐次更新される。
従って、各コネクションでやりとりされるパケット群を検出するのに、一度参照されたフレームデータを更に参照するような重複参照を避けることができるため、高速の解析処理を実現することができる。
解析キューが上述のように取り扱われるため、1つのコネクションでやりとりされるパケットが異なる解析スレッドで扱われることはない。これにより、複数の解析スレッドが並列に動作したとしても、各解析スレッドは、1つのコネクション(パケットストリーム)に関する統計情報を独立してまとめて統計することができる。言い換えれば、複数の解析スレッドが1つのコネクションに関する統計情報を生成することがないため、処理が煩雑にならずかつ処理の高速化を実現することができる。
解析スレッド内の統計情報生成部44は、接続追跡部43により参照されたパケットにより決定されるコネクション状態が、FINパケットに対するACKパケットが送信された状態であるとき、RSTパケットが送信された状態であるとき、タイムアウト状態であるときのいずれかになった場合に、そのコネクションについての統計情報を生成する。言い換えれば、各解析スレッドは、扱われるコネクション状態が上記所定の状態となったと検出する度に、そのコネクションの統計情報を生成し、その統計情報の出力を統計情報出力部45にそれぞれ依頼する。各解析スレッドは、対応する解析キューが空になるまで処理を継続する。
統計情報出力部45は、複数の解析スレッドの何れかから統計情報の出力を依頼される度に、その依頼されたコネクションについて統計情報を対象の統計情報ファイル38に出力する。このとき、統計情報出力部45は、同様に解析スレッドから渡される対象コネクションに関連するフレームのオフセット情報リストに基づいて、各コネクション(パケットストリーム)でやりとりされたフレーム生データをコネクション毎にオフセットファイル39に格納する。
これにより、各解析スレッドでコネクション毎の通信終了を検出することができ、この通信終了が検出されたコネクション毎に統計情報の出力依頼が出されるため、複数の解析スレッドと統計情報出力部45が並列動作していたとしても適切なタイミングで統計情報の出力を行うことができる。更に、通信の終了を検出した解析スレッドから順に統計情報出力部45に出力依頼が出されるため、統計情報出力部45による出力処理を時間的に分散させることができ、トータルとして解析処理を高速化することができる。
次に、上述した解析部35を構成する各機能部及び蓄積制御部33の連携動作について図10に示されるスレッドスケジューリングの例を参照して説明する。なお、本発明の図10に示されるスレッドスケジューリングに限定するものではない。これら各機能部は、ネットワーク監査カード25に備えられる4つのCPU27のマルチプロセッシングにより実行される。同ネットワーク監査カード25内のメモリ26に格納されるOSは、図10の例のようなスレッドスケジューリングを実行する。
図10の例では、蓄積制御部33は、キャプチャ部32によりフレームデータが常に取り込まれるため、1つのCPU27−1を占有して実行される。蓄積制御部33のスレッ
ド(図10に示す蓄積制御(1))が新たなフレームデータファイルを生成し終了すると、そのフレームデータファイルを参照する読み取り部41が実行される。読み取り部41が実行され解析キューにフレーム情報が格納されると、各解析スレッド49(図10に示す解析(1)から(4))がそれぞれ実行される。
ド(図10に示す蓄積制御(1))が新たなフレームデータファイルを生成し終了すると、そのフレームデータファイルを参照する読み取り部41が実行される。読み取り部41が実行され解析キューにフレーム情報が格納されると、各解析スレッド49(図10に示す解析(1)から(4))がそれぞれ実行される。
読み取り部41は、1つのフレームデータファイルに格納されるフレームデータを全て参照することで処理が完了するため、1つのCPU27−2を占有して実行される。また、統計情報出力部45は、基本的に、HDD23に統計情報ファイル38若しくはオフセットファイル39を保存する処理であるため、CPU27−2を占有する時間が短くなる。解析スレッド49の解析処理がCPU27−3及びCPU27−4を占有し、各解析スレッド49はCPU27−3及びCPU27−4を切り替えながら実行される。
このように、ネットワーク監査カード25上で実行されるOSは、蓄積制御部33、読み取り部41、統計情報出力部45、解析スレッド49が並列処理されるように制御する。これにより、一般的に処理速度が遅いといわれるHDD23若しくは24へのアクセスを必要とする蓄積制御部33、読み取り部41及び統計情報出力部45と、それ以外の解析スレッド49とが並列処理されるため、監査対象のネットワーク3を流れるフレームを漏れなく蓄積しながら、略同時に解析処理を実行することができる。ひいては、通信情報の蓄積処理及び解析処理を高速に実行することができる。
1 インターネット
3 ネットワーク(社内LAN)
5、6 クライアント端末
7、8 サーバ
10 ネットワーク監査装置
20 バス
21 キャプチャカード
23、24 ハードディスクドライブ(HDD)
25 ネットワーク監査カード
26 メモリ
27、27−1、27−2、27−3、27−4 CPU(CPUコア)
31 通信インタフェース部
32 キャプチャ部
33 蓄積制御部
34 フレームデータファイル群
35 解析部
38 統計情報ファイル
39 オフセットファイル
41 読み取り部
42 ヘッダ解析部
43 接続追跡部
44 統計情報生成部
45 統計情報出力部
47 ハッシュテーブル
49、49−1、49−2、49−3、49−4 解析スレッド
60 不正検知部
62 IDS
64 アラートファイル
66 関連情報出力部
81−1、81−2、81−3、81−4 解析キュー
3 ネットワーク(社内LAN)
5、6 クライアント端末
7、8 サーバ
10 ネットワーク監査装置
20 バス
21 キャプチャカード
23、24 ハードディスクドライブ(HDD)
25 ネットワーク監査カード
26 メモリ
27、27−1、27−2、27−3、27−4 CPU(CPUコア)
31 通信インタフェース部
32 キャプチャ部
33 蓄積制御部
34 フレームデータファイル群
35 解析部
38 統計情報ファイル
39 オフセットファイル
41 読み取り部
42 ヘッダ解析部
43 接続追跡部
44 統計情報生成部
45 統計情報出力部
47 ハッシュテーブル
49、49−1、49−2、49−3、49−4 解析スレッド
60 不正検知部
62 IDS
64 アラートファイル
66 関連情報出力部
81−1、81−2、81−3、81−4 解析キュー
Claims (10)
- ネットワーク上を流れるフレームを取得し、取得された各フレームデータをそれぞれ記憶部へ格納する格納手段と、
前記記憶部に格納された各フレームについて、該フレームの格納位置を示すオフセット情報及び該フレームに含まれるパケットのアドレス情報を含むフレーム情報をそれぞれ取得する取得手段と、
前記取得手段により取得されたフレーム情報に基づいて前記記憶部に格納されたフレームデータを参照することにより、パケットをやりとりするための仮想通信路毎に、該仮想通信路でやりとりされたパケットの統計情報を生成する解析手段と、
前記解析手段により生成された各仮想通信路に関する統計情報をそれぞれ出力する出力手段と、
前記格納手段、前記取得手段、前記解析手段、前記出力手段がそれぞれ並列処理されるように制御する制御手段と、
を備えることを特徴とする通信情報監査装置。 - 前記解析手段を複数備え、
前記制御手段は、更に、前記複数の解析手段が並列処理されるように制御することを特徴とする請求項1に記載の通信情報監査装置。 - 前記フレーム情報をフレーム単位に格納する解析キューを前記解析手段の数に応じて更に備え、
前記取得手段は、
前記パケットのアドレス情報に基づいて生成される解析キーに対応する解析キューに前記フレーム情報を順次格納し、
前記各解析手段はそれぞれ、
前記複数の解析キューのうち対応する1つの解析キューから前記フレーム情報を順次取得し、取得されたフレーム情報に含まれる前記オフセット情報により、前記記憶部に格納されたフレームデータのうち解析対象となるフレームデータを特定し参照する、ことを特徴とする請求項2に記載の通信情報監査装置。 - 前記解析手段は、
前記フレーム情報のオフセット情報により解析対象のフレームデータを参照し、このフレームデータに含まれるパケットのアドレス情報及びポート情報に基づいて、該パケットがやりとりされる仮想通信路を特定するための接続キーを生成する接続キー生成手段と、
前記仮想通信路毎に生成された統計情報を前記仮想通信路毎に保持する接続情報保持部と、
前記解析対象のフレームデータに関連する仮想通信路についての統計情報が保持される前記接続情報保持部内の位置を前記接続キーで特定し、特定された仮想通信路に関する統計情報をこの解析対象のフレームデータにより更新する統計情報生成手段と、
を有することを特徴とする請求項1から3のいずれか1つに記載の通信情報監査装置。 - 前記解析手段は、
前記仮想通信路の統計情報に含まれる通信状態情報がこの仮想通信路を利用した通信の終了を示す場合に、この仮想通信路に関する統計情報を出力するように前記出力手段に依頼する依頼手段を更に有し、
前記依頼手段は、
前記解析対象のフレームデータの取得時刻が、同一仮想通信路でやりとりされたパケットを含むフレームであって既に解析済みとなったフレームデータの取得時刻から所定の
時間経過している場合に、この仮想通信路の異常と判定し、この仮想通信路に関する統計情報を出力するように前記出力手段に依頼する、
ことを特徴とする請求項4に記載の通信情報監査装置。 - 前記仮想通信路に関する統計情報には、仮想通信路でやりとりされた総パケットデータ長を含み、
前記統計情報生成手段は、前記解析対象のフレームデータに含まれるパケットについての仮想通信路がTCP(Transmission Control Protocol)コネクションである場合に、そのパケットに格納される確認応答情報に基づき前記総パケットデータ長を更新する、
ことを特徴とする請求項4又は5に記載の通信情報監査装置。 - 前記出力手段は、各仮想通信路に関する統計情報と共に、各仮想通信路でやりとりされたパケットを含むフレームのオフセット情報リストをそれぞれ出力し、
不正パケット検出手段から不正パケットのアドレス情報及びポート情報を含む警報情報を取得する警報取得手段と、
前記不正パケットのアドレス情報及びポート情報に基づいて、該不正パケットに関する仮想通信路でやりとりされたパケットを含む全てのフレームのオフセット情報を前記オフセット情報リストから抽出する抽出手段と、
前記抽出手段により抽出されたオフセット情報の示す位置に格納されるフレームデータを前記記憶部から取得する関連フレーム取得手段と、
を更に備えることを特徴とする請求項1から6のいずれか1つに記載の通信情報監査装置。 - 前記出力手段は、前記オフセット情報リストを各仮想通信路を特定するための前記接続キーに関連付けてそれぞれ出力し、
前記抽出手段は、前記警報取得手段により取得された不正パケットのアドレス情報及びポート情報に基づいて生成される接続キーを用いて前記オフセット情報リストから対象のフレームのオフセット情報を抽出する、
ことを特徴とする請求項7に記載の通信情報監査装置。 - ネットワーク上を流れるフレームを取得し、取得された各フレームデータをそれぞれ記憶部へ格納する格納ステップと、
前記記憶部に格納された各フレームについて、該フレームの格納位置を示すオフセット情報及び該フレームに含まれるパケットのアドレス情報を含むフレーム情報をそれぞれ取得する取得ステップと、
前記取得ステップにより取得されたフレーム情報に基づいて前記記憶部に格納されたフレームデータを参照することにより、パケットをやりとりするための仮想通信路毎に、該仮想通信路でやりとりされたパケットの統計情報を生成する解析ステップと、
前記解析ステップにより生成された各仮想通信路に関する統計情報をそれぞれ出力する出力ステップと、を備え、
前記格納ステップ、前記取得ステップ、前記解析ステップ、前記出力ステップがそれぞれ並列処理される、
ことを特徴とする通信情報監査方法。 - ネットワークに接続されるコンピュータに通信情報監査処理を実行させるプログラムであって、
前記通信情報監査処理は、
ネットワーク上を流れるフレームを取得し、取得された各フレームデータをそれぞれ記憶部へ格納する格納ステップと、
前記記憶部に格納された各フレームについて、該フレームの格納位置を示すオフセット
情報及び該フレームに含まれるパケットのアドレス情報を含むフレーム情報をそれぞれ取得する取得ステップと、
前記取得ステップにより取得されたフレーム情報に基づいて前記記憶部に格納されたフレームデータを参照することにより、パケットをやりとりするための仮想通信路毎に、該仮想通信路でやりとりされたパケットの統計情報を生成する解析ステップと、
前記解析ステップにより生成された各仮想通信路に関する統計情報をそれぞれ出力する出力手段と、を備え、
前記格納ステップ、前記取得ステップ、前記解析ステップ、前記出力ステップがそれぞれ並列処理されることで実現される、
ことを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007041248A JP2008205954A (ja) | 2007-02-21 | 2007-02-21 | 通信情報監査装置、方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007041248A JP2008205954A (ja) | 2007-02-21 | 2007-02-21 | 通信情報監査装置、方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008205954A true JP2008205954A (ja) | 2008-09-04 |
Family
ID=39782932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007041248A Pending JP2008205954A (ja) | 2007-02-21 | 2007-02-21 | 通信情報監査装置、方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008205954A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014505301A (ja) * | 2011-01-13 | 2014-02-27 | タタ コンサルタンシー サービシズ リミテッド | 分散計算システムにおける信用管理方法及びシステム |
JP5640166B1 (ja) * | 2014-03-31 | 2014-12-10 | 株式会社ラック | ログ分析システム |
JP5640167B1 (ja) * | 2014-03-31 | 2014-12-10 | 株式会社ラック | ログ分析システム |
JP2015513828A (ja) * | 2012-02-17 | 2015-05-14 | ティーティー ガバメント ソリューションズ、インク.Tt Government Solutions, Inc. | フィールド・エリア・ネットワークにおけるパケット取得、解析及び侵入検出の方法及びシステム |
JP2015115729A (ja) * | 2013-12-11 | 2015-06-22 | 東日本電信電話株式会社 | キャプチャデータ解析装置 |
JP2015115842A (ja) * | 2013-12-12 | 2015-06-22 | 富士通株式会社 | パケット保存方法、パケット保存プログラム及びパケット保存装置 |
-
2007
- 2007-02-21 JP JP2007041248A patent/JP2008205954A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014505301A (ja) * | 2011-01-13 | 2014-02-27 | タタ コンサルタンシー サービシズ リミテッド | 分散計算システムにおける信用管理方法及びシステム |
JP2015513828A (ja) * | 2012-02-17 | 2015-05-14 | ティーティー ガバメント ソリューションズ、インク.Tt Government Solutions, Inc. | フィールド・エリア・ネットワークにおけるパケット取得、解析及び侵入検出の方法及びシステム |
JP2015115729A (ja) * | 2013-12-11 | 2015-06-22 | 東日本電信電話株式会社 | キャプチャデータ解析装置 |
JP2015115842A (ja) * | 2013-12-12 | 2015-06-22 | 富士通株式会社 | パケット保存方法、パケット保存プログラム及びパケット保存装置 |
US10009151B2 (en) | 2013-12-12 | 2018-06-26 | Fujitsu Limited | Packet storage method, information processing apparatus, and non-transitory computer-readable storage medium |
JP5640166B1 (ja) * | 2014-03-31 | 2014-12-10 | 株式会社ラック | ログ分析システム |
JP5640167B1 (ja) * | 2014-03-31 | 2014-12-10 | 株式会社ラック | ログ分析システム |
WO2015151668A1 (ja) * | 2014-03-31 | 2015-10-08 | 株式会社ラック | ログ分析システム |
EA031992B1 (ru) * | 2014-03-31 | 2019-03-29 | Лак Ко., Лтд. | Система анализа записей |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Seeing through network-protocol obfuscation | |
US11223639B2 (en) | Endpoint network traffic analysis | |
JP3794491B2 (ja) | 攻撃防御システムおよび攻撃防御方法 | |
CN101009607B (zh) | 用于检测并防止网络环境中的洪流攻击的系统和方法 | |
JP5920169B2 (ja) | 不正コネクション検出方法、ネットワーク監視装置及びプログラム | |
US8006302B2 (en) | Method and system for detecting unauthorized use of a communication network | |
JP5003556B2 (ja) | 通信検知装置、通信検知方法、及び通信検知プログラム | |
JP4327698B2 (ja) | ネットワーク型ウィルス活動検出プログラム、処理方法およびシステム | |
JP4170299B2 (ja) | 通信状態遷移モニタ方法及びこれを利用した通信状態遷移モニタ装置 | |
WO2014129587A1 (ja) | ネットワーク監視装置、ネットワーク監視方法およびネットワーク監視プログラム | |
US20140201837A1 (en) | Methods and systems to detect an evasion attack | |
JP2006279930A (ja) | 不正アクセス検出方法及び装置、並びに不正アクセス遮断方法及び装置 | |
US7440406B2 (en) | Apparatus for displaying network status | |
US20020107953A1 (en) | Method and device for monitoring data traffic and preventing unauthorized access to a network | |
US20050138402A1 (en) | Methods and apparatus for hierarchical system validation | |
JP2009044664A (ja) | 通信装置を制御するプログラム及び通信装置 | |
JP2016534479A (ja) | マルウェアのランタイム中の自動検出 | |
JP2008205954A (ja) | 通信情報監査装置、方法及びプログラム | |
JP2010148090A (ja) | パケット処理方法及びこれを用いたtoe装置 | |
JP4877145B2 (ja) | 通信装置を制御するプログラム及び通信装置 | |
JP4042776B2 (ja) | 攻撃検知装置および攻撃検知方法 | |
JP2018026747A (ja) | 攻撃検知装置、攻撃検知システムおよび攻撃検知方法 | |
JP2007325293A (ja) | 攻撃検知システムおよび攻撃検知方法 | |
CN104660584A (zh) | 基于网络会话的木马病毒分析技术 | |
CN111131180A (zh) | 一种大规模云环境中分布式部署的http协议post拦截方法 |