(57)【要約】【課題】  多量のトラヒックが流れる高速なネットワークにおいても攻撃トラヒックや過大トラヒックのような不正なトラヒックをパケットヘッダのみの情報で高速に推定可能なトラヒック分析装置を提供する。【解決手段】  パケット送受信部１０５と、パケット送受信部１０５によって得られたパケット中の任意の一つ又は複数の項目の組み合わせ１０８の項目の値が同一であるパケットの数を積算するパケット数積算部１２０と、前記組み合わせに含まれない項目の異なる値の出現数を積算する異なり数積算部１２１と、積算したパケットの数が指定のしきい値を超えたときに、前記任意の一つ又は複数の組み合わせの項目の値と、前記異なる値の出現数と、前記しきい値の関係から前記しきい値を超えたパケットの特性を推定するパケット推定部１２２とを備えるトラヒック分析装置１０１。【選択図】  図１
2008136012.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを流れるパケットのトラヒックを分析するトラヒック分析装置において、
前記ネットワークを流れるパケットを送受信するパケット送受信部と、
前記パケット送受信部が受信したパケット中の一つ又は複数の項目で構成される第１の項目グループに含まれる各項目の値が同一であるパケットの数を積算するパケット数積算部と、
前記第１の項目グループに含まれる各項目の値が同一であるパケット中の項目であって、前記第１の項目グループに含まれない項目の値のうち、異なる値の種類を示す異なり数を積算する異なり数積算部と、
前記パケット数積算部によって積算されたパケット数の積算値を記憶する積算値記憶領域と、パケットの項目の値を記憶していることを識別する情報または前記異なり数を記憶していることを識別する情報を記憶する第１の記憶領域と、前記第１の記憶領域に記憶された情報に対応する情報を記憶する第２の記憶領域であって、前記第１の記憶領域に、パケットの項目を記憶していることを識別する情報が記憶されている場合は、各項目領域に、前記各項目の値を記憶し、前記第１の記憶領域に、異なり数を記憶していることを識別する情報が記憶されている場合は、各項目領域に前記異なり数積算部によって積算された異なり数を記憶する第２の記憶領域とを少なくとも有する分析情報を複数記憶する分析情報記憶部と、
前記パケット数積算部が積算したパケット数が所定のしきい値を超えた場合に、前記パケット数と、前記第１の項目グループに含まれる各項目の値と、前記異なり数積算部が積算した異なり数と、前記しきい値に基づいて、前記しきい値を超えたパケットの特性を推定するパケット推定部とを備えることを特徴とするトラヒック分析装置。
【請求項２】
前記パケット推定部は、
前記第１の項目グループとは異なる任意の一つ又は複数の項目の組み合わせで構成される第２の項目グループに含まれる各項目の値と、前記第２の項目グループおける前記異なり数積算部が積算した異なり数とに基づき、
前記しきい値を超えた数のパケットの特性を推定することを特徴とする請求項１のトラヒック分析装置。
【請求項３】
前記異なり数積算部は、
前記パケット送受信部が受信したパケット中の任意の一つ又は複数の項目の組み合わせで構成される項目グループに含まれない項目の異なり数のカウント処理を、
前記項目グループに含まれない項目を加えた項目グループについて、前記パケット送受信部が受信したパケット中の任意の一つ又は複数の項目の値が同一であるパケットが初めて出現した場合に、
行うことを特徴とする請求項１のトラヒック分析装置。
【請求項４】
前記パケット数積算部は、
前記分析情報記憶部に含まれる分析情報を所定の数だけ使用し、
新たな項目グループのために使用する前記分析情報記憶部に含まれる分析情報の候補が、既に他の項目グループにより使用中であった場合、前記他の項目グループにより使用されている分析情報を破棄して、前記新たな項目グループのための分析情報として使用することを特徴とする請求項１記載のトラヒック分析装置。
【請求項５】
前記パケット数積算部は、
前記新たな項目グループのために使用する前記分析情報記憶部の候補を複数選択し、前記候補が全て他の項目グループにより使用中であった場合に、前記候補の中の前記積算値記憶手段により記憶された値が最小のものを選択することを特徴とする請求項４記載のトラヒック分析装置。
【請求項６】
前記第１の項目グループに含まれる項目が宛先アドレスと宛先ポート番号であって、該項目の値が同一のパケットに対して前記パケット数積算部による積算結果が所定のしきい値を超えたとき、
前記パケット推定部は、
前記第１の項目グループに含まれない項目である送信元アドレスの前記異なり数積算部による異なり数の前記しきい値に対する比率が所定の値以上の場合に、前記パケットがＤＤｏＳ攻撃と推定することを特徴とする請求項１記載のトラヒック分析装置。
【請求項７】
前記第１の項目グループに含まれる項目が送信元アドレスと宛先ポート番号であって、該項目の値が同一のパケットに対して前記パケット数積算部による積算結果が所定のしきい値を超えたとき、
前記パケット推定部は、
前記第１の項目グループに含まれない項目である宛先アドレスの前記異なり数積算部による異なり数の前記しきい値に対する比率が指定の値以上の場合に、前記パケットがネットワークスキャンと推定することを特徴とする請求項1記載のトラヒック分析装置。
【請求項８】
前記第１の項目グループに含まれる項目が宛先アドレスと宛先ポート番号であって、該項目の値が同一のパケットに対して前記パケット数積算部による積算結果が所定のしきい値を超えたとき、
前記パケット推定部は、
前記積算結果が前記所定のしきい値を超えたパケットの宛先アドレスと同一である送信元アドレスで構成される前記第２の項目グループを検出するとともに、
前記第２の項目グループに含まれない宛先アドレス、送信元ポート番号、宛先アドレスのそれぞれの前記異なり数積算部による積算値が所定の比率であった場合に、前記第２の項目グループに含まれる送信元アドレスを持つ装置は、Ｐ２Ｐファイル交換を行っていると推定することを特徴とする請求項１記載のトラヒック分析装置。
【請求項９】
前記パケット送受信部は、サンプリングしたパケットを前記ネットワークから受信することを特徴とする請求項１記載のトラヒック分析装置。
【請求項１０】
ネットワークを流れるパケットのトラヒックを分析するトラヒック分析装置におけるトラヒック分析方法であって、
前記ネットワークを流れるパケットを受信し、
該受信したパケット中の任意の一つ又は複数の項目の組み合わせで構成される第１の項目グループに含まれる各項目の値が同一であるパケット数を積算し、
前記第１の項目グループに含まれる各項目の値が同一であるパケット中の項目であって、前記第１の項目グループに含まれない項目の値のうち、異なる値の種類を示す異なり数を積算し、
前記パケット数の積算値が所定のしきい値を超えたときに、前記パケット数と、前記第１の項目グループに含まれる各項目の値と、前記異なり数の積算値と、前記しきい値に基づいて、前記しきい値を超えたパケットの特性を推定することを特徴とするトラヒック分析方法。
【請求項１１】
請求項１０のトラヒック分析方法であって、
前記第１の項目グループとは異なる任意の一つ又は複数の項目の組み合わせで構成される第２の項目グループに含まれる各項目の値と、
前記第２の項目グループおいて、前記第２の項目グループに含まれない項目の異なり数の積算値とをさらに含めて、
前記しきい値を超えた数のパケットの特性を推定することを特徴とするトラヒック分析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野は、ネットワーク上のトラヒックの特性を分析するトラヒック分析装置および分析方法に関し、特に大量のトラヒックの中から過大な帯域を占めるトラヒックを効率よく検出し、その特性を示すことができるトラヒック分析装置および分析方法に関する。
【背景技術】
【０００２】
インターネットやＬＡＮの利用が普及するとともに、それらのネットワークの安定運用がますます重要となっている。特にインターネットにおいては不特定多数のユーザが様々なアプリケーションを利用する。そのため、インターネットサービスプロバイダが想定する以上の過負荷トラヒック、あるいは、攻撃やネットワークワームの流布などの不正行為によるトラヒックが発生する可能性が高く、これらをどのように検出するかが課題となっている。
【０００３】
この課題に対し、インターネットバックボーンのような大規模なネットワークにおいて、大量に流れるトラヒックから過負荷トラヒックや不正トラヒックを特定する技術として、たとえば大量のデータに対してそのデータの中に良く含まれる項目の組み合わせを抽出するバスケット解析の技術を応用して、大量のトラヒックデータから頻出するトラヒック、すなわち、過負荷トラヒックや不正トラヒックである可能性が高いトラヒックを抽出する技術が開示されている（たとえば特許文献１参照）。この技術は、トラヒックデータ中のネットワーク上での転送に必要なヘッダ情報部分だけを参照して分析を行うことができることも特徴である。
【０００４】
一方、トラヒックの分析方法において、あるトラヒックがどのような特性を持っているかを示すパラメータとして、あるホストが通信相手としている宛先ホスト数などの「異なり数」が注目されている。異なり数を利用すると、通信データ量などの単純な情報だけでは判別が難しい攻撃や、スキャンを目的とした不正トラヒックを比較的高精度に判別できるようになる。異なり数も、トラヒックデータ中のネットワーク上での転送に必要なヘッダ情報部分だけを参照して得られる情報である。一般に異なり数を数えるためには、それまでに現れた値（たとえば、異なり数として通信相手数を数えるのであれば通信相手のアドレス）をすべて保持しておくことが必要となり、多量のメモリを要する処理となる。これを解決するため、対象となる値を直接保持する変わりにその値のハッシュ値を求め、そのハッシュ値に対応するビットマップ上のビットに出現したことを記録することで使用メモリ量を削減しつつ異なり数を数える技術が開示されている（たとえば非特許文献１参照）。
【０００５】
【特許文献１】特開２００５−２８５０４８公報
【非特許文献１】「ＮｅｔＨｏｓｔ：ホスト毎トラヒックサマリ集約方法の提案」、２００６年電子情報通信学会総合大会、ＢＳ−５−２
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１の技術は、過負荷トラヒックや不正トラヒックの抽出にデータマイニング技術を応用することで、大量のトラヒックに対しても監視対象を制限することなく、かつ、パケットのヘッダ情報だけを利用して高速に処理可能としたものである。しかし、異なり数のようなトラヒックの特性の識別に必要な情報までは収集していないため、抽出された頻出トラヒックがどのようなアプリケーションに由来する過負荷トラヒックなのか、またはどのような種類の不正トラヒックなのかを詳しく判別できないという問題があった。
【０００７】
また、特許文献１の技術において、追加の分析情報を収集するために併用する手段として、たとえば非特許文献１の技術を利用することも考えられる。ところが、特許文献１の技術は監視対象トラヒックを限定せず、多数のトラヒックに関する情報を同時に保持しながらデータマイニングを行う手法であるため、非特許文献１の技術を併用しようとすると、分析途中にある多数のトラヒックのそれぞれについて異なり数計数用のメモリを用意しなければならなくなり、結局全体として非常に多くのメモリが必要となってしまうという問題があった。
【０００８】
本発明の目的は、インターネットバックボーンネットワークのような膨大なトラヒックが流れるネットワークにおいても不正なトラヒックを高速に抽出してその特性を推定可能なトラヒック分析装置および分析方法を提供することにある。
【０００９】
また、本発明の他の目的は、監視対象を制限することなく、不正トラヒックの抽出と特性の推定を少ないメモリリソースで実行可能なトラヒック分析装置および分析方法を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために本発明は、転送するパケットのヘッダ部分に含まれる項目の任意の組み合わせ毎にパケット数を積算する手段と、前記組み合わせに含まれない項目の異なる値の出現数を積算する手段と、該パケット数の積算手段による積算値が所定のしきい値を超えたかどうかを判定する手段を設け、前記パケット数が前記しきい値を超えた時に、前記項目の組み合わせと前記しきい値と前記異なる値の出現数の積算値の関係から前記転送するパケットの種別を判定する構成を採用する。
【００１１】
さらに、上記他の目的を達成するために本発明は、転送するパケットのヘッダ部分に含まれる項目の任意の組み合わせに含まれない項目の異なる値の出現数の積算において、既に出現した値を保持する手段として、前記任意の組み合わせに前記含まれない項目を加えた新たな組み合わせに関するパケット数の積算をする段階において、前記新たな組み合わせが新規に出現したときに前記異なる値の出現数をカウントする構成を採用する。
【発明の効果】
【００１２】
本発明によれば、処理時間のかかるパケットのパターンマッチングを行わずに、パケットのヘッダ情報に関する統計処理だけで不正なパケットを抽出し、その特性を推定できるため、トラヒックの多い高速なネットワークにも適用できるという効果がある。
【００１３】
また、パケットのヘッダ中のある項目に関する異なる値の出現数の積算のために、過去に出現した値を記憶しておくための特別な記憶領域を用意することなく、前記異なる値の出現数を積算可能となるため、トラヒックの多い高速なネットワークにおいても、少ないメモリリソースで異なり数を利用したトラヒックの特性分析を行えるという効果がある。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の好適な実施形態を、図面を用いて詳細に説明する。ただし、本発明はこの実施形態に限定されない。
【実施例１】
【００１５】
図１は、第１の実施例におけるトラヒック分析装置１０１の構成図を示したものである。図１において、トラヒック分析装置１０１は、ネットワーク１０２及び入出力装置１０３と接続されており、ネットワーク１０２は、分析対象とするトラヒックが流れているネットワークであり、入出力装置１０３は、トラヒック分析装置１０１に指示を与えたり分析結果を表示させたりする。
【００１６】
トラヒック制御装置１０１は、パケット送受信部１０５、メモリ１０６、パケット数積算部１２０、異なり数積算部１２１、パケット推定部１２２、制御部１２３から構成される。
【００１７】
パケット送受信部１０５は、ネットワーク１０２から分析対象とするトラヒック情報を受信する。メモリ１０６には、受信した前記トラヒック情報を一時格納するためのトラヒック情報バッファ１０７、前記トラヒック情報に関する統計値を格納するためのパケットカウントテーブル１０８、前記トラヒック情報から抽出対象とするフローの種類を指定する情報を格納する抽出対象テーブル１０９、前記トラヒック情報に関する統計値のうち、異なり数の計数に必要な情報を一時格納するための計数補助テーブル１１０、抽出されたフローの種類から前記フローに関与するホストの動作を推定した結果を格納するホストテーブル１１１、前記ホストの動作がさらにＰ２Ｐファイル交換アプリケーションかどうかを推定するために必要な情報と推定結果を格納するためのＰ２Ｐ抽出テーブル１１２、ホストの種類を推定する際に必要となるしきい値情報を格納するための推定しきい値テーブル１１３が含まれる。
【００１８】
パケット数積算部１２０は、ネットワークを流れるパケットの中の項目（送信元ＩＰアドレス、送信先ＩＰアドレス、送信元ポート番号、宛先ポート番号など）の組み合わせによって構成される項目グループの各項目の値が同一であるパケットの数を積算する。異なり数積算部１２１は、上記項目グループに含まれない項目の異なる値の出現数を積算する。パケット推定部１２２は、積算された情報から、ネットワーク１０２を流れるパケットの特性を推定する。制御部１２３は、トラヒック分析装置が行う処理であって、上記のパケット数積算部１２０、異なり数積算部１２１及びパケット推定部１２２が行う処理以外の処理を行う。なお、パケット数積算部１２０、異なり数積算部１２１、パケット推定部１２２及び制御部１２３は、それぞれ異なるハードウェアによって実現しても良く、またこれらの処理を行う一つのハードウェア（例えば、一つのＣＰＵ）が処理を行う構成でも良い。また、それぞれの機能を実現するソフトウェア（プログラム）が存在し、ＣＰＵがそれらのソフトウェアを起動して処理する構成でも良い。
【００１９】
以上の構成において、トラヒック分析装置１０１は、ネットワーク１０２を流れるトラヒックに関するトラヒック情報を受信して分析し、前記トラヒックが過負荷トラヒックや不正トラヒックであるかどうかを推定して結果を入出力装置１０３に表示するように動作する。
【００２０】
以下、メモリ１０６に格納されるパケットカウントテーブル１０８から推定しきい値テーブル１１３の構成の一例を、それぞれ図２から図８を用いて説明し、トラヒック分析装置１０１の動作の一例について図９から図１２のフローチャートを用いて詳細に説明する。
【００２１】
図２は、パケットカウントテーブル１０８の一例を示した図である。本実施例では、ネットワーク１０２より受信したトラヒック情報に含まれる個々のパケットについて、前記パケットの構成要素の特定の組み合わせ（アイテムセットと呼ぶ）に着目し、前記構成要素の組み合わせが同一の値を持つ前記パケット（これらのパケットの集合をフローと呼ぶ）の数を積算することで前記トラヒック情報から注目すべきフローを抽出し、前記フローに関与するホストの動作を推定するという分析方式を用いている。
【００２２】
パケットカウントテーブル１０８は、前記積算の結果を保持するためのテーブルであり、一つの前記積算の結果を一つのエントリに格納する構造となっている。一つのエントリは、前記エントリを一意に識別するエントリ番号１０８ａ、前記エントリで積算対象となっているフローのアイテムセットを示すアイテムセット値１０８ｂ、前記フローに含まれる送信元ＩＰアドレスの値または異なり数のいずれかを格納する送信元ＩＰアドレス１０８ｃ、前記フローに含まれる宛先ＩＰアドレスの値または異なり数のいずれかを格納する宛先ＩＰアドレス１０８ｄ、前記フローに含まれる送信元ポート番号の値または異なり数のいずれかを格納する送信元ポート番号１０８ｅ、前記フローに含まれる宛先ポート番号の値または異なり数のいずれかを格納する宛先ポート番号１０８ｆ、前記フローを構成するパケットの積算数を格納するパケット数１０８ｇ、前記フローを構成するパケットの長さを積算した値を格納する積算バイト数１０８ｈ、前記エントリにより積算を開始した時刻を格納するカウント開始時刻１０８ｉから構成される。
【００２３】
ここで、パケットカウントテーブル１０８に格納される各エントリは、ネットワーク１０２を流れるパケットの情報を分析した結果であり、１０８ｂ〜１０８ｉに示す項目の値を有する分析情報ということもできる。そして、パケットカウントテーブル１０８は、これらのエントリ（分析情報）を複数記憶した分析情報記憶部ということもできる。
【００２４】
図３は、アイテムセット値１０８ｂに格納する値を示すビットパターンである。アイテムセット値１０８ｂは、送信元ＩＰアドレス１０８ｃ、宛先ＩＰアドレス１０８ｄ、送信元ポート番号１０８ｅ、宛先ポート番号１０８ｆの各構成要素に格納される値が、アイテムセットの構成要素としての値なのか、あるいは、前記アイテムセットの構成要素ではなく、異なる値が何種類出現したかを示す異なり数なのかを示す。
【００２５】
なお、本実施例の説明では、アイテムセットの構成要素として扱う項目は、送信元ＩＰアドレス、宛先ＩＰアドレス、送信元ポート番号、宛先ポート番号の４種類としているが、処理対象とする構成要素をこれらに限定するものではなく、分析の目的に応じて、ＩＰヘッダ、および、ＴＣＰヘッダまたはＵＤＰヘッダに含まれる他の項目の値、または、ＴＣＰヘッダまたはＵＤＰヘッダの後ろに続くデータの一部であってもよい。
【００２６】
さらには、Ｌ２ＴＰやＰＰＰなどのトンネリングプロトコルのパケットに格納されたＩＰパケット中のＩＰヘッダ、および、ＴＣＰヘッダまたはＵＤＰヘッダに含まれる他の項目の値、または、ＴＣＰヘッダまたはＵＤＰヘッダの後ろに続くデータの一部であってもよい。
【００２７】
図４は、抽出対象テーブル１０９の内容の一例を示した図である。抽出対象テーブル１０９は、ネットワーク１０２から受信したトラヒック情報から統計処理の対象とするフローの種類と取得する統計情報の内容を定義するテーブルである。前記フローの種類と取得する統計情報の内容が一つのエントリで定義され、一つの前記エントリは、前記エントリを一意に識別するためのエントリ番号１０９ａ、前記フローの種類を示すアイテムセット値１０９ｂ、前記フローに関与するホストの動作の推定処理を開始するタイミングを指定するしきい値１０９ｃ、前記エントリ処理時に異なり数の積算処理を行うアイテムセットを指定する異なり数更新対象アイテムセット１０９ｄから構成される。
【００２８】
図５は、計数補助テーブル１１０の内容の一例を示した図である。計数補助テーブル１１０は、パケットカウントテーブル１０８によって異なり数を計数する際に補助的に使用するワークテーブルであり、ネットワーク１０２から受信したトラヒック情報に含まれる１パケット分の分析処理において、統計処理の対象となる各アイテムセット毎に、前記アイテムセットを含むパケット数の積算に使用するパケットカウントテーブル１０８中のエントリのエントリ番号を一時記憶するものである。具体的には、前記アイテムセットのアイテムセット値を格納するフィールド１１０ａと前記エントリ番号を格納するフィールド１１０ｂの組み合わせから成る複数のエントリで構成される。
【００２９】
図６は、ホストテーブル１１１の内容の一例を示した図である。ホストテーブル１１１は、ネットワーク１０２からのトラヒック情報から抽出した注目フローに関与するホストの動作についての情報を格納する複数のエントリから構成され、一つの前記エントリは、前記エントリを一意に識別するためのエントリ番号１１１ａ、前記ホストのＩＰアドレス１１１ｂ、前記ホストがサーバとして動作しているのか、または、クライアントとして動作しているのかを示すホストタイプ１１１ｃ、前記ホストがサービスの提供または利用に使用しているサービスポート番号１１１ｄ、前記エントリへの記録を行った時点の前記注目フローのパケット数を示す検出しきい値１１１ｅ、前記注目フローのうち前記ホストが受信しているパケットの送信元となっているホストの数を示す通信相手数（ＩＮ）１１１ｆ、前記注目フローのうち前記ホストが送信しているパケットの送信先となっているホストの数を示す通信相手数（ＯＵＴ）１１１ｇ、前記注目フローのうち前記ホストが受信したパケット数の計数を開始してから検出しきい値１１１ｅの値に達するまでに要した時間を格納する計測時間（ＩＮ）１１１ｈ、前記注目フローのうち前記ホストが送信したパケット数の計数を開始してから検出しきい値１１１ｅの値に達するまでに要した時間を格納する計測時間（ＯＵＴ）１１１ｉ、前記注目フローのうち前記ホストが受信したパケット数の計数を開始してから検出しきい値１１１ｅの値に達するまでの単位時間あたりの平均データ量を格納する平均帯域（ＩＮ）１１１ｊ、前記注目フローのうち前記ホストが送信したパケット数の計数を開始してから検出しきい値１１１ｅの値に達するまでの単位時間あたりの平均データ量を格納する平均帯域（ＯＵＴ）１１１ｋ、前記注目フローがＤＤｏＳ攻撃またはネットワークスキャンであると推定された結果を格納するＤＤｏＳ攻撃／ネットワークスキャンフラグ１１１ｌ、前記エントリの内容を最後に更新したときの時刻を格納する最終更新時刻１１１ｍから構成される。
【００３０】
図７は、Ｐ２Ｐ抽出テーブル１１２の内容の一例を示す図である。Ｐ２Ｐ抽出テーブル１１２は、ネットワーク１０２からのトラヒック情報から抽出した注目フローに関与するホストの動作がＰ２Ｐファイル交換であるかどうかを推定するために必要な情報と推定結果を格納する複数のエントリから構成される。一つの前記エントリは、前記エントリを一意に識別するためのエントリ番号１１２ａ、前記ホストのＩＰアドレス１１２ｂ、Ｐ２Ｐファイル交換であるかどうかの推定に利用するＰ２Ｐ推定用フローの検出数を格納するＰ２Ｐ推定用フロー検出数１１２ｃ、Ｐ２Ｐファイル交換かどうかの推定結果を格納するＰ２Ｐ推定結果１１２ｄ、抽出された前記Ｐ２Ｐ推定用フローの統計値に含まれる数値からＰ２Ｐファイル交換であるかどうかの推定に利用するパラメータの計算結果を格納する異なり数分布パラメータＡ１１２ｅおよび異なり数分布パラメータＢ１１２ｆより構成される。なお、異なり数分布パラメータＡ１１２ｅおよび異なり数分布パラメータＢ１１２ｆの意味については後の動作説明の中で詳しく述べる。
【００３１】
図８は、推定しきい値テーブル１１３の内容の一例を示した図である。推定しきい値テーブル１１３は、ネットワーク１０２から受信したトラヒック情報に含まれるフローに関与するホストの動作の推定処理を行う際に、前記フローの種類を推定するための基準とする数値を格納するもので、前記フローの種類がＤＤｏＳ攻撃であるかどうかの判断基準とするＤＤｏＳ推定しきい値１１３ａ、前記フローの種類がネットワークスキャンであるかどうかの判断基準とするネットワークスキャン推定しきい値１１３ｂ、前記フローの種類がＰ２Ｐファイル交換であるかどうかの判断基準とするＰ２Ｐ推定用異なり数分布パラメータＡしきい値１１３ｃとＰ２Ｐ推定用異なり数分布パラメータＢしきい値１１３ｄから構成される。
【００３２】
続いて、図９のフローチャートによりトラヒック分析装置１０１の動作について説明する。トラヒック分析装置１０１の制御部１２３は、分析処理の実行に先立ち、まず初期化処理を実行する（ステップ９０１）。初期化処理の具体的内容は、メモリ１０６に格納されているパケットカウントテーブル１０８、ホストテーブル１１１、Ｐ２Ｐ抽出テーブル１１２の各テーブルを構成するエントリが何も登録されていない初期状態に設定する処理である。
【００３３】
次に、制御部１２３は、入出力装置１０３から初期設定情報９０３を受け取り、抽出対象テーブル１０９と推定しきい値テーブル１１３に設定する（ステップ９０４）。
【００３４】
入出力装置１０３は、初期設定情報９０３を構成するために必要な情報を得るため、初期設定情報入力画面９０２を表示し、入力操作を待つ。
【００３５】
図１４は初期設定情報入力画面９０２の一例を示す図である。図１４の例に示す画面は、フロー検出しきい値９０２ａ、ＤＤｏＳ推定しきい値９０２ｂ、ネットワークスキャン推定しきい値９０２ｃ、Ｐ２Ｐ推定パラメータＡ９０２ｄ、Ｐ２Ｐ推定パラメータＢ９０２ｅのフィールドから構成される。前記各フィールドに入力された値は、実行ボタン９０２ｆが押下されたタイミングで初期設定情報９０３としてトラヒック分析装置１０１に送信され、制御部１２３は、初期設定情報９０３に含まれる値を抽出対象テーブル１０９と推定しきい値テーブル１１３のそれぞれ対応する領域に書き込む。具体的には、フロー検出しきい値９０２ａに入力された値を抽出対象テーブル１０９の全エントリのしきい値１０９ｂに、ＤＤｏＳ推定しきい値９０２ｂをしきい値テーブル１１３のＤＤｏＳ推定しきい値１１３ａに、ネットワークスキャン推定しきい値９０２ｃの値をしきい値テーブル１１３のネットワークスキャン推定しきい値１１３ｂに、Ｐ２Ｐ推定パラメータＡ９０２ｄの値をしきい値テーブル１１３のＰ２Ｐ推定用異なり数分布パラメータＡしきい値１１３ｃに、Ｐ２Ｐ推定パラメータＢ９０２ｅの値をしきい値テーブル１１３のＰ２Ｐ推定用異なり数分布パラメータＢしきい値１１３ｄにそれぞれ格納する。
【００３６】
ステップ９０４まで完了すると、トラヒック分析装置１０１は、ネットワーク１０２からのトラヒック情報受信待ち状態となる。この状態でネットワーク１０２からのトラヒック情報９０５をパケット送受信部１０５により受信すると、トラヒック情報９０５はトラヒック情報バッファ１０７に一旦格納される。トラヒック情報９０５は、たとえば、ネットワーク１０２の中を流れるパケットの複製であり、あるいは、適切な間隔でサンプリングした複数の前記パケットの一部分を一つのパケットに集約したｓＦｌｏｗパケットなどである。
【００３７】
トラヒック情報９０５がトラヒック情報バッファ１０７に格納されると、パケット数積算部１２０は、パケットカウントテーブル１０８の更新処理を開始する（ステップ９０６）。ステップ９０６では、トラヒック情報バッファ１０７に格納されたトラヒック情報に含まれる個々のパケットについてパケットカウントテーブル１０８を用いた統計処理を行うとともに注目すべきフローの抽出を行い、前記フローに関与するホストの動作の推定処理を行い、その結果によりホストテーブル１１１とＰ２Ｐ抽出テーブル１１２の更新処理を行う。その詳細は、図１０のフローチャートにより後に詳細に説明する。
【００３８】
ステップ９０６の処理の結果、ホストテーブル１１１とＰ２Ｐ抽出テーブル１１２の内容が更新された場合（ステップ９０７）、前記二つのテーブルの内容を入出力装置１０３に出力するホスト情報出力処理を行う（ステップ９０８）。前記二つのテーブル内容を抽出情報９０９に構成して入出力装置１０３に送信し、ホスト情報表示画面９１０を表示する。
【００３９】
図１５は、ホスト情報表示画面９１０の一例を示す図である。この例では、ホストテーブル１１１のエントリのうちホストタイプ１１１ｃが「サーバ」となっているものをサーバリスト９１０ａに、ホストタイプ１１１ｃが「クライアント」となっているものをクライアントリスト９１０ｂに、Ｐ２Ｐ抽出テーブル１１２のエントリのＰ２Ｐ推定結果１１２ｄの値がＰ２Ｐファイル交換と推定されたことを示す１となっているものをＰ２Ｐファイル交換ホストリスト９１０ｃにそれぞれ表示する。具体的には、サーバリスト９１０ａ、クライアントリスト９１０ｂでは、ホストテーブル１１１のエントリに含まれるＩＰアドレス１１１ｂ、サービスポート番号１１１ｄ、平均帯域（ＯＵＴ）１１１ｉ、平均帯域（ＩＮ）１１１ｈの各値を前記画面上の「ＩＰアドレス」、「ポート番号」、「送信帯域」、「受信帯域」の欄にそれぞれ表示し、ＤＤｏＳ攻撃／ネットワークスキャンフラグ１１１ｌの値が１となっているものについては、「ＤＤｏＳ」または「Ｓｃａｎ」の欄にマークを表示する。Ｐ２Ｐファイル交換ホストリスト９１０ｃでは、Ｐ２Ｐ抽出テーブル１１２のエントリに含まれるＩＰアドレス１１２ｂの値を「ＩＰアドレス」の欄に表示し、前記ＩＰアドレス１１２ｂの値をＩＰアドレスに持ち、ホストタイプが「サーバ」であるエントリをホストテーブル１１１から検索し、検索されたエントリに含まれるサービスポート番号１１１ｄの値を「ポート番号」の欄に表示する。
【００４０】
以上が、トラヒック分析装置１０１の動作であり、ステップ９０６からステップ９０８までの処理は、ネットワーク１０２からトラヒック情報９０５が受信されるたびに繰り返し実行される。
【００４１】
次に、ステップ９０６のパケットカウントテーブル１０８更新処理の詳細を図１０のフローチャートにより説明する。
【００４２】
ステップ９０６では、トラヒック情報９０５に含まれているパケットについて、抽出対象テーブル１０９で指定されたアイテムセット毎の統計処理を行い、結果をパケットカウントテーブル１０８に反映する。そのために、パケット数積算部１２０は、まず抽出対象テーブル１０９のエントリを順に走査するための変数ｉを用意し、１に初期化する（ステップ１００１）。
【００４３】
次に、パケット数積算部１２０は、抽出対象テーブル１０９のｉ番目のエントリに含まれるアイテムセット値１０９ｂの値を取得し（ステップ１００２）、トラヒック情報バッファ１０７に含まれるパケットにおける前記アイテムセット値に対応する積算対象アイテムセットの積算情報を格納するパケットカウントテーブル１０８内の使用エントリを選択する（ステップ１００３）。具体的な選択方法には、たとえば前記積算対象アイテムセットの構成要素の各値を連結した値にＭＤ５等のハッシュ関数を適用して得られた値をパケットカウントテーブル１０８の最大エントリ数で割った余りに１を加えたものを使用エントリ番号とする方法などがある。
【００４４】
さらに、パケットカウントテーブル１０８の全エントリ数を多数用意することなく頻出するフローの情報を残しやすくするために、複数の異なる計算方法により使用エントリの候補を複数選択し、それらが全て使用中であった場合に、前記使用エントリ候補の中でパケット数１０８ｇの値が最小のものを使用エントリ番号として選択する方法もある。
【００４５】
次に、パケット数積算部１２０は、前記積算対象アイテムセットと前記使用エントリに格納されているアイテムセットを比較して前記使用エントリ内容の確認を行う（ステップ１００４）。もし、前記使用エントリが未使用状態であるか、または、前記積算対象アイテムセットと前記使用エントリに格納されているアイテムセットが異なるものであった場合、ステップ１００５からステップ１００７までの処理を行う。
【００４６】
ステップ１００５は、前記使用エントリの初期化処理であり、前記使用エントリのアイテムセット値１０８ｂにステップ１００２で取得したアイテムセット値を設定し、送信元ＩＰアドレス１０８ｃ、宛先ＩＰアドレス１０８ｄ、送信元ポート番号１０８ｅ、宛先ポート番号１０８ｆのそれぞれについて、前記アイテムセット値でアイテムセット構成要素と指定されているものには前記積算対象アイテムセットの該当する構成要素の値を、異なり数計数対象となっているものには０を設定し、パケット数１０８ｇと積算バイト数１０８ｈに０を設定し、カウント開始時刻１０８ｉに現在時刻を設定する。
【００４７】
ステップ１００６は、計数補助テーブル１１０の更新処理であり、計数補助テーブル１１０の中のアイテムセット値１１０ａが前記アイテムセット値であるフィールドに対応するパケットカウントテーブルエントリ番号１１０ｂのフィールドに前記使用エントリのエントリ番号を格納する。
【００４８】
ステップ１００７は、異なり数を計数するための処理であり、これについては図１１のフローチャートにより後に詳細に説明する。
【００４９】
ステップ１００４において、前記積算対象アイテムセットと前記使用エントリに格納されているアイテムセットが同一であった場合は、前記使用エントリはすでに前記積算対象アイテムセットの統計処理に使用されているということであり、ステップ１００５からステップ１００７は実行しない。
【００５０】
次に、パケット数積算部１２０は、前記使用エントリ内のカウンタ情報を更新する（ステップ１００８）。具体的には、パケット数１０８ｇに１を加算し、前記パケットの長さを積算バイト数１０８ｈに加算する。
【００５１】
ステップ１００８の処理の結果、パケット数１０８ｇの値が抽出対象テーブル１０９のｉ番目のエントリのしきい値１０９ｃの値に達した場合、パケット推定部１２２は、ステップ１０１０のホスト情報抽出処理を実行する（ステップ１００９）。ホスト情報抽出処理は、しきい値越えが発生したアイテムセットにより識別されるフローに関与するホストの動作を推定する処理で、その結果がホストテーブル１１１とＰ２Ｐ抽出テーブル１１２に反映される。その詳細処理については図１２のフローチャートにより後に詳細に説明する。
【００５２】
次に、パケット数積算部１２０は前記変数ｉの値に１を加算し（ステップ１０１１）、ｉの値が抽出対象テーブル１０９の全エントリ数を越えるまでステップ１００２からステップ１０１１までの処理を繰り返し実行する（ステップ１０１２）。以上で、ステップ９０６の処理を終了する
次に、図１０のステップ１００７に示す異なり数計数処理の詳細を図１１のフローチャートにより説明する。
【００５３】
まず、異なり数の計数の原理について簡単に説明する。例えば、宛先ＩＰアドレスと宛先ポート番号の二つから構成されるアイテムセットを含む第１のフローに関して送信元ＩＰアドレスの異なり数を計数する場合、宛先ＩＰアドレスと宛先ポート番号が前記第１のフローと同一の値で、さらに三つ目の構成要素として送信元ＩＰアドレスを持つアイテムセットに関するパケットカウントテーブル１０８の新たなエントリを作成したときに前記異なり数に１を加算する方法で計数することができる。第２のフローが新規に現れたものかどうかは、図１０のフローチャートのステップ１００４の処理の際に容易に判定できる。ステップ１００７は、前記第２のフローが新規に現れたものである場合にだけ実行され、前記計数処理を実際に行う部分である。
【００５４】
ステップ１００７において、異なり数積算部１２１は、まずステップ１００７実行時点で処理対象となっている抽出対象テーブル１０９のエントリの異なり数更新対象アイテムセットリスト１０９ｄの要素を順に走査するための変数ｊを用意し、１に初期化する（ステップ１１０１）。
【００５５】
次に、異なり数積算部１２１は、ステップ１００７実行時点で処理対象となっている抽出対象テーブル１０９のエントリの異なり数更新対象アイテムセットリスト１０９ｄのｊ番目の要素を取り出し、その値をｘとする（ステップ１１０２）。そして、ｘが０でなければステップ１１０４以降の処理を継続し、０であればステップ１００７の処理を終了する（ステップ１１０３）。
【００５６】
ステップ１１０４では、異なり数積算部１２１は、補助テーブル１１０の中からアイテムセット値１１０ａの値がｘと等しいエントリを検索し、前記エントリのパケットカウントテーブルエントリ番号１１０ｂの値を取り出し、その値をｙとする。そして、ｙの値が０でなければステップ１１０６を実行し、０であった場合は、ステップ１１０６はスキップする（ステップ１１０５）。
【００５７】
ステップ１１０６では、異なり数積算部１２１は、パケットカウントテーブル１０８のエントリ番号１０８ａがｙであるエントリの該当するアイテムの異なり数に1を加える。前記該当するアイテムは、ステップ１００７実行時点で処理対象となっている抽出対象テーブル１０９のエントリのアイテムセット値１０９ｂとｘで値が異なっているビットに対応するアイテムであり、これは前記アイテムセット値１０９ｂとｘの排他的論理和を取ることで容易に求まる。
【００５８】
次に、異なり数積算部１２１は、ｊの値に１を加算してステップ１１０２に戻り、処理を繰り返す（ステップ１１０７）。以上により異なり数の計数を行える。
【００５９】
次に、図１０のステップ１０１０に示すホスト情報抽出処理の詳細を図１２のフローチャートにより説明する。
【００６０】
パケット推定部１２２は、まずステップ１００８のカウンタ更新処理でしきい値越えを起こしたパケットカウントテーブル１０８のエントリのアイテムセット値１０８ｂの値からしきい値越えフローの種別を判定する（ステップ１２０１）。本実施例では、フローの種別は、アイテムセット値が十六進数表記で０５（アイテムセットの構成要素が宛先ＩＰアドレスと宛先ポート番号）または０ａ（アイテムセットの構成要素が送信元ＩＰアドレスと送信元ポート番号）の場合をサーバフロー、０６（アイテムセットの構成要素が宛先ＩＰアドレスと送信元ポート番号）または０９（アイテムセットの構成要素が送信元ＩＰアドレスと宛先ポート番号）の場合をクライアントフロー、０８（アイテムセットの構成要素が送信元ＩＰアドレス）の場合をＰ２Ｐ推定用フローと定義する。なお，判定可能なフローの種別は上記に限定するものではなく，別の構成要素の組み合わせに別のフローの種別を定義してもよい。
【００６１】
前記判定の結果が、サーバフローまたはクライアントフローであれば、ステップ１２０３からステップ１２０６によるホストテーブル１１１の更新処理を、Ｐ２Ｐ推定用フローであれば、ステップ１２０７からステップ１２１１によるＰ２Ｐファイル交換ホスト推定処理をそれぞれ実行し、それ以外であればそのままステップ１０１０を終了する（ステップ１２０２）。
【００６２】
ホストテーブル１１１の更新処理は、まずパケット推定部１２２が、前記しきい値越えフローに関与するホストの情報が既にホストテーブル１１１に登録されているかを検索し（ステップ１２０３）、登録されていなければホストテーブル１１１の未使用エントリに新規登録する（ステップ１２０４）。前記新規登録処理は、前記しきい値越えを起こしたパケットカウントテーブル１０８のエントリに含まれる情報から、前記未使用エントリのＩＰアドレス１１１ｂ、ホストタイプ１１１ｃ、サービスポート番号１１１ｄ、検出しきい値１１１ｅの各フィールドに値を設定する処理である。
【００６３】
次に、ステップ１２０３で検索されたエントリまたはステップ１２０４で新規登録されたエントリ内の情報を、前記しきい値越えを起こしたパケットカウントテーブル１０８のエントリの情報により更新する（ステップ１２０５）。更新するフィールドは、通信相手数（ＩＮ）１１１ｆ、通信相手数（ＯＵＴ）１１１ｇ、計測時間（ＩＮ）１１１ｈ、計測時間（ＯＵＴ）１１１ｉ、平均帯域（ＩＮ）１１１ｊ、平均帯域（ＯＵＴ）１１１ｋ、最終更新時刻１１１ｍである。
【００６４】
最後に、ステップ１２０５で更新したエントリので示されるホストの動作がＤＤｏＳ攻撃またはネットワークスキャンであるかどうかの推定処理を行い、その結果を前記エントリのＤＤｏＳ攻撃／ネットワークスキャンフラグに反映してホストテーブル１１１更新処理を終了する（ステップ１２０６）。
【００６５】
ここで、本実施例によるＤＤｏＳ攻撃およびネットワークスキャンの推定方法について説明する。
【００６６】
まず、ＤＤｏＳ攻撃は、あるホストがサービスを提供しているポート番号に対し、多数の攻撃ホストから接続要求を行う行為であり、前記多数の攻撃ホストからのパケットはサーバフローとして検出され、かつ、前記攻撃ホストのＩＰアドレスはそれぞれ異なっていることから、前記サーバフローの送信元ＩＰアドレスの異なり数は、前記サーバフローの検出しきい値に近い値になると考えられる。そこで、サーバフローを検出した際に前記サーバフローがＤＤｏＳ攻撃かどうかを推定するための推定しきい値を前記異なり数の前記検出しきい値に対する比率で定義し、前記サーバフローにおける送信元ＩＰアドレスの異なり数と検出しきい値の比率が、前記定義された推定しきい値を越えていた場合にＤＤｏＳ攻撃と推定する。ステップ１２０６において、前記定義された推定しきい値は、推定しきい値テーブル１１３のＤＤｏＳ推定しきい値１１３ａに格納されたものを使用する。
【００６７】
同様に、ネットワークスキャンは、あるホストが同一のポート番号によってサービスを提供しているサーバを検索するために、多数の異なるＩＰアドレスに対して同一の宛先ポート番号を使用して接続要求を行う行為であり、前記ホストからのパケットはクライアントフローとして検出され、かつ、前記クライアントフローの宛先ＩＰアドレスの異なり数は、前記クライアントフローの検出しきい値に近い値となると考えられる。そこで、クライアントフローを検出した際に前記クライアントフローがネットワークスキャンかどうかを推定するための推定しきい値を前記宛先ＩＰアドレスの異なり数と前記検出しきい値に対する比率で定義し、前記クライアントフローにおける宛先ＩＰアドレスの異なり数と検出しきい値の比率が、前記定義された推定しきい値を越えていた場合にネットワークスキャンと推定する。ステップ１２０６において、前記定義された推定しきい値は、推定しきい値テーブル１１３のネットワークスキャン推定しきい値１１３ｂに格納されたものを使用する。
【００６８】
続いて、ステップ１２０７から始まるＰ２Ｐファイル交換ホスト推定処理について説明する。
【００６９】
Ｐ２Ｐファイル交換ホスト推定処理では、まずパケット推定部１２２が、前記しきい値越えフローに関与するホストの情報が既にホストテーブル１１１にサーバとして登録されているかを検索する処理を行う（ステップ１２０７）。これは、Ｐ２Ｐファイル交換ホストであれば、必ずサーバフローも発生しているため、前記ホストがホストテーブル１１１にサーバとしても登録されていることがＰ２Ｐファイル交換ホスト推定するための必要条件になるという考え方に基づく。ステップ１２０７においてホストテーブル１１１にサーバとして登録されていることが確認できなかった場合は、そのままステップ１０１０の処理を終了する。
【００７０】
ステップ１２０７においてホストテーブル１１１にサーバとして登録されていることが確認できた場合は、次に前記しきい値越えフローに関与するホストの情報が既にＰ２Ｐ抽出テーブル１１２に登録されているかを検索し（ステップ１２０８）、登録されていなければＰ２Ｐ抽出テーブル１１２の未使用エントリに新規登録を行う（ステップ１２０９）。前記新規登録処理は、前記しきい値越えを起こしたパケットカウントテーブル１０８のエントリに含まれる情報から、前記未使用エントリのＩＰアドレス１１２ｂに値を設定し、Ｐ２Ｐ推定用フロー検出数１１２ｃとＰ２Ｐ推定結果１１２ｄに０を設定する処理である。
【００７１】
次に、ステップ１２０８で検索されたエントリまたはステップ１２０９で新規登録されたエントリ内の情報を、前記しきい値越えを起こしたパケットカウントテーブル１０８のエントリの情報により更新する（ステップ１２１０）。具体的には、Ｐ２Ｐ推定用フロー検出数１１２ｃに１を加算し、異なり数分布パラメータＡ１１２ｅと異なり数分布パラメータＢ１１２ｆの計算を行う。
【００７２】
ここで、異なり数分布パラメータＡ１１２ｅと異なり数分布パラメータＢ１１２ｆの意味を説明するにあたり、まず本実施例によるＰ２Ｐファイル交換ホスト推定方法ついて説明する。
【００７３】
図１３は、Ｐ２Ｐファイル交換におけるフローの概略を示した図である。図中、１３０１はＰ２Ｐファイル交換を行っているホスト、１３０２はＰ２Ｐファイル交換を行っており、ホスト１３０１に対してサーバとして動作しているｎ台のホスト群、１３０３はＰ２Ｐファイル交換を行っており、ホスト１３０１に対してクライアントとして動作しているｍ台のホスト群である。本実施例で想定するＰ２Ｐファイル交換プロトコルは、サーバとして動作する場合のサービスポート番号がホスト毎にランダムに決定されるものとする。本構成において、しきい値越えにより検出されるホスト１３０１を送信元ＩＰアドレスとするＰ２Ｐ推定用フローの宛先ＩＰアドレス異なり数、送信元ポート番号異なり数、宛先ポート番号異なり数の三つの値の比率は、およそ（ｎ＋ｍ）：ｎ：（ｎ＋ｍ）となる。これは、たとえばｎ＝ｍと仮定すれば、前記Ｐ２Ｐ推定用フローが複数検出されたとき、前記フローがいずれも２：１：２の前記比率を示せばホスト１３０１がＰ２Ｐファイル交換を行っていると推定する根拠の一つとなる。ただし、実際にはｎとｍは時間とともに変動する等の要因があるため、前記比率は前記フロー毎にばらつきを持ったものになると考えられる。そのような点も考慮し、本実施例では、同一の送信元ＩＰアドレスを持つ複数のＰ２Ｐ推定用フロー受信した際に、宛先ＩＰアドレスの異なり数と宛先ポート番号の異なり数の比率（第１の比率）と宛先ＩＰアドレスの異なり数と送信元ポート番号の異なり数の比率（第２の比率）をそれぞれ求め、前記第１の比率が１の近傍に分布し、かつ、前記第２の比率が０．５の近傍に分布する場合で、かつ、前記送信元ＩＰアドレスを持つホストがホストテーブル１１１にサーバとして登録されている場合にＰ２Ｐファイル交換のフローであると推定する方法を用いる。
【００７４】
上記の推定を行うための具体的な手法として、本実施例では最小二乗法を利用して比率とばらつき具合を算出する方法を用いる。前記第１の比率の確認のためには、宛先ポート番号の異なり数をｘ、宛先ＩＰアドレスの異なり数をｙとして前記複数のＰ２Ｐ推定用フローの検出結果を最小二乗法により一次関数ｙ＝ａｘ＋ｂで近似したときのａ、ｂの値、および相関係数ｃの値を求め、前記各値が所定の範囲に含まれているかどうかを確認する。ここで求めた前記ａ、ｂ、ｃの組み合わせが異なり数分布パラメータＡ１１２ｅである。同様に、前記第２の比率の確認のためには、送信元ポート番号の異なり数をｘ、宛先ＩＰアドレスの異なり数をｙとして前記複数のＰ２Ｐ推定用フローの検出結果を最小二乗法により一次関数ｙ＝ａｘ＋ｂで近似したときのａ、ｂの値、および相関係数ｃの値を求め、前記各値が所定の範囲に含まれているかどうかを確認する。ここで求めた前記ａ、ｂ、ｃの各値の組み合わせが異なり数分布パラメータＢ１１２ｆである。
【００７５】
最後に、ステップ１２１０で求めた異なり数分布パラメータＡ１１２ｅと異なり数分布パラメータＢ１１２ｆの値が、それぞれ推定しきい値テーブル１１３のＰ２Ｐ推定用異なり数分布パラメータＡしきい値１１３ｃとＰ２Ｐ推定用異なり数分布パラメータＢしきい値１１３ｄで指定された範囲に含まれているかを確認し、含まれていた場合にＰ２Ｐファイル交換ホストであると推定し、前記エントリのＰ２Ｐ推定結果１１２ｄの値を１にする（ステップ１２１１）。
【００７６】
以上が、本発明の第１の実施例によるトラヒック分析装置の動作である。
【実施例２】
【００７７】
図１６は、第２の実施例におけるトラヒック分析装置２０１の構成図を示したものである。図１６におけるトラヒック分析装置２０１が、第１の実施例におけるトラヒック分析装置１０１（図１）と異なる箇所は、メモリ１０６に、Ｐ２Ｐ抽出テーブル２１２（図１７）と、推定しきい値テーブル２１３（図１８）とを備える点である（テーブルの名称は同一であるが、テーブルの内容が異なる）。また、ネットワーク１０２、入出力装置１０３、パケット送受信部１０５、メモリ１０６、トラヒック情報バッファ１０７、パケットカウントテーブル１０８、抽出対象テーブル１０９、計数補助テーブル１１０、ホストテーブル１１１、パケット数積算部１２０、異なり数積算部１２１、パケット推定部１２２、制御部１２３は、図１に示した第１の実施例の構成要素と同一である。
【００７８】
図１７はＰ２Ｐ抽出テーブル２１２の内容の一例を示した図である。Ｐ２Ｐ抽出テーブル２１２は、ネットワーク１０２からのトラヒック情報から抽出した注目フローに関与するホストの動作がＰ２Ｐファイル交換であるかどうかを推定するために必要な情報と推定結果を格納する複数のエントリから構成される。一つの前記エントリは、前記エントリを一意に識別するためのエントリ番号２１２ａ、前記ホストのＩＰアドレス２１２ｂ、Ｐ２Ｐファイル交換であるかどうかの推定に利用するＰ２Ｐ推定用フローの検出数を格納するＰ２Ｐ推定用フロー検出数２１２ｃ、Ｐ２Ｐファイル交換かどうかの推定結果を格納するＰ２Ｐ推定結果２１２ｄ、抽出された前記Ｐ２Ｐ推定用フローの統計値に含まれる数値からＰ２Ｐファイル交換であるかどうかの推定に利用するＤＩＰ異なり数平均値２１２ｅおよびＤＰＴ異なり数平均値２１２ｆより構成される。なお、ＤＩＰ異なり数平均値２１２ｅおよびＤＰＴ異なり数平均値２１２ｆの意味については後の動作説明の中で詳しく述べる。
【００７９】
図１８は、推定しきい値テーブル２１３の内容の一例を示した図である。推定しきい値テーブル２１３は、ネットワーク１０２から受信したトラヒック情報に含まれるフローに関与するホストの動作の推定処理を行う際に、前記フローの種類を判断するための基準とする数値を格納するもので、前記フローの種類がＤＤｏＳ攻撃であるかどうかの判断基準とするＤＤｏＳ推定しきい値２１３ａ、前記フローの種類がネットワークスキャンであるかどうかの判断基準とするネットワークスキャン推定しきい値２１３ｂ、前記フローの種類がＰ２Ｐファイル交換であるかどうかの判断基準とするＰ２Ｐ推定用ＤＩＰ異なり数しきい値２１３ｃとＰ２Ｐ推定用ＤＰＴ異なり数しきい値２１３ｄから構成される。
【００８０】
続いて、本実施例によるトラヒック分析装置２０１の動作について説明する。本実施例によるトラヒック分析装置２０１は、ネットワーク１０２から受信するトラヒック情報のうち、統計処理の対象を通信開始要求を意味するＴＣＰのＳＹＮパケットに限定し、実施例１に示したものと異なる方法でＰ２Ｐファイル交換ホストの推定を行うものである。その動作について、図１９のフローチャートにより説明する。
【００８１】
トラヒック分析装置２０１の制御部１２３は、分析処理の実行に先立ち、まず初期化処理を実行する（ステップ１９０１）。初期化処理の具体的内容は、メモリ１１３に格納されているパケットカウントテーブル１０８、ホストテーブル１１１、Ｐ２Ｐ抽出テーブル２１２の各テーブルを構成するエントリが何も登録されていない初期状態に設定する処理である。
【００８２】
次に、制御部１２３は、入出力装置１０３から初期設定情報１９０３を受け取り、抽出対象テーブル１０９と推定しきい値テーブル２１３に設定する（ステップ１９０４）。
【００８３】
入出力装置１０３は、初期設定情報１９０３を構成するために必要な情報を得るため、初期設定情報入力画面１９０２を表示し、入力操作を待つ。
【００８４】
図２１は初期設定情報入力画面１９０２の一例を示す図である。図２１の例に示す画面は、フロー検出しきい値１９０２ａ、ＤＤｏＳ推定しきい値１９０２ｂ、ネットワークスキャン推定しきい値１９０２ｃ、Ｐ２Ｐ推定用ＤＩＰ異なり数しきい値１９０２ｄ、Ｐ２Ｐ推定用ＤＰＴ異なり数しきい値１９０２ｅのフィールドから構成される。前記各フィールドに入力された値は、実行ボタン１９０２ｆが押下されたタイミングで初期設定情報１９０３としてトラヒック分析装置２０１に送信され、制御部１２３は、初期設定情報１９０３に含まれる値を抽出対象テーブル１０９と推定しきい値テーブル２１３のそれぞれ対応する領域に書き込む。具体的には、フロー検出しきい値１９０２ａに入力された値を抽出対象テーブル１０９の全エントリのしきい値１０９ｂに、ＤＤｏＳ推定しきい値１９０２ｂをしきい値テーブル２１３のＤＤｏＳ推定しきい値２１３ａに、ネットワークスキャン推定しきい値１９０２ｃの値をしきい値テーブル２１３のネットワークスキャン推定しきい値２１３ｂに、Ｐ２Ｐ推定用ＤＩＰ異なり数しきい値１９０２ｄの値をしきい値テーブル２１３のＰ２Ｐ推定用ＤＩＰ異なり数しきい値２１３ｃに、Ｐ２Ｐ推定用ＤＰＴ異なり数しきい値１９０２ｅの値をしきい値テーブル２１３のＰ２Ｐ推定用ＤＰＴ異なり数しきい値２１３ｄにそれぞれ格納する。
【００８５】
ステップ１９０４まで完了すると、トラヒック分析装置２０１は、ネットワーク１０２からのトラヒック情報待ち状態となる。この状態でネットワーク１０２からのトラヒック情報１９０５をパケット送受信部１０５により受信すると、トラヒック情報１９０５はトラヒック情報バッファ１０７に一旦格納される。トラヒック情報１９０５は、たとえば、ネットワーク１０２の中を流れるパケットの複製であり、あるいは、適切な間隔でサンプリングした複数の前記パケットの一部分を一つのパケットに集約したｓＦｌｏｗパケットなどである。
【００８６】
トラヒック情報１９０５がトラヒック情報バッファ１０７に格納されると、制御部１２３は、トラヒック情報１９０５に含まれるパケットがＴＣＰ  ＳＹＮパケットであるかどうかを確認する（ステップ１９０６）。
【００８７】
パケット数積算部１２０は、前記パケットがＴＣＰ  ＳＹＮパケットの場合にパケットカウントテーブル１０８の更新処理を開始する（ステップ１９０７）。ステップ１９０７では、トラヒック情報バッファ１０７に格納されたトラヒック情報に含まれる個々のパケットについて、前記パケットがＴＣＰ  ＳＹＮパケットの場合に限りパケットカウントテーブル１０８を用いた統計処理を行うとともに注目すべきフローの抽出を行い、前記フローに関与するホストの動作の推定処理を行い、その結果によりホストテーブル１１１とＰ２Ｐ抽出テーブル２１２の更新処理を行う。その詳細は、後に説明する。
【００８８】
ステップ１９０７の処理の結果、ホストテーブル１１１とＰ２Ｐ抽出テーブル２１２の内容が更新された場合（ステップ１９０８）、制御部１２３は、前記二つのテーブルの内容を入出力装置１０３に出力するホスト情報出力処理を行う（ステップ１９０９）。前記二つのテーブル内容を抽出情報１９１０に構成して入出力装置１０３に送信し、ホスト情報表示画面１９１１を表示する。
【００８９】
図２２は、ホスト情報表示画面１９１１の一例を示す図である。この例では、ホストテーブル１１１のエントリのうちホストタイプ１１１ｃが「サーバ」となっているものをサーバリスト１９１１ａに、ホストタイプ１１１ｃが「クライアント」となっているものをクライアントリスト１９１１ｂに、Ｐ２Ｐ抽出テーブル２１２のエントリのＰ２Ｐ推定結果２１２ｄの値がＰ２Ｐファイル交換と推定されたことを示す１となっているものをＰ２Ｐファイル交換ホストリスト１９１１ｃにそれぞれ表示する。サーバリスト１９１１ａ、クライアントリスト１９１１ｂでは、ホストテーブル１１１のエントリに含まれるＩＰアドレス１１１ｂ、サービスポート番号１１１ｄ、通信相手数（ＩＮ）１１１ｆまたは通信相手数（ＯＵＴ）１１１ｇの各値を前記画面上の「ＩＰアドレス」、「ポート番号」、「クライアント数」または「サーバ数」の欄にそれぞれ表示し、ＤＤｏＳ攻撃／ネットワークスキャンフラグ１１１ｌの値が１となっているものについては、「ＤＤｏＳ」または「Ｓｃａｎ」の欄にマークを表示する。Ｐ２Ｐファイル交換ホストリスト１９１１ｃでは、Ｐ２Ｐ抽出テーブル２１２のエントリに含まれるＩＰアドレス２１２ｂの値を「ＩＰアドレス」の欄に表示し、前記ＩＰアドレス２１２ｂの値をＩＰアドレスに持ち、ホストタイプが「サーバ」であるエントリをホストテーブル１１１から検索し、検索されたエントリに含まれるサービスポート番号１１１ｄの値を「ポート番号」の欄に表示する。
【００９０】
以上が、トラヒック分析装置２０１の動作であり、ステップ１９０６からステップ９０９までの処理は、ネットワーク１０２からトラヒック情報１９０５が受信されるたびに繰り返し実行される。
【００９１】
次に、ステップ１９０７のパケットカウントテーブル更新処理の詳細について説明する。ステップ１９０７の処理は、図９のフローチャートに示した実施例１によるトラヒック分析装置１０１のステップ９０６の処理と基本的に同じ流れであり、その詳細は、図１０、図１１、図１２のフローチャートで示すものとなる。本実施例において実施例１の場合と処理が異なる部分は、図１２のフローチャートのステップ１２１０とステップ１２１１であるため、その部分のみを以下に説明する。
【００９２】
本実施例におけるステップ１２１０の処理では、パケット推定部１２２は、ステップ１２０８で検索されたエントリまたはステップ１２０９で新規登録されたエントリ内の情報を、図１０のフローチャートのステップ１００８の処理でしきい値越えを起こしたパケットカウントテーブル１０８のエントリの情報により更新する。具体的には、Ｐ２Ｐ推定用フロー検出数２１２ｃに１を加算し、ＤＩＰ異なり数平均値２１２ｅとＤＰＴ異なり数平均値２１２ｆの計算を行う。
【００９３】
ここで、ＤＩＰ異なり数平均値２１２ｅとＤＰＴ異なり数平均値２１２ｆの意味を説明するにあたり、まず本実施例によるＰ２Ｐファイル交換ホスト推定方法について説明する。
【００９４】
図２０は、Ｐ２Ｐファイル交換におけるフローの概略を示した図である。図中、２００１はＰ２Ｐファイル交換を行っているホスト、２００２はＰ２Ｐファイル交換を行っており、ホスト２００１に対してサーバとして動作しているｎ台のホスト群、２００３はＰ２Ｐファイル交換を行っており、ホスト２００１に対してクライアントとして動作しているｍ台のホスト群である。本実施例で想定するＰ２Ｐファイル交換プロトコルは、サーバとして動作する場合のサービスポート番号がホスト毎にランダムに決定され、かつ、抽出対象テーブル１０９のしきい値１０９ｃで指定される検出しきい値がｎ、ｍより十分大きいとものとする。本構成において、しきい値越えにより検出されるホスト２００１を送信元ＩＰアドレスとするＰ２Ｐ推定用フローの宛先ＩＰアドレス異なり数と宛先ポート番号異なり数は、いずれもほぼｎとなる。これは、図１９のフローチャートのステップ１９０６にて統計対象パケットをＴＣＰ  ＳＹＮパケットに限定しており、図２０の構成では、この場合ホスト２００１から送信されるＴＣＰ  ＳＹＮパケットは、ホスト群２００２に向かうものだけになるためである。したがって、本実施例では、前記宛先ＩＰアドレス異なり数と前記宛先ポート番号異なり数のいずれもが、Ｐ２Ｐファイル交換における接続サーバ数と見なすのに十分な大きさの値を示しており、かつ、前記送信元ＩＰアドレスを持つホストがホストテーブル１１１にサーバとして登録されている場合にＰ２Ｐファイル交換のフローであると推定する方法を用いる。
【００９５】
上記の推定を行うための具体的な手法として、本実施例では、抽出されたＰ２Ｐ推定用フローに含まれる宛先ＩＰアドレス異なり数の平均値と宛先ポート番号異なり数の平均値を求め、これらをあらかじめ指定した推定用しきい値と比較処理を行い，前記推定様式位置より大きければＰ２Ｐファイル交換と推定する手法を用いる。この時の前記宛先ＩＰアドレス異なり数の平均値と前記宛先ポート番号異なり数の平均値が、それぞれＤＩＰ異なり数平均値２１２ｅ、ＤＰＴ異なり数平均値２１２ｆであり、前記推定しきい値が、Ｐ２Ｐ推定用ＤＩＰ異なり数しきい値２１３ｃとＰ２Ｐ推定用ＤＰＴ異なり数しきい値２１３ｄであり、前記比較処理とそれによる推定結果をＰ２Ｐ抽出テーブル２１２のＰ２Ｐ推定結果２１２ｄに反映する処理が本実施例におけるステップ１２１１の処理である。
【００９６】
以上が、本発明の第２の実施例によるトラヒック分析装置２０１の動作である。
【図面の簡単な説明】
【００９７】
【図１】実施例１におけるトラヒック分析装置の構成の一例を示す図。
【図２】実施例１におけるパケットカウントテーブルの内容の一例を示す図。
【図３】実施例１におけるアイテムセット値のビット構成の一例を示す図。
【図４】実施例１における抽出対象テーブルの内容の一例を示す図。
【図５】実施例１における補助テーブルの内容の一例を示す図。
【図６】実施例１における抽出ホストテーブルの内容の一例を示す図。
【図７】実施例１におけるＰ２Ｐ抽出テーブルの内容の一例を示す図。
【図８】実施例１における推定しきい値テーブルの一例を示す図。
【図９】実施例１におけるトラヒック分析装置の処理概要を示すフローチャート。
【図１０】実施例１におけるパケットカウントテーブル更新処理フロー。
【図１１】実施例１における異なり数計数処理フロー。
【図１２】実施例１におけるホスト情報抽出処理フロー。
【図１３】実施例１におけるＰ２Ｐファイル交換フローの概略を説明する図。
【図１４】実施例１における初期設定情報入力画面の一例を示す図。
【図１５】実施例１におけるホスト情報出力画面の一例を示す図。
【図１６】実施例２におけるトラヒック分析装置の構成の一例を示す図。
【図１７】実施例２におけるＰ２Ｐ抽出テーブルの内容の一例を示す図。
【図１８】実施例２における推定しきい値テーブルの一例を示す図。
【図１９】実施例２におけるトラヒック分析装置の処理概要を示すフローチャート。
【図２０】実施例２におけるＰ２Ｐファイル交換フローの概略を説明する図。
【図２１】実施例２における初期設定情報入力画面の一例を示す図。
【図２２】実施例２におけるホスト情報出力画面の一例を示す図。
【符号の説明】
【００９８】
１０１、２０１  トラヒック分析装置
１０２  ネットワーク
１０３  入出力装置
１０５  パケット送受信部
１０６  メモリ
１０７  トラヒック情報バッファ
１０８  パケットカウントテーブル
１０９  抽出対象テーブル
１１０  計数補助テーブル
１１１  ホストテーブル
１１２、２１２  Ｐ２Ｐ抽出テーブル
１１３、２１３  推定しきい値テーブル
１２０  パケット数積算部
１２１  異なり数積算部
１２２  パケット推定部
【図１】
2008136012.tif 000003
【図２】
2008136012.tif 000004
【図３】
2008136012.tif 000005
【図４】
2008136012.tif 000006
【図５】
2008136012.tif 000007
【図６】
2008136012.tif 000008
【図７】
2008136012.tif 000009
【図８】
2008136012.tif 000010
【図９】
2008136012.tif 000011
【図１０】
2008136012.tif 000012
【図１１】
2008136012.tif 000013
【図１２】
2008136012.tif 000014
【図１３】
2008136012.tif 000015
【図１４】
2008136012.tif 000016
【図１５】
2008136012.tif 000017
【図１６】
2008136012.tif 000018
【図１７】
2008136012.tif 000019
【図１８】
2008136012.tif 000020
【図１９】
2008136012.tif 000021
【図２０】
2008136012.tif 000022
【図２１】
2008136012.tif 000023
【図２２】
2008136012.tif 000024