(57)【要約】【課題】要素間の相関の存在および要素間の関係の時間変化を考慮しつつシステムの異常を検出し、その異常が発生した要素を特定することを可能とするコンピュータネットワーク等を提供する。【解決手段】複数台のコンピュータが相互に接続されてなるコンピュータネットワーク１にあって、そのうち少なくとも１台が異常検出特定部１１６を有する異常検出特定装置１１であり、この異常検出特定部が、他のコンピュータで取得された特徴量から入力データを作成するデータ入力処理部２０１と、入力データをより次元数の少ない行列もしくはテンソルである複数の圧縮データに分割する特徴量分割・圧縮処理部２０３と、圧縮データに基づいていずれの要素で異常が発生したかを特定する異常検出特定手段とを有する。【選択図】図１
2010128673.tif 000002
【特許請求の範囲】
【請求項１】
複数台のコンピュータが相互に接続されてなるコンピュータネットワークであって、
前記複数台のコンピュータのうち少なくとも１台が、前記ネットワーク全体の通信トラフィックを特徴量として検出する第１の特徴量取得部と、前記特徴量から異常の検出および特定に係る計算を行う異常検出特定部とを有する異常検出特定装置であり、
前記複数台のコンピュータのうち前記異常検出特定装置でない他の全てのものが、前記特徴量を検出して前記異常検出特定部に転送する第２の特徴量取得部を有し、
前記異常検出特定装置の前記異常検出特定部が、前記複数台のコンピュータを要素とし、前記第１および第２の特徴量取得部で取得された特徴量を行列もしくはテンソルとして入力データを作成するデータ入力処理部と、前記入力データをより次元数の少ない行列もしくはテンソルである複数の圧縮データに分割する特徴量分割・圧縮処理部と、前記圧縮データに基づいていずれの前記要素で異常が発生したかを特定する異常検出特定手段とを有することを特徴とするコンピュータネットワーク。
【請求項２】
前記異常検出特定手段が、前記圧縮データに含まれる特徴量の分布を学習する特徴量分布学習処理部と、前記特徴量の分布から異常度スコアを算出するスコア計算処理部と、前記異常度スコアを用いていずれの前記要素で異常が発生したかを特定する異常検出特定処理部とを有することを特徴とする、請求項１に記載のコンピュータネットワーク。
【請求項３】
前記特徴量分割・圧縮処理部が、前記入力データを複数のグループに分割するグラフ分割処理部と、前記複数のグループに分割された入力データの特徴量の重みつきの和を取って前記特徴量を圧縮する行列圧縮処理部とを含むことを特徴とする、請求項１に記載のコンピュータネットワーク。
【請求項４】
前記異常検出特定部が、前記コンピュータネットワークの構造に関する構造情報を予め格納する構造情報格納処理部を有し、
前記グラフ分割処理部が、前記構造情報に基づいて前記入力データを複数のグループに分割することを特徴とする、請求項３に記載のコンピュータネットワーク。
【請求項５】
前記特徴量分布学習処理部が、前記圧縮データに含まれる特徴量の時間遷移に対する確率密度分布を学習する特徴量分布学習機能部と、学習された前記確率密度分布から前記圧縮データに含まれる特徴量が通常の出現パターンからどの程度外れているかを外れ値スコアとして算出する移動平均計算機能部と、前記外れ値スコアの時間遷移に対する確率密度を学習する移動平均分布学習機能部とを含み、
前記スコア計算処理部が前記外れ値スコアの時間遷移に対する確率密度から前記異常度スコアを算出することを特徴とする、請求項２に記載のコンピュータネットワーク。
【請求項６】
コンピュータネットワークに接続されたコンピュータからなる異常検出特定装置であって、
前記コンピュータネットワークに接続された複数台のコンピュータを要素とし、前記コンピュータネットワークに接続された他のコンピュータで取得された通信トラフィックを特徴量として行列もしくはテンソルとして入力データを作成するデータ入力処理部と、
前記入力データをより次元数の少ない行列もしくはテンソルである複数の圧縮データに分割する特徴量分割・圧縮処理部と、
前記圧縮データに基づいていずれの前記要素で異常が発生したかを特定する異常検出特定手段と
を有することを特徴とする異常検出特定装置。
【請求項７】
前記異常検出特定手段が、
前記圧縮データに含まれる特徴量の分布を学習する特徴量分布学習処理部と、
前記特徴量の分布から異常度スコアを算出するスコア計算処理部と、
前記異常度スコアを用いていずれの前記要素で異常が発生したかを特定する異常検出特定処理部と
を有することを特徴とする、請求項６に記載の異常検出特定装置。
【請求項８】
前記特徴量分割・圧縮処理部が、前記入力データを複数のグループに分割するグラフ分割処理部と、前記複数のグループに分割された入力データの特徴量の重みつきの和を取って前記特徴量を圧縮する行列圧縮処理部とを含むことを特徴とする、請求項６に記載の異常検出特定装置。
【請求項９】
前記分布学習処理部が、前記圧縮データに含まれる特徴量の時間遷移に対する確率密度分布を学習する特徴量分布学習機能部と、学習された前記確率密度分布から前記圧縮データに含まれる特徴量が通常の出現パターンからどの程度外れているかを外れ値スコアとして算出する移動平均計算機能部と、前記外れ値スコアの時間遷移に対する確率密度を学習する移動平均分布学習機能部とを含み、
前記スコア計算処理部が前記外れ値スコアの時間遷移に対する確率密度から前記異常度スコアを算出することを特徴とする、請求項７に記載の異常検出特定装置。
【請求項１０】
複数台のコンピュータが相互に接続されてなるコンピュータネットワークにあって、前記コンピュータネットワークに接続されたコンピュータで発生した異常を検出し、該異常の発生したコンピュータを特定する方法であって、
前記複数台のコンピュータの特徴量取得部が、通信トラフィックを特徴量として取得し、
前記特徴量取得部が、取得した前記特徴量を前記コンピュータネットワークに接続された異常検出特定装置に転送し、
前記異常検出特定装置のデータ入力処理部が、前記複数台のコンピュータを要素とし、前記転送された特徴量を行列もしくはテンソルとして入力データを作成し、
前記異常検出特定装置の特徴量分割・圧縮処理部が、前記入力データをより次元数の少ない行列もしくはテンソルである複数の圧縮データに分割し、
前記異常検出特定装置の異常検出特定手段が、前記圧縮データに基づいていずれの前記要素で異常が発生したかを特定する
ことを特徴とする異常検出特定方法。
【請求項１１】
前記異常検出特定手段が前記圧縮データに基づいていずれの前記要素で異常が発生したかを特定する手順が、
前記異常検出特定装置の特徴量分布学習処理部が、前記圧縮データに含まれる特徴量の分布を学習する手順と、
前記異常検出特定装置のスコア計算処理部が、前記特徴量の分布から異常度スコアを算出する手順とを設け、
これによって前記異常検出特定装置の異常検出特定処理部が前記異常度スコアを用いていずれの前記要素で異常が発生したかを特定することを特徴とする、請求項１０に記載の異常検出特定方法。
【請求項１２】
前記異常検出特定装置のグラフ分割処理部が、前記入力データを複数のグループに分割する手順と、
前記異常検出特定装置の行列圧縮処理部が、前記複数のグループに分割された入力データの特徴量の重みつきの和を取って前記特徴量を圧縮する手順とを設けたことを特徴とする、請求項１０に記載の異常検出特定方法。
【請求項１３】
前記異常検出特定装置の前記特徴量分割・圧縮処理部が前記入力データを複数の圧縮データに分割する手順が、前記圧縮データに含まれる特徴量の時間遷移に対する確率密度分布を学習する手順と、学習された前記確率密度分布から前記圧縮データに含まれる特徴量が通常の出現パターンからどの程度外れているかを外れ値スコアとして算出する手順と、前記外れ値スコアの時間遷移に対する確率密度を学習する手順とを含み、
前記スコア計算処理部が前記外れ値スコアの時間遷移に対する確率密度から前記異常度スコアを算出することを特徴とする、請求項１１に記載の異常検出特定方法。
【請求項１４】
コンピュータネットワークに接続された異常検出特定装置が備えるコンピュータに、
前記コンピュータネットワークに接続された複数台のコンピュータを要素とし、前記複数台のコンピュータで取得された通信トラフィックから行列もしくはテンソルとして入力データを作成する手順と、
前記入力データをより次元数の少ない行列もしくはテンソルである複数の圧縮データに分割する手順と、
前記圧縮データに基づいていずれの前記要素で異常が発生したかを特定する手順と
を実行させることを特徴とする異常検出特定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、要素が相互に関連して動作するシステムにおける異常の検出およびその発生場所の特定に関し、特にコンピュータネットワークにおけるワーム、ウイルス、マルウェアなどのような不正プログラム、および特定のコンピュータの故障などに起因する異常の検出およびその発生場所の特定に関する。
【背景技術】
【０００２】
たとえばコンピュータネットワークなどのように、接続された多数の要素が相互に関連して動作するシステムでは、その動作において発生した異常を早急に検出し、かつその異常の発生した要素を特定する必要がある。
【０００３】
その一つの例が、コンピュータネットワークにおいてワーム、ウイルス、マルウェアなどのような不正プログラム、あるいは特定のコンピュータの故障などに起因する異常の検出である。これらのような異常が発生した場合、該ネットワーク内の通信トラフィックの状況が急激に変化する。そのため、該ネットワークのノードであるコンピュータおよび各種ネットワーク機器間でのデータ送信量を時刻と共に記録し、そのデータを入力として通信トラフィックの変化から異常の発生を検出し、かつその異常の発生した要素（コンピュータ）を特定することを考える。
【０００４】
上記に関連する技術文献として、次に示すものがある。特許文献１には、データベースに格納された全ての特徴量から、類似した特徴量を検索するという技術が記載されている。特許文献２には、特徴ベクトルをより少ない次元のベクトルに変換してパターン認識を行うという技術が記載されている。特許文献３には、ネットワークの特徴量を成分に持つ行列の最大固有ベクトルを入力としてベクトルの通常の状態を学習し、通常のベクトルと大きく異なるものを異常として検出するという技術が記載されている。特許文献４には、高圧ガス圧力調整器の振動スペクトルの解析で、スペクトル全体の形状を学習して、差異を見出すという技術が記載されている。
【０００５】
また非特許文献１〜２には、行列演算で元の行列の性質をできるだけ保存したまま高次元行列を低次元行列へと圧縮する手法が記載されている。非特許文献１には密度行列くりこみ群（Density Matrix Renormalization Group）の方法、非特許文献２にはランチョス（Lanczos）法と呼ばれる方法が、それぞれ記載されている。いずれも、行列の固有値問題を数値計算で高速に解くために有用な方法である。
【０００６】
【特許文献１】特開２００１−０５２０２４号公報
【特許文献２】特開２００１−０５２１１５号公報
【特許文献３】特開２００５−２１６０６６号公報
【特許文献４】特開２００８−０６５３９３号公報
【非特許文献１】Steven R. White, ‘Density Matrix Formulation for Quantum  Renormalization Groups.’, Physical Review Letters 69, 1992.
【非特許文献２】Gene H. Golub and Charles F. Van Loan Matrix computations  (3 rd ed.). 1996.
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述のように、ネットワーク上のコンピュータを要素として、各要素の異常度を算出することによってワームや故障などに起因する通信トラフィックの異常を検出し、その異常が発生した要素を特定するということにおいて、考慮すべきネットワークの性質として次に示す二点が挙げられる。
【０００８】
一つは、要素間に強い相関があり、その相関の結果として現れる構造があるという性質である。どの要素も均一に作用している場合もあれば、少数の特定の要素が重点的に作用しているという場合もある。これらの要素間の相関の結果現れる構造は、個々の要素に着目して観測するだけでは、発見することは困難である。
【０００９】
たとえば、あるコンピュータが故障したために、他のコンピュータがその故障したコンピュータを回避して通信を行うようになり、その結果としてその故障したコンピュータとその周囲のコンピュータとの間のトラフィックが一斉に減少する場合がある。このとき、各々のトラフィックが減少することは異常ではないが、一斉に減少することは特定のコンピュータの故障を示唆する異常である。従って、各々のトラフィックが異常であるか否かのみの判断では、この異常を検出することはできない。これを検出するには、トラフィックの一斉減少という複数の要素が関連した現象を捉える必要がある。
【００１０】
もう一つは、ネットワーク上のトラフィック量等は時刻と共に変化し、またネットワークの構造も時間と共に変化するという性質である。そのため、異常として検出されるべき状態も、時間によって異なる。たとえば、同一のトラフィック量であっても、深夜もしくは休日中の時間帯に観測されれば異常に多いトラフィック量であり、平日昼間であれば通常のトラフィック量であるという場合も存在する。
【００１１】
これらの２つの性質を考慮しつつ、各要素の異常度を見積もることは、従来技術では不可能である。特許文献３などのように、上記２つの性質を考慮に入れてネットワークの異常を検出する技術は存在する。しかしながら、この技術はネットワーク全体の異常度を見積もるものであり、要素毎の異常度を算出することはできない。他の特許文献１、２、４に記載の技術は、そもそも上記の目的に適用できるものではない。
【００１２】
要素間の相関を考慮しつつ各要素の異常度を算出するには、ネットワーク全体を表す特徴量から各要素の特徴を表す量を引き出す必要がある。この特徴量として、各成分がコンピュータ間のトラフィック量を表す行列などを利用することを考えた場合、そこから各要素の異常度を算出するには、各要素の特徴を表す量をこの行列を入力として構成する必要がある。これは数学的には元の高次元行列から低次元行列を作ること、即ち高次元行列を低次元行列へと圧縮するということである。
【００１３】
非特許文献１および２の技術は、元の行列の性質を保存したまま高次元行列を低次元行列へと圧縮する技術である。しかしながらこれらの文献に記載の技術は、いずれも行列の固有値問題を数値計算で高速に解く手法について述べているだけであり、一つの要素の性質をできるだけ反映して圧縮行列を作るという目的には適用できない。
【００１４】
本発明の目的は、要素間の相関の存在および要素間の関係の時間変化を考慮しつつシステムの異常を検出し、その異常が発生した要素を的確に特定することを可能とするコンピュータネットワーク、異常検出特定装置、異常検出特定方法およびそのプログラムを提供することにある。
【課題を解決するための手段】
【００１５】
上記目的を達成するため、本発明に係るコンピュータネットワークは、複数台のコンピュータが相互に接続されてなるコンピュータネットワークであって、複数台のコンピュータのうち少なくとも１台が、ネットワーク全体の通信トラフィックを特徴量として検出する第１の特徴量取得部と、特徴量から異常の検出および特定に係る計算を行う異常検出特定部とを有する異常検出特定装置であり、複数台のコンピュータのうち異常検出特定装置でない他の全てのものが、特徴量を検出して異常検出特定部に転送する第２の特徴量取得部を有し、異常検出特定装置の異常検出特定部が、複数台のコンピュータを要素とし、第１および第２の特徴量取得部で取得された特徴量を行列もしくはテンソルとして入力データを作成するデータ入力処理部と、入力データをより次元数の少ない行列もしくはテンソルである複数の圧縮データに分割する特徴量分割・圧縮処理部と、圧縮データに基づいていずれの要素で異常が発生したかを特定する異常検出特定手段とを有することを特徴とする。
【００１６】
上記目的を達成するため、本発明に係る異常検出特定装置は、コンピュータネットワークに接続されたコンピュータからなる異常検出特定装置であって、コンピュータネットワークに接続された複数台のコンピュータを要素とし、コンピュータネットワークに接続された他のコンピュータで取得された通信トラフィックを行列もしくはテンソルとして入力データを作成するデータ入力処理部と、入力データをより次元数の少ない行列もしくはテンソルである複数の圧縮データに分割する特徴量分割・圧縮処理部と、圧縮データに基づいていずれの要素で異常が発生したかを特定する異常検出特定手段とを有することを特徴とする。
【００１７】
上記目的を達成するため、本発明に係る異常検出特定方法は、複数台のコンピュータが相互に接続されてなるコンピュータネットワークにあって、コンピュータネットワークに接続されたコンピュータで発生した異常を検出し、該異常の発生したコンピュータを特定する方法であって、複数台のコンピュータの特徴量取得部が、通信トラフィックを特徴量として取得し、特徴量取得部が、取得した特徴量をコンピュータネットワークに接続された異常検出特定装置に転送し、異常検出特定装置のデータ入力処理部が、複数台のコンピュータを要素とし、転送された特徴量を行列もしくはテンソルとして入力データを作成し、異常検出特定装置の特徴量分割・圧縮処理部が、入力データをより次元数の少ない行列もしくはテンソルである複数の圧縮データに分割し、異常検出特定装置の異常検出特定手段が、圧縮データに基づいていずれの要素で異常が発生したかを特定することを特徴とする。
【００１８】
上記目的を達成するため、本発明に係る異常検出特定プログラムは、コンピュータネットワークに接続された異常検出特定装置が備えるコンピュータに、コンピュータネットワークに接続された複数台のコンピュータを要素とし、複数台のコンピュータで取得された通信トラフィックを行列もしくはテンソルとして入力データを作成する手順と、入力データをより次元数の少ない行列もしくはテンソルである複数の圧縮データに分割する手順と、圧縮データに基づいていずれの要素で異常が発生したかを特定する手順とを実行させることを特徴とする。
【発明の効果】
【００１９】
本発明は、上述したように入力データを、要素間の相関などを考慮しつつより次元数の少ない複数の圧縮データに分割するように構成したので、いずれの要素で異常が発生したかを特定する処理を迅速かつ的確に行うことが可能である。これによって、要素間の相関の存在および要素間の関係の時間変化を考慮しつつシステムの異常を検出し、その異常が発生した要素を的確に特定することを可能とするという、従来にない優れたコンピュータネットワーク、異常検出特定装置、異常検出特定方法およびそのプログラムを提供することができる。
【発明を実施するための最良の形態】
【００２０】
（第１の実施形態）
以下、本発明の実施形態の構成について添付図１〜４に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係るコンピュータネットワーク１は、要素同士が相関を持つシステムの一例であり、複数台のコンピュータ１１〜１ｍが相互に接続されてなる。そのうちの１台であるコンピュータ１１が、ネットワーク全体の通信トラフィック等の特徴量を検出する第１の特徴量取得部１１５と、特徴量から異常の検出および特定に係る計算を行う異常検出特定部１１６とを有する異常検出特定装置であり、異常検出特定装置でない他の全てのコンピュータ１２〜１ｍが、特徴量を検出して異常検出特定部に転送する第２の特徴量取得部１２５を有し、異常検出特定装置（コンピュータ１１）の異常検出特定部１１６が、複数台のコンピュータを要素とし、第１および第２の特徴量取得部で取得された特徴量を行列もしくはテンソルとして入力データを作成するデータ入力処理部２０１と、入力データをより次元数の少ない行列もしくはテンソルである複数の圧縮データに分割する特徴量分割・圧縮処理部２０３と、圧縮データに基づいていずれの要素で異常が発生したかを特定する異常検出特定手段とを有する。
【００２１】
ここでいう異常検出手段は、圧縮データに含まれる特徴量の分布を学習する特徴量分布学習処理部２０４ａ〜２０４ｎと、特徴量の分布から異常度スコアを算出するスコア計算処理部２０５ａ〜２０５ｎと、異常度スコアを用いていずれの要素で異常が発生したかを特定する異常検出特定処理部２０６とを有する。
【００２２】
また特徴量分割・圧縮処理部２０３は、入力データを複数のグループに分割するグラフ分割処理部２１１と、複数のグループに分割された入力データの特徴量の重みつきの和を取って特徴量を圧縮する行列圧縮処理部２１２ａ〜２１２ｎとを含む。ここで、グラフ分割処理部２１１が入力データを複数のグループに分割する処理は、異常検出特定部１１６が予め備える構造情報格納処理部２０２に格納されたコンピュータネットワークの構造に関する構造情報を利用して行ってもよいし、それ以外の情報を利用して行ってもよい。
【００２３】
そしてコンピュータ１１〜１ｎの特徴量取得部１１５および１２５は、これらのコンピュータの相互間の通信トラフィックを特徴量として取得して異常検出部に転送するトラフィック取得部１１５および１２５である。
【００２４】
この構成を備えることにより、本実施形態は、要素間の相関の存在および要素間の関係の時間変化を考慮しつつシステムの異常を検出することが可能となる。
以下、これをより詳細に説明する。
【００２５】
図２は、本発明の実施形態に係るコンピュータネットワーク１の構成について示す説明図である。コンピュータネットワーク１には、ｍ台（ｍは２以上の整数）のコンピュータ１１〜１ｍが相互に接続されている。本実施形態では、これらのコンピュータ１１〜１ｍをノード、そして各ノード間の通信トラフィックをリンクとしている。そして、それらのノードの中の任意の１つであるコンピュータ１１に、他のコンピュータ１２〜１ｍから通信トラフィックに関する情報が転送され、コンピュータ１１上で後述する異常の検出および特定に係る計算が行われる。このため、コンピュータ１１を異常検出特定装置ともいう。
【００２６】
図１は、図２で示したコンピュータ１１および１２〜１ｍ内部の構成を示す説明図である。異常検出特定装置であるコンピュータ１１は、プログラムを実行する主体であるＣＰＵ（Central Processing Unit）１１１と、ＣＰＵ１１１が実行するプログラムが読み込まれて記憶されるＲＡＭ（Random Access Memory）１１２と、プログラムおよびデータが記憶される不揮発性の大容量記憶装置であるＨＤＤ（Hard Disk Unit）１１３と、コンピュータネットワーク１に接続して他のコンピュータ等とのデータ通信を行うネットワークアダプタ１１４とを備える通常のコンピュータ装置である。
【００２７】
またＣＰＵ１１１は、本実施形態に係るコンピュータプログラムであるトラフィック取得部１１５と、異常検出特定部１１６とを実行する。いずれも、ＨＤＤ１１３からＲＡＭ１１２に読み出され、ＣＰＵ１１１によって実行される。トラフィック取得部１１５は、ネットワークアダプタ１１４で行われる他のコンピュータとの通信トラフィックを検出し、異常検出特定部１１６はトラフィック取得部１１５によって取得された通信トラフィックから異常の検出および特定に係る計算を行う。
【００２８】
異常検出特定装置ではないコンピュータ１２〜１ｍも、コンピュータ１１と同じく、ＣＰＵ１２１と、ＲＡＭ１２２と、ＨＤＤ１２３と、ネットワークアダプタ１２４とを備える通常のコンピュータ装置である。これら各部の機能は、コンピュータ１１の同名の構成部と等しい。図１にはコンピュータ１２のみを示しているが、図１に示していないコンピュータ１３〜１ｍの構成もコンピュータ１２と同一である。
【００２９】
ＣＰＵ１２１は、本実施形態に係るコンピュータプログラムであるトラフィック取得部１２５を実行する。トラフィック取得部１２５は、ＨＤＤ１２３からＲＡＭ１１２に読み出され、ＣＰＵ１２１によって実行される。トラフィック取得部１２５は、ネットワークアダプタ１２４で行われる他のコンピュータとの通信トラフィックを検出し、検出された通信トラフィックについての情報をコンピュータ１１の異常検出特定部１１６に転送する。
【００３０】
コンピュータ１１の異常検出特定部１１６は、コンピュータ１２〜１ｍのトラフィック取得部１２５から転送された通信トラフィックに係る情報を、自らのトラフィック取得部１１５が取得した情報と共に利用して、異常の検出および特定に係る計算を行うのである。
【００３１】
コンピュータ１２〜１ｍは、各々サーバであってもクライアントであってもよい。トラフィック取得部１２５は、該コンピュータで行われる他の処理と並行して、通信トラフィックの検出および検出された通信トラフィックについての情報の転送を行う。異常検出特定装置であるコンピュータ１１もまた、サーバであってもクライアントであってもよいし、ネットワーク管理専門の機器としてもよい。またトラフィック取得部１１５および異常検出特定部１１６による処理をコンピュータ１１で行われる他の処理と並行して行うものとしてもよい。
【００３２】
（異常度スコアの算出と異常の検出・特定）
図３は、図１に示した異常検出特定部１１６の構成をより詳しく説明する説明図である。異常検出特定部１１６は、システム全体の特徴量から入力データを作成するデータ入力処理部２０１と、システムの構造に関する情報を格納する構造情報格納処理部２０２と、システム全体の特徴量と各頂点の重要度とを用いて各要素に関する特徴量を計算する特徴量分割・圧縮処理部２０３と、計算された特徴量および更新された確率密度から第１の異常度スコアを算出する特徴量分布学習処理部２０４ａ〜２０４ｎと、要素毎に学習された第１のスコアの分布と圧縮された特徴量とから第２の異常度スコアを算出するスコア計算処理部２０５ａ〜２０５ｎと、計算された第２の異常度スコアが異常であるか否かを判別する異常検出特定処理部２０６とからなる。
【００３３】
特徴量分割・圧縮処理部２０３は、入力データを後述のようにｎ個に分割して計算し、入力データを計算して得られたｎ個の圧縮データを特徴量分布学習処理部２０４ａ〜２０４ｎへと送る。特徴量分布学習処理部２０４ａ〜２０４ｎおよびスコア計算処理部２０５ａ〜２０５ｎは、いずれも特徴量分割・圧縮処理部２０３で分割されて得られた圧縮データの数であるｎ個存在する。
【００３４】
図３に示すデータ入力処理部２０１は、トラフィック取得部１１５および１２５で取得されたシステム全体の特徴量、システムの構造、および要素毎の重要度から入力データを作成する。ここでいうシステム全体の特徴量とは、例えば、ノード（ここではコンピュータ１１〜１ｎ）間のトラフィック量（ノードペアの数だけ存在する）の集合や、ノード間の接続の有無を二進数で表したもの（これもノードペアの数だけ存在する）の集合である。
【００３５】
システムの構造に関する情報とは、各コンピュータから見て各々のコンピュータが物理的に近いか遠いか、あるいは各コンピュータがどのコンピュータとリンクされていてどのコンピュータとリンクされていないのか、などのような情報である。そして、要素毎の重要度とは、各々のコンピュータが故障した場合の被害の大きさなどのような情報である。
【００３６】
それらの情報から作成される入力データは、時刻と共に逐次的に入力されるものでもよいし、もしくはそのデータが発生した時刻に関する情報が付与されているものでもよい。以後、データ入力処理部２０１で作成される入力データは、システムの構造に関する情報および要素毎の重要度に関する情報を含まず、システム全体の特徴量のみによって構成されるものとする。また、作成される入力データは行列型でなくてもよい（たとえばテンソル型でもよい）が、以下では入力データが行列型であるものとして説明する。
【００３７】
なお、データ入力処理部２０１で作成された入力データがシステムの構造に関する情報および要素毎の重要度に関する情報を含む場合、それらの情報は図３に示す構造情報格納処理部２０２に記憶される。
【００３８】
図３に示す特徴量分割・圧縮処理部２０３は、データ入力処理部２０１が作成した入力データに含まれるシステム全体の特徴量と各頂点の重要度とを用いて各要素に関する特徴量を計算し、この入力データを複数のグループに分割し、分割毎に各要素の重要度を重みとして重みつきの和を取る。分割は各要素の特徴が反映されるような分割法で行う。
【００３９】
特徴量分割・圧縮処理部２０３は、入力データをｎ個に分割して計算し、その結果として得られた重みつきの和の組（圧縮データ）をその要素を表す特徴量として特徴量分布学習処理部２０４ａ〜２０４ｎへと送る。なお、特徴量分布学習処理部２０４ａ〜２０４ｎも、特徴量分割・圧縮処理部２０３で分割されて得られた圧縮データの数（ｎ個）と同数に、特徴量をグループに分割して処理する。
【００４０】
ここで計算される要素毎の特徴量は、システム全体の特徴量を用いて算出されるので、要素間の相関が考慮される。また、要素の特徴を考慮した分割をするので、要素を表す量になっている。従って、要素間の相関を考慮に入れた各要素の特徴量になっている。
【００４１】
コンピュータネットワーク１の異常検出特定で、一つの要素が一つのコンピュータを表し、コンピュータ間のトラフィックを成分に持つ行列がネットワーク全体の特徴量として与えられている場合を考える。ここで、時刻ｔに入力された行列（システム全体の特徴量＝ネットワーク全体の特徴量）をＡ（ｔ）、行列の次元（要素の数＝コンピュータの数）をｎ、Ａ（ｔ）のｉｊ成分をＡｉｊ（ｔ）とする。
【００４２】
図４は、図３に示した特徴量分割・圧縮処理部２０３の内部構成をより詳しく示した説明図である。特徴量分割・圧縮処理部２０３は、グラフ分割処理部２１１と、行列圧縮処理部２１２ａ〜２１２ｎとを有する。
【００４３】
グラフ分割処理部２１１は、要素（コンピュータ）を幾つかのグループに分割する。分割の際にはある一つの要素の性質が反映されるような分割法を用いる。これを要素の数だけ（ｎ回）実行する。グループの数をＮｃ（ｎ＝Ｎｃ）とし、要素ｉの性質を反映させた分割の結果できた要素集合を下式で表す。
【数１】
2010128673.tif 000003
【００４４】
ここでいう「要素ｉの性質を反映させた分割」とは、具体的には例えば以下に説明する分割法を用いることができる。
【００４５】
構造情報格納処理部２０２に記憶されたシステムの構造の情報を利用可能である場合は、それを用いることができる。例えば、コンピュータ間の物理的な距離の情報から、Ｎｃ＝３として、下式で示される３群に分割することができる。
【数２】
2010128673.tif 000004
【００４６】
構造情報格納処理部２０２に記憶されたシステムの構造の情報を利用できない場合は、システム全体の特徴量Ａ（ｔ）を用いて分割できる。例えば、Ａｉｊ（ｔ）の値に応じて、Ｎｃ＝３として、下式で示される３群に分割することができる。ｂ１およびｂ２は、ユーザが任意に決定することのできる値であり、分割のしかたを決めるパラメータである。この分割は、コンピュータｉとのトラフィックが多い順にコンピュータをグループ分けすることに相当する。
【数３】
2010128673.tif 000005
【００４７】
上記で示した二つの例では何れもＮｃ＝３となっているが、Ｎｃは必ずしも３である必要はない。
【００４８】
行列圧縮処理部２１２ａ〜２１２ｎは、グラフ分割処理部２１１で求められた要素の分割結果と頂要素毎の重要度とを用いて、それらの要素ごとにシステム全体の特徴量の重みつきの和を取る。ここで要素ｉの重要度をψｉ（ｔ）、重要度を並べたベクトルψ（ｔ）を下式で定義する。
【数４】
2010128673.tif 000006
【００４９】
要素毎の重要度が与えられている場合には、それをそのまま数４に当てはめてψ（ｔ）を求めるとよい。要素毎の重要度が与えられていない場合には、システム全体の特徴量Ａ（ｔ）を用いて、重要度を算出する。例えば、下式にあるように固有方程式から求めることができる。ただし、λ（ｔ）はＡ（ｔ）の最大固有値であり、ψ（ｔ）はそれに対応する固有ベクトルである。
【数５】
2010128673.tif 000007
【００５０】
行列圧縮処理部２１２ａ〜２１２ｎは、以上で得られた要素毎の重要度と要素の分割結果とを用いて、要素毎にシステム全体の特徴量の重み付きの和を計算する。具体的には、例えば下式にあるようにして計算することができる。
【数６】
2010128673.tif 000008
【００５１】
上式で計算される重みつきの特徴量は要素毎に分割の数に応じた数だけある。上記の例ではＮｃの２乗個の数が要素毎に計算され、第ｋｌ成分が数６の左辺で示されるａｉｋｌ（ｔ）である行列ａｉ（ｔ）が、要素ｉに関して計算されたということになる。行列ａｉ（ｔ）は行列Ａ（ｔ）の特徴に基いて作られた低次元行列なので、行列Ａ（ｔ）を圧縮して作った行列であるともいえる。そこで、行列ａｉ（ｔ）を圧縮された特徴量ということにする。こうして算出された圧縮された特徴量ａｉ（ｔ）は、圧縮された特徴量分布学習処理部２０４ａ〜２０４ｎに送られる。
【００５２】
圧縮された特徴量分布学習処理部２０４ａ〜２０４ｎでは、圧縮された特徴量ａｉ（ｔ）の分布を学習する。分布の学習は要素毎に別々に行う。圧縮された特徴量ａｉ（ｔ）が行列の場合、例えば時刻ｔにおいてａｉの確率密度分布として下式に示す行列変数の正規分布を用いることができる。
【００５３】
【数７】
2010128673.tif 000009
ここでΣｉ，ｔとψｉ，ｔはａｉの分散を表す行列型のパラメータで、Ｍｉ，ｔはａｉの平均を表す行列型のパラメータである。これらのパラメータをまとめてθｉ，ｔと書く。圧縮された特徴量分布学習処理部２０４ａ〜２０４ｎは、このような確率分布をａｉ（ｔ）が入力される度に逐次的に更新する。
【００５４】
スコア計算処理部２０５ａ〜２０５ｎは、圧縮された特徴量分布学習処理部２０４ａ〜２０４ｎで要素毎に学習されたａｉの分布と、圧縮された特徴量ａｉ（ｔ）とから、時刻ｔにおける要素ｉの異常度スコアＳｉ（ｔ）を例えば下式によって計算する。
【００５５】
【数８】
2010128673.tif 000010
異常検出特定処理部２０６は、スコア計算処理部２０５ａ〜２０５ｎで算出された各要素の異常度スコアを基にしてシステム異常を検出する。異常度スコアの情報を基にシステムの異常を検出する方法としては、例えば異常度スコアが予め設定された閾値を超えた要素をユーザに提示するようにしてもよい。また、異常度スコアが予め設定された閾値を超えた要素の数が一定数を超えたら、システム全体が異常になったと判断してその旨をユーザに提示するようにしてもよい。
【００５６】
（第１の実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。本実施形態に係る動作は、複数台のコンピュータ１１〜１ｍが相互に接続されてなるコンピュータネットワーク１にあって、コンピュータネットワーク１に接続されたコンピュータ１１〜１ｍで発生した異常を検出し、該異常の発生したコンピュータを特定する方法であって、複数台のコンピュータ１１〜１ｍの特徴量取得部（トラフィック取得部１１５および１２５）が、通信トラフィック等の特徴量を取得し、この特徴量取得部が取得した特徴量をコンピュータネットワークに接続された異常検出特定装置（コンピュータ１１）に転送し、異常検出特定装置のデータ入力処理部２０１が、複数台のコンピュータを要素とし、転送された特徴量を行列もしくはテンソルとして入力データを作成し、異常検出特定装置の特徴量分割・圧縮処理部２０３が、入力データをより次元数の少ない行列もしくはテンソルである複数の圧縮データに分割し、異常検出特定装置の異常検出特定手段２０４〜２０６が、圧縮データに基づいていずれの要素で異常が発生したかを特定する。
【００５７】
異常検出特定手段２０４〜２０６が圧縮データに基づいていずれの要素で異常が発生したかを特定する手順が、異常検出特定装置の特徴量分布学習処理部２０４ａ〜２０４ｎが、圧縮データに含まれる特徴量の分布を学習する手順と、異常検出特定装置のスコア計算処理部２０５ａ〜２０５ｎが、特徴量の分布から異常度スコアを算出する手順とを設け、これによって異常検出特定装置の異常検出特定処理部２０６が異常度スコアを用いていずれの要素で異常が発生したかを特定する。
【００５８】
さらに異常検出特定装置１１のグラフ分割処理部２１１が、入力データを複数のグループに分割する手順と、異常検出特定装置１１の行列圧縮処理部２１２ａ〜２１２ｎが、複数のグループに分割された入力データの特徴量の重みつきの和を取って特徴量を圧縮する手順とが設けられている。
【００５９】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータ１１〜１ｎに実行させるようにしてもよい。
この動作により、本実施形態は以下のような効果を奏する。
【００６０】
数８で示した異常度スコアＳｉ（ｔ）は入力データが通常のデータとどれだけ異なっているかを表す量で、値が大きい程通常は現れない異常なデータであることに対応する。例えば、入力をネットワークのコンピュータ間の通信量、分割をコンピュータ間の物理的な距離に基づいて行った場合、ａｉ（ｔ）の異常度スコアが高いということは、要素ｉ（コンピュータ）の近くのコンピュータのトラフィックが同時に異常に多くなった等といった通常の状態とは異なった状態が要素ｉを中心として現れたにことに対応する。
【００６１】
従って、上記の例で異常度スコアＳｉ（ｔ）を異常検出特定処理部２０６によって監視すれば、ネットワーク上の通信の状態の異常の発生原因と見られるコンピュータを特定することが可能となる。
【００６２】
（第２の実施形態）
本発明の第２の実施形態は、ネットワークおよびハードウェアの構成、さらにソフトウェアの大まかな構成は前述の図１〜４と同一である。第２の実施形態が前述の第１の実施形態と異なる点は、特徴量分布学習処理部２０４ａ〜２０４ｎが圧縮データに含まれる特徴量の時間遷移に対する確率密度分布を学習する特徴量分布学習機能部３０１ａ〜３０１ｎと、学習された確率密度分布から圧縮データに含まれる特徴量が通常の出現パターンからどの程度外れているかを外れ値スコアとして算出する移動平均計算機能部３０２ａ〜３０２ｎと、外れ値スコアの時間遷移に対する確率密度を学習する移動平均分布学習機能部３０３ａ〜３０３ｎとを含み、スコア計算処理部３０４ａ〜３０４ｎが外れ値スコアの時間遷移に対する確率密度から異常度スコアを算出するという点にある。
【００６３】
この構成を備えることにより、本実施形態は、特徴量の急激な変化をより的確に検出することが可能となる。
以下、これをより詳細に説明する。
【００６４】
本発明の第１の実施形態では、圧縮された特徴量ａｉ（ｔ）がそれまで学習された通常のパターンからどれだけ外れているかの度合いで要素ｉの異常度を定義した。それに対して、以下で説明する第２の実施形態では、圧縮された特徴量ａｉ（ｔ）がどれだけ急激に変化したかで要素ｉの異常度を定義している。
【００６５】
図５は、本発明の第２の実施形態における、図１に示した異常検出特定部１１６の構成をより詳しく説明する説明図である。本実施形態では、圧縮された特徴量分布学習処理部２０４ａ〜２０４ｎはさらに、圧縮された特徴量ａｉ（ｔ）の時間遷移の確率密度分布を学習する特徴量分布学習機能部３０１ａ〜３０１ｎ、学習された確率密度分布から圧縮された特徴量ａｉ（ｔ）が通常の出現パターンからどの程度外れているかを示す外れ値スコアの移動平均を計算する移動平均計算機能部３０２ａ〜３０２ｎ、外れ値スコアの移動平均の時間遷移に対する確率密度を学習する移動平均分布学習機能部３０３ａ〜３０３ｎといった各機能部に分かれる。
【００６６】
また、スコア計算処理部３０４ａ〜３０４ｎの機能も、後述のように第１の実施形態の同名の処理部とは若干異なるので、第１の実施形態とは異なる参照番号を付けている。それら以外の各処理部は、図３〜４で示した第１の実施形態と同一の構成および動作を行うので、名称および参照番号は全て同一とする。
【００６７】
特徴量分布学習機能部３０１ａ〜３０１ｎは、下式で示す圧縮された特徴量ａｉ（ｔ）の時間遷移の確率密度分布を学習する。
【数９】
2010128673.tif 000011
【００６８】
移動平均計算機能部３０２ａ〜３０２ｎは、特徴量分布学習機能部３０１ａ〜３０１ｎで学習された確率密度分布から、圧縮された特徴量ａｉ（ｔ）が通常の出現パターンからどれだけ外れているかを表す外れ値スコアを計算する。外れ値スコアＯｉ（ｔ）は、値が大きいほど通常の出現パターンから外れていることを表す数値であり、たとえば下式で示すようにして計算できる。
【数１０】
2010128673.tif 000012
【００６９】
次に移動平均計算機能部３０２ａ〜３０２ｎは、外れ値スコアＯｉ（ｔ）の移動平均ｙｉ（ｔ）を下式で示すようにして計算する。ここでωはウィンドウの大きさを表す。ここで計算されるｙｉ（ｔ）は外れ値スコアの時間的な密集度を表す量である。
【数１１】
2010128673.tif 000013
【００７０】
移動平均分布学習機能部３０３ａ〜３０３ｎは、下式で示すｙｉ（ｔ）の時間遷移の確率密度分布を学習する。
【数１２】
2010128673.tif 000014
【００７１】
スコア計算処理部３０４ａ〜３０４ｎは、数１２で示した移動平均の時間遷移の確率密度分布を用いて下式のようにして求めた移動平均ｙｉ（ｔ）の外れ値スコアを、要素ｉの異常度Ｓ’ｉ（ｔ）として算出する。
【数１３】
2010128673.tif 000015
【００７２】
このＳ’ｉ（ｔ）はバースト的な急激な変化が起こっている場合に高い値をとる性質がある。従って、このＳ’ｉ（ｔ）を異常度スコアとして用いれば、ａｉ（ｔ）の急激な変化を要素ｉの異常として判断することができる。
【００７３】
（第２の実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。本実施形態に係る動作は、第１の実施形態で説明した動作で、異常検出特定装置（コンピュータ１１）の特徴量分割・圧縮処理部２０３が入力データを複数の圧縮データに分割する手順が、圧縮データに含まれる特徴量の時間遷移に対する確率密度分布を学習する手順と、学習された確率密度分布から圧縮データに含まれる特徴量が通常の出現パターンからどの程度外れているかを外れ値スコアとして算出する手順と、外れ値スコアの時間遷移に対する確率密度を学習する手順とを含み、スコア計算処理部２０５ａ〜２０５ｎが外れ値スコアの時間遷移に対する確率密度から異常度スコアを算出する。
【００７４】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータ１１〜１ｎに実行させるようにしてもよい。
この動作により、本実施形態は以下のような効果を奏する。
【００７５】
第２の実施形態は、第１の実施形態の特徴に加えて、第１の実施形態よりもａｉ（ｔ）の急激な変化をより的確に検出できるという効果を得ることができる。
【００７６】
（実施形態の拡張）
上記の第１および第２の実施形態では、コンピュータネットワークで相互に接続されている各々のコンピュータ間の通信トラフィックを特徴量として、ワームおよびウイルスなどの発生・蔓延、および特定のコンピュータの故障などに起因する異常の検出を行うものとした。しかしながら、本発明の適用可能な範囲はそれだけではない。多数のノードが相互に接続された系で、それらのノードの相互間の関係を示す量であれば、ここでいう「（ネットワーク全体の）特徴量」と捉えることができる。
【００７７】
たとえば、機械の故障診断の例を考えると、機械の中の１つのパーツ（自動車ならエンジン、トランスミッションなど）を１つのノード、該パーツの出力間の相関の強さ（自動車ならエンジンの出力と他のパーツの電圧との間の相関係数）を「特徴量」とみなすことができる。ここに本発明の手法を適用すれば、該機械の故障の発生箇所を特待するために利用することができる。
【００７８】
また、国際経済の状態の分析の例を考えると、１つの国を１つのノード、各国の経済指標（株価指数、為替レートなど）の相関の強さを「特徴量」とみなすことができる。ここに本発明の手法を適用すれば、株価指数間の関係が全体的に通常と異なり始めた場合を異常とし、そのような異常の発生原因の特定に利用することができる。
【００７９】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【産業上の利用可能性】
【００８０】
コンピュータネットワークにおけるワーム、ウイルス、マルウェアなどのような不正プログラム、および特定のコンピュータの故障などに起因する通信トラフィックの異常の検出に適用できる。これ以外にも、前述のように多数のノードが相互に接続された系で、それらのノードの相互間の関係を示す量を特徴量として捉えることのできる系全般に適用することができる。
【図面の簡単な説明】
【００８１】
【図１】本発明の実施形態に係るコンピュータ内部の構成を示す説明図である。
【図２】本発明の実施形態に係るコンピュータネットワークの構成について示す説明図である。
【図３】図１に示した異常検出特定部の構成をより詳しく説明する説明図である。
【図４】図３に示した特徴量分割・圧縮処理部の内部構成をより詳しく示した説明図である。
【図５】本発明の第２の実施形態における、図１に示した異常検出特定部の構成をより詳しく説明する説明図である。
【符号の説明】
【００８２】
１  コンピュータネットワーク
１１、１２  コンピュータ
１１１、１２１  ＣＰＵ
１１２、１２２  ＲＡＭ
１１３、１２３  ＨＤＤ
１１４、１２４  ネットワークアダプタ
１１５、１２５  トラフィック取得部
１１６  異常検出特定部
２０１  データ入力処理部
２０２  構造情報格納処理部
２０３  特徴量分割・圧縮処理部
２０４ａ、２０４ｎ  特徴量分布学習処理部
２０５ａ、２０５ｎ、３０４ａ、３０４ｎ  スコア計算処理部
２０６  異常検出特定処理部
２１１  グラフ分割処理部
２１２ａ、２１２ｎ  行列圧縮処理部
３０１ａ、３０１ｎ  特徴量分布学習機能部
３０２ａ、３０２ｎ  移動平均計算機能部
３０３ａ、３０３ｎ  移動平均分布学習機能部
【図１】
2010128673.tif 000016
【図２】
2010128673.tif 000017
【図３】
2010128673.tif 000018
【図４】
2010128673.tif 000019
【図５】
2010128673.tif 000020