(57)【特許請求の範囲】
【請求項１】
ネットワーク異常流量分析方法であって、
ＩＰネットワークデータを採集するステップと、
採集されたＩＰネットワークデータに基づき、監視対象サーバの指標値セットを計算するステップであって、前記指標値セット中の各指標値が、前記監視対象サーバに関連するデータストリームを反映し、且つ、ＩＰデータパケットヘッダに基づいて計算可能であるステップと、
前記計算された指標値セットに対し初回検知を実行してベクトルを生成するステップであって、該ベクトルが前記指標値セットに対応し、該ベクトルの各ベクトル要素が対応する指標値の異常度を示すステップと、
前記ベクトルに対し二次検知を実行し、前記監視対象サーバに関連する異常流量が存在するか否か、及び異常類型を確定するステップと、
を含み、
前記指標値は、Ｔｃｐ流量比、Ｕｄｐ流量比、Ｉｃｍｐ流量比、宛先ＩＰ数比、ソースＩＰ数比、宛先ポート数比、ソースポート数比を少なくとも含み、
前記宛先ＩＰ数比、ソースＩＰ数比、宛先ポート数比、及びソースポート数比のうちの１つ又は複数が、
BFNum＊log(BFNum)／（フローの数）
によって計算され、ただし、BFNumはブルーム・フィルタ・アルゴリズムを利用して対応する宛先ＩＰ数、ソースＩＰ数、宛先ポート数及びソースポート数に対する統計を行うことにより得られる統計数値である
ことを特徴とするネットワーク異常流量分析方法。
【請求項２】
前記ＩＰネットワークデータを採集するステップが、
統一データフォーマットを有するデータを取得するために、前記採集されたＩＰネットワークデータをフォーマット変換するステップ
を含むことを特徴とする、請求項１に記載のネットワーク異常流量分析方法。
【請求項３】
前記統一データフォーマットは、フロー開始時間、サンプリング比、データストリーム類型、ソースＩＰアドレス、宛先ＩＰアドレス、ソースポート番号、宛先ポート番号、ストリームに含まれるパケット数、及びストリームに含まれるオクテット数を少なくとも含むことを特徴とする、請求項２に記載のネットワーク異常流量分析方法。
【請求項４】
前記監視対象サーバの指標値セットを計算するステップが、所定の時間間隔において定期的に前記指標値セットを計算するステップを含むことを特徴とする、請求項１に記載のネットワーク異常流量分析方法。
【請求項５】
前記ブルーム・フィルタ・アルゴリズムにおいて使用されるビットアレイの長さが１０２4であることを特徴とする、請求項１に記載のネットワーク異常流量分析方法。
【請求項６】
前記初回検知を実行するステップは、
前記指標値セット中の各指標値と、対応する固定閾値又は履歴平均値とを比較することにより、これらの指標値が異常であるか否かを判定するステップ
を含むことを特徴とする、請求項１に記載のネットワーク異常流量分析方法。
【請求項７】
前記初回検知を実行するステップは、
前記指標値セット中の各指標値を標準化することにより前記ベクトルを作成するステップであって、正常な指標値に対し、対応するベクトル要素の値を０に設定する一方、異常な指標値に対し、対応するベクトル要素の値を０から１までの値に設定し、前記値が１に近づけば近づくほど前記指標の異常度が大きくなるステップ
を更に含むことを特徴とする、請求項６に記載のネットワーク異常流量分析方法。
【請求項８】
前記初回検知を実行するステップは、
Ｎ組の前記指標値セットを連続的に取得するステップであって、Ｎは正の整数であり、時間窓の長さの指示を表すステップと、
指標を基準としてＮ組の指標値セットを改めてグルーピングし、Ｎ個の要素を含むＭ組の指標組を取得するステップであって、Ｍは選択された指標の数であるステップと、
Ｍ組の指標組における各組の信頼区間を計算するステップと、
新しい指標値セットを取得するステップと、
を備え、
前記新しい指標値セットにおける各指標について、
この指標の値が前記Ｍ組の指標組中の対応する組の信頼区間内にある場合に、前記ベクトルにおける対応するベクトル要素の値を０に設定し、当該指標の前記値によって前記対応する組の最も古い指標値を置き換え、前記対応する組の信頼区間を改めて計算し、
この指標の値が前記Ｍ組の指標組中の対応する組の信頼区間以外にある場合、前記ベクトルにおける対応するベクトル要素の値を、
xj,new／(rangeVal＋xj,new)
に設定し、xj,newはこの指標の前記値であり、rangeValは前記Ｍ組の指標組における対応する組の信頼区間の上限値である
ことを特徴とする、請求項１に記載のネットワーク異常流量分析方法。
【請求項９】
前記二次検知を実行するステップは、ＢＰニューラルネットワークによって前記ベクトルが異常を指すか否か、及び異常類型を判定するステップを含むことを特徴とする、請求項１に記載のネットワーク異常流量分析方法。
【請求項１０】
前記ニューラルネットワークは、三層構造を含み、そのうちの入力層ノードの数は前記ベクトルに対応し、対応するベクトル要素の値を受け取り、出力層ノードの数は判定しようとする目標の数に対応し、出力層ノードの出力は０又は１の二種類の可能値しかなく、且つ、入力層と隠れ層との間の伝達関数にはシグモイド励起関数の形式が採用され、隠れ層と出力層との間の伝達関数には符号型関数の形式が採用されることを特徴とする、請求項９に記載のネットワーク異常流量分析方法。
【請求項１１】
前記判定しようとする目標は、少なくとも、ｔｃｐフラッド、ｕｄｐフラッド、ｉｃｍｐフラッド、ワーム、Ｐ２Ｐ、ポートスキャン、ＩＰスキャンのうちの１つ又は複数を含むことを特徴とする、請求項１０に記載のネットワーク異常流量分析方法。
【請求項１２】
前記ニューラルネットワークを訓練する時に、訓練流量データは或るサーバと関連し、且つ、この時に該サーバに関連する異常流量が存在しているか否か及び異常類型を予め知っていることを特徴とする、請求項９に記載のネットワーク異常流量分析方法。
【請求項１３】
異常類型が検知された際に警報を発する警報ステップを更に備えることを特徴とする、請求項１に記載のネットワーク異常流量分析方法。
【請求項１４】
所定の時間間隔で複数台の監視対象サーバに対して、前記監視対象サーバの指標値セットの計算、初回検知及び二次検知の処理を繰り返すことを更に含むことを特徴とする、請求項１に記載のネットワーク異常流量分析方法。
【請求項１５】
ネットワーク異常流量分析装置であって、
ＩＰネットワークデータを採集するデータ採集モジュールと、
採集されたＩＰネットワークデータに基づき監視対象サーバの指標値セットを計算するホスト指標計算モジュールであって、前記指標値セット中の各指標値が前記監視対象サーバに関連するデータストリームを反映し、且つ、前記各指標値がＩＰデータパケットヘッダから計算可能であるホスト指標計算モジュールと、
前記計算された指標値セットに対し初回検知を実行し、ベクトルを生成する初回検知モジュールであって、該ベクトルが前記指標値セットに対応し、該ベクトルの各ベクトル要素が対応する指標値の異常度を示す初回検知モジュールと、
前記ベクトルに対し二次検知を実行し、前記監視対象サーバに関連する異常流量が存在しているか否か及び異常類型を確定する二次検知モジュールと、
を含み、
前記指標値は、Ｔｃｐ流量比、Ｕｄｐ流量比、Ｉｃｍｐ流量比、宛先ＩＰ数比、ソースＩＰ数比、宛先ポート数比、ソースポート数比を少なくとも含み、
前記宛先ＩＰ数比、ソースＩＰ数比、宛先ポート数比、及びソースポート数比のうちの１つ又は複数が、
BFNum＊log(BFNum)／（フローの数）
によって計算され、ただし、BFNumはブルーム・フィルタ・アルゴリズムを利用して対応する宛先ＩＰ数、ソースＩＰ数、宛先ポート数及びソースポート数に対する統計を行うことにより得られる統計数値である
ことを特徴とする、ネットワーク異常流量分析装置。
【請求項１６】
前記データ採集モジュールは、統一データフォーマットを有するデータを取得するために、前記採集されたＩＰネットワークデータに対しデータフォーマット変換を実行するデータフォーマット変換モジュールを更に備えることを特徴とする、請求項１５に記載のネットワーク異常流量分析装置。
【請求項１７】
異常類型が検知された際に警報を発する警報モジュールを更に備えることを特徴とする、請求項１５に記載のネットワーク異常流量分析装置。
【請求項１８】
ネットワーク流量監視システムであって、
外部ネットワークとの間でネットワークデータを送受信する複数台のサーバと、
前記ネットワークデータに流量異常が存在しているか否か、及び異常類型を分析検知する、請求項１５〜１７のいずれかに記載のネットワーク異常流量分析装置と、
を備えることを特徴とする、ネットワーク流量監視システム。
【請求項１９】
ネットワーク流量監視方法であって、
複数台のサーバと外部ネットワークとの間でネットワークデータを送受信するステップと、
請求項１〜１４のいずれかに記載の方法により前記ネットワークデータに流量異常が存在しているか否か及び異常類型を分析検知するステップと、
を備えることを特徴とするネットワーク流量監視方法。
【請求項２０】
コンピュータープログラムであって、
コンピューターにインストールされ作動される時に、請求項１〜１４のいずれかに記載の方法のステップを実現するための指令を含む、コンピュータープログラム。
【請求項２１】
記録媒体であって、
コンピューターにインストールされ作動される時に、請求項１〜１４のいずれかに記載の方法のステップを実現するための指令を記録するように構成されている記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワーク・セキュリティの分野に関し、特にネットワークにおける異常流量を分析する装置及び方法に関する。
【背景技術】
【０００２】
ネットワークの普及に従って、ネットワークへの侵入やハッカーによる攻撃事件も日増しに増加している。そのため、侵入検知システム(ＩＤＳ)と侵入防御システム(ＩＰＳ)が時運に乗って現れた。これらのシステムの主な動作原理は、受信されたデータパケットに基づいて、ネットワークにおけるデータストリームを復元し、その後、一般に、特徴マッチング方法を用いて、復元されたデータストリームに攻撃の特徴が存在しているか否かを検査するものである。同時に、ポートスキャンなどの攻撃様式を検知するため、いくつかの統計的手法も採用される。
【０００３】
ＩＤＳ／ＩＰＳは、予定規則と検知モードに基づいて、復元されたデータストリームに対する分析を行うため、検知結果が的確であるというメリットを有する。しかしながら、伝統的なＩＤＳ／ＩＰＳは、固有の欠点も有している。先ず、ＩＤＳ／ＩＰＳでは、受信されたデータパケットからデータストリームを復元する必要があるため（即ち、いわゆるパケット内部検知）、これらのシステムの性能は、しばしば、パケット内部検知処理によって制限され、ネットワーク流量の大きな環境下で使用される場合、ＩＤＳ／ＩＰＳの性能面の制限がいっそう顕著になる。また、現在のネットワークに新たに現れた様々な侵入モードや手段の変化を検知するため、ＩＤＳ／ＩＰＳにおいて、予定規則と検知モードを更新する必要がある。現在、ソーシャル・ネットワーキング・サービス(ＳＮＳ)及びＰ２Ｐネットワーク等の様々な新しいネットワークが日増しに普及していくことに伴い、新しい侵入モードや手段の出現も日増しに早まっているが、伝統的なＩＤＳ／ＩＰＳには、更新速度が比較的遅いという欠点がある。伝統的なＩＤＳ／ＩＰＳには、データパケットに対してパケット内部検知を行う必要があることから、内容が暗号化されたデータパケットについて検知を行うことができず、暗号化された内容を含むデータストリームに対して分析ができないという特有の欠点もある。新世代ＩＰトランスミッションプロトコルであるＩＰＶ６では、一般にデータが暗号化されるため、ＩＰＶ６に基づくネットワークに従来のＩＤＳ／ＩＰＳを適用するのは困難である。
【０００４】
従って、ＩＤＳ／ＩＰＳにおいて使用され、且つ、伝統的なＩＤＳ／ＩＰＳの上記欠点を克服することができる異常流量分析装置及び方法が要望される。当該異常流量分析装置及び方法は、ＩＰＶ６に基づくネットワークに良好に適用することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、上述のような課題を解消するために用いられるネットワーク異常流量分析装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一つの態様に係るネットワーク異常流量分析方法は、
ＩＰネットワークデータを採集するステップと、
採集されたＩＰネットワークデータに基づき、監視対象サーバの指標値セットを計算するステップであって、前記指標値セット中の各指標値が、前記監視対象サーバに関連するデータストリームを反映し、且つ、ＩＰデータパケットヘッダに基づいて計算可能であるステップと、
前記計算された指標値セットに対し初回検知を実行してベクトルを生成するステップであって、該ベクトルが前記指標値セットに対応し、該ベクトルの各ベクトル要素が対応する指標値の異常度を示すステップと、
前記ベクトルに対し二次検知を実行し、前記監視対象サーバに関連する異常流量が存在しているか否か、及び異常類型を確定するステップと、
を含む。
【０００７】
本発明の他の態様に係るネットワーク異常流量分析装置は、
ＩＰネットワークデータを採集するデータ採集モジュールと、
採集されたＩＰネットワークデータに基づき監視対象サーバの指標値セットを計算するホスト指標計算モジュールであって、前記指標値セット中の各指標値が前記監視対象サーバに関連するデータストリームを反映し、且つ、前記各指標値がＩＰデータパケットヘッダから計算可能であるホスト指標計算モジュールと、
前記計算された指標値セットに対し初回検知を実行し、ベクトルを生成する初回検知モジュールであって、該ベクトルが前記指標値セットに対応し、該ベクトルの各ベクトル要素が対応する指標値の異常度を示す初回検知モジュールと、
前記ベクトルに対し二次検知を実行し、前記監視対象サーバに関連する異常流量が存在しているか否か及び異常類型を確定する二次検知モジュールと、
を含む。
【０００８】
本発明は、更に、前記ネットワーク異常流量分析方法及び装置をそれぞれ利用するネットワーク流量監視方法及びシステムを提供する。
【０００９】
本発明に係るネットワーク異常流量分析装置及び方法によれば、パケット内部検知を必要としない前提下に、トランスミッション層でネットワーク中の各データパケットに対し簡単なパケットヘッダ分析と検知を行うだけで、指定されたホスト範囲内における被攻撃ホスト、正確な攻撃タイプ、及び正確な攻撃ソースを判定することができる。そのため、本発明に係るネットワーク異常流量分析装置及び方法は、検知効率が高いとの利点を有する。通常、周波数が２ＧＨＺのデュアルコアプロセッサを有する１台のネットワーク異常流量分析装置により、１０万〜１００万台の機器を同時に分析及び検知することができる。従って、本発明に係るネットワーク異常流量分析装置は、バックボーンネットワーク、ＩＤＣ、企業出口などのネットワーク流量が巨大な場所に配置されることにより、広く使用される。
【００１０】
また、本発明に係るネットワーク異常流量分析装置及び方法は、パケット内部検知の必要なしに異常検知を行うことができるため、当該装置及び方法は、暗号化されたデータパケットに対しても同様に有効である。そのため、当該装置及び方法は、国家安全部門及び軍隊等の通常暗号化されたデータで伝送を行う場合の異常流量検知にも適用され、且つ、当該装置及び方法はＩＰV６に基づくネットワークにも広く使用可能である。
【図面の簡単な説明】
【００１１】
当業者は、以下の本発明の好ましい実施の形態の説明を読むことにより、様々な他の長所と利点を、明らかに理解することができる。添付の図面は、本発明の好ましい実施の形態を示すに過ぎず、本発明に対して何らかの制限を加えるものではない。また、全図面を通して、同一の部材に対し同一の参照番号を付与する。
【図１】図１は、本発明によるネットワーク異常流量分析装置の典型的な適用環境を示す。
【図２】図２は、本発明の実施例に係るネットワーク異常流量分析検知方法を示す。
【図３】図３は、本発明の実施例に係るネットワーク異常流量分析検知方法にブルーム・フィルタ・アルゴリズムを適用する場合の具体的なフローを示す。
【図４】図4は、本発明の実施例に係るネットワーク異常流量分析検知方法における初回検知に用いられる、時間窓に基づく検知方法の具体的なフローを示す。
【図５】図５は、本発明の実施例に係るネットワーク異常流量分析検知方法における二次検知ステップに用いられる、ニューラルネットワークの概略構成を示す。
【図６】図６は、図５に示すニューラルネットワーク５００を訓練する訓練方法の概略フローチャートを示す。
【図７】図７は、本発明の実施例に係るネットワーク異常流量分析検知装置７００の構造を示す。
【発明を実施するための形態】
【００１２】
図１は、本発明によるネットワーク異常流量分析装置１１０の典型的な適用環境を示す。図１に示すように、ネットワークサーバ１３２、１３4及び１３６等は、ルーティング装置１２０を介してインターネット１4０に接続されるため、ネットワークサーバ１３２〜１３６と外部ネットワークとの間でやり取りされるデータはすべてルーティング装置１２０を経由する。ネットワーク異常流量分析装置１１０は、ルーティング装置１２０と互いに接続され、ルーティング装置１２０を経由してネットワークサーバ１３２〜１３６にアクセスするデータストリームを取得することにより、ネットワークサーバ１３２〜１３６に関連するネットワーク異常流量を分析することができる。
もちろん、ネットワーク異常流量分析装置１１０は、単独の装置の形式で存在しなくてもよく、ルーティング装置１２０の１つの部材として、ルーティング装置１２０に組み込まれてもよい。
【００１３】
図２は、図１に示すようなネットワーク異常流量分析装置１１０で用いられるネットワーク異常流量分析検知方法２００を示す。
【００１４】
ネットワーク異常流量分析検知方法２００は、ステップＳ２０２から始まる。ステップＳ２０２において、先ず、各種フォーマットのネットワークデータが採集される。例えば、図１において、ネットワーク異常流量分析装置１１０は、ルーティング装置１２０によって各種のネットワークデータを取得するが、ルーティング装置１２０は様々な方法によって自らを経由するネットワークデータを採集するため、取得されるデータのフォーマットも様々である。例えば、取得されるデータは、ロー・データ・フォーマット、ｎｅｔｆｌｏｗデータフォーマット,ｓｆｌｏｗデータフォーマット等であり得る。本方法において、採集される多種のフォーマットのデータを統一処理するために、ステップＳ２０２は、異なるフォーマットのデータを本方法の後続のステップで採用される統一データフォーマットのデータに変換するステップを更に含む。本発明の一実施例によれば、本方法において使用されるデータフォーマットは、表１に示すようであり得る。
【００１５】
【表１】
0005518872.tif 000002
【００１６】
表１に示されたフォーマットから分かるように、本発明に必要なデータフィールドは、何れもＩＰパケットヘッダ中のフィールドから取得可能であり、ＩＰパケットの有効ペイロードの内容を必要としない。そのため、本発明では、パケット内部検知の必要がない。また、ルーティング装置１２０によって取得されるデータそのものが表１に記載されたフォーマットである場合、ステップＳ２０２において、一切のフォーマット変換を行う必要がない。
【００１７】
ステップＳ２０４において、ステップＳ２０２で取得されたデータストリームに基づいて、監視対象サーバごとの指標値が計算される。一般に、作成された指標は、当該サーバに関するＩＰデータストリームの状況を、関連性高く反映していなければならない。通常、指標の選択には、先ず二つの要求を満足する必要がある。即ち、指標値は流量の大きさと直接関連しないと共に、時間スケールとも直接関連しない。そのように作成された指標は、様々な流量及び時間スケールに適用可能である。そのため、指標として比率を採用することが好ましい。
【００１８】
本件発明の１つの実施例によれば、選択される指標は以下を含む。
【００１９】
【数１】
0005518872.tif 000003
【００２０】
各指標値の計算は、通常、（下記のステップＳ２１4によって制御される）所定の時間間隔をおいて行われるが、当該時間間隔は、一般に、数秒から数十秒間であり、ネットワーク異常流量分析装置１１０の置かれた具体的環境によって異なる。この時間間隔としては、一般に２０秒が選択される。そのため、ステップＳ２０4において、２０秒毎に前記指標値が一回計算され、１つの指標値セット{x１,i, x２,i, x３,i,…,x７,i}が取得される。データストリームに対する採集は、連続的な過程であるからである。その上、各指標の計算に必要な値、例えばＴｃｐ流量、Ｕｄｐ流量及びフロー数等のデータは、何れも、連続的な採集と統計によって得られるものである。そのため、ステップＳ２０4における具体的な処理は、以下の通りである。即ち、先ず、ステップＳ２０２で採集されたデータストリームに基づいて、各指標の計算に必要な基礎データ、例えば、選択された時間間隔内における総流量、Ｔｃｐ流量、Ｕｄｐ流量、Ｉｃｍｐ流量、フロー数、ソースＩＰ及びポートの数、並びに宛先ＩＰ及びポートの数等が、連続的に計算される。その後、ステップＳ２１4によって制御される所定の時間間隔を経た後で、各指標値が計算され、特定の時点ｉに関連する指標値セット{x１,i, x２,i, x３,i,…,x4,i}が取得される。
【００２１】
ステップＳ２０4におけるソース又は宛先ＩＰとポートの数とに対する統計は、かなりメモリを食うアルゴリズムであることに注意すべきである。例えば、ＩＰＶ４ネットワークにおいて、ＩＰアドレスは３２ビットで表され、ポート番号は１６ビットで表されるため、理論上、ＩＰアドレスは２３２-１個あり、ポート番号は２１６-１個ある。ＩＰとポートの数に対して統計を行う際には、ＩＰアドレスとポートに重複が存在しているか否かを判定する必要があり、ＩＰアドレスとポートのデータが比較的多いために、当該判定は相当なメモリを消費するが、これは、データ流量の比較的大きなネットワークにとっては、受け入れられないことである。
【００２２】
そのため、出願人は、ステップＳ２０4において、Ｂｌｏｏｍ  Ｂｕｒｔｏｎ  Ｈ．による１９７０年の文章「Space／time trade-offs in hash coding with allowable errors”（Coｍｍunications of the ACM 13(7)、第４２２〜4２６頁）に提示されたブルーム・フィルタ（Ｂｌｏｏｍ  ｆｉｌｔｅｒ）・アルゴリズムを採用し、ソース又は宛先ＩＰとポートの数を迅速且つメモリを節約して統計する。
【００２３】
図３は、本発明のステップＳ２０4において、ブルーム・フィルタ・アルゴリズムを利用する具体的なフロー３００を示す。先ず、ステップＳ３０２において、新しい時間間隔が始まる際に、１０２4ビットのビットアレイを作成し、その全てのビットを０に設定する。そして、ステップＳ３０4にて、抽出された一つのソースＩＰアドレスに対してハッシュ演算を行うことにより、０から１０２３までの数字を取得する。ステップＳ３０６にて、ステップＳ３０4で演算して得られた数字をインデックスとするビットアレイ中のビット値を、１に設定する。例えば、ステップＳ３０4で演算されたハッシュ値が4５０である場合、ビットアレイにおける4５０番目のビットの値を１に設定する。ステップＳ３０８において、時間間隔が満了したか否かを判定し、満了していない場合、ステップＳ３１０によって新しいソースＩＰアドレスを抽出し、ステップＳ３０4に戻って処理を行う。ステップＳ３０８において、時間間隔が満了したと判定された場合、ステップＳ３１２において、ビットアレイ中の１と設定されたビットの数を集計し、それにより、ソースＩＰアドレスに関連する統計数値ＢＦＮｕｍが取得される。ここから分かるように、時間間隔内に検知されたソースＩＰアドレスの数が幾つであったとしても、統計数値ＢＦＮｕｍの値は１から１０２4までの範囲内にある。
【００２４】
図３に示すブルーム・フィルタ・アルゴリズムは、宛先ＩＰアドレス、並びにソース及び宛先ポート番号の数に対する統計にも同様に適用されることに注意すべきである。また、処理フロー３００において用いられるビットアレイの長さも調整可能であり、必ずしも１０２4でなくてもよい。例えば、時間間隔の長さ、異常流量分析及び検知を行うネットワーク環境のデータ流量等によって、ビットアレイの長さを修正してもよい。例えば、時間間隔内に取得されるデータストリームの数が比較的多い場合、ステップＳ３０4で行われるハッシュ演算による結果が衝突する恐れが大きくなるため、ビットアレイの長さを適宜増加することによって衝突の発生率を低下させることも考慮できる。
【００２５】
図２に戻って、ステップＳ２０4において、ソースＩＰ数、宛先ＩＰ数、ソースポート数及び宛先ポート数のうちのそれぞれに対し、対応するＢＦＮｕｍをそれぞれ計算した後、下記の式を利用して、上記の指標値x4、x５、x６、及びx７を計算する。
【００２６】
【数２】
0005518872.tif 000004
【００２７】
従来の異常流量に対する出願人の分析によれば、上記の式によって得られる指標値x4、x５、x６、及びx７は、異常が存在しているか否か、及び、Ｐ２Ｐが存在しているか否かを判断する点において、非常に良好な結果を示す。
【００２８】
上記より分かるように、上記の選択されたx１、x２、 …x７は、いずれも、ＩＰパケットヘッダに含まれるデータのみに基づく計算により得られ、ＩＰパケットに対し更なるパケット内部処理を行う必要がない。そのため、ステップＳ２０4のように指標を選択することによって、本発明が、内容が暗号化されたネットワーク環境に適用可能であることが明らかである。
【００２９】
ステップＳ２０4における計算により指標値セット{x１,i,x２,i,x３,i,…,x７,i}を取得した後、ステップＳ２０６において、様々な通常の検知方法によってこの指標値セット{x１,i, x２,i, x３,i,…,x７,i}に対する初回検知が行われる。通常の検知方法としては、例えば、固定閾値及び履歴ベースラインに基づく検知方法が挙げられる。これは、指標値セットにおける各指標値と、対応する固定閾値または履歴上の平均値とを比べることにより、これらの指標値が異常であるか否かを判定する方法である。初回検知によって、いずれの指標が異常であるかを判定することができる。その後、これらの指標を標準化して、新しい指標ベクトル{y１,y２,…,y７}を作成する。例えば、正常な指標値に対しては、yj(j=1-7)の値を０に設定し、異常な指標値に対しては、yjを０から１までの間の何らかの値に設定する。ここで、yjの値が１に近づけば近づくほど、この指標の異常が大きくなることを意味する。このようにして、ある時点ｉにおいて、サーバ毎に１つのベクトル{y１,y２,…,y７}が作成され、且つ、ベクトルにおける各要素は全て、[０,１]の間にある。もちろん、ステップＳ２０６において、標準化をせずに、他の標準指標を採用してもよい。
【００３０】
本発明の一実施例によれば、初回検知ステップＳ２０６において、時間窓に基づく検知方法を用いることが好ましい。図4は、ステップＳ２０６において採用される時間窓に基づく検知方法の具体的なフローを示す。
【００３１】
先ず、ステップＳ4０２において、ステップＳ２０4で計算されたＮ組の指標値セット{x１,i,x２,i,x３,i,…,x７,i}（i=1,…n）を連続的に取得する。その際、時間窓の長さは時間間隔×Ｎとなり、通常、Ｎの値としては１０が選択される。
【００３２】
その後、ステップＳ4０4において、指標を基準として、Ｎ組の指標値セットを新たにグルーピングすることにより、組毎にＮ個の要素を含む７個の指標組、例えばＴｃｐ流量比指標組:{x１,１, x１,２,…,x１,N}、Ｕｄｐ流量比指標組:{x２,１, x２,２,…,x２,N},…,ソースポート数比指標組: {x７,１, x７,２,…,x７,N}を取得し、新しい指標組それぞれの信頼区間を計算する。信頼区間とは、ある指標に対して、Ｎ個の値のうちの最大値及び最小値によって覆われる区間である。
【００３３】
ステップＳ4０６において、新しい指標値セット{x１,new, x２,new, x３,new,…,x７,new}を取得する。その後、新たに取得された各指標値xj,new（j=1-7）に対して、ステップＳ４０８において、この指標値xj,newが、ステップＳ4０4にて作成された対応する指標組{xj,１,xj,２,…,xj,N}の信頼区間内にあるか否かを判定する。当該指標値xj,newが信頼区間内にある場合、ステップＳ4１０において、対応するベクトル要素yjを０に設定し、ステップＳ4１２において、当該指標値xj,newにより指標組{xj,１,xj,２,…,xj,N}における最も古い指標値を置き換え、改めて信頼区間を計算する。逆に、指標値xj,newが信頼区間以外にある場合、ステップＳ4１4において、yjの値を以下の値に設定する。即ち、
【００３４】
【数３】
0005518872.tif 000005
【００３５】
である。
【００３６】
ここで、rangeValは指標組{xj,１, xj,２,…,xj,N}の信頼区間の上限値である。ステップＳ4０６で得られた新しい指標値セット{x１,new,x２,new,x３,new,…,x７,new}中のそれぞれに対して、ステップＳ4０８からステップＳ4１4を繰り返すことにより、７次元のベクトル{y１, y２,…, y７}を取得できる。同様に、yj∈[０, １]であり、且つ、yj が１に近づけば近づくほど、この指標が異常である可能性が大きくなる。
【００３７】
続いて取得された指標値セットに対して、上記に作成された時間窓を直接利用して計算を行うことにより、それぞれのサーバについて用いられるベクトル{y１, y２, …, y７}を取得することができる。
【００３８】
図２に戻って、ステップＳ２０６において、ある時点iにおいてそれぞれのサーバに用いられるベクトル{y１,y２, …, y７}を取得した後、ステップＳ２０８において、当該ベクトルに対して二次検知処理を行うことにより、ベクトル{y１,y２, …, y７}が異常を示すか否かが判定され、異常がある場合に、異常の類型が判定される。ステップＳ２０８は、通常、分類器の手法を用いて異常を判定する。
【００３９】
図５は、図２の二次検知ステップＳ２０８において採用される、ベクトル{y１,y２,…,y７}が異常を指すか否か、及び異常類型を判定するために用いられるニューラルネットワーク５００の概略図を示す。
【００４０】
図５に示すように、本発明において、ニューラルネットワークは、ＢＰ（バックプロパゲーション）構成を用いるのが好ましい。ステップＳ２０６にて生成されたベクトルは７個の要素を有しているため、定義されるニューラルネットワークは、入力層ノードが７個、出力層ノードがn個である三層ニューラルネットワークである。ここで、ｙｉは入力層ノード、ｅｉは隠れ層ノード、ｄｉは出力層ノードを表す。ｎの数は、判定しようとする目標の数により決定される。判定しようとする目標が、例えばtcpflood（tcpフラッド）,udpflood（udpフラッド）、icｍpflood（icｍpフラッド）、worｍ（ワーム）、Ｐ２Ｐ、portscan（ポートスキャン）、及びipscan（ＩＰスキャン）等の７個の目標である場合、nの値も７とされる。隠れ層ノードの数は、システムが達しようとする正確度と学習サンプルの数によって決められる。ＢＰニューラルネットワークにおいて、入力層ノード、隠れ層ノード、及び出力層ノードの間には、互いに伝達関係があり、訓練過程においてニューラルネットワークを急速に収束させるためには、隠れ層ノードの数を適切に選択する必要があるが、これは、既存のＢＰニューラルネットワークの知識に基づいて達成される。本発明の好ましい実施例において、隠れ層ノードは７個に選択されている。
【００４１】
また、図５に示すようなニューラルネットワーク５００において、入力層と隠れ層との間の伝達関数には、シグモイド励起関数の形式が採用され、隠れ層と出力層との間の伝達関数には、符号型関数の形式が採用される。そのため、出力層ノードｄｉは０と１の二つの可能値しか出力せず、ここで、０はこのような異常類型が存在していないことを表しており、１はこのような異常類型が存在していることを表している。そのため、ニューラルネットワーク５００が十分に訓練された場合、ステップＳ２０６において生成されるベクトル{y１,y２, …,y７}に対し、ステップＳ２０８において、存在する流量異常及び異常類型を正確に取得することができる。
【００４２】
上記の通り、ニューラルネットワーク５００の使用前には、まず、ニューラルネットワーク５００を訓練する必要がある。図６は、ニューラルネットワーク５００を訓練する訓練方法６００を示す。
【００４３】
図６のステップＳ６０２において、訓練流量データを取得するが、ここで、当該流量データは、以下の要求を満たすべきである。即ち、まず、当該流量データは、いずれかのサーバに関連するものであって、更に、このとき当該サーバに関連する異常流量が存在するか否か、及びブラウズ類型を事前に知っている必要がある。即ち、図５に示すニューラルネットワーク５００の各出力ノードｄｉの出力値{d１,d２,…, d７}を予め取得する必要がある。本発明の一実施例によれば、訓練時に、訓練データに前記７種類の異常類型の少なくとも１種類の流量が存在していることが好ましく、即ち、ｄｉの出力に少なくとも１つの１が含まれることが望ましい。ステップＳ６０4〜６０６において、図２におけるステップＳ２０4〜２０６のように、当該ソース流量に対応するベクトル{y１,y２, …, y７}が生成される。ついで、ステップＳ６０８において、ベクトル{y１,y２, …,y７}（即ち入力層ノードの値）と既知の出力層ノードｄｉの値とに基づいて、既知のニューラルネットワーク訓練方法によってニューラルネットワーク５００の訓練が行われる。その後、ステップＳ６１０において訓練過程が既に十分だと判定され、且つ各伝達関数の係数が収束していくまで、ステップＳ６０２に戻って、新しい訓練データが取得され、再度の訓練が実行される。ニューラルネットワークの訓練方法は当業界の公知技術であるため、ここで再び詳しく説明することはしない。
【００４４】
図２に戻って、上記では図５及び６を組み合わせて、ステップＳ２０８の二次検知にニューラルネットワークを採用する方式を説明したが、ステップＳ２０８には、専門家システムの方法を採用してもよく、専門家から直接、異常指標と異常類型との間の確率関係が与えられ、ベイジアンネットワークが作成されて、異常に関する判断及び分類が行われてもよい。
【００４５】
ステップＳ２０８において、二次検知によって流量が異常であるか否か、及び異常類型の判定結果が取得された後、ステップＳ２１０にて当該結果を出力し、異常類型が検知される場合、警報機能を作動させ、例えばメッセージ、電子メール等の方法によってシステム管理者に通知される。
【００４６】
ステップＳ２０4〜Ｓ２１０において、１台の監視対象サーバに対し異常流量分析及び検知を行った後、ステップＳ２１２において、分析及び検知する必要があるサーバがまだ他に存在しているか否かが判定され、存在する場合には、ステップＳ２０4に戻って新しいサーバに対する処理が開始される。出願人が実際に行ったテストによれば、本発明によるネットワーク異常流量分析方法を、周波数２ＧＨＺのデュアルコアプロセッサを有する演算装置で実行した場合、１０万〜１００万台の装置を同時に分析及び検知することができる。そのため、本発明は、通常、大量のサーバに対して検知及び分析を行う際に適用可能である。
【００４７】
上述の通り、本発明は、通常、所定の時間間隔をおいて定期的に処理を行うため、全ての監視対象サーバに対する分析及び検知を完了した後で、ステップＳ２１4において新しい時間間隔が到来するのを待って、上記ステップＳ２０4〜Ｓ２１２の処理を繰り返す。しかしながら、待機期間中も、ステップＳ２０２のデータストリームの採集、及びステップＳ２０4の連続処理されるべきデータ処理は停止しないことに注意すべきである。
【００４８】
本発明に係るネットワーク異常流量分析検知方法の上記の説明より分かるように、本発明に係る方法を、従来の方法と比べた際の最大の相違点は、二次検知処理を追加することである。二次検知処理により、異常検知の正確度と、異常検知を実行可能な種類とが、大いに向上する。特に、Ｐ２ＰやＶＯＩＰ等の、伝統的な方法では処理しにくいものについて、この方法は更に有効である。
【００４９】
また、図６に示すニューラルネットワーク訓練は、別のシステムにて完成され、図２に示すリアルタイム判定は、訓練が完了した後のニューラルネットワークにおいて実行されるため、リアルタイム性に影響を及ぼさない。
【００５０】
更に、本方法に係る二次検知ステップに必要な入力値、即ちベクトル{y１,y２,…,y７}は初回検知によって生成されるため、二次検知ステップに用いられる分類器モデルは、先にデータを取得する際の時間間隔と、何らの関係も有しない。そのため、時間間隔をどのように調整しても、二次検知ステップにおけるニューラルネットワークに対し、改めて訓練を行う必要はない。
【００５１】
図７は、本発明の実施例に係るネットワーク異常流量分析検知装置７００の構造を示す。
【００５２】
図７に示すように、ネットワーク異常流量分析検知装置７００は、データ採集モジュール７２０、ホスト指標計算モジュール７4０、初回検知モジュール７６０、二次検知モジュール７８０、及び警報モジュール７９０を含む。
【００５３】
データ採集モジュール７２０は、各種のネットワークデータを採集する。ネットワーク異常流量分析検知装置７００が採集可能なネットワークデータには、多くの異なる種類のフォーマットが含まれるため、データ採集モジュール７２０は、更に、異なるフォーマットのデータを他のモジュールで用いられる（例えば、表１に示す）統一データフォーマットのデータに変換する、データフォーマット変換モジュール７２２を備える。
【００５４】
ホスト指標計算モジュール７4０は、データ採集モジュール７２０からの統一データフォーマットのデータを受け取り、それに基づいて、各監視対象サーバに対する指標値を計算する。ホスト指標計算モジュール７4０の処理は、上記ステップＳ２０4において記載された処理と類似する。
【００５５】
初回検知モジュール７６０は、ホスト指標計算モジュール７4０によって計算された指標値を受け取り、それに基づいて、各サーバのためのベクトル{y１,y２,…,y７}を計算する。初回検知モジュール７６０の処理は、上記ステップＳ２０６において記載された処理と類似する。
【００５６】
二次検知モジュール７８０は、初回検知モジュール７６０によって計算されたベクトル{y１,y２,…,y７}をもとに、分類器の手法により、異常が存在しているか否か、及び異常類型を判定する。二次検知モジュール７８０の処理は、上記ステップＳ２０８において記載された処理と類似する。
【００５７】
警報モジュール７９０は、二次検知モジュール７８０の出力結果を処理し、通常、この出力結果を表示し、出力結果が異常の存在を指す場合に、様々な方式、例えばメッセージ又は電子メールにより、この異常と異常の類型を、システム管理者に通知する。
【００５８】
本発明に係るネットワーク異常流量分析検知装置では、実現しようとする機能に応じて、該装置に含まれる部材を論理的に区分したが、本発明は、これに限られるものではなく、必要に応じて、ネットワーク異常流量分析検知装置における各部材を、新たに区分したり、又は組み合わせたりしてもよく、例えば、幾つかの部材を単一の部材として組み合わせたり、又は幾つかの部材をより多くのサブ部材に更に分解したりしてもよいことに注意すべきである。
【００５９】
本発明の実施例は、ハードウェアによって実現されても、一つ又は複数のプロセッサにより実行されるソフトウェアブロックによって実現されても、又は、これらの組み合わせによって実現されてもよい。本分野の当業者は、実践において、マイクロプロセッサまたはディジタル信号プロセッサ（ＤＳＰ）によって、本発明の実施例に係るネットワーク異常流量分析検知装置における幾つか又は全ての部品の一部または全部の機能を実現できることを理解するはずである。本発明は、また、本文に記載された一部又は全部の方法を実行するための装置又は装置プログラム（例えば、コンピュータープログラムとコンピュータープログラム製品）として実現されてもよい。このような本発明を実現するプログラムは、コンピューター読み取り可能媒介に記憶されてもよく、又は、一つ又は複数の信号形式を持つこともできる。このような信号は、インターネットのウェブサイトからダウンロードして得られてもよく、キャリヤ信号から提供されてもよく、或いは、なんらかの他の形式で提供されてもよい。
【００６０】
上記の実施例は、本発明を説明するものであって、本発明を限定するものではないこと、当業者は、添付の特許請求の範囲に記載の範囲を逸脱することなく、代替の実施例を設計できることに注意すべきである。特許請求の範囲において、括弧内の全ての参照番号は、特許請求の範囲を限定するものではない。「含む」との文言は、特許請求の範囲に記述されていない要素またはステップの存在を排除するものではない。要素の前におかれた「一つの」との文言は、該要素が複数存在することを排除するものではない。本発明は、幾つか異なる要素を含むハードウェア、及び、適切にプログラミングされたコンピューターによって実現されることができる。幾つかの装置を例示した装置の請求項において、このような装置に含まれる幾つかのハードウェアは、同一のハードウェアによって具体的に実現されてもよい。「第一の」、「第二の」、及び「第三の」といった文言の使用は、何らかの順番を規定するものではない。これらの用語は、名称として解釈することができる。
【図１】
0005518872.tif 000006
【図２】
0005518872.tif 000007
【図３】
0005518872.tif 000008
【図４】
0005518872.tif 000009
【図５】
0005518872.tif 000010
【図６】
0005518872.tif 000011
【図７】
0005518872.tif 000012