(57)【特許請求の範囲】
【請求項１】
受信したパケットをサンプリングし、サンプリングしたパケットの数または前記サンプリングしたパケットのバイト数をフローごとに集計し、フローごとに集計したパケット総数または総バイト数を予め定めた条件でコレクタに送信する異常トラヒックの検出方法において、
コレクタに送信するに先立って、カウントしたパケット総数または総バイト数が閾値未満のフローをアザーフローとして集計し、前記閾値以上のフローと前記アザーフローとの前記パケット総数または前記総バイト数を前記コレクタに送信することを特徴とする異常トラヒックの検出方法。
【請求項２】
受信したパケットをサンプリングし、サンプリングしたパケットの数または前記サンプリングしたパケットのバイト数をフローごとに集計し、フローごとに集計したパケット総数または総バイト数を予め定めた条件でコレクタに送信する異常トラヒックの検出方法において、
ｎを正整数として、前記コレクタに送信するに先立って、カウントした前記パケット総数または前記バイト総数が、予め定めた上位ｎ未満のフローをアザーフローとして集計し、前記上位ｎのフローと前記アザーフローとの前記パケット総数または前記バイト総数を前記コレクタに送信することを特徴とする異常トラヒックの検出方法。
【請求項３】
経路テーブルに基づいてパケットを中継するパケット中継処理部と、前記パケット中継処理部が受信したパケットをサンプリングするパケットサンプル部と、前記パケットサンプル部から受信したパケットを用いてフロー統計テーブルに集計するフロー統計計数部と、前記フロー統計計数部から受信した情報を所定のフォーマットに整形するフロー統計生成部とからなり、整形された情報を前記パケット中継処理部から送出するパケット中継装置において、
前記フロー統計計数部は、単位時間当たりに受信したパケット総数または総バイト数が閾値未満のフローをまとめて一つのフローとして集計することを特徴とするパケット中継装置。
【請求項４】
請求項３に記載のパケット中継装置であって、
前記フロー統計計数部は、単位時間当たりに受信したフローのパケット数またはバイト数を監視し、監視した前記パケット数または前記バイト数が閾値を超えたとき、前記整形された情報を前記パケット中継処理部から送出することを特徴とするパケット中継装置。
【請求項５】
請求項３に記載のパケット中継装置であって、
前記フロー統計計数部は、受信したフローのパケット数またはバイト数を監視し、監視した前記パケット数または前記バイト数が閾値を超えたとき、前記整形された情報を前記パケット中継処理部から送出することを特徴とするパケット中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークにおけるＤｏＳ(Denial of Service)アタックの可能性のある異常トラヒックの検出方法およびそれに用いるパケット中継装置に関する。
【背景技術】
【０００２】
ＤｏＳアタックはサービス不能攻撃とも呼ばれ、その代表的なものとして、攻撃者が標的に対してネットワーク経由で非常に多くのアクセスを仕掛けることによって標的の資源(メモリやＣＰＵパワー等)を消費させ、本来のサービスを実行できなくさせるものである。標的として攻撃されるのは、ネットワークやネットワークに接続して各種サービスを行う装置（サーバ、パケット中継装置(ルータ/スイッチ)等）である。
【０００３】
ＤｏＳアタックを検出する技術としては、NetFlowの名称で知られるフロー監視機能がある。NetFlowは、非特許文献１等で規定されている。NetFlowは、パケット中継装置がパケットを受信した際、１／ｎの割合(ｎパケット毎に１パケットの割合)でパケットをサンプリングし、７つの情報(（１）始点ＩＰアドレス、（２）終点ＩＰアドレス、（３）ＩＰ上位プロトコル番号、（４）ＴＣＰ（またはＵＤＰ）始点ポート番号、（５）ＴＣＰ（またはＵＤＰ）終点ポート番号、（６）ＩＰ ＴＯＳ(ＩＰｖ６ではFlowLabel)、（７）入力インタフェースのＳＮＭＰ index番号)が同一値を持つ一連のパケット(「フロー」と呼ぶ)毎のパケット数やバイト数を統計として計数する。パケット中継装置は、次の条件の一つが成立したとき、フローの統計と関連情報をNetFlow export datagram（非特許文献１に記載）のフォーマットに整形し、コレクタと呼ぶ外部サーバに送信する。
【０００４】
その条件とは、（１）フローの無通信時間が予め定めた時間を超えた場合、（２）フローのＴＣＰコネクション終了時(TCP FIN=ON または RST=ONのパケット受信時)、（３）フローの通信時間が予め定めた時間を超えた場合、である。
コレクタは、その統計と関連情報を解析することによって、パケット数やバイト数が著しく多いフロー（ＤｏＳアタックの疑いのあるフロー）を検出する。
【０００５】
【非特許文献１】B. Claise、”Cisco Systems NetFlow Services Export Version 9”、[online]、２００４年１０月、IETF、[平成１７年８月２２日検索]、インターネット<URL：http://www.ietf.org/rfc/rfc3954.txt?number=3954>
【発明の開示】
【発明が解決しようとする課題】
【０００６】
パケット中継装置は、上述した条件の一つが成立した場合に、フローの統計と関連情報をコレクタに送信する。しかし、パケット中継装置はその間フロー毎の統計を取るために、非常に多くの資源(主にメモリ)を用意しなければならない。しかしながらネットワークに流れる大半のフローの統計値(パケット数やバイト数)は小さく、ＤｏＳアタックの解析では殆ど使う必要の無い情報である。このため、コレクタは統計値の大きいもの（例えばトップ１０）は個別表示しても、その他は「other」として纏めて扱うか、表示しないのが通例である。
【０００７】
またパケット中継装置は、上述した条件となったとき、フローの統計と関連情報をコレクタに送信する。しかし、この方法ではフローの終了後にしかコレクタはパケット数やバイト数が著しく多いフロー（異常トラヒックすなわちＤｏＳアタックの疑いのあるフロー）を検出することしか出来ない。
【０００８】
本発明の目的は、攻撃者が標的に対してネットワーク経由で非常に多くのアクセスを仕掛けることによって標的の資源を消費させ、本来のサービスを実行できなくさせるＤｏＳアタックのフローを、少ない資源で効率的に検出するための異常トラヒックの検出方法およびそれに用いるパケット中継装置を提供することにある。
【課題を解決するための手段】
【０００９】
異常トラヒックのフローを効率的に検出する方法であって、パケット中継装置はパケットを受信した際に１／ｎの割合でサンプリングしたパケットに対して、
（ａ）単位時間当たりに受信したフローのパケット数あるいはバイト数が予め定めた閾値を超えているものについては各フロー単位でパケット数やバイト数を統計として計数し、無通信時間が予め定めた時間を超えた場合、ＴＣＰコネクション終了時、または通信時間が予め定めた時間を超えた場合に、当該フローの統計と関連情報をNetFlow export datagramのフォーマットに整形し、コレクタに送り、
（ｂ）単位時間当たりに受信したフローのパケット数あるいはバイト数が閾値を超えていないものについてはOtherフロー（アザーフロー）として纏めてパケット数やバイト数を統計として計数し、Otherフローの統計としてNetFlow export datagramのフォーマットに整形し、定期的にコレクタに送る。
【００１０】
上記の異常トラヒック検出方法によれば、単位時間当たりに受信したフローのパケット数あるいはバイト数が閾値を超えないものは、パケット中継装置でOtherフローとして纏めて計数するため、ネットワークに流れる大半のフロー（統計値が小さい）の統計を取るために非常に多くの資源を用意する必要がなくなる。一方、単位時間当たりに受信したフローのパケット数あるいはバイト数が閾値を超えているものについては各フロー単位で計数してコレクタに送付するので、少ない資源で効率的に異常トラヒックを検出することができるようになる。
【００１１】
また、単位時間あたりに受信したフローのパケット数あるいはバイト数が閾値を超えるか否かで個別フローで計数するかOtherフローで計数するか分けるのではなく、フローのパケット数あるいはバイト数のピークレートが閾値を超えるか否かで個別フローで計数するかOtherフローで計数するか分ける方法も考えられる。
この異常トラヒックの検出方法によれば、瞬間的に発生したＤｏＳアタックについても検出することができるようになる。
【発明の効果】
【００１２】
本発明によれば、ＤｏＳアタックの疑いのある異常トラヒックのフローを効率良く検出できる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態について、実施例を用いて図面を参照しながら説明する。なお、実施例は発明を限定するものではない。すなわち、インターネットプロトコルのバージョンは、ＩＰｖ４で説明し、上位プロトコルはＴＣＰで説明するが、これらに限られない。
【００１４】
図１は、ネットワークのブロック図である。図１において、ネットワーク１００は、ネットワーク２とネットワーク３とネットワーク４と、ネットワーク２〜４と間でパケットを中継するパケット中継装置１０とから構成される。ここでは、ネットワーク２に攻撃者の端末５が、存在する。また、ネットワーク３に攻撃者の標的であるサーバ６が、ネットワーク４にコレクタ７（統計情報解析サーバ）が、存在する。
【００１５】
パケット中継装置１０は、パケット中継処理部１１とパケットサンプル部１２とフロー統計計数部１３とフロー統計生成部１４と複数のインタフェース２２〜２４とから構成される。パケット中継処理部１１、パケットサンプル部１２、フロー統計計数部１３、フロー統計生成部１４は、いずれもＣＰＵ、ＡＳＩＣ、ＲＡＭ、ＲＯＭ等の電子デバイスで構成される。
【００１６】
パケット中継処理部１１は、経路制御処理を実行して経路テーブル１１１を作成し、経路テーブル１１１に基づきネットワーク２〜ネットワーク４の間でパケットを中継するユニットである。パケットサンプル部１２は、パケット中継処理部１１がネットワーク２〜ネットワーク４から受信したパケットを１／ｎの割合でサンプリングしてフロー統計計数部１３にコピーして渡す。ここでｎは正整数であり、ネットワーク規模に対応して、１を含んで非常に大きい数値を取りうる。
【００１７】
フロー統計計数部１３は、パケットサンプル部１２から渡されたパケットに対して、７つの情報（（１）始点ＩＰアドレス、（２）終点ＩＰアドレス、（３）ＩＰ上位プロトコル番号、（４）ＴＣＰ始点ポート番号、（５）ＴＣＰ終点ポート番号、（６）ＩＰ ＴＯＳ、（７）入力インタフェースのＳＮＭＰ index番号)が同一値を持つ一連のパケット(フロー)毎のパケット数やバイト数をフロー統計テーブル１３１に計数（集計）する。フロー統計計数部１３は、以下に記載の条件の一つが満たされたとき、フローの統計と関連情報（NetFlow export datagramとして送付する情報で、パケット中継装置１０内の経路テーブル１１１、フロー統計テーブル１３１ほかで保持する）をフロー統計生成部１４に渡す。ここで、フロー統計計数部１３が、フローの統計と関連情報をフロー統計生成部１４に渡す条件は、以下のケースである。すなわち、（１）フローの無通信時間が予め定めた時間を超えた場合、（２）フローのＴＣＰコネクション終了時、（３）フローの通信時間が予め定めた時間を超えた場合、である。
【００１８】
フロー統計生成部１４は、フロー統計計数部１３から渡されたフローの統計と関連情報をNetFlow export datagramのフォーマットに整形し、コレクタ７への送信をパケット中継処理部１１に指示して渡す。パケット中継処理部１１は、NetFlow export datagramを、ネットワーク４のコレクタ７に送信する。
【００１９】
図２は、ＩＰｖ４のＩＰデータグラムフォーマットを説明する図である。図２において、ＩＰデータグラムフォーマット２００は、ＩＰｖ４ヘッダ２１０と上位データ２５０とで構成されている。また、ＩＰｖ４ヘッダ２１０は、バージョン２１１、ヘッダ長２１２、ＩＰ ＴＯＳ２１３、パケット長２１４、フラグメントＩＤ２１５、フラグ２１６、フラグメント・オフセット２１７、生存時間（ＴＴＬ：Time To Live）２１８、上位プロトコル番号２１９、ヘッダチェックサム２２０、始点ＩＰアドレス２２１、終点ＩＰアドレス２２２で構成されている。さらに、上位データ２５０は、ＴＣＰヘッダの一部であるＴＣＰ始点ポート番号２５１とＴＣＰ終点ポート番号２５２、ＴＣＰデータおよびユーザデータであるＴＣＰ+ユーザデータ２５３で構成されている。この場合、バージョン２１１にはＩＰｖ４なので「４」、ヘッダ長２１２には「５」、上位プロトコル番号２１９にはＴＣＰなので「６」が入る。
【００２０】
フロー統計係数部１３がフローを定義付ける（１）始点ＩＰアドレスは、始点ＩＰアドレス２２１である。同様に、（２）終点ＩＰアドレスは、終点ＩＰアドレス２２２である。（３）ＩＰ上位プロトコル番号は、ＩＰ上位プロトコル番号２１９である。（４）ＴＣＰ始点ポート番号は、ＴＣＰ始点ポート番号２５１である。（５）ＴＣＰ終点ポート番号は、ＴＣＰ終点ポート番号２５２である。さらに（６）ＩＰ ＴＯＳは、ＩＰ ＴＯＳ２１３である。一方、（７）入力インタフェースのＳＮＭＰ index番号は、物理インタフェース番号である。
【００２１】
図３は、経路テーブルの構成図である。経路テーブル１１１は、経路制御処理で獲得したＩＰアドレスと出力ネットワークに関する情報（出力インタフェースのＳＮＭＰ index番号、次ホップＩＰアドレス等）の関係を保持するテーブルである。経路テーブル１１１は、キーをメモリに与えると各記憶データの間でキーと比較論理を取り、連想条件にあったデータ・アドレスにフラグを立てる検索機能を有するＣＡＭ（Content Addressable Memory：連想メモリ）またはＲＡＭ等の電子デバイスで構成される。
【００２２】
図３において、経路テーブル１１１は、複数の経路情報１２０から構成されている。経路情報１２０のエントリは、終点ＩＰアドレス１２１、終点ＩＰアドレスのプレフィックスマスクビット数１２２、次ホップＩＰアドレス１２３、終点ＩＰアドレスのＡＳ番号１２４、次ホップＩＰアドレスのＡＳ番号１２５、出力インタフェースのＳＮＭＰ index番号１２６である。
【００２３】
図４は、フロー統計テーブルの構成図である。フロー統計テーブル１３１は、フローを識別する７つの情報と、パケット数やバイト数の計数値、および当該フローの関連情報を保持するためのテーブルであり、ＣＡＭまたはＲＡＭ等の電子デバイスで構成される。
【００２４】
図４において、フロー統計テーブル１３１は、複数フローの統計データである複数のエントリ１５０から構成されている。エントリ１５０は、始点ＩＰアドレス１５１、終点ＩＰアドレス１５２、次ホップＩＰアドレス１５３、入力インタフェースのＳＮＭＰ index番号１５４、出力インタフェースのＳＮＭＰ index番号１５５、フローのＬ３パケットの総数１５６、フローのＬ３パケットの総バイト数１５７、フロー開始パケット受信時のSysUptime１５８、フロー終了パケット受信時のSysUptime１５９、ＴＣＰ始点ポート番号１６０、ＴＣＰ終点ポート番号１６１、ＰＡＤ１６２、ＴＣＰフラグの累積１６３、ＩＰ上位プロトコル番号１６４、ＩＰ ＴＯＳ１６５、始点側隣接ビア何れかのＡＳ番号１６６、終点側隣接ビア何れかのＡＳ番号１６７、始点ＩＰアドレスのプレフィックスマスクビット数１６８、終点ＩＰアドレスのプレフィックスマスクビット数１６９である。
【００２５】
フロー統計係数部１３がフローを決定付ける（１）始点ＩＰアドレスは、始点ＩＰアドレス１５１である。同様に、（２）終点ＩＰアドレスは、終点ＩＰアドレス１５２である。（３）ＩＰ上位プロトコル番号は、ＩＰ上位プロトコル番号１６４である。（４）ＴＣＰ始点ポート番号は、ＴＣＰ始点ポート番号１６０である。（５）ＴＣＰ終点ポート番号は、ＴＣＰ終点ポート番号１６１である。さらに（６）ＩＰ ＴＯＳは、ＩＰ ＴＯＳ１６５である。（７）入力インタフェースのＳＮＭＰ index番号は、入力インタフェースのＳＮＭＰ index番号１５４である。
【００２６】
なお、フロー統計テーブル１３１の最終エントリ（「エントリＺ」と呼ぶ）は、個別フローとして計数する必要が無いと判断したフローのパケット数やバイト数の計数（再集計）に用いる。すなわち、フロー個別の情報は意味がない。したがって、７つの情報には「０(ゼロ)」を設定する。
【００２７】
図５は、パケット中継装置のフロー毎のパケット数およびバイト数の計数動作のフローチャートである。先ず新規フロー(フローＡと呼ぶ)のパケットを受信した場合のパケット中継装置１０の動作について説明する。中継処理部１１フローＡのパケットを受信処理し、経路テーブル１１１に基づいてパケットを中継処理する(Ｓ１０１)。パケットサンプル部１２は、パケット中継処理部１１が中継処理するパケットを１／ｎの割合でサンプリングし（Ｓ１０２）、サンプリングにヒットした場合はフロー統計計数部１３にコピーして渡す。なお、サンプリングにミスヒットした場合は、何もせず処理終了する。
【００２８】
フロー統計計数部１３は、パケットサンプル部１２から渡されたパケットに対して、７つの情報（（１）始点ＩＰアドレス、（２）終点ＩＰアドレス、（３）ＩＰ上位プロトコル番号、（４）ＴＣＰ（ＵＤＰ）始点ポート番号、（５）ＴＣＰ（ＵＤＰ）終点ポート番号、（６）ＩＰ ＴＯＳ(ＩＰｖ６ではFlowLabel)、（７）入力インタフェースのＳＮＭＰ index番号が同一値を持つエントリをフロー統計テーブル１３１の中から探す（Ｓ１０３）。ここでは、新規フローなので一致するエントリが無いため、フロー統計計数部１３は、エントリＺのパケット数およびバイト数に当該パケット分を加算するとともに、フローＡ用のエントリ（エントリＡと呼ぶ）を新たに作成し、関連情報を登録する。なおエントリＡのパケット数およびバイト数は、「０」に設定する（Ｓ１０４）。これは、ダブルカウントしないためである。
【００２９】
次に、フローＡの後に再びフローＡのパケットを受信した場合のパケット中継装置１０の動作について説明する。中継処理部１１フローＡの後続パケットを受信処理し、経路テーブル１１１に基づいて、パケットを中継処理する（Ｓ１０１）。パケットサンプル部１２は、パケット中継処理部１１が中継処理するパケットを１／ｎの割合でサンプリングし（Ｓ１０２）、サンプリングにヒットした場合はフロー統計計数部１３にコピーして渡す。なお、サンプリングにミスヒットした場合は何もせず、後続の処理は行わない。フロー統計計数部１３は、パケットサンプル部１２から渡されたパケットに対して、７つの情報が全て同一値を持つエントリをフロー統計テーブル１３１の中から探す（Ｓ１０３）。ここでは、既知のパケットなので、フロー統計計数部１３は、エントリＡを検出し、エントリＡのパケット数およびバイト数に当該パケット分を加算する（Ｓ１０５）。
以上により、新規フローを検出し、フロー毎のパケット数およびバイト数を計数（集計）することが出来る。
【００３０】
図６は、パケット中継装置のフローの統計と関連情報をコレクタに送付する動作のフローチャートである。図６を用いて、フローの統計と関連情報をコレクタ７に送付する場合のパケット中継装置１０の動作について説明する。
【００３１】
フロー統計計数部１３は、定期的にフロー統計テーブル１３１を検索して４つの条件の何れかに合致するエントリを探し、各条件に対応する処理を行う。
まず、単位時間当たりに受信したフローのパケット総数が予め定めたパケット数閾値より小さい、または受信した総バイト数が予め定めたバイト数閾値より小さいエントリに該当するか判定する（Ｓ１１０）。この判定が、真ならば、計数した総パケット数と総バイト数をエントリＺに加算（再集計）するとともに、エントリを消去する（Ｓ１２１）。最終エントリか判定し（Ｓ１２２）、真ならば、情報をNetFlow export datagramのフォーマットに整形し、これをコレクタ７に送信する（Ｓ１３０）。ステップ１２２が偽ならば、ステップ１１０に戻り、次エントリに対して処理を行う。
【００３２】
ステップ１１０が偽ならば、フローの無通信時間が予め定めた時間を超えているか判定し（Ｓ１１１）、真ならば、フローの統計と関連情報を、フロー統計生成部に渡し（Ｓ１２０）、ステップ１２２に推移する。ステップ１１１が偽ならば、フローのＴＣＰコネクションが終了しているか判定する（Ｓ１１２）。ステップ１１２は、具体的にはTCP FIN=ONまたはRST=ONを判定し、真ならばステップ１２０、偽ならばステップ１１３に遷移する。ステップ１１３では、フローの通信時間が予め定められた時間を越えているか、判定する。ステップ１１３が、真ならステップ１２０、偽ならばステップ１２２に遷移する。
【００３３】
ステップ１１０の判定は、式１または式２が成立しているか判定して、実施する。
パケット総数／（フロー受信最終時刻−フロー受信開始時刻）＜閾値…（１）
総バイト数／（フロー受信最終時刻−フロー受信開始時刻）＜閾値…（２）
ステップ１１１の判定は、式３が成立しているか判定して、実施する。
現在時刻−フロー受信最終時刻≧予め定めた時間…（３）
ステップ１１３の判定は、式４が成立しているか判定して、実施する。
現在時刻−フロー受信開始時刻≧予め定めた時間…（４）
コレクタ７は、NetFlow export datagramを解析して、パケット数やバイト数が著しく多いフロー（ＤｏＳアタックの疑いのあるフロー）を検出する。
【００３４】
本実施例に拠れば、単位時間当たりに受信したフローのパケット数あるいはバイト数が閾値を超えないものはパケット中継装置１０でエントリＺに纏めて計数し、単位時間当たりに受信したフローのパケット数あるいはバイト数が閾値を超えるものはフロー毎に計数してコレクタ７に送付するので、パケット数やバイト数が著しく多いフローを、少ない資源で効率的に検出することができる。
【００３５】
なお、上述した実施例では、７つの情報が全て同一値を持つ一連のパケットをフローと定義し、フロー毎のパケット数やバイト数を統計として計数しているが、７つの情報に囚われるものではない。始点ＩＰアドレスおよび終点ＩＰアドレスが同一値を持つ一連のパケットをフローと定義し、このフロー毎のパケット数やバイト数を統計として計数してもよい。また、ＩＰｖ４に限らずＩＰｖ６であっても良い。ＩＰｖ６のとき、上述した実施例のＩＰ ＴＯＳは、FlowLabelと読み替えればよい。さらに、上位プロトコルとしてＴＣＰを説明したが、ＩＣＭＰでもＵＤＰであっても良く、これらに限られない。上位プロトコルがＵＤＰのとき、上述した実施例のＴＣＰ始点／終点ポート番号は、ＵＤＰ始点／終点ポート番号と読み替えればよい。これは他の上位プロトコルでも同様である。また、対応する概念がないとき、全てのフローで一定値としても良い。
【００３６】
上述した実施例では、フロー統計計数部１３は、単位時間当たりに受信したフローのパケット数あるいはバイト数が予め定めた閾値（下限値）より小さいエントリを検出し、計数したパケット数とバイト数をエントリＺに加算するとともに、エントリを消去している。しかし、別の閾値（上限値）を設け、単位時間当たりに受信したフローのパケット数あるいはバイト数が閾値（上限値）を超えている場合は、該エントリの統計と関連情報をフロー統計生成部１４に渡して、コレクタ７に送信させるようにしても良い。  またこの場合は、単位時間当たりに受信したフローのパケット数あるいはバイト数が閾値（上限値）を超えたことを示すＳＮＭＰ Ｔrapパケット（ＳＮＭＰ：Ｓimple Ｎetwork Ｍanagement Ｐrotocol）を送出することによって、即時にネットワーク管理者に異常発生を知らせるようにしても良い。
【００３７】
また閾値（上限値）は複数でも良く、例えばレベル１の閾値（低）とレベル２の閾値（高）を設け、レベル１の開催（低）を超えた場合は当該フローをＮetＦlow export datagramに整形してコレクタ７に送付し、レベル２の閾値（高）を超えた場合はさらにＳＮＭＰ Ｔrapパケットを送出するようにしても良い。また単位時間当たりに受信したフローのパケット数あるいはバイト数が上位ｎ（ｎは正整数）未満のエントリは、計数したバイト数をエントリＺに加算するとともに、エントリを消去しても良い。
【００３８】
以上により、コレクタ７では、パケット数やバイト数が著しく多いフローを早期に検出することが可能になる。なおフロー統計計数部１３は、エントリの統計と関連情報をフロー統計生成部１４に渡した後、エントリを消去する。
【００３９】
また、上述した実施例では、フロー統計計数部１３は、フローの通信時間が予め定めた時間を超えているエントリを検出し、エントリの統計と関連情報をフロー統計生成部１４に渡して、コレクタ７に送信させている。しかし、さらにフローのパケット数あるいはバイト数が予め定めた閾値を超えているエントリを検出し、エントリの統計と関連情報をフロー統計生成部１４に渡して、コレクタ７に送信させるようにしても良い。これにより、コレクタ７では、パケット数やバイト数が著しく多いフローを早期に検出することが可能になる。なおフロー統計計数部１３は、エントリの統計と関連情報をフロー統計生成部１４に渡した後、エントリを消去する。
【００４０】
さらに、上述実施例では、フロー統計計数部１３は、新規フローのエントリのパケット数およびバイト数は「０」に設定し、当該パケット分をエントリＺのパケット数およびバイト数に加算している。しかし、当該パケット分を新規フローのエントリのパケット数およびバイト数に加算するようにしても良い。以上により、コレクタ７では、パケット数やバイト数が著しく多いフローのパケット数およびバイト数をより正確に把握することが可能になる。
【００４１】
上述した実施例では、フロー統計計数部１３は、７つの情報が全て同一値を持つ一連のパケットを「フロー」と定義し、フロー毎のパケット数やバイト数を統計として計数している。しかし、フローの定義（７つの情報）に出力インタフェースのＳＮＭＰ index番号を追加すれば、終点ＩＰアドレスが同じでも出力先インタフェースが異なる（ポリシールーティングまたはマルチパス等）場合のトラフィックの状況をより細かく正確に把握することが可能になる。同様に、フローの定義（７つの情報）から終点ＩＰアドレスを削除すれば、終点ＩＰアドレスを集約した形式での統計が得られるので、フロー統計テーブル１３１に用意するエントリ数を減らせるとともに、パケット数やバイト数を著しく多く送信している端末（ＤｏＳアタックを仕掛けている疑いのある端末）を早期に検出することが可能になる。
【００４２】
また、他の変形例として、フロー統計計数部１３は、ステップ１０５において、エントリＡのパケット数およびバイト数に当該パケット分を加算する前に、当該パケット分に係わるパケット数あるいはバイト数の受信レート（式５あるいは式６）を計算し、予め定めた閾値より大きい場合は、当該パケット分を加算した後、該エントリの統計と関連情報をフロー統計生成部１４に渡して、コレクタに送信させるようにしても良い。これにより、コレクタでは、瞬間的にパケット数やバイト数が著しく多いフロー（ＤｏＳアタックの疑いのあるフロー）を早期に検出することが可能になる。なおフロー統計計数部１３は、エントリの統計と関連情報をフロー統計生成部１４に渡した後、エントリを消去する。
１／（現在時刻−フロー受信最終時刻）≧閾値…（５）
パケットのバイト数／（現在時刻−フロー受信最終時刻）≧閾値…（６）
なお、上述した各実施例で用いた各閾値および各予め定めた時間は、互いに独立で、パケット中継装置の管理者によって任意の値に変更できる。
【図面の簡単な説明】
【００４３】
【図１】ネットワークのブロック図である。
【図２】ＩＰｖ４のＩＰデータグラムフォーマットを説明する図である。
【図３】経路テーブルの構成図である。
【図４】フロー統計テーブルの構成図である。
【図５】パケット中継装置のフロー毎のパケット数およびバイト数の計数動作のフローチャートである。
【図６】パケット中継装置のフローの統計と関連情報をコレクタに送付する動作のフローチャートである。
【符号の説明】
【００４４】
２〜４…ネットワーク、５…端末、６…サーバ、７…コレクタ（統計情報解析サーバ）、１０…パケット中継装置、１１…パケット中継処理部、１２…パケットサンプル部、１３…フロー統計計数部、１４…フロー統計生成部、２２〜２４…インタフェース、１００…ネットワーク、１１１…経路テーブル、１２０…経路情報、１５０…エントリ、１３１…フロー統計テーブル、２００…ＩＰデータグラムフォーマット、２１０…ＩＰｖ４ヘッダ、２５０…上位データ。
【図１】
0004512196.tif 000002
【図２】
0004512196.tif 000003
【図３】
0004512196.tif 000004
【図４】
0004512196.tif 000005
【図５】
0004512196.tif 000006
【図６】
0004512196.tif 000007