(57)【要約】【課題】  ネットワーク上の異常を検知した際に、その異常の内容についてまで判定可能とする。【解決手段】  本発明は、ネットワーク上の異常を検知する通信解析装置に関する。そして、本発明の通信解析装置は、ネットワーク上に配置されたネットワーク装置で発生した情報から異常の度合を検知する複数の異常検知手段と、ネットワーク装置で発生した情報から条件情報に該当する情報を抽出して特徴量として生成して各異常検知手段に供給する特徴量生成手段と、それぞれの異常検知手段が出力した検知結果を条件情報ごとに集計して、その集計結果を出力ベクトルとして生成する出力ベクトル生成手段と、出力ベクトルに基づきネットワークで発生した異常の内容を最終的に判定する最終判定処理を行う最終判定手段とを有することを特徴とする。【選択図】      図１
2019036865.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上に配置されたネットワーク装置で発生した情報から、前記ネットワークの異常の度合を検知する複数の異常検知手段と、
それぞれの前記異常検知手段について、前記ネットワーク装置で発生した情報から、異常検知の対象となる条件情報に該当する情報を抽出し、抽出した情報に基づいて、それぞれの前記異常検知手段に供給する特徴量を生成する特徴量生成手段と、
それぞれの前記異常検知手段が、前記特徴量生成手段が生成した特徴量に基づいて検知した検知結果を、条件情報ごとに集計し、条件情報ごとの検知結果を含む情報をそれぞれ出力ベクトルとして生成する出力ベクトル生成手段と、
出力ベクトル生成手段が生成した前記出力ベクトルに基づき、前記ネットワークで発生した異常の内容を最終的に判定する最終判定処理を行う最終判定手段と
を有することを特徴とする通信解析装置。
【請求項２】
前記最終判定手段は、異常の内容と当該異常に対応する前記出力ベクトルの組を複数含む教師データを利用して、前記最終判定処理を行うことを特徴とする請求項１に記載の通信解析装置。
【請求項３】
前記最終判定手段は、前記教師データを用いて学習させた学習器を用いて、前記最終判定処理を行うことを特徴とする請求項２に記載の通信解析装置。
【請求項４】
前記特徴量生成手段は、１以上の前記ネットワーク装置で発生したログを蓄積するデータプール手段から、それぞれの前記異常検知手段に対して、それぞれの前記異常検知手段で検知対象となる前記ネットワーク装置のログで、かつ、前記条件情報に該当するログを抽出して、それぞれの前記異常検知手段に供給する特徴量を生成することを特徴とする請求項１〜３のいずれかに記載の通信解析装置。
【請求項５】
前記条件情報には、前記データプール手段で保持しているログを特定するキー情報が含まれることを特徴とする請求項４に記載の通信解析装置。
【請求項６】
前記キー情報には、ＩＰアドレス、ＦＱＤＮ、又はユーザＩＤのうち少なくとも１つが含まれていることを特徴とする請求項５に記載の通信解析装置。
【請求項７】
前記条件情報には、前記データプール手段で保持しているログの時間的範囲を特定するログ取得範囲情報が含まれていることを特徴とする請求項５又は６に記載の通信解析装置。
【請求項８】
前記最終判定手段で、所定の条件に該当する判定処理が行われた場合、当該判定処理に関する情報を保持して、出力することが可能な原因出力手段をさらに有することを特徴とする請求項１〜７のいずれかに記載の通信解析装置。
【請求項９】
コンピュータを、
ネットワーク上に配置されたネットワーク装置で発生した情報から、前記ネットワークの異常の度合を検知する複数の異常検知手段と、
それぞれの前記異常検知手段について、前記ネットワーク装置で発生した情報から、異常検知の対象となる条件情報に該当する情報を抽出し、抽出した情報に基づいて、それぞれの前記異常検知手段に供給する特徴量を生成する特徴量生成手段と、
それぞれの前記異常検知手段が、前記特徴量生成手段が生成した特徴量に基づいて検知した検知結果を、条件情報ごとに集計し、条件情報ごとの検知結果を含む情報をそれぞれ出力ベクトルとして生成する出力ベクトル生成手段と、
出力ベクトル生成手段が生成した前記出力ベクトルに基づき、前記ネットワークで発生した異常の内容を最終的に判定する最終判定処理を行う最終判定手段と
として機能させることを特徴とする異常検知プログラム。
【請求項１０】
通信解析装置が行う異常検知方法において、
前記通信解析装置は、複数の異常検知手段、特徴量生成手段、出力ベクトル生成手段、及び最終判定手段を備え、
それぞれの前記異常検知手段は、前記ネットワークに配置されたネットワーク装置で発生した情報から、前記ネットワークの異常の度合を検知し、
前記特徴量生成手段は、それぞれの前記異常検知手段について、前記ネットワーク装置で発生した情報から、異常検知の対象となる条件情報に該当する情報を抽出し、抽出した情報に基づいて、それぞれの前記異常検知手段に供給する特徴量を生成し、
前記出力ベクトル生成手段は、それぞれの前記異常検知手段が、前記特徴量生成手段が生成した特徴量に基づいて検知した検知結果を、条件情報ごとに集計し、条件情報ごとの検知結果を含む情報をそれぞれ出力ベクトルとして生成し、
前記最終判定手段は、前記出力ベクトル生成手段が生成した前記出力ベクトルに基づき、前記ネットワークで発生した異常の内容を最終的に判定する最終判定処理を行う
ことを特徴とする異常検知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、通信解析装置、通信解析プログラム、及び通信解析方法に関し、例えば、ネットワーク上に配置されたネットワーク装置のログ等を解析してネットワークの異常の検知（監視）を行う異常検知装置に適用し得る。
【背景技術】
【０００２】
従来、ネットワーク上に配置されたネットワーク装置のログ等を監視して、ネットワーク上の異常（例えば、不正アクセスや攻撃的なアクセスやネットワーク障害）を検知する異常検知装置（監視装置）では、異常検知対象（監視対象）のネットワーク上に配置されたＰｒｏｘｙ（例えば、ネットワーク上に配置された端末やサーバとインターネットとの間の通信の中継に用いるＰｒｏｘｙ）のログ（以下、「Ｐｒｏｘｙログ」と呼ぶ）や、異常検知対象（監視対象）のネットワークの不正侵入を検知するＩＤＳ（Ｉｎｔｒｕｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ  Ｓｙｓｔｅｍ）システムのログ（以下、「ＩＤＳログ」とも呼ぶ）や、異常検知対象（監視対象）のネットワーク上に配置されたメールサーバ（例えば、ＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）、ＩＭＡＰ（Ｉｎｔｅｒｎｅｔ  Ｍｅｓｓａｇｅ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）、ＰＯＰ（Ｐｏｓｔ  Ｏｆｆｉｃｅ  Ｐｒｏｔｏｃｏｌ）等に対応したメールサーバ）のログ（以下、「ｍａｉｌログ」とも呼ぶ）や、異常検知対象（監視対象）のネットワーク上に配置されたＦＷ（Ｆｉｒｅ  Ｗａｌｌ）のログ（以下、「ＦＷログ」とも呼ぶ）等のセキュリティ関連のログ（以下、「セキュリティログ」とも呼ぶ）をプールするデータプール部と、データプール部が蓄積したセキュリティログを解析してネットワーク上の異常を検知する異常検知エンジンを複数備える。
【０００３】
そして、従来の異常検知装置が備える異常検知エンジンは、それぞれ、セキュリティログから所定の特徴量の取得を試み、取得した特徴量の内容に基づいて異常を検知する。従来の異常検知装置では、例えば、ＩＰアドレス単位に特徴量の取得を試み、異常を検知する。
【０００４】
また、従来の異常検知装置では、セキュリティログから、各異常検知エンジン部の解析で必要となる特徴量を生成（取得）する特徴量生成部を備えるものも存在する。従来の異常検知装置における特徴量生成部は、例えば、異常検知エンジン部に入力するために必要な統計値などの特徴量を生成する処理を行う。具体的には、従来の異常検知装置における特徴量生成エンジンは、例えば、外れ値検出や、閾値との比較等の統計的な処理を行い、それぞれのアルゴリズムに適したＩＰアドレスを、異常検知したＩＰアドレス（以下、「異常ＩＰ」とも呼ぶ）のリスト（以下、「異常ＩＰリスト」と呼ぶ）として出力する。
【０００５】
さらに、従来の異常検知装置では、各異常検知エンジン部から出力された異常ＩＰリストに基づいて異常ＩＰごとの緊急度を算出する緊急度算出部を備えるものも存在する。従来の異常検知装置における緊急度算出部は、例えば、複数の異常検知エンジン部で異常ＩＰと判断されたＩＰアドレスについてはより緊急度の高いＩＰアドレスと判断する。さらに、従来の異常検知装置における緊急度算出部は、例えば、ＤＢ（データベース）のような重要な装置が異常ＩＰと判断された場合には緊急度を上げる判断を行う。
【０００６】
また、従来の異常検知方法としては特許文献１に記載された方法も存在する。特許文献１には、ゲートウェイ上で監視対象のネットワークの全通信を観測するゲートウェイセンサと、監視対象のホストにはＷｅｂサイト閲覧ソフトによる通信を観測するホストセンサを用いた異常検知（マルウェアの感染の検知）方法について記載されている。そして、特許文献１に記載された異常検知方法では、ユーザ（監視対象のホスト）のウェブブラウジングのアクセス先の多様性の影響を除外することでホワイトリスト作成の困難さを軽減し、誤検知（ユーザビリティの低下）を抑えつつ高い検知率を実現している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１４−９９７５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来の異常検知装置では、以下のような課題が存在した。
【０００９】
従来の異常検知装置では、特定のＩＰアドレスが異常性の高い通信をしているということは認識できるが、どのような理由で異常性が高いと検出されたのか不明となる。
【００１０】
従来の異常検知装置を利用するオペレータ（例えば、ネットワーク管理者等）は、どの異常検知エンジンから出力されたのかによって、どういう異常かを経験的に推測することはできるが、オペレータ自身による解析作業が必要となる。
【００１１】
以上のような問題に鑑みて、ネットワーク上の異常を検知した際に、その異常の内容についてまで判定可能な通信解析装置、通信解析プログラム、及び通信解析方法が望まれている。
【課題を解決するための手段】
【００１２】
第１の本発明の異常検知装置は、（１）ネットワーク上に配置されたネットワーク装置で発生した情報から、前記ネットワークの異常の度合を検知する複数の異常検知手段と、（２）それぞれの前記異常検知手段について、前記ネットワーク装置で発生した情報から、異常検知の対象となる条件情報に該当する情報を抽出し、抽出した情報に基づいて、それぞれの前記異常検知手段に供給する特徴量を生成する特徴量生成手段と、（３）それぞれの前記異常検知手段が、前記特徴量生成手段が生成した特徴量に基づいて検知した検知結果を、条件情報ごとに集計し、条件情報ごとの検知結果を含む情報をそれぞれ出力ベクトルとして生成する出力ベクトル生成手段と、（４）出力ベクトル生成手段が生成した前記出力ベクトルに基づき、前記ネットワークで発生した異常の内容を最終的に判定する最終判定処理を行う最終判定手段とを有することを特徴とする。
【００１３】
第２の本発明の異常検知プログラムは、コンピュータを、（１）ネットワーク上に配置されたネットワーク装置で発生した情報から、前記ネットワークの異常の度合を検知する複数の異常検知手段と、（２）それぞれの前記異常検知手段について、前記ネットワーク装置で発生した情報から、異常検知の対象となる条件情報に該当する情報を抽出し、抽出した情報に基づいて、それぞれの前記異常検知手段に供給する特徴量を生成する特徴量生成手段と、（３）それぞれの前記異常検知手段が、前記特徴量生成手段が生成した特徴量に基づいて検知した検知結果を、条件情報ごとに集計し、条件情報ごとの検知結果を含む情報をそれぞれ出力ベクトルとして生成する出力ベクトル生成手段と、（４）出力ベクトル生成手段が生成した前記出力ベクトルに基づき、前記ネットワークで発生した異常の内容を最終的に判定する最終判定処理を行う最終判定手段として機能させることを特徴とする。
【００１４】
（１）第３の本発明は、異常検知装置が行う異常検知方法において、（２）前記異常検知装置は、複数の異常検知手段、特徴量生成手段、出力ベクトル生成手段、及び最終判定手段を備え、（３）それぞれの前記異常検知手段は、前記ネットワークに配置されたネットワーク装置で発生した情報から、前記ネットワークの異常の度合を検知し、（４）前記特徴量生成手段は、それぞれの前記異常検知手段について、前記ネットワーク装置で発生した情報から、異常検知の対象となる条件情報に該当する情報を抽出し、抽出した情報に基づいて、それぞれの前記異常検知手段に供給する特徴量を生成し、（５）前記出力ベクトル生成手段は、それぞれの前記異常検知手段が、前記特徴量生成手段が生成した特徴量に基づいて検知した検知結果を、条件情報ごとに集計し、条件情報ごとの検知結果を含む情報をそれぞれ出力ベクトルとして生成し、（６）前記最終判定手段は、前記出力ベクトル生成手段が生成した前記出力ベクトルに基づき、前記ネットワークで発生した異常の内容を最終的に判定する最終判定処理を行うことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、ネットワーク上の異常を検知した際に、その異常の内容についてまで判定可能な通信解析装置、通信解析プログラム、及び通信解析方法を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】実施形態に係る異常検知装置の機能的構成について示したブロック図である。
【図２】実施形態に係る異常検知エンジン部において外れ値に基づく検知結果（異常度）の算出方法の例について示した説明図である。
【図３】実施形態に係る最終判定エンジン部で用いられる教師データ（学習データ）の例について示した説明図である。
【図４】実施形態に係る最終判定エンジン部で用いられるニューラルネットワーク（学習器）の構成例について示した説明図である。
【図５】実施形態に係る異常検知装置の動作の例について示したフローチャートである。
【発明を実施するための形態】
【００１７】
（Ａ）主たる実施形態
以下、本発明による通信解析装置、通信解析プログラム、及び通信解析方法の一実施形態を、図面を参照しながら詳述する。以下では、本発明の通信解析装置、通信解析プログラム、及び通信解析方法を、異常検知装置に適用した例について示している。
【００１８】
（Ａ−１）実施形態の構成
図１は、この実施形態に関係する各装置の全体構成について示したブロック図である。
【００１９】
異常検知装置１０００は、ネットワークＮの異常を検知する処理等を行う装置である。
【００２０】
この実施形態では、異常検知対象のネットワークＮには、Ｐｒｏｘｙ２０１、ＩＤＳ２０２、Ｍａｉｌサーバ２０３、及びＦＷ２０４を含むネットワーク装置（通信装置）が配置されており、それぞれのネットワーク装置で発生するログがデータプール部１０に蓄積される構成となっているものとする。ネットワークＮに配置されている通信装置の数や構成については限定されないものである。
【００２１】
データプール部１０は、ネットワークＮ上の各ネットワーク装置（Ｐｒｏｘｙ２０１、ＩＤＳ２０２、Ｍａｉｌサーバ２０３、ＦＷ２０４、…）で発生したログを蓄積して、蓄積したログのデータを異常検知装置１０００に供給する手段である。データプール部１０の具体的な構成については限定されないものであるが、例えば、ログ収集装置として機能するコンピュータ（サーバ装置）等を適用することができる。以下では、Ｐｒｏｘｙ２０１で発生するログをＰｒｏｘｙログＬ−１と表し、ＩＤＳ２０２で発生するログをＩＤＳログＬ−２と表し、Ｍａｉｌサーバ２０３で発生するログをＭａｉｌログＬ−３と表し、ＦＷ２０４で発生するログをＦＷログＬ−４と表すものとする。
【００２２】
次に、異常検知装置１０００の内部構成について説明する。
【００２３】
図１に示すように、異常検知装置１０００は、大別すると１段目システム１と２段目システム２を有している。
【００２４】
この実施形態では、プロセッサやメモリ等を有するコンピュータ上に実施形態に係る通信解析プログラム（１段目システム１及び２段目システム２に相当する処理を行うプログラム）をインストールすることにより実現することができる。
【００２５】
１段目システム１には、特徴量生成部２０と、Ｘ個（Ｘは２以上の整数）の異常検知エンジン部３０（３０−１〜３０−Ｘ）が配置されている。
【００２６】
特徴量生成部２０は、異常検知の解析対象となるログの条件が定義（１又は複数の項目の情報により定義）された情報（以下、「条件情報」と呼ぶ）が入力されると、その条件情報に基づいて、それぞれの異常検知エンジン部３０の異常検知処理で必要となる情報（以下、「特徴量」とも呼ぶ）を生成（データプール部１０から取得して生成）して、それぞれの異常検知エンジン部３０に供給する。以下では、異常検知エンジン部３０（３０−１〜３０−Ｘ）に供給される特徴量を特徴量Ｆ（Ｆ−１〜Ｆ−Ｘ）と表すものとする。
【００２７】
例えば、特徴量生成部２０に各異常検知エンジン部３０に対応するログ（サーバ）を設定しておき、特徴量生成部２０がそれぞれの異常検知エンジン部３０に対応するログで、かつ、供給された条件情報に該当するログをデータプール部１０から取得することで特徴量Ｆを生成するようにしてもよい。具体的には、例えば、異常検知エンジン部３０−１が、Ｐｒｏｘｙ２０１から出力されるＰｒｏｘｙログＬ−１を解析して異常度を判定する処理を行うものであれば、特徴量生成部２０は、データプール部１０のＰｒｏｘｙログＬ−１から、条件情報に該当するログを抽出したものを特徴量Ｆ−１として、異常検知エンジン部３０−１に供給する。
【００２８】
条件情報には、例えば、各ログを検索（各ログ内のレコードを検索）する際にキーとなる情報（以下、「キー情報」と呼ぶ）を含むようにしてもよい。キー情報には、例えば、ＩＰアドレスや、ＦＱＤＮや、ユーザＩＤ（例えば、認証処理に関するログに含まれるユーザＩＤを示す文字列）などの情報を含むようにしてもよい。キー情報に含む情報の項目の種類や数は限定されないものであるが、この実施形態の例では、キー情報にＩＰアドレス、ＦＱＤＮ、及びユーザＩＤの等の項目を設定可能であるものとして説明する。なお、条件情報を構成するキー情報に設定する情報の項目や種類は限定されないものである。例えば、条件情報を構成するキー情報に、ＩＰアドレス、ＦＱＤＮ、及びユーザＩＤのうちから設定するようにしてもよい。条件情報を構成するキー情報は、１つだけ設定可能としてもよいし、複数設定可能とするようにしてもよい。また、条件情報を構成するキー情報には、同じ項目の情報を複数設定（例えば、複数のＩＰアドレスを設定）することが可能な構成としてもよい。特徴量生成部２０は、キー情報に複数の項目が設定されている場合には、その複数の項目の両方が含まれるログ（ログを構成するレコード）を特徴量Ｆとして抽出するようにしてもよい。例えば、キー情報にＩＰアドレスとＦＱＤＮの対を設定することで、異常検知装置１０００において、通信ペアの異常性判定等が可能となる。また、例えば、キー情報に、ＦＱＤＮとユーザＩＤをキーとすることで、異常検知装置１０００において、通常業務でアクセスしていない場所へのアクセス異常性判定などを行うことができる。
【００２９】
また、ここでは、条件情報に、データプール部１０から取得するログの時間的範囲を定義した情報（以下、「ログ取得範囲情報」と呼ぶ）を設定するようにしてもよい。すなわち、特徴量生成部２０は、ログ取得範囲情報に定義された期間のログから、キー情報に該当するログを取得する処理を行う。ログ取得時間情報には単純に、ログを取得する時刻の範囲の情報を設定するようにしてもよいし、繰り返しログを取得する際のパターン（以下、「繰り返しパターン」と呼ぶ）を示す情報を設定するようにしてもよい。この実施形態では、ログ取得時間情報には、繰り返しパターンが設定されるものとして説明する。具体的には、この実施形態では、ログ取得時間情報に、ログ取得の開始時間（以下、「Ｓｔａｒｔ−Ｔｉｍｅ」とも表す）、及びログ取得の間隔（以下、「Ｔｉｍｅ−Ｗｉｎｄｏｗ」とも表す）が含まれるものとして説明する。したがって、キー情報を「ｋｅｙ」と表すとすると、条件情報は、「(ｋｅｙ，Ｓｔａｒｔ−Ｔｉｍｅ，Ｔｉｍｅ−Ｗｉｎｄｏｗ)」という書式（フォーマット）で表すことができる。
【００３０】
以上のように、特徴量生成部２０は、各異常検知エンジン部３０に対して、各異常検知エンジン部３０に対応するサーバのログから、供給された条件情報を構成するキー情報（ｋｅｙ）及びログ取得範囲情報（Ｓｔａｒｔ−Ｔｉｍｅ，Ｔｉｍｅ−Ｗｉｎｄｏｗ）に該当するログを抽出して、各異常検知エンジン部３０に供給する特徴量Ｆを生成する。
【００３１】
例えば、条件情報のログ取得範囲情報で、Ｓｔａｒｔ−Ｔｉｍｅとして時刻Ｔ、Ｔｉｍｅ−ＷｉｎｄｏｗとしてＷ秒が指定された場合、特徴量生成部２０は、時刻Ｔを起点としてＷ秒間隔でデータプール部１０から、キー情報に該当するログを解析対象のログとして取得し、取得した解析対象のログを用いて特徴量Ｆを生成する。具体的には、例えば、条件情報のログ取得範囲情報で、Ｓｔａｒｔ−Ｔｉｍｅとして時刻００：００：００（０時０分０秒）、Ｔｉｍｅ−Ｗｉｎｄｏｗとして６０秒が指定された場合を想定する。この場合、特徴量生成部２０は、時刻００：００：００〜００：００：５９の期間のログから、キー情報に該当するログを１回目の解析対象のログとして取得して特徴量Ｆを生成する。次に、特徴量生成部２０は、時刻００：０１：００〜００：０１：５９の期間のログから、キー情報に該当するログを、２回目の解析対象のログとして取得して特徴量Ｆを生成する。特徴量生成部２０は、以上のような処理で、特徴量Ｆの生成を繰り返すことになる。言い換えると、特徴量生成部２０は、Ｓｔａｒｔ−Ｔｉｍｅで指定された時刻から、Ｔｉｍｅ−Ｗｉｎｄｏｗで指定された間隔ごとに、直近の未処理の期間のログ（特徴量Ｆとして利用されていない期間のログ）からキー情報に該当するログを特徴量Ｆとして取得し、各異常検知エンジン部３０に供給する。
【００３２】
一般的に、Ｐｒｏｘｙのログ（ログを構成する各レコード）には、ＨＴＴＰのステータスコード（例えば、２００、４０４等のコード）、サーバからの転送バイト数、サーバへの転送バイト数、ＨＴＴＰメソッド名（例えば、ＧＥＴ，  ＰＯＳＴなど）、プロトコル名（ｈｔｔｐ，  ｈｔｔｐｓ，  ｓｓｌなど）、サーバのＦＱＤＮ、サーバから取得するファイルパス、サーバに送信するＱｕｅｒｙ、リファラー、コンテンツタイプ、Ｕｓｅｒ  Ａｇｅｎｔ、サーバのＩＰアドレス、サーバのポート番号、ローカルのＩＰアドレス、ローカルポート番号、等の項目（カラム）のデータが含まれる。例えば、特徴量生成部２０に供給されたキー情報としてＩＰアドレスと、ＦＱＤＮが設定されていた場合、特徴量生成部２０は、ＰｒｏｘｙログＬ−１（ログ取得範囲情報で定義された期間のログ）から、キー情報のＩＰアドレス（文字列又は数値）及びＦＱＤＮが含まれるログ（ログを構成するレコード）を抽出し、抽出したログを特徴量Ｆ−１として異常検知エンジン部３０−１に供給することになる。
【００３３】
次に、異常検知エンジン部３０の構成について説明する。
【００３４】
異常検知エンジン部３０は、特徴量生成部２０から供給された特徴量Ｆ（例えば、ログの集合体）を分析して、異常の有無や異常の度合いを判断し、その判断結果を出力する。ここでは、各異常検知エンジン部３０は、供給された特徴量Ｆに基づく異常の度合い（例えば、危険性や緊急性等の度合い）を示す値（以下、「異常度」と呼ぶ）を出力するものとして説明する。異常度は、大きな値ほど、異常の度合い（例えば、危険性や緊急性の度合い）が高いことを示すものとする。
【００３５】
異常検知エンジン部３０が特徴量Ｆを用いて異常度を判断するアルゴリズムについては限定されないものである。異常検知エンジン部３０は、例えば、特定の値（例えば、特定のイベントやエラー）の出現数や、統計的なはずれ値の出現数に応じて、異常度を判断するようにしてもよい。異常検知エンジン部３０は、例えば、特徴量Ｆから特定のパラメータ（以下、「注目パラメータ」と呼ぶ）に対して統計的な外れ値を検出（統計的な外れ値を有するログのレコードを検出）して、検出した外れ値の数や外れ度合いに応じた値を異常度として出力するようにしてもよい。
【００３６】
例えば、異常検知エンジン部３０−１が、ＰｒｏｘｙログＬ−１（条件情報により絞り込まれたログ）に対して、「ローカルＩＰアドレス」毎の「サーバへの転送バイト数」という注目パラメータの外れ値に基づく異常度を検出するものとする。ここで、説明を簡易とするため、異常検知エンジン部３０−１が検出する注目パラメータに関する箱ひげ図（図２参照）を想定する。ここでは、異常検知エンジン部３０−１に、予め最大値ｍａｘ１及び最小値ｍｉｎ１が設定されているものとする。また、異常検知エンジン部３０−１において検出した任意の注目パラメータ値をＶとする。
【００３７】
そして、ここでは、異常検知エンジン部３０−１は、注目パラメータ値Ｖが最大値ｍａｘ１より大きな外れ値となる場合や、注目パラメータ値Ｖが最小値ｍｉｎ１より小さい外れ値となる場合、その外れの度合い（ｍａｘ１又はｍｉｎ１との差分）に応じた異常度を算出するものとする。具体的には、例えば、異常検知エンジン部３０−１は、注目パラメータ値Ｖが外れ値（Ｖ＞ｍａｘ１又はＶ＜ｍｉｎ１）であった場合、注目パラメータ値Ｖの外れ度合い（ｍａｘ１又はｍｉｎ１との差分）に比例した値を異常度として算出（異常度に加算）するようにしてもよい。なお、異常検知エンジン部３０−１は、注目パラメータ値Ｖが、「最大値ｍａｘ１よりも大きい分析最大値ｍａｘ２」よりもさらに大きい値だった場合は、注目パラメータ値Ｖを分析最大値ｍａｘ２（Ｖ＝ｍａｘ２）であるものとして異常度の算出を行うものとする。また、異常検知エンジン部３０−１は、注目パラメータ値Ｖが「最小値ｍｉｎ１よりも小さい分析最小値ｍｉｎ２」未満だった場合は、注目パラメータ値Ｖを分析最小値ｍｉｎ２（Ｖ＝ｍｉｎ２）であるものとして異常度の算出を行うものとする。すなわち、異常検知エンジン部３０−１は、分析最大値ｍａｘ２及び分析最小値ｍｉｎ２を、注目パラメータ値Ｖの限度（外れ値の限度）として異常度の算出を行う。
【００３８】
そして、ここでは、異常検知エンジン部３０−１は、注目パラメータ値Ｖが最大値ｍａｘ１より大きい外れ値の場合、分析最大値ｍａｘ２の異常度を１００とし、分析最大値ｍａｘ２と注目パラメータ値Ｖの差分（Ｖ−ｍａｘ１）に比例した異常度Ｄを算出するものとする。例えば、異常検知エンジン部３０−１は、注目パラメータ値Ｖが最大値ｍａｘ１より大きい場合、以下の（１）式のように注目パラメータ値Ｖに対応する異常度Ｄを算出することができる。
【００３９】
また、ここでは、異常検知エンジン部３０−１は、注目パラメータ値Ｖが最小値ｍｉｎ１より小さい外れ値の場合、分析最小値ｍｉｎ２の異常度を１００とし、分析最小値ｍｉｎ２と注目パラメータ値Ｖの差分（ｍｉｎ２−Ｖ）に比例した異常度Ｄを算出するものとする。例えば、異常検知エンジン部３０−１は、注目パラメータ値Ｖが最小値ｍｉｎ１小さい場合、以下の（２）式のように注目パラメータ値Ｖに対応する異常度Ｄを算出することができる。なお、異常検知エンジン部３０−１は、注目パラメータ値Ｖが外れ値でない場合（最小値ｍｉｎ１以上、最大値ｍａｘ１以下の場合）には、異常度を０と判定するようにしてもよい。
Ｄ＝｛（Ｖ−ｍａｘ１）／（ｍａｘ２−ｍａｘ１）｝・１００  …（１）
Ｄ＝｛（ｍｉｎ１−Ｖ）／（ｍｉｎ１−ｍｉｎ２）｝・１００  …（２）
【００４０】
そして、異常検知エンジン部３０−１は、特徴量生成部２０から供給された特徴量Ｆ−１に含まれるログ（Ｐｒｏｘｙ２０１のログ）において、「ローカルＩＰアドレス」毎の「サーバへの転送バイト数」（注目パラメータＶ）を集計し、各注目パラメータＶ（「ローカルＩＰアドレス」毎の「サーバへの転送バイト数」）について異常度の有無を検査し、異常度が発生した場合にはその異常度の累積値をカウントして最終的な異常度を検知結果として出力するものとする。例えば、異常検知エンジン部３０−１は、特徴量生成部２０から供給された特徴量Ｆ−１に含まれるログにおいて、４つの注目パラメータＶ（４つの「ローカルＩＰアドレス」の「サーバへの転送バイト数」）について異常（異常度Ｄが０より大きい；注目パラメータ値Ｖが外れ値）を検出し、その異常度の内訳が１０、２０、４０、２０だった場合、その合計値（累積値）である９０を検知結果として出力することになる。
【００４１】
なお、以下では、異常検知エンジン部３０−ｉが出力する検知結果を「検知結果Ｒ１−ｉ」と表すものとする。例えば、異常検知エンジン部３０−１の検知結果は、検知結果Ｒ１−１となる。
【００４２】
また、各異常検知エンジン部３０において、最大値ｍａｘ１、最小値ｍｉｎ１、分析最大値ｍａｘ２及び分析最小値ｍｉｎ２については、固定値としてもよいし、オペレータ（例えば、ネットワーク管理者等）により任意の値を変更可能とするようにしてもよい。例えば、各異常検知エンジン部３０には、異常が発生していない期間においてＰｒｏｘｙ２０１から取得したログにおける最大値及び最小値に基づいて、最大値ｍａｘ１及び最小値ｍｉｎ１を設定するようにしてもよいし、異常が発生している期間においてＰｒｏｘｙ２０１から取得したログにおける最大値及び最小値に基づいて、分析最大値ｍａｘ２及び分析最小値ｍｉｎ２を設定するようにしてもよい。
【００４３】
上記の例では、異常検知エンジン部３０−１の注目パラメータを「ローカルＩＰアドレス」毎の「サーバへの転送バイト数」としたが、各異常検知エンジン部３０における注目パラメータをその他のパラメータとしてもよいことは当然である。例えば、異常検知エンジン部３０−１の注目パラメータを「ローカルＩＰアドレス」毎の「サーバへの転送バイト数」とし、異常検知エンジン部３０−２の注目パラメータ「Ｕｓｅｒ  Ａｇｅｎｔ」の出現数とし、異常検知エンジン部３０−２の注目パラメータを「サーバに送信するＱｕｅｒｙ」の長さとする等の組み合わせとしてもよい。
【００４４】
各異常検知エンジン部３０は、検知結果Ｒとして、異常度（以下、「ａｎｏｍａｌｙ−ｄｅｇｒｅｅ」と呼ぶ）に、当該異常検知エンジン部３０の識別子（以下、「ｅｎｇｉｎｅ−ＩＤ」と呼ぶ）、及び条件情報（ｋｅｙ，Ｓｔａｒｔ−Ｔｉｍｅ，Ｔｉｍｅ−Ｗｉｎｄｏｗ）が付加された内容を出力するものとする。以下では、異常検知エンジン部３０−１〜３０−ＸのＩＤをそれぞれ１〜Ｘと表すものとする。そうすると、異常検知エンジン部３０の検知結果Ｒは、（ｋｅｙ，Ｓｔａｒｔ−Ｔｉｍｅ，Ｔｉｍｅ−Ｗｉｎｄｏｗ，ｅｎｇｉｎｅ−ＩＤ，ａｎｏｍａｌｙ−ｄｅｇｒｅｅ)という書式で表すことができる。なお、ｅｎｇｉｎｅ−ＩＤには対応する異常検知エンジン部３０のＩＤ（１〜Ｘのいずれか）が設定されることになる。例えば、ｅｎｇｉｎｅ−ＩＤ＝１の異常検知エンジン部３０−１から出力される検知結果Ｒ−１は、（ｋｅｙ，Ｓｔａｒｔ−Ｔｉｍｅ，Ｔｉｍｅ−Ｗｉｎｄｏｗ，１，ａｎｏｍａｌｙ−ｄｅｇｒｅｅ)と表すことができる。
【００４５】
次に、２段目システム２の内部構成について説明する。
【００４６】
２段目システム２は、出力ベクトル部４０、最終判定エンジン部５０、及び原因ログ出力部６０を有している。
【００４７】
出力ベクトル部４０は、異常検知エンジン部３０−１〜３０−Ｘの検知結果Ｒ１−１〜Ｒ１−Ｘ（１段目システム１の出力結果）をまとめてＸ次元のベクトル形式に整形したデータ（以下、「特徴量ベクトル」と呼ぶ）Ｒ２を生成する。なお、出力ベクトル部４０は、特徴量ベクトルＲ２を対応する条件情報（キー情報）ごとに管理するため、特徴量ベクトルＲ２に条件情報（キー情報）を付加する。
【００４８】
ここでは、例として、異常検知エンジン部３０が出力する検知結果Ｒに含まれる異常度（検知結果）を、ａｎｏｍａｌｙ＿ｄｅｇｒｅｅ（ｅｎｇｉｎｅ−ＩＤ）と表すものとする。そうすると、異常検知エンジン部３０−１が出力する検知結果Ｒ−１に含まれる異常度（検知結果）は、例えば、ａｎｏｍａｌｙ＿ｄｅｇｒｅｅ（１）と表すことができる。この場合、特徴量ベクトルＲ２は、例えば、「（ｋｅｙ，Ｓｔａｒｔ−Ｔｉｍｅ，Ｔｉｍｅ−Ｗｉｎｄｏｗ，ａｎｏｍａｌｙ−ｄｅｇｒｅｅ（１），ａｎｏｍａｌｙ−ｄｅｇｒｅｅ（２），…ａｎｏｍａｌｙ−ｄｅｇｒｅｅ（Ｘ））」と表すことができる。
【００４９】
最終判定エンジン部５０は、特徴量ベクトルＲ２を特徴量として、最終的な異常検知の判定結果（以下、「最終判定結果Ｒ３」と呼ぶ）を出力する。
【００５０】
具体的には、最終判定エンジン部５０は、特徴量ベクトルＲ２に対応する具体的な異常の内容（種類）を判定し、その判定結果（以下、「ｒｅｓｕｌｔ」とも表す）を最終判定結果Ｒ３として出力する。なお、最終判定エンジン部５０は、最終判定結果Ｒ３として、判定結果（ｒｅｓｕｌｔ）に、条件情報「ｋｅｙ，Ｓｔａｒｔ−Ｔｉｍｅ，Ｔｉｍｅ−Ｗｉｎｄｏｗ」を付加した情報を出力するものとする。具体的には、最終判定エンジン部５０は、最終判定結果Ｒ３として、（ｋｅｙ，Ｓｔａｒｔ−Ｔｉｍｅ，Ｔｉｍｅ−Ｗｉｎｄｏｗ，ｒｅｓｕｌｔ）という書式の情報を出力するものとする。
【００５１】
ここでは、説明を簡易とするため、最終判定エンジン部５０は、想定される異常（例えば、既知の攻撃状態や異常状態）の種類（内容）として、３種類の異常ａｂ（ａｂ１、ａｂ２、ａｂ３）の項目が設定されており、特徴量ベクトルＲ２に対応する異常の種類（ａｂ１、ａｂ２、ａｂ３のいずれか）を特定し、最終判定結果Ｒ３として出力するものとする。
【００５２】
なお、最終判定エンジン部５０で判定対象となる異常ａｂの種類や数は限定されないものである。ここでは、最終判定エンジン部５０が出力する最終判定結果Ｒ３には、３種類の異常ａｂ１、ａｂ２、ａｂ３に対応するコード（例えば、ａｂ１、ａｂ２、ａｂ３のいずれかのコード)を出力するものとして説明するが、具体的な異常の内容を示す名称（文字列）を出力する等、他の形式としてもよい。
【００５３】
最終判定エンジン部５０は、例えば、図３に示すような特徴量ベクトルと正解となる異常の種類の組のリストを教師データ（学習データ）として用いて、特徴量ベクトルＲ２に応じた異常ａｂを判定する処理を行うようにしてもよい。
【００５４】
図３に示すテーブルでは、３種類の異常ａｂ１、ａｂ２、ａｂ３（正解）に対応する特徴量ベクトルＲ２（各異常検知エンジン部３０の異常度のみ）が図示されている。図３では、１段目システム１に、５つの異常検知エンジン部３０−１〜３０−５が含まれるとした場合（Ｘ＝５とした場合）における特徴量ベクトルＲ２が図示されている。例えば、図３に図示された、異常ａｂ１に対応する特徴量ベクトル（１００，０，０，０，１０）は、ａｎｏｍａｌｙ＿ｄｅｇｒｅｅ（１）＝１００、ａｎｏｍａｌｙ＿ｄｅｇｒｅｅ（２）＝０、ａｎｏｍａｌｙ＿ｄｅｇｒｅｅ（３）＝０、ａｎｏｍａｌｙ＿ｄｅｇｒｅｅ（４）＝０、ａｎｏｍａｌｙ＿ｄｅｇｒｅｅ（５）＝１０であることを示している。
【００５５】
最終判定エンジン部５０は、例えば、図４に示すような多層のニューラルネットワーク５００に相当する演算を行うことで、特徴量ベクトルＲ２に応じた異常の種類を判定するようにしてもよい。
【００５６】
ニューラルネットワーク５００は、例えば図４で示すように５つの入力層のノードＮＩ（ＮＩ−１〜ＮＩ−５）（ａｎｏｍａｌｙ＿ｄｅｇｒｅｅ（１）〜ａｎｏｍａｌｙ＿ｄｅｇｒｅｅ（５）の５つ）、３つの出力層のノードＮＯ（ＮＯ−１〜ＮＯ−３）（ａｂ１〜ａｂ３の３つ）の構成となっている。また、ニューラルネットワーク５００には、入力層と出力層との間に中間層の５ノードＮＭ（ＮＭ−１〜ＮＭ−５）が配置されている。なお、図４に示したニューラルネットワーク５００の層の数及び層に含まれるノード数は限定されないものである。また、ニューラルネットワーク５００において、入力層５ノード、出力層３ノードとした場合においても、中間層のノード数は限定されないものである。
【００５７】
図４に示すニューラルネットワーク５００では、入力層のノードＮＩ−１〜ＮＩ−５に入力される各異常度（特徴量ベクトル）が、中間層のノードＮＭ−１〜ＮＭ−５で処理されて、出力層のノードＮＯ−１〜ＮＯ−３のそれぞれから各異常の種類（異常ａｂ１〜ａｂ３）に対応する異常を評価する値（以下、「評価値」と呼ぶ）が出力される。
【００５８】
最終判定エンジン部５０は、ニューラルネットワーク５００の出力層において、最も強く反応した出力層のノードＮＯ（一番大きな評価値を出力する出力層のノードＮＯ）に対応する異常の種類を最終判定結果として出力する。例えば、図４に示すニューラルネットワーク５００において、出力層のノードＮＯ−１から出力される値が最も大きい場合、最終判定エンジン部５０は、最終判定結果（最終判定結果Ｒ３のｒｅｓｕｌｔ）として、出力層のノードＮＯ−１に対応する異常ａｂ１を出力する。なお、最終判定エンジン部５０は、最終判定した異常に対応する評価値が閾値未満だった場合には、異常無を出力するようにしてもよい。
【００５９】
ニューラルネットワーク５００においては、中間層のノードＮＭ−１〜ＮＭ−５では、図３に示すような教師データに基いてニューラルネットワーク５００の入力と出力が対応されるように中間層がそれぞれの入出力パラメータを学習して調整し、教師データにおいて最も特徴量ベクトルＲ２と近い特徴量ベクトルが設定されている種類の異常（出力層のノードＮＯ）に対して大きな評価値が出力されるように学習がなされているものとする。
【００６０】
すなわち、最終判定エンジン部５０では、図３に示すような教師データを蓄積して図４に示すようなニューラルネットワーク５００に学習させておき、学習したどの異常の種類（異常の種類に対応する特徴量ベクトル）に近いのかを判定して、判定結果を出力する処理を行う。
【００６１】
例えば、最終判定エンジン部５０では、図３に示すような教師データを蓄積して、１００、３０、１５、０、１００）という特徴量ベクトルＲ２が供給されたとき、教師データで学習した異常（教師データにおいて異常に対応する特徴量ベクトル）のいずれと近いのかを判定し、結果として異常ａｂ３を判定結果として出力する。
【００６２】
この実施形態では、最終判定エンジン部５０はニューラルネットワークのモデルを用いて教師データを学習させた判断処理を行う例についてしめしたが、ニューラルネットワーク以外のその他の判断処理（例えば、その他の種類の人工知能処理）を適用するようにしてもよい。
【００６３】
以上のように、最終判定エンジン部５０は、図３に示すような教師データを用いて学習し、学習内容に従って適切な最終判定結果を出力可能な学習器（例えば、図４に示すようなニューラルネットワーク５００）を備えるようにしてもよい。なお、最終判定エンジン部５０に適用する学習器（学習器のモデル）としては、図４に示すようなニューラルネットワーク５００に限定されず、その他の処理構成(例えば、種々の人工知能（ＡＩ）の処理等)を適用することができる。
【００６４】
原因ログ出力部６０は、最終判定エンジン部５０で、所定の条件に該当する処理が行われた場合、当該所定の条件に該当する判定結果に関する情報（例えば、当該判定結果に対応する条件情報や特徴量Ｆ）を保持（記録）し、オペレータ（例えば、ネットワーク管理者等）の操作に応じて保持した情報を出力する。なお、原因ログ出力部６０による出力形式は限定されないものである。原因ログ出力部６０は、例えば、オペレータの操作（例えば、コマンドラインやＧＵＩによる操作）に応じて、保持している情報をファイル（１又は複数のファイル）として所定の場所（例えば、図示しないハードディスクやネットワークドライブ上の所定のフォルダ等）に出力するようにしてもよい。
【００６５】
原因ログ出力部６０で、最終判定エンジン部５０の判定結果に関する情報を保持する条件については限定されないものであるが、例えば、判定処理の過程で、最も高い評価値が複数発生した場合、又は、最も高い評価値と差分が１０％以下の差異しかない他の評価値を存在する場合等を条件としてもよい。
【００６６】
例えば、最終判定エンジン部５０が、図３のような教師データを前提として最終判定を行う場合を想定する。この場合、最終判定エンジン部５０において、異常ａｂ１、ａｂ２、ａｂ３の評価値がそれぞれ「９９、０、１」といった場合には、最終判定結果を異常ａｂとすることには問題ないが、異常ａｂ１、ａｂ２、ａｂ３の評価値がそれぞれ「３０、２８、３２」となる場合には、最も高い異常ａｂ１の評価値「３０」に対して、差分が１０％以下の評価値が２つ発生しているため、単純に評価値に基づいて異常ａｂ１を最終判定結果とすることは望ましくない。したがって、原因ログ出力部６０で判定結果に関する情報を保持した場合（所定の条件に該当した場合）には、最終判定エンジン部５０は、その所定の条件に該当する判定結果を出力しない（例えば、異常無や判定不能等の結果を出力）するようにしてもよい。
【００６７】
すなわち、２段目システム２では、最終判定エンジン部５０において判別の確度が低い結果に関しては出力せずに、原因ログ出力部６０にプールし、後にオペレータの操作により、最終判定エンジン部５０に適用する教師データ（学習データ）を追加するフィードバック処理を受け付けるようにしてもよい。
【００６８】
（Ａ−２）実施形態の動作
次に、以上のような構成を有するこの実施形態の異常検知装置１０００の動作（実施形態に係る通信解析方法）について説明する。
【００６９】
図５は、異常検知装置１０００の全体の動作について示したフローチャートである。
【００７０】
まず、特徴量生成部２０に異常検知の条件情報(ｋｅｙ，Ｓｔａｒｔ−Ｔｉｍｅ，Ｔｉｍｅ−Ｗｉｎｄｏｗ)が供給されたものとする（Ｓ１０１）。
【００７１】
次に、特徴量生成部２０は、条件情報に基づき、異常検知エンジン部３０ごとに対応するログをデータプール部１０から取得し、取得したログを特徴量Ｆとして生成し（Ｓ１０２）、生成した特徴量Ｆをそれぞれの異常検知エンジン部３０に供給する（Ｓ１０３）。
【００７２】
それぞれの異常検知エンジン部３０が、供給された特徴量Ｆに対応する異常度を算出し、検知結果Ｒ（ｋｅｙ，Ｓｔａｒｔ−Ｔｉｍｅ，Ｔｉｍｅ−Ｗｉｎｄｏｗ，ｅｎｇｉｎｅ−ＩＤ，ａｎｏｍａｌｙ−ｄｅｇｒｅｅ)を出力する（Ｓ１０４）。
【００７３】
出力ベクトル部４０が、各異常検知エンジン部３０の出力（１段目システム１の出力）を集計し、条件情報ごとの検知結果を整形して特徴量ベクトルＲ２（ｋｅｙ，Ｓｔａｒｔ−Ｔｉｍｅ，Ｔｉｍｅ−Ｗｉｎｄｏｗ，ａｎｏｍａｌｙ−ｄｅｇｒｅｅ（１），ａｎｏｍａｌｙ−ｄｅｇｒｅｅ（２），…ａｎｏｍａｌｙ−ｄｅｇｒｅｅ（Ｘ））を生成する（Ｓ１０５）。出力ベクトル部４０は、全ての異常検知エンジン部３０からの検知結果Ｒ１の出力がなされるか、タイムアウトとなった場合（例えば、特徴量生成部２０から各異常検知エンジン部３０に特徴量Ｆが供給されてから所定のタイムアウト時間が経過した場合）に、その時点で取得した検知結果Ｒ１を用いて特徴量ベクトルＲ２を生成する。
【００７４】
次に、最終判定エンジン部５０が、特徴量ベクトルＲ２（条件情報等の付加情報を除いた情報）に基づき、各異常（例えば、異常ａｂ１〜ａｂ３）に対する評価値を算出し、算出した評価値に基づく判定結果（例えば、異常ａｂ１〜ａｂ３又は異常無）を最終判定結果Ｒ３として出力する（Ｓ１０７）。
【００７５】
以上のように、異常検知装置１０００は、最終判定結果Ｒ３を出力する処理を行う。
【００７６】
次に、異常検知装置１０００（最終判定エンジン部５０）に新たな教師データ（学習データ）をインプットする方式（学習のバリエーション）の例について説明する。なお、異常検知装置１０００（最終判定エンジン部５０）に新たな教師データ（学習データ）をインプットする方式については、以下の例に限定されないものである。
【００７７】
例えば、特徴量生成部２０では、条件情報に正解となる判定結果（ｒｅｓｕｌｔ）を付加した教師データに相当する情報（以下、「学習指示条件情報」とも呼ぶ）を受け付けることで、教師データのインプットを受け付けるようにしてもよい。
【００７８】
この場合、学習指示条件情報は、「（Ｋｅｙ、Ｓｔａｒｔ−ｔｉｍｅ、Ｔｉｍｅ−Ｗｉｎｄｏｗ、ｒｅｓｕｌｔ）」という書式で表すことができる。
【００７９】
特徴量生成部２０は、学習指示条件情報（条件情報に判定結果（ｒｅｓｕｌｔ）が付加された情報）が供給されると、異常検知の処理と同様に、各異常検知エンジン部３０に対して、条件情報（学習指示条件情報に含まれる条件情報）に該当する特徴量Ｆを生成する。そして、特徴量生成部２０は、各異常検知エンジン部３０に対して、特徴量Ｆに条件情報及び学習指示条件情報の判定結果（ｒｅｓｕｌｔ）を付加した情報（以下、「学習指示特徴量」と呼ぶ）を生成して供給する。
【００８０】
各異常検知エンジン部３０は、学習指示特徴量（特徴量Ｆに条件情報及びｒｅｓｕｌｔが付加された情報）が供給されると、異常検知の処理と同様に異常度を算出し、異常度に判定結果（ｒｅｓｕｌｔ）及び条件情報を付加した情報（以下、「学習指示検知結果」と呼ぶ）を出力ベクトル部４０に供給する。
【００８１】
出力ベクトル部４０は、学習指示検知結果（特徴量Ｆに条件情報及びｒｅｓｕｌｔが付加された情報）が供給されると、条件情報ごとの学習指示検知結果を集計した結果の情報（以下、「学習指示ベクトル」と呼ぶ）を整形して最終判定エンジン部５０に供給する。学習指示ベクトルには、条件情報（Ｋｅｙ，Ｓｔａｒｔ−Ｔｉｍｅ，Ｔｉｍｅ−Ｗｉｎｄｏｗ）、判定結果（ｒｅｓｕｌｔ）、及び特徴量ベクトル（ａｎｏｍａｌｙ−ｄｅｇｒｅｅ（１），ａｎｏｍａｌｙ−ｄｅｇｒｅｅ（２），…ａｎｏｍａｌｙ−ｄｅｇｒｅｅ（Ｘ））が含まれる。
【００８２】
この場合、学習指示ベクトルは、「（Ｋｅｙ，Ｓｔａｒｔ−Ｔｉｍｅ，Ｔｉｍｅ−Ｗｉｎｄｏｗ，Ｒｅｓｕｌｔ，ａｎｏｍａｌｙ−ｄｅｇｒｅｅ（１），ａｎｏｍａｌｙ−ｄｅｇｒｅｅ（２），…ａｎｏｍａｌｙ−ｄｅｇｒｅｅ（Ｘ））」という書式で表すことができる。
【００８３】
最終判定エンジン部５０は、学習指示ベクトル（条件情報、判定結果、及び特徴量ベクトルが含まれた情報）が供給されると、当該学習指示ベクトルに含まれる判定結果と特徴量ベクトルを対とした教師データ（学習データ）を追加して再学習する処理を行う。最終判定エンジン部５０には、過去に供給された学習指示ベクトル（又は、学習指示ベクトルに基づく教師データ）を保持しておき、新たに学習指示ベクトルが供給される度に再学習する処理を行うようにしてもよい。
【００８４】
異常検知装置１０００では、例えば、オペレータに、原因ログ出力部６０で保持された情報に基づいて学習指示条件情報を編集（例えば、テキストエディタ等のエディタや専用のＧＵＩ上で編集）させ、学習指示条件情報に入力させることができる。
【００８５】
なお、異常検知装置１０００における学習処理の方式は上記の例に限定されないものである。例えば、最終判定エンジン部５０が、直接オペレータから学習指示ベクトルの入力を受け付けるようにしてもよい。
【００８６】
（Ａ−３）実施形態の効果
この実施形態によれば、以下のような効果を奏することができる。
【００８７】
この実施形態の異常検知装置１０００では、１段目システム１（特徴量生成部２０）に解析のキーとなる条件情報（キー情報を含む情報）に基づいて、それぞれの異常検知エンジン部３０で異常検知の対象となるログを含む特徴量Ｆを生成している。これにより、複数の異常検知エンジン部３０の検知結果Ｒ１をＩＰアドレス以外の数値パラメータ（例えば、異常度）で出力させることができる。
【００８８】
また、この実施形態の異常検知装置１０００では、２段目システム２の最終判定エンジン部５０で、異常検知エンジン部３０の検知結果Ｒ１を集計した特徴量ベクトルＲ２に基づき、ネットワークＮ上の異常の有無だけでなく、異常の内容の（例えば、攻撃なのか障害なのか等）の判定を行うことができる。最終判定エンジン部５０では、過去の実績等に基づく教師データ（学習データ）で学習させた学習器（例えば、ニューラルネットワーク）を用いることで、特徴量ベクトルＲ２に対応する異常の内容を特定することができる。また、最終判定エンジン部５０では、学習器に学習させる教師データを増やすことによって、異常の内容のさらに詳細の判定（例えば、攻撃なのか障害なのかだけではなく、攻撃の種別までの判定）を行うことができる。
【００８９】
さらに、異常検知装置１０００では、オペレータに原因ログ出力部６０に情報が保持された情報を提示することにより、オペレータに未知の事象（例えば、攻撃・異常など）の存在を認識させることができる。これにより、異常検知装置１０００では、オペレータに対して、最終判定エンジン部５０に学習させる教師データの更新（新たな教師データを追加）を支援することができる。
【００９０】
（Ｂ）他の実施形態
本発明は、上記の実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
【００９１】
（Ｂ−１）上記の実施形態では、本発明の通信解析装置を異常検知装置に適用する例について説明したが、リアルタイムに繰り返し最終判定エンジン部５０による最終判定処理を行って最終判定結果Ｒ３を出力する監視装置として構成するようにしてもよい。
【符号の説明】
【００９２】
１０００…異常検知装置、１…１段目システム、２０…特徴量生成部、３０、３０−１〜３０−Ｘ…異常検知エンジン部、２…２段目システム、４０…出力ベクトル部、５０…最終判定エンジン部、６０…原因ログ出力部、Ｎ…ネットワーク、１０…データプール部、Ｆ、Ｆ−１〜Ｆ−Ｘ…特徴量、Ｒ１、Ｒ１−１〜Ｒ１−Ｘ…検知結果、Ｒ２…特徴量ベクトル、Ｒ３…最終判定結果、ＮＩ、ＮＩ−１〜ＮＩ−５…入力層のノード、ＮＭ、ＮＭ−１〜ＮＭ−５…中間層のノード、ＮＯ、ＮＯ−１〜ＮＯ−３…出力層のノード、２０１…Ｐｒｏｘｙ、２０２…ＩＤＳ、２０３…Ｍａｉｌサーバ、２０４…ＦＷ、Ｌ−１…Ｐｒｏｘｙログ、Ｌ−２…ＩＤＳログ、Ｌ−３…Ｍａｉｌログ、Ｌ−４…ＦＷログ。
【図１】
2019036865.tif 000003
【図２】
2019036865.tif 000004
【図３】
2019036865.tif 000005
【図４】
2019036865.tif 000006
【図５】
2019036865.tif 000007