(57)【特許請求の範囲】
【請求項１】
ＩＳＰ毎に構成されるネットワークの間で送受信され、送信元の通信装置を識別するための第１の送信元アドレスと、前記送信元の通信装置を含むネットワークの代表ルータを識別するための第２の送信元アドレスと、送信先の通信装置を識別するための第１の宛先アドレスと、前記送信先の通信装置を含むネットワークの代表ルータを識別するための第２の宛先アドレスとを含むパケットを監視して異常トラフィックを検知する異常トラフィック検知装置において、
前記ネットワークに含まれる通信装置へのトラフィックの量に関する量情報が格納される量情報テーブルを前記第２の宛先アドレスに対応するネットワーク毎に有する量情報記憶部と、
前記パケットの送信先の通信装置を含む前記ネットワークを該パケットの第２の宛先アドレスに基づいて特定し、特定されたネットワーク毎に該ネットワークに含まれる前記第１の宛先アドレス毎のトラフィックの量を計測し、計測したトラフィックの量を前記量情報として、前記特定されたネットワークに対応する前記量情報テーブルに格納させる格納制御部と、
前記量情報テーブルに格納されている量情報に基づいて、前記量情報テーブルに対応するネットワークへのトラフィックの量が異常であるか否かをネットワーク毎に判定する異常トラフィック判定部と、
を備えることを特徴とする異常トラフィック検知装置。
【請求項２】
前記格納制御部は、前記パケットの第２の宛先アドレスとネットワークとの対応が予め記憶された情報に基づいて、前記パケットの送信先の通信装置を含む前記ネットワークを特定することを特徴とする請求項１に記載の異常トラフィック検知装置。
【請求項３】
前記判定部は、トラフィックの量が異常であるか否かを判定する際に用いる量情報の閾値を前記量情報テーブル毎に記憶し、前記量情報テーブルに格納されている量情報と、当該量情報に対応する閾値とを前記量情報テーブル毎に比較することによって、前記量情報テーブルに対応するネットワークへのトラフィックの量が異常であるか否かを前記量情報テーブル毎に判定することを特徴とする請求項１または２に記載の異常トラフィック検知装置。
【請求項４】
ＩＳＰ毎に構成されるネットワークの間で送受信され、送信元の通信装置を識別するための第１の送信元アドレスと、前記送信元の通信装置を含むネットワークの代表ルータを識別するための第２の送信元アドレスと、送信先の通信装置を識別するための第１の宛先アドレスと、前記送信先の通信装置を含むネットワークの代表ルータを識別するための第２の宛先アドレスとを含むパケットを監視して異常トラフィックを検知する異常トラフィック検知装置による異常トラフィック検知方法において、
前記異常トラフィック検知装置が、前記パケットの第２の宛先アドレスに基づいて、前記パケットの送信先の通信装置を含む前記ネットワークを特定する宛先特定ステップと、
前記異常トラフィック検知装置が、前記第２の宛先アドレスに対応するネットワーク毎に設けられ、当該ネットワークに含まれる通信装置へのトラフィックの量に関する量情報を格納する量情報テーブルのうち、前記宛先特定ステップにおいて特定されたネットワークに対応する量情報テーブルに、当該特定されたネットワーク毎に計測した前記第１の宛先アドレス毎のトラフィックの量を前記量情報として格納させる量情報格納ステップと、
前記異常トラフィック検知装置が、前記量情報テーブルに格納されている量情報に基づいて、前記量情報テーブルに対応するネットワークへのトラフィックの量が異常であるか否かを判定する異常トラフィック判定ステップと、
を含むことを特徴とする異常トラフィック検知方法。
【請求項５】
前記量情報格納ステップは、前記パケットの第２の宛先アドレスとネットワークとの対応が予め記憶された情報に基づいて、前記パケットの送信先の通信装置を含む前記ネットワークを特定することを特徴とする請求項４に記載の異常トラフィック検知方法。
【請求項６】
前記異常トラフィック判定ステップは、前記量情報テーブルに格納されている量情報と、前記量情報テーブル毎に予め記憶された量情報の閾値とを前記量情報テーブル毎に比較することによって、前記量情報テーブルに対応するネットワークへのトラフィックの量が異常であるか否かを前記量情報テーブル毎に判定することを特徴とする請求項４または５に記載の異常トラフィック検知方法。
【請求項７】
ＩＳＰ毎に構成されるネットワークの間で送受信され、送信元の通信装置を識別するための第１の送信元アドレスと、前記送信元の通信装置を含むネットワークの代表ルータを識別するための第２の送信元アドレスと、送信先の通信装置を識別するための第１の宛先アドレスと、前記送信先の通信装置を含むネットワークの代表ルータを識別するための第２の宛先アドレスとを含むパケットを監視して異常トラフィックを検知することをコンピュータに実行させる異常トラフィック検知プログラムにおいて、
前記パケットの第２の宛先アドレスに基づいて、前記パケットの送信先の通信装置を含む前記ネットワークを特定する宛先特定ステップと、
前記第２の宛先アドレスに対応するネットワーク毎に設けられ、当該ネットワークに含まれる通信装置へのトラフィックの量に関する量情報を格納する量情報テーブルのうち、前記宛先特定ステップにおいて特定されたネットワークに対応する量情報テーブルに、当該特定されたネットワーク毎に計測した前記第１の宛先アドレス毎のトラフィックの量を前記量情報として格納させる量情報格納ステップと、
前記量情報テーブルに格納されている量情報に基づいて、前記量情報テーブルに対応するネットワークへのトラフィックの量が異常であるか否かを判定する異常トラフィック判定ステップと、
をコンピュータに実行させることを特徴とする異常トラフィック検知プログラム。
【請求項８】
前記量情報格納ステップは、前記パケットの第２の宛先アドレスとネットワークとの対応が予め記憶された情報に基づいて、前記パケットの送信先の通信装置を含む前記ネットワークを特定することを特徴とする請求項７に記載の異常トラフィック検知プログラム。
【請求項９】
前記異常トラフィック判定ステップは、前記量情報テーブルに格納されている量情報と、前記量情報テーブル毎に予め記憶された量情報の閾値とを前記量情報テーブル毎に比較することによって、前記量情報テーブルに対応するネットワークへのトラフィックの量が異常であるか否かを前記量情報テーブル毎に判定することを特徴とする請求項７または８に記載の異常トラフィック検知プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＸ（Ｉｎｔｅｒｎｅｔ  Ｅｘｃｈａｎｇｅ）で異常トラフィックを検知する異常トラフィック検知装置、異常トラフィック検知方法および異常トラフィック検知プログラムに関するものである。
【背景技術】
【０００２】
近年、インターネット上のＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）間で通信を可能とするため、各ＩＳＰをＩＸ（相互接続ポイント）によって相互接続している。このようなＩＸを用いたネットワークでは、ＩＳＰに対して大量のパケットを送信することによってＩＳＰの負荷を増加させ、ＩＳＰのサービスを妨害するＤＤｏＳ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄｅｎｉａｌ  ｏｆ  Ｓｅｒｖｉｃｅ）攻撃が問題となっている。例えば、インターネットや社内ネットワークへの不正侵入や攻撃を監視する侵入検知システムとしては、ＩＤＳ(Ｉｎｔｒｕｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ  Ｓｙｓｔｅｍ)がある。このＩＤＳでは、ネットワーク上を流れるパケットを監視・解析し、シグネチャ（シグネチャデータベース）呼ばれる攻撃手法のデータベースを参照して不正侵入や攻撃を自動検知している。シグネチャは、既知の不正アクセスのパターンとして、トラフィックのヘッダおよびペイロードに含まれるデータの特徴を記憶するデータベースであり、新たな攻撃手法が発見される度に、データベース内の情報が更新される。
【０００３】
ところで、ＤＤｏＳ攻撃の特徴はトラフィック量の大きさにあるので、ＩＸに到着する全てのトラフィックに対して各トラフィックとシグネチャとが一致するか否かを確認していると、ＩＸが高負荷状態に陥ってしまう。
【０００４】
そこで、従来のＤＤｏＳ攻撃の検知システムでは、シグネチャを監視するのではなく、トラフィック量を監視することによってＤＤｏＳ攻撃の検知を行なっていた。トラフィック量の監視の際には、全トラフィック量の監視とともに、プロトコル毎、宛先ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス毎といった単位でトラフィック量を集計した値を監視している。ＤＤｏＳ攻撃の検知システムでは、トラフィック量が分かればよいので、ネットワークを流れる全てのトラフィックの内容を全て監視する必要はない。このため、監視対象のネットワークを構成するスイッチやルータからトラフィックの統計情報だけを受信すれば、効率良くトラフィック量を監視することが可能となる。市販のスイッチやルータでは、トラフィック統計情報の出力形式としてｓＦｌｏｗやｎｅｔｆｌｏｗが採用されている（非特許文献１，２参照）。
【０００５】
また、サーバをサービス不能にするＤＤｏＳ攻撃は、攻撃の的となるサーバに対してトラフィックが急増するという特徴がある。したがって、異常トラフィックを検知するには、宛先ＩＰアドレスを特定することが有効である。例えば、特許文献１に記載のパケット処理方法では、事前に登録した宛先ＩＰアドレス毎にトラフィック量を観測している。
【０００６】
【非特許文献１】Network Working Group Request for Comments:3176 Category: Informational “InMon Corporation's ｓＦｌｏｗ: A Method for Monitoring Traffic in Switched and Routed Networks” [online] P.Phaal S.Panchen N.McKee InMon Corp. September 2001 「平成１９年９月４日検索」、インターネット＜ＵＲＬ：http://www.ietf.org/rfc/rfc3176.txt＞
【非特許文献２】Network Working Group Request for Comments:3954 Category: Informational “Cisco Systems NetFlow Services Export Version 9” [online] B. Claise, Ed. Cisco Systems October 2004 「平成１９年９月４日検索」、インターネット＜ＵＲＬ：http://www.ietf.org/rfc/rfc3954.txt＞
【特許文献１】特開２００３−２８３５４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記第１〜第３の従来技術では、トラフィック観測点が社内ネットワークやデータセンタの入り口であれば、宛先ＩＰアドレスが限定されているので、監視すべき宛先ＩＰアドレスを事前に登録することが可能である。
【０００８】
しかしながら、ＩＸにおいてＤＤｏＳ攻撃を検知するために、上記第１〜第３の従来技術を適用してトラフィックを監視すると、以下のような問題点が発生する。すなわち、ＩＸを通過するトラフィックに宛先ＩＰアドレスが限定されていないので、宛先ＩＰアドレスを予め登録することはできない。このため、ＩＸでは事前登録した宛先アドレスに基づいたトラフィック量の観測を行なうことができないといった問題があった。
【０００９】
また、一定のメモリ領域を確保し、新しい宛先ＩＰアドレスが出現するたびに、新たに出現した宛先ＩＰアドレスをインデックスとして登録していくと、インデックスの種類が増大し、インデックスの種類の増大に伴ってトラフィックをカウントする際の計算量が大きくなってしまうという問題があった。
【００１０】
また、宛先ＩＰアドレスを特定できた場合であっても、ＩＸではこの宛先ＩＰアドレスに向けたトラフィックを遮断することはできない。このため、ＤＤｏＳ攻撃などによる異常トラフィックを検知した場合、ＤＤｏＳ攻撃を行なうトラフィックが最初に経由するＩＳＰに、異常トラフィックを検知したことを通知する必要がある。したがって、宛先ＩＰアドレスを特定するだけでなく、異常トラフィックの発生を通知すべきＩＳＰを特定することも必要になる。
【００１１】
本発明は、上記に鑑みてなされたものであって、スイッチを通過するトラフィックの宛先ＩＰアドレスを予め登録することなく、効率良く迅速に異常トラフィックを検知する異常トラフィック検知装置、異常トラフィック検知方法および異常トラフィック検知プログラムを得ることを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、請求項１に係る発明は、ＩＳＰ毎に構成されるネットワークの間で送受信され、送信元の通信装置を識別するための第１の送信元アドレスと、前記送信元の通信装置を含むネットワークの代表ルータを識別するための第２の送信元アドレスと、送信先の通信装置を識別するための第１の宛先アドレスと、前記送信先の通信装置を含むネットワークの代表ルータを識別するための第２の宛先アドレスとを含むパケットを監視して異常トラフィックを検知する異常トラフィック検知装置において、前記ネットワークに含まれる通信装置へのトラフィックの量に関する量情報が格納される量情報テーブルを前記第２の宛先アドレスに対応するネットワーク毎に有する量情報記憶部と、前記パケットの送信先の通信装置を含む前記ネットワークを該パケットの第２の宛先アドレスに基づいて特定し、特定されたネットワーク毎に該ネットワークに含まれる前記第１の宛先アドレス毎のトラフィックの量を計測し、計測したトラフィックの量を前記量情報として、前記特定されたネットワークに対応する前記量情報テーブルに格納させる格納制御部と、前記量情報テーブルに格納されている量情報に基づいて、前記量情報テーブルに対応するネットワークへのトラフィックの量が異常であるか否かをネットワーク毎に判定する異常トラフィック判定部と、を備えることを特徴とする。
【００１３】
また、請求項２に係る発明は、上記の発明において、前記格納制御部は、前記パケット
の第２の宛先アドレスとネットワークとの対応が予め記憶された情報に基づいて、前記パ
ケットの送信先の通信装置を含む前記ネットワークを特定することを特徴とする。
【００１４】
また、請求項３に係る発明は、上記の発明において、前記判定部は、トラフィックの量が異常であるか否かを判定する際に用いる量情報の閾値を前記量情報テーブル毎に記憶し、前記量情報テーブルに格納されている量情報と、当該量情報に対応する閾値とを前記量情報テーブル毎に比較することによって、前記量情報テーブルに対応するネットワークへのトラフィックの量が異常であるか否かを前記量情報テーブル毎に判定することを特徴とする。
【００１５】
また、請求項４に係る発明は、ＩＳＰ毎に構成されるネットワークの間で送受信され、送信元の通信装置を識別するための第１の送信元アドレスと、前記送信元の通信装置を含むネットワークの代表ルータを識別するための第２の送信元アドレスと、送信先の通信装置を識別するための第１の宛先アドレスと、前記送信先の通信装置を含むネットワークの代表ルータを識別するための第２の宛先アドレスとを含むパケットを監視して異常トラフィックを検知する異常トラフィック検知装置による異常トラフィック検知方法において、前記異常トラフィック検知装置が、前記パケットの第２の宛先アドレスに基づいて、前記パケットの送信先の通信装置を含む前記ネットワークを特定する宛先特定ステップと、前記異常トラフィック検知装置が、前記第２の宛先アドレスに対応するネットワーク毎に設けられ、当該ネットワークに含まれる通信装置へのトラフィックの量に関する量情報を格納する量情報テーブルのうち、前記宛先特定ステップにおいて特定されたネットワークに対応する量情報テーブルに、当該特定されたネットワーク毎に計測した前記第１の宛先アドレス毎のトラフィックの量を前記量情報として格納させる量情報格納ステップと、前記異常トラフィック検知装置が、前記量情報テーブルに格納されている量情報に基づいて、前記量情報テーブルに対応するネットワークへのトラフィックの量が異常であるか否かを判定する異常トラフィック判定ステップと、を含むことを特徴とする。
【００１６】
また、請求項５に係る発明は、上記の発明において、前記量情報格納ステップは、前記
パケットの第２の宛先アドレスとネットワークとの対応が予め記憶された情報に基づいて
、前記パケットの送信先の通信装置を含む前記ネットワークを特定することを特徴とする。
【００１７】
また、請求項６に係る発明は、上記の発明において、前記異常トラフィック判定ステップは、前記量情報テーブルに格納されている量情報と、前記量情報テーブル毎に予め記憶された量情報の閾値とを前記量情報テーブル毎に比較することによって、前記量情報テーブルに対応するネットワークへのトラフィックの量が異常であるか否かを前記量情報テーブル毎に判定することを特徴とする。
【００１８】
また、請求項７に係る発明は、ＩＳＰ毎に構成されるネットワークの間で送受信され、送信元の通信装置を識別するための第１の送信元アドレスと、前記送信元の通信装置を含むネットワークの代表ルータを識別するための第２の送信元アドレスと、送信先の通信装置を識別するための第１の宛先アドレスと、前記送信先の通信装置を含むネットワークの代表ルータを識別するための第２の宛先アドレスとを含むパケットを監視して異常トラフィックを検知することをコンピュータに実行させる異常トラフィック検知プログラムにおいて、前記パケットの第２の宛先アドレスに基づいて、前記パケットの送信先の通信装置を含む前記ネットワークを特定する宛先特定ステップと、前記第２の宛先アドレスに対応するネットワーク毎に設けられ、当該ネットワークに含まれる通信装置へのトラフィックの量に関する量情報を格納する量情報テーブルのうち、前記宛先特定ステップにおいて特定されたネットワークに対応する量情報テーブルに、当該特定されたネットワーク毎に計測した前記第１の宛先アドレス毎のトラフィックの量を前記量情報として格納させる量情報格納ステップと、前記量情報テーブルに格納されている量情報に基づいて、前記量情報テーブルに対応するネットワークへのトラフィックの量が異常であるか否かを判定する異常トラフィック判定ステップと、をコンピュータに実行させることを特徴とする。
【００１９】
また、請求項８に係る発明は、上記の発明において、前記量情報格納ステップは、前記
パケットの第２の宛先アドレスとネットワークとの対応が予め記憶された情報に基づいて
、前記パケットの送信先の通信装置を含む前記ネットワークを特定することを特徴とする。
【００２０】
また、請求項９に係る発明は、上記の発明において、前記異常トラフィック判定ステップは、前記量情報テーブルに格納されている量情報と、前記量情報テーブル毎に予め記憶された量情報の閾値とを前記量情報テーブル毎に比較することによって、前記量情報テーブルに対応するネットワークへのトラフィックの量が異常であるか否かを前記量情報テーブル毎に判定することを特徴とする。
【発明の効果】
【００２１】
請求項１、４または７の発明によれば、トラフィックの宛先となっているネットワーク毎の量情報テーブルにトラフィックの量情報を格納させるので、小さなメモリサイズの量情報テーブルに各量情報を格納でき、効率良く迅速に異常トラフィックを検知することが可能になるという効果を奏する。
【００２２】
また、請求項２、５または８の発明によれば、予め第２の宛先アドレスに対応するネットワークの情報を記憶しておくので、トラフィックの宛先となっているネットワークを容易に特定することが可能になるという効果を奏する。
【００２３】
また、請求項３、６または９の発明によれば、トラフィックの量が異常であるか否かを判定する際に用いる量情報の閾値を量情報テーブル毎に記憶しているので、トラフィックの量が異常であるか否かの判定を量情報テーブル毎に容易に判定することが可能になるという効果を奏する。
【発明を実施するための最良の形態】
【００２４】
以下に、本発明に係る異常トラフィック検知装置、異常トラフィック検知方法および異常トラフィック検知プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００２５】
まず、本実施例に係る異常トラフィック検知の概念について説明する。図１は、実施例１に係る異常トラフィック検知の概念を説明するための説明図である。異常トラフィック検知システム２００は、ＩＳＰ間などで送受信されるパケットを監視して、ＩＸ（サーバやネットワーク）上での異常トラフィック（例えばＤＤｏＳ攻撃に対する異常トラフィック）を検知するシステムである。
【００２６】
異常トラフィック検知システム２００は、レイヤ２スイッチ１１がＩＳＰ１〜ｘ（ｘは自然数）の間で送受信されるパケットの中継処理を行なっている。そして、異常トラフィックの検知処理を行なう異常トラフィック検知装置１００が、レイヤ２スイッチ１１を介してインターネット接続されたＩＳＰ１〜ｘの間でトラフィックが送受信される際に、レイヤ２スイッチ１１を通過するトラフィックをモニタしている。異常トラフィック検知装置１００は、モニタしたトラフィックに関する情報（トラフィック情報）を用いてＩＳＰ１〜ｘへの異常トラフィックを検知する。
【００２７】
具体的には、異常トラフィック検知装置１００は、レイヤ２スイッチ１１を流れるトラフィックに関する情報としてｓＦｌｏｗパケット５１を取得（受信）する（１）。そして、異常トラフィック検知装置１００は、受信したｓＦｌｏｗパケット５１に含まれる宛先ＭＡＣアドレスおよびＶＬＡＮ情報を用いて、トラフィックを経由ＩＳＰ毎にカウントする。このとき、異常トラフィック検知装置１００は、各ＩＳＰ１〜ｘに対応するカウンタテーブル（トラフィックの量に関する情報をカウントする量情報テーブル）５０を作成し、各カウンタテーブルで宛先ＩＰアドレス毎にトラフィックをカウントする（２）。
【００２８】
異常トラフィック検知装置１００は、カウンタテーブルに格納したトラフィックの量に関する情報（パケット数やパケットサイズ）（量情報）と、カウンタテーブル毎に設定されたトラフィックの閾値とを比較し（３）、異常トラフィックの検知を行なう（４）。
【００２９】
ＩＳＰ１〜ＩＳＰｘの間で新たなパケットの送受信が行われると、異常トラフィック検知装置１００は、新たなｓＦｌｏｗパケットとしてｓＦｌｏｗパケット５２を取得する（５）。異常トラフィック検知装置１００は、ｓＦｌｏｗパケット５２に対応するカウンタテーブルを特定し、特定したカウンタテーブル内からｓＦｌｏｗパケット５２に対応する宛先ＩＰアドレスを検索（登録位置を検索）する（６）。
【００３０】
そして、異常トラフィック検知装置１００は、ｓＦｌｏｗパケット５２に対応する宛先ＩＰアドレスを検索できた場合には、既存のカウンタをプラス１してトラフィックのカウント（追加）を行なう。異常トラフィック検知装置１００は、ｓＦｌｏｗパケット５２に対応する宛先ＩＰアドレスを検索できなかった場合には、ｓＦｌｏｗパケット５２に対応する宛先ＩＰアドレスを、ｓＦｌｏｗパケット５２に対応するカウンタテーブル内に新規登録してトラフィックのカウントを行なう（７）。
【００３１】
このように、各トラフィックのカウント値などをＩＳＰ毎のカウンタテーブルに格納させているので、トラフィックのカウント値を格納する１つのメモリ領域は、全トラフィックのカウント値をまとめて１つのカウンタテーブルに記憶する場合のメモリ領域よりも狭くなる。例えば、各トラフィックのカウント値（ＩＳＰ毎のカウンタテーブル）を格納するメモリ領域のサイズがそれぞれＮである場合、全トラフィックのカウント値をまとめて記憶する場合のメモリ領域のサイズはｘＮになる。
【００３２】
本実施例では、各トラフィックのカウント値をＩＳＰ毎のカウンタテーブルに格納しているので、各トラフィックがカウンタテーブル内に登録されているか否かの判断を行なう際の宛先ＩＰアドレスの検索を迅速に行なうことが可能となる。これにより、ＩＸで発生する異常トラフィックを効率良く迅速に検知することが可能となる。
【００３３】
図２は、本発明の実施例１に係る異常トラフィック検知装置を備えた異常トラフィック検知システムの構成を示す図である。異常トラフィック検知システム２００は、ＩＳＰ１〜４と、各ＩＳＰ１〜４の代表ルータ（図示せず）を介してＩＳＰ１〜４と接続するレイヤ２スイッチ１１と、レイヤ２スイッチ１１と接続する異常トラフィック検知装置１００とを備えている。
【００３４】
異常トラフィック検知システム２００では、レイヤ２スイッチ１１と各ＩＳＰ１〜４の代表ルータとによって、トラフィックの観測地点であるＩＸを構成している。各ＩＳＰ１〜４は、レイヤ２スイッチ１１を経由して他のＩＳＰとの間で通信を行う通信装置である。
【００３５】
異常トラフィック検知装置１００は、レイヤ２スイッチ１１に接続するトラフィック情報送信部３０と、トラフィック情報送信部３０に接続する異常トラフィック解析部２０とを有している。本実施例の異常トラフィック検知装置１００では、トラフィック情報送信部３０がレイヤ２スイッチ１１を流れるトラフィックをモニタするとともに、モニタしたトラフィックに関する情報をｓＦｌｏｗパケットとして異常トラフィック解析部２０に送信する。異常トラフィック解析部２０では、トラフィック情報送信部３０から送信されたｓＦｌｏｗパケットを受信し、受信したｓＦｌｏｗパケットの内容を解析することによって異常トラフィックの検知を行なう。
【００３６】
ここで、異常トラフィック解析部２０の構成について説明する。図３は、異常トラフィック解析部の構成を示すブロック図である。異常トラフィック解析部２０は、トラフィック分離部（格納制御部）２１と、宛先ＩＰアドレスカウント部（量情報記憶部）Ｃ１〜Ｃ４と、異常トラフィック判定部Ｊ１〜Ｊ４を有している。
【００３７】
宛先ＩＰアドレスカウント部Ｃ１〜Ｃ４は、トラフィック分離部２１に接続している。異常トラフィック判定部Ｊ１は、宛先ＩＰアドレスカウント部Ｃ１に接続し、異常トラフィック判定部Ｊ２は、宛先ＩＰアドレスカウント部Ｃ２に接続している。また、異常トラフィック判定部Ｊ３は、宛先ＩＰアドレスカウント部Ｃ３に接続し、異常トラフィック判定部Ｊ４は、宛先ＩＰアドレスカウント部Ｃ４に接続している。
【００３８】
異常トラフィック解析部２０では、宛先ＩＰアドレスカウント部と異常トラフィック判定部は、ＩＸに接続されているＩＳＰと同数だけ配設される。本実施例の異常トラフィック検知システム２００は、ＩＳＰを４つ備えているので、宛先ＩＰアドレスカウント部と異常トラフィック判定部はそれぞれ４つ存在する。宛先ＩＰアドレスカウント部Ｃ１がＩＳＰ１に対応し、宛先ＩＰアドレスカウント部Ｃ２がＩＳＰ２に対応している。また、宛先ＩＰアドレスカウント部Ｃ３がＩＳＰ３に対応し、宛先ＩＰアドレスカウント部Ｃ４がＩＳＰ４に対応している。
【００３９】
トラフィック分離部２１は、トラフィックを経由ＩＳＰ毎に分離する。具体的には、トラフィック分離部２１は、受信したｓＦｌｏｗパケットに含まれているフレームサンプル（Ｅｔｈｅｒ（登録商標）フレームなど）を、例えば先頭から順に読み込む。トラフィック分離部２１は、読み込んだフレームサンプルから宛先ＭＡＣアドレスと宛先ＶＬＡＮを抽出する。また、トラフィック分離部２１は、読み込んだフレームサンプルから、宛先ＩＰアドレスとフレームサンプルのサイズを抽出する。
【００４０】
そして、トラフィック分離部２１は、抽出したＭＡＣアドレスとＶＬＡＮの組み合わせに対応するＩＳＰを、後述のＩＸ管理情報（ＩＸが管理しているＩＳＰの代表ルータに関する情報）の中から検索する。トラフィック分離部２１は、抽出した宛先ＩＰアドレスとフレームサンプルのサイズを、検索したＩＳＰに対応する宛先ＩＰアドレスカウント部（宛先ＩＰアドレスカウント部Ｃ１〜Ｃ４の何れか）に送信する。
【００４１】
宛先ＩＰアドレスカウント部Ｃ１〜Ｃ４は、それぞれ後述のカウンタテーブル１０１〜１０４（宛先ＩＰアドレスに対応するフレームサンプルの出現回数やサイズなどを格納する情報テーブル）を保持している。
【００４２】
宛先ＩＰアドレスカウント部Ｃ１〜Ｃ４は、トラフィック分離部２１から受信した宛先ＩＰアドレスを、自身が保持するカウンタテーブルから検索する。宛先ＩＰアドレスカウント部Ｃ１〜Ｃ４は、自身が保持するカウンタテーブルに検索対象の宛先ＩＰアドレス（後述のインデックス）が存在しない場合、自身が保持するカウンタテーブルのインデックスに検索対象のインデックスを追加する。
【００４３】
また、宛先ＩＰアドレスカウント部Ｃ１〜Ｃ４は、トラフィック分離部２１から宛先ＩＰアドレスとフレームサンプルのサイズを受信すると、受信した情報を用いて自身が保持するカウンタテーブルを更新する。
【００４４】
異常トラフィック判定部Ｊ１〜Ｊ４は、異常トラフィック解析部２０がＩＸ側から受信したｓＦｌｏｗパケットの内容を解析することによって異常トラフィックの検知を行なう。具体的には、異常トラフィック判定部Ｊ１〜Ｊ４は、それぞれ所定の周期（例えば一定周期）毎に自身が監視するカウンタテーブル１０１〜１０４の各インデックスの「カウンタ」などの値と、自身が予め保持している閾値情報（異常トラフィックの検知判定に用いる閾値の情報）とを比較する。異常トラフィック判定部Ｊ１〜Ｊ４は、この比較結果に基づいて、異常トラフィックを検知する。
【００４５】
つぎに、異常トラフィック検知装置１００の動作手順について説明する。異常トラフィック検知装置１００のトラフィック情報送信部３０は、レイヤ２スイッチ１１を流れるトラフィックをモニタする。そして、トラフィック情報送信部３０は、モニタしたトラフィックに関する情報をｓＦｌｏｗパケットとして異常トラフィック解析部２０に送信する。
【００４６】
ここで、トラフィック情報送信部３０から異常トラフィック解析部２０へｓＦｌｏｗパケットが送られてきた際の、異常トラフィック解析部２０の動作について説明する。まず、ｓＦｌｏｗパケットに含まれているフレームサンプルに基づいて、宛先ＩＰアドレスをカウントする処理について説明し、その後、異常トラフィックの検知処理について説明する。
【００４７】
図４は、宛先ＩＰアドレスのカウント処理手順を示すフローチャートである。異常トラフィック解析部２０は、ＩＸのレイヤ２スイッチ１１から送られてくるｓＦｌｏｗパケットを、トラフィック情報送信部３０を介して受信する（ステップＳ１１０）。
【００４８】
図５は、レイヤ２スイッチから送られてくるｓＦｌｏｗパケットの一例を示す図である。ｓＦｌｏｗパケットは、１〜複数のフレームサンプル（ｓＦｌｏｗパケットサンプル）を含んで構成されており、各フレームサンプルには、「サンプル番号」、「宛先ＭＡＣアドレス」、「宛先ＶＬＡＮ」、「宛先ＩＰアドレス」、「サイズ」が対応付けられている。
【００４９】
「サンプル番号」は、フレームサンプルを識別する情報であり、「宛先ＭＡＣアドレス」は、フレームサンプルの宛先ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ａｄｄｒｅｓｓ）アドレスである。また、「宛先ＶＬＡＮ」は、フレームサンプルの宛先となるＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を識別する情報であり、「宛先ＩＰアドレス」は、フレームサンプルの宛先ＩＰアドレスである。「サイズ」はフレームサンプルのサイズである。
【００５０】
例えば、「サンプル番号」が”１”のフレームサンプルは、「宛先ＭＡＣアドレス」が”００００．００００．０００１”であり、「宛先ＶＬＡＮ」が”１”である。また、このフレームサンプルの「宛先ＩＰアドレス」は”１９２．１６８．１．１”であり、「サイズ」は”１００”である。以下、異常トラフィック解析部２０が、ＩＸのレイヤ２スイッチ１１から図５に示すｓＦｌｏｗパケットを受信した場合の、異常トラフィック解析部２０の動作について説明する。
【００５１】
異常トラフィック解析部２０では、レイヤ２スイッチ１１から送られてくるｓＦｌｏｗパケットを受信すると、このｓＦｌｏｗパケットをトラフィック分離部２１に送る。トラフィック分離部２１は、受信したｓＦｌｏｗパケットに含まれているフレームサンプルを、先頭から順に読み込む。
【００５２】
トラフィック分離部２１は、まず「サンプル番号」が”１”のフレームサンプルを、ｓＦｌｏｗパケットから読み込む（ステップＳ１２０）。トラフィック分離部２１は、読み込んだフレームサンプルから宛先ＭＡＣアドレスと宛先ＶＬＡＮを抽出する。そして、トラフィック分離部２１は、抽出したＭＡＣアドレスとＶＬＡＮの組み合わせに対応（一致）するＩＳＰを、図６に示すＩＸ管理情報の中から検索する。
【００５３】
図６は、ＩＸ管理情報の構成を示す図である。ＩＸ管理情報は、図２に示したＩＳＰ１〜４の代表ルータが持つ「ＭＡＣアドレス」と「宛先ＶＬＡＮ」の一覧（情報テーブル）であり、「ＩＳＰ」、「宛先ＭＡＣアドレス」、「宛先ＶＬＡＮ」が対応付けされている。「ＩＳＰ」は、ＩＳＰを識別する情報である。
【００５４】
本実施例では、「ＩＳＰ」が”１”であるＩＳＰがＩＳＰ１であり、「ＩＳＰ」が”２”であるＩＳＰがＩＳＰ２である。また、「ＩＳＰ」が”３”であるＩＳＰがＩＳＰ３であり、「ＩＳＰ」が”４”であるＩＳＰがＩＳＰ４である。
【００５５】
ＩＸ管理情報の「宛先ＭＡＣアドレス」と「宛先ＶＬＡＮ」は、ＩＳＰ１〜４がＩＸに接続する際に接続点となる代表ルータのインタフェースのＭＡＣアドレスとＶＬＡＮである。「宛先ＭＡＣアドレス」と「宛先ＶＬＡＮ」は、ＩＸが顧客管理（ＩＸに接続するＩＳＰ１〜４の管理）に利用している情報である。
【００５６】
「サンプル番号」が”１”のフレームサンプルは、「宛先ＭＡＣアドレス」が”００００．００００．０００１”であり、「宛先ＶＬＡＮ」が”１”である。トラフィック分離部２１は、この「宛先ＭＡＣアドレス」および「宛先ＶＬＡＮ」に一致するＩＳＰをＩＸ管理情報から検索する。図６のＩＸ管理情報に示すように、「宛先ＭＡＣアドレス」が”００００．００００．０００１”であり、かつ「宛先ＶＬＡＮ」が”１”であるＩＳＰは、ＩＳＰ１である。したがって、トラフィック分離部２１は、「サンプル番号」が”１”のフレームサンプルは、ＩＳＰ１に向かうトラフィックである（経由ＩＳＰがＩＳＰ１である）と判定する。そして、トラフィック分離部２１は、「サンプル番号」が”１”のトラフィックを、ＩＳＰ１に対応付ける。
【００５７】
トラフィック分離部２１は、「サンプル番号」が”１”のフレームサンプルの情報として、「宛先ＩＰアドレス」と「サイズ」をｓＦｌｏｗパケットから抽出する。これにより、トラフィック分離部２１は、「サンプル番号」が”１”のトラフィックを、ＩＳＰ１のトラフィックとしてｓＦｌｏｗパケットから分離（抽出）する（ステップＳ１３０）。トラフィック分離部２１は、「サンプル番号」が”１”のフレームサンプルの情報として、「宛先ＩＰアドレス」の”１９２．１６８．１．１”と、「サイズ」の”１００”を、宛先ＩＰアドレスカウント部Ｃ１（ＩＳＰ１に対応する宛先ＩＰアドレスカウント部）に送信する。宛先ＩＰアドレスカウント部Ｃ１は、トラフィック分離部２１から「宛先ＩＰアドレス」の”１９２．１６８．１．１”と、「サイズ」の”１００”を受信する。
【００５８】
宛先ＩＰアドレスカウント部Ｃ１〜Ｃ４は、図７〜図１０に示すカウンタテーブル１０１〜１０４を保持している。宛先ＩＰアドレスカウント部Ｃ１〜Ｃ４が保持している各カウンタテーブル１０１〜１０４は、それぞれ独立した別々のテーブルである。図７に示すカウンタテーブル１０１は、宛先ＩＰアドレスカウント部Ｃ１のカウンタテーブルであり、図８に示すカウンタテーブル１０２は、宛先ＩＰアドレスカウント部Ｃ２のカウンタテーブルである。また、図９に示すカウンタテーブル１０３は、宛先ＩＰアドレスカウント部Ｃ３のカウンタテーブルであり、図１０に示すカウンタテーブル１０４は、宛先ＩＰアドレスカウント部Ｃ４のカウンタテーブルである。
【００５９】
図７〜図１０に示すカウンタテーブル１０１〜１０４は、「宛先ＩＰアドレス」（インデックス）と、このインデックスに対応するフレームサンプルの出現回数およびサイズの総和を記憶する情報テーブルである。各カウンタテーブル１０１〜１０４では、各インデックスの出現回数（「カウンタ」の値）と各インデックスに対応するフレームサンプルの「サイズ」をインデックス毎に格納するとともに、全インデックスの出現回数の総和（「累計カウンタ」の値）と全インデックスの「累計サイズ」を格納している。
【００６０】
例えば、図７に示すカウンタテーブル１０１は、「宛先ＩＰアドレス」が”１９２．１６８．１．１”の「カウンタ」が”１”であり、「サイズ」が”１００”であることを示している。また、カウンタテーブル１０１は、「宛先ＩＰアドレス」が”１９２．１６８．１．１”の「累計カウンタ」が”１”であり、「累計サイズ」が”１００”であることを示している。
【００６１】
なお、各カウンタテーブル１０１〜１０４では、初期状態でのインデックスは存在していない。宛先ＩＰアドレスカウント部Ｃ１〜Ｃ４は、トラフィック分離部２１から新たな「宛先ＩＰアドレス」を受信した際に、カウンタテーブル１０１〜１０４に新たなインデックスを追加する。
【００６２】
宛先ＩＰアドレスカウント部Ｃ１は、トラフィック分離部２１から受信した「宛先ＩＰアドレス」の”１９２．１６８．１．１”を、自身が保持するカウンタテーブル（図７に示したカウンタテーブル１０１）のインデックスから検索する。
【００６３】
宛先ＩＰアドレスカウント部Ｃ１は、自身が保持するカウンタテーブル１０１に検索対象のインデックスが存在しない場合、自身が保持するカウンタテーブル１０１のインデックスに検索対象のインデックスを追加する。
【００６４】
初期状態ではカウンタテーブル１０１にインデックスが存在しないので、宛先ＩＰアドレスカウント部Ｃ１は、カウンタテーブル１０１のインデックスに”１９２．１６８．１．１”を追加する。
【００６５】
さらに、宛先ＩＰアドレスカウント部Ｃ１は、「カウンタ」の”１”と「サイズ」の”１００”を、追加したインデックスに対応付けてカウンタテーブル１０１に格納する。また、宛先ＩＰアドレスカウント部Ｃ１は、「累計カウンタ」の値を１だけインクリメントして”１”とし、「累計サイズ」を”１００”とする。そして、宛先ＩＰアドレスカウント部Ｃ１は、「累計カウンタ」の”１”と「累計サイズ」の”１００”を、追加したインデックスに対応付けてカウンタテーブル１０１に格納する（ステップＳ１４０）。この時点で、宛先ＩＰアドレスカウント部Ｃ１が保持するカウンタテーブルの状態は、図７に示したカウンタテーブル１０１となる。
【００６６】
つぎに、トラフィック分離部２１は、受信したｓＦｌｏｗパケットに含まれているフレームサンプルの全てに対して宛先ＩＰアドレスをカウントしたか否かを判断する（ステップＳ１５０）。
【００６７】
読み込んだフレームサンプルの全てに対して宛先ＩＰアドレスをカウントしていなければ（ステップＳ１５０、Ｎｏ）、トラフィック分離部２１は、次の「サンプル番号」のフレームサンプルを、ｓＦｌｏｗパケットから読み込む。ここでのトラフィック分離部２１は、「サンプル番号」が”２”のフレームサンプルを、ｓＦｌｏｗパケットから読み込む（ステップＳ１２０）。トラフィック分離部２１は、読み込んだフレームサンプルから宛先ＭＡＣアドレスと宛先ＶＬＡＮを抽出する。
【００６８】
そして、トラフィック分離部２１は、抽出したＭＡＣアドレスとＶＬＡＮの組み合わせに一致するＩＳＰを、図６に示すＩＸ管理情報の中から検索する。「サンプル番号」が”２”のフレームサンプルは、「宛先ＭＡＣアドレス」が”００００．００００．０００２”であり、「宛先ＶＬＡＮ」が”１”である。トラフィック分離部２１は、この「宛先ＭＡＣアドレス」および「宛先ＶＬＡＮ」に一致するＩＳＰをＩＸ管理情報から検索する。図６のＩＸ管理情報に示すように、「宛先ＭＡＣアドレス」が”００００．００００．０００２”であり、かつ「宛先ＶＬＡＮ」が”１”であるＩＳＰは、ＩＳＰ２である。したがって、トラフィック分離部２１は、「サンプル番号」が”２”のフレームサンプルは、ＩＳＰ２に向かうトラフィックである（経由ＩＳＰがＩＳＰ２である）と判定する。そして、トラフィック分離部２１は、「サンプル番号」が”２”のトラフィックを、ＩＳＰ２に対応付ける。
【００６９】
トラフィック分離部２１は、「サンプル番号」が”２”のフレームサンプルの情報として、「宛先ＩＰアドレス」と「サイズ」をｓＦｌｏｗパケットから抽出する。これにより、トラフィック分離部２１は、「サンプル番号」が”２”のトラフィックを、ＩＳＰ２のトラフィックとしてｓＦｌｏｗパケットから分離する（ステップＳ１３０）。トラフィック分離部２１は、「サンプル番号」が”２”のフレームサンプルの情報として、「宛先ＩＰアドレス」の”１９２．１６８．２．１”と、「サイズ」の”１００”を、宛先ＩＰアドレスカウント部Ｃ２（ＩＳＰ２に対応する宛先ＩＰアドレスカウント部）に送信する。
【００７０】
宛先ＩＰアドレスカウント部Ｃ２は、トラフィック分離部２１から「宛先ＩＰアドレス」の”１９２．１６８．２．１”と、「サイズ」の”１００”を受信する。宛先ＩＰアドレスカウント部Ｃ２は、トラフィック分離部２１から受信した「宛先ＩＰアドレス」の”１９２．１６８．２．１”を、自身が保持するカウンタテーブル（図８に示したカウンタテーブル１０２）のインデックスから検索する。
【００７１】
宛先ＩＰアドレスカウント部Ｃ２は、自身が保持するカウンタテーブル１０２に検索対象のインデックスが存在しない場合、自身が保持するカウンタテーブル１０２のインデックスに検索対象のインデックスを追加する。
【００７２】
初期状態ではカウンタテーブル１０２にインデックスが存在しないので、宛先ＩＰアドレスカウント部Ｃ２は、カウンタテーブル１０２のインデックスに”１９２．１６８．２．１”を追加する。
【００７３】
さらに、宛先ＩＰアドレスカウント部Ｃ２は、「カウンタ」の”１”と「サイズ」の”１００”を、追加したインデックスに対応付けてカウンタテーブル１０２に格納する。また、宛先ＩＰアドレスカウント部Ｃ２は、「累計カウンタ」の値を１だけインクリメントして”１”とし、「累計サイズ」を”１００”とする。そして、宛先ＩＰアドレスカウント部Ｃ２は、「累計カウンタ」の”１”と「累計サイズ」の”１００”を、追加したインデックスに対応付けてカウンタテーブル１０２に格納する（ステップＳ１４０）。
【００７４】
つぎに、トラフィック分離部２１は、受信したｓＦｌｏｗパケットに含まれているフレームサンプルの全てに対して宛先ＩＰアドレスをカウントしたか否かを判断する（ステップＳ１５０）。
【００７５】
読み込んだフレームサンプルの全てに対して宛先ＩＰアドレスをカウントしていなければ（ステップＳ１５０、Ｎｏ）、トラフィック分離部２１は、次の「サンプル番号」のフレームサンプルを、ｓＦｌｏｗパケットから読み込む。ここでのトラフィック分離部２１は、「サンプル番号」が”３”のフレームサンプルを、ｓＦｌｏｗパケットから読み込む（ステップＳ１２０）。トラフィック分離部２１は、読み込んだフレームサンプルから宛先ＭＡＣアドレスと宛先ＶＬＡＮを抽出する。
【００７６】
そして、トラフィック分離部２１は、抽出したＭＡＣアドレスとＶＬＡＮの組み合わせに一致するＩＳＰを、図６に示すＩＸ管理情報の中から検索する。「サンプル番号」が”３”のフレームサンプルは、「宛先ＭＡＣアドレス」が”００００．００００．０００３”であり、「宛先ＶＬＡＮ」が”２”である。トラフィック分離部２１は、この「宛先ＭＡＣアドレス」および「宛先ＶＬＡＮ」に一致するＩＳＰをＩＸ管理情報から検索する。図６のＩＸ管理情報に示すように、「宛先ＭＡＣアドレス」が”００００．００００．０００３”であり、かつ「宛先ＶＬＡＮ」が”２”であるＩＳＰは、ＩＳＰ４である。したがって、トラフィック分離部２１は、「サンプル番号」が”３”のフレームサンプルは、ＩＳＰ４に向かうトラフィックである（経由ＩＳＰがＩＳＰ４である）と判定する。そして、トラフィック分離部２１は、「サンプル番号」が”３”のトラフィックを、ＩＳＰ４に対応付ける。
【００７７】
トラフィック分離部２１は、「サンプル番号」が”３”のフレームサンプルの情報として、「宛先ＩＰアドレス」と「サイズ」をｓＦｌｏｗパケットから抽出する。これにより、トラフィック分離部２１は、「サンプル番号」が”３”のトラフィックを、ＩＳＰ２のトラフィックとしてｓＦｌｏｗパケットから分離する（ステップＳ１３０）。トラフィック分離部２１は、「サンプル番号」が”３”のフレームサンプルの情報として、「宛先ＩＰアドレス」の”１９２．１６８．３．１”と、「サイズ」の”１００”を、宛先ＩＰアドレスカウント部Ｃ４（ＩＳＰ４に対応する宛先ＩＰアドレスカウント部）に送信する。
【００７８】
宛先ＩＰアドレスカウント部Ｃ４は、トラフィック分離部２１から「宛先ＩＰアドレス」の”１９２．１６８．３．１”と、「サイズ」の”１００”を受信する。宛先ＩＰアドレスカウント部Ｃ４は、トラフィック分離部２１から受信した「宛先ＩＰアドレス」の”１９２．１６８．３．１”を、自身が保持するカウンタテーブル（図１０に示したカウンタテーブル１０４）のインデックスから検索する。
【００７９】
宛先ＩＰアドレスカウント部Ｃ４は、自身が保持するカウンタテーブル１０４に検索対象のインデックスが存在しない場合、自身が保持するカウンタテーブル１０４のインデックスに検索対象のインデックスを追加する。
【００８０】
初期状態ではカウンタテーブル１０４にインデックスが存在しないので、宛先ＩＰアドレスカウント部Ｃ４は、カウンタテーブル１０４のインデックスに”１９２．１６８．３．１”を追加する。
【００８１】
さらに、宛先ＩＰアドレスカウント部Ｃ４は、「カウンタ」の”１”と「サイズ」の”１００”を、追加したインデックスに対応付けてカウンタテーブル１０４に格納する。また、宛先ＩＰアドレスカウント部Ｃ４は、「累計カウンタ」の値を１だけインクリメントして”１”とし、「累計サイズ」を”１００”とする。そして、宛先ＩＰアドレスカウント部Ｃ４は、「累計カウンタ」の”１”と「累計サイズ」の”１００”を、追加したインデックスに対応付けてカウンタテーブル１０４に格納する（ステップＳ１４０）。この時点で、宛先ＩＰアドレスカウント部Ｃ４が保持するカウンタテーブルの状態は、図１０に示したカウンタテーブル１０４となる。
【００８２】
つぎに、トラフィック分離部２１は、受信したｓＦｌｏｗパケットに含まれているフレームサンプルの全てに対して宛先ＩＰアドレスをカウントしたか否かを判断する（ステップＳ１５０）。
【００８３】
読み込んだフレームサンプルの全てに対して宛先ＩＰアドレスをカウントしていなければ（ステップＳ１５０、Ｎｏ）、トラフィック分離部２１は、次の「サンプル番号」のフレームサンプルを、ｓＦｌｏｗパケットから読み込む。ここでのトラフィック分離部２１は、「サンプル番号」が”４”のフレームサンプルを、ｓＦｌｏｗパケットから読み込む（ステップＳ１２０）。トラフィック分離部２１は、読み込んだフレームサンプルから宛先ＭＡＣアドレスと宛先ＶＬＡＮを抽出する。
【００８４】
そして、トラフィック分離部２１は、抽出したＭＡＣアドレスとＶＬＡＮの組み合わせに一致するＩＳＰを、図６に示すＩＸ管理情報の中から検索する。「サンプル番号」が”４”のフレームサンプルは、「宛先ＭＡＣアドレス」が”００００．００００．０００２”であり、「宛先ＶＬＡＮ」が”１”である。トラフィック分離部２１は、この「宛先ＭＡＣアドレス」および「宛先ＶＬＡＮ」に一致するＩＳＰをＩＸ管理情報から検索する。図６のＩＸ管理情報に示すように、「宛先ＭＡＣアドレス」が”００００．００００．０００２”であり、かつ「宛先ＶＬＡＮ」が”１”であるＩＳＰは、ＩＳＰ２である。したがって、トラフィック分離部２１は、「サンプル番号」が”４”のフレームサンプルは、ＩＳＰ２に向かうトラフィックである（経由ＩＳＰがＩＳＰ２である）と判定する。そして、トラフィック分離部２１は、「サンプル番号」が”４”のトラフィックを、ＩＳＰ２に対応付ける。
【００８５】
トラフィック分離部２１は、「サンプル番号」が”４”のフレームサンプルの情報として、「宛先ＩＰアドレス」と「サイズ」をｓＦｌｏｗパケットから抽出する。これにより、トラフィック分離部２１は、「サンプル番号」が”４”のトラフィックを、ＩＳＰ２のトラフィックとしてｓＦｌｏｗパケットから分離する（ステップＳ１３０）。トラフィック分離部２１は、「サンプル番号」が”４”のフレームサンプルの情報として、「宛先ＩＰアドレス」の”１９２．１６８．２．２”と、「サイズ」の”１００”を、宛先ＩＰアドレスカウント部Ｃ２（ＩＳＰ２に対応する宛先ＩＰアドレスカウント部）に送信する。
【００８６】
宛先ＩＰアドレスカウント部Ｃ２は、トラフィック分離部２１から「宛先ＩＰアドレス」の”１９２．１６８．２．２”と、「サイズ」の”１００”を受信する。宛先ＩＰアドレスカウント部Ｃ２は、トラフィック分離部２１から受信した「宛先ＩＰアドレス」の”１９２．１６８．２．２”を、自身が保持するカウンタテーブル（図８に示したカウンタテーブル１０２）のインデックスから検索する。
【００８７】
宛先ＩＰアドレスカウント部Ｃ２が保持するカウンタテーブル１０２には、検索対象のインデックス”１９２．１６８．２．２”が存在しないので、宛先ＩＰアドレスカウント部Ｃ２は、カウンタテーブル１０２のインデックスに”１９２．１６８．２．２”を追加する。さらに、宛先ＩＰアドレスカウント部Ｃ２は、「カウンタ」の”１”と「サイズ」の”１００”を、追加したインデックスに対応付けてカウンタテーブル１０２に格納（追加）する。また、宛先ＩＰアドレスカウント部Ｃ２は、「累計カウンタ」の値を１だけインクリメントして”２”とし、「累計サイズ」に１００を加算して”２００”とする。そして、宛先ＩＰアドレスカウント部Ｃ２は、「累計カウンタ」の”２”と「累計サイズ」の”２００”を、追加したインデックスに対応付けてカウンタテーブル１０２に格納（上書き）する（ステップＳ１４０）。この時点で、宛先ＩＰアドレスカウント部Ｃ２が保持するカウンタテーブルの状態は、図８に示したカウンタテーブル１０２となる。
【００８８】
つぎに、トラフィック分離部２１は、受信したｓＦｌｏｗパケットに含まれているフレームサンプルの全てに対して宛先ＩＰアドレスをカウントしたか否かを判断する（ステップＳ１５０）。
【００８９】
読み込んだフレームサンプルの全てに対して宛先ＩＰアドレスをカウントしていなければ（ステップＳ１５０、Ｎｏ）、トラフィック分離部２１は、次の「サンプル番号」のフレームサンプルを、ｓＦｌｏｗパケットから読み込む。ここでのトラフィック分離部２１は、「サンプル番号」が”５”のフレームサンプルを、ｓＦｌｏｗパケットから読み込む（ステップＳ１２０）。トラフィック分離部２１は、読み込んだフレームサンプルから宛先ＭＡＣアドレスと宛先ＶＬＡＮを抽出する。
【００９０】
そして、トラフィック分離部２１は、抽出したＭＡＣアドレスとＶＬＡＮの組み合わせに一致するＩＳＰを、図６に示すＩＸ管理情報の中から検索する。「サンプル番号」が”５”のフレームサンプルは、「宛先ＭＡＣアドレス」が”００００．００００．０００３”であり、「宛先ＶＬＡＮ」が”１”である。トラフィック分離部２１は、この「宛先ＭＡＣアドレス」および「宛先ＶＬＡＮ」に一致するＩＳＰをＩＸ管理情報から検索する。図６のＩＸ管理情報に示すように、「宛先ＭＡＣアドレス」が”００００．００００．０００３”であり、かつ「宛先ＶＬＡＮ」が”１”であるＩＳＰは、ＩＳＰ３である。したがって、トラフィック分離部２１は、「サンプル番号」が”５”のフレームサンプルは、ＩＳＰ３に向かうトラフィックである（経由ＩＳＰがＩＳＰ３である）と判定する。そして、トラフィック分離部２１は、「サンプル番号」が”５”のトラフィックを、ＩＳＰ３に対応付ける。
【００９１】
トラフィック分離部２１は、「サンプル番号」が”５”のフレームサンプルの情報として、「宛先ＩＰアドレス」と「サイズ」をｓＦｌｏｗパケットから抽出する。これにより、トラフィック分離部２１は、「サンプル番号」が”５”のトラフィックを、ＩＳＰ３のトラフィックとしてｓＦｌｏｗパケットから分離する（ステップＳ１３０）。トラフィック分離部２１は、「サンプル番号」が”５”のフレームサンプルの情報として、「宛先ＩＰアドレス」の”１９２．１６８．３．２”と、「サイズ」の”１００”を、宛先ＩＰアドレスカウント部Ｃ３（ＩＳＰ３に対応する宛先ＩＰアドレスカウント部）に送信する。
【００９２】
宛先ＩＰアドレスカウント部Ｃ３は、トラフィック分離部２１から「宛先ＩＰアドレス」の”１９２．１６８．３．２”と、「サイズ」の”１００”を受信する。宛先ＩＰアドレスカウント部Ｃ４は、トラフィック分離部２１から受信した「宛先ＩＰアドレス」の”１９２．１６８．３．２”を、自身が保持するカウンタテーブル（図９に示したカウンタテーブル１０３）のインデックスから検索する。
【００９３】
宛先ＩＰアドレスカウント部Ｃ３は、自身が保持するカウンタテーブル１０３に検索対象のインデックスが存在しない場合、自身が保持するカウンタテーブル１０３のインデックスに検索対象のインデックスを追加する。
【００９４】
初期状態ではカウンタテーブル１０３にインデックスが存在しないので、宛先ＩＰアドレスカウント部Ｃ３は、カウンタテーブル１０３のインデックスに”１９２．１６８．３．２”を追加する。
【００９５】
さらに、宛先ＩＰアドレスカウント部Ｃ３は、「カウンタ」の”１”と「サイズ」の”１００”を、追加したインデックスに対応付けてカウンタテーブル１０３に格納する。また、宛先ＩＰアドレスカウント部Ｃ３は、「累計カウンタ」の値を１だけインクリメントして”１”とし、「累計サイズ」を”１００”とする。そして、宛先ＩＰアドレスカウント部Ｃ３は、「累計カウンタ」の”１”と「累計サイズ」の”１００”を、追加したインデックスに対応付けてカウンタテーブル１０３に格納する（ステップＳ１４０）。
【００９６】
つぎに、トラフィック分離部２１は、受信したｓＦｌｏｗパケットに含まれているフレームサンプルの全てに対して宛先ＩＰアドレスをカウントしたか否かを判断する（ステップＳ１５０）。
【００９７】
読み込んだフレームサンプルの全てに対して宛先ＩＰアドレスをカウントしていなければ（ステップＳ１５０、Ｎｏ）、トラフィック分離部２１は、次の「サンプル番号」のフレームサンプルを、ｓＦｌｏｗパケットから読み込む。ここでのトラフィック分離部２１は、「サンプル番号」が”６”のフレームサンプルを、ｓＦｌｏｗパケットから読み込む（ステップＳ１２０）。トラフィック分離部２１は、読み込んだフレームサンプルから宛先ＭＡＣアドレスと宛先ＶＬＡＮを抽出する。
【００９８】
つぎに、トラフィック分離部２１は、抽出したＭＡＣアドレスとＶＬＡＮの組み合わせに一致するＩＳＰを、図６に示すＩＸ管理情報の中から検索する。「サンプル番号」が”６”のフレームサンプルは、「宛先ＭＡＣアドレス」が”００００．００００．０００３”であり、「宛先ＶＬＡＮ」が”１”である。トラフィック分離部２１は、この「宛先ＭＡＣアドレス」および「宛先ＶＬＡＮ」に一致するＩＳＰをＩＸ管理情報から検索する。図６のＩＸ管理情報に示すように、「宛先ＭＡＣアドレス」が”００００．００００．０００３”であり、「宛先ＶＬＡＮ」が”１”であるＩＳＰは、ＩＳＰ３である。したがって、トラフィック分離部２１は、「サンプル番号」が”６”のフレームサンプルは、ＩＳＰ３に向かうトラフィックである（経由ＩＳＰがＩＳＰ３である）と判定する。そして、トラフィック分離部２１は、「サンプル番号」が”６”のトラフィックを、ＩＳＰ３に対応付ける。
【００９９】
トラフィック分離部２１は、「サンプル番号」が”６”のフレームサンプルの情報として、「宛先ＩＰアドレス」と「サイズ」をｓＦｌｏｗパケットから抽出する。これにより、トラフィック分離部２１は、「サンプル番号」が”６”のトラフィックを、ＩＳＰ３のトラフィックとしてｓＦｌｏｗパケットから分離する（ステップＳ１３０）。トラフィック分離部２１は、「サンプル番号」が”６”のフレームサンプルの情報として、「宛先ＩＰアドレス」の”１９２．１６８．３．２”と、「サイズ」の”１００”を、宛先ＩＰアドレスカウント部Ｃ３（ＩＳＰ３に対応する宛先ＩＰアドレスカウント部）に送信する。
【０１００】
宛先ＩＰアドレスカウント部Ｃ３は、トラフィック分離部２１から「宛先ＩＰアドレス」の”１９２．１６８．３．２”と、「サイズ」の”１００”を受信する。宛先ＩＰアドレスカウント部Ｃ３は、トラフィック分離部２１から受信した「宛先ＩＰアドレス」の”１９２．１６８．３．２”を、自身が保持するカウンタテーブル１０３のインデックスから検索する。
【０１０１】
宛先ＩＰアドレスカウント部Ｃ３が保持するカウンタテーブル１０３には、検索対象のインデックス”１９２．１６８．３．２”が存在するので、宛先ＩＰアドレスカウント部Ｃ３は、カウンタテーブル１０３から「宛先ＩＰアドレス」の”１９２．１６８．３．２”を抽出することができる。
【０１０２】
宛先ＩＰアドレスカウント部Ｃ３は、抽出したインデックスに対応するフレームサンプルの「カウンタ」を１だけインクリメントして”２”とし、抽出したインデックスに対応するフレームサンプルの「サイズ」に１００を加算して”２００”とする。そして、宛先ＩＰアドレスカウント部Ｃ３は、「カウンタ」の”２”と「サイズ」の”２００”を、抽出したインデックスに対応付けてカウンタテーブル１０３に格納（上書き）する。
【０１０３】
また、宛先ＩＰアドレスカウント部Ｃ３は、「累計カウンタ」の値を１だけインクリメントして”２”とし、「累計サイズ」に１００を加算して”２００”とする。そして、宛先ＩＰアドレスカウント部Ｃ３は、「累計カウンタ」の”２”と「累計サイズ」の”２００”を、追加したインデックスに対応付けてカウンタテーブル１０３に格納（上書き）する（ステップＳ１４０）。この時点で、宛先ＩＰアドレスカウント部Ｃ４が保持するカウンタテーブルの状態は、図１０に示したカウンタテーブル１０３となる。以後、異常トラフィック解析部２０では、ｓＦｌｏｗパケットを受信する度にステップＳ１２０〜Ｓ１５０の処理を繰り返す。
【０１０４】
トラフィック分離部２１が、受信したｓＦｌｏｗパケットに含まれているフレームサンプルの全てに対して宛先ＩＰアドレスをカウントしたと判断すると（ステップＳ１５０、Ｙｅｓ）、異常トラフィック解析部２０は新たなｓＦｌｏｗパケットの受信待ち状態となる。この後、異常トラフィック判定部Ｊ１〜Ｊ４では、異常トラフィック解析部２０がＩＸから受信したｓＦｌｏｗパケットの内容を解析することによって異常トラフィックの検知を行なう。
【０１０５】
つぎに、異常トラフィック判定部Ｊ１〜Ｊ４による異常トラフィックの検知処理について説明する。図１１は、異常トラフィックの検知処理手順を示すフローチャートである。異常トラフィック判定部Ｊ１〜Ｊ４は、それぞれ所定の周期（例えば一定周期）毎に自身が監視するカウンタテーブル１０１〜１０４の各インデックスの「カウンタ」などの値と、自身が予め保持している閾値情報（カウンタテーブル毎のトラフィックの閾値）とを比較する。
【０１０６】
具体的には、異常トラフィック判定部Ｊ１が、宛先ＩＰアドレスカウント部Ｃ１の保持する各インデックスの「カウンタ」などの値と、予め保持している閾値（図１２に示す閾値情報）とを比較し、異常トラフィック判定部Ｊ２が、宛先ＩＰアドレスカウント部Ｃ２の保持する各インデックスの「カウンタ」などの値と、予め保持している閾値（図１３に示す閾値情報）とを比較する。また、異常トラフィック判定部Ｊ３が、宛先ＩＰアドレスカウント部Ｃ３の保持する各インデックスの「カウンタ」などの値と、予め保持している閾値（図１４に示す閾値情報）とを比較し、異常トラフィック判定部Ｊ４が、宛先ＩＰアドレスカウント部Ｃ４の保持する各インデックスの「カウンタ」などの値と、予め保持している閾値（図１５に示す閾値情報）とを比較する（ステップＳ２１０）。
【０１０７】
図１２は、異常トラフィック判定部Ｊ１が保持している閾値情報の構成を示す図であり、図１３は、異常トラフィック判定部Ｊ２が保持している閾値情報の構成を示す図である。また、図１４は、異常トラフィック判定部Ｊ３が保持している閾値情報の構成を示す図であり、図１５は、異常トラフィック判定部Ｊ４が保持している閾値情報の構成を示す図である。
【０１０８】
図１２〜図１５に示す閾値情報は、「カウンタ閾値」と「累計カウンタ閾値」とが対応付けされた情報テーブルである。「カウンタ閾値」は、宛先ＩＰアドレスカウント部Ｃ１〜Ｃ４によってカウントされたフレームサンプルの「カウンタ」の値（図７〜図１０に示した「カウンタ」の値）と比較される閾値である。「カウンタ閾値」には、フレームサンプルのサイズの閾値である「サイズ閾値」が対応付けられている。「累計カウンタ閾値」は、フレームサンプルの「カウンタ」の値の総和（図７〜図１０に示した「累計カウンタ」の値）と比較される閾値である。「累計カウンタ閾値」には、フレームサンプルの「累計サイズ」の閾値である「累計サイズ閾値」が対応付けられている。
【０１０９】
例えば、図１２に示す閾値情報は、「カウンタ閾値」が”２”であり、「サイズ閾値」が”２００”である。また、「累計カウンタ閾値」が”２”であり、「累計サイズ閾値」が”２００”である。
【０１１０】
異常トラフィック判定部Ｊ１〜Ｊ４は、宛先ＩＰアドレスカウント部Ｃ１〜Ｃ４が保持しているカウンタテーブル１０１〜１０４と、異常トラフィック判定部Ｊ１〜Ｊ４が予め保持している閾値情報との比較結果に基づいて、異常トラフィックを検知する。異常トラフィック判定部Ｊ１〜Ｊ４は、例えばインデックスの「カウンタ」の値または「サイズ」の値が、「カウンタ閾値」または「サイズ閾値」を上回っている場合や、インデックスの「累計カウンタ」の値または「累計サイズ」の値が、「累計カウンタ閾値」または「累計サイズ閾値」を上回っている場合に異常トラフィックであると判断する。
【０１１１】
異常トラフィック判定部Ｊ１〜Ｊ４は、宛先ＩＰアドレスカウント部Ｃ１〜Ｃ４からインデックスの「カウンタ」の値、「サイズ」の値、「累計カウンタ」の値、「累計サイズ」の値を読み込んだ後、宛先ＩＰアドレスカウント部Ｃ１〜Ｃ４にカウンタテーブル１０１〜１０４の値をクリアさせる（ステップＳ２２０）。異常トラフィック判定部Ｊ１〜Ｊ４は、異常トラフィックがあるか否かを判定してから所定時間が経過するまで（ステップＳ２３０、Ｎｏ）、待機状態となる。
【０１１２】
異常トラフィック判定部Ｊ１〜Ｊ４は、前回異常トラフィックがあるか否かを判定してから所定時間が経過すると（ステップＳ２３０、Ｙｅｓ）、自身が監視するカウンタテーブル１０１〜１０４の各インデックスの値と、自身が予め保持している閾値情報とを比較する（ステップＳ２１０）。異常トラフィック判定部Ｊ１〜Ｊ４は、ステップＳ２１０〜Ｓ２３０の処理を繰り返す。
【０１１３】
つぎに、異常トラフィック判定部Ｊ１〜Ｊ４による異常トラフィックの判定処理を詳細に説明する。異常トラフィック判定部Ｊ１は、宛先ＩＰアドレスカウント部Ｃ１が保持するカウンタテーブル１０１から、インデックス”１９２．１６８．１．１”の「カウンタ」の値である”１”と「サイズ」の値である”１００”とを読み込む。
【０１１４】
そして、異常トラフィック判定部Ｊ１は、自身が保持している図１２に示す「カウンタ閾値」の”２”と、宛先ＩＰアドレスカウント部Ｃ１から読み込んだ「カウンタ」の値”１”とを比較する。また、異常トラフィック判定部Ｊ１は、「サイズ閾値」の”２００”と、宛先ＩＰアドレスカウント部Ｃ１から読み込んだサイズ”１００”とを比較する。
【０１１５】
異常トラフィック判定部Ｊ１が宛先ＩＰアドレスカウント部Ｃ１から読み込んだ「カウンタ」の値は、異常トラフィック判定部Ｊ１が保持している「カウンタ閾値」よりも小さい。また、異常トラフィック判定部Ｊ１が宛先ＩＰアドレスカウント部Ｃ１から読み込んだ「サイズ」の値は、異常トラフィック判定部Ｊ１が保持している「サイズ閾値」の値よりも小さい。
【０１１６】
さらに、異常トラフィック判定部Ｊ１は、宛先ＩＰアドレスカウント部Ｃ１が保持するカウンタテーブル１０１から、インデックス”１９２．１６８．１．１”の「累計カウンタ」の値である”１”と、「累計サイズ」の値である”１００”を読み込む。
【０１１７】
そして、異常トラフィック判定部Ｊ１は、自身が保持している図１２に示す「累計カウンタ閾値」の”２”と、宛先ＩＰアドレスカウント部Ｃ１から読み込んだ「累計カウンタ」の”１”とを比較する。また、異常トラフィック判定部Ｊ１は、「累計サイズ閾値」の”２００”と、宛先ＩＰアドレスカウント部Ｃ１から読み込んだ「累計サイズ」の”１００”とを比較する。
【０１１８】
異常トラフィック判定部Ｊ１が宛先ＩＰアドレスカウント部Ｃ１から読み込んだ「累計カウンタ」の値は、異常トラフィック判定部Ｊ１が保持している「累計カウンタ閾値」よりも小さい。また、異常トラフィック判定部Ｊ１が宛先ＩＰアドレスカウント部Ｃ１から読み込んだ「累計サイズ」の値は、異常トラフィック判定部Ｊ１が保持している「累計サイズ閾値」よりも小さい。したがって、ここでの異常トラフィック判定部Ｊ１は、ＩＸでの異常トラフィックは無いと判断する。
【０１１９】
異常トラフィック判定部Ｊ２は、宛先ＩＰアドレスカウント部Ｃ２が保持するカウンタテーブル１０２からインデックス”１９２．１６８．２．１”の「カウンタ」の値である”１”と「サイズ」の値である”１００”とを読み込む。
【０１２０】
そして、異常トラフィック判定部Ｊ２は、自身が保持している図１３に示す「カウンタ閾値」の”２”と、宛先ＩＰアドレスカウント部Ｃ２から読み込んだ「カウンタ」の値”１”とを比較する。また、異常トラフィック判定部Ｊ１は、「サイズ閾値」の”２００”と、宛先ＩＰアドレスカウント部Ｃ１から読み込んだ「サイズ」の値”１００”とを比較する。
【０１２１】
異常トラフィック判定部Ｊ２が宛先ＩＰアドレスカウント部Ｃ２から読み込んだインデックス”１９２．１６８．２．１”の「カウンタ」の値は、異常トラフィック判定部Ｊ２が保持している「カウンタ閾値」よりも小さい。また、異常トラフィック判定部Ｊ２が宛先ＩＰアドレスカウント部Ｃ２から読み込んだインデックス”１９２．１６８．２．１”の「サイズ」の値は、異常トラフィック判定部Ｊ１が保持している「サイズ閾値」よりも小さい。
【０１２２】
さらに、異常トラフィック判定部Ｊ２は、宛先ＩＰアドレスカウント部Ｃ２が保持するカウンタテーブル１０２からインデックス”１９２．１６８．２．２” の「カウンタ」の値である”２”と「サイズ」の値である”１００”とを読み込む。
【０１２３】
そして、異常トラフィック判定部Ｊ２は、自身が保持している図１３に示す「カウンタ閾値」の”２”と、宛先ＩＰアドレスカウント部Ｃ２から読み込んだ「カウンタ」の値”１”とを比較する。また、異常トラフィック判定部Ｊ２は、「サイズ閾値」の”２００”と、宛先ＩＰアドレスカウント部Ｃ２から読み込んだ「サイズ」の値”１００”とを比較する。
【０１２４】
異常トラフィック判定部Ｊ２が宛先ＩＰアドレスカウント部Ｃ２から読み込んだインデックス”１９２．１６８．２．２”の「カウンタ」の値は、異常トラフィック判定部Ｊ２が保持している「カウンタ閾値」よりも小さい。また、異常トラフィック判定部Ｊ２が宛先ＩＰアドレスカウント部Ｃ２から読み込んだインデックス”１９２．１６８．２．２”の「サイズ」は、異常トラフィック判定部Ｊ１が保持している「サイズ閾値」よりも小さい。
【０１２５】
さらに、異常トラフィック判定部Ｊ２は、宛先ＩＰアドレスカウント部Ｃ２が保持するカウンタテーブル１０２から、インデックス”１９２．１６８．２．１”およびインデックス”１９２．１６８．２．２”の「累計カウンタ」の値である”２”と「累計サイズ」の値である”２００”を読み込む。
【０１２６】
そして、異常トラフィック判定部Ｊ２は、自身が保持している図１２に示す「累計カウンタ閾値」の”２”と、宛先ＩＰアドレスカウント部Ｃ２から読み込んだ「累計カウンタ」の”２”とを比較する。また、異常トラフィック判定部Ｊ２は、「累計サイズ閾値」の”２００”と、宛先ＩＰアドレスカウント部Ｃ２から読み込んだ「累計サイズ」の”２００”とを比較する。
【０１２７】
異常トラフィック判定部Ｊ２が宛先ＩＰアドレスカウント部Ｃ２から読み込んだ「累計カウンタ」の値は、異常トラフィック判定部Ｊ２が保持している「累計カウンタ閾値」の値以上である。また、異常トラフィック判定部Ｊ２が宛先ＩＰアドレスカウント部Ｃ２から読み込んだ「累計サイズ」の値は、異常トラフィック判定部Ｊ２が保持している「累計サイズ閾値」の値以上である。したがって、ここでの異常トラフィック判定部Ｊ２は、ＩＸで異常トラフィックが発生したと判断（異常トラフィックを検知）する。このとき、異常トラフィック判定部Ｊ２は、異常トラフィックの内容が「ＩＳＰ２へのパケット数およびパケットサイズの超過」であると判断する。
【０１２８】
異常トラフィック判定部Ｊ３は、宛先ＩＰアドレスカウント部Ｃ３が保持するカウンタテーブル１０３から、インデックス”１９２．１６８．３．２”の「カウンタ」の値”２”と「サイズ」の”２００”を読み込む。
【０１２９】
そして、異常トラフィック判定部Ｊ３は、自身が保持している図１４に示す「カウンタ閾値」の”２”と、宛先ＩＰアドレスカウント部Ｃ３から読み込んだ「カウンタ」の値”２”とを比較する。また、異常トラフィック判定部Ｊ３は、「サイズ閾値」の“２００”と、宛先ＩＰアドレスカウント部Ｃ３から読み込んだ「サイズ」の”２００”とを比較する。
【０１３０】
異常トラフィック判定部Ｊ３が宛先ＩＰアドレスカウント部Ｃ３から読み込んだインデックス”１９２．１６８．３．２”の「カウンタ」の値は、異常トラフィック判定部Ｊ３が保持している「カウンタ閾値」の値以上である。また、異常トラフィック判定部Ｊ３が宛先ＩＰアドレスカウント部Ｃ３から読み込んだインデックス”１９２．１６８．３．２”の「サイズ」の値は、異常トラフィック判定部Ｊ３が保持している「サイズ閾値」の値以上である。
【０１３１】
さらに、異常トラフィック判定部Ｊ３は、宛先ＩＰアドレスカウント部Ｃ３が保持するカウンタテーブル１０３から、インデックス”１９２．１６８．３．２”の「累計カウンタ」の値である”２”と「累計サイズ」の値である”２００”を読み込む。
【０１３２】
そして、異常トラフィック判定部Ｊ３は、自身が保持している図１４に示す「累計カウンタ閾値」の”１０”と、宛先ＩＰアドレスカウント部Ｃ３から読み込んだ「累計カウンタ」の”２”とを比較する。また、異常トラフィック判定部Ｊ３は、「累計サイズ閾値」の”８００”と、宛先ＩＰアドレスカウント部Ｃ３から読み込んだ「累計サイズ」の”２００”とを比較する。
【０１３３】
異常トラフィック判定部Ｊ３が宛先ＩＰアドレスカウント部Ｃ３から読み込んだ「累計カウンタ」の値は、異常トラフィック判定部Ｊ３が保持している「累計カウンタ閾値」よりも小さい。また、異常トラフィック判定部Ｊ３が宛先ＩＰアドレスカウント部Ｃ３から読み込んだ「累計サイズ」の値は、異常トラフィック判定部Ｊ３が保持している「累計サイズ閾値」の値よりも小さい。
【０１３４】
したがって、ここでの異常トラフィック判定部Ｊ３は、ＩＸで異常トラフィックが発生したと判断する。このとき、異常トラフィック判定部Ｊ３は、異常トラフィックの内容が「インデックス”１９２．１６８．３．２”宛てのパケット数およびパケットサイズの超過」であると判断する。
【０１３５】
異常トラフィック判定部Ｊ４は、宛先ＩＰアドレスカウント部Ｃ４が保持するカウンタテーブル１０４から、インデックス”１９２．１６８．３．１”の「カウンタ」の値である”１”と「サイズ」の値である”１００”とを読み込む。
【０１３６】
そして、異常トラフィック判定部Ｊ４は、自身が保持している図１５に示す「カウンタ閾値」の”５”と、宛先ＩＰアドレスカウント部Ｃ４から読み込んだ「カウンタ」の値”１”とを比較する。また、異常トラフィック判定部Ｊ４は、「サイズ閾値」の「５００」と、宛先ＩＰアドレスカウント部Ｃ４から読み込んだ「サイズ」の”１００”とを比較する。
【０１３７】
異常トラフィック判定部Ｊ４が宛先ＩＰアドレスカウント部Ｃ４から読み込んだ「カウンタ」の値は、異常トラフィック判定部Ｊ４が保持している「カウンタ閾値」よりも小さい。また、異常トラフィック判定部Ｊ４が宛先ＩＰアドレスカウント部Ｃ４から読み込んだ「サイズ」の値は、異常トラフィック判定部Ｊ４が保持している「サイズ閾値」よりも小さい。
【０１３８】
さらに、異常トラフィック判定部Ｊ４は、宛先ＩＰアドレスカウント部Ｃ４が保持するカウンタテーブル１０４から、インデックス”１９２．１６８．３．１”の「累計カウンタ」の値である”１”と「累計サイズ」の値である”１００”を読み込む。
【０１３９】
そして、異常トラフィック判定部Ｊ４は、自身が保持している図１５に示す「累計カウンタ閾値」の”５”と、宛先ＩＰアドレスカウント部Ｃ４から読み込んだ「累計カウンタ」の値”１”とを比較する。また、異常トラフィック判定部Ｊ４は、「累計サイズ閾値」の「５００」と、宛先ＩＰアドレスカウント部Ｃ４から読み込んだ「累計サイズ」の値”１００”とを比較する。
【０１４０】
異常トラフィック判定部Ｊ４が宛先ＩＰアドレスカウント部Ｃ４から読み込んだ「累計カウンタ」の値は、異常トラフィック判定部Ｊ４が保持している「累計カウンタ閾値」よりも小さい。また、異常トラフィック判定部Ｊ４が宛先ＩＰアドレスカウント部Ｃ４から読み込んだ「累計サイズ」の値は、異常トラフィック判定部Ｊ４が保持している「累計サイズ閾値」よりも小さい。したがって、ここでの異常トラフィック判定部Ｊ４は、ＩＸでの異常トラフィックは無いと判断する。
【０１４１】
換言すると、宛先ＩＰアドレスカウント部Ｃ１〜Ｃ４から読み込んだインデックスの「カウンタ」の値、このインデックスの「サイズ」の値、宛先ＩＰアドレスカウント部Ｃ１〜Ｃ４から読み込んだインデックスの「累計カウンタ」の値、このインデックスの「累計サイズ」の値が、それぞれ「カウンタ閾値」、「サイズ閾値」、「累計カウンタ閾値」、累計サイズ閾値」の値よりも小さい場合に、異常トラフィック判定部Ｊ１〜Ｊ４は、ＩＸでの異常トラフィックは無いと判断する。
【０１４２】
また、宛先ＩＰアドレスカウント部Ｃ１〜Ｃ４から読み込んだインデックスの「カウンタ」の値が、「カウンタ閾値」の値以上である場合に、異常トラフィック判定部Ｊ１〜Ｊ４は、ＩＸで異常トラフィックが発生したと判断する。この場合、異常トラフィック判定部Ｊ１〜Ｊ４は、それぞれ図７〜図１０に示すカウンタテーブル１０１〜１０４に格納されているインデックスのうち、異常トラフィックの検知対象となっているインデックス宛てのパケット数の超過であると判断する。
【０１４３】
また、宛先ＩＰアドレスカウント部Ｃ１〜Ｃ４から読み込んだインデックスの「サイズ」の値が、「サイズ閾値」の値以上である場合に、異常トラフィック判定部Ｊ１〜Ｊ４は、ＩＸで異常トラフィックが発生したと判断する。この場合、異常トラフィック判定部Ｊ１〜Ｊ４は、それぞれ図７〜図１０に示すカウンタテーブル１０１〜１０４に格納されているインデックスのうち、異常トラフィックの検知対象となっているインデックス宛てのパケット量の超過であると判断する。
【０１４４】
なお、異常トラフィック判定部Ｊ１〜Ｊ４は、インデックスの「カウンタ」の値が「カウンタ閾値」の値以上であり、かつインデックスの「サイズ」の値が、「サイズ閾値」の値以上である場合に、ＩＸで異常トラフィックが発生したと判断してもよい。この場合も、異常トラフィック判定部Ｊ１〜Ｊ４は、それぞれ図７〜図１０に示すカウンタテーブル１０１〜１０４に格納されているインデックスのうち、異常トラフィックの検知対象となっているインデックス宛てのパケット数およびパケット量の超過であると判断する。
【０１４５】
また、宛先ＩＰアドレスカウント部Ｃ１〜Ｃ４から読み込んだインデックスの「累計カウンタ」の値が、「累計カウンタ閾値」の値以上である場合に、異常トラフィック判定部Ｊ１〜Ｊ４は、ＩＸで異常トラフィックが発生したと判断する。この場合、異常トラフィック判定部Ｊ１〜Ｊ４は、自身（異常トラフィックの発生と判断した異常トラフィック判定部）に対応するＩＳＰ（ＩＳＰ１〜４の何れか）のパケット数が超過したと判断する。
【０１４６】
また、宛先ＩＰアドレスカウント部Ｃ１〜Ｃ４から読み込んだインデックスの「累計サイズ」の値が、「累計サイズ閾値」の値以上である場合に、異常トラフィック判定部Ｊ１〜Ｊ４は、ＩＸで異常トラフィックが発生したと判断する。この場合、異常トラフィック判定部Ｊ１〜Ｊ４は、自身に対応するＩＳＰのパケット量が超過したと判断する。
【０１４７】
なお、異常トラフィック判定部Ｊ１〜Ｊ４は、インデックスの「累計カウンタ」の値が「累計カウンタ閾値」の値以上であり、かつインデックスの「累計サイズ」の値が、「累計サイズ閾値」の値以上である場合に、ＩＸで異常トラフィックが発生したと判断してもよい。この場合も、異常トラフィック判定部Ｊ１〜Ｊ４は、自身に対応するＩＳＰのパケット数およびパケット量が超過したと判断する。
【０１４８】
また、異常トラフィック判定部Ｊ１〜Ｊ４は、「カウンタ」の値が「カウンタ閾値」の値以上であり、かつ「サイズ」の値が「サイズ閾値」の値以上であり、かつ「累計カウンタ」の値が「累計カウンタ閾値」の値以上であり、かつ「累計サイズ」の値が、「累計サイズ閾値」の値以上である場合に、ＩＸで異常トラフィックが発生したと判断してもよい。
【０１４９】
なお、異常トラフィック判定部Ｊ１〜Ｊ４による異常トラフィックの判定は、それぞれ何れのタイミングで行なってもよい。異常トラフィック判定部Ｊ１〜Ｊ４で同時に異常トラフィックの判定を行なってもよいし、異常トラフィック判定部Ｊ１〜Ｊ４で順番に異常トラフィックの判定を行なってもよい。
【０１５０】
つぎに、本実施例の異常トラフィック検知システム２００でトラフィック量を算出する場合の計算量と、従来の通信システムでトラフィック量を算出する場合の計算量と、について説明する。以下では、異常トラフィック検知システム２００が４つのＩＳＰを備える場合の計算量と、従来の計算量とを比較して、各計算量の違いを説明する。
【０１５１】
図１６は、異常トラフィック検知システムでトラフィック量を算出する場合の計算量を説明するための図であり、図１７は、従来の通信システムでトラフィック量を算出する場合の計算量を説明するための図である。
【０１５２】
本実施例の異常トラフィック検知システム２００では、宛先ＩＰアドレスカウント部Ｃ１〜Ｃ４に、それぞれのカウンタテーブルを保持するための予め決められたサイズがＮのメモリを確保しておく。そして、確保した各メモリ上に、それぞれのカウンタテーブル１０１〜１０４を配置する。換言すると、異常トラフィック検知システム２００では、異常トラフィック解析部２０内に確保しておいたメモリ領域を、ＩＳＰと同数の４つに分割し、各メモリ領域でカウンタテーブル１０１〜１０４を記憶する。そして、各宛先ＩＰアドレスカウント部Ｃ１〜Ｃ４に設けられたメモリ（カウンタテーブル１０１〜１０４）へは、宛先ＩＰアドレスをインデックスとしたリストが格納されていくものとする。
【０１５３】
各カウンタテーブル１０１〜１０４では、インデックスとそのカウンタ値を保持しているが、ここではトラフィック量の計算量の一例としてインデックス検索の計算量を比較する場合について説明する。したがって、以下の説明ではインデックスを保持するメモリ領域に対してインデックス検索の計算量を算出し、カウンタ値が格納されるメモリ領域についての計算量は考慮しない。
【０１５４】
図１６に示すように、異常トラフィック検知システム２００では、レイヤ２スイッチ１１が所定の宛先ＩＰアドレスを含むｓＦ１ｏｗパケットを送信すると、まずトラフィック分離部２１によって検索対象となるカウンタテーブルを決定する。検索対象となるカウンタテーブルを決定する際に必要な宛先ＩＰアドレスの比較回数（計算回数）の期待値は２である。したがって、ＩＰパケットのサンプルをｍ（ｍは自然数）個受信した場合の比較回数の期待値は２ｍである。
【０１５５】
トラフィック分離部２１は、検索対象となるカウンタテーブルを決定した後、サイズがＮのメモリ（インデックス）から宛先ＩＰアドレスを検索する。その際、線形サーチによって宛先ＩＰアドレスの検索を行った場合の比較回数の期待値はＮ／２である。以上より、ＩＰパケットのサンプルをｍ個受信した場合の比較回数の期待値は２ｍ＋Ｎｍ／２である。
【０１５６】
一方、図１７に示すように、従来の通信システムは、トラフィック分離部を有していないので、予め確保しておいたメモリにそのまま１つのカウンタテーブルを配置する。従来の通信システムでは、レイヤ２スイッチ１１が所定の宛先ＩＰアドレスを含むｓＦ１ｏｗパケットを受信すると、サイズが４Ｎのインデックスから宛先ＩＰアドレスを検索する。
【０１５７】
観測される宛先ＩＰアドレスの種類は、トラフィック分離部２１の有無に依存しないので、通信システム内（異常トラフィックを解析する装置）に合計メモリサイズとして４Ｎのメモリ領域を確保しておく。その際、線形サーチによって宛先ＩＰアドレスの検索を行った場合の比較回数の期待値は２Ｎである。従って、ＩＰパケットのサンプルをｍ個受信した場合の比較回数の期待値は２Ｎｍである。
【０１５８】
レイヤ２スイッチ１１に接続されるＩＳＰの数をｐ（ｐは自然数）個とすると、従来の通信システム（トラフィック分離部２１を持たない通信システム）では、（ｐＮｍ／２）回の比較処理が必要である。一方、本実施例の異常トラフィック検知システム２００では、比較処理が（（ｐ＋Ｎ）ｍ／２）回となる。したがって、ｐの値とＮの値が大きくなるほど、異常トラフィック検知システム２００がトラフィック量を計算する際の負荷の軽減度が大きくなる。以上より、異常トラフィック検知システム２００によってトラフィック量を算出する場合の方が、従来の通信システムによってトラフィック量を算出する場合よりも、トラフィック量を計算する際の負荷が軽減されることがわかる。
【０１５９】
なお、本実施例では、異常トラフィック検知システム２００が１つのレイヤ２スイッチ１１を備える場合について説明したが、異常トラフィック検知システム２００では、ＩＸの規模に応じてレイヤ２スイッチ１１を複数台配設してもよい。
【０１６０】
また、本実施例では、異常トラフィック検知システム２００が４つのＩＳＰ１〜４を備える場合について説明したが、異常トラフィック検知システム２００がＩＳＰを３つ以下または５つ以上備える構成としてもよい。
【０１６１】
また、本実施例では、レイヤ２スイッチ１１がＩＳＰ１〜４と接続する場合について説明したが、レイヤ２スイッチ１１がＩＤＣ（インターネットデータセンター）やパーソナルコンピュータなどの他の通信装置に接続する構成としてもよい。
【０１６２】
なお、本実施例では、ｓＦｌｏｗパケットを用いて異常トラフィックを検知したが、レイヤ２スイッチ１１を流れるトラフィックに関する情報を含んでいれば、ｓＦｌｏｗパケット以外のパケットを用いて異常トラフィックを検知してもよい。
【０１６３】
なお、本実施例では、異常トラフィック解析部２０が、宛先ＩＰアドレスカウント部Ｃ１〜Ｃ４と同数の異常トラフィック判定部Ｊ１〜Ｊ４を有する場合について説明したが、異常トラフィック判定部は３つ以下であってもよい。この場合、１つの異常トラフィック判定部が複数の宛先ＩＰアドレスカウント部に対して異常トラフィックを検知する。
【０１６４】
なお、本実施例では、異常トラフィック検知装置１００のトラフィック情報送信部３０がレイヤ２スイッチ１１を流れるトラフィックをモニタしてｓＦｌｏｗパケットを異常トラフィック解析部２０に送信する場合について説明したが、レイヤ２スイッチ１１が直接異常トラフィック解析部２０にｓＦｌｏｗパケットを送信してもよい。この場合、異常トラフィック検知装置１００は、トラフィック情報送信部３０を備える必要はない。また、この場合、レイヤ２スイッチ１１と異常トラフィック解析部２０を接続しておく。
【０１６５】
このように実施例１によれば、ｓＦｌｏｗパケットで「宛先ＭＡＣアドレス」と「宛先ＶＬＡＮ」が「宛先ＩＰアドレス」に対応付けられており、ＩＸ管理情報で「宛先ＭＡＣアドレス」と「宛先ＶＬＡＮ」がＩＳＰに対応付けられているので、宛先ＩＰアドレスに到達するために最初に経由するＩＳＰの特定を容易に行なえる。
【０１６６】
また、経由ＩＳＰ毎にトラフィックを分離してカウントしているので、異常トラフィックの発生したＩＳＰを容易に特定することが可能となる。これにより、異常トラフィックの発生したＩＳＰに異常トラフィックの発生したことを容易に通知することが可能となる。
【０１６７】
また、経由ＩＳＰ毎にトラフィックを分離した後に、宛先ＩＰアドレスの分布計測（カウント）を行うので、記憶しておく宛先ＩＰアドレス（トラフィック）の分布範囲（記憶領域）が狭くなる。これにより、検索対象となるインデックスの数が少なくなるので、宛先ＩＰアドレスの検索処理を行なう際の処理負荷が、従来の検索方法の場合よりも軽減される。したがって、簡易な構成で効率良く迅速に異常トラフィックを検知することが可能となる。
【実施例２】
【０１６８】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に示すように、（１）システム構成等、（２）プログラム、にそれぞれ区分けして異なる実施例を説明する。
【０１６９】
（１）システム構成等
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。また、実施例１で説明した異常トラフィック検知装置１００は、レイヤ２スイッチ１１に組み込むこともできる。
【０１７０】
（２）プログラム
なお、実施例１で説明した異常トラフィックの検知方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【産業上の利用可能性】
【０１７１】
以上のように、本発明に係る異常トラフィック検知装置、異常トラフィック検知方法および異常トラフィック検知プログラムは、ＩＸでの異常トラフィックの検知に適している。
【図面の簡単な説明】
【０１７２】
【図１】実施例１に係る異常トラフィック検知の概念を説明するための説明図である。
【図２】実施例１に係る異常トラフィック検知装置を備えた異常トラフィック検知システムの構成を示す図である。
【図３】異常トラフィック解析部の構成を示すブロック図である。
【図４】宛先ＩＰアドレスのカウント処理手順を示すフローチャートである。
【図５】レイヤ２スイッチから送られてくるｓＦｌｏｗパケットの一例を示す図である。
【図６】ＩＸ管理情報の構成を示す図である。
【図７】カウンタテーブル（１）の構成を示す図である。
【図８】カウンタテーブル（２）の構成を示す図である。
【図９】カウンタテーブル（３）の構成を示す図である。
【図１０】カウンタテーブル（４）の構成を示す図である。
【図１１】異常トラフィックの検知処理手順を示すフローチャートである。
【図１２】閾値情報（１）の構成を示す図である。
【図１３】閾値情報（２）の構成を示す図である。
【図１４】閾値情報（３）の構成を示す図である。
【図１５】閾値情報（４）の構成を示す図である。
【図１６】異常トラフィック検知システムでトラフィック量を算出する場合の計算量を説明するための図である。
【図１７】従来の通信システムでトラフィック量を算出する場合の計算量を説明するための図である。
【符号の説明】
【０１７３】
１〜４  ＩＳＰ
１１  レイヤ２スイッチ
２０  異常トラフィック解析部
２１  トラフィック分離部
３０  トラフィック情報送信部
５１，５２  ｓＦｌｏｗパケット
１００  異常トラフィック検知装置
１０１〜１０４  カウンタテーブル
２００  異常トラフィック検知システム
Ｃ１〜Ｃ４  アドレスカウント部
Ｊ１〜Ｊ４  異常トラフィック判定部
【図１】
0004667437.tif 000002
【図２】
0004667437.tif 000003
【図３】
0004667437.tif 000004
【図４】
0004667437.tif 000005
【図５】
0004667437.tif 000006
【図６】
0004667437.tif 000007
【図７】
0004667437.tif 000008
【図８】
0004667437.tif 000009
【図９】
0004667437.tif 000010
【図１０】
0004667437.tif 000011
【図１１】
0004667437.tif 000012
【図１２】
0004667437.tif 000013
【図１３】
0004667437.tif 000014
【図１４】
0004667437.tif 000015
【図１５】
0004667437.tif 000016
【図１６】
0004667437.tif 000017
【図１７】
0004667437.tif 000018