(57)【要約】【課題】未知の異常活動を検出することで未知の攻撃に対応する。【解決手段】プロセッサとメモリを有する管理サーバが、ネットワークに接続された計算機の通信を監視する通信の監視方法であって、前記管理サーバは、前記計算機で送受信される通信の情報を通信情報として収集し、前記通信情報のうち相関関係のある通信情報をクラスタとして生成し、前記生成されたクラスタが、予め登録されたクラスタ情報のクラスタに一致するか否かを判定し、前記生成されたクラスタが前記クラスタ情報のクラスタに一致しない場合には、当該クラスタを異常または異常の疑いのあるクラスタと判定する。【選択図】図１
2017211806.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサとメモリを有する管理サーバが、ネットワークに接続された計算機の通信を監視する通信の監視方法であって、
前記管理サーバは、前記計算機で送受信される通信の情報を通信情報として収集する第１のステップと、
前記管理サーバは、前記通信情報のうち相関関係のある通信情報をクラスタとして生成する第２のステップと、
前記管理サーバは、前記生成されたクラスタが、予め登録されたクラスタ情報のクラスタに一致するか否かを判定する第３のステップと、
前記管理サーバは、前記生成されたクラスタが前記クラスタ情報のクラスタに一致しない場合には、当該クラスタを異常または異常の疑いのあるクラスタと判定する第４のステップと、
を含むことを特徴とする通信の監視方法。
【請求項２】
請求項１に記載の通信の監視方法であって、
前記管理サーバは、前記異常または異常の疑いのあるクラスタが、異常または正常のいずれであるかを判定する第５のステップを、さらに含むことを特徴とする通信の監視方法。
【請求項３】
請求項１に記載の通信の監視方法であって、
前記第４のステップは、
異常または異常の疑いのあるクラスタを出力することを特徴とする通信の監視方法。
【請求項４】
請求項１に記載の通信の監視方法であって、
前記第２のステップは、
前記クラスタ情報に登録されたクラスタに含まれる通信情報を除外して、相関関係のある通信情報をクラスタとして生成することを特徴とする通信の監視方法。
【請求項５】
請求項１に記載の通信の監視方法であって、
前記第４のステップは、
異常または異常の疑いのある通信を行った計算機を特定することを特徴とする通信の監視方法。
【請求項６】
プロセッサとメモリを有する管理サーバが、ネットワークに接続された計算機の通信を監視するセキュリティ管理システムであって、
前記管理サーバは、
前記計算機で送受信される通信の情報を通信情報として収集し、前記通信情報のうち相関関係のある通信情報をクラスタとして生成し、前記生成されたクラスタが予め登録されたクラスタ情報のクラスタに一致するか否かを判定し、前記生成されたクラスタが前記クラスタ情報のクラスタに一致しない場合には、当該クラスタを異常または異常の疑いのあるクラスタと判定することを特徴とするセキュリティ管理システム。
【請求項７】
請求項６に記載のセキュリティ管理システムであって、
前記管理サーバは、前記異常または異常の疑いのあるクラスタが、異常または正常のいずれであるかを判定することを特徴とするセキュリティ管理システム。
【請求項８】
請求項６に記載のセキュリティ管理システムであって、
前記管理サーバは、異常または異常の疑いのあるクラスタを出力することを特徴とするセキュリティ管理システム。
【請求項９】
請求項６に記載のセキュリティ管理システムであって、
前記管理サーバは、前記クラスタ情報に登録されたクラスタに含まれる通信情報を除外して、相関関係のある通信情報をクラスタとして生成することを特徴とするセキュリティ管理システム。
【請求項１０】
請求項６に記載のセキュリティ管理システムであって、
前記管理サーバは、
異常または異常の疑いのある通信を行った計算機を特定することを特徴とするセキュリティ管理システム。
【請求項１１】
プロセッサとメモリを有する管理サーバが、ネットワークに接続された計算機の通信を監視するプログラムであって、
前記計算機で送受信される通信の情報を通信情報として収集する第１のステップと、
前記通信情報のうち相関関係のある通信情報をクラスタとして生成する第２のステップと、
前記生成されたクラスタが、予め登録されたクラスタ情報のクラスタに一致するか否かを判定する第３のステップと、
前記生成されたクラスタが前記クラスタ情報のクラスタに一致しない場合には、当該クラスタを異常または異常の疑いのあるクラスタと判定する第４のステップと、
を前記管理サーバに実行させることを特徴とするプログラム。
【請求項１２】
請求項１１に記載のプログラムであって、
前記異常または異常の疑いのあるクラスタが、異常または正常のいずれであるかを判定する第５のステップを、さらに含むことを特徴とするプログラム。
【請求項１３】
請求項１１に記載のプログラムであって、
前記第４のステップは、
異常または異常の疑いのあるクラスタを出力することを特徴とするプログラム。
【請求項１４】
請求項１１に記載のプログラムであって、
前記第２のステップは、
前記クラスタ情報に登録されたクラスタに含まれる通信情報を除外して、相関関係のある通信情報をクラスタとして生成することを特徴とするプログラム。
【請求項１５】
請求項１１に記載のプログラムであって、
前記第４のステップは、
異常または異常の疑いのある通信を行った計算機を特定することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不正な通信を検出するセキュリティ管理システムに関する。
【背景技術】
【０００２】
計算機システムでは、外部からの侵入や、内部の端末に送りつけられたマルウェアの活動を検出するためにセキュリティ管理システムを稼働させている。セキュリティ管理システムでは、外部からの侵入やマルウェアなどによる不正な通信を検出することで、計算機システムに対する脅威を検出する。
【０００３】
計算機システム内で、不正な通信を検出する技術として特許文献１、２が知られている。特許文献１は、複数の通信のフローの相関関係より、同一のサービスに関連する通信フローをグループ化して論理グラフを生成しておく。そして、障害等により相関関係がくずれたときに、論理グラフを用いて障害箇所を特定する技術が開示されている。
【０００４】
また、特許文献２には、侵入防止システム（intrusion prevention system）のルールセットを生成し、システムの挙動をルールセットによって監視して、異常の発生や侵入を検出する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開第２０１４／０４７２７９号明細書
【特許文献２】特開２０１４−１７９０７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来例の特許文献１、２では、検出した情報フローについて、既知の正常活動からの相関外れを検出するか、既知の異常活動の相関を検出する技術である。このため、既知の正常活動や異常活動の相関関係は検出できるが、攻撃者による未知の異常活動は既知のものと区別をつけられないため、検出できないという問題があった。
【０００７】
そこで本発明は、上記問題点に鑑みてなされたもので、未知の異常活動を検出することで未知の攻撃に対応することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、プロセッサとメモリを有する管理サーバが、ネットワークに接続された計算機の通信を監視する通信の監視方法であって、前記管理サーバは、前記計算機で送受信される通信の情報を通信情報として収集する第１のステップと、前記管理サーバは、前記通信情報のうち相関関係のある通信情報をクラスタとして生成する第２のステップと、前記管理サーバは、前記生成されたクラスタが、予め登録されたクラスタ情報のクラスタに一致するか否かを判定する第３のステップと、前記管理サーバは、前記生成されたクラスタが前記クラスタ情報のクラスタに一致しない場合には、当該クラスタを異常または異常の疑いのあるクラスタと判定する第４のステップと、を含む。
【発明の効果】
【０００９】
したがって、本発明によれば、新たなクラスタを、異常または異常の可能性があるクラスタとして検出することで、不正な通信、または不正の疑いのある通信の発生を検出することが可能となって、マルウェアや外部の端末等からの未知の攻撃に対応することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１の実施例を示し、セキュリティ管理システムの一例を示すブロック図である。
【図２】本発明の第１の実施例を示し、クラスタの登録処理の一例を示すフローチャートである。
【図３】本発明の第１の実施例を示し、クラスタの判定処理の一例を示すフローチャートである。
【図４】本発明の第１の実施例を示し、フロー情報テーブルの一例を示す図である。
【図５】本発明の第１の実施例を示し、クラスタ情報テーブルの一例を示す図である。
【図６】本発明の第１の実施例を示し、フロー相関度計算部で行われる処理の一例を示すフローチャートである。
【図７】本発明の第１の実施例を示し、フロー時系列テーブルの一例を示す図である。
【図８】本発明の第１の実施例を示し、フロー詳細テーブルの一例を示す図である。
【図９】本発明の第１の実施例を示し、警告画面の一例を示す図である。
【図１０】本発明の第２の実施例を示し、クラスタの判定処理の一例を示すフローチャートである。
【図１１】本発明の第３の実施例を示し、監視対象のフローの選択処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態を、図面を用いて説明する。
【００１２】
なお、以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明などの関係にある。
【００１３】
また、以下の実施の形態において、要素の数等（例えば、個数、数値、量、範囲等）に言及する場合、特に明示した場合及び原理的に明らかに特定の数に限定される場合などを除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良いものとする。
【００１４】
さらに、以下の実施の形態において、その構成要素（本実施形態では、物理的な構成要素の他に、要素ステップなども含む）は、特に明示した場合及び原理的に明らかに必須であると考えられる場合などを除き、必ずしも必須のものではない。
【００１５】
さらに、以下に示した実施の形態は単独で適用してもよいし、複数もしくはすべての実施の形態を組み合わせて適用しても構わない。
【００１６】
なお、本実施形態において、システムが使用する情報はデータ構造に依存せず、どのようなデータ構造で表現されてもよい。例えば、テーブル、リスト、データベース又はキュー等から適切に選択したデータ構造体が、情報を格納することができる。従って、本実施形態において使用されるテーブルは、テーブル以外のデータ構造で表現されてもよい。
【実施例１】
【００１７】
図１は、本発明の第１の実施例を示し、計算機間の不正な通信を検出するセキュリティ管理システムの一例を示すブロック図である。セキュリティ管理システムは、通信装置２０とゲートウェイ２１を含んで計算機３０−１〜３０−ｎを相互に接続する内部ネットワーク４０と、内部ネットワーク４０に接続されて計算機３０−１〜３０−ｎの通信を監視するセキュリティ管理サーバ１と、内部ネットワーク４０を構成するゲートウェイ２１を介して接続された外部ネットワーク５０と、外部ネットワーク５０に接続された外部端末６０と、を含む。なお、以下では、計算機３０−１〜３０−ｎの全体については「−」のない符号３０で示す。
【００１８】
通信装置２０は、例えば、ルータやスイッチなどで構成することができ、計算機３０が送受信するパケットの通信情報としてフロー（以下、単にフローとする）を収集する機能を含む。セキュリティ管理サーバ１は、通信装置２０から計算機３０のフローを収集し、フロー間の相関関係から後述するように異常な通信を検出する。
【００１９】
セキュリティ管理サーバ１は、プロセッサ１１と、メモリ１２と、ストレージ装置１３と、通信Ｉ／Ｆ１４と、入出力装置１５とを含む計算機である。入出力装置１５は、マウスやキーボードやディスプレイを含む。通信Ｉ／Ｆ１４は内部ネットワーク４０に接続されて通信を行う。
【００２０】
メモリ１２にはプログラムがロードされてプロセッサ１１によって実行される。本実施例１では、メモリ１２に制御処理部２００とフローデータ収集部２２０がプログラムとしてロードされている。制御処理部２００は、フロー相関度計算部２０１と、クラスタ生成部２０２と、クラスタ判定部２０３と、管理画面表示部２０４と、を含む。
【００２１】
ストレージ装置１３には、各プログラムが利用するデータが格納され、図示の例では、クラスタ情報テーブル５００と、フローデータ格納部２３０が格納されている。フローデータ格納部２３０は、フロー情報テーブル４００と、フロー時系列テーブル７００と、フロー詳細情報テーブル８００と、フロー３００を含む。
【００２２】
プロセッサ１１は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、プロセッサ１１は、制御処理プログラムに従って処理することで制御処理部２００として機能する。他のプログラムについても同様である。さらに、プロセッサ１１は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
【００２３】
制御処理部２００の各機能を実現するプログラム、テーブル等の情報は、ストレージ装置１３や不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【００２４】
＜処理の概要＞
次に、制御処理部２００とフローデータ収集部２２０で行われる処理の概要について説明する。まず、フローデータ収集部２２０は、内部ネットワーク４０の通信装置２０から計算機３０のフローを収集してフロー３００に格納し、収集したフロー時系列テーブルからフロー時系列テーブル７００とフロー詳細情報テーブル８００を生成する。
【００２５】
このフローの収集は、計算機システム（内部ネットワーク４０及び計算機３０）が正常の状態で行われる。すなわち、計算機システムの管理者などがセキュリティソフトウェアなどを利用して、計算機３０等がマルウェアに感染していないことを検証してからフローの収集が行われる。
【００２６】
次に、制御処理部２００のフロー相関度計算部２０１は、収集されたフローの相関度を演算し、相関関係の高い一対のフローを抽出する。この処理は、前記特許文献１に開示された自己回帰移動平均モデルを適用することができ、多数のフローから相関する要素を抽出し、相関関係の高いペアのフローを抽出する。
【００２７】
次に、制御処理部２００のクラスタ生成部２０２は、抽出されたフローについて、ピアソンの積率相関係数を用いてクラスタリングを行い、相関するフローのクラスタを生成し、これを正常（正常活動）なクラスタとしてクラスタ情報テーブル５００に登録しておく。
【００２８】
相関するフローをクラスタとして生成する技術としては、例えば、「Know Your Achilles' Heel: Automatic Detection of Network Critical Services.」（Ali Zand, Amir Houmansadr, Giovanni Vigna, Richard Kemmerer, and Christopher Kruegel. In Proceedings of the 31st Annual Computer Security Applications Conference (ACSAC 2015). ACM, New York, NY, USA, 51-50.）を適用することができる。
【００２９】
次に、制御処理部２００のクラスタ判定部２０３は、稼働状態の計算機３０から所定の周期（例えば、１分間）でフローを収集し、上記と同様に、相関関係の高いペアのフローを抽出し、相関するフローのクラスタを生成する。そして、クラスタ判定部２０３は、既に生成したクラスタ情報テーブル５００の正常なクラスタと、生成したクラスタを比較して、生成したクラスタが正常なクラスタに一致しなければ、異常なクラスタと判定する。
【００３０】
そして、制御処理部２００の管理画面表示部２０４は、異常と判定されたクラスタの情報を入出力装置１５へ出力し、異常なクラスタに含まれるフローに、不正な通信が含まれる可能性があることを通知する。
【００３１】
＜テーブルの詳細＞
以下、セキュリティ管理サーバ１で使用する情報について説明する。まず、図７は、フローデータ収集部２２０が生成するフロー時系列テーブル７００の一例を示す図である。
【００３２】
フロー時系列テーブル７００は、フローの識別子を格納するフローＩＤ７０１と、フローを収集した時刻に相当する値を格納する時刻７０２と、フローの大きさを格納するバイト数７０３と、フローに含まれるパケットの数を格納するパケット数７０４とをひとつのエントリに含む。
【００３３】
フローデータ収集部２２０は、通信装置２０からフローを取得すると、フローの情報をフロー時系列テーブル７００に格納する。なお、フローＩＤ７０１は、フローデータ収集部２２０が設定する値で、送信元アドレスと宛先アドレスと送信元ポート、宛先ポート及びプロトコル等の所定の要素が同一であれば同一のフローＩＤ７０１が付与される。なお、本実施例１では、フローを識別する要素として、送信元アドレスと宛先アドレスと送信元ポート、宛先ポート及びプロトコルを用いる例を示すが、これに限定されるものではない。
【００３４】
図８は、フローデータ収集部２２０が生成するフロー詳細情報テーブル８００の一例を示す図である。
【００３５】
フロー詳細情報テーブル８００は、フローの識別子を格納するフローＩＤ８０１と、フローを収集した時刻に相当する値を格納する時刻８０２と、フローの大きさを格納するバイト数８０３と、フローに含まれるパケットの数を格納するパケット数８０４と、フローに含まれるメッセージを格納するメッセージ８０５をひとつのエントリに含む。
【００３６】
フローデータ収集部２２０は、通信装置２０からフローを取得すると、フローの情報をフロー詳細情報テーブル８００に格納する。
【００３７】
図４は、フロー情報テーブル４００の一例を示す図である。フロー情報テーブル４００は、収集されたフロー３００からフローデータ収集部２２０が生成する。
【００３８】
フロー情報テーブル４００は、フローの識別子を格納するフローＩＤ４０１と、フローに含まれるパケットの送信元のアドレスを格納する送信元ＩＰアドレス４０２と、パケットの宛先のアドレスを格納する送信先ＩＰアドレス４０３と、パケットの送信元のポート番号を格納する送信元ポート番号４０４と、パケットの宛先のポート番号を格納する送信先ポート番号４０５と、フローのプロトコル番号を格納するプロトコル番号４０６と、フローの格納位置を示すフローデータＩＤ４０７と、をひとつのエントリに含む。
【００３９】
フローデータＩＤ４０７は、ストレージ装置１３のフローデータ格納部２３０のフロー３００に格納されたフローの実体にアクセスするためのポインタで構成することができる。
【００４０】
図５は、クラスタ情報テーブル５００の一例を示す図である。クラスタ情報テーブル５００は、フロー情報テーブル４００の情報に基づいてクラスタ生成部２０２が生成するテーブルである。
【００４１】
クラスタ情報テーブル５００は、クラスタの識別子を格納するクラスタＩＤ５０１と、クラスタに含まれる１以上のフローの識別子を格納するフローＩＤ５０２と、フローの相関度を格納する相関度５０３と、クラスタの状態の判定結果を格納する判定５０４とをひとつのエントリに含む。
【００４２】
クラスタＩＤ５０１は、クラスタ生成部２０２が設定するユニークな値である。判定５０４には、正常または異常のいずれかが格納される。
【００４３】
＜処理の詳細＞
以下、セキュリティ管理サーバ１で行われる処理について説明する。まず、図２は、フローデータ収集部２２０が収集したフロー３００から、制御処理部２００が正常なクラスタを生成する処理の一例を示すフローチャートである。この処理は、計算機システムが正常であると確認された後に、正常なクラスタをクラスタ情報テーブル５００へ登録する処理である。
【００４４】
まず、フロー相関度計算部２０１は、通信装置２０から収集されたフロー３００の中から、一対のフローを抽出して、前述の特許文献１と同様に、一対のフローの相関度を算出する（Ｓ２０１）。
【００４５】
フロー相関度計算部２０１が、全てのフローについて相関度を算出した後に、クラスタ生成部２０２は、算出されたフローの相関度から相関関係の高いフローを前述のようにピアソンの積率相関係数を用いてクラスタリングを行い、相関するフローのクラスタを生成する（Ｓ２０２）。なお、クラスタの生成は、一対のフローの相関度が所定の閾値以上で、フローの要素が相関するペアをグループ化してクラスタを生成する。そして、クラスタ生成部２０２は、生成したクラスタを正常なクラスタとしてクラスタ情報テーブル５００に登録する（Ｓ２０３）。
【００４６】
上記処理により、内部ネットワーク４０に正常なフローのみが送受信される正常な状態で、フローの相関関係に応じて正常なクラスタが生成されて、クラスタ情報テーブル５００に登録される。換言すれば、クラスタ情報テーブル５００には、正常活動の学習結果が正常なクラスタとして登録される。
【００４７】
図６は、フロー相関度計算部２０１で行われる処理の一例を示すフローチャートである。この処理は、図２のステップＳ２０１で実行される。以下の説明では、一対のフローとして、フローＡとフローＢを選択した例を示す。
【００４８】
フロー相関度計算部２０１は、フローデータ格納部２３０のフロー時系列テーブル７００からフローＡのデータを時系列に取得する（Ｓ６０１）。次に、フロー相関度計算部２０１は、フローＡの時系列データについて、バイト数７０３やパケット数７０４の平均値を計算する（Ｓ６０２）。この平均値は、所定の周期内の平均値を示す。
【００４９】
フロー相関度計算部２０１は、フローデータ格納部２３０のフロー時系列テーブル７００からフローＢのデータを時系列に取得する（Ｓ６０３）。次に、フロー相関度計算部２０１は、フローＢの時系列データについて、バイト数７０３やパケット数７０４の平均値を計算する（Ｓ６０４）。
【００５０】
フロー相関度計算部２０１は、フローＡとフローＢの時系列データと、算出された平均値から前記特許文献１と同様に相関度を算出する。上記処理によって、フローＡのフローＢに対する相関度を算出することができる。
【００５１】
次に、図３は、制御処理部２００がフローの監視を行う処理の一例を示すフローチャートである。この処理は、所定の周期で実行され、例えば、１分間隔で実行される。この所定の周期の間にフローデータ収集部２２０が、通信装置２０から収集したフロー３００について、制御処理部２００が下記の処理を行うことでフローの監視を実現する。
【００５２】
制御処理部２００は、収集されたフロー３００について、前記図２のステップＳ２００、Ｓ２０１と同様に、一対のフローを抽出してフローの相関度を算出する（Ｓ３０１）。次に、制御処理部２００は、前記図２のステップＳ２０２と同様に、相関するフローのクラスタを生成する（Ｓ３０２）。
【００５３】
次に、クラスタ判定部２０３は、生成されたクラスタを一つ選択し、クラスタ情報テーブル５００に登録されている正常なクラスタと一致するか否かを判定する（Ｓ３０３）。クラスタ判定部２０３は、生成されたクラスタが正常なクラスタに一致していれば、ステップＳ３０４へ進んで、当該クラスタを正常なクラスタと判定する。
【００５４】
一方、クラスタ判定部２０３は、生成されたクラスタが正常なクラスタに一致していない場合には、ステップＳ３０５へ進んで、当該クラスタを異常なクラスタと判定してクラスタ情報テーブル５００に登録する。なお、クラスタ判定部２０３は、異常なクラスタを検出すると、管理画面表示部２０４へ異常なクラスタを検出したことを通知する。管理画面表示部２０４は、クラスタ判定部２０３から通知を受け付けると、入出力装置１５に異常なクラスタが発生したことを通知する。
【００５５】
クラスタ判定部２０３は、ステップＳ３０２で生成された全てのクラスタについて、上記処理を繰り返し、全てのクラスタについて正常であるか否かの判定を実施する（Ｓ３０６）。
【００５６】
以上の処理を所定の周期で繰り返すことで、計算機３０がマルウェアなどに感染した場合、計算機システムの正常活動時（学習時）には存在しなかったフローが発生し、新たなクラスタが生成されるので、クラスタ判定部２０３は新たなクラスタを異常または異常の可能性を含むクラスタとして検出することができる。
【００５７】
また、クラスタ判定部２０３で異常なクラスタが検出されると、管理画面表示部２０４は、入出力装置１５のディスプレイに警告を表示することができる。図９は、警告画面２０５の一例を示す図である。警告画面２０５では、クラスタＩＤ＝００３の枠を明滅させて異常なクラスタであることを表示する。一方、図中、クラスタＩＤ＝００１、００２は正常なクラスタである。
【００５８】
図９の警告画面２０５によって、計算機３０を含む計算機システム内で異常または異常の疑いのある通信が発生したことを入出力装置１５へ通知することで、計算機システムの管理者に脅威の発生または疑いを警告することができる。
【００５９】
管理画面表示部２０４は、警告画面２０５の各フローの始点または終点となる計算機３０のアドレス情報を表示するようにしてもよい。警告画面２０５に、計算機３０のアドレス情報を出力することで、異常または異常の疑いのある通信を行っている計算機３０を特定することができる。
【００６０】
このように、新たなクラスタを、異常または異常の可能性があるクラスタとして検出することで、不正な通信、または不正の疑いのある通信の発生を検出することが可能となって、マルウェアや外部端末６０からの未知の攻撃に対応することが可能となるのである。
【００６１】
なお、上記実施例１では、計算機３０及び通信装置２０が送受信するパケットの情報（通信情報）としてフローを用いる例を示したが、これに限定されるものではない。セキュリティ管理サーバ１が収集する通信情報としては、送信元の情報と、宛先の情報と、通信の種類を示す情報を含んで、通信情報間の相関度を計算可能な情報であればよい。通信の種類を示す情報としては、ポート番号やプロトコル番号の少なくともひとつを用いることができる。
【００６２】
また、本実施例１では、ＯＳＩ参照モデルのＩＰ層の通信情報を用いる例を示したが、これに限定されるものではなく、アプリケーション層やデータリンク層の通信情報を用いるようにしてもよい。
【００６３】
また、上記実施例１では、セキュリティ管理サーバ１が通信装置２０からフローを収集する例を示したが、セキュリティ管理サーバ１が通信装置２０の機能を通信部として有してもよい。
【００６４】
また、上記実施例１では、相関度の高い（閾値以上）のフローのペアをクラスタとしたが、これに限定されるものではなく、相関関係のある通信情報の集合であればよい。
【００６５】
また、上記実施例１では、フロー情報テーブル５００に異常のあるクラスタも登録する例を示したが、これに限定されるものではなく、クラスタ情報テーブル５００には正常なクラスタのみを格納しておき、生成したクラスタと比較するようにしてもよい。
【実施例２】
【００６６】
図１０は、本発明の第２の実施例を示し、クラスタの判定処理の一例を示すフローチャートである。本実施例２は、前記実施例１の図３にステップＳ３０７を追加したもので、その他の構成は、前記実施例１と同様である。
【００６７】
図１０において、ステップＳ３０１〜Ｓ３０３は、前記実施例１と同様であり、クラスタ判定部２０３が、生成されたクラスタがクラスタ情報テーブル５００に登録されている正常なクラスタと一致するか否かを判定し、生成されたクラスタが正常なクラスタに一致していれば、ステップＳ３０４へ進んで、当該クラスタを正常なクラスタと判定する。
【００６８】
一方、クラスタ判定部２０３は、生成されたクラスタが正常なクラスタに一致していない場合には、ステップＳ３０７へ進んで、当該クラスタが異常なクラスタであるか否かの判定を行う。
【００６９】
この判定は、入出力装置１５のディスプレイに当該クラスタが正常または異常のどちらであるかを選択する画面を出力し、管理者などの判定を受け付けることができる。管理者が、異常と判定した場合には、ステップＳ３０５へ進んで、前記実施例１と同様に当該クラスタを異常のクラスタとしてクラスタ情報テーブル５００に登録する。正常と判定された場合にはステップＳ３０４へ進む。
【００７０】
なお、ステップＳ３０７の判定は、入出力装置１５からの指令を受け付けるだけではなく、クラスタ判定部２０３が、過去に判定した結果をストレージ装置１３に蓄積しておき、当該過去の判定結果に基づいて新たなクラスタが正常であるか否かを判定するようにしてもよい。
【００７１】
以上の処理により、新たに生成されたクラスタが正常または異常のどちらであるかを判定することにより、計算機３０の追加や変更または削除などのメンテナンス等の影響を排除して、未知の攻撃を検出する精度を向上させることが可能となる。
【実施例３】
【００７２】
図１１は、本発明の第３の実施例を示し、監視対象のフローを選択する処理の一例を示すフローチャートである。前記実施例１では、フローデータ収集部２２０が通信装置２０から収集したフロー３００について、所定の周期内の全てのフローについて相関度を算出する例を示した。本実施例３では、セキュリティ管理サーバ１の演算負荷を低減するために、フロー相関度計算部２０１が、監視対象のフローを絞り込んでからフローの相関度を計算する例を示す。
【００７３】
図１１の処理は、フローの相関度を計算する図２のステップＳ２０１及び図３のステップＳ３０１の直前に実行される。図示の例では、フローデータ収集部２２０が収集したフロー３００からフローＺを選択した例を示す。
【００７４】
まず、フロー相関度計算部２０１は、通信装置２０から収集された時系列テーブル７００の中からフローＺのデータを取得する（Ｓ９０１）。次に、フロー相関度計算部２０１は、フローＺのフローＩＤをキーにしてクラスタ情報テーブル５００を検索し、フローＺを含むクラスタＹを抽出する。
【００７５】
次に、フロー相関度計算部２０１は、クラスタ情報テーブル５００の判定５０４を参照して当該クラスタＹが正常であるか否かを判定する（Ｓ９０３）。正常であればステップＳ９０４へ進み、フロー相関度計算部２０１は、当該クラスタＹに含まれるフローＩＤ５０２を相関度計算の対象から除外する（Ｓ９０４）。そして、ステップＳ９０１へ戻って上記処理を繰り返す。
【００７６】
一方、ステップＳ９０３の判定で、クラスタＹが異常の場合、あるいは、クラスタＹが存在しない場合にはステップＳ９０５へ進んで、フロー時系列テーブル７００で処理対象の全てのフローについて処理が完了していなければステップＳ９０１へ戻って上記処理を繰り返す。処理対象の全てのフローについて処理が完了していれば、フロー相関度計算部２０１は、相関度計算の対象となったフローについて相関度の計算を実行する。
【００７７】
以上の処理によって、フロー相関度計算部２０１は、正常なクラスタに含まれるフローを相関度計算から除外することで、セキュリティ管理サーバ１の演算負荷を低減し、処理速度を向上させることが可能となる。
【００７８】
＜まとめ＞
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
【００７９】
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【００８０】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００８１】
１  セキュリティ管理サーバ
２０  通信装置
３０−１〜３０−ｎ  計算機
４０  内部ネットワーク
２００  制御処理部
２０１  フロー相関度計算部
２０２  クラスタ生成部
２０３  クラスタ判定部
２０４  管理画面表示部
２２０  フローデータ収集部
３００  フロー
５００  クラスタ情報テーブル
７００  フロー時系列テーブル
【図１】
2017211806.tif 000003
【図２】
2017211806.tif 000004
【図３】
2017211806.tif 000005
【図４】
2017211806.tif 000006
【図５】
2017211806.tif 000007
【図６】
2017211806.tif 000008
【図７】
2017211806.tif 000009
【図８】
2017211806.tif 000010
【図９】
2017211806.tif 000011
【図１０】
2017211806.tif 000012
【図１１】
2017211806.tif 000013