(57)【要約】【課題】パケットサンプリングが行われても異常トラヒックを適切に検出できるような異常トラヒック検出技術を提供する。【解決手段】異常トラヒック検出装置２０は、分割グループ数決定部３１とグループ分類部３２と時系列解析部３３と異常トラヒック検出部３４を備える。分割グループ数決定部３１は、分割グループ数を決定する。グループ分類部３２は、観測されたトラヒック量Ｎ_ｔを予め定めた規則にしたがってＭ個にグループ分けし、ｊ番目のグループにおけるトラヒック量をＮ_ｔ（ｊ）（このとき、Σｊ＝１〜ＭＮ_ｔ（ｊ）＝Ｎ_ｔ）とし、Ｎ_ｔ（ｊ）を時系列解析部３３に通知する。時系列解析部３３は、各グループｊにおけるＮ_ｔ（ｊ）に関する時系列を解析し、Ｎ_ｔ（ｊ）の時間的変化を検出したら、該グループに異常トラヒックが発生したとして検出する。異常トラヒック検出部３４は、異常トラヒックが検出されたことをオペレータに通知する。【選択図】図３
2008118242.tif 000002
【特許請求の範囲】
【請求項１】
フローに関する情報を収集分析し、予め定めた監視単位毎に、予め定めた時間間隔ｔ０毎の発生トラヒック量を測定し、ｔ番目の測定区間におけるトラヒック量をＮ_ｔとおき、Ｎ_ｔの時間変化をみて異常トラヒックを検出する異常トラヒック検出装置における異常トラヒック検出方法において、
前記異常トラヒック検出装置はグループ分類手段と時系列解析手段とを備え、
前記グループ分類手段が、観測されたトラヒック量Ｎ_ｔを予め定めた規則にしたがってＭ個にグループ分けし、ｊ番目のグループにおけるトラヒック量をＮ_ｔ（ｊ）（このとき、Σｊ＝１〜ＭＮ_ｔ（ｊ）＝Ｎ_ｔ）とし、Ｎ_ｔ（ｊ）を前記時系列解析手段に通知するステップと、
前記時系列解析手段が、各グループｊにおけるＮ_ｔ（ｊ）に関する時系列を解析し、Ｎ_ｔ（ｊ）の時間的変化を検出したら、該グループに異常トラヒックが発生したとして検出するステップと、
を有することを特徴とする異常トラヒック検出方法。
【請求項２】
請求項１に記載の異常トラヒック検出方法であって、
前記時系列解析手段が、時系列を解析する際、Ｎ_ｔ（ｊ）が、その移動平均ｍに標準偏差σのα倍した値ｍ＋α×σを超えたら、異常トラヒックが発生したとして検出するステップを有することを特徴とする異常トラヒック検出方法。
【請求項３】
請求項１に記載の異常トラヒック検出方法であって、
観測するトラヒック量として、発生バイト数、発生パケット数、発生フロー数のいずれかをＮ_ｔとして用いることを特徴とする異常トラヒック検出方法。
【請求項４】
請求項３に記載の異常トラヒック検出方法であって、
前記異常トラヒック検出装置は分割グループ数決定手段を備え、
前記分割グループ数決定手段が、分割グループ数Ｍを決定する際に、フロー数を監視する場合、
正常フローに関して、パケットサンプリングを行う前のフロー数の平均ｍと分散σ＾２を実データ分析により事前に定めておき、
正常フロー数Ｙが平均ｍ、分散σ＾２の正規分布Ｎ（ｍ，σ＾２）に従うとし、Ｆ（ｙ，ｍ，σ＾２）＝Ｐ［Ｙ＜ｙ］とし（つまりＹがｙ以下となる確率を正規分布Ｎ（ｍ、σ＾２）を用いて計算する）、検出すべき異常フロー数ｄをｄ＝ａｒｇｍｉｎ｛ｄ｜Ｆ（ｍ−ｄ＋α×σ，ｍ，σ＾２）＜ε｝とし（εは異常トラヒック非検知率に対する予め定めた目標値である（０＜ε＜１））、
サンプリング確率ｐでパケットサンプリングを行ったときの平均フロー数ｍ（ｐ）と分散σ（ｐ）＾２を測定し、これをＭ個のグループに分割したときのグループｊでのフロー数ｍ（ｐ，ｊ）をｍ（ｐ，ｊ）＝ｍ（ｐ）／Ｍとし、分散σ（ｐ，ｊ）＾２をσ（ｐ，ｊ）＾２＝σ（ｐ）＾２／Ｍにより計算するステップと、
前記ステップの準備の下、分割グループ数Ｍを、Ｍ＝ａｒｇｍｉｎ｛Ｍ｜Ｆ（ｍ（ｐ，ｊ）＋α×σ（ｐ，ｊ），ｍ（ｐ，ｊ）＋ｄ×ｐ，σ（ｐ，ｊ）＾２＋ｄ×ｐ×（１−ｐ））＜ε｝と設定するステップと、
を有することを特徴とする異常トラヒック検出方法。
【請求項５】
請求項４に記載の異常トラヒック検出方法であって、
前記分割グループ数決定手段が、
Ｍ個のグループに分割したときのグループｊでのフロー数ｍ（ｐ，ｊ）をｍ（ｐ，ｊ）＝ｍ（ｐ）／Ｍとする代わりに、
Ｍ分割したときのフロー数分配比率ｗ（ｉ）（Σｗ（ｉ）＝１，０＜ｗ（ｉ）＜１）を実データ分析により事前に定めておき、Ｍ分割後にフロー数が最大となるグループｊ（つまりｗ（ｊ）が最大となるグループ）でのフロー数ｍ（ｐ，ｊ）＝ｍ（ｐ）×ｗ（ｊ）とし、分散σ（ｐ，ｊ）＾２をσ（ｐ，ｊ）＾２＝ａ×ｍ（ｐ，ｊ）＾ｃにより計算して（ａ，ｃは予め定めるか、実データ分析により事前に定めとおく係数）分割グループ数Ｍを決定することを特徴とする異常トラヒック検出方法。
【請求項６】
パケットサンプリングによりサンプルされたフローに関する情報を収集分析し、予め定めた監視単位毎に、予め定めた時間間隔ｔ０毎の発生トラヒック量を測定し、ｔ番目の測定区間におけるトラヒック量をＮ_ｔとおき、Ｎ_ｔの時間変化をみて異常トラヒックを検出する異常トラヒック検出装置において、
観測されたトラヒック量Ｎ_ｔを予め定めた規則にしたがってＭ個にグループ分けし、ｊ番目のグループにおけるトラヒック量をＮ_ｔ（ｊ）（このとき、Σｊ＝１〜ＭＮ_ｔ（ｊ）＝Ｎ_ｔ）とし、Ｎ_ｔ（ｊ）を時系列解析手段に通知するグループ分類手段と、
各グループｊにおけるＮ_ｔ（ｊ）に関する時系列を解析し、Ｎ_ｔ（ｊ）の時間的変化を検出したら、該グループに異常トラヒックが発生したとして検出する時系列解析手段と、
を有することを特徴とする異常トラヒック検出装置。
【請求項７】
請求項１ないし５のうちいずれか１項に記載のステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰネットワークにおけるトラヒックを管理する技術に関するものである。
【背景技術】
【０００２】
ＩＰネットワークが広く利用されてくるに伴って、ＩＰネットワーク上での通信品質保証に対する要求が高まっている、その一方で、ＤＤｏＳ攻撃やネットワークスキャンなど、様々な異常トラヒックが発生してユーザの通信品質を阻害することが問題となっている。従って、ネットワークを監視してこのような異常トラヒックを迅速に検出し、適切な処置を行う必要がある。一方、ネットワークの大規模化、超高速化に伴い、全パケットをキャプチャして分析するのはスケーラビリティに問題があるため、近年、各ルータでパケットサンプリングを実施し、サンプルされたフロー（フローとは、同一の（発信元ＩＰアドレス、着信先ＩＰアドレス、プロトコル番号、発信元ポート番号、着信先ポート番号）を持つパケット群）に関する統計情報をネットワーク監視装置で集約して、フロー単位で広域トラヒック監視を行う方法が着目されている。
【０００３】
サンプルフロー情報を分析する方法として、これまでに非特許文献１、２、３のような検討がなされている。非特許文献１では、フローサイズが大きいフローの統計を精度よく得る方法を提案している。非特許文献２では、サンプルされたＳＹＮパケット（ＴＣＰフラグの一つで、通信開始を意味する）の数を用いて、サンプルされていない全体のフロー発生数やフローサイズを推定する方法を提案している。非特許文献３は、サイズの大きい、あるいは帯域の占有率が高いフローを特定し、それらフローを過剰に発生するユーザを迅速に切り分けることを可能にする。しかしながら、いずれの文献も、定常状態におけるフロー特性を分析するための手法であり、異常トラヒックによるフロー特性の変化を検出するための手法ではなかった。一方、非特許文献４では異常トラヒックによるトラヒックパターンの変化を特徴付ける方法について提案しているが、パケットサンプリングがその性能にどのような影響を与えるかについては考慮していなかった。
【０００４】
【非特許文献１】C. Estan and G. Varghese, “New Directions in Traffic Measurement and Accounting”, ACM SIGCOMM2002, Aug. 2002.
【非特許文献２】N. Duffield, C. Lund, and M. Thorup, “Properties and Prediction of Flow Statistics From Sampled Packet Streams”, ACM SIGCOMM Internet Measurement Conference 2002, Nov. 2002.
【非特許文献３】T. Mori et al., “Identifying elephant flows through periodically sampled packets”, ACM SIGCOMM Internet Measurement Conference, 2004.
【非特許文献４】A. Lakhina, M. Crovella, and C. Diot, “Mining Anomalies Using Traffic Feature Distributions”, Proc. ACM SIGCOMM 2005, September 2005.
【非特許文献５】武田、太田、加藤、根元、“トラヒックパターンを用いた不正アクセス検出及び追跡方式”、電子情報通信学会論文誌 Ｂ、Vol. J84-B、no.8、pp.1464-1473、２００１年８月。
【非特許文献６】A. Gunnar, M. Johansson, and T. Telkamp, “Traffic matrix estimation on a large IP backbone A comparison on real data”, ACM SIGCOMM IMC, Oct, 2004.
【発明の開示】
【発明が解決しようとする課題】
【０００５】
図１にあるインターネットバックボーンリンクで測定した結果を示す。図１（ａ）は、パケットサンプリングを行わなかった場合すなわちサンプリング確率ｐ＝１の場合、図１（ｂ）、（ｃ）はそれぞれサンプリング確率ｐを０．０１、０．００１にした場合における、フロー数の時系列データである。横軸が時間を表し、縦軸がフロー数を表す。図１（ａ）をみると、フロー数が急激に増加している箇所を確認することができる。実データを詳細に分析したところ、このスパイクは、様々な偽装発信元ＩＰアドレスからいくつかの宛先ＩＰアドレスに向けて大量のＴＣＰのＳＹＮパケットを送出するＳＹＮ  ｆｌｏｏｄｉｎｇであることが分かった。ところが、サンプリングを行った図１（ｂ）（ｃ）をみると、サンプリング確率ｐが小さくなるにつれてこれらの異常トラヒックによるスパイクが小さくなってしまっている。これは、パケットサンプリングすることにより、このような異常フローがサンプルされにくいためである。ネットワークスキャンやポートスキャン、ワームなどの異常トラヒックは、個々のフロー当りのパケット数は少ないもののフローを大量に発生するのが特徴である。このような異常フローは正常フローに比べてフロー当りのパケット数が少ないため、異常フローがサンプルされる確率（つまり、該フローから少なくとも１パケットサンプルされる確率）はサンプリング確率ｐが小さくなるほど正常フローがサンプルされる確率に比べて小さくなる。その結果、異常フローが図１（ｂ）（ｃ）のように埋もれてしまう、という問題点があった。
【０００６】
本発明の目的は、上述の問題点に鑑み、パケットサンプリングが行われても異常トラヒックを適切に検出できるような異常トラヒック検出方法およびその装置およびプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本明細書において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【０００８】
本発明では、監視トラヒックをいくつかのグループに分割することにより、異常トラヒックの検出確率を高める。ここでは、監視単位毎（例えばリンク毎、あるいは対地間毎）にトラヒックを監視しているとし、予め定めた時間間隔ｔ０毎の発生トラヒック量を測定し、ｔ番目の測定区間におけるトラヒック量をＮ_ｔとおき、Ｎ_ｔの時間変化をみて異常トラヒックを検出する場合を考える。例えば、その監視トラヒックを構成する個々のフローの発信元ＩＰアドレスをみて、同じＩＰアドレスを持つフローを同じグループにマッピングさせてＮ_ｔをＮ_ｔ（ｊ）（ｊ＝１〜Ｍ）に分割する。ここで、Σｊ＝１〜ＭＮ_ｔ（ｊ）＝Ｎ_ｔである。
【０００９】
スキャンのような異常トラヒックはある特定のホストから、多数の着信先ＩＰアドレスや着信先ポート番号に向けて大量のフローを発生するため、ある特定のグループにそのような異常フローは集約される可能性が高い。従って、発信元ＩＰアドレスでグループ分けすることにより、正常トラヒックは各グループへ分散させつつ、異常トラヒックは特定のグループに集約させることが可能となり、該グループでの異常フロー数の正常フロー数に対する比率を高めることにより、異常検出確率を高めることができる。一方、ＤＤｏＳのような特定の宛先ホスト（群）への攻撃トラヒックは、着信先ＩＰアドレスでグループ分けすることにより検出確率を高められると考えられる。
【００１０】
本発明の第１の方法においては、観測されたトラヒック量Ｎ_ｔを予め定めた規則にしたがってＭ個にグループ分けし、ｊ番目のグループにおけるトラヒック量をＮ_ｔ（ｊ）とし、（このとき、Σｊ＝１〜ＭＮ_ｔ（ｊ）＝Ｎ_ｔ）、各グループｊにおけるＮ_ｔ（ｊ）に関する時系列を解析することによりＮ_ｔ（ｊ）の時間的変化を検出したら、該グループに異常トラヒックが発生したとして検出することを特徴とする。
【００１１】
なお、時系列の時間的変化により異常トラヒックを検出するという部分については、例えば非特許文献５のように公知の技術である。
【００１２】
本発明の第２の方法においては、第１の方法において時系列を解析する際、Ｎ_ｔ（ｊ）が、その移動平均ｍに標準偏差σのα倍した値ｍ＋α×σを超えたら、異常トラヒックが発生したとして検出することを特徴とする。
【００１３】
例えばα＝３とすると、異常トラヒックが発生していないときに誤検出する確率を約０．１３％に抑えることになる（Ｎ_ｔ（ｊ）が正規分布に従うと仮定して）。なお、このように平均に標準偏差のα倍加えたものをしきい値にするという方法自体は公知の技術である。
【００１４】
本発明の第３の方法においては、第１の方法において観測するトラヒック量として、発生バイト数、発生パケット数、発生フロー数のいずれかをＮ_ｔとして用いることを特徴とする。
【００１５】
なお、第１の方法において、Ｍ個のグループ分けする際の規則として、Ｎ_ｔを構成する個々のフローの発信元ＩＰアドレスをみて、同じＩＰアドレスを持つフローを同じグループにマッピングさせてＮ_ｔをＮ_ｔ（ｊ）（ｊ＝１〜Ｍ）に分割してもよい。また、発信元ＩＰアドレスでグループ分けする代わりに、着信先ＩＰアドレスでグループ分けしてもよい。
【００１６】
本発明の第４の方法においては、第１の方法における分割グループ数Ｍの決定方法として、第３の方法のうちフロー数を監視する場合、正常フローに関して、パケットサンプリングを行う前のフロー数の平均ｍと分散σ＾２を実データ分析により事前に定めておく。ここで、正常フロー数Ｙが平均ｍ、分散σ＾２の正規分布Ｎ（ｍ，σ＾２）に従うとし、Ｆ（ｙ，ｍ，σ＾２）＝Ｐ［Ｙ＜ｙ］とし、（つまりＹがｙ以下となる確率を正規分布Ｎ（ｍ，σ＾２）を用いて計算する）、検出すべき異常フロー数ｄをｄ＝ａｒｇｍｉｎ｛ｄ｜Ｆ（ｍ−ｄ＋α×σ，ｍ，σ＾２）＜ε｝とする。なお、εは異常トラヒック非検知率に対する予め定めた目標値である（０＜ε＜１）。ここで、サンプリング確率ｐでパケットサンプリングを行ったときの平均フロー数ｍ（ｐ）と分散σ（ｐ）＾２を測定しておき、これをＭ個のグループに分割したときのグループｊでのフロー数ｍ（ｐ，ｊ）をｍ（ｐ，ｊ）＝ｍ（ｐ）／Ｍとし、分散σ（ｐ，ｊ）＾２をσ（ｐ，ｊ）＾２＝σ（ｐ）＾２／Ｍにより計算する。以上の準備の下、分割グループ数Ｍを、Ｍ＝ａｒｇｍｉｎ｛Ｍ｜Ｆ（ｍ（ｐ，ｊ）＋α×σ（ｐ，ｊ），ｍ（ｐ，ｊ）＋ｄ×ｐ，σ（ｐ，ｊ）＾２＋ｄ×ｐ×（１−ｐ））＜ε｝と設定することを特徴とする。
【００１７】
ここで上述の方法について説明する。基本的な考え方は、サンプリングを行っていなければε未満の非検出率で検出できる異常トラヒックを、サンプリング後も同じくε未満の非検出率で見つけるのに必要な分割グループ数Ｍを決定している。
【００１８】
まず最初にサンプリングを行う前の元のフロー数の平均ｍと分散σ＾２を決める必要がある。一つの方法として、例えば事前に一時的に全パケットキャプチャをして求めておく方法がある。別の方法として、パケットサンプリングにより得られたサンプルフロー統計から、元のフロー統計を推定する方法がある。まず、元のフロー数の平均ｍは、例えば非特許文献２の方法を用いて推定できる。次に、元のフロー数の分散σ＾２の推定法について述べる。サンプリング確率ｐ０でパケットサンプリングを行ってサンプルフロー情報を収集しているとし、ｐ０より小さい確率ｐ１，ｐ２，…（ｐ１，  ｐ２，…＜ｐ０）でサンプリングした場合のサンプルフロー情報を生成する。例えばｐ０＝０．０１、ｐ１＝０．００１であれば、ｐ０＝０．０１で得られたサンプルフローを更に１／１０のパケットサンプリング確率で間引いてやればよい。次に、各確率ｐｉに対するサンプルフロー数の平均ｍ（ｐｉ）と分散σ（ｐｉ）＾２を計算する。その後、平均ｍと分散σ＾２の間にσ＾２＝ａ×ｍ＾ｃの関係が成り立つとして、測定結果（ｍ（ｐｉ），σ＾２（ｐｉ））（ｉ＝０，１，２，…）がこの関係式に合うようなａとｃを計算する。具体的には、関係式のｌｏｇを取り、ｌｏｇ｛σ＾２｝＝ａ＋ｃ×ｌｏｇ｛ｍ｝としておき、測定結果のｌｏｇを取った値ｌｏｇ｛ｍ（ｐｉ）｝を説明変数Ｘｉ、ｌｏｇ｛σ（ｐｉ）＾２｝を被説明変数ＹｉとしてＸｉとＹｉの関係をＹ＝ａ＋ｃＸと線形近似して、その近似誤差が最小となる傾きｃとＹ切片ａを求める。ａとｃが求まったら、元の分散σ＾２を、σ＾２＝ａ×ｍ＾ｃにより推定する。なお、ここで用いた平均と分散の関係式σ＾２＝ａ×ｍ＾ｃは、非特許文献６を参考にしており、トラヒックの時系列に関する平均ｍと分散σ＾２の間にこのような関係が成り立つことを利用している。
【００１９】
以上の準備の下、検出すべき異常フロー数ｄをｄ＝ａｒｇｍｉｎ｛ｄ｜Ｆ（ｍ−ｄ＋α×σ，ｍ，σ＾２）＜ε｝としている。ここで、Ｆ（ｍ−ｄ＋α×σ，ｍ，σ＾２）＝Ｐ［Ｙ＋ｄ＜ｍ＋α×σ］を意味しており、すなわち、異常トラヒックｄが加わっているにもかかわらず検出しきい値ｍ＋α×σを下回り正しく検出できない確率（つまり、非検出率）を表す。従ってｄをｄ＝ａｒｇｍｉｎ｛ｄ｜Ｆ（ｍ−ｄ＋α×σ，ｍ，σ＾２）＜ε｝とすることにより、非検出率がε未満となる最小のｄを異常トラヒックと定義している。
【００２０】
このような異常トラヒックｄを、パケットサンプリング後も検出できるようにトラヒックを分割していき、該異常トラヒックを非検出率ε未満で検出するのに必要な分割数ＭをＭ＝ａｒｇｍｉｎ｛Ｍ｜Ｆ（ｍ（ｐ，ｊ）＋α×σ（ｐ，ｊ），ｍ（ｐ，ｊ）＋ｄ×ｐ，σ（ｐ，ｊ）＾２＋ｄ×ｐ×（１−ｐ））＜ε｝により決定している。なお、ここでは異常トラヒックは発生フロー数ｄで異常フローを発生するとし、該フローを確率ｐでサンプルしたときの平均フロー数がｄ×ｐ、分散がｄ×ｐ×（１−ｐ）になるとしている。また異常フローはＭ分割後もある一つのグループに集中しているとしている。
【００２１】
なお、Ｍを過度に大きくすると、本当は異常トラヒックが発生していないのに誤検出する回数が急増してしまい、オペレータの負担を大きくしてしまう可能性がある。また、Ｍが大きいとその分時系列解析すべきデータ数も増加し、処理コストも増加してしまう、従って、Ｍは異常トラヒック非検出率を目標値ε以下にできる範囲でなるべく小さく設定している。
【００２２】
本発明の第５の方法においては、第４の方法において、Ｍ個のグループに分割したときのグループｊでのフロー数ｍ（ｐ，ｊ）をｍ（ｐ，ｊ）＝ｍ（ｐ）／Ｍとしていた代わりに、Ｍ分割したときのフロー数分配比率ｗ（ｉ）（Σｗ（ｉ）＝１，０＜ｗ（ｉ）＜１）を実データ分析により事前に定めておき、Ｍ分割後にフロー数が最大となるグループｊ（つまりｗ（ｊ）が最大となるグループ）でのフロー数をｍ（ｐ，ｊ）＝ｍ（ｐ）×ｗ（ｊ）とし、分散σ（ｐ，ｊ）＾２をσ（ｐ，ｊ）＾２＝ａ×ｍ（ｐ，ｊ）＾ｃにより計算してから（ａ，ｃは予め定めるか実データ分析により事前に定めておく係数）を用いて第４の方法と同様の手順で分割グループ数Ｍを決定することを特徴とする。
【００２３】
第４の方法では、トラヒックは均等に分割されることを仮定していたが、ここでは分割後の正常フロー数に偏りがある場合を想定し、フロー数が最も多いグループに着目している。これは、正常フロー数が多いとそれだけ異常が埋もれる確率が高いが、そのような正常フロー数が多いグループにおいても異常非検出率をε未満に抑えられるようにすることを意味する。
【００２４】
ここで必要となるフロー数分配比率の決定方法について述べる。たとえば、事前に一時的に全パケットキャプチャを実施し（あるいは、過去のある時間帯において収集されたサンプルフロー情報を用いてもよい）、分割グループ数をＭとしたときの分配比率ｗ（ｉ）（ｉ＝１〜Ｍ）を計算しておき、その中でフロー数が最大となるグループｊでの分配比率ｗ（ｊ）を記憶しておく。異常を、Ｍを変えた場合それぞれに対して実施しておき、Ｍの値とそのときのフロー数が最大となるグループｊでの分配比率ｗ（ｊ）の対応表を用意しておく。
【発明の効果】
【００２５】
本発明により、パケットサンプリングが行われても異常トラヒックを適切に検出することができる。
【発明を実施するための最良の形態】
【００２６】
以下、図面を用いて本発明の実施例を説明する。
【実施例１】
【００２７】
図２は本発明が適用されるＩＰネットワークの基本構成の一例を示す構成図である。図２において、２０は異常トラヒック検出装置であり、２１〜２４はルータである。図２に示すように、ＩＰネットワークを構成する各ルータ２１〜２４からサンプリング確率ｐでパケットサンプリングされたサンプルフロー情報が異常トラヒック検出装置２０に出力され、異常トラヒック検出装置２０はサンプルフロー情報を元に異常トラヒックを検出する。
【００２８】
図３は、本発明における異常トラヒック検出装置の構成例を表すブロック図である。トラヒック検出装置２０は、パケットサンプリングによりサンプルされたフローに関する情報を収集分析し、予め定めた監視単位毎に、予め定めた時間間隔ｔ０毎の発生トラヒック量を測定し、ｔ番目の測定区間におけるトラヒック量をＮ_ｔとおき、Ｎ_ｔの時間変化をみて異常トラヒックを検出する。
【００２９】
図３に示すように、異常トラヒック検出装置２０は、分割グループ数決定部３１とグループ分類部３２と時系列解析部３３と異常トラヒック検出部３４を備える。各部が行う処理の概要は次の通りである。分割グループ数決定部３１は、分割グループ数を決定する。グループ分類部３２は、観測されたトラヒック量Ｎ_ｔを予め定めた規則にしたがってＭ個にグループ分けし、ｊ番目のグループにおけるトラヒック量をＮ_ｔ（ｊ）（このとき、Σｊ＝１〜ＭＮ_ｔ（ｊ）＝Ｎ_ｔ）とし、Ｎ_ｔ（ｊ）を時系列解析部３３に通知する。時系列解析部３３は、各グループｊにおけるＮ_ｔ（ｊ）に関する時系列を解析し、Ｎ_ｔ（ｊ）の時間的変化を検出したら、該グループに異常トラヒックが発生したとして検出する。異常トラヒック検出部３４は、時系列解析部３３から異常検出の旨の通知を受けたら異常トラヒックが検出されたことをオペレータに通知する。
【００３０】
本実施例のトラヒック検出装置２０は、本発明の第１の方法に記載のように、予め定めた監視単位（例えばリンク単位あるいは対地間単位）毎にトラヒックを監視し、本発明の第３の方法に記載のうち監視トラヒック項目としてフロー数を監視して、第４の方法で分割グループ数Ｍを決定し、発信元ＩＰアドレスで監視トラヒックをＭ個に分割し、第２の方法で各グループのトラヒックの時系列を解析して異常トラヒックを検出する。
【００３１】
図３に示されている通り、ルータから到着したフロー情報は、グループ分類部３２でどのグループに属するか決定される（なお、この手順は、監視単位毎に行われるとする）。ここで、フロー情報としては、該フローを構成する発信元ＩＰアドレス、着信先ＩＰアドレス、プロトコル番号、発信元ポート番号、着信先ポート番号、およびパケット数、バイト数が記載されている。ここでは、一例として、発信元ＩＰアドレスからそのアドレスプリフィックスを調べ、同一プリフィックスを持つフローは同一のグループに属するようにマッピングさせる。他の例として、プリフィックスからそのプリフィックスの属するＡＳ（autonomous system）番号を調べ、ＡＳ番号をＭで割った余りがｊならグループｊにマッピングさせてもよい。どのグループにマッピングさせるかを決定したら、その旨を時系列解析部３３に通知する。時系列解析部３３では、グループ毎に発生フロー数に関するカウンタを用意しており、グループ分類部からグループｊへのフロー到着があった旨の通知を受けたら、グループｊのフロー数カウンタＮ_ｔ（ｊ）をＮ_ｔ（ｊ）←Ｎ_ｔ（ｊ）＋１とする。予め定めた時間間隔ｔ０が経過したら、Ｎ_ｔ（ｊ）をしきい値ｍ（ｊ）＋α×σ（ｊ）（ｍ（ｊ）はＮ_ｔ（ｊ）の平均、σ（ｊ）は標準偏差であり、計算手順は後述。一方、αは予め定める係数）と比較し、しきい値を超えていたら異常トラヒック検出部３４にその旨を通知する。その後、平均ｍ（ｊ）をｍ（ｊ）←（１−γ）×ｍ（ｊ）＋γ×Ｎ_ｔ（ｊ）により更新し、過去ｎ期分のＮ_ｔ（ｊ）とｍ（ｊ）の差に関する標準偏差をσとして計算する。その後、Ｎ_ｔ（ｊ）を０にクリアする。異常トラヒック検出部３４は、時系列解析部３３から異常検出の旨の通知を受けたら、そのグループ番号をオペレータに通知する。
【００３２】
一方、分割グループ数決定部３１は、以下の手順に従って分割グループ数Ｍを決定しておく。
正常フローに関して、パケットサンプリングを行う前のフロー数の平均ｍと分散σ＾２を与えておく。例えば、事前に一時的に全パケットキャプチャをして求めておく。あるいは、パケットサンプリングにより得られたサンプルフロー統計から、元のフロー数の平均ｍを推定する（例えば非特許文献２の方法を用いる）。次に、元のフロー数の分散σ＾２を以下の手順で推定する。サンプリング確率ｐ０でパケットサンプリングを行ってサンプルフロー情報を収集しているとし、ｐ０より小さい確率ｐ１，ｐ２，…（ｐ１，ｐ２，…＜ｐ０）でサンプリングした場合のサンプルフロー情報を生成する。例えばｐ０＝０．０１、ｐ１＝０．００１であれば、ｐ０＝０．０１で得られたサンプルフローを更に１／１０のパケットサンプリング確率で間引いてやればよい。次に、各確率ｐｉに対するサンプルフロー数の平均ｍ（ｐｉ）と分散σ（ｐｉ）＾２を計算する。その後、平均ｍと分散σ＾２の間にσ＾２＝ａ×ｍ＾ｃの関係が成り立つとして、測定結果（ｍ（ｐｉ），σ＾２（ｐｉ））（ｉ＝０，１，２，…）がこの関係式に合うようなａとｃを計算する。具体的には、関係式のｌｏｇを取り、ｌｏｇ｛σ＾２｝＝ａ＋ｃ×ｌｏｇ｛ｍ｝としておき、測定結果のｌｏｇを取った値ｌｏｇ｛ｍ（ｐｉ）｝を説明変数Ｘｉ、ｌｏｇ｛σ（ｐｉ）＾２｝を被説明変数ＹｉとしてＸｉとＹｉの関係をＹ＝ａ＋ｃＸと線形近似して、その近似誤差が最小となる傾きｃとＹ切片ａを求める。ａとｃが求まったら、元の分散σ＾２を、σ＾２＝ａ×ｍ＾ｃにより推定する。なお、Ａ＾ＢはＡのＢ乗を意味する。ここで、正常フロー数Ｙが平均ｍ、分散σ＾２の正規分布Ｎ（ｍ，σ＾２）に従うとし、Ｆ（ｙ，ｍ，σ＾２）＝Ｐ［Ｙ＜ｙ］とし（つまりＹがｙ以下となる確率を正規分布Ｎ（ｍ，σ＾２）を用いて計算する）、検出すべき異常フロー数ｄをｄ＝ａｒｇｍｉｎ｛ｄ｜Ｆ（ｍ−ｄ＋α×σ，ｍ，σ＾２）＜ε｝とする。なお、ａｒｇｍｉｎ｛Ａ｜Ｂ｝はＢという条件を満たすＡのうち最小の値を意味する。また、εは異常トラヒック非検知率に対する予め定めた目標値である（０＜ε＜１）。ここで、サンプリング確率ｐでパケットサンプリングを行ったときの平均フロー数ｍ（ｐ）と分散σ（ｐ）＾２を測定しておき、これをＭ個のグループに分割したときのグループｊでのフロー数ｍ（ｐ，ｊ）をｍ（ｐ，ｊ）＝ｍ（ｐ）／Ｍとし、分散σ（ｐ，ｊ）＾２をσ（ｐ，ｊ）＾２＝σ（ｐ）＾２／Ｍにより計算する。以上の準備の下、分割グループ数Ｍを、Ｍ＝ａｒｇｍｉｎ｛Ｍ｜Ｆ（ｍ（ｐ，ｊ）＋α×σ（ｐ，ｊ），ｍ（ｐ，ｊ）＋ｄ×ｐ，σ（ｐ，ｊ）＾２＋ｄ×ｐ×（１−ｐ））＜εと設定する。
【実施例２】
【００３３】
実施例２は、本発明の第４の方法で分割グループ数Ｍを決定するものである。実施例２では、実施例１のように、Ｍ個のグループに分割したときのグループｊでのフロー数ｍ（ｐ，ｊ）をｍ（ｐ，ｊ）＝ｍ（ｐ）／Ｍとしていた代わりに、Ｍ分割したときのフロー数分配比率ｗ（ｉ）（Σｗ（ｉ）＝１，０＜ｗ（ｉ）＜１）を実データ分析により事前に定めておき、Ｍ分割後にフロー数が最大となるグループｊ（つまりｗ（ｊ）が最大となるグループ）でのフロー数ｍ（ｐ，ｊ）＝ｍ（ｐ）×ｗ（ｊ）を用いる。また、分散σ（ｐ，ｊ）＾２をσ（ｐ，ｊ）＾２＝ａ×ｍ（ｐ，ｊ）＾ｃにより計算する（ａ，ｃは予め定めるか実データ分析により事前に定めておく係数）。その他の点は実施例１と同様である。
【実施例３】
【００３４】
実施例３では、実施例１のように発信元ＩＰアドレスを元にグループ分けする代わりに、着信先ＩＰアドレスを用いてグループ分けする。あるいは、プロトコル番号を用いてグループ分けしてもよいし、発信元ポート番号、あるいは着信先ポート番号を用いてグループ分けしてもよい。さらに、これらを組み合わせて、たとえば同じ発信元ＩＰアドレスとプロトコル番号の組を持つフローを共通のグループに対応させてもよい。その他の点は実施例１と同様である。
【実施例４】
【００３５】
実施例４では、実施例１のようにフロー数を監視していた代わりに、パケット数、あるいはバイト数、またはこれらを併用して異常トラヒック検出を行う。パケット数を監視する場合は、時系列解析部３３において、グループｊからのフロー到着があった旨の通知を受けたら、グループｊのパケット数カウンタＰｋｔ_ｔ（ｊ）←Ｐｋｔ_ｔ（ｊ）＋｛該フローのパケット数｝とすればよい。バイト数監視の場合は、Ｂ_ｔ（ｊ）←Ｂ_ｔ（ｊ）＋｛該フローのバイト数｝とすればよい。なお、パケット数、あるいはバイト数の場合の分割グループ数Ｍの決定については、以下の通りである。
【００３６】
パケット数の場合、正常フローに関して、時間間隔ｔ０における平均到着パケット数と分散を測定あるいは予め見積もっておく。これを、サンプリングを行う前の正常フローからの全到着パケット数の平均ｍおよび分散σ＾２とする。ここで、正常パケット数Ｙが平均ｍ、分散σ＾２の正規分布Ｎ（ｍ，σ＾２）に従うとし、Ｆ（ｙ，ｍ，σ＾２）＝Ｐ［Ｙ＜ｙ］とし（つまりＹがｙ以下となる確率を正規分布Ｎ（ｍ，σ＾２）を用いて計算する）、検出すべき異常パケット数ｄをｄ＝ａｒｇｍｉｎ｛ｄ｜Ｆ（ｍ−ｄ＋α×σ，ｍ，σ＾２）＜εとする。なお、εは異常トラヒック非検知率に対する予め定めた目標値である（０＜ε＜１）。ここで、サンプリング確率ｐでパケットサンプリングを行ったときの平均パケット数ｍ（ｐ）と分散σ（ｐ）＾２を測定しておき、これをＭ個のグループに分割したときのグループｊでのパケット数ｍ（ｐ，ｊ）をｍ（ｐ，ｊ）＝ｍ（ｐ）／Ｍとし、分散σ（ｐ，ｊ）＾２をσ（ｐ，ｊ）＾２＝σ（ｐ）＾２／Ｍにより計算する。以上の準備の下、分割グループ数Ｍを、Ｍ＝ａｒｇｍｉｎ｛Ｍ｜Ｆ（ｍ（ｐ，ｊ）＋α×σ（ｐ，ｊ），ｍ（ｐ，ｊ）＋ｄ×ｐ，σ（ｐ，ｊ）＾２＋ｄ×ｐ×（１−ｐ））＜ε｝と設定する。
【００３７】
バイト数の場合は、全正常フローからの到着バイト数の平均をｍとし、上述のパケット数に関する手順と同様のことを実施する。
以上の点以外は実施例１と同様である。
【００３８】
本発明の有効性について評価した結果を報告する、図４に、ある実トラヒックを分析した結果を示す。横軸は時間であり、縦軸はフロー数［ｆｌｏｗｓ／ｍｉｎ］である。図４（ａ）はパケットサンプリングを行う前の全フロー数（サンプリング確率ｐ＝１）、（ｂ）はサンプリング確率をｐ＝０．００１としたときの全サンプルフロー数、（ｃ）はｐ＝０．００１、分割グループ数Ｍ＝５としたときの各グループのサンプルフロー数の時系列である。図４（ａ）をみるとフロー数の急増している箇所がみてとれる。データを詳細に分析した結果、これは、あるホストが膨大な着信先ＩＰアドレス数に対してＳＹＮパケットを送出するＳＹＮ  ｆｌｏｏｄｉｎｇであることがわかった。図４（ｂ）の全フロー数の結果（ｐ＝０．００１）と図４（ｃ）の結果を比較すると分かるように、トラヒックを分割することにより、全体でみると埋もれていた異常トラヒックが目視できるようになっている。なお、ここでは発信元ＩＰアドレスを元に５つのグループに分割している。ここで、グループＤ（図中ｃｌａｓｓ  Ｄ）には、図４（ａ）を用いて説明したＳＹＮ  ｆｌｏｏｄｉｎｇが存在していた。
【００３９】
図４（ｂ）、（ｃ）を比較すれば明らかなように、グループに分割しない図４（ｂ）ではＳＹＮ  ｆｌｏｏｄｉｎｇによるフロー数の急増がそれほど明確ではないのに対して、グループに分割した図４（ｃ）では、ＳＹＮ  ｆｌｏｏｄｉｎｇによるフロー数の急増がｃｌａｓｓ  Ｄにおいて明確である。
【００４０】
以上説明したように、本発明によれば、監視対象トラヒックを適切に分割することにより、パケットサンプリングによって埋もれてしまう異常トラヒックも適切に検出することが可能となる。
【００４１】
以上に説明した異常トラヒック検出装置はその機能、動作を実現する手段を有しており、その手段はコンピュータとプログラムで構成できる。また、そのプログラムの一部または全部の代わりにハードウェアを用いてもよい。
【００４２】
以上、本発明者によってなされた発明を、前記実施形態に基づき具体的に説明したが、本発明は、前記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
【図面の簡単な説明】
【００４３】
【図１】パケットサンプリングすると異常トラヒックが埋もれてしまう例を表すグラフである。
【図２】本発明が適用されるネットワークの基本構成例を示す構成図である。
【図３】本発明における異常トラヒック検出装置の構成例を示すブロック図である。
【図４】本発明の効果を示す評価結果である。
【符号の説明】
【００４４】
２０…異常トラヒック検出装置、２１〜２４…ルータ、３１…分割グループ数決定部、３２…グループ分類部、３３…時系列解析部、３４…異常トラヒック検出部
【図１】
2008118242.tif 000003
【図２】
2008118242.tif 000004
【図３】
2008118242.tif 000005
【図４】
2008118242.tif 000006