(57)【要約】【課題】機器同士がネットワークに接続されたシステムにおいて、不正アクセス等に基づくネットワーク上の不審な通信を早期に検出すること。【解決手段】ネットワーク上を流れるパケットを監視するネットワーク監視装置であって、処理部と、インターフェースとを有し、インターフェースは、ネットワークのパケットをキャプチャするパケットキャプチャ部を有し、処理部は、学習期間及び監視期間において、キャプチャしたパケットから通信に関するパケット特徴量を、複数の監視観点で抽出し、学習期間において、複数の監視観点で抽出したパケット特徴量それぞれに対して定常性の判定をし、有効と判定した監視観点についてのモデルの作成をし、前記学習期間に定常性があるとした監視観点について、監視期間において抽出した前記パケット特徴量と、学習期間に作成した前記モデルとを比較して異常通信有無を判定することにある。【選択図】  図２
2019004419.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを流れるパケットを監視するネットワーク監視装置であって、
処理部と、インターフェースとを有し、
前記インターフェースは、
前記ネットワークのパケットをキャプチャするパケットキャプチャ部を有し、
前記処理部は、
学習期間及び監視期間において、キャプチャしたパケットからパケット特徴量を、複数の監視観点で抽出し、
前記学習期間において、複数の監視観点で抽出した前記パケット特徴量に対して定常性の判定をし、定常性があると判定した前記監視観点についてのモデルの作成をし、
前記学習期間に定常性があるとした前記監視観点について、前記監視期間において抽出した前記パケット特徴量と、前記モデルとを比較して異常通信有無を判定することを特徴とするネットワーク監視装置。
【請求項２】
請求項１記載のネットワーク監視装置において、前記学習期間に抽出したパケット特徴量が、定常性があるかどうかを、パケット長の特徴量、通信継続時間の特徴量、もしくはペイロードのベクトルの特徴量のそれぞれに定常性を判断する閾値を設け、その閾値に基づいて定常性を判定し、定常性がある場合には、前記パケット長の値、通信継続時間の統計量、もしくは前記ペイロードのベクトルをモデルとして記録することを特徴とするネットワーク監視装置。
【請求項３】
請求項２記載のネットワーク監視装置において、パケットの送信元に対応する機器、パケットの送信先に対応する機器、パケットの送信元で使用されるアプリケーション、パケットの送信先で使用されるアプリケーションに基づいてパケットを分類し、分類したパケット各々に対して、定常性があるかどうかを判定し、判定結果をイネーブラとして記録することを特徴とするネットワーク監視装置。
【請求項４】
請求項３記載のネットワーク監視装置において、前記監視期間において、分類後のパケットに対するイネーブラを参照し、定常性がないと判定したパケットについては、パケット特徴量の抽出をスキップすることを特徴とするネットワーク監視装置。
【請求項５】
請求項１または２記載のネットワーク監視装置において、ＩＰアドレスや、ポートの組み合わせを用いてパケットを分類し、監視するパケットが分類したパケットではない場合は異常として通知をし、前記監視期間において抽出した前記パケット特徴量と前記モデルとを比較した結果、前記パケット特徴量が前記モデルから外れた場合は、前記監視期間の前記パケット特徴量を異常として通知することを特徴とするネットワーク監視装置。
【請求項６】
監視対象となる機器間はネットワークを介して接続しており、該ネットワークを流れるパケットを監視するネットワーク監視システムであって、該パケットをキャプチャするインターフェースと、該キャプチャしたパケットに基づいて演算処理をする処理部とを有し、
前記処理部は、
前記キャプチャしたパケットから、パケット特徴量を複数の監視観点で抽出し、
複数の監視観点で抽出した前記パケット特徴量に対して、学習期間において定常性の判定をし、定常性があると判定した監視観点についてモデルを作成し、
前記学習期間に定常性があるとした監視観点について、監視期間において抽出したパケット特徴量と、前記モデルとを比較して異常通信有無を判定することを特徴とするネットワーク監視システム。
【請求項７】
ネットワークを流れるパケットを監視するネットワーク監視装置を用いたネットワーク監視方法であって、
前記ネットワーク監視装置は、前記ネットワークからのパケットをキャプチャし、
学習期間及び監視期間において、キャプチャしたパケットからパケット特徴量を、
複数の監視観点で抽出し、
学習期間において、複数の監視観点で抽出した前記パケット特徴量に対して定常性の判定をし、定常性があると判定した監視観点についてモデルを作成し、
前記学習期間に定常性があるとした監視観点について、監視期間において抽出した前記パケット特徴量と、前記モデルとを比較して異常通信有無を判定することを特徴とするネットワーク監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器同士がネットワークに接続されたシステムにおいて、ネットワーク上を流れるパケットの解析に基づき通信の特徴量を抽出し、その変化を監視する技術に関する。
【背景技術】
【０００２】
従来、特許文献１に示すように、機器の認証に関わるパケットを解析し、１または複数の認証に関わる不審挙動の条件を満たすかどうかを監視するネットワーク監視技術が知られている。本先行技術は、複数の前記不審挙動の条件を監視することで、不正アクセスが発生しているか否かの判定精度を向上させる技術である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−８６８２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来技術では、(1)モデルの監視観点を増やすほどモデルから外れた通信挙動の有無を監視するための処理量が増加することと、(2)どの監視観点がモデルとして適切か、つまりモデル化される通常時の通信と、監視対象となる異常発生時の通信に違いが出るか、がモデル作成時点で不明な場合があるという課題がある。
【０００５】
本発明の目的は、機器同士がネットワークに接続されたシステムにおいて、不正アクセス等に基づくネットワーク上の不審な通信を早期に検出することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明は、好ましい一例として、ネットワークを流れるパケットを監視するネットワーク監視装置であって、処理部と、インターフェースとを有し、インターフェースは、前記ネットワークのパケットをキャプチャするパケットキャプチャ部を有し、前記処理部は、学習期間及び監視期間において、キャプチャしたパケットからパケット特徴量を複数の監視観点で抽出し、前記学習期間において、複数の監視観点で抽出した前記パケット特徴量に対して定常性の判定をし、定常性があると判定した前記監視観点についてのモデルの作成をし、前記学習期間に定常性があるとした前記監視観点について、前記監視期間において抽出した前記パケット特徴量と、前記モデルとを比較して異常通信有無を判定する。
【発明の効果】
【０００７】
本発明によれば、機器同士がネットワークに接続されたシステムにおいて、不正アクセス等に基づくネットワーク上の不審な通信を早期に検出できる。
【図面の簡単な説明】
【０００８】
【図１】一実施例に関わるシステム構成を示す図。
【図２】ネットワーク監視装置を示す図。
【図３】モデル作成時の動作シーケンスを示す図。
【図４】通信監視時の動作シーケンスを示す図。
【図５】パケット分類部の動作フローを示す図。
【図６】分類法蓄積部を示す図。
【図７】パケット分類毎のパケットキューを示す図。
【図８】モデル作成時におけるパケット特徴量抽出部を説明する図。
【図９】通信監視時におけるパケット特徴量抽出部を説明する図。
【図１０】特徴量項目のインデックスを説明する図。
【図１１】特徴量計算結果を示す図。
【図１２】パケット特徴量選択学習部を説明する図。
【図１３】特徴量の定常性有無判定を説明する図。
【図１４】監視観点選択蓄積部を説明する図。
【図１５】モデル蓄積部を説明する図。
【図１６】パケット特徴量検証部を説明する図。
【図１７】異常通知を説明する図。
【図１８】ネットワーク監視装置を説明する図。
【発明を実施するための形態】
【実施例１】
【０００９】
図１は、一実施例であるシステム構成を示す図である。本実施例では、ネットワーク監視装置１０４と、１０４の監視対象となる通信機能を有する機器１０１−１および１０１−２があり、機器１０１−１および機器１０１−２の間でシステム動作に必要な通信が為されている。機器間の通信を媒介するのは、ネットワークスイッチ１０３である。各監視対象の機器１０１及び本実施例によるネットワーク監視装置１０４は、ネットワークスイッチ１０３のインターフェースである入出力ポート１０２−１、１０２−２、１０２−３にそれぞれ通信ケーブルを通して接続されている。
【００１０】
ネットワーク監視装置１０４は、システム内のパケットをパッシブに監視するため、ネットワークスイッチ１０３の入出力ポート１０２−３に対し、入出力ポート１０２−１および入出力ポート１０２−２で送受信されるパケットをミラーリングすることが望ましい。
【００１１】
図２は、一実施例であるネットワーク監視装置１０４を示す図である。このネットワーク監視装置１０４でモデル作成と通信監視を行うため、装置全体としてモデル作成モードと、通信監視モードの２つのモードを有する。
【００１２】
１１１はパケットキャプチャ部である。図１の入出力ポート１０２−３を介してミラーリング出力されたネットワーク上のパケットをキャプチャし、次のブロックが処理するまで一時的にバッファに蓄積するブロックである。１１１でキャプチャしたパケットを基に、モデルの作成や通信監視に活用するため、モデル作成モードと通信監視モードの両モードで動作する。
【００１３】
１１２はパケット分類部である。パケットキャプチャ部１１１に一時的に蓄積されたパケットを、ＩＰアドレスとポート番号の組合せ（Ｓｏｕｒｃｅ  ＩＰアドレス、Ｄｅｓｔｉｎａｔｉｏｎ  ＩＰアドレス、Ｓｏｕｒｃｅ  Ｐｏｒｔ番号、Ｄｅｓｔｉｎａｔｉｏｎ  Ｐｏｒｔ番号）で分類し、分類毎にパケットキューに蓄積する。この分類は、通信する機器（ハードウェア）および機器上で動作するアプリケーション（ソフトウェア）の組合せの分類に相当し、その組合せ毎に通信の特徴が異なると考えられるため、本実施例ではモデル作成や通信監視を、この組合せ単位で実施することを想定する。モデル作成時と通信監視時で、パケット分類法を揃えるため、モデル作成時に適用したパケット分類法を分類法蓄積部１２１に記憶しておき、通信監視時に参照し、モデル作成時と同じ分類法でパケットを分類する。
【００１４】
１１３−１および１１３−２は、それぞれモデル作成時、通信監視時に使用するパケット特徴量抽出部である。特徴量抽出は、パケットの長さや通信継続時間など様々な監視観点に基づき実施される。接続先の機能ブロック（１１４と１１５）を明確に区別するため、パケット特徴量抽出部１１３−１と１１３−２を別の機能ブロックとして記載しているが、パケット分類部１１２がキューに蓄積した結果を入力し、パケット通信の特徴量を計算するという観点で、論理的には同一なものである。ただし、通信監視時は、定常性を有さない監視観点に関しては、特徴量の計算をスキップする。どのパケット分類、およびどの監視観点について特徴量の計算を行う、または計算をスキップするかの判断は、後述する監視観点選択蓄積部１２２に蓄積されたテーブルを参照して行う。
【００１５】
１１４は、モデル作成時に使用するパケット特徴量選択学習部である。パケット特徴量抽出部１１３−１で抽出された様々な監視観点に基づき得られたパケット特徴量を入力とし、各監視観点で定常性を有するかどうかの判断を行い、定常性を有する場合は通信監視時に特徴量計算やモデルとの照合を行い、定常性を有さない場合は通信監視時に特徴量計算やモデルとの照合を行わない、という制御を行うため、監視観点毎に通信監視等を行うか行わないかを示すイネーブラ１４０３を生成し、結果を監視観点選択蓄積部１２２に蓄積する。監視観点選択蓄積部１２２へ蓄積されたイネーブラ１４０３は、通信監視時のパケット特徴量抽出部１１３−２において特徴量の計算を行うかスキップするかどうかの判断、ならびに１１５においてモデルとの照合をスキップするかどうかの判断に使用される。
【００１６】
また、パケット特徴量選択学習部１１４は定常性を有すると判断された監視観点に関するモデルを作成し、モデル蓄積部１２３へ蓄積する。
【００１７】
１１５は、特徴量抽出部１１３−２による特徴量抽出結果とモデル蓄積部１２３に蓄積したモデルとの比較に基づき通信異常の発生有無を判断するパケット特徴量検証部１１５である。通信異常の発生を検出した場合、パケット特徴量検証部１１５は異常が発生したことを通知部１１６へ出力する。ここで、モデルとの比較を行うのは、モデル蓄積部１２３にてイネーブラ１４０３が立っているパケット分類と監視観点の組合せである。
【００１８】
１１６は異常通信検出時に、検出したことをシステム利用者に通知するための通知部であり、画面への標準出力やプリンタへの出力など、システム利用者に通知できれば何でもよい。
【００１９】
図３は、一実施例であるモデル作成時の動作シーケンスである。  
パケットキャプチャ部１１１にパケットが到着する度にパケット分類部１１２が起動される。パケット分類部１１２はキャプチャしたパケットのヘッダを参照しながら、各パケットをＩＰアドレスとポート番号の組合せのいずれかに分類し、分類毎のパケットキューに蓄積する。パケット分類部１１２はモデル作成に使用するパケットのキャプチャ時間を管理しており、キャプチャ開始時間から必要時間経過後にパケットキャプチャを終了し、パケット特徴量抽出部１１３−１を起動する。この段階では、パケット分類毎のキュー各々に対し、１または複数のパケットが格納されている状態である。なお、パケット分類方法を蓄積する分類法蓄積部１２１は、パケットキャプチャ開始前は空であり、未知のＩＰアドレスとポート番号の組合せのパケットが検出されるたびに、当該ＩＰアドレスとポート番号の組合せが追加される形で蓄積される。Ｓ１００１は、以上の通りパケットの分類およびキューへの蓄積、キャプチャ時間の管理、および分類法蓄積部１２１のアップデートを担当する。
【００２０】
パケット特徴量抽出部１１３−１は、パケット分類部１１２によってモデル作成に必要な期間のパケットキャプチャ完了後に起動され、全てのパケット分類および全ての監視観点に関して、パケットキュー内の全パケットに関する特徴量の計算が完了すると、パケット特徴量選択学習部１１４を起動する。Ｓ１００２は、上記の特徴量計算を担当する。
【００２１】
パケット特徴量選択学習部１１４は、パケット特徴量抽出部１１３−１により特徴量計算が完了すると起動され、全てのパケット分類および全ての監視観点に関する特徴量が定常性を有するかどうかの判定を行い、その判定結果をイネーブラ１４０３として監視観点選択蓄積部１２２へ蓄積することと、上記判定結果が定常性ありの場合に、当該パケット分類および監視観点に関する特徴量からモデルを作成し、モデル蓄積部１２３へ蓄積する。Ｓ１００３は、上記の定常性有無判定と、判定結果の蓄積、定常性を有するパケット分類および監視観点に関するモデルの作成および結果の蓄積を担当する。
【００２２】
図４は、一実施例である通信監視時の動作シーケンスである。  
パケットキャプチャ部１１１にパケットが到着する度にパケット分類部１１２が起動され、パケット分類部１１２はキャプチャしたパケットのヘッダを参照しながら、各パケットをＩＰアドレスとポート番号の組合せのいずれかに分類し、分類毎のパケットキューに蓄積する。パケットの分類方法は、分類法蓄積部１２１に蓄積されているモデル作成時の結果を参照する。ここで、モデル作成時と異なり、未知のＩＰアドレスとポート番号の組合せのパケットが検出されると、パケット分類部１１２はモデルとの照合を待たずに異常通信発生と見なし、通知部１１６へ通知を行う。パケット分類部１１２はモデル作成に使用するパケットのキャプチャ時間を管理しており、例えば１秒毎など定期的にパケット特徴量抽出部１１３−２を起動する。
【００２３】
短い時間間隔で定期的に起動することで、パケット解析のリアルタイム性を確保する。Ｓ１０１１は、パケットの分類およびキューへの蓄積、未知のＩＰアドレスとポート番号組合せ検出時の異常通信検知通知の発行、定期的な１１３−２の起動を担当する。
【００２４】
パケット特徴量抽出部１１３−２は、パケット分類部１１２によって定期的に起動され、パケット分類部１１２によって区切られた時間毎のパケット分類結果をパケットキューから取得する。取得した時間区切りごとのパケットを対象に、監視観点選択蓄積部１２２にてイネーブラ１４０３が立っているパケット分類および監視観点の組合せに関する特徴量計算を行い、該当する全ての特徴量計算が完了するとパケット特徴量検証部１１５を起動する。Ｓ１０１２は、特徴量計算がイネーブルされているパケット分類および監視観点の組合せに関する特徴量計算と、計算完了後のパケット特徴量検証部１１５起動を担当する。
【００２５】
パケット特徴量検証部１１５は、特徴量計算およびモデルとの照合がイネーブルされているパケット分類および監視観点の組合せに関して、計算された特徴量と、モデル蓄積部１２３に蓄積されているモデルとの照合を行い、前者がモデルから外れているか否かの判定を行い、モデルから外れていると判断された場合に異常通信発生と見なし、通知部１１６へ通知を行う。Ｓ１０１３は、計算された特徴量と作成されたモデルとの照合、特徴量がモデルから外れているかどうかの判定、外れている場合の異常通信発生通知を担当する。
【００２６】
通知部１１６は、パケット分類部１１２またはパケット特徴量検証部１１５から異常通信発生通知を受けると起動し、システム利用者に対して異常通信発生を知らせる。異常通信発生を知らせる手段として、画面への文字出力や、プリンタへの出力が挙げられる。Ｓ１０１４は、上記の画面への文字出力や、プリンタへの出力など、システム利用者に対する通知を担当する。
【００２７】
図５は、一実施例であるパケット分類部１１２の動作フローを示す図である。  
Ｓ２００１にて電源投入と共にパケット分類部１１２が起動すると、Ｓ２００２にてパケット特徴量抽出部１１３−１または１１３−２を起動する条件を満たしているかどうかを確認する。モデル作成時は全てのパケット分類が完了した後、通信監視時は１秒毎など定期的な起動周期に達しているかどうかを確認する。起動条件を満たしている場合は、Ｓ２００８にてパケット特徴量抽出部１１３−１または１１３−２に対して起動トリガを発行する。どちらを起動するかは、モデル作成モードか通信監視モードかの状態に依存する。
【００２８】
Ｓ２００３は、パケットキャプチャ部１１１からのパケット入力があるかどうかを見ており、パケット入力が無い場合はＳ２００２へ戻り、パケット入力がある場合はＳ２００４へ進む。
【００２９】
Ｓ２００４は、入力されたパケットのヘッダから、パケット分類に必要なＩＰアドレスとポート番号の組合せを抽出する。抽出した組合せが何番目の組合せか、インデックスをサーチするのがＳ２００５である。パケットの分類法は図６のような形式で蓄積され、ＩＰアドレスとポート番号の組合せからインデックスをテーブル引きする。このテーブル、ならびに後述するパケットキューは、Ｓ２００１の起動段階で空の状態で初期化される。
【００３０】
Ｓ２００６では、Ｓ２００５にてインデックスをテーブル引きできたかどうかを判断している。テーブル引きできた場合はＳ２００７に進み、インデックスに対応するパケットキューに入力パケットを格納する。パケットキューは図７のような形でインデックス毎に管理される。テーブル引きできなかった場合、モデル作成時はＳ２００９に進み図６テーブルへのインデックス追加と、併せてパケットキューの追加を行ったあと、Ｓ２００７にて新規作成したインデックスに対応するパケットキューに入力パケットを格納する。通信監視時はＳ２０１０に進み、通知部１１６に対して異常通信検知を通知する。Ｓ２００７やＳ２０１０の処理が終わった後は、Ｓ２００２に戻りパケット特徴量抽出部の起動条件確認処理を行う。
【００３１】
図６は、一実施例である分類法蓄積部１２１を示す図である。２つの装置に関する情報６０２（Ｈｏｓｔ１およびＨｏｓｔ２）および各装置で動作するアプリケーションに関する情報６０３（Ｐｏｒｔ１、Ｐｏｒｔ２、Ｐｒｏｔｏｃｏｌ）のユニークな組合せ毎にパケット分類インデックス６０１を割り当てている。Ｈｏｓｔ１、Ｈｏｓｔ２の実施例としてはＩＰアドレス、Ｐｏｒｔ１、Ｐｏｒｔ２の実施例としては、ＴＣＰやＵＤＰで使用されるポート番号、ＰｒｏｔｏｃｏｌはＩＰヘッダに格納されているプロトコル番号に相当するＴＣＰやＵＤＰなどを記録する。Ｈｏｓｔ１およびＰｏｒｔ１がＳｏｕｒｃｅ側、Ｈｏｓｔ２およびＰｏｒｔ２がＤｅｓｔｉｎａｔｉｏｎ側とする。
【００３２】
図７は、一実施例であるパケット分類毎のパケットキューを示す図である。パケット本体はヘッダとペイロードで構成され、パケット分類部１１２がヘッダからパケット分類、すなわち図６の表作成に必要なＩＰアドレスやポート番号などを抽出する。抽出したＩＰアドレスやポート番号の情報が、図６の表のインデックスの何番目に相当するかをサーチし、当該インデックに相当するパケットキューに対しパケット本体を格納する。モデル作成時に新規のＩＰアドレスやポート番号の組合せが検出されると、当該組合せに対応するインデックスを新規に発行し、パケットキューもインデックス生成に合わせて追加で生成する。
【００３３】
図８は、一実施例であるモデル作成時におけるパケット特徴量抽出部を説明する図である。  
Ｓ２１０１で電源投入と共にパケット特徴量抽出部１１３−１または１１３−２が起動すると、Ｓ２１０２にてパケット分類部１１２における処理Ｓ２００８が発行する起動トリガを待つ。トリガが来るまでＳ２１０２にて無限ループで待ち、トリガが来るとＳ２１０３に進む。
【００３４】
Ｓ２１０３はパケットキュー（すなわちパケット分類）のパケット分類インデックスに関するｆｏｒ文の先頭、Ｓ２１０４は特徴量項目のインデックスに関するｆｏｒ文の先頭である。特徴量項目のインデックスについては、図１０の説明として後述する。それぞれのｆｏｒ文の終端は、Ｓ２１０３−２およびＳ２１０４−２である。
【００３５】
Ｓ２１０５では、パケット分類インデックス、ならびに特徴量項目のインデックスに関し、パケットキューに格納されているパケットを対象に特徴量計算を行う。特徴量計算に関しては、図１０の説明として後述する。
【００３６】
２重のｆｏｒ文が完了すると、Ｓ２１０６にてパケット特徴量選択学習部１１４を起動する。起動完了後は、Ｓ２１０２に戻り、パケット分類部１１２からの起動トリガを再度待つ。
【００３７】
図９は、一実施例である通信監視時におけるパケット特徴量抽出部を説明する図である。ほぼ図８と同じであるが、Ｓ２１０４の後にＳ２１０７の条件分岐が追加されている点と、Ｓ２１０６がＳ２１０８に差し替えられている点が異なる。
【００３８】
Ｓ２１０７では、パケット分類インデックス、ならびに特徴量項目のインデックスに関し、イネーブラ１４０３のチェックを行う。イネーブラ１４０３が立っている場合はＳ２０１５にて特徴量計算を行い、イネーブラ１４０３が立っていない場合は特徴量計算をスキップする。
【００３９】
Ｓ２１０８では、パケット特徴量検証部１１５を起動する。起動完了後は、Ｓ２１０２に戻り、パケット分類部１１２からの起動トリガを再度待つ。通信監視時におけるパケット特徴量抽出部が起動している期間を監視期間とする。
【００４０】
図１０は、一実施例である特徴量項目のインデックスを説明する図である。  
第一列に特徴量項目のインデックス１００１、第二列に特徴量項目の名称１００２、第三列に特徴量のデータフォーマット１００３が記載されている。図９のｆｏｒ文で参照するインデックスは、本図の第一列のインデックスに相当する。
【００４１】
ここで、特徴量の計算方法について説明する。第三列にリスト型、レンジ型、ベクトル型というタイプを定義しているため、そのタイプごとに説明する。IntegerやFloatは、それぞれ特徴量の値が整数か浮動小数点かを表す。
【００４２】
リスト型とは、パケット毎またはパケット群毎に１つの特徴量が抽出され、複数の特徴量が抽出された際に、特徴量の重複排除を行い、ユニークな特徴量がリスト化されるようにモデル化する方法を指す。例えば、パケット長はパケット毎に長さという特徴量を有する。パケットキューに３パケット存在し、それぞれの長さが６０バイト、９０バイト、６０バイトだった場合、６０バイトが重複するため、モデルとしては重複排除した６０バイト、９０バイトの２値で構成されるリストとする。
【００４３】
レンジ型とは、パケット毎またはパケット群毎に１つの特徴量が抽出され、複数の特徴量が抽出された際に、その最大値と最小値を抽出し、それぞれの値に対し任意のスケーリングファクタ（異常検出感度を調整する任意のパラメータ）を作用させたうえで、正常範囲と見なす特徴量の上限値と下限値を求める。その上限値と下限値をモデルとする。
【００４４】
ベクトル型とは、パケット毎に複数の特徴量が抽出される。ペイロードのバイト列の類似性を評価する場合、ペイロードの１バイト目、２バイト目などを要素とするベクトルが特徴量として抽出される。パケット毎にベクトルが生成されるが、モデルとしてはパケットキュー内の全パケットのベクトルに対し、２つの代表ベクトルをモデルとする。
【００４５】
具体的には、例えばシーケンス番号など、パケット毎にインクリメントされるバイト位置が０、パケットキュー内の全パケット間で完全同一な値となるバイト位置が１となるベクトル（すなわち、バイト毎のマスクを行うマスクベクトル）と、当該マスクベクトルと各パケットのベクトルを、要素ごとに掛け算した結果のベクトル、つまり合計２つのベクトルをモデルとする。なお、後者のベクトルは、パケットキュー内のベクトル全てについて計算可能であるが、上記マスクベクトルの定義により、パケット間で値が異なる要素はマスクベクトルで0化されるため、マスクベクトル作用後のベクトルが全パケットにつき完全同一となる。
【００４６】
また、上で述べたパケット毎またはパケット群毎に１つの特徴量が抽出されるという点について、前者の例はパケットの長さである。後者の例は通信継続時間である。通信継続時間は、ＴＣＰパケットのＳＹＮフラグが立ったパケットのタイムスタンプから、同じくＦＩＮフラグ（またはＲＳＴフラグ）が立ったパケットのタイムスタンプの間の時間であり、その区間の間に複数のパケットがやりとりされる。その複数のパケットをパケット群と呼んでいる。
【００４７】
このように、モデルの型としてはリスト型、レンジ型、ベクトル型があり、特徴量抽出の単位としてはパケット毎、パケット群毎がある。
【００４８】
図１１は、一実施例である特徴量計算結果を示す図である。第一列はパケット分類インデックス１１０１、第ニ列は特徴量項目インデックス１１０２、第三列以降は特徴量１１０３−１１０６を示す。
【００４９】
図８および図１０の説明で述べた通り、パケット分類インデックスおよび特徴量項目のインデックス毎（図１０参照）に特徴量を計算する。パケットキューに格納されている全パケットを対象として特徴量計算を行うため、特徴量が複数出る場合がある。
【００５０】
図１１の１段目は、一つ目のパケットキューに関し、パケット長の特徴量を抽出した結果である。パケットキュー内の最初の３パケットは、全てパケット長が３６８バイトであることを示している。実際は４パケット目以降も同様にテーブル化する。
【００５１】
同じく２段目は、一つ目のパケットキューに関し、通信継続時間の特徴量を抽出した結果である。ＳＹＮフラグの立ったパケットからＦＩＮフラグの立ったパケットまでの経過時間がテーブル化されており、同図の例では第１パケット群が１．２秒、第２パケット群が１．１秒、第３パケット群が０．３秒であることを示す。実際は、第４パケット群以降も同様にテーブル化する。
【００５２】
同じく３段目は、一つ目のパケットキューに関し、ペイロードのバイト列を特徴量として抽出した結果である。ここでは例として、ペイロードの先頭４バイトを特徴量のベクトルとして抽出しているが、抽出するバイト位置や長さはコンフィグ可能とする。パケットキュー内の最初の３パケットに関し、一つ目のパケットの先頭４バイトが0x5A, 0xA5, 0x5A, 0xA5、二つ目のパケットは0x5A, 0xA5, 0x5A, 0xA6、三つ目のパケットは0x5A, 0xA5, 0x5A, 0xA7であることを示す。実際は、第４パケット以降も同様にテーブル化する。
【００５３】
同じく４段目は、二つ目のパケットキューに関し、パケット長を特徴量として抽出した結果である。１段目と異なり、パケット毎に長さが異なる例である。
【００５４】
図１２は、一実施例であるパケット特徴量選択学習部を説明する図である。  
Ｓ２２０１で電源投入と共にパケット特徴量選択学習部が起動すると、Ｓ２２０２にてパケット特徴量抽出部１１３−１における処理Ｓ２１０６が発行する起動トリガを待つ。トリガが来るまでＳ２２０２にて無限ループで待ち、トリガが来るとＳ２１０３に進む。
【００５５】
Ｓ２１０３およびＳ２１０４に関わるパケット分類インデックスに関するループ、ならびに特徴量項目インデックスに関するループは、図８と同様である。
【００５６】
Ｓ２２０３では、パケット分類インデックスおよび特徴量項目インデックス毎に、パケット特徴量抽出部１１３−１で抽出した特徴量（図１１参照）が、定常性を有するかどうかの判定を行い、定常性を有する場合はモデルを作成した上でイネーブラ１４０３をＥｎａｂｌｅとし、定常性を有さない場合はイネーブラ１４０３をＤｉｓａｂｌｅとする。イネーブラ１４０３は監視観点選択蓄積部１２２に蓄積され、作成したモデルはモデル蓄積部１２３に蓄積される。二つのｆｏｒ文完結後、Ｓ２２０２に戻りパケット特徴量抽出部１１３−１からの起動トリガを待つ。パケット特徴量選択学習部が起動している期間を学習期間とする。
【００５７】
特徴量が定常性を有するか否かの判定については図１３、監視観点選択蓄積部１２２の実施例は図１４、モデル蓄積部１２３の実施例は図１５にそれぞれ示す。
【００５８】
図１３は、一実施例である特徴量の定常性有無判定を説明する図である。第一列はパケット分類インデックス１３０１、第二列は特徴量項目インデックス１３０２、第三列は定常性評価１３０３を示す。  定常性評価対象となる特徴量は図１１に準ずる。なお、ここでは説明を簡単にするため、図１１に省略せず表示されている３つの特徴量の値を対象に定常性評価を行う例を示すが、実際は全ての特徴量を対象に同様の定常性評価を行う。
【００５９】
表の１段目は、一つ目のパケットキューの、パケット長の特徴量に関する定常性評価の例を示す。図１１によると、３つの特徴量は全て３６８バイトであり、重複排除した結果ユニークなパケット長のリストは３６８バイトのみで構成される。つまり、パケット長のバリエーションが１種類のみであることを示す。本例では、ユニークなパケット長のバリエーションが２種類までの場合を定常性ありと見なし、それを超える場合を定常性なしと見なす。結果、一つ目のパケットキューのパケット長については、定常性ありと判定されている。ここで、２種類という閾値はコンフィグ可能なシステムパラメータであり、図１２のＳ２２０１の段階で初期設定をする。
【００６０】
対して、表の４段目は、二つ目のパケットキューの、パケット長の特徴量に関する定常性評価の例だが、図１１に従うと、重複排除した結果のユニークなパケット長のリストが１６８、１５１４、３９２バイトの３値で構成され、上記のパケット長のバリエーションの閾値条件を満たさないため、定常性なしと判定している。
【００６１】
表の２段目は、一つ目のパケットキューの、通信継続時間の特徴量に関する定常性評価の例である。図１１によると、３つの特徴量は１．１、１．２、０．３［秒］である。通信継続時間は処理時間や伝送速度に依存するため、定常性判定するにあたってリスト型のようなユニーク値のバリエーション数は適さない。ここでは、特徴量の平均値と標準偏差の比を評価指標とし、平均÷標準偏差が10を超える場合は定常性あり、10を超えない場合は定常性なしと判断する。同図の例では、平均と標準偏差の比が１０を超えていないため定常性なしと判断している。ここで、平均対標準偏差の比＝１０という閾値はコンフィグ可能なシステムパラメータであり、図１２のＳ２２０１の段階で初期設定する。
【００６２】
表の３段目は、一つ目のパケットキューの、ペイロードの特徴量に関する定常性評価の例である。図１１によると、３つの特徴量にわたって先頭３バイト分の値は完全一致しており、４バイト目の値のみパケット間で異なっている。ここでは、パケット間で完全一致しているバイト数が３以上の場合に定常性あり、２以下の場合に定常性なしと判断する。この例では３バイトが完全一致しているため、定常性ありと判断している。ここで、完全一致しているバイト数に関する閾値は、はコンフィグ可能なシステムパラメータであり、図１２のＳ２２０１の段階で初期設定する。
【００６３】
以上の結果得られるモデルは、１段目に関してはパケット長リスト＝［３６８］、２段目と４段目は定常性なしのためモデルなし、３段目に関してはペイロードの代表ベクトル［0x5A,0xA5,0x5A,0x00］およびマスクベクトル［1,1,1,0］がモデルとなる。
【００６４】
図１４は、一実施例である監視観点選択蓄積部を説明する図である。第一列はパケット分類インデックス１４０１、第二列は特徴量項目インデックス１４０２、第三列はイネーブラ１４０３を示す。
【００６５】
図１３にて、パケット分類インデックス毎、および特徴量項目インデックス毎の定常性評価を行ったが、その評価結果が定常性あり（Ｓｔａｂｌｅ）と判断されたインデックスの組合せに対してはＥｎａｂｌｅ、定常性なし（Ｕｎｓｔａｂｌｅ）と判断された場合はＤｉｓａｂｌｅと記録される。
【００６６】
図１５は、一実施例であるモデル蓄積部を説明する図である。第一列はパケット分類インデックス１５０１、第二列は特徴量項目インデックス１５０２、第三列はモデル１５０３を示す。
【００６７】
図１３の説明にて、パケット分類インデックス毎、および特徴量項目インデックス毎の定常性評価を行い、定常性があるインデックの組合せに関して生成されるモデルを説明した。定常性がない項目、すなわち図１５の表中の２段目と４段目はモデルなしのためN/A(Not Applicable)としており、定常性がある項目については、１段目がパケット長のユニーク値のリスト、すなわち［３６８］、３段目がペイロードの代表ベクトル［0x5A,0xA5,0x5A,0x00］およびマスクベクトル［1,1,1,0］がモデルとして記録される。
【００６８】
図１６は、一実施例であるパケット特徴量検証部を説明する図である。  
Ｓ２３０１で電源投入と共にパケット特徴量検証部が起動すると、Ｓ２３０２にてパケット特徴量抽出部１１３−２における処理Ｓ２１０８が発行する起動トリガを待つ。トリガが来るまでＳ２３０２にて無限ループで待ち、トリガが来るとＳ２１０３に進む。
【００６９】
Ｓ２１０３およびＳ２１０４に関わるパケット分類インデックスに関するループ、ならびに特徴量項目インデックスに関するループは、図８と同様である。
【００７０】
Ｓ２３０３は、パケット分類インデックスおよび特徴項目インデックスに関するイネーブラ１４０３を監視観点選択蓄積部１２２のテーブル（図１４）からチェックを行う。Ｄｉｓａｂｌｅの場合はＳ２１０４−２までスキップし、次のインデックスの組合せの処理を行う。Ｅｎａｂｌｅの場合は、Ｓ２３０４の処理に進む。
【００７１】
Ｓ２３０４では、パケット特徴量抽出部１１３−２が抽出した特徴量（図１１）と、モデル（図１５）との比較を行う。当該パケット分類インデックスおよび特徴項目インデックスの組合せにおいて、図１１に示すように複数の特徴量が出力されるが、その特徴量それぞれとモデルとの比較を行い、少なくとも１つの特徴量がモデルから外れた場合、異常通信として検出する。
【００７２】
例えば、リスト型のモデルの場合、特徴量の値がモデルのリスト内に存在しない場合、異常通信と見なす。レンジ型のモデルの場合、特徴量の値がモデルの正常値上限および下限の範囲から外れている場合、異常通信と見なす。ベクトル型のモデル（ペイロード）の場合、モデルであるペイロードの代表ベクトル（要素数４の例）を［p1, p2, p3, p4］、同じくマスクベクトルを[m1, m2, m3, m4]、観測された特徴量のベクトルを[o1, o2, o3, o4]とすると、m1×o1=p1, m2×o2=p2, m3×o3=p3, m4×o4=p4のいずれかが満たされない場合、異常通信と見なす。
【００７３】
Ｓ２３０５では、Ｓ２３０４にて異常通信と判断したか否かの条件分岐を行う。異常通信と判断した場合はＳ２３０６の処理に進み、異常通信でないと判断した場合はＳ２３０６の処理をスキップする。
【００７４】
Ｓ２３０６では、図５のＳ２０１０と同様、通知部１１６に対して異常通信検知を通知する。
【００７５】
図１７は、一実施例による異常通知を説明する図である。第一列はエラーインデックス１７０１、第二列は装置情報１７０２、第三列はアプリケーションに関する情報１７０３、第四列は異常検知内容１７０４を示す。
【００７６】
異常通知は、図５のＳ２０１０または図１６のＳ２３０６から発行される。具体的な形式の一例は、図６に基づく異常通知に関するＨｏｓｔ、Ｐｏｒｔ、Ｐｒｏｔｏｃｏｌ情報に加えて、具体的な異常内容を通知する。
【００７７】
図１６のＳ２３０６から異常通知が来る場合、作成したモデルに対し特徴量が外れているため、どの特徴量項目（図１０）についてどのような特徴量が検出されたかの情報を含める。具体例としては、図１７の１段目の通り、通信監視時に検出されたパケット長の特徴量（ここでは４５６バイト）が、モデルから外れたことを通知する内容となる。図４の通信監視シーケンスで説明したように、モデル作成時と異なり、未知のＩＰアドレスとポート番号の組合せのパケットが検出されると、パケット分類部１１２はモデルとの照合を待たずに異常通信発生と見なし、通知部１１６へ通知を行う。二段目は、その例を示す。
【００７８】
図５のＳ２０１０から異常通知が来る場合、作成したモデルにない通信（ＩＰアドレスとポート番号の組合せ）が検出されたため、モデル外の通信が検出されたことを通知する内容となる。
【００７９】
以上の内容は、異常通知に関するデータ構造であり、このデータ構造に基づき適宜表示方法を定めたうえで画面出力やプリンタ出力する。
【００８０】
図１８は、一実施例であるネットワーク監視装置を示す図である。 
２０１は、デバイス間の通信を行うためのバスである。２０２は、プログラムを格納するメモリである。２０２には、パケット分類部１１２、パケット特徴量抽出部１１３、パケット特徴量選択学習部１１４、パケット特徴量検証部１１５が含まれる。２０３は、プログラムを動作させるＣＰＵなどの演算処理デバイスである。２０４は、プログラムが使用するメモリであり、分類法蓄積部１２１、監視観点選択蓄積部１２２、モデル蓄積部１２３、および各プログラムの作業領域として使用される。２０５は、パケットを取込むためのネットワークインターフェースデバイスである。これは、パケットキャプチャ部１１１に相当する。２０６は画面やプリンタなどの出力デバイスで、図１７に基づく異常検知結果が出力される。
【００８１】
本発明の実施例によれば、モデルの監視観点を増やすほど不正アクセス等の判定精度が増加する一方、モデルから外れた通信挙動の有無を監視するための処理量が増加するという課題に対し、モデル作成時点で定常性を有する監視観点のみ選択してモデル作成およびパケットの監視を行う手段を採ることで、判定精度向上に伴う処理量増加を抑えることができる。また、システム内のネットワーク上に流れるパケット群に対してモデル作成時点で監視観点の候補を複数準備し、複数ある監視観点各々に対して上記パケット群が定常性を有するかどうかの判定を行う過程で、どの監視観点がモデルとして適切か不明、という課題を解決する。
【符号の説明】
【００８２】
１０１…通信機能を有する機器
１０２…ネットワークスイッチ１０３の入出力ポート
１０３…ネットワークスイッチ
１０４…ネットワーク監視装置
１１１…パケットキャプチャ部
１１２…パケット分類部
１１３…パケット特徴量抽出部
１１４…パケット特徴量選択学習部
１１５…パケット特徴量検証部
１１６…通知部
１２１…分類法蓄積部
１２２…監視観点選択蓄積部
１２３…モデル蓄積部
２０１…バス
２０２…プログラム格納メモリ
２０３…演算処理デバイス
２０４…プログラムから参照するデータの格納メモリ
２０５…ネットワークインターフェースデバイス
２０６…出力デバイス
【図１】
2019004419.tif 000003
【図２】
2019004419.tif 000004
【図３】
2019004419.tif 000005
【図４】
2019004419.tif 000006
【図５】
2019004419.tif 000007
【図６】
2019004419.tif 000008
【図７】
2019004419.tif 000009
【図８】
2019004419.tif 000010
【図９】
2019004419.tif 000011
【図１０】
2019004419.tif 000012
【図１１】
2019004419.tif 000013
【図１２】
2019004419.tif 000014
【図１３】
2019004419.tif 000015
【図１４】
2019004419.tif 000016
【図１５】
2019004419.tif 000017
【図１６】
2019004419.tif 000018
【図１７】
2019004419.tif 000019
【図１８】
2019004419.tif 000020