(57)【要約】【課題】データ系列の数が非常に多い場合であっても、どのデータ系列に異常や変化が生じたかを効率よく検出することができる異常検出システムを提供する。【解決手段】集約手段７１は、同一のグループに属していると定められたデータ系列のデータ値またはデータ値の累乗の和を計算することにより、同一のグループに属していると定められたデータ系列を集約する。統計量計算手段７２は、集約される前のデータ系列のデータ値の統計量を計算する。グループ検出手段７３は、各グループ毎に計算された和に基づいて、異常または変化が生じているデータ系列を含むグループを検出する。データ系列特定手段７４は、グループ検出手段７３に検出されたグループに属するデータ系列の中から、統計量に基づいて、異常または変化が生じているデータ系列を特定する。【選択図】図１２
2010198579.tif 000002
【特許請求の範囲】
【請求項１】
同一のグループに属していると定められたデータ系列のデータ値またはデータ値の累乗の和を計算することにより、同一のグループに属していると定められたデータ系列を集約する集約手段と、
集約される前のデータ系列のデータ値の統計量を計算する統計量計算手段と、
各グループ毎に計算された和に基づいて、異常または変化が生じているデータ系列を含むグループを検出するグループ検出手段と、
グループ検出手段に検出されたグループに属するデータ系列の中から、前記統計量に基づいて、異常または変化が生じているデータ系列を特定するデータ系列特定手段とを備える
ことを特徴とする異常検出システム。
【請求項２】
集約から除外されるデータ系列を示す情報である除外情報を記憶する除外情報記憶手段を備え、
集約手段は、前記除外情報が示すデータ系列を、データ値またはデータ値の累乗の和の計算対象から除外する
請求項１に記載の異常検出システム。
【請求項３】
ユーザの操作に応じて、除外情報記憶手段に記憶される除外情報を編集する除外情報編集手段を備える
請求項２に記載の異常検出システム。
【請求項４】
データ系列特定手段は、異常または変化が生じているデータ系列として特定したデータ系列を示す除外情報を除外情報記憶手段に記憶させる
請求項２または請求項３に記載の異常検出システム。
【請求項５】
統計量計算手段は、同一のグループに属していると定められたデータ系列が集約されるときに、前記データ系列のデータ値の統計量を計算する
請求項１から請求項４のうちのいずれか１項に記載の異常検出システム。
【請求項６】
統計量計算手段は、グループ検出手段がグループを検出したときに、当該グループに属し集約手段に集約された各データ系列のデータ値の統計量を計算する
請求項１から請求項４のうちのいずれか１項に記載の異常検出システム。
【請求項７】
個々のデータ系列は、それぞれ別々のポート番号に対応するデータ系列である
請求項１から請求項６のうちのいずれか１項に記載の異常検出システム。
【請求項８】
個々のデータ系列は、通信トラヒックに関するログとして生成されたデータ系列である
請求項１から請求項７のうちのいずれか１項に記載の異常検出システム。
【請求項９】
同一のグループに属していると定められたデータ系列のデータ値またはデータ値の累乗の和を計算することにより、同一のグループに属していると定められたデータ系列を集約し、
集約される前のデータ系列のデータ値の統計量を計算し、
各グループ毎に計算された和に基づいて、異常または変化が生じているデータ系列を含むグループを検出し、
検出されたグループに属するデータ系列の中から、前記統計量に基づいて、異常または変化が生じているデータ系列を特定する
ことを特徴とする異常検出方法。
【請求項１０】
集約から除外されるデータ系列を示す情報である除外情報が示すデータ系列を、データ値またはデータ値の累乗の和の計算対象から除外する
請求項９に記載の異常検出方法。
【請求項１１】
コンピュータに、
同一のグループに属していると定められたデータ系列のデータ値またはデータ値の累乗の和を計算することにより、同一のグループに属していると定められたデータ系列を集約する集約処理、
集約される前のデータ系列のデータ値の統計量を計算する統計量計算処理、
各グループ毎に計算された和に基づいて、異常または変化が生じているデータ系列を含むグループを検出するグループ検出処理、および、
グループ検出処理で検出されたグループに属するデータ系列の中から、前記統計量に基づいて、異常または変化が生じているデータ系列を特定するデータ系列特定処理
を実行させるための異常検出用プログラム。
【請求項１２】
集約から除外されるデータ系列を示す情報である除外情報を記憶する除外情報記憶手段を備えるコンピュータに、
集約処理で、前記除外情報が示すデータ系列を、データ値またはデータ値の累乗の和の計算対象から除外させる
請求項１１に記載の異常検出用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異常検出システム、異常検出方法および異常検出用プログラムに関し、特に、複数のデータ系列中のどのデータ系列に異常や変化が生じているかを検出する異常検出システム、異常検出方法および異常検出用プログラムに関する。
【背景技術】
【０００２】
種々の異常検出システムが提案されている。例えば、特許文献１には、ネットワークトラヒックをその特性を利用してフロー単位に集約し、検査対象となるデータ系列を減らして異常検出を行うネットワーク異常検出システムが記載されている。
【０００３】
また、特許文献２には、異常を検出する複数の異常検出手段と、同一原因に由来して複数の異常検出手段から検出された複数の異常検出情報を単一の異常情報として集約し、一つの検出情報として生成するシステムが記載されている。
【０００４】
また、非特許文献１には、複数のデータ系列を集約してから異常検出する方法が記載されている。非特許文献１に記載の方法では、異常検出後に、集約前のどのデータ系列が異常の要因であるかを人が特定している。
【０００５】
また、特許文献３には、パケット情報および所定の種別毎のフロー統計情報を収集する複数の収集装置と、収集装置が収集した情報を、一つまたは複数の収集装置から取得し、所定の方法に従って収集情報を集約する集約装置とを備えるネットワーク監視システムが記載されている。
【０００６】
また、特許文献４には、統計量データを算出し、プロセスの異常を診断するプロセス監視装置が記載されている。
【０００７】
特許文献５には、指定されたフィールドの上位Ｎ（Ｎ≧２）個のフィールド値等を算出し、算出した上位Ｎ個のフィールド値等を蓄積し、新規に算出されたデータと過去のデータとの類似度を計算し、類似度と閾値との比較により異常を検出する異常トラフィック検出方法が記載されている。また、特許文献５には、過去の類似度のデータから統計分布を計算し、その９９％値を閾値とすることが記載されている。
【０００８】
また、異常検出アルゴリズムとして、外れ値検出（特許文献６〜９参照）、変化点検出（特許文献１０，１１参照）、異常行動検出（特許文献１２参照）等がある。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００６−２４６３２５号公報（段落０００８、図１）
【特許文献２】特開２００１−３１４０３７号公報（段落０００７、図１）
【特許文献３】特開２００７−１３５９０号公報（段落００２１−００２３、段落００３２−００４３）
【特許文献４】特開２００７−６５８８３号公報（段落００２０，００３２）
【特許文献５】特開２００８−１６７４８４号公報（段落０００７，００１９）
【特許文献６】特開２００１−１０１１５４号公報
【特許文献７】特開２００３−５９７０号公報
【特許文献８】特開２００４−７８９８１号公報
【特許文献９】特開２００７−１８５３０号公報
【特許文献１０】特開２００４−５４３７０号公報
【特許文献１１】特開２００４−４６５８号公報
【特許文献１２】特開２００４−３０９９９８号公報
【非特許文献】
【００１０】
【非特許文献１】山形昌也、村田康裕、井上大介、衛藤将史、吉岡克成、中尾康二、「マクロ解析環境における全ポートアクセス監視を考慮した変化点検出エンジンの拡張」、２００８年暗号と情報セキュリティシンポジウム(SCIS2008),3C1-4,２００８年
【発明の概要】
【発明が解決しようとする課題】
【００１１】
特許文献１に記載されているように、複数のデータ系列を集約して異常検出する方式があるが、特許文献１に記載された技術では、異常検出時に、集約する前の各データ系列のうちどのデータ系列で異常や変化が生じているのかを自動的に特定することはできない。また、アクセス過多を起こすサービス不能攻撃（ＤｏＳ：Ｄｅｎｉａｌ  ｏｆ  Ｓｅｒｖｉｃｅ）のように、フロー自体が急激に増加する場合には、集約による異常検出対象の減少は困難である。
【００１２】
また、特許文献２に記載されたシステムでは、各データ系列全てについて異常検出を行うので、データ系列の数に比例して異常検出の処理量が増えるという問題がある。また、特許文献２に記載されたシステムでは、同一要因に由来していない異常情報は集約されない。また、複数のデータ系列に対してそれぞれ個別に異常を検出するためには、データ系列毎に異常検出用の閾値を定める必要がある。また、データ系列におけるデータの傾向が変化すると、その閾値を再設定する必要がある。このように個々のデータ系列毎に異常を検出することは、データ系列毎に個別の閾値設定を必要とし、そのための作業負担が大きくなってしまうという問題があった。また、データマイニングにより自動で異常検出することも考えられるが、統計処理の影響により一定の割合で異常検出が行われる（例えば異常スコアの分布上位０．１％等）。そのため、データ系列の数に比例して異常検出件数が多くなり過ぎ、本来特定したいデータ系列の特定が困難となってしまう。
【００１３】
また、非特許文献１に記載された方法では、どのデータ系列が異常の要因であるかを人が特定する。そのため、集約前のデータ系列の種類が多い場合、データ系列の特定が困難となるおそれがある。例えば、１つのデータ系列で、１日に１件異常が生じると仮定する。データ系列が１０００系列あるとすると、１日に１０００件の異常が生じることとなる。この場合、２分に１件以上の異常が生じていることとなる。また、データ系列が１０００００系列あるとすると、１日に１０００００件異常が生じる。この場合、１秒に１件以上の異常が生じていることとなる。このようなペースで異常が生じる場合、人手でのデータ系列の特定は困難である。また、人手でデータ系列を特定する場合、作業者のスキルにより特定の精度や時間にばらつきが生じ、一定の基準に従ってデータ系列を特定し続けることは困難である。
【００１４】
そこで、本発明は、データ系列の数が非常に多い場合であっても、どのデータ系列に異常や変化が生じたかを効率よく検出することができる異常検出システム、異常検出方法および異常検出用プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明による異常検出システムは、同一のグループに属していると定められたデータ系列のデータ値またはデータ値の累乗の和を計算することにより、同一のグループに属していると定められたデータ系列を集約する集約手段と、集約される前のデータ系列のデータ値の統計量を計算する統計量計算手段と、各グループ毎に計算された和に基づいて、異常または変化が生じているデータ系列を含むグループを検出するグループ検出手段と、グループ検出手段に検出されたグループに属するデータ系列の中から、統計量に基づいて、異常または変化が生じているデータ系列を特定するデータ系列特定手段とを備えることを特徴とする。
【００１６】
また、本発明による異常検出方法は、同一のグループに属していると定められたデータ系列のデータ値またはデータ値の累乗の和を計算することにより、同一のグループに属していると定められたデータ系列を集約し、集約される前のデータ系列のデータ値の統計量を計算し、各グループ毎に計算された和に基づいて、異常または変化が生じているデータ系列を含むグループを検出し、検出されたグループに属するデータ系列の中から、統計量に基づいて、異常または変化が生じているデータ系列を特定することを特徴とする。
【００１７】
また、本発明による異常検出用プログラムは、コンピュータに、同一のグループに属していると定められたデータ系列のデータ値またはデータ値の累乗の和を計算することにより、同一のグループに属していると定められたデータ系列を集約する集約処理、集約される前のデータ系列のデータ値の統計量を計算する統計量計算処理、各グループ毎に計算された和に基づいて、異常または変化が生じているデータ系列を含むグループを検出するグループ検出処理、および、グループ検出処理で検出されたグループに属するデータ系列の中から、統計量に基づいて、異常または変化が生じているデータ系列を特定するデータ系列特定処理を実行させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、データ系列の数が非常に多い場合であっても、どのデータ系列に異常や変化が生じたかを効率よく検出することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態の異常検出システムの例を示すブロック図である。
【図２】第１の実施形態の処理経過の例を示すフローチャートである。
【図３】一定期間Ｗ内に発生するデータ数の一例を示す説明図である。
【図４】外れ値検出を模式的に示す説明図である。
【図５】変換点検出を模式的に示す説明図である。
【図６】異常行動検出を模式的に示す説明図である。
【図７】複数のデータ系列のデータ値の例を示す説明図である。
【図８】図７に示したデータ系列の集約結果の変化を示す説明図である。
【図９】計算された閾値Ｔｋを模式的に示す説明図である。
【図１０】本発明の第２の実施形態の異常検出システムの例を示すブロック図である。
【図１１】第３の実施形態の処理経過の例を示すフローチャートである。
【図１２】本発明の最小構成を示すブロック図である。
【図１３】本発明の他の構成例を示すブロック図である。
【図１４】本発明の他の構成例を示すブロック図である。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態を図面を参照して説明する。
【００２１】
実施形態１．
図１は、本発明の第１の実施形態の異常検出システムの例を示すブロック図である。本発明の異常検出システム１０は、データ系列集約手段２と、統計情報算出手段６と、変換情報記憶手段３と、異常検出手段４と、データ系列特定手段５とを備える。そして、異常検出システム１０は、情報源１から複数のデータ系列のデータを受信する。
【００２２】
情報源１は、複数のデータ系列のデータを発生させる。各データ系列のデータは数値で表される数値データであり、このデータが表す数値をデータ値と記す。なお、情報源１は、単一の装置によって実現されているのではなく、複数の装置によって実現されていてもよい。情報源１が発生させる各データ系列のデータは、時間により変化する。また、全データ系列数は、数個ではなく、大量の数であってもよい。例えば、全データ系列数は、１０００個以上、１００００個以上等であってもよい。
【００２３】
各データ系列のデータは、例えば、単位時間当たりのトラヒック数等であってもよい。情報源１は、このようなデータを、通信トラヒックに関するログとして生成すればよい。また、各データ系列は、ＴＣＰ（Transmission Control Protocol ）やＵＤＰ（User Datagram Protocol）のパケットとして異常検出システム１０に受信され、各データ系列の個々のデータは、パケットのペイロードに格納されていてもよい。
【００２４】
個々のデータ系列は、それぞれ別別のポート番号に対応していてもよい。すなわち、データ系列に対応するポート番号は、データ系列毎に異なっていてもよい。
【００２５】
また、データ系列は、予めグループ分けされる。図１に示す例では、データ系列１からデータ系列Ｎまでの各データ系列が同一のグループに属していると定められていて、同様に、データ系列Ｓｋからデータ系列Ｅｋまでの各データ系列が同一のグループに属していると定められている場合を例示している。
【００２６】
より具体的には、データ系列は、ＴＣＰやＵＤＰの送信元ポート番号単位（65536 種類）、および、送信先ポート番号単位（65536 種類）に対応していてもよい。また、送信元ＩＰアドレス単位、送信先ＩＰアドレス単位でデータ系列が定められていてもよい。送信元ＩＰアドレスや送信先ＩＰアドレスの種類は、ＩＰｖ４（Internet Protocol Version4）では、約４３億種類（２２３種類）である。
【００２７】
データ系列集約手段２は、グループ毎に、同一のグループに属していると定められているデータ系列を集約する。具体的には、データ系列集約手段２は、同一のグループに属していると定められているデータ系列のデータ値の和、あるいは、データ値の累乗の和を計算する。この計算によって得た和がデータ系列の集約結果である。データ系列集約手段２は、グループ毎に集約結果を求める処理を、一定期間毎に行う。この一定期間を記号Ｗで表す。なお、データ値の累乗の和を計算する際、累乗の計算における指数は自然数に限定されない。例えば、累乗計算における指数を１／２とし、データ値の１／２乗の和（すなわちデータ値の平方根の和）を計算してもよい。
【００２８】
図１に示す例では、データ系列集約手段２は、データ系列１からデータ系列Ｎまでのデータ系列に関して集約を行い、同様に、データ系列Ｓｋからデータ系列Ｅｋまでのデータ系列に関して集約を行う。他のデータ系列に関しても同様に、グループ毎に集約を行う。
【００２９】
データ系列集約手段２が同一グループの各データ系列のデータ値の和、またはデータ値の累乗の和を計算して、集約結果となる数値を求める。従って、データがまとめられ、データ系列数が和演算前よりも減少することになる。
【００３０】
統計情報算出手段６は、データ系列集約手段２によって集約される前のデータ系列のデータ値の統計量（統計情報）を計算する。統計量の例として、平均値や分散等が挙げられるが、統計情報算出手段６が計算する統計量は、平均値や分散等に限定されない。
【００３１】
以下、統計情報算出手段６が計算した統計情報を変換情報と記す。変換情報は、統計情報以外の情報（具体的には、第２の実施形態等で説明する除外情報）を含んでもよいが、第１の実施形態では、変換情報は統計情報のみを含む場合について説明する。
【００３２】
変換情報記憶手段３は、変換情報を記憶する記憶装置である。統計情報算出手段６は、計算した統計情報（変換情報）を変換情報記憶手段３に記憶させる。変換情報記憶手段３に記憶された変換情報の集合は変換情報データベースということができる。
【００３３】
図１に示す例では、統計情報算出手段６は、データ系列１からデータ系列Ｎまでに関して統計情報３１ａ（変換情報３１）を計算し、その統計情報３１ａを変換情報記憶手段３に記憶させる。同様に、データ系列Ｓｋからデータ系列Ｅｋまでに関しても統計情報３ｋａ（変換情報３ｋ）を計算し、その統計情報３ｋａを変換情報記憶手段３に記憶させる。統計情報算出手段６は、同様に、他の各グループのデータ系列についてもそれぞれ統計情報を計算し、計算した統計情報を変換情報記憶手段３に記憶させる。この結果、個々のグループ毎に計算された統計情報が変換情報記憶装置３に記憶される。
【００３４】
異常検出手段４は、グループ毎に集約された集約結果（すなわちグループ毎に計算されたデータ値またはデータ値の累乗の和）の推移に基づいて、異常または変化が生じているデータ系列を含むグループを検出する。換言すれば、異常または変化が生じているデータ系列がグループ内に存在するか否かをグループ毎に判定する。異常または変化が生じているデータ系列がグループ内に存在するか否かを判定する異常検出アルゴリズムは、予めグループ毎に定められている。異常検出アルゴリズムは、グループ毎に別々のアルゴリズムであってもよい。例えば、データ系列１からデータ系列Ｎまでのグループ内で異常等が生じているか否かの判定を行う異常検出アルゴリズムと、データ系列Ｓｋからデータ系列Ｅｋまでのグループ内で常等が生じているか否かの判定を行う異常検出アルゴリズムとが異なっていてもよい。
【００３５】
異常検出手段４に、特許文献６〜９に記載された外れ値検出アルゴリズム、特許文献１０，１１に記載された変化点検出アルゴリズム、あるいは、特許文献１２に記載された異常行動検出アルゴリズムが適用されていてもよい。異常検出アルゴリズムとして、他の異常検出アルゴリズムが適用されてもよい。
【００３６】
データ系列特定手段５は、異常または変化が生じているデータ系列を含むグループが異常検出手段４によって検出された場合、そのグループから計算した統計情報を用いて、そのグループ内のいずれのデータ系列に異常または変化が生じているかを特定する。例えば、データ系列１からデータ系列Ｎまでのグループが異常検出手段４によって検出された場合、データ系列特定手段５は、統計情報３１ａを用いて、データ系列１からデータ系列Ｎまでのデータ系列の中から、異常または変化が生じているデータ系列を特定する。他のグループが検出された場合も同様である。
【００３７】
データ系列集約手段２、統計情報算出手段６、異常検出手段４およびデータ系列特定手段５は、例えば、プログラム（異常検出用プログラム）に従って動作するコンピュータのＣＰＵによって実現される。この場合、ＣＰＵが、異常検出用プログラムが記憶されたプログラム記憶手段（図示略）から異常検出用プログラムを読み込み、そのプログラムに従って、データ系列集約手段２、統計情報算出手段６、異常検出手段４およびデータ系列特定手段５として動作すればよい。また、データ系列集約手段２、統計情報算出手段６、異常検出手段４およびデータ系列特定手段５がそれぞれ別個の専用回路として実現されていてもよい。
【００３８】
次に、動作について説明する。図２は、第１の実施形態の処理経過の例を示すフローチャートである。以下に示す例では、データ系列Ｓｋからデータ系列Ｅｋまでのデータ系列に着目して説明するが、他のグループについても同様に動作する。
【００３９】
まず、異常検出システム１０は、データ系列Ｓｋ〜Ｅｋのデータを情報源１から取得する（ステップＡ１）。例えば、情報源１が送信する各データ系列のデータを受信する。データ系列Ｓｋからデータ系列Ｅｋまでのデータ系列の数をＮｋ個とする。
【００４０】
次に、データ系列集約手段２は、一定期間Ｗ内に取得したデータ系列Ｓｋからデータ系列Ｎｋまでのデータ系列を集約する（ステップＡ２）。例えば、データ系列集約手段２は、一定期間Ｗ内に取得したデータ系列Ｓｋ〜Ｅｋの各データ値の和を計算し、その結果を集約結果とする。また、各データ値の累乗の和を計算し、その結果を集約結果としてもよい。既に説明したようにデータ値の累乗計算として、平方根を算出してもよい。
【００４１】
また、一つのデータ系列について、一定時間Ｗ内に取得するデータ数は１個であってもよい。あるいは２個以上であってもよい。図３は、一定期間Ｗ内に発生するデータ数の一例を示す説明図である。図３に示す例では、データ系列１では、一定期間Ｗ内に３つのデータが発生し、データ系列２では、一定期間Ｗ内に１つのデータが発生している。このような場合、一定期間Ｗ内に取得したデータを全て集約の対象とすればよい。例えば、データ系列集約手段２は、図３に示すデータ系列１の３つのデータと、データ系列２の一つのデータについてデータ値の和を計算したり、あるいはデータ値の累乗の和を計算したりすればよい。
【００４２】
統計情報算出手段６は、情報源１から取得したデータ値の統計量を計算し、計算した統計量を変換情報記憶手段３に記憶させる（ステップＡ３）。以下に、統計量の計算例を示す。ただし、以下に示す各式において、ｖｉは、それぞれのデータ系列のデータとして取得した各データのデータ値である。統計量計算時点までに取得した、着目しているグループの各データ系列のデータ値をｖｉとしてもよい。あるいは、統計量計算時点から所定期間遡った時点以降に受信したデータ値をｖｉとしてもよい。すなわち、所定期間遡った時点より前の古いデータを無視することとしてもよい。αｋは、各データ系列のデータのデータ値の平均値であり、以下に示す式（１）によって求めればよい。なお、Ｎｋは、着目しているグループ（本例ではデータ系列Ｓｋ〜Ｅｋのグループ）内のデータ系列数である。
【００４３】
【数１】
2010198579.tif 000003
【００４４】
例えば、統計情報算出手段６は、着目しているグループに関して、以下に示す式（２）の計算を行って統計量σｋを求めてもよい。
【００４５】
【数２】
2010198579.tif 000004
【００４６】
式（２）は、統計量σｋとして、標準偏差を求める式である。
【００４７】
また、例えば、統計情報算出手段６は、着目しているグループに関して、以下に示す式（３）の計算を行って統計量σｋを求めてもよい。
【００４８】
【数３】
2010198579.tif 000005
【００４９】
式（３）は、統計量σｋとして、調和平均を求める式である。
【００５０】
また、例えば、統計情報算出手段６は、着目しているグループに関して、以下に示す式（４）の計算を行って統計量σｋを求めてもよい。
【００５１】
【数４】
2010198579.tif 000006
【００５２】
式（４）は、統計量σｋとして、データ値の相加平均の指数関数値である。この指数関数の底はｅである。式（４）によって統計量を求めた場合、データ値に桁の大きな値が現れても、計算不能となることを防止できる。
【００５３】
ここでは、統計量の計算式として式（２）〜（４）の３種類を示したが、統計量の計算方法は上記の例に限定されず、統計情報算出手段６は他の計算式で統計量を計算してもよい。
【００５４】
ステップＡ３に続いて、異常検出手段４は、データ系列のグループ毎に計算された集約結果の推移に基づいて、異常または変化が生じているデータ系列を含むグループを検出する（ステップＡ４）。例えば、データ系列Ｓｋ〜Ｅｋのグループに関して、異常または変化が生じているデータ系列がグループ内に存在するか否かを判定する。そして、異常または変化が生じているデータ系列が存在すると判定されたグループを特定する。
【００５５】
異常検出手段４は、異常検出アルゴリズムとして例えば外れ値検出を用い、集約結果が外れ値となる場合に、その集約結果の元であったグループを検出してもよい。図４は、外れ値検出を模式的に示す説明図である。外れ値検出は、得られたデータのうち、統計的に他のデータから外れていると判定されるデータ９１を、異常（外れ値）として検出するアルゴリズムである。
【００５６】
また、異常検出手段４は、異常検出アルゴリズムとして例えば変換点検出を用い、集約結果が急激に変化したならば、その集約結果の元であったグループを検出してもよい。図５は、変換点検出を模式的に示す説明図である。変化点検出は、データの急激な変化を検出するアルゴリズムである。図５に示す例では、時刻Ｐにおいて、データの変動の傾向が変わっている。異常検出手段４は、このような集約結果の急激な変化を検出すればよい。
【００５７】
また、異常検出手段４は、異常検出アルゴリズムとして例えば異常行動検出を用いて、集約結果の出現パターンが変わったならば、その集約結果の元であったグループを検出してもよい。図６は、異常行動検出を模式的に示す説明図である。異常行動検出では、データの推移を監視し、正常なデータの推移パターンを特定し、その推移パターンに該当しないパターンでデータが現れたならば、異常として検出する。異常検出手段４は、過去の集約結果から集約結果の正常な推移パターンを特定し、そのパターンに該当しない集約結果の変化を検出したならば異常のあるグループとして検出すればよい。
【００５８】
異常検出手段４が異常または変化の生じたグループがないと判定した場合（ステップＡ５におけるＮｏ）、ステップＡ１に戻る。
【００５９】
異常検出手段４が異常または変化の生じたグループがあると判定した場合（ステップＡ５におけるＹｅｓ）、データ系列特定手段５は、ステップＡ４で検出されたグループ（異常または変化の生じたグループ）の統計情報を用いて、そのグループ内のどのデータ系列に異常または変化が生じているのかを判定する（ステップＡ６）。ステップＡ６において、データ系列特定手段５は、ステップＡ４で検出されたグループの統計情報から閾値を計算し、ステップＡ２の集約で用いたデータ値がその閾値を越えているデータ系列が、異常または変化の生じているデータ系列であると判定する。
【００６０】
ステップＡ６において、データ系列特定手段５は、閾値を、異常または変化が検出されたグループ内のデータ系列数、そのグループに関してステップＡ３で計算した統計量、そのグループのデータ系列のデータ値の平均値の関数として計算してもよい。データ系列Ｓｋ〜Ｅｋのグループに異常または変化が生じているとすると、データ系列数はＮｋである。また、そのグループに関して計算する閾値をＴｋとすると、Ｔｋは、Ｎｋ、統計量σｋ、データ値の平均値αｋの関数として、式（５）のように表すことができる。このような関数として、例えば、式（６）または式（７）に例示する関数を用いることができる。式（６）に示すように、Ｎｋを用いずに閾値Ｔｋを計算してもよい。
【００６１】
【数５】
2010198579.tif 000007
【００６２】
【数６】
2010198579.tif 000008
【００６３】
【数７】
2010198579.tif 000009
【００６４】
例えば、統計量σｋとして標準偏差（式（２）参照）が計算され、データ系列特定手段５が式（６）の計算によって閾値を計算したとする。この場合、データ値の平均に偏差の１／２を加算した値が閾値となり、データ系列特定手段５は、その閾値以上のデータ値が生じたデータ系列を検出する。
【００６５】
また、例えば、統計量σｋとして調和平均（式（３）参照）が計算され、データ系列特定手段５が式（７）の計算によって閾値を計算したとする。この場合、平均値が大きいほど、閾値と平均値との差は小さくなる。よって、データ値の平均値が小さい場合には、平均値との差が大きなデータ値が存在しても異常等が生じたデータ系列と判定されにくくなり、データ値の平均値が大きい場合には、平均値との差が小さなデータ値であっても、異常等が生じたデータ系列と判定されやすくなる。
【００６６】
異常検出システム１０は、予め定められたグループ毎に、上記の各ステップＡ１〜Ａ６を実行する。
【００６７】
次に、異常の生じたグループを特定し、さらに異常の生じたデータ系列を特定する処理を具体例を用いて説明する。図７（ａ）〜（ｄ）に示す各グラフでは、横軸はデータ系列であり、縦軸はデータ値である。図７は、データ系列Ｓｋ〜Ｅｋのデータ値を示している。具体的には、データ系列Ｓｋ〜Ｅｋは、データ系列３０００〜３００９の１０個のデータ系列である場合を示している。また、図７（ａ）〜（ｄ）は、それぞれ時刻「１０：００」、「１０：０１」、「１０：０２」、「１０：０９」におけるデータ系列３０００〜３００９のデータ値を示している。
【００６８】
図８は、図７に示したデータ系列の集約結果の変化を示す説明図であり、時刻１０：００〜１０：１０までの間における集約結果の変化を示している。図８における横軸は時刻であり、縦軸は各時刻における集約結果である。例えば、時刻１０：００に、図７（ａ）に示す１０個のデータ系列のデータ値を取得すると、データ系列集約手段２はそのデータ値を集約する。図８では、図７（ａ）に示すデータを集約した集約結果に該当する箇所に符号（ａ）を付している。同様に、図７（ｂ），（ｃ），（ｄ）に示すデータの集約結果に該当する箇所にそれぞれ符号（ｂ），（ｃ），（ｄ）を付している。
【００６９】
また、各時刻においてデータ系列を集約する際に、統計情報算出手段６は、データ系列３０００〜３００９のグループについての統計量を計算し、変換情報記憶手段３に記憶させている。
【００７０】
異常検出手段４は、図８（ｄ）の集約結果が他の集約結果と比較して異なっていると判定し、データ系列３０００〜３００９のグループに異常が生じていると判定する。そして、データ系列特定手段５は、このグループについて計算された統計量を用いて閾値Ｔｋを計算する。図９は、計算された閾値Ｔｋを模式的に示す説明図である。図９に示すグラフは、図７（ｄ）に示すグラフと同一であり、集約結果に変化が生じた時刻におけるデータ系列３０００〜３００９のデータ値を示している。そして、このグラフ上に閾値Ｔｋを重ねて示している。図９に示す閾値Ｔｋを計算すると、データ系列特定手段５は、集約結果に変化が生じた時刻におけるデータ値が閾値Ｔｋを越えているデータ系列に異常が生じていると判定する。本例では、二つのデータ系列に異常が生じていると判定する。
【００７１】
また、個々のデータ系列にそれほど大きな変動がなくとも、データ系列毎の変動が加算されて、集約結果に大きな変動が生じることもある。そのような場合であっても、各データ系列のデータ値は閾値以下となり、データ系列特定手段５は、異常や変動が生じているデータ系列はないと判定する。
【００７２】
本実施形態によれば、データ系列集約手段２が大量のデータ系列をグループ毎に和の計算によって集約し、異常検出手段４が、異常または変化の生じているグループを検出する。個々のデータ系列毎に直接、異常等の有無を判定するのではなく、グループ毎にデータ値の集約を行うことで、異常や変化の有無の判定対象を減少させている。そして、データ系列特定手段５が、検出されたグループから異常または変化の生じているデータ系列を検出している。このように、集約により異常や変化の有無の判定対象を減少させているので、どのデータ系列に異常や変化が生じたかを効率よく検出することができる。
【００７３】
また、グループの中からデータ系列を検出する場合には、統計情報算出手段６が計算した統計量（αｋやσｋ等）から閾値を計算して、閾値を越えるデータ系列を検出する。従って、人手で予めデータ系列毎に閾値を定めたり、閾値を更新したりする必要がなく、効率よくデータ系列を検出することができる。
【００７４】
また、あるデータ値が変動したとしても、集約結果の変動として現れないこともある。そのようなデータ値の変動が異常により生じたものであっても、集約結果の変動として現れるような極端に大きな変動でなければ、その異常は軽微であり無視してよい。本発明では、集約によって、軽微な異常等まで検出されないようにして、大きな異常や変化が生じたデータ系列を効率よく検出することができる。
【００７５】
また、一般に、異常や変化が生じると、データ系列のデータ値は極めて大きくなる。よって、グループを定める際に、データ値のオーダ（桁）が異なるデータ系列を同一のグループに含めることができる。例えば、通常時に１０程度の値となるデータ系列と、通常時に１０００程度の値となるデータ系列とを同じグループに含めておくことができる。１０程度の値となるデータ系列に異常が生じると、そのデータ値は、１０００と比較しても大きくなる値となる。よって、集約結果自体も大きく変動し、そのグループに異常等が生じたと検出できる。ここで、オーダの小さいデータ系列のデータ値の変動が小さい場合（例えば、通常１０程度の値が５０程度になった場合）、他に１０００程度の値のデータ系列も含まれるので、集約結果の変動は目立たない。この場合には、前述のように、オーダの小さいデータ系列の異常等は無視してよい。一般には、異常等が生じるとデータ値は極めて大きく変動するので、グループの集約結果の値も大きく変動し、そのグループ内のいずれかのデータ系列に異常が生じていると判定することができる。
【００７６】
なお、オーダの大きいデータ系列の方が、異常発生時に、より集約結果に影響を与えやすいと考えられることから、データ系列特定手段５は、検出されたグループ内でオーダが最も大きいデータ系列に異常または変化が生じていると判定してもよい。ただし、グループが検出されても個々のデータ系列には異常が生じていない場合や、図９に示すように複数のデータ系列に異常が生じている場合もあるので、閾値を計算して、閾値とデータ値との比較によりデータ系列を検出することが好ましい。
【００７７】
実施形態２．
図１０は、本発明の第２の実施形態の異常検出システムの例を示すブロック図である。第１の実施形態と同様の構成要素については、図１と同一の符号を付し、詳細な説明を省略する。本発明の異常検出システム１０は、データ系列集約手段２と、統計情報算出手段６と、変換情報記憶手段３と、異常検出手段４と、データ系列特定手段５と、除外情報編集手段７とを備える。
【００７８】
第１の実施形態では、変換情報が統計情報（統計量）のみを含む場合を示したが、本実施形態では、変換情報に除外情報も含める。除外情報は、集約対象から除外すべきデータ系列を示す情報であり、例えばグループ毎に定められる。図１０に示す例では、データ系列１〜Ｎのグループに関して除外情報３１ｂが定められ、データ系列Ｓｋ〜Ｅｋのグループに関しては、除外情報３ｋｂが定められている。また、グループの中に除外すべきデータ系列がなければ、除外情報はなくてもよい。
【００７９】
除外情報編集手段７は、各グループの除外情報を編集する。ここでは、除外情報編集手段７が、ユーザの操作に応じて除外情報を編集する場合を例にして説明するが、他の態様で除外情報を編集してもよい。除外情報編集手段７は、ユーザの操作に応じて、変換情報記憶手段３に新たな除外情報を記憶させる。また、ユーザの操作に応じて、変換情報記憶手段３に記憶させた除外情報を更新したり、削除したりしてもよい。
【００８０】
本実施形態では、データ系列集約手段２ａは、グループ毎にデータ系列を集約する。この点は第１の実施形態と同様である。ただし、データ系列集約手段２ａは、着目しているグループの除外情報が示すデータ系列を、集約対象から除外する。例えば、データ系列Ｓｋ〜Ｅｋのうち、データ系列Ｓｋが除外情報で指定されているとする。この場合、データ系列集約手段２ａは、データ系列Ｓｋ〜Ｅｋのうち、データ系列Ｓｋ以外のデータ系列のデータ値を用いて集約を行う。他の点に関しては、第１の実施形態のデータ系列集約手段２と同様である。
【００８１】
また、統計情報算出手段６ａは、グループ毎に統計量を計算する。この点は第１の実施形態と同様である。ただし、統計情報算出手段６ａは、着目しているグループの除外情報が示すデータ系列を、統計量の計算から除外する。例えば、データ系列Ｓｋ〜Ｅｋのうち、データ系列Ｓｋが除外情報で指定されているとする。この場合、統計情報算出手段６ａは、データ系列Ｓｋ〜Ｅｋのうち、データ系列Ｓｋ以外のデータ系列のデータ値を用いてσｋやαｋを計算する。このときデータ系列の系列数Ｎｋとして、予め定められたＮｋから除外情報が示すデータ系列の数（除外されるデータ系列数）を減算した値を用いればよい。
【００８２】
データ系列集約手段２ａおよび統計情報算出手段６ａは、例えばプログラムに従って動作するＣＰＵによって実現される。この場合、ＣＰＵがプログラムに従って、データ系列集約手段２ａ、統計情報算出手段６ａおよび他の各手段として動作すればよい。
【００８３】
第２の実施形態においても、第１の実施形態と同様にステップＡ１〜Ａ６の処理を行えばよい。
【００８４】
第２の実施形態によれば、異常検出の必要のないデータ系列を除外情報で指定しておくことにより、そのようなデータ系列について検出しないようにすることができる。異常検出の必要のないデータ系列の例として、定常的に攻撃を受けていることが既にわかっているデータ系列や、故障などによりデータを取得できないデータ系列等が挙げられる。このようなデータ系列では、異常が現れ続けたり、データが存在しなかったり、変化しなかったりする。このような予め異常等の発生がわかっているデータ系列について検出しないようにすることができる。
【００８５】
実施形態３．
実施形態３は、第２の実施形態と同様の構成である（図１０参照）。ただし、データ系列特定手段５も、除外情報の追加を行う。データ系列特定手段５は、異常検出手段４によってグループが検出されると、そのグループから異常または変化が生じているデータ系列を検出する。この動作は第１の実施形態および第２の実施形態と同様である。第３の実施形態では、データ系列特定手段５は、データ系列を検出したときに、そのデータ系列を示す除外情報を、そのデータ系列が属するグループの除外情報として、変換情報記憶手段３に記憶させる。他の構成要素は、第２の実施形態と同様である。
【００８６】
図１１は、第３の実施形態の処理経過の例を示すフローチャートである。ステップＡ１〜ステップＡ６は、第１および第２の実施形態と同様である。データ系列特定手段５は、異常等が生じているデータ系列を検出した後（ステップＡ６の後）、検出したデータ系列を示す除外情報を、そのデータ系列が属しているグループの除外情報として変換情報記憶手段３に記憶させる（ステップＡ７）。
【００８７】
この結果、異常等が発生しているデータ系列として検出されたデータ系列は、集約対象から除外される。そして、引き続きデータを取得して集約する際には、そのデータ系列は集約処理の対象外として扱われる。
【００８８】
第３の実施形態では、データ系列特定手段５が、検出したデータ系列を示す除外情報を変換情報記憶手段３に記憶させるので、異常が生じているデータ系列が何度も連続して検出されることを防ぐことができる。
【００８９】
また、検出されたデータ系列のデータ値は大きく変動しているが、そのようなデータ系列を集約の対象として含めた状態を続けていると、他のデータ系列に異常が生じた場合、そのデータ系列の変動が集約結果に埋もれてしまい（換言すれば、集約結果に反映されにくくなってしまい）、他のデータ系列における異常を検出しにくくなってしまう。第３の実施形態では、検出したデータ系列を集約対象から除外するので、そのような問題を防ぐことができる。
【００９０】
なお、ステップＡ６で検出されたデータ系列が異常でないことや、あるいは、異常が収束したことを確認した場合、除外情報からそのデータ系列の情報を削除すれば、元の検出状態に戻すことができる。
【００９１】
なお、第３の実施形態において、除外情報編集手段７を備えていない構成としてもよい。すなわち、除外情報編集手段７による除外情報の編集は行わずに、データ系列特定手段５のみが除外情報を追加する構成であってもよい。
【００９２】
第１から第３までの各実施形態では、データ系列の集約処理（ステップＡ２）に併せて統計情報算出手段６が統計量の計算（ステップＡ３）を行う場合を示した。統計情報算出手段６は、異常検出手段４によってグループが検出されたとき（すなわち、異常または変化が生じたデータ系列を含んでいると判定されたグループの検出時）に、そのグループのデータ値から統計量を計算し、変換情報記憶手段３に記憶させてもよい。統計量の計算方法自体は、既に説明した実施形態と同様である。
【００９３】
このように異常検出手段４に検出されたグループについてのみ統計量を計算することで、変換情報記憶手段３に記憶される統計情報を少なくすることができる。
【００９４】
次に、本発明の最小構成について説明する。図１２は、本発明の最小構成を示すブロック図である。本発明の異常検出システムは、集約手段７１と、統計量計算手段７２と、グループ検出手段７３と、データ系列特定手段７４とを備える。
【００９５】
集約手段７１（例えばデータ系列集約手段２，２ａ）は、同一のグループに属していると定められたデータ系列のデータ値またはデータ値の累乗の和を計算することにより、同一のグループに属していると定められたデータ系列を集約する。
【００９６】
統計量計算手段７２（例えば、統計情報算出手段６，６ａ）は、集約される前のデータ系列のデータ値の統計量を計算する。
【００９７】
グループ検出手段７３（例えば異常検出手段４）は、各グループ毎に計算された和に基づいて、異常または変化が生じているデータ系列を含むグループを検出する。
【００９８】
データ系列特定手段７４（例えばデータ系列特定手段６）は、グループ検出手段７３に検出されたグループに属するデータ系列の中から、統計量に基づいて、異常または変化が生じているデータ系列を特定する。
【００９９】
そのような構成により、データ系列の数が非常に多い場合であっても、どのデータ系列に異常や変化が生じたかを効率よく検出できる。
【０１００】
また、図１３、図１４は、本発明の他の構成例を示すブロック図である。上記の実施形態には、図１３に示すように、集約から除外されるデータ系列を示す情報である除外情報を記憶する除外情報記憶手段７５（例えば、変換情報記憶手段３）を備え、集約手段７１が、除外情報が示すデータ系列を、データ値またはデータ値の累乗の和の計算対象から除外する構成が開示されている。そのような構成によれば、異常検出の必要のないデータ系列を除外情報で指定しておくことにより、そのようなデータ系列について検出しないようにすることができる。
【０１０１】
また、上記の実施形態には、図１４に示すように、ユーザの操作に応じて、除外情報記憶手段７４に記憶される除外情報を編集する除外情報編集手段７６（例えば、除外情報編集手段７）を備える構成が開示されている。
【０１０２】
また、上記の実施形態には、データ系列特定手段７４が、異常または変化が生じているデータ系列として特定したデータ系列を示す除外情報を除外情報記憶手段に記憶させる構成が開示されている。そのような構成によれば、同じデータ系列が連続して検出されないようにすることができる。
【０１０３】
また、上記の実施形態には、統計量計算手段７２が、同一のグループに属していると定められたデータ系列が集約されるときに、データ系列のデータ値の統計量を計算する構成が開示されている。
【０１０４】
また、上記の実施形態には、統計量計算手段７２が、グループ検出手段７３がグループを検出したときに、そのグループに属し集約手段７１に集約された各データ系列のデータ値の統計量を計算する構成が開示されている。
【０１０５】
また、上記の実施形態には、個々のデータ系列が、それぞれ別々のポート番号に対応するデータ系列である場合が開示されている。
【０１０６】
また、上記の実施形態には、個々のデータ系列が、通信トラヒックに関するログとして生成されたデータ系列である場合が開示されている。
【産業上の利用可能性】
【０１０７】
本発明は、複数のデータ系列中のどのデータ系列に異常や変化が生じているかを検出する異常検出システムに好適に適用される。例えば、ＴＣＰやＵＤＰの送信元ポート番号、送信先ポート番号、送信元ＩＰアドレス、送信先ＩＰアドレスを単位として、通信パケットの変化の監視や異常検出をするシステムに適用可能である。また、例えば、大規模ＷｅｂサーバにおけるＵＲＬ（Uniform Resource Locator）単位でのアクセス数の変化や、大規模メールサーバにおける送信元、送信先メールアドレス単位でのメールの流通量の変化の監視や異常検出をするシステムに適用可能である。
【符号の説明】
【０１０８】
１  情報源
２，２ａ  データ系列集約手段
３  変換情報記憶手段
４  異常検出手段
５  データ系列特定手段
６，６ａ  統計情報算出手段
７  除外情報編集手段
１０  異常検出システム
【図１】
2010198579.tif 000010
【図２】
2010198579.tif 000011
【図３】
2010198579.tif 000012
【図４】
2010198579.tif 000013
【図５】
2010198579.tif 000014
【図６】
2010198579.tif 000015
【図７】
2010198579.tif 000016
【図８】
2010198579.tif 000017
【図９】
2010198579.tif 000018
【図１０】
2010198579.tif 000019
【図１１】
2010198579.tif 000020
【図１２】
2010198579.tif 000021
【図１３】
2010198579.tif 000022
【図１４】
2010198579.tif 000023