(57)【要約】【課題】従来の異常通信探知装置がメモリ容量やCPU処理能力の不足により実現できなかった、不特定多数のPCやサーバを防御対象とした高速回線上での多種類の異常通信の同時探知を実現する。【解決手段】前記の異常通信探知は、本願記載の、パケット積算数が多く新しい通信データによって、パケット積算数が少なく古い通信データを上書き抽出する方式と、通信データとして複数のパケットの種類数を記録する方式と、パケットの標本解析を前提とした異常通信の探知方式によって実現される。【選択図】図1
2006319693.tif 000002
【特許請求の範囲】
【請求項１】
受信した複数のパケットのうち、該パケット中のフィールドに所定の値の組み合わせを有するパケットの積算数から上記パケットの特性を判別する異常通信探知装置であって、
受信した複数のパケットのうち一定の割合のパケットを複製するパケットプロセッサと、
パケット中の所定の値の組み合わせのハッシュ値が所定のハッシュ値になるパケットの積算数を保持する記憶領域と、該受信したパケットの積算数を記憶すべき上記ハッシュ値の記憶領域が他の組み合わせを持つパケットの積算数の保持に既に利用されていた回数を積算した衝突回数を保持する記憶領域とを対応付けて有する記憶部と、
パケットを受信した際に、該パケット中の所定の値の組み合わせに基づいてハッシュ値を計算し、該計算されたハッシュ値に基づいて前記組み合わせを持つパケットの積算数を保持する記憶領域を決定し、上記決定された記憶領域に既に保持されている積算数に対応するパケットが持つ組み合わせと上記パケットが持つ組み合わせが一致するか否かを判定し、一致すると判定された場合は上記記憶領域の積算数を加算し、一致せずに衝突と判定された場合はさらに上記記憶領域に対応する上記衝突回数が所定の閾値を超過しているか否かを判定し、超過していない場合は該衝突回数を加算し、超過している場合は上記記憶領域に既に保持されている上記積算数を消去して上記受信したパケットの組み合わせを含むパケットの積算数を上書きするプロセッサとを備えた異常通信探知装置。
【請求項２】
請求項１記載の異常通信探知装置であって、
上記プロセッサが、衝突回数が所定の閾値を超えているか否かを判定する代わりに、上記衝突回数と上記積算数の比率が所定の閾値を超えているか否かを判定することを特徴とする異常通信探知装置。
【請求項３】
受信した複数のパケットのうち、該パケット中の所定の値の組み合わせを有するパケットの積算数から上記パケットの特性を判別する異常通信探知装置であって、
受信したパケットを一定の割合で複製したパケット中の所定の値の組み合わせが同一であるパケットの積算数を保持する記憶領域と、前記パケット数の積算を開始した積算開始時刻と最後に積算した積算最終時刻とを保持する記憶領域とを、対応付けて有する記憶部と、
前記パケット数の積算値を保持する記憶領域を前記所定の値の組み合わせから一意に定めて、定めた前記領域において、積算最終時刻を更新したときに、積算最終時刻と積算開始時刻の差分が予め定めた閾値を超過するか否かの判定を行い、超過している場合は、積算最終時刻の増加値に基づいて、パケットの積算数や衝突回数を減算する処理を行うプロセッサとを備えた異常通信探知装置。
【請求項４】
請求項１乃至３のいずれかに記載の異常通信探知装置であって、
記憶部が、前記衝突回数の積算を開始した衝突開始時刻と最後に積算した衝突最終時刻を保持し、
プロセッサが、衝突と判定して衝突最終時刻を更新したときに、衝突最終時刻と衝突開始時刻の差分と、積算最終時刻と積算開始時刻の差分の比率が、予め定めた閾値を超過するか否かの判定を行い、超過していない場合は、前記記憶領域の衝突回数を増加させる処理を、超過している場合は、前記記憶領域が保持していた他の組み合わせのパケットの積算数を消去して、新たな組み合わせのパケットの積算数を上書き積算する処理を行うことを特徴とする異常通信探知装置。
【請求項５】
受信した複数のパケットのうち、該パケット中の所定の値の組み合わせを有するパケットの積算数から上記パケットの特性を判別する異常通信探知装置であって、
受信したパケットを一定の割合で複製したパケット中の所定の値の組み合わせが同一であるパケットの積算数を保持する記憶領域と、送信元と宛先の一部または全てが一致する複数のパケットの積算数を保持する記憶領域とを、対応付けて有する記憶部と、
前記パケットの積算値を保持する記憶領域を、前記所定の値の組み合わせが含む送信元と宛先、あるいは入力元と出力先を整列した上で一意に定めるプロセッサを備えた異常通信探知装置。
【請求項６】
請求項１、３または５記載の異常通信探知装置であって、
記憶部が、前記パケットの積算数を保持する記憶領域に、別の記憶領域に保持している同一の組み合わせを含むパケットの種類数を保持し、
プロセッサが、同一の組み合わせを含むパケットを新たに上書き積算した場合は、前記パケットの種類数を積算し、同一の組み合わせを含むパケットの積算数が、同一の組み合わせを含まないパケットによって上書き積算された場合は、前記パケットの種類数を減算することを特徴とする異常通信探知装置。
【請求項７】
請求項５記載の異常通信探知装置であって、
プロセッサが、前記の送信元と宛先の一部または全てが一致する複数のパケットの積算数を用いて、前記パケットの特性を判定することを特徴とする異常通信探知装置。
【請求項８】
請求項６記載の異常通信探知装置であって、
プロセッサが、前記の同一の組み合わせを含むパケットの種類数を１つまたは複数用いて、前記パケットの特性を判定することを特徴とする異常通信探知装置。
【請求項９】
受信した複数のパケットのうち、該パケット中の所定の値の組み合わせを有するパケットの積算数から上記パケットの特性を判別する異常通信探知装置であって、
受信したパケットを一定の割合で複製したパケット中の所定の値の組み合わせが同一であるパケットの積算数を、同一の領域に保持する記憶部と、
特定のアドレス番号とポート番号を、共に送信元にしたパケットと、共に宛先にしたパケットと、前者を送信元に後者を宛先にしたパケットと、前者を宛先に後者を送信元としたパケットの積算数を用いて、特定のアドレス番号とポート番号を送信元または宛先としたパケットの特性を判定するプロセッサを備える異常通信探知装置。
【請求項１０】
受信した複数のパケットのうち、該パケット中の所定の値の組み合わせを有するパケットの積算数から上記パケットの特性を判別する異常通信探知装置であって、  受信したパケットを一定の割合で複製したパケット中の所定の値の組み合わせが同一であるパケットの積算数を、同一の領域に保持する記憶部と、
特定のアドレス番号とポート番号を、共に送信元にしたパケットと、共に宛先にしたパケットと、前者を送信元に後者を宛先にしたパケットと、前者を宛先に後者を送信元としたパケットの種類数を用いて、特定のアドレス番号とポート番号を送信元または宛先としたパケットの特性を判定するプロセッサを備える異常通信探知装置。
【請求項１１】
受信した複数のパケットのうち、該パケット中の所定の値の組み合わせを有するパケットの積算数から上記パケットの特性を判別する異常通信探知装置であって、
受信したパケットを一定の割合で複製したパケット中の所定の値の組み合わせが同一であるパケットの積算数を、同一の領域に保持する記憶部と、
特定の宛先と特定のTCPフラグ番号を持つパケットの送信元の種類数と、特定の送信元と特定のTCPフラグ番号を持つパケットの宛先の種類数を用いて、特定の送信元または宛先を持つパケットの特性を判定するプロセッサを備える異常通信探知装置。
【請求項１２】
受信した複数のパケットのうち、該パケット中の所定の値の組み合わせを有するパケットの積算数から上記パケットの特性を判別する異常通信探知装置であって、
受信したパケットを一定の割合で複製したパケット中の所定の値の組み合わせが同一であるパケットの積算数を、同一の領域に保持する記憶部と、
特定のアドレス番号を送信元にしたパケットの送信元ポートや宛先ポートの種類数と、特定のアドレス番号を宛先にしたパケットの送信元ポートや宛先ポートの種類数を用いて、特定のアドレス番号を送信元または宛先としたパケットの特性を判定するプロセッサを備える異常通信探知装置。
【請求項１３】
受信した複数のパケットのうち、該パケット中の所定の値の組み合わせを有するパケットの積算数から上記パケットの特性を判別する異常通信探知装置であって、
受信したパケットを一定の割合で複製したパケット中の所定の値の組み合わせが同一であるパケットの積算数を、同一の領域に保持する記憶部と、
特定のアドレス番号を送信元に含むパケットの送信元、または前記アドレス番号を宛先に含むパケットの宛先が含むポート番号の種類数と、前記アドレス番号を送信元に含むパケットの宛先、または前記アドレス番号を宛先に含むパケットの送信元が含むポート番号の種類数を用いて、特定のアドレス番号を送信元または宛先としたパケットの特性を判定するプロセッサを備える異常通信探知装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回線を流れるデータを解析して、異常な振る舞いをする通信を抽出可能な異常通信探知装置に関する。
【背景技術】
【０００２】
近年、インターネットに代表されるIP (Internet Protocol) ネットワークのライフライン化や個人情報保護法制定などの動きに伴い、ネットワークセキュリティの重要度が高まってきている。そのため、多くの企業や個人は、自分のネットワーク内に設置されたPCからの情報漏えいや、サーバへの攻撃を防止するため、他のネットワークとのアクセス点に、FW (Firewall)やIDS (Intrusion Detect System)などの異常通信探知装置を設置して、内部の情報資源の防御を行うのが一般的になっている。
【０００３】
異常通信探知装置には、大きく分けて、シグネチャ型異常探知装置と、アノマリ型異常探知装置がある。前者は、異常通信や正常通信のパターンを事前に、シグネチャとしてデータベースに保持しておき、回線を流れる通信データと該データベース内容の比較を行うことで、不正行為による異常通信を探知する装置である。後者は、異常通信や正常通信のパターンを事前に、統計的な閾値としてデータベースに保持しておき、回線を流れる通信データと該データベース内容の比較を行うことで、不正行為による異常通信を探知する装置である。両者共、大きく分けて、次の３つの処理を行う。
【０００４】
初めに、回線を流れるパケットデータを解析して、通信の種別や発送元/宛先等のデータを抽出する。次に、抽出した通信のデータをメモリ等の記憶部に蓄積する。最後に、蓄積した通信のデータ毎に、各種の不正通信や正常通信のデータベースとの比較処理を行ってその通信が正常な通信か、不正行為による異常通信かの判定を行い、不正行為による異常通信を抽出する。
【０００５】
これら3つの処理を行う異常通信探知の一例として、回線を流れるパケットを１つ１つ解析して、全ての通信のデータの抽出および蓄積を行い、蓄積した通信のデータを基に異常通信の探知を行う方式（例えば、特許文献１参照。）などが挙げられる。本方式は、異常通信を高精度に探知することが可能である。しかし、回線を流れるパケットの数が多い場合や、抽出する通信の数が多い場合に、通信データの蓄積を行うメモリの容量不足や、通信データの抽出及びデータベースとの比較処理を行うCPUの能力不足を引き起こす。
【０００６】
また、通信データの記録にハッシュテーブルを用いて、通信が観測されない場合やハッシュテーブルが一杯になった時に定期的に通信データを削除する方式（例えば、非特許文献１参照。）を用いることもある。本方式は、再ハッシュを行って空き領域を探索する処理や、定期的に不要な通信データを削除する処理を行わねばならず、前期方式同様に、回線を流れるパケットの数が多い場合や、抽出する通信の数が多い場合に、CPUの能力不足を引き起こす。
そのため、メモリ容量不足やCPUの比較処理能力不足を回避する方式が考案されている。
【０００７】
例えば、検査対象をユーザやコンピュータといった単位で予め限定して、該検査対象の通信量などの情報を記憶部に保持しておき、輻輳発生時に前記通信量が多い検査対象の通信に対して帯域制限を行う方式（例えば、特許文献２参照。）などが開示されている。検査対象をネットワーク単位で予め限定して、異常通信の探知を行う方式（例えば、特許文献３参照。）なども開示されている。これらは共に、検査対象を予め限定することで、通信の抽出回数及び蓄積を行う通信のデータ量を削減し、CPUの能力不足やメモリの容量不足を回避している。
【０００８】
また、検査対象とするネットワーク内に存在するサーバの種類に応じて、探知しようとする異常通信の種類を限定し、比較対象とするデータベース内容をあらかじめ絞り込んでおくことで、CPUの比較処理量を削減する方法（例えば、特許文献４参照。）なども開示されている。探知しようとする異常通信の種類を予め限定した方式（例えば、特許文献５参照。）なども開示されている。
【０００９】
【特許文献１】特開2002-252654
【００１０】
【特許文献２】特開2001-217842
【特許文献３】特開2004-312064
【特許文献４】特開2003-223375
【特許文献５】特開2005-039591
【非特許文献１】Peter Reiher Jelena Mirkovic, Greg Prier, “Attacking DDoS at the source.”, In Proceedings of the IEEE International Conference on Network Protocols10, Paris, France, November 2002.
【発明の開示】
【発明が解決しようとする課題】
【００１１】
従来技術の課題を、インターネットの一例を示した図2を用いて説明する。或る3つの通信事業者が、それぞれネットワーク210，220，230を構築しているとする。ネットワーク210は、ネットワーク220との接続点にルータ211を、ネットワーク230との接続点にルータ212を、企業ユーザのネットワーク240との接続点にルータ213を、個人ユーザのPC 250，260との接続点にルータ214を設置している。企業ユーザは、自分のネットワーク240にサーバ242を設置している。
通常、企業ユーザは、他のネットワークとの接続点に異常通信探知装置241を設置して、サーバ攻撃などの異常通信からサーバ242を防御している。
【００１２】
ところが、こうした異常通信探知装置が防御できない攻撃も存在する。例えば、個人のPC 250と企業のサーバ 242が通信270を行っている時に、サーバ221，222，223，224から、通信経路上のルータ213に向けて、大量のパケットを送信してルータ213のパケット転送機能を停止させる攻撃281が行われたとする。この場合、PC 250とサーバ242の間で送受信しているパケットが、攻撃を受けているルータ213で廃棄272され、正常な通信が行われなくなる。また、個人のPC 260が、P2P等の継続的に大きな帯域を使用するアプリケーションを使用した通信282を行っていると、ルータ214の転送機能が低下して、PC 250とサーバ242の間で送受信しているパケットが頻繁に廃棄271され、通信270の品質が劣化する。更に、サーバ231，232，233，234から、サーバ242に向けて、異常通信探知装置241の処理を故意に増加させるような攻撃283が行われると、異常通信探知装置241が異常通信を防御しきれずに、PC 250とサーバ242の間で送受信しているパケットが廃棄273され、正常な通信が行われなくなる。
【００１３】
そのため、キャリアやISP ( Internet Service Provider ) などの通信事業者は、従来の企業向け異常通信探知装置が防御できなかった異常通信から、通信事業者のネットワークに接続中の不特定多数のPCやサーバを防御することが求められる。
【００１４】
そこで、通信事業者は、他のネットワークとの接続点に設置するエッジルータ211，212，214に、異常通信を探知する高速回線対応の異常通信探知機能を追加して、ネットワークを流れるパケットを解析し、通信障害の原因となるP2P (Peer to Peer) などの過負荷通信や、DoS (Denial of Service)、DDoS (Distributed Denial of Service) などのルータやサーバの攻撃を目的とした不正通信など各種の異常通信を確実に探知して、排除する必要がある。
【００１５】
ところが、従来の方式を用いて、こうした異常通信探知を行う場合、各種の問題があった。例えば、従来の方式（例えば、特許文献１参照。）は、全パケットを解析して、全ての通信のデータを抽出するため、通信事業者の使用する高速回線上では、解析すべきパケット数と、抽出すべき通信の数が増加し、CPUの処理能力が不足する。また、不特定多数のPCやサーバの通信が行われる通信事業者のネットワークでは、抽出される通信のデータの数が多数、かつ動的に変化するため、通信のデータを蓄積するメモリ容量が不足する。また、従来方式（例えば、特許文献２，３参照。）は、検査対象を予め限定しているため、不特定多数のPCやサーバを防御することができない。更に、従来方式（例えば、特許文献４，５参照。）は、探知しようとする異常通信の種類を予め限定するため、多種類の異常通信の探知が行えない、という問題があった。
【００１６】
そこで、本願の目的は、以上の問題点を解決するために、不特定多数のPCやサーバを防御対象とした高速回線上での多種類の異常通信の同時探知を、省メモリ及び省処理量にて実現する異常通信探知機能を提供することである。
【課題を解決するための手段】
【００１７】
本願の異常通信探知装置は、「発明が解決しようとする課題」の欄に述べた課題を解決するために、以下の手段を有する。
受信した複数のパケットのうち一定の割合のパケットを複製する手段と、パケット中の所定の値の組み合わせのハッシュ値が所定のハッシュ値になるパケットの積算数を保持する記憶領域と、該受信したパケットの積算数を記憶すべき上記ハッシュ値の記憶領域が他の組み合わせを持つパケットの積算数の保持に既に利用されていた回数を積算した衝突回数を保持する記憶領域とを対応付けて有する記憶手段と、パケットを受信した際に、該パケット中の所定の値の組み合わせに基づいてハッシュ値を計算し、該計算されたハッシュ値に基づいて前記組み合わせを持つパケットの積算数を保持する記憶領域を決定し、上記決定された記憶領域に既に保持されている積算数に対応するパケットが持つ組み合わせと上記パケットが持つ組み合わせが一致するか否かを判定し、一致すると判定された場合は上記記憶領域の積算数を加算し、一致せずに衝突と判定された場合はさらに上記記憶領域に対応する上記衝突回数が所定の閾値を超過しているか否かを判定し、超過していない場合は該衝突回数を加算し、超過している場合は上記記憶領域に既に保持されている上記積算数を消去して上記受信したパケットの組み合わせを含むパケットの積算数を上書きする手段とを有する。
【００１８】
上記以外の本願が解決しようとする課題、その解決手段は、本願の「発明を実施するための最良の形態」の欄および図面で明らかにされる。
【発明の効果】
【００１９】
従来の方式がメモリ容量やCPU処理能力の不足により実現できなかった、不特定多数のPCやサーバを防御対象とした高速回線上での多種類の異常通信の同時探知を実現する。
前記の探知は、本願の、パケット積算数が多く新しい通信データによって、パケット積算数が少なく古い通信データを上書き抽出する方式と、通信データとして複数のパケットの種類数を記録する方式と、パケットの標本解析を前提とした異常通信の探知方式によって実現される。
【発明を実施するための最良の形態】
【００２０】
本発明が想定するネットワーク構成として、インターネットの一例を示した図2を用いて説明する。或る3つの通信事業者が、それぞれネットワーク210，220，230を構築しているとする。ネットワーク210は、ネットワーク220との接続点にルータ211を、ネットワーク230との接続点にルータ212を、企業ユーザのネットワーク240との接続点にルータ213を、個人ユーザのPC 250，260との接続点にルータ214を設置している。企業ユーザは、自分のネットワーク240にサーバ242を設置している。ネットワーク210を管理する通信事業者は、本願の技術を適用した異常通信の探知機能を搭載したルータ211〜214を、他のネットワークとの接続点であるネットワークエッジに設置する。
本発明の異常通信探知機能を備えるルータ211〜214の概要動作を、図3を用いて説明する。図3は本発明の異常通信探知機能を備えるルータ300を示す。
【００２１】
異常通信探知機能を備えるルータ300は、N個のインターフェース部310-i (i=1〜N)と、N×L個の回線310-i-j (i=1〜N，j=1〜L)と、N個のインターフェース部310-iを結合するパケット中継処理手段320と、異常通信探知機能を備える異常通信探知部100と、探知結果113を基にして設定すべき帯域制御設定を探索して帯域制御のコマンド339を出力する設定値探索部331と、コマンド339を基に通信帯域制御部の設定341を行う制御設定部340より構成される。インターフェース部310-i は、パケットデータ複製部311-i （i=1〜N）を備え、回線310-i-j及びパケット中継処理手段320との間で入出力するパケットを、予め指定した割合Rateで複製して、複製したパケットデータ101を、異常通信探知部100に送信する。また、インターフェース部310-i は、通信帯域制御部312-i （i=1〜N）を備え、制御設定部340の指示通りに、パケットの特性毎に帯域の制御を行う。異常通信のパケットは帯域制限制御を、正規通信のパケットは帯域保護制御を行う。設定値探索部331は、外部に設定値探索装置330として設置される場合もある。
【００２２】
なお、本発明の異常通信探知機能を、図4のような、ルータの外部に設置した演算装置430が備える場合もある。この場合、演算装置430は、CPU 460と、メモリ440と、接続部450と、これらを結合する情報伝達路470より構成される。異常通信探知処理を行うモジュール100は、メモリ440に格納される。パケットデータ複製部311-iが複製したパケットデータ101は、接続部450から演算装置430に入力される。また、探知結果113は、接続部450から出力される。本実施例では、異常通信探知部100をルータ内部に備える場合について説明を行うが、ルータ外部に備える場合についても同様に行うことが可能である。
【００２３】
図8は複製したパケットデータ101のフォーマットの一例を示す。本フォーマットは、パケットデータのサイズを表すSize 801と、パケットが入力した回線の識別番号である入力回線番号を表すInLine 802と、パケットを出力する回線の識別番号である出力回線番号OutLine 803と、データリンク層の送信元アドレスである送信元MACアドレスを表すSMAC 804と、宛先アドレスである宛先MACアドレスを現すDMAC 805と、データリンク層の転送優先度を表す優先度L2-PRI 806と、ネットワーク層のプロトコル（上位アプリケーション）を表すProto 807と、送信元アドレス（送信端末のアドレス）である送信元IPアドレスを表すSIP 808と、宛先アドレス（受信端末のアドレス）である宛先IPアドレスを現すDIP 809と、プロトコルTCPやUDPの送信元ポートを表すSport 810と、宛先ポートを表すDport 811と、TCPフラグを表すFlag 812と、ネットワーク層の転送優先度を表す優先度L3-PRI 813と、パケットデータ複製部311-iがパケットを複製した割合Rate 814と、パケットを複製した時刻Time 815から構成される。
【００２４】
次に、図1，図5〜7，図9〜72を用いて本発明の詳細動作について説明する。図1に異常通信探知部100のブロック図を示す。異常通信探知100は、受信したパケットデータ101を一定の割合で標本化するパケット標本化部119と、標本化部が標本化して出力したパケットデータ102が持つSize 801からL3-PRI 813までの13個の項目の内、どの項目を組み合わせて通信データの抽出を行うかを判定する抽出部180と、抽出した通信データの記録を行う記録部181と、記録した通信データを用いて通信の異常/正常を判定する探知部182と、各種設定を行う設定部171と、設定値の蓄積を行う設定値蓄積テーブル130と、抽出部180や記録部181の履歴を蓄積する抽出/記録履歴蓄積テーブル140と、通信データを蓄積する通信データ蓄積テーブル150から構成される。更に、抽出部180は、組合せ抽出部120と、組合せ整列部121と、アドレス生成部122と、通信データ抽出判定部123から構成され、記録部181は、通信データ記録部124と、種類数記録部125から構成され、探知部182は、組合せ判定部126と、異常/正常判定部127から構成される。
【００２５】
図9〜12には、抽出部180が行う処理のフローチャートを示す。抽出部180の処理は、組合せ抽出処理900（図9）と、組合せ整列処理1000（図10）と、アドレス生成処理1100（図11）と、通信データ抽出判定処理1200（図12）から構成される。処理900は組合せ抽出部120が実行し、処理1000は組合せ整列部121が実行し、処理1100はアドレス生成部122が実行し、処理1200は通信データ抽出判定部123が実行する。
【００２６】
図13〜35には、記録部181が行う処理のフローチャートを示す。記録部181の処理は、通信データ記録処理1300（図13）と、種類数記録処理1600（図16）から構成される。処理1300は通信データ記録部124が実行し、処理1600は種類数記録部125が実行する。通信データ記録処理1300は、パケット数の選択積算処理1310（図14）と、選択積算の種類の記録処理1311（図15）を含む。種類数記録処理1600は、パケットの種類数の減算処理1605（図17〜22）と、上書判定時のパケットの種類数の積算処理1606（図23〜28）と、一致判定時のパケットの種類数の積算処理1603（図29〜35）を含む。
【００２７】
図36〜72には、探知部182が行う処理のフローチャートを示す。探知部182の処理は、組合せ判定処理3600（図36）と、正常/異常判定処理3800（図38）から構成される。処理3600は組合せ判定部126が実行し、処理3800は正常/異常判定部127が実行する。組合せ判定処理3600は、組合せIDの判定処理3604（図37）を含む。正常/異常判定処理3800は、組合せIDに応じた正常/異常判定処理3801（図40〜72）と、異常通信データとホワイトリストの伝達処理3802（図39）を含む。
【００２８】
図5〜7には、設定値蓄積テーブル130と、抽出/記録履歴蓄積テーブル140と、通信データ蓄積テーブル150のフォーマットを示す。フォーマットの詳細は、以下の説明で明らかにされる。
【００２９】
帯域監視部100が複製パケットデータ101を受信すると、まずパケット標本化部119で、複製パケットデータ101の標本化が行われる。設定値蓄積テーブル130内の標本化レートRate 509を読み込み（図1の136）、読み込んだ割合で標本化を行い、標本化パケットデータ102を、抽出部180へ出力する。標本化パケットデータ102のフォーマットは、複製パケットデータと同じであるが、パケットを複製した割合Rate 814は、元の割合に、設定値蓄積テーブル130内の標本化レートRate 509を掛算した値に変更される。また、Rate 509の値が1.0の場合は、全ての複製パケットデータ101を、標本化パケットデータ102として出力する。
【００３０】
抽出部180が標本化パケットデータ102を受信すると、まず組合せ抽出部120にて組合せ抽出処理900が行われる。初めに、抽出/記録履歴蓄積テーブル140が含む全ての変数に初期値（図1の141）を書き込む（ステップ901）。次に、標本化パケットデータ102が持つSize 801からL3-PRI 813までの13個の項目の内、どの項目の組合せを抽出するかを指定する組合せIDを、1から順番に213まで1ずつ増加させながら213通り生成して（ステップ902）、処理900〜1200を繰り返し行う。
【００３１】
組合せIDの下1ビット目が1の場合はSIP 808を、組合せIDの下2ビット目が1の場合はDIP 809を、組合せIDの下3ビット目が1の場合はSport 810を、組合せIDの下4ビット目が1の場合はDport 811を、組合せIDの下5ビット目が1の場合はFlag 812を、組合せIDの下6ビット目が1の場合はInLine 802を、組合せIDの下7ビット目が1の場合はProto 807を、組合せIDの下8ビット目が1の場合はSize 801を、組合せIDの下9ビット目が1の場合はOutLine 803を、組合せIDの下10ビット目が1の場合はSMAC 804を、組合せIDの下11ビット目が1の場合はDMAC 805を、組合せIDの下12ビット目が1の場合はL2-PRI 806を、組合せIDの下13ビット目が1の場合はL3-PRI 813を含む組合せを指定する。例えば、組合せIDが5(=1+4)の場合は、SIP 808とSport 810の2つの項目を含む組合せを、組合せIDが79(=64+8+4+2+1)の場合は、SIP 808とDIP 809とSport 810とDport 811とProto 807の5つの項目を含む組合せを指定する。
【００３２】
組合せIDの生成が終了すると、全ての組合せの抽出が終了したか否かの判定を行う（ステップ903）。組合せIDが213の場合は、全ての組合せの抽出が終了したと判定して、標本化パケットデータ102を記録部181に伝達（図1の107）して（ステップ906）、抽出部180における処理900〜1200の繰り返しを終了し、記録部181の処理1300に入る。組合せIDが213でない場合は、その組合せの抽出をユーザが指定しているか否かの判定を行う（ステップ904）。組合せIDの値がi（i=1〜213-1）の時、設定値蓄積テーブル130内の組合せID指定データID-i（i=1〜213-1）510-iを読み込み（図1の131）、ID-i 510-iが1の場合は、ユーザ指定の組合せと判定して、組合せIDと組合せIDが指定する項目から構成されるパケットデータの情報103を、組合せ整列部121へ伝達する（ステップ905）。ID-iが0の場合は、ユーザ未指定の組合せと判定して、組合せID生成処理（ステップ902）に戻り、次の組合せID（1加算した値）を生成して、同様の処理を繰り返す。なお、本実施例では、設定値蓄積テーブル130内の組合せID指定データID-i（i=1〜28-1）の値を常に1、組合せID指定データID-i（i=28〜213-1）の値を常に0にしている場合を説明する。そのため、組合せ整列部121へ伝達するパケットデータは、SIP 808、DIP 809、Sport 810、Dport 811、Flag 812、InLine 802、Proto 807、Size 801の内の最大8つの項目と、複製割合Rate 814と、複製時刻Time 815から構成される。
【００３３】
組合せ抽出部120が実行する組合せ抽出処理900のステップ905が終了すると、次に組合せ整列部121において、組合せ整列処理1000を行う。組合せ抽出部120から得たパケットデータから複製割合Rate 814と、複製時刻Time 815を除くハッシュ値生成用パケットデータ1020を生成する。更に、SIP 808とDIP 809を含む組合せの時は、SIP 808がDIP 809よりも小さい場合にSIP 808とDIP 809の順番を反転させる処理（ステップ1010）を行い、Sport 810とDport 811を含む組合せの時は、Sport 810がDport 811よりも小さい場合にSport 810とDport 811の順番を反転させる処理（ステップ1011）を行って、ハッシュ値生成用整列済みパケットデータ1030を得る。整列済みパケットデータ1030は、整列済みのIP1 1031とIP2 1032、整列済みのPort1 1033とPort2 1034、Flag 1035、InLine 1036、Proto 1037、Size 1038の内、1〜8つの項目から構成される。最後に、整列済みパケットデータ1030と、組合せIDと、パケットデータから構成される情報104を、アドレス生成部122に伝達する（ステップ1040）。
【００３４】
組合せ整列部121の実行する組合せ整列処理1000が終了すると、次にアドレス生成部122においてアドレス生成処理1100を行う。組合せ整列部121から得た整列済みパケットデータ1030を用いてハッシュ値を計算して、抽出した組合せのデータを記録するアドレスを生成する（ステップ1101）。また、生成したアドレスを、判定/記録履歴蓄積テーブル140内の生成アドレスデータ蓄積部ID-Address-i（i=1〜213-1）610-iに記録（図1の142）する（ステップ1102）。更に、パケットデータと、組合せIDと、整列済みパケットデータ1030と、生成したアドレス値から構成される情報105を、通信データ抽出判定部123へ伝達する（ステップ1103）。
【００３５】
アドレス生成部122が実行するアドレス生成処理1100が終了すると、次に通信データ抽出判定部123において、通信データ抽出判定処理1200を行う。まず、組合せIDの下1ビット目と2ビット目が共に1の場合に下1ビット目だけを0に変更し、組合せIDの下1ビット目が0で2ビット目が1の場合に下1ビット目を1に下2ビット目を0に変更し、組合せIDの下3ビット目と4ビット目が共に1の場合に下3ビット目だけを0に変更し、組合せIDの下3ビット目が0で4ビット目が1の場合に下3ビット目を1に下4ビット目を0に変更した比較用組合せIDを作成する。次に、比較用組合せIDと整列済みパケットデータ1030と、生成したアドレスを基に読み出した（図1の152）通信データ蓄積テーブル150内の領域に記録された通信データ700-k （k=1〜M）が一致するか否かを判定する（ステップ1201）。具体的には、比較用組合せID及び整列済みパケットデータ1030内のIP1 1031，IP2 1032，Port1 1033，Port2 1034，Flag 1035，InLine 1036，Proto 1037，Size 1038と、通信データ700-k内のID 700-k，IP1 701-k，IP2 702-k，Port1 703-k，Port2 704-k，Flag 705-k，Line 706-k，Proto 707-k，Size 708-kとを比較して一致するか否かを判定する。
【００３６】
一致する場合は、一致判定を行う（ステップ1203）。
一致しない場合は、設定値蓄積テーブル130内の上書き判定方式指定値Overwrite-Judge 520を読み込む（図1の132）。上書き判定方式指定値Overwrite-Judge 520が積算数比較指定の場合は、通信データ700-k内の衝突回数Cnf731-kが、設定値蓄積テーブル130内の積算数比較用閾値Overwrite-Num 523を超過するか否かの判定を行う。比率比較指定の場合は、通信データ700-k内の衝突回数Cnf 731-kと積算数C1 711-kの比率が、設定値蓄積テーブル130内の比率比較用閾値Overwrite-Ratio 522を超過するか否かの判定を行う。時間比較指定の場合は、パケットデータ内の複製時刻Time 815と通信データ700-k内の衝突開始時刻CTime 762-k（k=1〜M）の差分が、最終記録時刻LTime761-k（i=1〜M）と記録開始時刻FTime760-k（k=1〜M）との差分を超過するか否かの判定を行う（ステップ1202）。
【００３７】
超過しない場合は、衝突判定を行い（ステップ1204）、通信データ700-k内の衝突回数Cnf 731-kに、複製した割合Rate 814の逆算値を積算（図1の151）する（ステップ1205）。更に、衝突回数Cnf 731-kへの積算が初めての場合、衝突開始時刻CTime 762-kに、パケットデータ内の複製時刻Time 815を記録する（ステップ1205）。
【００３８】
超過する場合は、上書判定を行い（ステップ1206）、上書される通信データ700-kと組合せIDを、抽出/記録履歴蓄積テーブル140内の被上書き通信データOld-Data-i（i=1〜213-1）670-iと被上書き組合せID Overwrite-ID-i（i=1〜213-1）630-iに記録（図1の143）する（ステップ1207）。
【００３９】
判定結果（一致、衝突、上書）毎の処理が終了すると、抽出/記録履歴蓄積テーブル140内のWrite-Kind-i（i=1〜213-1）620-iに判定結果を記録（図1の143）する（ステップ1208）。更に、パケットデータ内の複製時刻Time 815と、通信データ700-k内の記録開始時刻FTime 760-k（k=1〜M）の差分ΔTが、設定値蓄積テーブル130内のエージングタイムATime 521を超過している場合は、通信データ700-k内のパケット積算数C1〜5 711〜715-k（k=1〜M）と、パケット積算バイト数B1〜5 721〜725-k（k=1〜M）と、衝突回数Cnf 731-k（k=1〜M）を、（ATime 521-ΔT）/ATime 521倍して減算、或いは、ATime 521/（ATime 521+ΔT）倍して平均化する（ステップ1209）。最後に、抽出判定処理が終了したことを、組合せ抽出処理900を行う組合せ抽出部120に伝達（図1の106）して（ステップ1210）、処理900〜処理1200の処理を繰り返す。
【００４０】
以上述べた抽出部180の処理900〜1200により、パケット積算数が多く新しい通信データによって、パケット積算数が少なく古い通信データが上書き抽出される。そのため、パケット積算数が大きく、尚且つ開始時間が新しい通信であるほど、上書きされにくく、通信データ蓄積テーブル150に記録が残りやすくなる。これにより、異常探知に必要な通信の情報を省メモリで得ることができるようになる。
【００４１】
抽出部180が行う処理900〜1200の繰り返しが全て終了して、全ての組合せの抽出が終了すると、次は、記録部181が行う処理に入る。記録部181は、パケットデータ107を受け取ると、抽出部180同様に、組合せIDを1ずつ増加させながら繰り返し生成して（ステップ1301）、通信データ記録処理1300と、種類数記録処理1600を交互に行う。組合せIDが213となった場合は、全ての組合せの抽出が終了したと判定して（ステップ1302）、パケットデータ101を探知部182に伝達（図1の110）して（ステップ1313）、記録部181における処理1300と1600の繰り返しを終了し、探知部182の処理に入る。組合せIDが213でない場合は、その組合せの記録をユーザが指定しているか否かの判定を行う（ステップ1303）。組合せIDの値がi（i=1〜213-1）の時、設定値蓄積テーブル130内の組合せID指定データR-i（i=1〜213-1）511-iを読み込み（図1の133）、R-i 511-iが0の場合は、ユーザ未指定の組合せと判定して、組合せID生成処理（ステップ1301）に戻り、次の組合せID（1加算した値）を生成して、同様の処理を繰り返す。R-i 511-iが1の場合は、ユーザ指定の組合せと判定して、抽出/記録履歴蓄積テーブル140内の判定結果Write-Kind-i（i=1〜213-1）620-iを読込み（図1の145）、判定結果Write-Kind-i 620-iに応じて3通りの処理を行う（ステップ1304）。
【００４２】
判定結果Write-Kind-i 620-iが上書の場合（ステップ1306）は、抽出/記録履歴蓄積テーブル140内のステップ1102で記録したアドレスID-Address-i（i=1〜213-1）が定める領域にある通信データ蓄積テーブル150内の通信データ700-k（k=1〜M）を初期化（図1の153）する。更に、SIP 701-kからSize 708-kまでの通信データを、ステップ1000と同様の処理を行って得た整列済みパケットデータに更新する（ステップ1307）。なお、ID 700-kには、組合せIDの下1ビット目と2ビット目が共に1の場合に下1ビット目だけを0に変更し、組合せIDの下1ビット目が0で2ビット目が1の場合に下1ビット目を1に下2ビット目を0に変更し、組合せIDの下3ビット目と4ビット目が共に1の場合に下3ビット目だけを0に変更し、組合せIDの下3ビット目が0で4ビット目が1の場合に下3ビット目を1に下4ビット目を0に変更した比較用組合せIDを記録する。その後で、判定結果Write-Kind-i 620-iが一致の場合（ステップ1305）の処理と合流する。その後、通信データ700-k内のパケット積算数C1 711-kに、パケットデータ内の割合Rate 814の逆算値を積算し、バイト積算数B1 721-kに、パケットデータ内のサイズSize 801と割合Rate 814の逆算値の積を積算する（ステップ1308）。
【００４３】
更に、組合せにSIP/DIPやSport/Dportを含む場合は（ステップ1309）、パケットの選択積算（ステップ1310）と、選択積算の種類の記録（ステップ1311）を行い、通信データ蓄積テーブル150内のC2〜C5 712〜715-k （k=1〜M）とB2〜B5 722〜725-k （k=1〜M）と、抽出/記録履歴蓄積テーブル140内の選択積算の種類ICnt-Kind1-i（i=1〜213-1）と、選択積算の種類I〜III Cnt-Kind1〜3-i（i=1〜213-1） 640〜660-iを変更（図1の144と153）する。詳細を図14内の表と図15内の表に示す。
【００４４】
パケットの選択積算（ステップ1310）では、例えば、パケットデータがSIPとDIPとSportを含む時において、SIP＞DIPの場合は、通信データ700-k内のパケット積算数C2 712-kにパケットデータ内の割合Rate 814の逆算値を、バイト積算数B2 712-kにパケットデータ内のサイズSize 801と割合Rate 814の逆算値の積を積算する。SIP≦DIPの場合は、通信データ700-k内のパケット積算数C4 714-kに、パケットデータ内の割合Rate 814の逆算値を、バイト積算数B4 724-kにパケットデータ内のサイズSize 801と割合Rate 814の逆算値の積を積算する。従って、C2 712-kとB2 722-kは、Port1 703-kを送信元ポートとしてIP1が送信したパケットの積算数と積算バイトを、C3 713-kとB3 723-kは、Port1 703-kを宛先ポートとしてIP1が送信したパケットの積算数と積算バイトを、C4 714-kとB4 724-kは、Port1 703-kを送信元ポートとしてIP1が受信したパケットの積算数と積算バイトを、C5 715-kとB5 725-kは、Port1 703-kを宛先ポートとしてIP1が受信したパケットの積算数と積算バイトを表す。
【００４５】
以上、パケットの選択積算（ステップ1310）のような記録を行うことで、最大４種類のパケット積算数を、１つのエントリから得られるようになり、多種類の異常通信の探知が容易となる。
【００４６】
また、選択積算の種類の記録（ステップ1311）では、C2=0，C3=0，C4=0，C5=0の状態や、C2+C3=0，C4+C5=0の状態、あるいは、C2+C5=0，C3+C4=0の状態から初めて積算した場合、抽出/記録履歴蓄積テーブル140内の選択積算の種類ICnt-Kind1-i（i=1〜213-1）640-iを1,2,3,4に、選択積算の種類ＩICnt-Kind2-i（i=1〜213-1）650-iを5,10に、選択積算の種類IIICnt-Kind3-i（i=1〜213-1）660-iを7,8に設定する（図1の144）。
【００４７】
最後に、判定結果が衝突の場合の処理（ステップ1313）と合流して、組合せIDとパケットデータの情報108を、種類数記録部125に伝達して（ステップ1312）、通信データ記録部124が実行する通信データ記録処理1300を終了する。
【００４８】
種類数記録部125は、通信データ記録部124から組合せIDとパケットデータの情報108を受信すると、種類数記録処理1600を開始する。ここでは、抽出/記録履歴蓄積テーブル140内に記録されている生成済みアドレスID-Address-i（i=1〜213-1）610-iが定める、通信データ蓄積テーブル150内の領域に記載されているK0〜K23（k=1〜M）734〜757-kの値を変更する。K0 734-kは種類数の積算を行ったか否かを判定するための値であり、K1 735-kはIP1がパケットの送受信を行った通信相手数を、K2 736-kはIP1がパケットの送信を行った通信相手数を、K3 737-kはIP1にパケットを返信してきた通信相手数を、K4 738-kはIP1がPort1を送信元ポートとしてパケット送信を行った通信相手数を、K5 739-kはIP1がPort1を宛先ポートとしてパケット送信を行った通信相手数を、K6 740-kはIP1にPort1を送信元ポートとしてパケットを送信してきた通信相手数を、K7 741-kはIP1にPort1を宛先ポートとしてパケットを送信してきた通信相手数を、K8 742-kはパケット送受信に使用したポートの数を、K9 743-kはIP1がパケット送受信に使用したポートの数を、K10 744-kはIP1の通信相手がパケット送受信に使用したポートの数を、K11 745-kはIP1がパケット送信に使用したポートの数を、K12 746-kはIP1の通信相手がパケット受信に使用したポートの数を、K13 747-kはIP1がパケット受信に使用したポートの数を、K14 748-kはIP1の通信相手がパケット送信に使用したポートの数を、K15 749-kはIP1がパケットの送受信に使用したTCPフラグ番号の数を、K16 750-kはIP1がパケットの送信に使用したTCPフラグ番号の数を、K17 751-kはIP1がパケットの受信に使用したTCPフラグ番号の数を、K18 752-kはIP1がパケットの送受信に使用したInLineの種類数を、K19 753-kはIP1がパケットの送信に使用したInLineの種類数を、K20 754-kはIP1がパケットの受信に使用したInLineの種類数を、K21 755-kはIP1がパケットの送受信に使用したプロトコルの数を、K22 756-kはIP1がパケットの送信に使用したプロトコルの数を、K23 757-kはIP1がパケットの受信に使用したプロトコルの数を表す。IP2が指定されている場合は、IP1の通信相手がIP2に特定されている時の種類数を表す。抽出/記録履歴蓄積テーブル140から読み込んだ（図1の146）組合せIDに対応する判定結果Write-Kind-i（i=1〜213-1）620-iに応じて3通りの処理を行う（ステップ1601）。
【００４９】
判定結果Write-Kind-i 620-iが上書の場合は（ステップ1604）、パケットの種類数の減算処理（ステップ1605）を行った後で、パケットの種類数の積算処理（ステップ1606）を行う（図1の154）。判定結果果Write-Kind-i 620-iが一致の場合は（ステップ1602）、パケットの種類数の積算処理（ステップ1603）を行う（図1の154）。判定結果果Write-Kind-iが衝突の場合は（ステップ1607）何も行わない。判定結果がいずれの場合も、最後に種類数の記録が終了したことを通信データ記録部124に通知（図1の109）する（ステップ1608）。
【００５０】
判定結果果Write-Kind-i 620-iが上書の場合に行うパケットの種類数の減算処理（ステップ1605）の詳細を、図17〜22に示す。
【００５１】
まず、抽出/記録履歴蓄積テーブル140から、組合せIDに対応する被上書き組合せの通信データOld-Data-i（i=1〜213-1）670-iと被上書き組合せID Overwrite-ID-i（i=1〜213-1）630-iを読み込む（図1の146）。
【００５２】
被上書きID Overwrite-ID-iの下2ビット目が1であり、被上書き組合せがIP1とIP2を共に含む場合（ステップ1701）、IP2を除く被上書き組合せから処理1100を行ってアドレスを生成し（ステップ1702）、生成アドレス先記載の組合せがIP2を除く被上書き組合せと一致し、被上書き組合せの通信データOld-Data-i（i=1〜213-1）670-i内のK0 の下2ビット目が1である場合（ステップ1703）、組合せIDに対応する被上書き組合せの通信データOld-Data-i（i=1〜213-1）670-i内の被上書き組合せの積算値C1〜C5 711〜715-kを用いて、図17の処理1704を実施する。また、IP1を除く被上書き組合せから処理1100を行ってアドレスを生成し（ステップ1705）、生成アドレス先記載の組合せがIP1を除く被上書き組合せと一致し、被上書き組合せの通信データOld-Data-i（i=1〜213-1）670-i内のK0 の下1ビット目が1である場合（ステップ1706）、組合せIDに対応する被上書き通信データOld-Data-i（i=1〜213-1）670-i内の積算値C1〜C5 711〜715-kを用いて、図17の処理1707を実施する。以上の処理（ステップ1701〜1707）により、K1〜K7 735〜741-kの減算処理が行われる。
【００５３】
被上書き組合せID Overwrite-ID-i 630-iの下1/2ビット目と下3/4ビット目が1であり、被上書き組合せがIP1とPort1を含む場合（ステップ1801）、Port1を除く被上書き組合せから処理1100を行ってアドレスを生成し（ステップ1802）、生成アドレス先記載の組合せがPort1を除く被上書き組合せと一致し、被上書き組合せの通信データOld-Data-i（i=1〜213-1）670-i内のK0 の下3ビット目が1である場合（ステップ1803）、組合せIDに対応する被上書き通信データOld-Data-i（i=1〜213-1）670-i内の被上書き組合せの積算値C1〜5 711〜715-kを用いて、図18の処理1804を実施する。
【００５４】
被上書き組合せID Overwrite-ID-i 630-iの下1/2ビット目と下4ビット目が1であり、被上書き組合せがIP1とPort2を含む場合（ステップ1901）、Port2を除く被上書き組合せから処理1100を行ってアドレスを生成し（ステップ1902）、生成アドレス先記載の組合せがPort2を除く被上書き組合せと一致し、被上書き組合せの通信データOld-Data-i（i=1〜213-1）670-i内のK0 の下4ビット目が1である場合（ステップ1903）、組合せIDに対応する被上書き通信データOld-Data-i（i=1〜213-1）670-i内の被上書き組合せの積算値C1〜C5 711〜715-kを用いて、図19の処理1904を実施する。以上の処理（ステップ1801〜1804とステップ1901〜1904）により、K8〜K14 742〜748-kの減算処理が行われる。
【００５５】
被上書き組合せID Overwrite-ID-iの下1/2ビット目と下5ビット目が1であり、被上書き組合せがIP1とFlagを含む場合（ステップ2001）、Flagを除く被上書き組合せから処理1100を行ってアドレスを生成し（ステップ2002）、生成アドレス先記載の組合せがFlagを除く被上書き組合せと一致し、被上書き組合せの通信データOld-Data-i（i=1〜213-1）670-i内のK0 の下5ビット目が1である場合（ステップ2003）、組合せIDに対応する被上書き通信データOld-Data-i（i=1〜213-1）670-i内の積算値C1〜C5 711〜715-kを用いて、図20の処理2004を実施する。以上の処理（ステップ2001〜2004）により、K15〜17 749〜751-kの減算処理が行われる。
【００５６】
被上書き組合せID Overwrite-ID-iの下1/2ビット目と下7ビット目が1であり、被上書き組合せがIP1とProtoを含む場合（ステップ2101）、Protoを除く被上書き組合せから処理1100を行ってアドレスを生成し（ステップ2102）、生成アドレス先記載の組合せがProtoを除く被上書き組合せと一致し、被上書き組合せの通信データOld-Data-i（i=1〜213-1）670-i内のK0 の下7ビット目が1である場合（ステップ2103）、組合せIDに対応する被上書き通信データOld-Data-i（i=1〜213-1）内の積算値C1〜C5 711〜715-kを用いて、図21の処理2104を実施する。以上の処理（ステップ2101〜2104）により、K21〜23 755〜757-kの減算処理が行われる。
【００５７】
被上書き組合せID Overwrite-ID-iの下1/2ビット目と下6ビット目が1であり、被上書き組合せがIP1とInLineを含む場合（ステップ2201）、InLineを除く被上書き組合せから処理1100を行ってアドレスを生成し（ステップ2202）、生成アドレス先記載の組合せがInLineを除く被上書き組合せと一致し、被上書き組合せの通信データOld-Data-i（i=1〜213-1）670-i内のK0 の下6ビット目が1である場合（ステップ2203）、組合せIDに対応する被上書き通信データOld-Data-i（i=1〜213-1）内の積算値C1〜C5を用いて、図22の処理2204を実施する。以上の処理（ステップ2201〜2204）により、K18〜20 752〜754-kの減算処理が行われる。
【００５８】
以上により、パケットの種類数の減算処理1605が終了し、次に、パケットの種類数の積算処理1606を行う。判定結果が上書の場合に行うパケットの種類数の積算処理（ステップ1606）の詳細を、図23〜28に示す。なお、これらの図とこれらの図が示す処理を説明する以降の文章において、組合せとは、処理1000によって整列済みの組合せのことを表すものとする。
【００５９】
上書判定の組合せがIP1とIP2を含む場合（ステップ2301）、抽出/記録履歴蓄積テーブル140から、上書判定の組合せからIP2を除く組合せの判定結果Write-Kind-i（i=1〜213-1）620-iを読み込み、IP2を除く組合せの判定結果Write-Kind-i (i=1〜213−1)620-iが一致、または上書だった場合（ステップ2302）、IP2を除く組合せから処理1100を行ってアドレスを生成し（ステップ2303）、抽出/記録履歴蓄積テーブル140内の上書判定の組合せの積算種類ICnt-Kind1-i 640-iと積算種類ＩICnt-Kind2-i 650-iを用いて、図23の処理2304を実施し、生成したアドレスに記録されている、IP2を除く組合せの種類数K1〜K7 735〜741-k（k=1〜M）を積算する処理を行う。また、抽出/記録履歴蓄積テーブル140から、上書判定の組合せからIP1を除いた組合せの判定結果620-i（i=1〜213-1）を読み込み、IP1を除く組合せの判定結果Write-Kind-i (i=1〜213−1)620-iが一致、または上書だった場合（ステップ2305）、IP1を除く組合せから処理1100を行ってアドレスを生成し（ステップ2306）、抽出/記録履歴蓄積テーブル140内の上書判定の組合せの積算種類ICnt-Kind1-i 640-iと積算種類ＩICnt-Kind2-i 650-iを用いて、図23の処理2307を実施し、生成したアドレスに記録されている、IP1を除く組合せの種類数K1〜K7 735〜741-k（k=1〜M）を積算する処理を行う。
【００６０】
上書判定の組合せがIP1とPort1を含む場合（ステップ2401）、抽出/記録履歴蓄積テーブル140から、上書判定の組合せからPort1を除いた組合せの判定結果Write-Kind-i（i=1〜213-1）620-iを読み込み、Port1を除く組合せの判定結果Write-Kind-i 620-iが一致、または上書だった場合（ステップ2402）、Port1を除く組合せから処理1100を行ってアドレスを生成し（ステップ2403）、抽出/記録履歴蓄積テーブル140内の上書判定の組合せの積算種類I Cnt-Kind1-i 640-iと積算種類III Cnt-Kind3-i 660-iを用いて、図24の処理2404を実施し、生成したアドレスに記録されている、Port1を除く組合せの種類数K8〜K14 742〜748-k（k=1〜M）を積算する処理を行う。
【００６１】
上書判定の組合せがIP1とPort2を含む場合（ステップ2501）、抽出/記録履歴蓄積テーブル140から、上書判定の組合せからPort2を除いた組合せの判定結果Write-Kind-i（i=1〜213-1）620-iを読み込み、Port2を除く組合せの判定結果Write-Kind-i 620-iが一致、または上書だった場合（ステップ2502）、Port2を除く組合せから処理1100を行ってアドレスを生成し（ステップ2503）、抽出/記録履歴蓄積テーブル140内の上書判定の組合せの積算種類ICnt-Kind1-i 640-iと積算種類III Cnt-Kind3-i 660-iを用いて、図25の処理2504を実施し、生成したアドレスに記録されている、Port2を除く組合せの種類数K8〜K14 742〜748-k（k=1〜M）を積算する処理を行う。
【００６２】
上書判定の組合せがIP1とFlagを含む場合（ステップ2601）、抽出/記録履歴蓄積テーブル140から、上書判定の組合せからFlagを除いた組合せの判定結果Write-Kind-i（i=1〜213-1）620-iを読み込み、Flagを除く組合せの判定結果Write-Kind-i 620-iが一致、または上書だった場合（ステップ2602）、Flagを除く上書判定の組合せから処理1100を行ってアドレスを生成し（ステップ2603）、抽出/記録履歴蓄積テーブル140内の上書判定の組合せの積算種類ICnt-Kind1-i 640-iと積算種類ＩICnt-Kind2-i 650-iを用いて、図26の処理2604を実施し、生成したアドレスに記録されている、Flagを除く組合せの種類数K15〜K17 749〜751-k（k=1〜M）を積算する処理を行う。
【００６３】
上書判定の組合せがIP1とProtoを含む場合（ステップ2701）、抽出/記録履歴蓄積テーブル140から、上書判定の組合せからProtoを除いた組合せの判定結果Write-Kind-i（i=1〜213-1）620-iを読み込み、Protoを除く組合せの判定結果Write-Kind-i 620-iが一致、または上書だった場合（ステップ2702）、Protoを除く上書判定の組合せから処理1100を行ってアドレスを生成し（ステップ2703）、抽出/記録履歴蓄積テーブル140内の上書判定の組合せの積算種類ICnt-Kind1-i 640-iと積算種類ＩICnt-Kind2-i 650-iを用いて、図27の処理2704を実施し、生成したアドレスに記録されている、Protoを除く組合せの種類数K21〜K23 755〜757-k（k=1〜M）を積算する処理を行う。
【００６４】
上書判定の組合せがIP1とInLineを含む場合（ステップ2801）、抽出/記録履歴蓄積テーブル140から、上書判定の組合せからInLineを除いた組合せの判定結果Write-Kind-i（i=1〜213-1）620-iを読み込み、InLineを除く組合せの判定結果Write-Kind-i 620-iが一致、または上書だった場合（ステップ2802）、InLineを除く上書判定の組合せから処理1100を行ってアドレスを生成し（ステップ2803）、抽出/記録履歴蓄積テーブル140内の上書判定の組合せの積算種類ICnt-Kind1-i 640-iと積算種類ＩICnt-Kind2-i 650-iを用いて、図28の処理2804を実施し、生成したアドレスに記録されている、InLineを除く組合せの種類数K18〜K20 752〜754-k（k=1〜M）を積算する処理を行う。
【００６５】
以上により、判定結果が上書の場合に行うパケットの種類数の減算処理1605とパケットの種類数の積算処理1606が終了する。判定結果が一致の場合は、パケットの種類数の積算処理（ステップ1603）のみを行う。詳細を、図29〜35に示す。なお、これらの図とこれらの図が示す処理を説明する以降の文章において、組合せは、整列済み組合せのことを表すものとする。
【００６６】
一致判定の組合せがIP1とIP2を含む場合（ステップ2901）、一致判定の組合せからIP2を除く組合せから処理1100を行ってアドレスを生成し（ステップ2902）、抽出/記録履歴蓄積テーブル140から、一致判定の組合せからIP2を除いた組合せの判定結果Write-Kind-i（i=1〜213-1）620-iを読み込む。IP2を除く一致判定の組合せの判定結果Write-Kind-i 620-iが上書だった場合（ステップ2903）、一致判定の組合せの通信データ700-k内の積算値C1〜C5 711〜715-kを用いて、図29の処理2904を実施し、生成したアドレスに記録されている、IP2を除く一致判定の組合せの種類数K1〜K7 735〜741-k（k=1〜M）を積算する処理を行う。IP2を除く一致判定の組合せの判定結果Write-Kind-i 620-iが一致だった場合（ステップ2905）、一致判定の組合せのK0 734-kの下2ビット目が0か否かの判定を行い（ステップ2906）、0の場合は種類数の積算が行われていないため、一致判定の組合せの通信データ700-k内の積算値C1〜C5 711〜715-kを用いて、図29の処理2907を実施し、生成したアドレスに記録されている、IP2を除く一致判定の組合せの種類数K1〜K7 735〜741-k（k=1〜M）を積算する処理を行う。1の場合は種類数の積算がすでに行われているため、抽出/記録履歴蓄積テーブル140内の一致判定の組合せの積算種類ICnt-Kind1-i 640-iと積算種類ＩICnt-Kind2-i 650-iを用いて、図29の処理2908を実施し、生成したアドレスに記録されている、IP2を除く一致判定の組合せの種類数K2〜K7 736〜741-k（k=1〜M）を追加積算する処理を行う。
【００６７】
一致判定の組合せがIP1とIP2を含む場合（ステップ3001）、一致判定の組合せからIP1を除く組合せから処理1100を行ってアドレスを生成し（ステップ3002）、抽出/記録履歴蓄積テーブル140から、一致判定の組合せからIP1を除いた組合せの判定結果Write-Kind-i（i=1〜213-1）620-iを読み込む。IP1を除く一致判定の組合せの判定結果Write-Kind-i 620-iが上書だった場合（ステップ3003）、一致判定の組合せの通信データ700-k内の積算値C1〜C5 711〜715-kを用いて、図30の処理3004を実施し、生成したアドレスに記録されている、IP1を除く一致判定の組合せの種類数K1〜K7 735〜741-k（k=1〜M）を積算する処理を行う。IP1を除く一致判定の組合せの判定結果Write-Kind-i 620-iが一致だった場合（ステップ3005）、一致判定の組合せのK0 734-kの下1ビット目が0か否かの判定を行い（ステップ3006）、0の場合は種類数の積算が行われていないため、一致判定の組合せの通信データ700-k内の積算値C1〜C5 711〜715-kを用いて、図30の処理3007を実施し、生成したアドレスに記録されている、IP1を除く一致判定の組合せの種類数K1〜K7 735〜741-k（k=1〜M）を積算する処理を行う。1の場合は種類数の積算がすでに行われているため、抽出/記録履歴蓄積テーブル140内の一致判定の組合せの積算種類ICnt-Kind1-i i 640-iと積算種類ＩICnt-Kind2-i 650-iを用いて、図30の処理3008を実施し、生成したアドレスに記録されている、IP1を除く一致判定の組合せの種類数K2〜K7 736〜741-k（k=1〜M）を追加積算する処理を行う。
【００６８】
一致判定の組合せがIP1とPort1を含む場合（ステップ3101）、一致する組合せからPort1を除く組合せから処理1100を行ってアドレスを生成し（ステップ3102）、抽出/記録履歴蓄積テーブル140から、一致判定の組合せからPort1を除いた組合せの判定結果Write-Kind-i（i=1〜213-1）620-iを読み込む。Port1を除く一致判定の組合せの判定結果Write-Kind-i (i=1〜213−1)620-iが上書だった場合（ステップ3103）、一致判定の組合せの通信データ700-k内の積算値C1〜C5 711〜715-kを用いて、図31の処理3104を実施し、生成したアドレスに記録されている、Port1を除く一致判定の組合せの種類数K8〜K14 742〜748-k（k=1〜M）を積算する処理を行う。Port1を除く一致判定の組合せの判定結果が一致だった場合（ステップ3105）、一致判定を行った組合せのK0 734-kの下3ビット目が0か否かの判定を行い（ステップ3106）、0の場合は種類数の積算が行われていないため、一致判定の組合せの通信データ700-k内の積算値C1〜C5 711〜715-kを用いて、図31の処理3107を実施し、生成したアドレスに記録されている、Port1を除く一致判定の組合せのK8〜K14 742〜748-k（k=1〜M）を積算する処理を行う。1の場合は種類数の積算がすでに行われているため、抽出/記録履歴蓄積テーブル140内の一致判定の組合せの積算種類ICnt-Kind1-i 640-iと積算種類IIICnt-Kind3-i 660-iを用いて、図31の処理3108を実施し、生成したアドレスに記録されている、Port1を除く一致判定の組合せの種類数K9〜K14 743〜748-k（k=1〜M）を積算する処理を行う。
【００６９】
一致判定の組合せがIP1とPort2を含む場合（ステップ3201）、一致判定の組合せからPort2を除く組合せから処理1100を行ってアドレスを生成し（ステップ3202）、抽出/記録履歴蓄積テーブル140から、一致判定の組合せからPort2を除いた組合せの判定結果Write-Kind-i（i=1〜213-1）620-iを読み込む。Port2を除く一致判定の組合せの判定結果Write-Kind-i (i=1〜213−1)620-iが上書だった場合（ステップ3203）、一致判定の組合せの通信データ700-k内の積算値C1〜C5 711〜715-kを用いて、図32の処理3204を実施し、生成したアドレスに記録されている、Port2を除く一致判定の組合せの種類数K8〜K14 742〜748-k（k=1〜M）を積算する処理を行う。Port2を除く組合せの判定結果が一致だった場合（ステップ3205）、一致判定を行った組合せのK0 734-kの下4ビット目が0か否かの判定を行い（ステップ3206）、0の場合は種類数の積算が行われていないため、一致判定の組合せの通信データ700-k内の積算値C1〜C5 711〜715-kを用いて、図32の処理3207を実施し、生成したアドレスに記録されている、Port2を除く一致判定の組合せのK8〜K14 742〜748-k（k=1〜M）を積算する処理を行う。1の場合は種類数の積算がすでに行われているため、抽出/記録履歴蓄積テーブル140内の一致判定の組合せの積算種類ICnt-Kind1-i 640-iと積算種類IIICnt-Kind3-i 660-iを用いて、図32の処理3208を実施し、生成したアドレスに記録されている、Port2を除く一致判定の組合せの種類数K9〜K14 743〜748-k（k=1〜M）を積算する処理を行う。
【００７０】
一致判定の組合せがIP1とFlagを含む場合（ステップ3301）、一致判定の組合せからFlagを除く組合せから処理1100を行ってアドレスを生成し（ステップ3302）、抽出/記録履歴蓄積テーブル140から、一致判定の組合せからFlagを除いた組合せの判定結果Write-Kind-i（i=1〜213-1）620-iを読み込む。Flagを除く一致判定の組合せの判定結果Write-Kind-i (i=1〜213−1)620-iが上書だった場合（ステップ3303）、一致判定の組合せの通信データ700-k内の積算値C1〜C5 711〜715-kを用いて、図33の処理3304を実施し、生成したアドレスに記録されている、Flagを除く一致判定の組合せの種類数K15〜K17 749〜751-k（k=1〜M）を積算する処理を行う。Flagを除く一致判定の組合せの判定結果が一致だった場合（ステップ3305）、一致判定の組合せのK0 734-kの下5ビット目が0か否かの判定を行い（ステップ3306）、0の場合は種類数の積算が行われていないため、一致判定の組合せの通信データ700-k内の積算値C1〜C5 711〜715-kを用いて、図33の処理3307を実施し、生成したアドレスに記録されている、Flagを除く一致判定の組合せの種類数K15〜K17 749〜751-k（k=1〜M）を積算する処理を行う。1の場合は種類数の積算がすでに行われているため、抽出/記録履歴蓄積テーブル140内の一致判定の組合せの積算種類ICnt-Kind1-i 640-iと積算種類ＩICnt-Kind2-i 650-iを用いて、図33の処理3308を実施し、生成したアドレスに記録されている、Flagを除く一致判定の組合せの種類数K16〜K17 750〜751-k（k=1〜M）を積算する処理を行う。
【００７１】
一致判定の組合せがIP1とProtoを含む場合（ステップ3401）、一致判定の組合せからProtoを除く組合せから処理1100を行ってアドレスを生成し（ステップ3402）、抽出/記録履歴蓄積テーブル140から、一致判定の組合せからProtoを除いた組合せの判定結果Write-Kind-i(i=1〜213−1)620-iを読み込む。Protoを除く一致判定の組合せの判定結果Write-Kind-i (i=1〜213−1)620-iが上書だった場合（ステップ3403）、一致判定の組合せの通信データ700-k内の積算値C1〜C5 711〜715-kを用いて、図34の処理3404を実施し、生成したアドレスに記録されている、Protoを除く一致判定の組合せの種類数K21〜K23 755〜757-k（k=1〜M）を積算する処理を行う。Protoを除く組合せの判定結果が一致だった場合（ステップ3405）、一致判定の組合せのK0 734-kの下7ビット目が0か否かの判定を行い（ステップ3406）、0の場合は種類数の積算が行われていないため、一致判定の組合せの通信データ700-k内の積算値C1〜C5 711〜715-kを用いて、図34の処理3407を実施し、生成したアドレスに記録されている、Protoを除く一致判定の組合せのK21〜K23 755〜757-k（k=1〜M）を積算する処理を行う。1の場合は種類数の積算がすでに行われているため、抽出/記録履歴蓄積テーブル140内の一致判定の組合せの積算種類ICnt-Kind1-i 640-iと積算種類ＩICnt-Kind2-i 650-iを用いて、図34の処理3408を実施し、生成したアドレスに記録されている、Protoを除く一致判定の組合せのK22〜K23 756〜757-k（k=1〜M）を積算する処理を行う。
【００７２】
一致判定の組合せがIP1とInLineを含む場合（ステップ3501）、一致判定の組合せからInLineを除く組合せから処理1100を行ってアドレスを生成し（ステップ3502）、抽出/記録履歴蓄積テーブル140から、一致判定の組合せからInLineを除いた組合せの判定結果Write-Kind-i(i=1〜213−1)620-iを読み込む。InLineを除く一致判定の組合せの判定結果が上書だった場合（ステップ3503）、一致判定の組合せの通信データ700-k内の積算値C1〜C5 711〜715-kを用いて、図35の処理3504を実施し、InLineを除く一致判定の組合せの種類数K18〜K20 752〜754-k（k=1〜M）を積算する処理を行う。InLineを除く一致判定の組合せの判定結果が一致だった場合（ステップ3505）、一致判定の組合せのK0 734-kの下6ビット目が0か否かの判定を行い（ステップ3506）、0の場合は種類数の積算が行われていないため、一致判定の組合せの通信データ700-k内の積算値C1〜C5 711〜715-kを用いて、図35の処理3507を実施し、InLineを除く一致判定の組合せの種類数K18〜K20 752〜754-k（k=1〜M）を積算する処理を行う。1の場合は種類数の積算がすでに行われているため、抽出/記録履歴蓄積テーブル140内の一致判定の組合せの積算種類ICnt-Kind1-i 640-iと積算種類ＩICnt-Kind2-i 650-iを用いて、図35の処理3508を実施し、InLineを除く一致判定の組合せの種類数K19〜K20 753〜754-k（k=1〜M）を積算する処理を行う。
【００７３】
以上、パケットの種類数記録処理1600のような記録を行うことで、最大23種類の統計データを、1エントリから一括で得られるようになり、多種類の異常通信の探知が容易となる。
【００７４】
記録部181が行う処理1300と処理1600の繰り返しが全て終了して、全ての組合せの記録が終了すると、次は、探知部182が行う処理に入る。探知部182では、記録部181同様に、組合せIDを1ずつ増加させながら繰り返し生成して（ステップ3601）、組合せ判定処理3600と、正常/異常判定処理3800を交互に行う。組合せIDが213となった場合は、全ての組合せの探知が終了したと判定して（ステップ3602）、探知部182における処理3600と3800の繰り返しが終了し、全ての処理が終了する。組合せIDが213でない場合は、その組合せの抽出をユーザが指定しているか否かと、その組合せの判定結果が衝突か否かの判定を行う（ステップ3603）。組合せIDの値がi（i=1〜213-1）の時、設定値蓄積テーブル130内の組合せID指定データID-i（i=1〜213-1）と、抽出/記録履歴蓄積テーブル140内の判定結果Write-Kind-i（i=1〜213-1）620-iを読み込み（図1の135,147）、ID-iが0または判定結果が衝突の場合は、ユーザ未指定の組合せ、または未抽出の組合せと判定して、組合せID生成処理（ステップ3601）に戻り、次の組合せID（1加算した値）を生成して、同様の処理を繰り返す。ID-iが1で、判定結果が上書や一致の場合は、ユーザ指定、尚且つ抽出済みの組合せと判断して、次に、正常/異常の判定を行うべき組合せか否かを判定する（ステップ3604）。正常/異常の判定を行うべき組合せと判定されると、組合せIDが正常/異常判定部127に伝達（図1の111）され（ステップ3605）、組合せ判定処理3600が終了する。
【００７５】
正常/異常の判定を行うべき組合せか否かを判定するステップ3604の詳細を図37に示す。本図において、組合せは整列済み組合せを表す。ステップ3701〜3710に示す10通りの組合せについてのみ、正常/異常の判定を行う。
【００７６】
正常/異常判定処理3800では、この10通りの組合せ毎に、正常な通信か、異常な通信かの判定を行い（ステップ3801）、異常と判定された場合は、判定時に得られた異常通信のデータとホワイトリストを、異常通信探知部の外部に、探知情報113として出力する（ステップ3802）。ステップ3802の後や、正常と判定された場合は、正常/異常判定処理が終了したことを、組合せ判定部126に伝達（図1の112）して、正常/異常判定処理3800が終了する（ステップ3803）。
【００７７】
図39に、ステップ3802において出力する異常通信のデータが含む異常通信の種類を示す。正常/異常の判定を行う10通りの組合せから、33種類の異常通信の探知結果が出力される。
【００７８】
図40〜72には、10通りの組合せの正常/異常を判定することで、図39に示す33種類の異常通信を探知する正常/異常判定処理3800の詳細を示す。なお、これらの図とこれらの図が示す処理を説明する以降の文章では、組合せは、整列済み組合せのことを表す。また、探知処理に入る前に、抽出/記録履歴蓄積テーブル140内の組合せに対応するアドレスID-Address-i 610-iを基に、通信データ蓄積テーブル150内の通信データ700-kを読み出す（図1の134と155）。
【００７９】
図40には、Syn Flag TCP Flood型DoS攻撃を探知する処理を示す。まず、IP1とIP2とFlagを含む組合せか否か（ステップ4001）、FlagがSynであるか否か（ステップ4002）、を判定する。共に満たす場合は、本組合せの通信データ蓄積テーブル150内の通信データ700-k内の積算数C2 712-k + C3 713-kまたはC4 714-k + C5 715-kを、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、Syn Flag TCP Flood型DoS攻撃探知用の閾値Thr1 532-1を超過するか否かを判定する（ステップ4003）。超過する場合は、FlagをAck等に変更した組合せから生成したアドレスを用いて、通信データ700-kを通信データ蓄積テーブル150から読み込み（ステップ4004）、(C2+C3)/ATime＞Thr1のときは、FlagをAck等に変更した組合せの通信データ700-kの積算値(C4+C5) が0か否かを、(C4+C5)/ATime＞Thr1のときは、FlagをAck等に変更した組合せの通信データ700-kの積算値(C2+C3) が0か否かを判定する（ステップ4005）。0の場合は、Synパケットを受信している端末が、Synパケットを送信している端末にAckパケット等のデータパケットを返信していないことを意味しており異常と判定される。この場合、Syn Flag TCP Flood型DoS攻撃と判定される。
【００８０】
図41には、特定Flag TCP Flood型DoS攻撃を探知する処理を示す。まず、IP1とIP2とFlagを含む組合せか否かを判定する（ステップ4101）。共に満たす場合は、本組合せの通信データ蓄積テーブル150内の通信データ700-k内の積算数(C2+C3)または(C4+C5)を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、特定Flag TCP Flood型DoS攻撃探知用の閾値Thr2 532-2を超過するか否かを判定する（ステップ4102）。超過する場合は、FlagをAck等に変更した組合せから生成したアドレスを用いて、通信データ700-kを通信データ蓄積テーブル150から読み込み(ステップ4103)、(C2+C3)/ATime＞Thr2のときは、FlagをAck等に変更した組合せの通信データ700-kの積算値(C4+C5)が0か否かを、(C4+C5)/ATime＞Thr2のときは、FlagをAck等に変更した組合せの通信データ700-kの積算値(C2+C3)が0か否かを判定する（ステップ4104）。0の場合は、特定Flagパケットを受信している端末が、特定Flagパケットを送信している端末にAckパケット等のデータパケットを返信していないことを意味しており異常と判定される。この場合、特定Flag TCP Flood型DoS攻撃と判定される。
【００８１】
図42には、Syn Flag TCP Flood型DDoS攻撃を探知する処理を示す。まず、IP1とFlagを含む組合せか否か（ステップ4201）、FlagがSynであるか否か（ステップ4202）、を判定する。共に満たす場合は、本組合せの通信データ蓄積テーブル150内の通信データ700-k内の積算数(C4+C5）を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、Syn Flag TCP Flood型DDoS攻撃探知用の閾値Thr3 532-3を超過するか否か、Synパケットを送信してきた通信相手数K3 737-kが送信元数の閾値SIP-N 583を超過するか否かを判定する（ステップ4203）。超過する場合は、FlagをAck等に変更した組合せから生成したアドレスを用いて、通信データ700-kを通信データ蓄積テーブル150から読み込み（ステップ4204）、FlagをAck等に変更した組合せの通信データ700-k内のAckパケットの返信先数K2 736-kが、Synパケットを送信してきた通信相手数K3 737-kと設定値蓄積テーブル130内の閾値IThr3-1 540の積を超過するか否かを判定する（ステップ4205）。超過しない場合は、Synパケットを送信してきた通信相手数がデータパケットを返信した通信相手数より多いことを意味しており、異常である。更に、通信データ蓄積テーブルを探索して、組合せが含むIPにSynパケットを送信してきて、組合せが含むIPがAckパケット等を返信した通信相手数を取得し（ステップ4206）、取得した通信相手数が、Synパケットを送信してきた通信相手数K3 737-kと、設定値蓄積テーブル130内の閾値ＩIThr3-2 541の積よりも小さいか否かを判定する（ステップ4207）。小さい場合は、Synパケットを送信してきた通信相手数が、Synパケットを送信してきてデータパケットを返信した通信相手数より多いことを意味しており、異常である。更に、通信データ蓄積テーブルを探索して、組合せが含むIPがAckパケット等を返信した通信相手をホワイトリストとして取得する（ステップ4208）。異常通信の種類は、Syn Flag TCP Flood型DDoS攻撃となる。
【００８２】
図43には、特定Flag TCP Flood型DDoS攻撃を探知する処理を示す。まず、IP1とFlagを含む組合せか否かを判定する（ステップ4301）。満たす場合は、本組合せの通信データ蓄積テーブル150内の通信データ700-k内の積算数(C4+C5)を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、特定Flag TCP Flood型DDoS攻撃探知用の閾値Thr4 532-4を超過するか否か、特定Flagパケットを送信してきた通信相手数K3 737-kが送信元数の閾値SIP-N 583を超過するか否かを判定する（ステップ4302）。超過する場合は、FlagをAck等に変更した組合せから生成したアドレスを用いて、通信データ700-kを通信データ蓄積テーブル150から読み込み（ステップ4303）、FlagをAck等に変更した組合せの通信データ700-k内のAckパケットの返信先数K2 736-kが、特定Flagパケットを送信してきた通信相手数K3 737-kと設定値蓄積テーブル130内の閾値IThr4-1 542の積を超過するか否かを判定する（ステップ4304）。超過しない場合は、特定Flag番号を持つTCPパケットを送信してきた通信相手数が、データパケットを返信した通信相手数より多いことを意味しており、異常である。更に、通信データ蓄積テーブルを探索して、組合せが含むIPに特定Flagパケットを送信してきて、組合せが含むIPがAckパケット等を返信した通信相手数を取得し（ステップ4305）、取得した通信相手数が、特定Flagパケットを送信してきた通信相手数K3 737-kと、設定値蓄積テーブル130内の閾値ＩIThr4-2 543の積よりも小さいか否かを判定する（ステップ4306）。小さい場合は、特定Flag番号を持つTCPパケットを送信してきた通信相手数が、特定Flag番号を持つTCPパケットを送信してきてデータパケットを返信した通信相手数より多いことを意味しており、異常である。更に、通信データ蓄積テーブルを探索して、組合せが含むIPがAckパケット等を返信した通信相手をホワイトリストとして取得する（ステップ4307）。異常通信の種類は、特定Flag TCP Flood型DDoS攻撃となる。
【００８３】
図44には、ランダム Flag TCP Flood型DoS攻撃を探知する処理を示す。まず、IP1とIP2とProtoを含む組合せか否か（ステップ4401）、ProtoがTCPであるか否かを判定する（ステップ4402）。満たす場合は、本組合せの通信データ蓄積テーブル150内の通信データ700-k内の積算数(C2+C3)を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、ランダムFlag TCP Flood型DoS攻撃探知用の閾値Thr5 532-5を超過し、尚且つIP1がIP2に送信したパケットのFlag番号の種類数K16がFlag番号用の閾値Flag-N 580を超過するか否かを判定、または、通信データ700-k内の積算数(C4+C5）を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、ランダムFlag TCP Flood型DoS攻撃探知用の閾値Th5 532-5を超過し、尚且つIP1がIP2から受信したパケットのFlag番号の種類数K17がFlag番号用の閾値Flag-N 580を超過するか否かを判定する（ステップ4403）。超過する場合は、FlagをAck等に変更した組合せから生成したアドレスを用いて、通信データ700-kを通信データ蓄積テーブル150から読み込み（ステップ4404）、(C2+C3)/ATime＞Thr1のときは、FlagをAck等に変更した組合せの通信データ700-kの積算値(C4+C5)が0か否かを、(C4+C5）/ATime＞Thr1のときは、FlagをAck等に変更した組合せの通信データ700-kの積算値(C2+C3)が0か否かを判定する（ステップ4405）。0の場合は、ランダムFlagパケットを受信している端末が、ランダムFlagパケットを送信している端末にAckパケット等のデータパケットを返信していないことを意味しており異常と判定される。この場合、ランダムFlag TCP Flood型DoS攻撃と判定される。
【００８４】
図45には、ICMP Flood型DoS攻撃を探知する処理を示す。まず、IP1とIP2とProtoを含む組合せか否か（ステップ4501）、ProtoがICMPであるか否かを判定する（ステップ4502）。満たす場合は、本組合せの通信データ蓄積テーブル150内の通信データ700-k内の積算数(C2+C3)を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、ICMP Flood型DoS攻撃探知用の閾値Thr6 532-6を超過するか否かを判定、または、通信データ700-k内の積算数(C4+C5)を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、ICMP Flood型DoS攻撃探知用の閾値Th6 532-6を超過するか否かを判定する（ステップ4503）。超過する場合は、異常と判定される。この場合、ICMP Flood型DoS攻撃と判定される。
【００８５】
図46には、特定IP間ランダムPort過負荷通信を探知する処理を示す。まず、IP1とIP2とProtoを含む組合せか否か（ステップ4601）、ProtoがTCP/UDPであるか否かと、本組合せの通信データ蓄積テーブル150内の通信データ700-k内のIP1の使用するポート数K9がポート用の閾値Port_N 581を超過するか否かと、IP2の使用するポート数K10がポート用の閾値Port_N 581を超過するか否か、を判定する（ステップ4602）。超過する場合は、本組合せの通信データ蓄積テーブル150内の通信データ700-k内の積算バイト(B2+B3)を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、特定IP間ランダムPort過負荷通信探知用の閾値Thr7 532-7を超過するか否かを判定、または、通信データ700-k内の積算バイト(B4+B5)を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、特定IP間ランダムPort過負荷通信探知用の閾値Thr7 532-7を超過するか否かを判定する（ステップ4603）。超過する場合は、異常と判定される。この場合、特定IP間ランダムPort過負荷通信と判定される。
【００８６】
図47には、特定IP間特定Proto使用過負荷通信を探知する処理を示す。まず、IP1とIP2とProtoを含む組合せか否かを判定する（ステップ4701）。超過する場合は、本組合せの通信データ蓄積テーブル150内の通信データ700-k内の積算バイト(B2+B3）を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、特定IP間特定Proto使用過負荷通信探知用の閾値Thr8 532-8を超過するか否かを判定、または、通信データ700-k内の積算バイト(B4+B5)を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、特定IP間特定Proto使用過負荷通信探知用の閾値Thr8 532-8を超過するか否かを判定する（ステップ4702）。超過する場合は異常と、超過しない場合は正常と判定される。異常の場合、特定IP間特定Proto使用過負荷通信と判定される。
【００８７】
図48には、ランダムFlag TCP Flood型DDoS攻撃を探知する処理を示す。まず、IP1とProtoを含む組合せか否かを判定する（ステップ4801）。満たす場合は、ProtoがTCPか否かと、通信データ蓄積テーブル150内の通信データ700-k内のIP1が受信したパケットのFlag番号の種類数K17 751-kが設定値蓄積テーブル130内のFlag用の閾値Flag-N 580を超過するか否かを判定する（ステップ4802）。満たす場合は、本組合せの通信データ蓄積テーブル150内の通信データ700-k内の積算数(C4+C5)を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、ランダムFlag TCP Flood型DDoS攻撃探知用の閾値Thr9 532-9を超過するか否かと、ランダムFlagパケットを送信してきた通信相手数K3 737-kが送信元数の閾値SIP-N 583を超過するか否かを判定する（ステップ4803）。超過する場合は、ProtoをFlagのAck等に変更した組合せから生成したアドレスを用いて、通信データ700-kを通信データ蓄積テーブル150から読み込み（ステップ4804）、ProtoをFlagのAck等に変更した組合せの通信データ700-k内のAckパケットの返信先数K2 736-kが、ランダムFlagパケットを送信してきた通信相手数K3 737-kと設定値蓄積テーブル130内の閾値IThr9-1 544の積を超過するか否かを判定する（ステップ4805）。超過しない場合は、ランダムFlagパケットを送信してきた通信相手数が、データパケットを返信した通信相手数より多いことを意味しており、異常である。更に、通信データ蓄積テーブルを探索して、組合せが含むIPにTCPパケットを送信してきて、組合せが含むIPがAckパケット等を返信した通信相手数を取得し（ステップ4806）、取得した通信相手数が、TCPパケットを送信してきた通信相手数K3 737-kと、設定値蓄積テーブル130内の閾値ＩIThr9-2 545の積よりも小さいか否かを判定する（ステップ4807）。小さい場合は、ランダムFlagパケットを送信してきた通信相手数が、ランダムFlagパケットを送信してきてデータパケットを返信した通信相手数より多いことを意味しており、異常である。更に、通信データ蓄積テーブルを探索して、組合せが含むIPがAckパケット等を返信した通信相手をホワイトリストとして取得する（ステップ4808）。異常通信の種類は、ランダムFlag TCP Flood型DDoS攻撃となる。
【００８８】
図49には、ランダムPort Worm攻撃を探知する処理を示す。まず、IP1とProtoを含む組合せか否かを判定する（ステップ4901）。満たす場合は、ProtoがTCP/UDPか否かと、通信データ蓄積テーブル150内の通信データ700-k内のIP1が送信したパケットの送信元Port番号の種類数K11 745-kと、宛先Port番号の種類数K12 746-kが、設定値蓄積テーブル130内のPort用の閾値Port-N 581を超過するか否かを判定する（ステップ4902）。満たす場合は、本組合せの通信データ蓄積テーブル150内の通信データ700-k内の積算数(C2+C3)を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、ランダムPort Worm攻撃探知用の閾値Thr10 532-10を超過するか否かと、パケットを送信した通信相手数K2 736-kが宛先数の閾値DIP-N 584を超過するか否かを判定する（ステップ4903）。超過する場合は、ProtoがTCPの場合は、パケットを返信してきた通信相手数K3 737-kが、パケットを送信した通信相手数K2 736-kと設定値蓄積テーブル130内の閾値IThr10-1 546の積を超過するか否か、通信相手が返信に使用したポートの種類数K13 747-kが、通信相手が受信に使用したポートの種類数K12 746-kと設定値蓄積テーブル130内の閾値ＩIThr10-2 547の積を超過するか否かを判定し、ProtoがUDPの場合は、パケットを返信してきた通信相手数K3 737-kが、パケットを送信した通信相手数K2 736-kと設定値蓄積テーブル130内の閾値IIIThr10-3 548の積を超過するか否か、通信相手が返信に使用したポートの種類数K13 747-kが、通信相手が受信に使用したポートの種類数K12 746-kと設定値蓄積テーブル130内の閾値ＩＶThr10-4 549の積を超過するか否かを判定する（ステップ4904）。超過しない場合は、ランダムPort番号パケットを送信した通信相手数が、パケットを返信してきた通信相手数より多いことを意味しており、異常である。更に、通信データ蓄積テーブルを探索して、組合せが含むIPに同一のProtoを持つパケットを返信してきた通信相手をホワイトリストとして取得する（ステップ4905）。異常通信の種類は、ランダムPort Worm攻撃と判定する。
【００８９】
図50には、ランダムPort DDoS攻撃を探知する処理を示す。まず、IP1とProtoを含む組合せか否かを判定する（ステップ5001）。満たす場合は、ProtoがTCP/UDPか否かと、通信データ蓄積テーブル150内の通信データ700-k内のIP1が受信したパケットの送信元Port番号の種類数K13 747-kと、宛先Port番号の種類数K14 748-kが、設定値蓄積テーブル130内のPort用の閾値Port-N 581を超過するか否かを判定する（ステップ5002）。満たす場合は、本組合せの通信データ蓄積テーブル150内の通信データ700-k内の積算数(C4+C5)を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、ランダムPort DDoS攻撃探知用の閾値Thr11 532-11を超過するか否かと、パケットを送信してきた通信相手数K3 737-kが送信元数の閾値SIP-N 583を超過するか否かを判定する（ステップ5003）。超過する場合は、ProtoがTCPの場合は、パケットを返信した通信相手数K2 736-kが、パケットを送信してきた通信相手数K3 737-kと設定値蓄積テーブル130内の閾値IThr11-1 550の積を超過するか否か、通信相手への返信に使用したポートの種類数K11 745-kが、通信相手からの受信に使用したポートの種類数K14 748-kと設定値蓄積テーブル130内の閾値ＩIThr11-2 551の積を超過するか否かを判定し、ProtoがUDPの場合は、パケットを返信した通信相手数K2 736-kが、パケットを送信してきた通信相手数K3 737-kと設定値蓄積テーブル130内の閾値IIIThr11-3 552の積を超過するか否か、通信相手への返信に使用したポートの種類数K11 747-kが、通信相手からの受信に使用したポートの種類数K14 748-kと設定値蓄積テーブル130内の閾値ＩＶThr11-4 553の積を超過するか否かを判定する（ステップ5004）。超過しない場合は、ランダムPort番号パケットを送信してきた通信相手数が、パケットを返信した通信相手数より多いことを意味しており、異常である。更に、通信データ蓄積テーブルを探索して、組合せが含むIPが、同一のProtoのパケット等を返信した通信相手をホワイトリストとして取得する（ステップ5005）。異常通信の種類は、ランダムPort DDoS攻撃となる。
【００９０】
図51には、ICMP Flood型 DDoS/Worm攻撃を探知する処理を示す。まず、IP1とProtoを含む組合せか否かを判定する（ステップ5101）。満たす場合は、ProtoがICMPか否かの判定を行い、満たす場合は、通信データ蓄積テーブル150内の通信データ700-k内の、IP1がパケットを受信した通信相手数K3 737-kが、設定値蓄積テーブル130内の送信元用の閾値SIP-N 583を超過するか否か、或いは、IP1がパケットを送信した通信相手数K2 736-kが、設定値蓄積テーブル130内の宛先用の閾値DIP-N 584を超過するか否かの判定を行う（ステップ5102）。超過する場合は、本組合せの通信データ蓄積テーブル150内の通信データ700-k内の積算数(C2+C3)を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、ICMP Flood型 DDoS/Worm攻撃探知用の閾値Thr12 532-12を超過し、ICMPパケットを送信してきた通信相手数K3 737-kが、ICMPパケットを返信した通信相手数K2 736-kと設定値蓄積テーブル130内の閾値IThr12-1 554の積を超過するか否か、或いは、積算数(C4+C5)を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、ICMP Flood型 DDoS/Worm攻撃探知用の閾値Thr12 532-12を超過し、ICMPパケットを送信した通信相手数K2 736-kが、ICMPパケットを返信してきた通信相手数K3 737-kと設定値蓄積テーブル130内の閾値IThr12-2 555の積を超過するか否かの判定を行う（ステップ5103）。異常通信の種類は、ICMP Flood型 DDoS/Worm攻撃となる。
【００９１】
図52には、特定Proto使用Worm攻撃を探知する処理を示す。まず、IP1とProtoを含む組合せか否かを判定する（ステップ5201）。満たす場合は、Proto≠TCPかつProto≠UDPであるか否かを判定し、満たす場合は、本組合せの通信データ蓄積テーブル150内の通信データ700-k内のパケットを送信した通信相手数K2 736-kが宛先数の閾値DIP-N 584を超過するか否かを判定する（ステップ5202）。超過する場合は、通信データ700-k内の積算数(C2+C3)を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、特定Proto使用Worm攻撃探知用の閾値Thr13 532-13を超過するか否かを判定する（ステップ5203）。特定Protoパケットを送信してきた通信相手数K3 737-kが、特定Protoパケットを返信した通信相手数K2 736-kと設定値蓄積テーブル130内の閾値IThr13-1 556の積を超過するか否かを判定する（ステップ5204）。超過しない場合は、特定Proto番号パケットを送信した通信相手数が、特定Proto番号パケットを返信してきた通信相手数より多いことを意味しており、異常である。更に、通信データ蓄積テーブルを探索して、組合せが含むIPが特定Protoパケットを送信して、特定Protoのパケットを返信してきた通信相手数を取得し（ステップ5205）、取得した通信相手数が、特定Protoパケットを送信した通信相手数K2 736-kと、設定値蓄積テーブル130内の閾値ＩIThr13-2 557の積よりも小さいか否かを判定する（ステップ5206）。小さい場合は、特定Proto番号パケットを送信した通信相手数が、特定Proto番号パケットを送信して特定Proto番号パケットを返信してきた通信相手数より多いことを意味しており、異常である。更に、通信データ蓄積テーブルを探索して、組合せが含むIPに特定Protoパケット等を返信した通信相手をホワイトリストとして取得する（ステップ5207）。異常通信の種類は、特定Proto使用Worm攻撃となる。
【００９２】
図53には、特定Proto使用DDoS攻撃を探知する処理を示す。まず、IP1とProtoを含む組合せか否かを判定する（ステップ5301）。満たす場合は、Proto≠TCPかつProto≠UDPであるか否かを判定し、満たす場合は、本組合せの通信データ蓄積テーブル150内の通信データ700-k内のパケットを送信してきた通信相手数K3 737-kが送信元数の閾値SIP-N 583を超過するか否かを判定する（ステップ5302）。超過する場合は、通信データ700-k内の積算数(C4+C5)を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、特定Proto使用DDoS攻撃探知用の閾値Thr14 532-14を超過するか否かを判定する（ステップ5303）。超過する場合は、特定Protoパケットを返信した通信相手数K2 736-kが、特定Protoパケットを送信してきた通信相手数K3 737-kと設定値蓄積テーブル130内の閾値IThr14-1 558の積を超過するか否かを判定する（ステップ5304）。超過しない場合は、特定Proto番号パケットを送信してきた通信相手数が、特定Proto番号パケットを返信した通信相手数より多いことを意味しており、異常である。更に、通信データ蓄積テーブルを探索して、組合せが含むIPに特定Protoパケットを送信してきて、組合せが含むIPが特定Protoのパケットを返信した通信相手数を取得し（ステップ5305）、取得した通信相手数が、特定Protoパケットを送信してきた通信相手数K3 737-kと、設定値蓄積テーブル130内の閾値ＩIThr14-2 559の積よりも小さいか否かを判定する（ステップ5306）。小さい場合は、特定Proto番号パケットを送信してきた通信相手数が、特定Proto番号パケットを送信してきてデータパケットを返信した通信相手数より多いことを意味しており、異常である。更に、通信データ蓄積テーブルを探索して、組合せが含むIPが特定Protoパケット等を送信した通信相手をホワイトリストとして取得する（ステップ5307）。異常通信の種類は、特定Proto使用DDoS攻撃となる。
【００９３】
図54には、ランダムPort使用P2P過負荷通信を探知する処理を示す。まず、IP1とProtoを含む組合せか否かを判定する（ステップ5401）。満たす場合は、ProtoがTCP/UDPか否かの判定を行い、満たす場合は、通信データ蓄積テーブル150内の通信データ700-k内のIP1がパケットを受信した通信相手数K3 737-kが設定値蓄積テーブル130内の送信元用の閾値SIP-N 583を超過するか否かと、パケットを送信した通信相手数K2 736-kが設定値蓄積テーブル130内の宛先用の閾値DIP-N 584を超過するか否かの判定を行う（ステップ5402）。超過する場合は、本組合せの通信データ蓄積テーブル150内の通信データ700-k内の積算バイトB1 721-kを、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、ランダムPort使用P2P過負荷通信探知用の閾値Thr15 532-15を超過するか否かの判定を行う（ステップ5403）。超過する場合は、本組合せの通信データ700-k内のIP1の通信相手が使うポートの種類数K10 744-kとIP1が使うポートの種類数K9 743-kの比率が、設定値蓄積テーブル130内の最小ポート自他率Min-Port-N-Ratio 593と最大ポート自他率Max-Port-N-Ratioの間に入っているか否かの判定を行う（ステップ5404）。間に入っている場合は、ランダムPort使用P2P過負荷通信となる。
【００９４】
図55には、ランダムPort使用Client過負荷通信を探知する処理を示す。まず、IP1とProtoを含む組合せか否かを判定する（ステップ5501）。満たす場合は、ProtoがTCP/UDPか否かの判定を行い、満たす場合は、通信データ蓄積テーブル150内の通信データ700-k内のIP1がパケットを受信した通信相手数K3 737-kが設定値蓄積テーブル130内の送信元用の閾値SIP-N 583を超過するか否かと、パケットを送信した通信相手数K2 736-kが設定値蓄積テーブル130内の宛先用の閾値DIP-N 584を超過するか否かの判定を行う（ステップ5502）。超過する場合は、本組合せの通信データ蓄積テーブル150内の通信データ700-k内の積算バイトB1 721-kを、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、ランダムPort使用Client過負荷通信探知用の閾値Thr16 532-16を超過するか否かの判定を行う（ステップ5503）。超過する場合は、本組合せの通信データ700-k内のIP1の通信相手が使うポートの種類数K10 744-kとIP1が使うポートの種類数K9 743-kの比率が、設定値蓄積テーブル130内の最小ポート自他率Min-Port-N-Ratio 593よりも小さいか否かの判定を行う（ステップ5504）。小さい場合は、ランダムPort使用Client過負荷通信となる。
【００９５】
図56には、ランダムPort使用Server過負荷通信を探知する処理を示す。まず、IP1とProtoを含む組合せか否かを判定する（ステップ5601）。満たす場合は、ProtoがTCP/UDPか否かの判定を行い、満たす場合は、通信データ蓄積テーブル150内の通信データ700-k内のIP1がパケットを受信した通信相手数K3 737-kが設定値蓄積テーブル130内の送信元用の閾値SIP-N 583を超過するか否かと、パケットを送信した通信相手数K2 736-kが設定値蓄積テーブル130内の宛先用の閾値DIP-N 584を超過するか否かの判定を行う（ステップ5602）。超過する場合は、本組合せの通信データ蓄積テーブル150内の通信データ700-k内の積算バイトB1 721-kを、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、ランダムPort使用Server過負荷通信探知用の閾値Thr17 532-17を超過するか否かの判定を行う（ステップ5603）。超過する場合は、本組合せの通信データ700-k内のIP1の通信相手が使うポートの種類数K10 744-kとIP1が使うポートの種類数K9 743-kの比率が、設定値蓄積テーブル130内の最大ポート自他率Max-Port-N-Ratioよりも大きいか否かの判定を行う（ステップ5604）。大きい場合は、ランダムPort使用Server過負荷通信となる。ステップ5602〜5604のいずれもを満たさない場合は正常と判定する。
【００９６】
図57には、特定Proto使用特定IP過負荷通信を探知する処理を示す。まず、IP1とProtoを含む組合せか否かを判定する（ステップ5701）。満たす場合は、通信データ蓄積テーブル150内の通信データ700-k内のIP1がパケットを受信した通信相手数K3 737-kが設定値蓄積テーブル130内の送信元用の閾値SIP-N 583を超過するか否かと、パケットを送信した通信相手数K2 736-kが設定値蓄積テーブル130内の宛先用の閾値DIP-N 584を超過するか否かの判定を行う（ステップ5702）。超過する場合は、本組合せの通信データ蓄積テーブル150内の通信データ700-k内の積算バイトB1 721-kを、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、特定Proto使用特定IP過負荷通信探知用の閾値Thr18 532-18を超過するか否かの判定を行う（ステップ5703）。超過する場合は、異常と判定し、異常通信の種類は、特定Proto使用特定IP過負荷通信となる。ステップ5702〜5703のいずれかを満たさない場合は正常と判定する。
【００９７】
図58には、特定IP間特定Port間過負荷通信を探知する処理を示す。まず、IP1とIP2とProtoとPort1とPort2を含む組合せか否かを判定する（ステップ5801）。満たす場合は、通信データ蓄積テーブル150内の通信データ700-k内のIP1がPort1を送信元ポートとして送信したパケットの積算バイトB2 722-k、またはPort1を宛先ポートとして送信したパケットの積算バイトB3 723-k、またはPort1を送信元ポートとして受信したパケットの積算バイトB4 724-k、またはPort1を宛先ポートとして受信したパケットの積算バイトB5 725-kを、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、特定IP間特定Port間過負荷通信探知用の閾値Thr19 532-19を超過するか否かの判定を行う（ステップ5802）。超過する場合は、異常と判定し、異常通信の種類は、特定IP間特定Port間過負荷通信となる。ステップ5802を満たさない場合は正常と判定する。
【００９８】
図59には、特定IP間特定Port使用過負荷通信を探知する処理を示す。まず、IP1とIP2とProtoとPort1を含む組合せか否かを判定する（ステップ5901）。満たす場合は、通信データ蓄積テーブル150内の通信データ700-k内のIP1がPort1を送信元ポートとして送信したパケットの積算バイトB2 722-k、またはPort1を宛先ポートとして送信したパケットの積算バイトB3 723-k、またはPort1を送信元ポートとして受信したパケットの積算バイトB4 724-k、またはPort1を宛先ポートとして受信したパケットの積算バイトB5 725-kを、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、特定IP間特定Port使用過負荷通信探知用の閾値Thr20 532-20を超過するか否かの判定を行い、満たす場合は、それぞれについて、IP1の送信パケットの宛先ポートの種類K12 746-k、IP1の送信パケットの送信元ポートの種類K11 745-k、IP1の受信パケットの宛先ポートの種類K14 748-k、IP1の受信パケットの送信元ポートの種類K13 747-kが、設定値蓄積テーブル130内のポート用の閾値Port-N 581を超過するか否かの判定を行う（ステップ5902）。超過する場合は、異常と判定し、異常通信の種類は、特定IP間特定Port使用過負荷通信となる。ステップ5902を満たさない場合は正常と判定する。
【００９９】
図60は、特定Port元Worm攻撃を探知する処理を示す。まず、IP1とProtoとPort1を含む組合せか否かを判定する（ステップ6001）。満たす場合は、Proto＝TCP/UDPであるか否かを判定し、満たす場合は、本組合せの通信データ蓄積テーブル150内の通信データ700-k内のPort1をポート元としてパケットを送信した通信相手数K4 738-kが宛先数の閾値DIP-N 584を超過するか否かを判定する（ステップ6002）。超過する場合は、通信データ700-k内の積算数C2 712-kを、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、特定Port元Worm攻撃探知用の閾値Thr21 532-21を超過するか否かを判定する（ステップ6003）。ProtoがTCPの場合は、IP1がPort1を宛先ポートとして送信してきた通信相手の数K7 741-kが、Port1を送信元ポートとして送信した通信相手の数K4 738-kと設定値蓄積テーブル130内の閾値IThr21-1 560の積を超過するか否かを判定し、ProtoがUDPの場合は、IP1がPort1を宛先ポートとして送信してきた通信相手の数K7 741-kが、Port1を送信元ポートとして送信した通信相手の数K4 738-kと設定値蓄積テーブル130内の閾値IIIThr21-3 562の積を超過するか否かを判定する（ステップ6004）。超過しない場合は、特定Port番号元パケットを送信した通信相手数が、特定Port番号宛パケットを返信してきた通信相手数より多いことを意味しており、異常である。更に、通信データ蓄積テーブルを探索して、組合せが含むIPが、Port1を送信元ポートとしてパケットを送信して、Port1を宛先ポートとして返信してきた通信相手数を取得する（ステップ6005）。ProtoがTCPの場合は、取得した通信相手数が、Port1を送信元ポートとして送信した通信相手の数K4 738-kと設定値蓄積テーブル130内の閾値ＩIThr21-2 561の積を超過するか否かの判定を、ProtoがUDPの場合は、取得した通信相手数が、Port1を送信元ポートとして送信した通信相手の数K4 738-kと設定値蓄積テーブル130内の閾値ＩＶThr21-4 563の積を超過するか否かの判定を行う（ステップ6006）。小さい場合は、特定Port番号元パケットを送信した通信相手数が、特定Port番号元パケットを送信して特定Port番号宛パケットを返信してきた通信相手数より多いことを意味しており、異常である。更に、通信データ蓄積テーブルを探索して、組合せが含むIPにPort1を宛先ポートとしてパケットを返信してきた通信相手をホワイトリストとして取得する（ステップ6007）。異常通信の種類は、特定Port元Worm攻撃となる。
【０１００】
図61は、特定Port宛Worm攻撃を探知する処理を示す。まず、IP1とProtoとPort1を含む組合せか否かを判定する（ステップ6101）。満たす場合は、Proto＝TCP/UDPであるか否かを判定し、満たす場合は、本組合せの通信データ蓄積テーブル150内の通信データ700-k内のPort1を宛先ポートとしてパケットを送信した通信相手数K5 739-kが宛先数の閾値DIP-N 584を超過するか否かを判定する（ステップ6102）。超過する場合は、通信データ700-k内の積算数C3 713-kを、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、特定Port宛Worm攻撃探知用の閾値Thr22 532-22を超過するか否かを判定する（ステップ6103）。ProtoがTCPの場合は、IP1にPort1を送信元ポートとして送信してきた通信相手の数K6 740-kが、IP1がPort1を宛先ポートとして送信した通信相手の数K5 739-kと設定値蓄積テーブル130内の閾値IThr22-1 564の積を超過するか否かを判定し、ProtoがUDPの場合は、IP1にPort1を送信元ポートとして送信してきた通信相手の数K6 740-kが、IP1がPort1を宛先ポートとして送信した通信相手の数K5 739-kと設定値蓄積テーブル130内の閾値IIIThr22-3 566の積を超過するか否かを判定する（ステップ6104）。超過しない場合は、特定Port番号宛パケットを送信した通信相手数が、特定Port番号元パケットを返信してきた通信相手数より多いことを意味しており、異常である。更に、通信データ蓄積テーブルを探索して、組合せが含むIPがPort1を宛先ポートとしてパケットを送信して、Port1を送信元ポートとして返信してきた通信相手数を取得する（ステップ6105）。ProtoがTCPの場合は、取得した通信相手数が、Port1を宛先ポートとして送信した通信相手の数K5 739-kと設定値蓄積テーブル130内の閾値ＩIThr22-2 565の積を超過するか否かの判定を、ProtoがUDPの場合は、取得した通信相手数が、Port1を宛先ポートとして送信した通信相手の数K5 739-kと設定値蓄積テーブル130内の閾値ＩＶThr22-4 567の積を超過するか否かの判定を行う（ステップ6106）。小さい場合は、特定Port番号宛パケットを送信した通信相手数が、特定Port番号元パケットを返信してきた通信相手数より多いことを意味しており、異常である。更に、通信データ蓄積テーブルを探索して、組合せが含むIPにPort1を送信元ポートとしてパケットを返信してきた通信相手をホワイトリストとして取得する（ステップ6107）。異常通信の種類は、特定Port宛Worm攻撃となる。
【０１０１】
図62は、特定Port元DDoS攻撃を探知する処理を示す。まず、組合せがIP1とProtoとPort1を含むか否かを判定する（ステップ6201）。含む場合は、Proto＝TCP/UDPであるか否かを判定し、満たす場合は、通信データ蓄積テーブル150内の通信データ700-k内において、本組合せが含むPortを送信元ポートとしてパケットを送信してきた通信相手数K6 740-kが、送信元数の閾値SIP-N 583を超過するか否かを判定する（ステップ6202）。超過する場合は、通信データ700-k内の積算数C4を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、特定Port元DDoS攻撃探知用の閾値Thr23 532-23を超過するか否かを判定する（ステップ6203）。ProtoがTCPの場合は、IP1がPort1を宛先ポートとしてパケットを送信した通信相手の数K5 739-kが、Port1を送信元ポートとしてパケットを送信してきた通信相手の数K6 740-kと設定値蓄積テーブル130内の閾値IThr23-1 568の積を超過するか否かを判定し、ProtoがUDPの場合は、IP1がPort1を宛先ポートとして送信した通信相手の数K5 739-kが、Port1を送信元ポートとしてパケットを送信してきた通信相手の数K6 740-kと設定値蓄積テーブル130内の閾値IIIThr23-570の積を超過するか否かを判定する（ステップ6204）。超過しない場合は、特定Port番号元パケットを送信してきた通信相手数が、特定Port番号宛パケットを返信した通信相手数より多いことを意味しており、異常である。更に、通信データ蓄積テーブルを探索して、本組合せが含むIPにPortを送信元ポートとしてパケットを送信してきて、本組合せが含むIP がPortを宛先ポートとして返信した通信相手数を取得する（ステップ6205）。ProtoがTCPの場合は、取得した通信相手数が、Portを送信元ポートとして送信してきた通信相手の数K6 740-kと設定値蓄積テーブル130内の閾値ＩIThr23-2 569の積を超過するか否かの判定を、ProtoがUDPの場合は、取得した通信相手数が、Portを送信元ポートとして送信してきた通信相手の数K6 740-kと設定値蓄積テーブル130内の閾値ＩＶThr23-4 571の積を超過するか否かの判定を行う（ステップ6206）。小さい場合は、特定Port番号元パケットを送信してきた通信相手数が、特定Port番号元パケットを送信してきて特定Port番号宛パケットを返信した通信相手数より多いことを意味しており、異常である。更に、通信データ蓄積テーブルを探索して、組合せが含むIPがPortを宛先ポートとしてパケットを返信した通信相手をホワイトリストとして取得する（ステップ6207）。異常通信の種類は、特定Port元DDoS攻撃となる。
【０１０２】
図63は、特定Port宛DDoS攻撃を探知する処理を示す。まず、組合せがIP1とProtoとPort1を含むか否かを判定する（ステップ6301）。含む場合は、Proto＝TCP/UDPであるか否かを判定し、満たす場合は、通信データ蓄積テーブル150内の通信データ700-k内において、本組合せが含むPortを宛先ポートとしてパケットを送信してきた通信相手数K7 741-kが、送信元数の閾値SIP-N 583を超過するか否かを判定する（ステップ6302）。超過する場合は、通信データ700-k内の積算数C5を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、特定Port宛DDoS攻撃探知用の閾値Thr24 532-24を超過するか否かを判定する（ステップ6303）。ProtoがTCPの場合は、IPがPortを送信元ポートとしてパケットを送信した通信相手の数K4 738-kが、Portを宛先ポートとしてパケットを送信してきた通信相手の数K7 741-kと設定値蓄積テーブル130内の閾値IThr24-1 572の積を超過するか否かを判定し、ProtoがUDPの場合は、IPがPortを送信元ポートとしてパケットを送信した通信相手の数K4 738-kが、Portを宛先ポートとしてパケットを送信してきた通信相手の数K7 741-kと設定値蓄積テーブル130内の閾値IIIThr24-3 574の積を超過するか否かを判定する（ステップ6304）。超過しない場合は、特定Port番号宛パケットを送信してきた通信相手数が、特定Port番号元パケットを返信した通信相手数より多いことを意味しており、異常である。更に、通信データ蓄積テーブルを探索して、本組合せが含むIPにPortを宛先ポートとしてパケットを送信してきて、本組合せが含むIP がPortを送信元ポートとして返信した通信相手数を取得する（ステップ6305）。ProtoがTCPの場合は、取得した通信相手数が、Portを宛先ポートとして送信してきた通信相手の数K7 741-kと設定値蓄積テーブル130内の閾値ＩIThr24-2 573の積を超過するか否かの判定を、ProtoがUDPの場合は、取得した通信相手数が、Portを宛先ポートとして送信してきた通信相手の数K7 741-kと設定値蓄積テーブル130内の閾値ＩＶThr24-4 575の積を超過するか否かの判定を行う（ステップ6306）。超過しない場合は、特定Port番号宛パケットを送信してきた通信相手数が、特定Port番号宛パケットを送信してきて特定Port番号元パケットを返信した通信相手数より多いことを意味しており、異常である。更に、通信データ蓄積テーブルを探索して、本組合せが含むIPがPortを送信元ポートとしてパケットを返信した通信相手をホワイトリストとして取得する（ステップ6307）。異常通信の種類は、特定Port宛DDoS攻撃となる。
【０１０３】
図64は、特定Port使用P2P過負荷通信を探知する処理を示す。まず、組合せがIP1とProtoとPort1を含むか否かを判定する（ステップ6401）。含む場合は、Proto＝TCP/UDPであるか否かを判定し、満たす場合は、通信データ蓄積テーブル150内の通信データ700-k内において、本組合せが含むPortを宛先ポートまたは送信元ポートとしてパケットを送信した通信相手数K2 736-kが、宛先数の閾値DIP-N 584を超過するか否か、本組合せが含むPortを宛先ポートまたは送信元ポートとしてパケットを送信してきた通信相手数K3 737-kが、送信元数の閾値SIP-N 583を超過するか否か、を判定し（ステップ6402）、共に超過する場合は、通信データ700-k内の積算バイトB1 721-kを、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、特定Port使用P2P過負荷通信探知用の閾値Thr25 532-25を超過するか否かを判定する（ステップ6403）。超過している場合は、IPがPortを送信元ポートとして送信したパケットの積算バイトB2と、宛先ポートとして受信したパケットの積算バイトB5との和と、IPがPortを宛先ポートとして送信したパケットの積算バイトB3と、送信元ポートとして受信したパケットの積算バイトB4との和との比率が、設定値蓄積テーブル130内の最大帯域比率閾値Max-B-Ratio 590と最小帯域比率閾値Min-B-Ratio 591の間にあるか否かを判定する（ステップ6404）。満たす場合は、異常と判定され、異常通信の種類は、特定Port使用P2P過負荷通信となる。
【０１０４】
図65は、特定Port使用Client過負荷通信を探知する処理を示す。まず、組合せがIP1とProtoとPort1を含むか否かを判定する（ステップ6501）。含む場合は、Proto＝TCP/UDPであるか否かを判定し、満たす場合は、通信データ蓄積テーブル150内の通信データ700-k内において、本組合せが含むPortを宛先ポートまたは送信元ポートとしてパケットを送信した通信相手数K2 736-kが、宛先数の閾値DIP-N 584を超過するか否かと、本組合せが含むPortを宛先ポートまたは送信元ポートとしてパケットを送信してきた通信相手数K3 737-kが、送信元数の閾値SIP-N 583を超過するか否かを判定し（ステップ6502）、共に超過する場合は、通信データ700-k内の積算バイトB1 721-kを、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、特定Port使用Client過負荷通信探知用の閾値Thr26 532-26を超過するか否かを判定する（ステップ6503）。超過している場合は、IPがPortを送信元ポートとして送信したパケットの積算バイトB2と、宛先ポートとして受信したパケットの積算バイトB5との和と、IPがPortを宛先ポートとして送信したパケットの積算バイトB3と、送信元ポートとして受信したパケットの積算バイトB4 724-kとの和との比率が、設定値蓄積テーブル130内の最小帯域比率閾値Min-B-Ratio 591よりも小さいか否かを判定する（ステップ6504）。満たす場合は、異常と判定され、異常通信の種類は、特定Port使用Client過負荷通信となる。
【０１０５】
図66は、特定Port使用Server過負荷通信を探知する処理を示す。まず、組合せがIP1とProtoとPort1を含むか否かを判定する（ステップ6601）。含む場合は、Proto＝TCP/UDPであるか否かを判定し、満たす場合は、通信データ蓄積テーブル150内の通信データ700-k内において、本組合せが含むPortを宛先ポートまたは送信元ポートとしてパケットを送信した通信相手数K2 736-kが、宛先数の閾値DIP-N 584を超過するか否かと、本組合せが含むPortを宛先ポートまたは送信元ポートとしてパケットを送信してきた通信相手数K3 737-kが、送信元数の閾値SIP-N 583を超過するか否かを判定し（ステップ6602）、共に超過する場合は、通信データ700-k内の積算バイトB1 721-kを、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、特定Port使用Server過負荷通信探知用の閾値Thr27 532-27を超過するか否かを判定する（ステップ6603）。超過している場合は、IPがPortを送信元ポートとして送信したパケットの積算バイトB2 722-kと、宛先ポートとして受信したパケットの積算バイトB5 725-kとの和と、IPがPortを宛先ポートとして送信したパケットの積算バイトB3 723-kと、送信元ポートとして受信したパケットの積算バイトB4 724-kとの和との比率が、設定値蓄積テーブル130内の最大帯域比率閾値Max-B-Ratio 590よりも大きいか否かを判定する（ステップ6604）。満たす場合は、異常と判定され、異常通信の種類は、特定Port使用Server過負荷通信となる。
【０１０６】
図67は、特定IP間ランダムProto過負荷通信を探知する処理を示す。まず、組合せがIP1とIP2を含むか否かを判定する（ステップ6701）。含む場合は、通信データ蓄積テーブル150内の通信データ700-k内において、積算バイトB2+B3を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、特定IP間ランダムProto過負荷通信探知用の閾値Thr28 532-28を超過し、尚且つIP1がIP2に送信するパケットが使用するProtoの種類数K19 753-kがプロトコルの種類数用の閾値Proto-N 582を超過するか否かを判定、または、積算バイトB4+B5を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、特定IP間ランダムProto過負荷通信探知用の閾値Thr28 532-28を超過し、尚且つIP2がIP1に送信するパケットが使用するProtoの種類数K20 754-kがプロトコルの種類数用の閾値Proto-N 582を超過するか否かを判定し（ステップ6702）、満たす場合は、異常と判定され、異常通信の種類は、特定IP間ランダムProto過負荷通信となる。
【０１０７】
図68は、ランダムProto使用Worm攻撃を探知する処理を示す。まず、組合せがIP1を含むか否かを判定する（ステップ6801）。含む場合は、通信データ蓄積テーブル150内の通信データ700-k内において、IP1が送信するパケットが使用するProtoの種類数K22 756-kがプロトコルの種類数用の閾値Proto-N 582を超過するか否かを判定し（ステップ6802）、超過する場合は、積算数C2+C3を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、ランダムProto使用Worm攻撃探知用の閾値Thr29 532-29を超過し、尚且つ、IP1がパケットを送信した通信相手数K2 736-kが、宛先数の閾値DIP-N 584を超過するか否かを判定し（ステップ6803）、共に超過する場合は、IP1がパケットを受信した通信相手数K3 737-kが、IP1がパケットを送信した通信相手数K2 736-kと設定値蓄積テーブル130内の閾値IThr29-1 576の積を超過するか否かの判定を行い（ステップ6804）、超過しない場合は、IP1が受信するパケットが使用するProtoの種類数K23 757-kが、IP1が送信するパケットが使用するProtoの種類数K22 756-kと設定値蓄積テーブル130内の閾値ＩIThr29-2 577の積を超過するか否かの判定を行い（ステップ6805）、超過しない場合は、通信データ蓄積テーブル150内を探索して、IPにパケットを返信してきた通信相手をホワイトリストとして取得する（ステップ6806）。異常通信の種類は、ランダムProto使用Worm攻撃となる。
【０１０８】
図69は、ランダムProto使用DDoS攻撃を探知する処理を示す。まず、組合せがIP1を含むか否かを判定する（ステップ6901）。含む場合は、通信データ蓄積テーブル150内の通信データ700-k内において、IP1が受信するパケットが使用するProtoの種類数K23 757-kがプロトコルの種類数用の閾値Proto-N 582を超過するか否かを判定し（ステップ6902）、超過する場合は、積算数(C4+C5)を、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、ランダムProto使用DDoS攻撃探知用の閾値Thr30 532-30を超過し、尚且つ、IP1がパケットを受信した通信相手数K3 737-kが、送信元数の閾値SIP-N 583を超過するか否かを判定する（ステップ6903）。共に超過する場合は、IP1がパケットを送信した通信相手数K2 736-kが、IP1がパケットを受信した通信相手数K3 737-kと設定値蓄積テーブル130内の閾値IThr30-1 578の積を超過するか否かの判定を行い（ステップ6904）、超過しない場合は、IP1が送信するパケットが使用するProtoの種類数K22 756-kが、IP1が受信するパケットが使用するProtoの種類数K23 757-kと設定値蓄積テーブル130内の閾値ＩIThr30-2 579の積を超過するか否かの判定を行う（ステップ6905）。超過しない場合は、通信データ蓄積テーブル150内を探索して、IPがパケットを返信した通信相手をホワイトリストとして取得する（ステップ6906）。異常通信の種類は、ランダムProto使用DDoS攻撃となる。
【０１０９】
図70は、ランダムInLine使用特定IP元攻撃を探知する処理を示す。まず、組合せがIP1を含むか否かを判定する（ステップ7001）。含む場合は、通信データ蓄積テーブル150内の通信データ700-k内において、IP1を送信元に持つパケットの入力ラインの種類数K19 753-kが、設定値蓄積テーブル130内の入力ライン数判定用の閾値InLine-N 585を超過するか否かの判定を行う（ステップ7002）。超過する場合は、積算数C2 712-kを、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、ランダムInLine使用特定IP元攻撃探知用の閾値Thr31 532-31を超過するか否かを判定する（ステップ7003）。超過する場合は、異常と判定する。異常通信の種類は、ランダムInLine使用特定IP元攻撃となる。
【０１１０】
図71は、ランダムProto使用特定IP過負荷通信を探知する処理を示す。まず、組合せがIP1を含むか否かを判定する（ステップ7101）。含む場合は、通信データ蓄積テーブル150内の通信データ700-k内において、IPが送受信するパケットのプロトコルの種類数K21 755-kが、設定値蓄積テーブル130内のプロトコル数判定用の閾値Proto-N 582を超過するか否かの判定を行う（ステップ7102）。超過する場合は、積算バイトB1 721-kを、設定値蓄積テーブル130内のエージング時間ATime 521で割った値が、ランダムProto使用特定IP過負荷通信探知用の閾値Thr32 532-32を超過するか否かを判定する（ステップ7103）。超過する場合は、通信データ700-k内の、IPがパケットを送信した通信相手数K2 736-kとパケットを受信した通信相手数K3-737-kが、設定値蓄積テーブル130内の宛先数の閾値DIP-N 584と送信元数の閾値SIP-N 583を超過するか否かの判定を行う（ステップ7104）。超過する場合は、異常と判定する。異常通信の種類は、ランダムProto使用特定IP過負荷通信となる。
【０１１１】
図72は、特定InLine使用特定IP送受信攻撃を探知する処理を示す。まず、組合せがIP1とInLineを含むか否かを判定する（ステップ7201）。含む場合は、特定InLineに同一IPを送信元に持つパケットと、宛先に持つパケットが同時に入力しているか否かを調べるため、積算数C2 712-kとC4 714-kが共に、特定InLine使用特定IP送受信攻撃探知用の閾値Thr33 532-33より大きいか否かを判定する（ステップ7202）。共に大きい場合は、異常と判定され、異常通信の種類は、特定InLine使用特定IP送受信攻撃となる。
【０１１２】
以上、図40〜72の説明で述べてきた正常/異常の判定処理3801を行うことで、標本化した通信データ使用でも、多種類の異常通信の探知が可能となる。そのため、抽出処理や記録処理を行うパケットデータ数を削減することができ、高速回線上で多種類の異常通信の探知を行うことが容易となる。
【０１１３】
設定部171は、設定値蓄積テーブル130の全ての値を、外部の端末170からコマンド160を受けて変更（図1の161）することができる。例えば、“ID-1=1”というコマンドを端末170から受け取ると、ID-1 510-1の値を1に変更する。2つ以上の値を変更する場合は、端末170から“ID-1=1,Thr3=56”というコマンドを送ることで、ID-1 510-1とThr3 532-3の値をそれぞれ1,56に変更することができる。探知の不要な異常通信については、外部の端末170からコマンドを送ることで、対応するThr1〜33 532-1〜33の値を無限大に設定すればよい。これにより、探知しようとする異常通信の種類を限定することが可能である。例えば、“ID-1=∞”というコマンドで、Syn Flag TCP Flood型DoS攻撃の探知を禁止することができる。
【０１１４】
また、設定部171は、外部の端末170からコマンド160を受けて通信データ蓄積テーブル150のデータを取得（図1の156）・整列した上で、端末170に返信することもできる。例えば、“getvalue 128 C1”というコマンドを端末170から受け取ると、通信データ蓄積テーブル150内からC1の大きな上位128エントリを取り出して、整列したデータを、端末170に返信する。C1の部分には、C1〜5 711〜715-k、B1〜5 721〜725-k、Cnf 731-k、K0〜K23 734〜757-k等などを指定して、指定したデータの大小に基づく整列方法に変更することもできる。
【０１１５】
以上記載した抽出部180の処理900〜1200と、記録部181の処理1300及び1600と、探知部182の処理3600と3800によって、パケット積算数の多寡と新旧に基づいて通信データを上書き抽出する方式と、通信データとして複数のパケットの種類数を記録する方式と、パケットの標本解析を前提とした異常通信の探知方式が実現される。これによって、従来の方式がメモリ容量やCPU処理能力の不足により実現できなかった、不特定多数のPCやサーバを防御対象とした高速回線上での多種類の異常通信の同時探知が可能となる。
【図面の簡単な説明】
【０１１６】
【図１】異常通信の探知・制御部。
【図２】本発明適用の異常通信の探知・制御機能を追加したルータの使用環境。
【図３】本発明適用の異常通信の探知・制御機能を追加したルータ。
【図４】本発明適用の異常通信の探知・制御機能を備える外部装置とルータ。
【図５】設定値蓄積テーブル130のフォーマット。
【図６】抽出/記録履歴蓄積テーブル140のフォーマット。
【図７】通信データ蓄積テーブル150のフォーマット。
【図８】複製したパケットデータ101のフォーマット。
【図９】組合せ抽出部120が行う組合せ抽出処理900のフローチャート。
【図１０】組合せ整列部121が行う組合せ整列処理1000のフローチャート。
【図１１】アドレス生成部122が行う組合せ整列処理1100のフローチャート。
【図１２】通信データ抽出判定部123が行う通信データ抽出判定処理1200のフローチャート。
【図１３】通信データ記録部124が行う通信データ記録処理1300のフローチャート。
【図１４】通信データ記録処理1300が含むパケットの選択積算処理1310の詳細。
【図１５】通信データ記録処理1300が含む選択積算の種類の記録処理1311の詳細。
【図１６】種類数記録部125が行う種類数記録処理1600のフローチャート。
【図１７】判定結果が上書の時のパケットの種類数の減算処理1605のフローチャートの一部。
【図１８】判定結果が上書の時のパケットの種類数の減算処理1605のフローチャートの一部。
【図１９】判定結果が上書の時のパケットの種類数の減算処理1605のフローチャートの一部。
【図２０】判定結果が上書の時のパケットの種類数の減算処理1605のフローチャートの一部。
【図２１】判定結果が上書の時のパケットの種類数の減算処理1605のフローチャートの一部。
【図２２】判定結果が上書の時のパケットの種類数の減算処理1605のフローチャートの一部。
【図２３】判定結果が上書の時のパケットの種類数の積算処理1606のフローチャートの一部。
【図２４】判定結果が上書の時のパケットの種類数の積算処理1606のフローチャートの一部。
【図２５】判定結果が上書の時のパケットの種類数の積算処理1606のフローチャートの一部。
【図２６】判定結果が上書の時のパケットの種類数の積算処理1606のフローチャートの一部。
【図２７】判定結果が上書の時のパケットの種類数の積算処理1606のフローチャートの一部。
【図２８】判定結果が上書の時のパケットの種類数の積算処理1606のフローチャートの一部。
【図２９】判定結果が一致の時のパケットの種類数の積算処理1603のフローチャートの一部。
【図３０】判定結果が一致の時のパケットの種類数の積算処理1603のフローチャートの一部。
【図３１】判定結果が一致の時のパケットの種類数の積算処理1603のフローチャートの一部。
【図３２】判定結果が一致の時のパケットの種類数の積算処理1603のフローチャートの一部。
【図３３】判定結果が一致の時のパケットの種類数の積算処理1603のフローチャートの一部。
【図３４】判定結果が一致の時のパケットの種類数の積算処理1603のフローチャートの一部。
【図３５】判定結果が一致の時のパケットの種類数の積算処理1603のフローチャートの一部。
【図３６】組合せ判定部126が行う組合せ判定処理3600のフローチャート。
【図３７】組合せ判定処理3600が含む組合せの判定処理3604の詳細。
【図３８】正常/異常判定部127が行う正常/異常判定処理3800のフローチャート。
【図３９】組合せと、探知して出力する異常通信の種類の関係。
【図４０】Syn Flag TCP Flood型DoS攻撃の探知処理のフローチャート。
【図４１】特定Flag TCP Flood型DoS攻撃の探知処理のフローチャート。
【図４２】Syn Flag TCP Flood型DDoS攻撃の探知処理のフローチャート。
【図４３】特定Flag TCP Flood型DDoS攻撃の探知処理のフローチャート。
【図４４】ランダムFlag TCP Flood型DoS攻撃の探知処理のフローチャート。
【図４５】ICMP Flood型DoS攻撃の探知処理のフローチャート。
【図４６】特定IP間ランダムPort過負荷通信の探知処理のフローチャート。
【図４７】特定IP間特定Proto使用過負荷通信の探知処理のフローチャート。
【図４８】ランダムFlag TCP Flood型DDoS攻撃の探知処理のフローチャート。
【図４９】ランダムPort Worm攻撃の探知処理のフローチャート。
【図５０】ランダムPort DDoS攻撃の探知処理のフローチャート。
【図５１】ICMP Flood型 DDoS/Worm攻撃の探知処理のフローチャート。
【図５２】特定Proto使用Worm攻撃の探知処理のフローチャート。
【図５３】特定Proto使用DDoS攻撃の探知処理のフローチャート。
【図５４】ランダムPort使用P2P過負荷通信の探知処理のフローチャート。
【図５５】ランダムPort使用Client過負荷通信の探知処理のフローチャート。
【図５６】ランダムPort使用Server過負荷通信の探知処理のフローチャート。
【図５７】特定Proto使用特定IP過負荷通信の探知処理のフローチャート。
【図５８】特定IP間特定Port間過負荷通信の探知処理のフローチャート。
【図５９】特定IP間特定Port使用過負荷通信の探知処理のフローチャート。
【図６０】特定Port元Worm攻撃の探知処理のフローチャート。
【図６１】特定Port宛Worm攻撃の探知処理のフローチャート。
【図６２】特定Port元DDoS攻撃の探知処理のフローチャート。
【図６３】特定Port宛DDoS攻撃の探知処理のフローチャート。
【図６４】特定Port使用P2P過負荷通信の探知処理のフローチャート。
【図６５】特定Port使用Client過負荷通信の探知処理のフローチャート。
【図６６】特定Port使用Server過負荷通信の探知処理のフローチャート。
【図６７】特定IP間ランダムProto過負荷通信の探知処理のフローチャート。
【図６８】ランダムProto使用Worm攻撃の探知処理のフローチャート。
【図６９】ランダムProto使用DDoS攻撃の探知処理のフローチャート。
【図７０】ランダムInLine使用特定IP元攻撃の探知処理のフローチャート。
【図７１】ランダムProto使用特定IP過負荷通信の探知処理のフローチャート。
【図７２】特定InLine使用特定IP送受信攻撃の探知処理のフローチャート。
【符号の説明】
【０１１７】
210,220,230…通信事業者のネットワーク、240…企業網、250,260…個人のPC、241…FirewallやIDS等の異常通信探知装置、242…企業のサーバ、211,212,213,214…エッジルータ、221,222,223,224…攻撃元サーバ、231,232,233,234…攻撃元サーバ、281…DDoS等のルータ攻撃、282…P2P等の過大通信、283…DDoS等のFirewall攻撃。
【図１】
2006319693.tif 000003
【図２】
2006319693.tif 000004
【図３】
2006319693.tif 000005
【図４】
2006319693.tif 000006
【図５】
2006319693.tif 000007
【図６】
2006319693.tif 000008
【図７】
2006319693.tif 000009
【図８】
2006319693.tif 000010
【図９】
2006319693.tif 000011
【図１０】
2006319693.tif 000012
【図１１】
2006319693.tif 000013
【図１２】
2006319693.tif 000014
【図１３】
2006319693.tif 000015
【図１４】
2006319693.tif 000016
【図１５】
2006319693.tif 000017
【図１６】
2006319693.tif 000018
【図１７】
2006319693.tif 000019
【図１８】
2006319693.tif 000020
【図１９】
2006319693.tif 000021
【図２０】
2006319693.tif 000022
【図２１】
2006319693.tif 000023
【図２２】
2006319693.tif 000024
【図２３】
2006319693.tif 000025
【図２４】
2006319693.tif 000026
【図２５】
2006319693.tif 000027
【図２６】
2006319693.tif 000028
【図２７】
2006319693.tif 000029
【図２８】
2006319693.tif 000030
【図２９】
2006319693.tif 000031
【図３０】
2006319693.tif 000032
【図３１】
2006319693.tif 000033
【図３２】
2006319693.tif 000034
【図３３】
2006319693.tif 000035
【図３４】
2006319693.tif 000036
【図３５】
2006319693.tif 000037
【図３６】
2006319693.tif 000038
【図３７】
2006319693.tif 000039
【図３８】
2006319693.tif 000040
【図３９】
2006319693.tif 000041
【図４０】
2006319693.tif 000042
【図４１】
2006319693.tif 000043
【図４２】
2006319693.tif 000044
【図４３】
2006319693.tif 000045
【図４４】
2006319693.tif 000046
【図４５】
2006319693.tif 000047
【図４６】
2006319693.tif 000048
【図４７】
2006319693.tif 000049
【図４８】
2006319693.tif 000050
【図４９】
2006319693.tif 000051
【図５０】
2006319693.tif 000052
【図５１】
2006319693.tif 000053
【図５２】
2006319693.tif 000054
【図５３】
2006319693.tif 000055
【図５４】
2006319693.tif 000056
【図５５】
2006319693.tif 000057
【図５６】
2006319693.tif 000058
【図５７】
2006319693.tif 000059
【図５８】
2006319693.tif 000060
【図５９】
2006319693.tif 000061
【図６０】
2006319693.tif 000062
【図６１】
2006319693.tif 000063
【図６２】
2006319693.tif 000064
【図６３】
2006319693.tif 000065
【図６４】
2006319693.tif 000066
【図６５】
2006319693.tif 000067
【図６６】
2006319693.tif 000068
【図６７】
2006319693.tif 000069
【図６８】
2006319693.tif 000070
【図６９】
2006319693.tif 000071
【図７０】
2006319693.tif 000072
【図７１】
2006319693.tif 000073
【図７２】
2006319693.tif 000074