(57)【特許請求の範囲】
【請求項１】
コンピュータ装置に異常を発生させる複数の異常発生原因のそれぞれについて異常発生時のコンピュータ装置に想定される状態が表された想定状態ベクトルを取得し、共通性のある想定状態ベクトルを共通の分類ラベルに分類するとともに、共通の分類ラベルに分類された想定状態ベクトルに基づきそれぞれの分類ラベルの境界を示す境界値を設定する境界値設定部と、
所定の内部ネットワーク内にある複数のコンピュータ装置の状態に関する情報を状態情報として定期的に収集する状態情報収集部と、
前記内部ネットワーク内で異常が検出された場合に、前記状態情報収集部により定期的に収集された状態情報のうち前記異常に関係のあるコンピュータ装置から収集された状態情報を選択し、選択した状態情報を用いて、前記異常に関係のあるコンピュータ装置の状態を表す状態ベクトルを生成する状態ベクトル生成部と、
前記状態ベクトル生成部により生成された状態ベクトルとそれぞれの分類ラベルの境界値とに基づき、前記状態ベクトル生成部により生成された状態ベクトルがいずれの分類ラベルに分類されるかを判別する状態判別部とを有することを特徴とする管理装置。
【請求項２】
前記状態ベクトル生成部は、
以前の状態情報と比較して一定レベル以上の状態の変化が新たな状態情報に示されているコンピュータ装置の状態ベクトルを生成することを特徴とする請求項１に記載の管理装置。
【請求項３】
前記状態ベクトル生成部は、
前記状態情報収集部により定期的に収集された状態情報を用いて、前記複数のコンピュータ装置の状態ベクトルを定期的に生成することを特徴とする請求項１に記載の管理装置。
【請求項４】
前記状態判別部は、
前記内部ネットワーク内で異常が検出されている否かを判定要素の一つとして、前記状態ベクトル生成部により生成された状態ベクトルがいずれの分類ラベルに分類されるかを判別することを特徴とする請求項１に記載の管理装置。
【請求項５】
前記境界値設定部は、
コンピュータウィルス感染時のコンピュータ装置に想定される状態が表された想定状態ベクトルを複数のコンピュータウィルスのそれぞれについて取得することを特徴とする請求項１に記載の管理装置。
【請求項６】
コンピュータ装置に異常を発生させる複数の異常発生原因のそれぞれについて異常発生時のコンピュータ装置に想定される状態が表された想定状態ベクトルを取得し、共通性のある想定状態ベクトルを共通の分類ラベルに分類するとともに、共通の分類ラベルに分類された想定状態ベクトルに基づきそれぞれの分類ラベルの境界を示す境界値を設定する境界値設定ステップと、
所定の内部ネットワーク内にある複数のコンピュータ装置の状態に関する情報を状態情報として定期的に収集する状態情報収集ステップと、
前記内部ネットワーク内で異常が検出された場合に、前記状態情報収集ステップにより定期的に収集された状態情報のうち前記異常に関係のあるコンピュータ装置から収集された状態情報を選択し、選択した状態情報を用いて、前記異常に関係のあるコンピュータ装置の状態を表す状態ベクトルを生成する状態ベクトル生成ステップと、
前記状態ベクトル生成ステップにより生成された状態ベクトルとそれぞれの分類ラベルの境界値とに基づき、前記状態ベクトル生成ステップにより生成された状態ベクトルがいずれの分類ラベルに分類されるかを判別する状態判別ステップとを有することを特徴とする管理方法。
【請求項７】
コンピュータ装置に異常を発生させる複数の異常発生原因のそれぞれについて異常発生時のコンピュータ装置に想定される状態が表された想定状態ベクトルを取得し、共通性のある想定状態ベクトルを共通の分類ラベルに分類するとともに、共通の分類ラベルに分類された想定状態ベクトルに基づきそれぞれの分類ラベルの境界を示す境界値を設定する境界値設定処理と、
所定の内部ネットワーク内にある複数のコンピュータ装置の状態に関する情報を状態情報として定期的に収集する状態情報収集処理と、
前記内部ネットワーク内で異常が検出された場合に、前記状態情報収集処理により定期的に収集された状態情報のうち前記異常に関係のあるコンピュータ装置から収集された状態情報を選択し、選択した状態情報を用いて、前記異常に関係のあるコンピュータ装置の状態を表す状態ベクトルを生成する状態ベクトル生成処理と、
前記状態ベクトル生成処理により生成された状態ベクトルとそれぞれの分類ラベルの境界値とに基づき、前記状態ベクトル生成処理により生成された状態ベクトルがいずれの分類ラベルに分類されるかを判別する状態判別処理とを計算機に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステムに障害が発生した際に、障害の発生箇所及び障害理由を判別する技術に関する。
【背景技術】
【０００２】
情報技術の発展にともない、規模の大小をとわず、様々な分野でネットワークシステムが構築され、運用されている。各システムは、それぞれの業務目的に沿って運用されているため、仮に利用しているシステムで障害が発生し、正常な動作が行えなくなってしまった場合には、業務が停止するといった被害が発生してしまう。したがって、システムを運用する上で、システムが正常動作しているかどうかを監視する作業が重要となる。特に、近年では、不正アクセスやワームの発生といったセキュリティインシデントに起因する障害による被害が増加傾向にあり、監視の重要性が増している。
運用システムの監視は、運用システムの管理者によって行われる。管理者は、運用システムで何らかの障害が発生した場合には、それを検出し、システムを正常動作へ復旧する必要がある。しかしながら、運用システムが大規模であったり、複雑な構成をしている場合には、システム上の障害箇所の特定に手間取り、復旧に時間がかかってしまうといった問題点がある。このような問題を解決するために、障害解析技術がある。
【０００３】
障害解析技術としては、例えば、図９に示すような、従来技術１（特許文献１）がある。従来技術１では、ニューロコンピュータによって構成された異常判定手段により、あらかじめ複数種類の異常に応じた比較用異常状態組み合わせパターンを教師データとして、異常発生時には、それらとの障害パターンを比較することによって、異常発生箇所を判定している。
また、例えば、図１０に示すような、従来技術２（特許文献２）では、あらかじめ、ネットワークシステム上で障害として想定される事象と、その発生箇所についての対応テーブルを作成しておき、障害が発生した場合には、対応テーブルを参照して、障害発生箇所を特定している。
また、例えば、図１１に示すような、従来技術３（特許文献３）では、システムで発生する異常現象とそれを引き起こす原因候補を対応付けた推定原因テーブルを作成しておき、異常が検出された場合には、推定原因テーブルを参照して、検出された異常現象の原因として発生頻度の高い原因候補から順にシミュレーションを行い、実際に検出された異常状態と類似するシミュレーション結果が得られた原因を異常発生の原因として特定している。
【特許文献１】特開平７−２１０５５号公報
【特許文献２】特開２００５−１６７３４７号公報
【特許文献３】特開平９−２０５４２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術１および従来技術２では、システム上で異常を発生している箇所（機器、ソフトウェア）の特定を目的としているため、なぜ異常を発生する事態に陥ったのかという、異常発生原因を特定できない。この場合、管理者は、異常発生箇所を調査して、異常を発生させた原因を特定する必要がある。特に、セキュリティインシデントによって障害が発生していた場合には、原因を特定する作業を行っている間にも被害範囲が拡大してしまう。加えて、従来技術１および従来技術２では、異常検出によって、誤検出が発生した場合には、誤った異常発生箇所を特定してしまう恐れもある。
【０００５】
また、従来技術３では、異常の発生箇所に加え、異常を発生させた原因まで特定可能ではあるが、異常を発生させた原因の特定を発生頻度の高い順におこなっており、発生頻度が低い原因で異常が発生していた場合、想定される原因の数が多ければ多いほど、シミュレーションによる解析回数が増え、効率的ではない。加えて、未知の不正アクセスやワームによって、障害が発生している場合には、シミュレーションを行うためのパラメータが定まらず、シミュレーションが行えない。
【０００６】
本発明は、例えば、上記のような問題点を解決するためになされたもので、システム上で異常を検出した場合に、異常を発生させている箇所に加え、異常を発生させている原因を特定することを主な目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る管理装置は、
コンピュータ装置に異常を発生させる複数の異常発生原因のそれぞれについて異常発生時のコンピュータ装置に想定される状態が表された想定状態ベクトルを取得し、共通性のある想定状態ベクトルを共通の分類ラベルに分類するとともに、共通の分類ラベルに分類された想定状態ベクトルに基づきそれぞれの分類ラベルの境界を示す境界値を設定する境界値設定部と、
複数のコンピュータ装置の状態に関する情報を状態情報として収集する状態情報収集部と、
前記状態情報収集部により収集された状態情報を用いて、前記複数のコンピュータ装置のうちのいずれかのコンピュータ装置の状態を表す状態ベクトルを生成する状態ベクトル生成部と、
前記状態ベクトル生成部により生成された状態ベクトルとそれぞれの分類ラベルの境界値とに基づき、前記状態ベクトル生成部により生成された状態ベクトルがいずれの分類ラベルに分類されるかを判別する状態判別部とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、状態ベクトルがいずれの分類ラベルに分類されるかを判断することにより、異常を発生させている原因を早期に特定することができ、特定された異常発生原因に対して的確な対応を早期にとることができ、異常発生原因に対する最善の対策を早期にとることが可能となる。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
図１は、本実施の形態に係るシステム構成例を示す図である。
図１において、１１０−１１２は監視対象ネットワークである。これらは内部ネットワークである。１００は外部ネットワークである。１２０−１２３は監視対象ネットワークに接続している接続端末である（以下、単に端末ともいう）。これら接続端末は、コンピュータ装置の例である。１３０は、監視対象ネットワーク内のトラフィックを監視し、異常を検出する異常検出装置である。５００は、異常検出装置１３０により検出された異常の発生原因を特定する異常発生原因特定装置である。異常発生原因特定装置５００は、管理装置の例である。
【００１０】
図１において、監視対象ネットワーク１１０−１１２は、外部ネットワーク１００と接続している。異常検出装置１３０は、監視対象ネットワーク１１０−１１２を流れるトラフィックを監視し、異常なトラフィックが観測された場合には、異常検出ログを生成する。異常検出ログには、異常なトラフィックを発生した疑いのある端末のＩＰアドレス、異常なトラフィックのあて先に関する情報（あて先ＩＰアドレス、あて先ポート番号）、異常検出のパラメータ（観測値、閾値、異常度合い）が含まれる。
異常発生原因特定装置５００は、異常検出装置１３０で異常が検出された場合に、異常検出ログに含まれている、異常なトラフィックを発生した疑いのある端末が、どのような原因によって異常なトラフィックを生成したのかを判定する。
【００１１】
ネットワークのトラフィックを監視している異常検出装置１３０で、なんらかの異常を検出した場合に、その異常を発生させている監視対象ネットワーク上の端末やネットワーク機器は、通常とは異なる状態へ遷移している（異常が発生している）と考えられる。また、遷移する状態は、端末や機器上で異常を発生させた原因が同一であれば、類似の状態へ遷移すると考えられる。
そこで、本実施の形態に係る異常発生原因特定装置５００は、異常の発生原因として複数の原因を想定し、想定した原因によって引き起こされる端末の状態をあらかじめ学習しておき、異常発生時の端末の状態が学習済みの状態のうち、どの状態に最も近いのかを統計学に基づく判別分析によって推定し、その状態が属する原因を、異常が発生した原因として特定する。
【００１２】
このように、本実施の形態に係る異常発生原因特定装置５００は、異常検出装置１３０で異常が検出される原因をあらかじめ想定しておき、異常検出が発生した際に、想定した原因のどれが発生しているかを判定するものである。
本実施の形態では、異常発生の原因として、監視対象ネットワークに接続された端末がネットワーク感染型ワームに感染している場合と、メール感染型ワームに感染している場合の２つを想定する。これは、既存のワームが、上記の２つに大別できることに基づいている。
本実施の形態では、端末状態を、状態ベクトル（複数の要素を持つ数値モデル）によって表現する。図６は、状態ベクトルの例を表したものである。図６において、６００は状態ベクトル表であり、６０１、６０２、６０３は、それぞれ、状態ベクトル１、状態ベクトル２、状態ベクトル３を表している。
状態ベクトルを構成する要素は、想定した複数の異常発生原因を、精度よく分類することができるもので構成する。本実施の形態では、ワームの挙動の違いによりネットワーク感染型ワームの感染状態と、メール感染型ワームの感染状態に分類するため、端末が通信で使用しているプロトコルの割合、データ送信量、データ受信量、パケット送受信数、特定箇所変更イベント数、特定ファイル変更イベント数、アクセス先ホスト数、メール送受信数、エラーパケットの受信数、ＣＰＵ使用率、メモリ使用率など、ワーム感染時の端末状態への影響を観測可能な特徴量とする。ただし、上記の特徴量に限らず、測定可能な様々な要素の組み合わせを試し、最良の組み合わせを選択するものとする。観測は、端末上でしか行えないものと、ネットワーク上でリモートからでも行えるものがある。それぞれの要素は、単位時間当たりの数を測定して、数値化したものとする。
異常発生原因特定装置５００は、異常検出装置１３０で異常が検出される原因を状態ベクトルの形であらかじめ想定しておき、異常が検出された際に、異常に関係のある端末の状態を表す状態ベクトルを得て、異常に関係のある端末の状態ベクトルが、予め想定した原因のどの状態ベクトルに近似しているかを判断して、異常発生原因を判定するものである。
【００１３】
図２は、本実施の形態に係る異常発生原因特定装置５００内の各機能を表したものである。
５０１は境界値学習指示部である。５０２は境界値学習部である。５０３は端末情報収集部である。５０４はデータ記憶部である。５０５は状態判別指示部である。５０６は状態判別部である。５０７は状態ベクトル生成部である。５０８は状態判別結果表示部である。１２０、１２１は接続端末である。１２４は接続端末の端末情報取得部である。１３０は異常検出装置である。２４０は内部ネットワークである。
【００１４】
境界値学習指示部５０１は、ユーザもしくは外部プログラムからの境界値学習指示を受けて、境界値学習部５０２を動作させる。学習する状態ベクトルは、データ記憶部５０４によって、異常発生原因特定装置５００内に保存されているものを読み込む。学習する状態ベクトルは、実験により端末を実際にワームに感染させた際の端末の状態を示す状態ベクトル又はシミュレーションにより端末がワームに感染した際に想定される端末の状態を示す状態ベクトルである。これら実験により、又はシミュレーションにより得られた状態ベクトルを想定状態ベクトルと呼ぶ。
また、読み込んだ想定状態ベクトルをどの分類ラベルとして境界値を学習するのかについては、ユーザもしくは外部プログラムによって与えられる。
【００１５】
ここで分類ラベルとは、共通性のある想定状態ベクトルをグループ化して分類するためのラベルである。例えば、異常発生原因として、ネットワーク感染型ワームとメール感染型ワームとが想定されている場合に、ネットワーク感染型ワームの分類ラベルとメール感染型ワームの分類ラベルを設け、想定状態ベクトルの共通性から、実験又はシミュレーションにより得られた想定状態ベクトルをネットワーク感染型ワームの分類ラベル又はメール感染型ワームの分類ラベルに分類する。また、例えば、ネットワーク感染型ワームが感染時の状態の特性から、ネットワーク感染型ワームＡ、ネットワーク感染型ワームＢ、ネットワーク感染型ワームＣというように細分類できる場合には、ネットワーク感染型ワームＡの分類ラベル、ネットワーク感染型ワームＢの分類ラベル、ネットワーク感染型ワームＣの分類ラベルを設けるようにしてもよい。
【００１６】
また、学習とは、概念的には、得られた想定状態ベクトルを状態空間にプロットし、プロットされた点と、それにラベルづけされた分類ラベルごとの領域に切り分けるための境界値（面）を推定することである。推定された境界値（面）は、判別分析の判別式のパラメータとして反映される。
【００１７】
境界値学習部５０２は、与えられた想定状態ベクトルをこれまでに学習した想定状態ベクトルに加えて、境界値を再計算する。境界値学習部５０２は、境界値学習指示部５０１からデータ記憶部５０４に記憶されていた想定状態ベクトルを取得し、共通性のある想定状態ベクトルを共通の分類ラベルに分類するとともに、共通の分類ラベルに分類された想定状態ベクトルに基づきそれぞれの分類ラベルの境界を示す境界値を設定する。また、新たな実験又はシミュレーションにより得られた新たな想定状態ベクトルがある場合には、境界値学習指示部５０１からの指示に基づき、新たな想定状態ベクトルを反映させて境界値を再計算する。境界値学習部５０２は、境界値設定部の例である。
なお、境界値学習部５０２が計算した境界値情報は、データ記憶部５０４によって記録しておく。
【００１８】
端末情報収集部５０３は、監視対象ネットワーク上の接続端末１２０、１２１内の端末情報取得部１２４から送られてくる端末情報（状態情報）を受け取り、データ記憶部５０４に記憶しておく。
【００１９】
データ記憶部５０４は、異常発生原因特定装置５００内の各部で用いる情報を記憶するための機能である。また、記憶した情報は、必要に応じてデータ記憶部５０４から取り出すことができる。
【００２０】
状態判別指示部５０５は、異常検出装置１３０で異常が検出された場合に、ユーザもしくはプログラムの状態判別指示を受けて、状態判別部５０６を動作させる。状態を判別する対象となる端末の識別子（ＩＰアドレスなど）は、ユーザもしくは外部プログラムによって与えられる。
【００２１】
状態判別部５０６では、状態判別指示部５０５によって与えられた状態判別を行う端末の識別子によって特定される端末の状態ベクトルを、状態ベクトル生成部５０７を用いて生成し、得られた状態ベクトルを判別式によって分析し、端末の状態ベクトルが、あらかじめ想定したどの分類ラベル（原因）に属するのかを判定する。このとき、どの程度分類ラベルと類似しているのかを数値的に求めて確信度とする。確信度が高いほど、判定した分類ラベルに属する確率が高いことを意味する。判定した結果（分類ラベル、確信度）は、生成した状態ベクトルおよび端末の識別子とともに、データ記憶部５０４によって、装置内に記憶される。
【００２２】
状態判別結果表示部５０８は、状態判別部によって判別された結果をデータ記憶部５０４から読み込んで画面へ表示もしくは、状態判別指示部を呼び出したプログラムへ渡す。
【００２３】
図３は、実施の形態１における異常発生原因特定装置５００のハードウェア資源の一例を示す図である。
図３において、異常発生原因特定装置５００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置ともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、プリンタ装置９０６、スキャナ装置９０７、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。また、これら全てのハードウェア装置が接続されていなくてもよく、例えば、プリンタ装置９０６、スキャナ装置９０７はなくてもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。異常発生原因特定装置５００におけるデータ記憶部５０４は、これらの記憶媒体により実現される。
【００２４】
通信ボード９１５は、内部ネットワークに接続され、異常検出装置１３０及び接続端末１２０、１２１と通信を行う。通信ボード９１５は、内部ネットワークに限らず、インターネット、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。通信ボード９１５は、端末情報収集部５０３及び状態判別指示部５０５の一部を構成する。
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００２５】
上記プログラム群９２３には、本実施の形態及び以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、本実施の形態及び以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明するデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
また、本実施の形態及び以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００２６】
また、本実施の形態及び以下に述べる実施の形態の説明において「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、ハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、本実施の形態及び以下に述べる実施の形態に記述されている「〜部」としてコンピュータを機能させるものである。あるいは、本実施の形態及び以下に述べる実施の形態に記述されている「〜部」の手順をコンピュータに実行させるものである。
【００２７】
次に、異常発生原因特定装置５００の動作ついて説明する。
異常発生原因特定装置５００では、学習フェーズと運用フェーズの２つの動作があるため、それぞれについて概説する。
【００２８】
学習フェーズでは、分類ラベルごとの端末の状態ベクトルを学習する。学習手順としては、まず、実験もしくはシミュレーションによって、分類ラベルごとの想定状態ベクトルを作成して、データ記憶部５０４によって異常発生原因特定装置５００上に保存する。次に、境界値学習指示部５０１によって学習する想定状態ベクトルを読み出し、その分類ラベルを指定して、境界値学習部５０２に学習を指示する。境界値学習部５０２では、既存の境界値（以下、学習データともいう）と学習を指示された想定状態ベクトルと分類ラベルを元に、新規の学習データを生成する。新規の学習データは、データ記憶部５０４によって、異常発生原因特定装置５００上に保存される。以上の処理を、学習するべきデータが無くなるまで繰り返す。
以上の説明では、状態ベクトルと分類ラベルを１つずつ学習しているが、複数の学習データが与えられた場合には、それらをまとめて学習することも可能である。加えて、状態ベクトルの要素が、監視対象ネットワークの環境に依存しない限りにおいては、異なる監視対象ネットワークであっても、共通の学習データを使用可能である。
【００２９】
次に、運用フェーズについて説明する。運用フェーズでは、通常時、監視対象ネットワーク上の各接続端末上の端末情報取得部１２４によって、取得された端末情報を端末情報収集部５０３によって収集し、データ記憶部５０４によって異常発生原因特定装置５００内に保存している。
異常検出装置１３０によって、監視対象ネットワークを流れるトラフィックに異常が発生した場合に、状態判別指示部５０５は、異常検出装置１３０から異常検出ログを受信して、状態判別部５０６を呼び出す。状態判別部５０６は、状態を判別する対象となる端末の状態ベクトルを状態ベクトル生成部５０７によって生成し、生成した状態ベクトルの分類ラベルを判別分析によって、分類ラベルを判別する。分類ラベルの判別結果は、データ記憶部５０４を用いて異常発生原因特定装置５００内に保存される。保存された分類ラベルの判別結果は、状態判別結果表示部５０８で読み込まれ、ユーザに表示、もしくは他のプログラムに通知される。
運用フェーズ中に、誤った判別結果が得られた場合には、学習フェーズと同様の手順により、再学習を行う。この際、学習する状態ベクトルは、ユーザが作成するのではなく、誤った判別結果が得られたものを使用する。
【００３０】
次に、学習フェーズにおける異常発生原因特定装置５００の動作例を図４のフローチャートを用いて説明する。
先ず、境界値学習部５０２が、境界値学習指示部５０１がデータ記憶部５０４から読み出した想定状態ベクトルを取得する（Ｓ４０１）（境界値設定ステップ）。この想定状態ベクトルは、前述したように、端末がワームに感染した場合に遷移すると想定される状態の状態ベクトルである。想定状態ベクトルの作成は、端末を実際に既知のワームに感染させて、状態ベクトルの要素となる項目について観測したデータを用いて行う。もしくは、実際に端末をワームに感染させるのではなく、想定したワームに感染した場合に端末がどのような挙動を示すのかをシミュレーションにより解析し、理論的な数値として想定状態ベクトルを作成してもよい。端末をワームに感染させての実験又はシミュレーション、及び想定状態ベクトルの生成は、異常発生原因特定装置５００の外部で行ってもよいし、異常発生原因特定装置５００内部で行ってもよい。上記のようにして得られた端末の想定状態ベクトルは、データ記憶部５０４において記憶され、また、境界値学習指示部５０１により読み出され、境界値学習部５０２に渡される。
【００３１】
次に、境界値学習部５０２は、取得した想定状態ベクトルについて、共通性のある想定状態ベクトルを共通の異常発生原因の分類ラベル（本実施の形態では、ネットワーク感染型ワームに感染、メール感染型ワームに感染）でラベル付け（分類）する（Ｓ４０２、境界値設定ステップ）。
次に、境界値学習部５０２は、それぞれの分類ラベルの境界値を設定する（Ｓ４０３）（境界値設定ステップ）。つまり、境界値学習部５０２は、得られた想定状態ベクトルを状態空間にプロットし、プロットされた点と、それにラベルづけされた分類ラベルごとの領域に切り分けるための境界値（面）、すなわち、各分類ラベルの境界を示す境界値を設定する。境界値の設定は、従来からの統計的手法により実現可能である。但し、後述するように、状態判別部５０６による状態判別手法には、線形判別関数による方式と、マハラノビス距離による方式とがあり、状態判別部５０６が用いる判別方式に対応する境界値（面）を設定する必要がある。
次に、データ記憶部５０４が、各分類ラベルの境界値を記憶する（Ｓ４０４）。
【００３２】
次に、運用フェーズにおける異常発生原因特定装置５００の動作例を図５のフローチャートを用いて説明する。
端末情報収集部５０３は、各接続端末の端末情報取得部１２４から端末情報を定期的に収集し（Ｓ５０１）（状態情報収集ステップ）、データ記憶部５０４が収集された端末情報を記憶する（Ｓ５０２）。端末情報収集部５０３が収集する端末情報には、状態ベクトルが生成可能な数値が示されている。具体的には、前述したように、端末が通信で使用しているプロトコルの割合、データ送信量、データ受信量、パケット送受信数、特定箇所変更イベント数、特定ファイル変更イベント数、アクセス先ホスト数、メール送受信数、エラーパケットの受信数、ＣＰＵ使用率、メモリ使用率など、ワーム感染時の端末状態への影響を観測可能な特徴量が端末情報として通知される。
【００３３】
次に、状態判別指示部５０５が異常検出装置１３０から異常検出ログを受信し、異常の発生を検知した場合（Ｓ５０３でＹｅｓ）は、状態判別部５０６を呼び出し、Ｓ５０４に進み、異常検出ログを受信していない場合（Ｓ５０３でＮｏ）は、Ｓ５０１に戻る。
異常の発生が検出された場合は、状態判別部５０６は、状態判別指示部５０５から異常検出ログの内容を通知され、異常に関係する端末を特定する（Ｓ５０４）。異常検出ログは、前述したように、異常なトラフィックを発生させた疑いのある端末のＩＰアドレス等が含まれるため、状態判別部５０６は、異常検出ログから異常なトラフィックを発生させた疑いのある端末を特定できる。
次に、状態ベクトル生成部５０７が、異常に関係した端末の状態ベクトルを生成する（Ｓ５０５）（状態ベクトル生成ステップ）。状態判別部５０６により異常を発生させた疑いのある端末が特定されたので、状態ベクトル生成部５０７は当該端末の端末情報をデータ記憶部５０４から読み出し、読み出した当該端末の端末情報の各パラメータから、当該端末の状態を表す状態ベクトルを生成する。
【００３４】
次に、状態判別部５０６が、データ記憶部５０４から各分類ラベルの境界値を読み出すとともに、状態ベクトル生成部５０７により生成された異常に関係のある端末の状態ベクトルと読み出した各分類ラベルの境界値とに基づき、異常に関係のある端末の状態ベクトルがどの分類ラベルに分類されるかを判別する（Ｓ５０６）（状態判別ステップ）。
状態判別部５０６が、端末の状態を判定する際には、与えられた状態ベクトルがどの分類ラベルに属するのか（どの原因によって引き起こされる状態に類似しているのか）を統計的分析手法の一つである、判別分析を用いて特定する。概念的には、判定対象となる端末の状態ベクトルが与えられたときに、それが状態空間上のどの分類ラベルの領域に属するのかを判定する。これにより、与えられた状態を引き起こしている原因が特定される。ただし、与えられた端末の状態が、状態空間上のどの分類ラベルの領域にも属さない場合は、想定外の原因によって引き起こされているか、もしくは、正常状態であると判定する。また、複数の分類ラベルに属すると判定された場合は、複数の原因が同時発生していると判断する。
統計的な判別分析の方式には、大きく分けて、線形判別関数による方式と、マハラノビス距離による方式がある。前者は、分類ラベルごとの領域を直線（平面面）で分ける方式であり、分散共分散行列が等しい場合に用いられる。この場合、各ベクトル要素の係数（重みに相当）が判別式のパラメータとなる。後者は、判別したいデータと、分類ラベルの重心との距離を導出し、最も距離が短いグループに所属するものとする方式である。この場合、境界は曲線（曲面）で表される。判別式のパラメータは、マハラノビス距離を計算するのに必要な、各分類ラベルに属する状態ベクトルの平均ベクトルと分散共分散行列となる。本実施の形態では、判別分析手法として、どちらの方式を用いてもよく、分類するデータの特徴によって、適宜選択する。
【００３５】
次に、データ記憶部５０４が、状態判別部５０６の判別結果を記憶し（Ｓ５０７）、状態判別結果表示部５０８が状態判別部５０６の判別結果をデータ記憶部５０４から読み込んで画面へ表示し、又は、状態判別指示部５０５を呼び出したプログラムへ判別結果を渡す（Ｓ５０８）。
【００３６】
このように、本実施の形態に係る異常発生原因特定装置は、以下の機能を備えている。
端末の状態を表す状態ベクトルと、その分類ラベルを学習するための、境界値学習指示機能および境界値学習機能、
状態ベクトルを生成するための端末情報を各接続端末から収集する端末情報収集機能、
異常検出装置の検出結果を元に、ユーザもしくはプログラムから端末状態判別の指示を受けるための状態判別指示機能、
状態判別指示機能からの指示を受けた端末の状態ベクトルの分類ラベルを判別する状態判別機能、
各接続端末から収集した情報から状態ベクトルを生成する状態ベクトル生成機能、
状態判別機能で判別した結果を表示するための状態判別結果表示機能、
各接続端末から収集した情報、状態判別結果、判別のためのパラメータを装置内に記憶するためのデータ記憶機能。
【００３７】
以上のように、本実施の形態によれば、端末の状態をモデル化して、異常の発生原因として想定される複数の項目ごとに遷移する状態の特徴をあらかじめ学習しておき、異常発生時の端末の状態が学習済みの項目のうち、どの項目に最も近いのかを統計学に基づく判別分析を行うことによって、異常が発生した原因を特定する。また、異常検出装置で検出された異常なトラフィックを発生した疑いのある端末から、実際に異常を発生させている状態にある端末を抽出できる。
これらの情報を元に、ユーザは、検出された異常に対して的確な対応を早期にとることができる。本実施の形態のように、ネットワーク感染型ワームに感染、メール感染型ワームに感染、という２つの分類ラベルを異常発生原因として想定した場合は、どの端末が、どのようなワームに感染したことが原因で、異常が発生したのかが特定できるため、それぞれのワームに対して、最善の対策を早期にとることが可能となる。
また、新種のワームに感染したことにより異常が発生した場合でも、新種のワームに感染した端末の状態ベクトルと、各分類ラベルの境界値とを比較することにより新種のワームがネットワーク感染型ワーム、メール感染型ワームのいずれに近いのかを判別することができ、新種のワームに対しても適切な処理を早期にとることが可能になる。
また、本実施の形態による異常発生原因の特定は、ハードウェア資源を増加させることなく実現可能であり、ハードウェア資源を増加させることなく、セキュリティ強度を高めることができる。
【００３８】
実施の形態２．
以上の実施の形態１では、異常検出装置１３０で異常を検出した場合に、異常を発生させている疑いのある個々の端末の状態を判定し、実際に異常を発生させている端末と、異常を発生させている原因（ネットワーク感染型ワームに感染、メール感染型ワームに感染）を特定するものであるが、異常発生原因特定装置５００単体で、端末の異常を検出することも可能である。なぜなら、端末の状態を判定した際に、端末の状態が異常を発生している状態であると判定されれば、判定された異常状態を引き起こす原因が発生しているといえるからである。この場合、監視対象ネットワーク上の全ての接続端末の状態を、定期的、もしくは、接続端末から状態ベクトルの要素に変更が加わるようなイベントの発生を異常発生原因特定装置５００が受信したときに、その端末の状態を判定する。
【００３９】
本実施の形態に係る異常発生原因特定装置５００の運用フェーズにおける動作は、具体的には、図７及び図８のフローチャートに示すとおりである。
【００４０】
図７は、定期的に状態ベクトルを生成する場合の異常発生原因特定装置５００の動作例を示している。
図７において、図５と同様に、端末情報収集部５０３は、各接続端末の端末情報取得部１２４から端末情報を定期的に収集し（Ｓ７０１）（状態情報収集ステップ）、データ記憶部５０４が収集された端末情報を記憶する（Ｓ７０２）。
そして、定期的な状態ベクトルの生成タイミングである場合（Ｓ７０３でＹｅｓ）は、状態ベクトル生成部５０７が全接続端末の状態ベクトルを生成する（Ｓ７０４）（状態ベクトル生成ステップ）。
その後は、図５のＳ５０５からＳ５０７と同様であり、全接続端末の状態ベクトルと各分類ラベルの境界値とに基づき、それぞれの端末の状態ベクトルがどの分類ラベルに分類されるかを判別し（Ｓ７０５）（状態判別ステップ）、データ記憶部５０４が判別結果を記憶し（Ｓ７０６）、状態判別結果表示部５０８が判別結果を通知する（Ｓ７０７）。
【００４１】
図８は、状態ベクトルの要素に変更が加わるようなイベントが発生したときに状態ベクトルを生成する場合の異常発生原因特定装置５００の動作例を示している。
図８において、図５と同様に、端末情報収集部５０３は、各接続端末の端末情報取得部１２４から端末情報を定期的に収集し（Ｓ８０１）（状態情報収集ステップ）、データ記憶部５０４が収集された端末情報を記憶する（Ｓ８０２）。
そして、以前の端末情報と比較して一定レベル以上の状態の変化が新たな状態情報に示されている端末が存在している場合、すなわち状態ベクトルの要素に変更が加わるようなイベントがいずれかの端末に発生している場合（Ｓ８０３でＹｅｓ）は、状態ベクトル生成部５０７が、このようなイベントが発生した端末の状態ベクトルを生成する（Ｓ８０４）（状態ベクトル生成ステップ）。この状態ベクトル発生のトリガとなるイベントの内容（状態の変化の内容）は予め異常発生原因特定装置５００に設定しておく。
その後は、図５のＳ５０５からＳ５０７と同様であり、状態判別の対象となる端末の状態ベクトルと各分類ラベルの境界値とに基づき、それぞれの端末の状態ベクトルがどの分類ラベルに分類されるかを判別し（Ｓ８０５）（状態判別ステップ）、データ記憶部５０４が判別結果を記憶し（Ｓ８０６）、状態判別結果表示部５０８が判別結果を通知する（Ｓ８０７）。
【００４２】
また、実施の形態１のような異常検出装置１３０での異常検出をトリガとした異常原因特定と、本実施の形態のような各端末での状態ベクトル変化イベントをトリガとした異常原因特定の２つの処理を同時に実現することも可能である。
【００４３】
このように、本実施の形態に係る異常発生原因特定装置は、以下の機能を備えている。
端末の状態を表す状態ベクトルと、その分類ラベルを学習するための、境界値学習指示機能および境界値学習機能、
状態ベクトルを生成するための端末情報を各接続端末から収集する端末情報収集機能、
接続端末から収集された端末情報の内容を元に、ユーザもしくはプログラムから端末状態判別の指示を受けるための状態判別指示機能、
状態判別指示機能からの指示を受けた端末の状態ベクトルの分類ラベルを判別する状態判別機能、
各接続端末から収集した情報から状態ベクトルを生成する状態ベクトル生成機能、
状態判別機能で判別した結果を表示するための状態判別結果表示機能。
【００４４】
以上の実施の形態２では、異常検出装置の検出結果によらず、異常発生原因特定装置のみで、異常を発生させる可能性がある端末を検出できる。これにより、異常検出装置で異常が検出される前段階において、異常を発生させる可能性のある端末とその原因を特定できるため、早期対策が可能となる。
【００４５】
実施の形態３．
以上の実施の形態２では、異常検出装置１３０の異常検出結果によらず、異常発生原因特定装置５００のみで、異常を発生させる可能性がある端末を検出している。しかしながら、異常検出装置１３０によって、異常が検出されている場合と検出されていない場合では、仮に端末の状態が同じ場合であっても、異なる原因によって引き起こされていることが考えられる。
そこで、実施の形態２で用いる状態ベクトルに加え、異常検出装置１３０での異常検出の有無も考慮して、原因の判定を行う。これは、状態空間の次元を１つ増やすことに相当するため、例え端末の状態が同一であっても、それが、異常検出装置１３０で異常が検出されているときに発生している状態か否かで、異なる判定を行うことができる。
このように、本実施の形態では、状態ベクトルがいずれの分類ラベルに分類されるかを判別する際に、内部ネットワーク内で異常が検出されている否か（異常検出装置で異常が検出されているか否か）を判定要素の一つとして利用して、分類ラベルを判別する。
【００４６】
このように、本実施の形態に係る異常発生原因特定装置は、以下の機能を備えている。
端末の状態を表す状態ベクトルと、その分類ラベルを学習するための、境界値学習指示機能および境界値学習機能、
状態ベクトルを生成するための端末情報を各接続端末から収集する端末情報収集機能、
接続端末から収集された端末情報の内容を元に、ユーザもしくはプログラムから端末状態判別の指示を受けるための状態判別指示機能、
状態判別指示機能からの指示を受けた端末の状態ベクトルに加えて、異常検出装置での検出結果の有無も、判別の要素として、分類ラベルを判別する状態判別機能、
各接続端末から収集した情報から状態ベクトルを生成する状態ベクトル生成機能、
状態判別機能で判別した結果を表示するための状態判別結果表示機能、
各接続端末から収集した情報、状態判別結果、判別のためのパラメータを装置内に記憶するためのデータ記憶機能。
【００４７】
以上の実施の形態３では、実施の形態２で用いる状態ベクトルに加え、異常検出装置での異常検出の有無も考慮して、原因の判定を行うため、より正確な判定を行うことができる。
【００４８】
なお、以上の実施の形態１−３では、異常発生原因をネットワーク感染型ワームとメール感染型ワームとする例を説明したが、これら以外のコンピュータウィルスや不正アクセスを異常発生原因としてもよい。
【００４９】
また、以上の実施の形態１−３では、状態ベクトルがいずれの分類ラベルに属するかを判定するための判定手法として、線形判別関数による方式と、マハラノビス距離による方式を例として説明したが、他の統計手法を用いてもよい。
【図面の簡単な説明】
【００５０】
【図１】実施の形態１−３に係るシステムの構成例を示す図。
【図２】実施の形態１−３に係る異常発生原因特定装置の構成例を示す図。
【図３】実施の形態１−３に係る異常発生原因特定装置のハードウェア構成例を示す図。
【図４】実施の形態１に係る異常発生原因特定装置の学習フェーズにおける動作例を示すフローチャート図。
【図５】実施の形態１に係る異常発生原因特定装置の運用フェーズにおける動作例を示すフローチャート図。
【図６】実施の形態１−３に係る状態ベクトルの例を示す図。
【図７】実施の形態２に係る異常発生原因特定装置の運用フェーズにおける動作例を示すフローチャート図。
【図８】実施の形態２に係る異常発生原因特定装置の運用フェーズにおける動作例を示すフローチャート図。
【図９】従来技術を示す図。
【図１０】従来技術を示す図。
【図１１】従来技術を示す図。
【符号の説明】
【００５１】
１００  外部ネットワーク、１１０  監視対象ネットワーク、１１１  監視対象ネットワーク、１１２  監視対象ネットワーク、１２０  接続端末、１２１  接続端末、１２２  接続端末、１２３  接続端末、１２４  端末情報取得部、１３０  異常検出装置、２４０  内部ネットワーク、５００  異常発生原因特定装置、５０１  境界値学習指示部、５０２  境界値学習部、５０３  端末情報収集部、５０４  データ記憶部、５０５  状態判別指示部、５０６  状態判別部、５０７  状態ベクトル生成部、５０８  状態判別結果表示部。
【図１】
0004559974.tif 000002
【図２】
0004559974.tif 000003
【図３】
0004559974.tif 000004
【図４】
0004559974.tif 000005
【図５】
0004559974.tif 000006
【図６】
0004559974.tif 000007
【図７】
0004559974.tif 000008
【図８】
0004559974.tif 000009
【図９】
0004559974.tif 000010
【図１０】
0004559974.tif 000011
【図１１】
0004559974.tif 000012