(57)【要約】【課題】要素の入れ替えの対称性を考慮しつつシステム全体の異常度を的確に検出することを可能とするコンピュータネットワークなどを提供する。【解決手段】異常検出装置１１は、コンピュータネットワーク１に接続され、コンピュータネットワークに接続されたコンピュータ１１〜１ｎで取得された特徴量を行列もしくはテンソルとして入力データを作成するデータ入力処理部２０１と、入力データの中で要素を入れ替えても不変な量である不変量を算出する不変量計算処理部２０２と、不変量に基づいて異常が発生したか否かを検出する異常検出手段２０３〜２０５とを有する。【選択図】図１
2010128674.tif 000002
【特許請求の範囲】
【請求項１】
複数台のコンピュータが相互に接続されてなるコンピュータネットワークであって、
前記複数台のコンピュータのうち少なくとも１台が、前記ネットワーク全体の通信トラフィック等の特徴量を検出する第１の特徴量取得部と、前記特徴量から異常検出に係る計算を行う異常検出部とを有する異常検出装置であり、
前記複数台のコンピュータのうち前記異常検出装置でない他の全てのものが、前記特徴量を検出して前記異常検出部に転送する第２の特徴量取得部を有し、
前記異常検出装置の前記異常検出部が、前記第１および第２の特徴量取得部で取得された特徴量を行列もしくはテンソルとして入力データを作成するデータ入力処理部と、前記入力データの中で要素を入れ替えても不変な量である不変量を算出する不変量計算処理部と、前記不変量に基づいて異常が発生したか否かを検出する異常検出手段とを有することを特徴とするコンピュータネットワーク。
【請求項２】
前記異常検出手段が、前記不変量の確率密度を逐次的に求める分布学習処理部と、前記確率密度を用いて前記不変量の異常度を表す第１の外れ値スコアを算出するスコア計算処理部と、前記第１の外れ値スコアを用いて異常が発生したか否かを検出する異常検出処理部とを有することを特徴とする、請求項１に記載のコンピュータネットワーク。
【請求項３】
前記分布学習処理部が、前記不変量の時間遷移に対する確率密度分布を学習する特徴量分布学習機能部と、学習された前記確率密度分布から前記不変量が通常の出現パターンからどの程度外れているかを示す第２の外れ値スコアを算出する外れ値スコア移動平均機能部と、前記第２の外れ値スコアの時間遷移に対する確率密度を学習する移動平均分布学習機能部とを含み、
前記スコア計算処理部が前記第２の外れ値スコアの時間遷移に対する確率密度から前記第１の外れ値スコアを算出することを特徴とする、請求項２に記載のコンピュータネットワーク。
【請求項４】
前記第１および第２の特徴量取得部が、該複数台のコンピュータの相互間の通信トラフィックを前記特徴量として取得して前記異常検出部に転送するトラフィック取得部であることを特徴とする、請求項１ないし請求項３のうちいずれか１項に記載のコンピュータネットワーク。
【請求項５】
コンピュータネットワークに接続されたコンピュータからなる異常検出装置であって、
前記コンピュータネットワークに接続された他のコンピュータで取得された通信トラフィック等の特徴量を行列もしくはテンソルとして入力データを作成するデータ入力処理部と、
前記入力データの中で要素を入れ替えても不変な量である不変量を算出する不変量計算処理部と、
前記不変量に基づいて異常が発生したか否かを検出する異常検出手段と
を有することを特徴とする異常検出装置。
【請求項６】
前記異常検出手段が、
前記不変量の確率密度を逐次的に求める分布学習処理部と、
前記確率密度を用いて前記不変量の異常度を表す第１の外れ値スコアを算出するスコア計算処理部と、
前記第１の外れ値スコアを用いて異常が発生したか否かを検出する異常検出処理部と
を有することを特徴とする、請求項５に記載の異常検出装置。
【請求項７】
前記分布学習処理部が、前記不変量の時間遷移に対する確率密度分布を学習する特徴量分布学習機能部と、学習された前記確率密度分布から前記不変量が通常の出現パターンからどの程度外れているかを示す第２の外れ値スコアを算出する外れ値スコア移動平均機能部と、前記第２の外れ値スコアの時間遷移に対する確率密度を学習する移動平均分布学習機能部とを含み、
前記スコア計算処理部が前記第２の外れ値スコアの時間遷移に対する確率密度から前記第１の外れ値スコアを算出することを特徴とする、請求項６に記載の異常検出装置。
【請求項８】
前記特徴量が、前記コンピュータネットワークにおける前記複数台のコンピュータの相互間の通信トラフィックであることを特徴とする、請求項５ないし請求項７のうちいずれか１項に記載の異常検出装置。
【請求項９】
複数台のコンピュータが相互に接続されてなるコンピュータネットワークにあって、前記コンピュータネットワークに接続されたコンピュータで発生した異常を検出する方法であって、
前記コンピュータネットワークに接続されたコンピュータの特徴量取得部が、通信トラフィック等の特徴量を取得し、
前記特徴量取得部が、取得した前記特徴量を前記コンピュータネットワークに接続された異常検出装置に転送し、
前記異常検出装置のデータ入力処理部が、転送された前記特徴量から行列もしくはテンソルとして入力データを作成し、
前記異常検出装置の不変量計算処理部が、前記入力データの中で要素を入れ替えても不変な量である不変量を算出し、
前記異常検出装置の異常検出手段が、前記不変量に基づいて異常が発生したか否かを検出する
ことを特徴とする異常検出方法。
【請求項１０】
前記異常検出手段が前記不変量に基づいて異常が発生したか否かを検出する手順が、前記異常検出装置の分布学習処理部が、前記不変量の確率密度を逐次的に求める手順と、前記異常検出装置のスコア計算処理部が、前記確率密度を用いて前記不変量の異常度を表す第１の外れ値スコアを算出する手順とを設け、
これによって前記異常検出装置の異常検出処理部が、前記第１の外れ値スコアを用いて異常が発生したか否かを検出することを特徴とする、請求項９に記載の異常検出方法。
【請求項１１】
前記分布学習処理部が前記不変量の確率密度を逐次的に求める手順が、前記不変量の時間遷移に対する確率密度分布を学習する手順と、学習された前記確率密度分布から前記不変量が通常の出現パターンからどの程度外れているかを示す第２の外れ値スコアを算出する工程と、前記第２の外れ値スコアの時間遷移に対する確率密度を学習する手順とを設け、
これによって前記スコア計算処理部が、前記第２の外れ値スコアの時間遷移に対する確率密度から前記第１の外れ値スコアを算出することを特徴とする、請求項１０に記載の異常検出方法。
【請求項１２】
前記特徴量が、前記複数台のコンピュータの相互間の通信トラフィックであることを特徴とする、請求項９ないし請求項１１のうちいずれか１項に記載の異常検出方法。
【請求項１３】
コンピュータネットワークに接続された異常検出装置が備えるコンピュータに、
前記コンピュータネットワークに接続されたコンピュータで取得された通信トラフィック等の特徴量から行列もしくはテンソルとして入力データを作成する手順と、
前記入力データの中で要素を入れ替えても不変な量である不変量を算出する手順と、
前記不変量に基づいて異常が発生したか否かを検出する手順と
を実行させることを特徴とする異常検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、要素が相互に関連して動作するシステムにおける異常の検出に関し、特にコンピュータネットワークにおけるワーム、ウイルス、マルウェアなどのような不正プログラムに起因する異常の検出に関する。
【背景技術】
【０００２】
たとえばコンピュータネットワークなどのように、接続された多数の要素が相互に関連して動作するシステムでは、その動作において発生した異常を早急に検出する必要がある。その異常検出は、特定の要素の性質に依存しないものでなければならない。
【０００３】
その一つの例が、コンピュータネットワークにおいてワーム、ウイルス、マルウェアなどのような不正プログラムに起因する異常の検出である。該ネットワークを構成するコンピュータにワームが急激に拡散すると、該ネットワーク内の通信トラフィックは急激に増大する。そのため、該ネットワークのノードであるコンピュータおよび各種ネットワーク機器間でのデータ送信量を時刻と共に記録し、そのデータを入力として通信トラフィックの急増を検出し、これによってワームの拡散を検出することを考える。
【０００４】
上記に関連する技術文献として、次に示すものがある。特許文献１には、ネットワークの特徴量を成分に持つ行列の最大固有ベクトルを入力としてベクトルの通常の状態を学習し、通常のベクトルと大きく異なるものを異常として検出するという技術が記載されている。特許文献２には、データが入力される前後の確率密度の間の距離関数を外れ値度として計算し、各データの外れ値度から該データが不正であるか否かを検出するという技術が記載されている。
【０００５】
また特許文献３には、人間の顔面の画像を認識する方法で、顔の表情の変形に伴う統計的な変形データを使用して認識精度を向上するという技術が記載されている。特許文献４には、過去一定期間に集計されたトラフィック量などのデータを指標データとして、トラフィック量の異常を検知する方法の一例が記載されている。特許文献５には、印鑑照合システムで、安定的な特徴点を選択することによって、失敗を減らして高精度な位置合わせを行うという技術が記載されている。
【０００６】
【特許文献１】特開２００５−２１６０６６号公報
【特許文献２】特開２００４−０７８９８１号公報
【特許文献３】特開２００５−２０８８５０号公報
【特許文献４】特開２００８−０２２４９８号公報
【特許文献５】特開平０９−０４４６５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述のようなコンピュータネットワーク上のワームなどに起因する通信トラフィックの異常の検出で、考慮すべきネットワークの性質として次に示す二点が挙げられる。一つはネットワークの対称性である。異常として検出されるべきなのは、データ送信の偏りの変化である。より具体的には、少数の要素（コンピュータ）間でのみデータの交換がなされていたのがワームの蔓延によって全要素間でデータが交換されるようになったなどのようなことが、異常として検出されるべき現象である。
【０００８】
一方で、ある時刻では要素Ａから要素ＢにＸという量のデータの送信が観測されて次の時刻には要素Ｃから要素Ｄに同じ量のデータの送信が観測されたという場合、これを異常として検出するのは適切ではない。なぜなら、これはデータを送受信する要素の組み合わせが時間によって変わったというだけであり、データの送受信の偏り方（この例では二つの要素間でＸという量のデータが遣り取りされる）が変化していないからである。
【０００９】
ここでいう対称性とは、要素（コンピュータ等）の入れ替えに対して、たとえば通信トラフィックなどのような特徴量が不変であるという性質をいう。この場合は、この要素の入れ替えに対する対称性を考慮した異常検出が必要である。上記の例ではデータ送信の偏り方が変化する、という異常がこれに該当する。これと同様の対称性は、これ以外の場合についても適用されうる。
【００１０】
考慮すべきネットワークの性質のもう一つは、ネットワーク上のトラフィック量等は時刻と共に変化し、どの要素とどの要素が繋がっているかというネットワークの構造も時間と共に変化するという点である。そのため、異常であると判断されるべき状態も時間によって異なる。たとえば、同じトラフィック量であっても、深夜の時間帯にそのトラフィック量が発生すれば異常であるが、昼間に発生すれば通常の量である、などといった状況もありうる。
【００１１】
上記の２点の性質のうち、時間変化を考慮に入れた異常の検出は、特許文献１などで可能である。しかしながら、要素の入れ替えの対称性を考慮して、特定の要素の性質に依らないシステム全体の挙動の異常を検出することは、従来の技術では不可能である。前述の特許文献１〜５のいずれにも、このような要素の入れ替えの対称性を考慮した異常の検出が可能な技術は記載されていない。
【００１２】
本発明の目的は、要素の入れ替えの対称性を考慮しつつシステム全体の異常度を的確に検出することを可能とするコンピュータネットワーク、異常検出装置、異常検出方法および異常検出プログラムを提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明に係るコンピュータネットワークは、複数台のコンピュータが相互に接続されてなるコンピュータネットワークであって、複数台のコンピュータのうち少なくとも１台が、ネットワーク全体の通信トラフィック等の特徴量を検出する第１の特徴量取得部と、特徴量から異常検出に係る計算を行う異常検出部とを有する異常検出装置であり、複数台のコンピュータのうち異常検出装置でない他の全てのものが、特徴量を検出して異常検出部に転送する第２の特徴量取得部を有し、異常検出装置の異常検出部が、第１および第２の特徴量取得部で取得された特徴量を行列もしくはテンソルとして入力データを作成するデータ入力処理部と、入力データの中で要素を入れ替えても不変な量である不変量を算出する不変量計算処理部と、不変量に基づいて異常が発生したか否かを検出する異常検出手段とを有することを特徴とする。
【００１４】
上記目的を達成するため、本発明に係る異常検出装置は、コンピュータネットワークに接続されたコンピュータからなる異常検出装置であって、コンピュータネットワークに接続された他のコンピュータで取得された通信トラフィック等の特徴量を行列もしくはテンソルとして入力データを作成するデータ入力処理部と、入力データの中で要素を入れ替えても不変な量である不変量を算出する不変量計算処理部と、不変量に基づいて異常が発生したか否かを検出する異常検出手段とを有することを特徴とする。
【００１５】
上記目的を達成するため、本発明に係る異常検出方法は、複数台のコンピュータが相互に接続されてなるコンピュータネットワークにあって、コンピュータネットワークに接続されたコンピュータで発生した異常を検出する方法であって、コンピュータネットワークに接続されたコンピュータの特徴量取得部が、通信トラフィック等の特徴量を取得し、特徴量取得部が、取得した特徴量をコンピュータネットワークに接続された異常検出装置に転送し、異常検出装置のデータ入力処理部が、転送された特徴量から行列もしくはテンソルとして入力データを作成し、異常検出装置の不変量計算処理部が、入力データの中で要素を入れ替えても不変な量である不変量を算出し、異常検出装置の異常検出手段が、不変量に基づいて異常が発生したか否かを検出することを特徴とする。
【００１６】
上記目的を達成するため、本発明に係る異常検出プログラムは、コンピュータネットワークに接続された異常検出装置が備えるコンピュータに、コンピュータネットワークに接続されたコンピュータで取得された通信トラフィック等の特徴量から行列もしくはテンソルとして入力データを作成する手順と、入力データの中で要素を入れ替えても不変な量である不変量を算出する手順と、不変量に基づいて異常が発生したか否かを検出する手順とを実行させることを特徴とする異常検出プログラム。
【発明の効果】
【００１７】
本発明は、上述したように要素を入れ替えても不変な量である不変量を算出してから、この不変量の確率密度から外れ値スコアを算出して、そこから異常が発生したか否かを検出するように構成したので、要素の入れ替えの対称性は考慮される。これによって、要素の入れ替えの対称性を考慮しつつシステム全体の異常度を的確に検出することを可能とするという、従来にない優れたコンピュータネットワーク、異常検出装置、異常検出方法および異常検出プログラムを提供することができる。
【発明を実施するための最良の形態】
【００１８】
（第１の実施形態）
以下、本発明の実施形態の構成について添付図１および２に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係るコンピュータネットワーク１は、複数台のコンピュータ１１〜１ｎが相互に接続されてなる。そのうちの１台であるコンピュータ１１が、ネットワーク全体の特徴量を検出する第１の特徴量取得部１１５と、特徴量から異常検出に係る計算を行う異常検出部１１６とを有する異常検出装置である。異常検出装置でないコンピュータ１２〜１ｎは、特徴量を検出して異常検出部に転送する第２の特徴量取得部１２５のみを有する。そしてコンピュータ１１の異常検出部１１６は、特徴量取得部１１５および１２５で取得された特徴量を行列もしくはテンソルとして入力データを作成するデータ入力処理部２０１と、入力データの中で要素を入れ替えても不変な量である不変量を算出する不変量計算処理部２０２と、不変量に基づいて異常が発生したか否かを検出する異常検出手段とを有する。
【００１９】
ここでいう異常検出手段は、不変量の確率密度を逐次的に求める分布学習処理部２０３と、確率密度を用いて不変量の異常度を表す第１の外れ値スコアを算出するスコア計算処理部２０４と、第１の外れ値スコアを用いて異常が発生したか否かを検出する異常検出処理部２０５とを有する。
【００２０】
そしてコンピュータ１１〜１ｎの特徴量取得部１１５および１２５は、これらのコンピュータの相互間の通信トラフィックを特徴量として取得して異常検出部に転送するトラフィック取得部１１５および１２５である。
【００２１】
この構成を備えることにより、本実施形態は、要素の入れ替えの対称性を考慮しつつシステム全体の異常度を的確に検出することが可能となる。
以下、これをより詳細に説明する。
【００２２】
図２は、本発明の実施形態に係るコンピュータネットワーク１について示す説明図である。コンピュータネットワーク１には、ｎ台（ｎは２以上の整数）のコンピュータ１１〜１ｎが相互に接続されている。本実施形態では、これらのコンピュータ１１〜１ｎをノード、そして各ノード間の通信トラフィックをリンクとしている。そして、それらのノードの中の任意の１つであるコンピュータ１１に、他のコンピュータ１２〜１ｎから通信トラフィックに関する情報が転送され、コンピュータ１１上で後述する異常検出に係る計算が行われる。このため、コンピュータ１１を異常検出装置ともいう。
【００２３】
図１は、図２で示したコンピュータ１１および１２〜１ｎ内部の構成をより詳細に示す説明図である。異常検出装置であるコンピュータ１１は、プログラムを実行する主体であるＣＰＵ（Central Processing Unit）１１１と、ＣＰＵ１１１が実行するプログラムが読み込まれて記憶されるＲＡＭ（Random Access Memory）１１２と、プログラムおよびデータが記憶される不揮発性の大容量記憶装置であるＨＤＤ（Hard Disk Unit）１１３と、コンピュータネットワーク１に接続して他のコンピュータ等とのデータ通信を行うネットワークアダプタ１１４とを備える通常のコンピュータ装置である。
【００２４】
またＣＰＵ１１１は、本実施形態に係るコンピュータプログラムであるトラフィック取得部１１５と、異常検出部１１６とを実行する。いずれも、ＨＤＤ１１３からＲＡＭ１１２に読み出され、ＣＰＵ１１１によって実行される。トラフィック取得部１１５は、ネットワークアダプタ１１４で行われる他のコンピュータとの通信トラフィックを検出し、異常検出部１１６はトラフィック取得部１１５によって取得された通信トラフィックから異常検出に係る計算を行う。
【００２５】
異常検出装置ではないコンピュータ１２〜１ｎも、コンピュータ１１と同じく、ＣＰＵ１２１と、ＲＡＭ１２２と、ＨＤＤ１２３と、ネットワークアダプタ１２４とを備える通常のコンピュータ装置である。これら各部の機能は、コンピュータ１１の同名の構成部と等しい。図２にはコンピュータ１２のみを示しているが、図２に示していないコンピュータ１３〜１ｎの構成もコンピュータ１２と同一である。
【００２６】
ＣＰＵ１２１は、本実施形態に係るコンピュータプログラムであるトラフィック取得部１２５を実行する。トラフィック取得部１２５は、ＨＤＤ１２３からＲＡＭ１１２に読み出され、ＣＰＵ１２１によって実行される。トラフィック取得部１２５は、ネットワークアダプタ１２４で行われる他のコンピュータとの通信トラフィックを検出し、検出された通信トラフィックについての情報をコンピュータ１１の異常検出部１１６に転送する。
【００２７】
コンピュータ１１の異常検出部１１６は、コンピュータ１２〜１ｎのトラフィック取得部１２５から転送された通信トラフィックに係る情報を、自らのトラフィック取得部１１５が取得した情報と共に利用して、異常検出に係る計算を行うのである。
【００２８】
コンピュータ１２〜１ｎは、各々サーバであってもクライアントであってもよい。トラフィック取得部１２５は、該コンピュータで行われる他の処理と並行して、通信トラフィックの検出および検出された通信トラフィックについての情報の転送を行う。異常検出装置であるコンピュータ１１もまた、サーバであってもクライアントであってもよいし、ネットワーク管理専門の機器としてもよい。またトラフィック取得部１１５および異常検出部１１６による処理をコンピュータ１１で行われる他の処理と並行して行うものとしてもよい。
【００２９】
（不変量の算出と異常の検出）
図３は、図１に示した異常検出部１１６の構成をより詳しく説明する説明図である。異常検出部１１６は、システム全体の特徴量から入力データを作成するデータ入力処理部２０１と、作成された入力データから要素入れ替えに対して不変な特徴量である不変量を算出する不変量計算処理部２０２と、算出された不変量の確率密度を逐次的に求める分布学習処理部２０３と、不変量および更新された確率密度から異常度を表すスコアを算出するスコア計算処理部２０４と、算出されたスコアから異常が発生したか否かを検出する異常検出処理部２０５とからなる。各々の処理部による処理の詳細については後述する。
【００３０】
図３のデータ入力処理部２０１では、システム全体の特徴量から入力データを作成する。ここでいうシステム全体の特徴量とは、各ノード（コンピュータ１１〜１ｎ）間のトラフィック量の集合であり、トラフィック取得部１１５および１２５から異常検出部１１６に入力される。トラフィック量の入力データは時刻と共に逐次的に入力されるか、もしくはそのデータが発生した時刻に関する情報が付与されている。データ入力処理部２０１は、そこから入力データを作成する。
【００３１】
トラフィック量の入力データはテンソル型でもよいが、以後は該入力データが行列型である場合を例にとって説明する。前述のように、ｎ台のコンピュータ１１〜１ｎをノード、そして各ノード間の通信トラフィックをリンクとしており、そしてｉ番目のノードとｊ番目のノードの間で時刻ｔに観測されたトラフィックをＡｉｊ（ｔ）とすると、時刻ｔにおける入力データはＡｉｊ（ｔ）をｉ行ｊ列目の成分とするｎ次元の行列Ａ（ｔ）で表される。ただし１≦ｉ≦ｎ、１≦ｊ≦ｎである。
【００３２】
即ち、入力データＡ（ｔ）はコンピュータネットワーク１を構成するｎ台のコンピュータ１１〜１ｎで時刻ｔに観測された相互間の通信トラフィックを表すｎ次元の行列である。不変量計算処理部２０２は、データ入力処理部２０１で入力されたＡ（ｔ）に対して、要素を入れ替えても（ｉおよびｊの数値を変えても）不変な量である不変量Ｅ（ｔ）を、次のようにして求める。
【００３３】
行列Ａ（ｔ）で、ｉ番目に大きい固有値をλｉ（ｔ）、全ての固有値を並べたベクトルをλ（ｔ）、行列式及びトレースを各々ｄｅｔ［Ａ（ｔ）］、ｔｒ［Ａ（ｔ）］とする。ｄｅｔ［Ａ（ｔ）］およびｔｒ［Ａ（ｔ）］は、詳細には下式のように定義される。
【００３４】
【数１】
2010128674.tif 000003
【００３５】
このとき、例えば以下のようにして不変量Ｅ（ｔ）を求めることができる。
【数２】
2010128674.tif 000004
（ｆは任意の関数、Ｅ（ｔ）はスカラー）
【００３６】
【数３】
2010128674.tif 000005
（ｆは任意の関数、Ｅ（ｔ）はスカラー）
【００３７】
【数４】
2010128674.tif 000006
（Ｅ（ｔ）はｎ次元のベクトル）
【００３８】
行列Ａ（ｔ）のｉ番目に大きい固有値をλｉ（ｔ）、それに対応する固有ベクトルをｕｉ（ｔ）とすると、λｉ（ｔ）に対応する固有方程式は以下のようになる。
【数５】
2010128674.tif 000007
【００３９】
要素を入れ替える変換行列をＵとすると、要素を入れ替える変換の下で行列、固有ベクトル、固有値はそれぞれ下式に示したようになる。ここで行列Ｕ†は、行列Ｕを転置し、かつ各成分の複素共役をとった行列を表す。そのため、Ｕ†Ｕ＝１となる。
【数６】
2010128674.tif 000008
【００４０】
数５の左辺および右辺に左からＵをかければ、下式が得られる。
【数７】
2010128674.tif 000009
【００４１】
Ｕ†Ｕ＝１であることから、不変量Ｅ（ｔ）は要素の入れ替えに対して不変な量であることがわかる。
【００４２】
ここで計算されるＥ（ｔ）は、要素間の相関を考慮に入れたシステム全体を表す量になっている。なぜならば、Ｅ（ｔ）はシステム全体の特徴量を用いて算出されるので要素間の相関が考慮されており、かつ、特定の要素に依存せず（要素の入れ替えに対して不変な）システム全体を表す量になっているからである。
【００４３】
図３で示した分布学習処理部２０３は、次のようにして不変量Ｅ（ｔ）の分布を学習する。時刻ｔにおけるＥ（ｔ）の分布をｐｔ（Ｅ｜θｔ）とすると、分布学習処理部２０３はＥ（ｔ）が入力されるたびにｐｔ（Ｅ｜θｔ）を逐次的に更新する。θｔは分布のパラメータを表す。
【００４４】
ｐｔ（Ｅ｜θｔ）は、例えば、Ｅ（ｔ）がベクトルλ（ｔ）であって多次元正規分布を用いた場合、下式のように表記できる。
【数８】
2010128674.tif 000010
ここでΣｔはλ（ｔ）の分散を表す行列型パラメータで、μ（ｔ）はλ（ｔ）の平均を表すベクトル型のパラメータである。θｔは、これらのパラメータをまとめて表記したものである。
【００４５】
図３で示したスコア計算処理部２０４は、分布学習処理部２０３で学習されたＥ（ｔ）の分布から、時刻ｔにおけるシステム全体の異常度スコアＳ（ｔ）を算出する。異常度スコアは入力データが通常のデータとどれだけ異なっているかを表す量で、この値が大きければ、通常は出現しない異常なデータであることを表す。
【００４６】
異常度スコアＳ（ｔ）は、たとえば下式のように計算される。
【数９】
2010128674.tif 000011
図３で示した異常検出処理部２０５は、スコア計算処理部２０４で算出された異常度スコアを基にしてシステム全体の異常を検出する。異常度スコアの情報を基にシステムの異常を検出する方法としては、たとえば異常度スコアが予め設定された閾値を超えた場合を異常として検出するようにすることができる。また、検出結果の出力は、異常の発生が検出された場合にコンピュータ１１が備える表示装置（ディスプレイ）にその旨を表示するようにすることができるし、それ以外にもユーザに異常の発生を知らせることのできる方法であれば任意の出力方法を適用することができる。
【００４７】
（第１の実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。本実施形態に係る動作は、複数台のコンピュータ１１〜１ｎが相互に接続されてなるコンピュータネットワーク１にあって、それらのコンピュータ１１〜１ｎで発生した異常を検出する方法であって、コンピュータネットワーク１に接続された全てのコンピュータ１１〜１ｎの特徴量取得部１１５および１２５が、特徴量を取得し、特徴量取得部１１５および１２５が、取得した特徴量をコンピュータネットワークに接続された異常検出装置（コンピュータ１１）に転送し、異常検出装置のデータ入力処理部２０１が、転送された特徴量から行列もしくはテンソルとして入力データを作成し、異常検出装置の不変量計算処理部２０２が、入力データの中で要素を入れ替えても不変な量である不変量を算出し、異常検出装置の分布学習処理部２０３が、不変量の確率密度を逐次的に求め、異常検出装置のスコア計算処理部２０４が、確率密度を用いて不変量の異常度を表す第１の外れ値スコアを算出し、異常検出装置の異常検出処理部２０５が、第１の外れ値スコアを用いて異常が発生したか否かを検出する。
【００４８】
また、ここでいう特徴量は、複数台のコンピュータの相互間の通信トラフィックとすることができる。
【００４９】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータ１１〜１ｎに実行させるようにしてもよい。
この動作により、本実施形態は以下のような効果を奏する。
【００５０】
本実施形態では、コンピュータネットワーク１を構成するｎ台のコンピュータ１１〜１ｎで時刻ｔに観測された相互間の通信トラフィックを処理の対象としているので、異常度スコアＳ（ｔ）が高いことは通信トラフィックの偏り方が通常とは異なる状態であるということに対応する。この状態はワームの蔓延や全体的な通信の輻輳の発生等の全体的な異常が発生によって引き起こされるので、異常度スコアを監視することでコンピュータネットワーク全体の異常を検出できる。
【００５１】
要素同士が相関を持つネットワーク等のシステムに対して、特定の要素の性質に依らないシステム全体の挙動の異常を検出することが出来る。その理由は、システム全体を表す特徴量から、要素の入れ替えに関して不変な量を構成し、その量を入力として異常を検出するからである。
【００５２】
また、異常の検出に際して、誤検出を削減することができる。その理由は、特定の要素の性質によらない異常のみを検出するので、異常と判断される回数（アラーム数）を削減することができるからである。特定の要素の性質によらない異常を検出することで、実際には異常ではないにもかかわらず、特定の要素のみが例外的な挙動を示したというだけで異常と判断される回数を減らすことができ、誤報の削減につながる。
【００５３】
さらに、時刻と共に変化し、異常な状態を定義することが難しいシステムに対して異常検出を行うことができる。その理由は、要素の入れ替えに対して不変な特徴量の確率分布の学習を行うことで、発生確率の低いものを異常として検出できるからである。確率分布の学習には異常な状態の定義を与える必要はなく、また、確率分布を逐次的に更新することで時刻と共に変化するシステムを扱うことができる。
【００５４】
（第２の実施形態）
本発明の第２の実施形態は、ネットワークおよびハードウェアの構成、さらにソフトウェアの大まかな構成は前述の図１〜３と同一である。第２の実施形態が前述の第１の実施形態と異なる点は、分布学習処理部２０３が不変量の時間遷移に対する確率密度分布を学習する特徴量分布学習機能部３０１と、学習された確率密度分布から不変量が通常の出現パターンからどれだけ外れているかを示す第２の外れ値スコアを算出する外れ値スコア移動平均機能部３０２と、第２の外れ値スコアの時間遷移に対する確率密度を学習する移動平均分布学習機能部３０３とを含み、またスコア計算処理部３０４が第２の外れ値スコアの時間遷移に対する確率密度から第１の外れ値スコアを算出するという点にある。
【００５５】
この構成を備えることにより、本実施形態は、不変量の急激な変化をより的確に検出することが可能となる。
以下、これをより詳細に説明する。
【００５６】
図４は、本発明の第２の実施形態における、図１に示した異常検出部１１６の構成をより詳しく説明する説明図である。本実施形態では、分布学習処理部２０３はさらに、不変量の時間遷移に対する確率密度分布を学習する特徴量分布学習機能部３０１、学習された確率密度分布から不変量Ｅ（ｔ）が通常の出現パターンからどの程度外れているかを示す第２の外れ値スコアを算出する外れ値スコア移動平均機能部３０２、第２の外れ値スコアの時間遷移に対する確率密度を学習する移動平均分布学習機能部３０３といった各機能部に分かれる。
【００５７】
第２の実施形態が前述の第１の実施形態と異なる点は、分布学習処理部２０３の動作である。第１の実施形態では、不変量Ｅ（ｔ）がそれまで学習された通常のパターンからどれだけ外れているかの度合いで異常度スコアを算出した。以下に説明する第２の実施形態では、不変量Ｅ（ｔ）がどれだけ急激に変化したかで異常度を定義する。
【００５８】
また、スコア計算処理部３０４の動作も、後述するように第１の実施形態におけるスコア計算処理部２０４と多少異なるので、ここでは別の参照番号を付している。それら以外の各処理部は、図３で示した第１の実施形態と同一の構成および動作を行うので、名称および参照番号は全て同一とする。
【００５９】
特徴量分布学習機能部３０１では、Ｅ（ｔ）の時間遷移の確率密度分布を学習する。以後、Ｅ（ｔ）の時間遷移の確率密度分布は下式のように表記する。
【数１０】
2010128674.tif 000012
【００６０】
図４の外れ値スコア移動平均機能部３０２は、特徴量分布学習機能部３０１で学習された確率密度分布からＥ（ｔ）が通常の出現パターンからどれだけ外れているかを表す（第２の）外れ値スコアＯ（ｔ）を計算する。外れ値スコアＯ（ｔ）は、値が大きいほど通常の出現パターンから外れていることを表す。外れ値スコアＯ（ｔ）は、下式のように計算される。
【数１１】
2010128674.tif 000013
【００６１】
外れ値スコア移動平均機能部３０２はさらに、外れ値スコアＯ（ｔ）の移動平均ｙ（ｔ）を、下式で計算する。ωはウィンドウの大きさを表す。このｙ（ｔ）は外れ値スコアの時間的な密集度を表す量である。
【数１２】
2010128674.tif 000014
【００６２】
図４の移動平均分布学習機能部３０３では、下式で表されるｙ（ｔ）の時間遷移の確率密度分布を学習する。
【数１３】
2010128674.tif 000015
【００６３】
スコア算出処理部３０４では、数１３で示した移動平均の分布を用いて求めた移動平均ｙ（ｔ）の（第１の）外れ値スコアＳ’（ｔ）を下式で算出し、これをコンピュータネットワーク１全体の異常度とする。
【数１４】
2010128674.tif 000016
【００６４】
以上で説明した以外の各処理部は、図３で示した第１の実施形態と同一の構成および動作を行う。
【００６５】
このＳ’（ｔ）はバースト的な急激な変化が起こっている場合に高い値を取るという性質がある。従って、このＳ’（ｔ）を外れ値スコアとして用いることは、Ｅ（ｔ）の急激な変化をシステム全体の異常と見做すことに相当する。
【００６６】
（第２の実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。本実施形態に係る動作は、第１の実施形態で説明した動作で、分布学習処理部２０３が不変量の確率密度を逐次的に求める工程が、不変量の時間遷移に対する確率密度分布を学習する工程と、学習された確率密度分布から不変量が通常の出現パターンからどの程度外れているかを示す第２の外れ値スコアＯ（ｔ）を算出する工程と、第２の外れ値スコアＯ（ｔ）の時間遷移に対する確率密度を学習する工程とを含み、スコア計算処理部３０４が第２の外れ値スコアの時間遷移に対する確率密度から第１の外れ値スコアＳ’（ｔ）を算出する。
【００６７】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータ１１〜１ｎに実行させるようにしてもよい。
この動作により、本実施形態は以下のような効果を奏する。
【００６８】
第２の実施形態は、第１の実施形態の特徴に加えて、第１の実施形態よりもＥ（ｔ）の急激な変化をより的確に検出できるという効果を得ることができる。
【００６９】
（実施形態の拡張）
上記の第１および第２の実施形態では、コンピュータネットワークで相互に接続されている各々のコンピュータ間の通信トラフィックを特徴量として、ワームおよびウイルスなどの発生および蔓延に起因する異常の検出を行うものとした。しかしながら、本発明の適用可能な範囲はそれだけではない。多数のノードが相互に接続された系で、それらのノードの相互間の関係を示す量であれば、ここでいう「（ネットワーク全体の）特徴量」と捉えることができる。
【００７０】
たとえば、機械の故障診断の例を考えると、機械の中の１つのパーツ（自動車ならエンジン、トランスミッションなど）を１つのノード、該パーツの出力間の相関の強さ（自動車ならエンジンの出力と他のパーツの電圧との間の相関係数）を「特徴量」とみなすことができる。ここに本発明の手法を適用すれば、これらのパーツ間の挙動が通常と異なり始めた場合に異常と判断するので、該機械の故障診断に利用することができる。
【００７１】
また、国際経済の状態の分析の例を考えると、１つの国を１つのノード、各国の経済指標（株価指数、為替レートなど）の相関の強さを「特徴量」とみなすことができる。ここに本発明の手法を適用すれば、株価指数間の関係が全体的に通常と異なり始めた場合に異常と判断するので、経済状態の異常検出に利用することができる。
【００７２】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【産業上の利用可能性】
【００７３】
コンピュータネットワークにおけるワーム、ウイルス、マルウェアなどのような不正プログラムに起因する通信トラフィックの異常の検出に適用できる。これ以外にも、前述のように多数のノードが相互に接続された系で、それらのノードの相互間の関係を示す量を特徴量として捉えることのできる系全般に適用することができる。
【図面の簡単な説明】
【００７４】
【図１】本発明の第１の実施形態に係るコンピュータ内部の構成を詳細に示す説明図である。
【図２】本発明の第１の実施形態に係るコンピュータネットワークについて示す説明図である。
【図３】図１に示した異常検出部の構成をより詳しく説明する説明図である。
【図４】本発明の第２の実施形態における、図１に示した異常検出部の構成をより詳しく説明する説明図である。
【符号の説明】
【００７５】
１  コンピュータネットワーク
１１、１２  コンピュータ
１１１、１２１  ＣＰＵ
１１２、１２２  ＲＡＭ
１１３、１２３  ＨＤＤ
１１４、１２４  ネットワークアダプタ
１１５、１２５  トラフィック取得部
１１６  異常検出部
２０１  データ入力処理部
２０２  不変量計算処理部
２０３  分布学習処理部
２０４、３０４  スコア計算処理部
２０５  異常検出処理部
３０１  特徴量分布学習機能部
３０２  外れ値スコア移動平均機能部
３０３  移動平均分布学習機能部
【図１】
2010128674.tif 000017
【図２】
2010128674.tif 000018
【図３】
2010128674.tif 000019
【図４】
2010128674.tif 000020