(57)【要約】【課題】未知の異常活動を検出することで未知の攻撃に対応することを目的とする。【解決手段】プロセッサとメモリを有し、ネットワークに接続された機器の通信のフローを監視する攻撃検知分析装置は、前記機器で送受信される通信のフローをフローデータとして収集し、前記フローデータのうち所定の時間帯毎に相関関係を有するフローデータをクラスタリングしてフロークラスタとして生成し、前記フロークラスタについて、前記フローデータとフローデータの繋ぎ目である中心ホストにおける相関フローの活動量を複数の時間帯毎に算出した結果を中心ホスト統計とし、前記中心ホスト統計から中心ホストにおける相関フローの活動量が所定の条件を満たす時間帯をグルーピングして複数のグループを生成し、前記複数のグループのうち前記グループに含まれる時間帯の数が少ないグループを攻撃時間帯と推定する。【選択図】図１０
2019009549.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサとメモリを有し、ネットワークに接続された機器の通信のフローを監視する攻撃検知分析装置であって、
前記プロセッサは、前記機器で送受信される通信のフローをフローデータとして収集し、
前記プロセッサは、前記フローデータのうち所定の時間帯毎に相関関係を有するフローデータをクラスタリングしてフロークラスタとして生成し、
前記プロセッサは、前記フロークラスタについて、前記フローデータとフローデータの繋ぎ目である中心ホストにおける相関フローの活動量を複数の時間帯毎に算出した結果を中心ホスト統計とし、
前記プロセッサは、前記中心ホスト統計から中心ホストにおける相関フローの活動量が所定の条件を満たす時間帯をグルーピングして複数のグループを生成し、
前記プロセッサは、前記複数のグループのうち前記グループに含まれる時間帯の数が少ないグループを攻撃時間帯と推定することを特徴とする攻撃検知分析装置。
【請求項２】
請求項１に記載の攻撃検知分析装置であって、
前記プロセッサは、前記複数のグループのうち前記グループに含まれる時間帯の数が少ないグループを攻撃時間帯と推定し、攻撃時間帯以外のグループに含まれる時間帯を正常時間帯と推定し、
前記プロセッサは、正常時間帯に含まれるフロークラスタを、攻撃時間帯のフロークラスタから除外することを特徴とする攻撃検知分析装置。
【請求項３】
請求項１に記載の攻撃検知分析装置であって、
前記フロークラスタの中心ホストにおける相関フローの活動量は、前記クラスタリングする時間帯毎にフロークラスタの中心ホストにおける相関フローの数であることを特徴とする攻撃検知分析装置。
【請求項４】
請求項１に記載の攻撃検知分析装置であって、
前記フロークラスタの中心ホストにおける相関フローの活動量は、前記クラスタリングする時間帯毎にフロークラスタの中心ホストにおける相関フローの出現数ランキングの順位であることを特徴とする攻撃検知分析装置。
【請求項５】
請求項２に記載の攻撃検知分析装置であって、
前記プロセッサは、前記中心ホスト統計から前記中心ホストの通信先のポート番号が短命ポートである個数を前記正常時間帯と前記攻撃時間帯でそれぞれ集計し、前記攻撃時間帯の短命ポートの個数が前記正常時間帯の短命ポートの個数より増加した中心ホストを特定することを特徴とする攻撃検知分析装置。
【請求項６】
プロセッサとメモリを有し、ネットワークに接続された機器の通信のフローを監視する攻撃検知分析装置であって、
前記プロセッサは、前記機器で送受信される通信のフローをフローデータとして収集し、
前記プロセッサは、前記フローデータのうち所定の時間帯毎に相関関係を有するフローデータをクラスタリングしたフロークラスタを外部へ送信し、
前記プロセッサは、前記フロークラスタの各時間帯について、攻撃または攻撃の予兆を含む攻撃時間帯と正常時間帯と、前記フローデータとフローデータの繋ぎ目である中心ホストにおける相関フローの活動量を複数の時間帯毎に算出した結果である中心ホスト統計を受信し、
前記プロセッサは、正常時間帯に含まれるフロークラスタを、攻撃時間帯のフロークラスタから除外することを特徴とする攻撃検知分析装置。
【請求項７】
請求項６に記載の攻撃検知分析装置であって、
前記フロークラスタの中心ホストにおける相関フローの活動量は、前記クラスタリングする時間帯毎にフロークラスタの中心ホストにおける相関フローの数であることを特徴とする攻撃検知分析装置。
【請求項８】
請求項６に記載の攻撃検知分析装置であって、
前記フロークラスタの中心ホストにおける相関フローの活動量は、前記クラスタリングする時間帯毎にフロークラスタの中心ホストにおける相関フローの出現数ランキングの順位であることを特徴とする攻撃検知分析装置。
【請求項９】
請求項６に記載の攻撃検知分析装置であって、
前記プロセッサは、前記中心ホスト統計から前記中心ホストの通信先のポート番号が短命ポートである個数を前記正常時間帯と前記攻撃時間帯でそれぞれ集計し、前記攻撃時間帯の短命ポートの個数が前記正常時間帯の短命ポートの個数より増加した中心ホストを特定することを特徴とする攻撃検知分析装置。
【請求項１０】
プロセッサとメモリを有する計算機が、ネットワークに接続された機器の通信のフローを監視して攻撃を検知する攻撃検知方法であって、
前記計算機が、前記機器で送受信される通信のフローをフローデータとして収集する第１のステップと、
前記計算機が、前記フローデータのうち所定の時間帯毎に相関関係を有するフローデータをクラスタリングしてフロークラスタとして生成する第２のステップと、
前記計算機が、前記フロークラスタについて、前記フローデータとフローデータの繋ぎ目である中心ホストにおける相関フローの活動量を複数の時間帯毎に算出した結果を中心ホスト統計とする第３のステップと、
前記計算機が、前記中心ホスト統計から中心ホストにおける相関フローの活動量が所定の条件を満たす時間帯をグルーピングして複数のグループを生成する第４のステップと、
前記計算機が、前記複数のグループのうち前記グループに含まれる時間帯の数が少ないグループを攻撃時間帯と推定する第５のステップと、
を含むことを特徴とする攻撃検知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不正な通信を検出する計算機システムまたは装置に関する。
【背景技術】
【０００２】
計算機システムでは、外部からの侵入や、内部の端末に送りつけられたマルウェアの活動を検出するためにセキュリティ管理システムを稼働させている。セキュリティ管理システムでは、外部からの侵入やマルウェアなどによる不正な通信を検出することで、計算機システムに対する脅威を検出する。
【０００３】
計算機システム内で、不正な通信を検出する技術として特許文献１、２が知られている。特許文献１は、複数の通信のフローの相関関係より、同一のサービスに関連する通信フローをグループ化して論理グラフを生成しておく。そして、障害等により相関関係がくずれたときに、論理グラフを用いて障害箇所を特定する技術が開示されている。
【０００４】
また、特許文献２には、侵入防止システム（intrusion prevention system）のルールセットを生成し、システムの挙動をルールセットによって監視して、異常の発生や侵入を検出する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開第２０１４／０４７２７９号明細書
【特許文献２】特開２０１４−１７９０７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来例の特許文献１、２では、検出した情報フローについて、既知の正常活動からの相関関係の外れを検出するか、既知の異常活動の相関関係を検出する技術である。このため、既知の正常活動や異常活動の相関関係は検出できるが、攻撃者による未知の異常活動は既知のものと区別をつけられないため、検出できないという問題があった。
【０００７】
そこで本発明は、上記問題点に鑑みてなされたもので、未知の異常活動を検出することで未知の攻撃に対応することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、プロセッサとメモリを有し、ネットワークに接続された機器の通信のフローを監視する攻撃検知分析装置であって、前記プロセッサは、前記機器で送受信される通信のフローをフローデータとして収集し、前記プロセッサは、前記フローデータのうち所定の時間帯毎に相関関係を有するフローデータをクラスタリングしてフロークラスタとして生成し、前記プロセッサは、前記フロークラスタについて、前記フローデータとフローデータの繋ぎ目である中心ホストにおける相関フローの活動量を複数の時間帯毎に算出した結果を中心ホスト統計とし、前記プロセッサは、前記中心ホスト統計から中心ホストにおける相関フローの活動量が所定の条件を満たす時間帯をグルーピングして複数のグループを生成し、前記プロセッサは、前記複数のグループのうち前記グループに含まれる時間帯の数が少ないグループを攻撃時間帯と推定する。
【発明の効果】
【０００９】
本発明によれば、新たなクラスタを、異常または異常の予兆があるクラスタとして検出することで、不正な通信、または不正の疑いのある通信の発生を検出することが可能となって、マルウェアや外部の端末等からの未知の攻撃に対応することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例１を示し、攻撃検知分析装置を含むネットワーク運用管理システムの一例を示すブロック図である。
【図２】本発明の実施例１を示し、異常活動検出技術の概略図である。
【図３】本発明の実施例１を示し、攻撃検知分析装置の機能ブロック図である。
【図４】本発明の実施例１を示し、フローデータ集計部の一例を示すブロック図である。
【図５】本発明の実施例１を示し、フロークラスタ処理部の一例を示すブロック図である。
【図６】本発明の実施例１を示し、パケット集計部で生成するパケット数テーブルの一例を示す図である。
【図７】本発明の実施例１を示し、フロークラスタ中心ホスト統計の一例を示す図である。
【図８】本発明の実施例１を示し、攻撃時間クラスタ処理の一例を示す図である。
【図９】本発明の実施例１を示し、フロークラスタ中心ホストの出現数ランキングの距離に基づいてグルーピングした結果の一例を示す図である。
【図１０】本発明の実施例１を示し、攻撃検知分析装置で行われるリアルタイム処理の一例を示すフローチャートである。
【図１１】本発明の実施例２を示し、攻撃検知分析装置の一例を示す機能ブロック図である。
【図１２】本発明の実施例３を示し、攻撃検知分析装置の一例を示す機能ブロック図である。
【図１３】本発明の実施例３を示し、攻撃検知分析装置で行われる処理の一例を示すフローチャートである。
【図１４】本発明の実施例１を示し、攻撃検知分析装置の構成の一例を示すブロック図である。
【図１５】本発明の実施例１を示し、フロークラスタの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態を、図面を用いて説明する。なお、以下で説明する実施の形態は一例にすぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。さらに、以下に示した実施の形態は単独で適用してもよいし、複数もしくはすべての実施の形態を組み合わせて適用しても構わない。
【実施例１】
【００１２】
図１は、本発明の実施例１を示し、ネットワーク運用管理システムの構成の一例を示すブロック図である。ネットワーク運用管理システムは、複数のホスト（計算機）のフローを組み合わせて相関分析することで、セキュリティ（攻撃）に関係するものだけを検出し、前記の検出結果をもとに攻撃フローだけを隔離して遮断する。
【００１３】
複数のホスト（機器または計算機）１０１〜１０３は、外部ＮＷ１０４を介してＮＷ（ネットワーク）装置（例えばスイッチやルータなど）１０６と接続する。
【００１４】
本発明による攻撃検知分析装置１０７は、ＮＷ装置１０６に接続され、複数のホスト１０１〜１０３の通信のフローを監視し、フローを組み合わせて相関分析することで、セキュリティ（攻撃または攻撃の予兆）に関係するものを検出する。
【００１５】
そして、攻撃検知分析装置１０７は、セキュリティに関係するフローを検出するとＮＷ制御装置１０８に通知する。ＮＷ制御装置１０８は、攻撃検知分析装置１０７によって検出された攻撃（または攻撃の予兆）を示すフローを隔離して遮断する。
【００１６】
なお、ＮＷ制御装置１０８が実施する攻撃フローの隔離および遮断の処理については、周知または公知の技術を適用すれば良いので、本実施例１、２では詳述しない。
【００１７】
ここで、複数のホスト１０１〜１０３のフローを組み合わせて相関分析してセキュリティ（攻撃）に関係するものだけを検出する、本発明の概要について、図２を用いて説明する。
【００１８】
図２は、異常活動検出技術の概略図である。ホスト（図中丸印）から送信されるフローの一例を示しており、図の左側が正常（通常）状態、右側が異常状態である。なお、以下の説明では、図１のホスト１０１〜１０３に対応するホスト全体について符号を省略して説明する。
【００１９】
なお、本実施例では、フロー（または通信フロー）は、２点間（ホスト間）の通信においてある方向へのデータの流れ（または通信量）を示し、換言すれば、ホスト間での送受信の関係を示す。
【００２０】
本発明では、攻撃検知分析装置１０７が、フロー間の相関度を分析し、相関度が閾値以上のフローのペアを相関フローとして検出してグループ（クラスタ）を生成する。ペアが検出された部分は、あるホストがフローを生成した時に、同じように他のホストに対してもフローが生成される事を意味する。つまり、検出されたペアは、ホスト同士のフローを示している事となるので、これら図２の左図のクラスタ１、２のようにクラスタ状態を把握することで、正常状態を学習することとなる。
【００２１】
本実施例１では、２つのホストの間でフローとフロー（相関フロー）の繋ぎ目となるホストを中心ホスト（図中黒丸印）として示す。
【００２２】
次に、図２の右図のように、攻撃検知分析装置１０７は、新たなクラスタ３を検出した場合、ホスト同士のフローが通常（図中正常状態）とは異なるペアが生成されていることになり、異常活動が発生したと判定する。以上より、攻撃検知分析装置１０７は、多量かつ絶えず変動する通信フローの中からクラスタの状態を観測することで、一連の攻撃活動を検出することができる。
【００２３】
しかしながら、上記の異常活動検出技術には下記の課題がある。
【００２４】
１．攻撃活動の検出は可能だが、攻撃ではない相関フロー（ペア）が多数検出され、誤検知が多い可能性がある。
【００２５】
２．ホストの参加または離脱、新しいフローの出現または消滅などによるネットワーク構成や通信パタンの動的な変化による誤検知が多い可能性がある。
【００２６】
３．無関係なフローが、たまたま同じタイミングで通信した場合も攻撃活動として検出してしまい、誤検知する可能性がある。
【００２７】
そこで、本発明は、上記の点を鑑みてなされたものであり、マルウェアや不正な通信の侵入後の攻撃の振る舞いに着目して、攻撃に関係すると予想されるフローを検出し、それ以外のフローを削除して誤検知率を下げることを目的とする。
【００２８】
図３は、本実施例１における攻撃検知分析装置１０７の機能ブロック図を示す。
【００２９】
攻撃検知分析装置１０７は、フローデータ収集部３０１と、フロークラスタ処理部３０２と、攻撃時間判定部３０３と、攻撃フロー特定部３０４と、記憶部３０５を含む計算機である。
【００３０】
フローデータ収集部３０１は、ＮＷ装置１０６からパケットを収集し、分析対象のパケットを選択してフローデータ３１０として記憶部３０５に格納する。フロークラスタ処理部３０２は、後述するように、フローデータ３１０からホスト同士のフローからペアを検出してクラスタを生成し、フロークラスタ３１４に格納する。
【００３１】
攻撃時間判定部３０３は、フロークラスタ３１４から中心ホストを検出し、時間帯毎の中心ホストの相関フローの出現数ランキングに基づいて、攻撃（または攻撃の予兆）を示すクラスタが存在する攻撃時間帯を特定する。
【００３２】
攻撃フロー特定部３０４は、後述するように、特定された攻撃時間帯で活動する攻撃の候補となるクラスタを絞り込み、ＮＷ制御装置１０８に通知する。ＮＷ制御装置１０８は、通知された攻撃の候補のフローを遮断または隔離する。
【００３３】
図１４は、本実施例１における攻撃検知分析装置１０７のハードウェア構成の一例を示すブロック図である。
【００３４】
攻撃検知分析装置１０７は、プロセッサ１０と、メモリ１１と、ストレージ装置１２と、ネットワークインタフェース（図中ＮＷ  Ｉ／Ｆ）１３とを含む。メモリ１１には、ＯＳ２０がロードされてプロセッサ１０によって実行される。
【００３５】
メモリ２０には、フローデータ収集プログラム３１と、フロークラスタ処理プログラム３２と、攻撃時間判定プログラム３３と、攻撃フロー特定プログラム３４がロードされてプロセッサ１０によって実行される。なお、これらのプログラムはＯＳ２０上で稼働する。ストレージ装置１２には、データを格納する領域として図３に示した記憶部３０５が設定される。
【００３６】
図３に示した、フローデータ収集部３０１と、フロークラスタ処理部３０２と、攻撃時間判定部３０３と、攻撃フロー特定部３０４の各機能部はプログラムとしてメモリ１１にロードされる。
【００３７】
プロセッサ１０は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、プロセッサ１０は、フローデータ収集プログラム３１を実行することでフローデータ収集部３０１として機能し、フロークラスタ処理プログラム３２を実行することでフロークラスタ処理部３０２として機能し、攻撃時間判定プログラム３３を実行することで攻撃時間判定部３０３として機能し、攻撃フロー特定プログラム３４を実行することで攻撃フロー特定部３０４として機能する。
【００３８】
さらに、プロセッサ１０は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
【００３９】
攻撃検知分析装置１０７の各機能を実現するプログラムや、テーブル等の情報は、ストレージ装置１２や不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【００４０】
図４は、フローデータ収集部３０１の一例と周辺の構成を示すブロック図である。フローデータ収集部３０１は、データ変換部４０１とデータフィルタ部４０２、を含む。
【００４１】
データ変換部４０１は、ＮＷ装置１０６から受信した情報パケットについて、攻撃検知を分析するために所定のデータ形式（例えば、ＣＳＶ形式など）に変換する。変換されたデータは、データフィルタ部４０２へ送信される。
【００４２】
データフィルタ部４０２は、分析に不要なデータをフィルタリングしてフローデータ３１０を生成する。データフィルタ部４０２は、生成したフローデータ３１０を記憶部３０５へ保存し、このフローデータ３１０をフロークラスタ処理部３０２へ送信する。分析に不要なデータとしては、キープアライブのパケット等の制御信号については攻撃検知のデータから除外する。これにより、演算処理の対象となるデータ量を削減することができる。
【００４３】
図３に戻り、フロークラスタ処理部３０２は、フローデータ収集部３０１から受信したフローデータ３１０についてクラスタ分析を実施してフローデータ３１０間の相関関係を分析（相関フロークラスタ分析）する機能部である。
【００４４】
図５は、フロークラスタ処理部３０２の構成の一例を示すブロック図である。フロークラスタ処理部３０２は、サービス生成部５０１と、パケット集計部５０２と、フロークラスタ生成部５０３、とを含む。
【００４５】
サービス生成部５０１は、フローデータ３１０をクラスタリングした結果をフロークラスタ３１４としてストレージ装置１２の記憶部３０５に格納する。フロークラスタ３１４の構成単位として、予め定義された「サービス」を生成する。本実施例１では、サービスは「送信ＩＰアドレス、送信ポート番号、受信ＩＰアドレス、受信ポート番号、プロトコル」の組みで表現する。
【００４６】
パケット集計部５０２は、サービス生成部５０１で生成したサービスが送信したパケット数を所定の時間帯（例えば、１分）ごとに集計して、パケット数テーブル３１３を生成する。なお、送信パケット数の代わりに送信データ量を用いてもよい。
【００４７】
また、サービス生成部５０１が生成したサービスを所定の時間毎にパケット数で集計する理由は、時間帯によって相関係数（相関関係）が変化するサービスが存在するためである。パケット集計部５０２は、この相関係数の変化に応じて分割する時間と、集計間隔を設定する。
【００４８】
図６は、パケット集計部５０２が生成するパケット数テーブル３１３の一例を示す図である。本実施例１では、パケット集計部５０２がパケット数を集計する時間間隔を１分とする。サービス毎に、１分間隔でパケット数を集計する。
【００４９】
パケット数テーブル３１３は、集計した時間を格納する時間帯３１３０と、サービス生成部５０１で生成されたサービス１〜サービスＮ毎に集計したパケット数を格納するパケット数３１３１−１〜３１３１−Ｎをひとつのエントリに含む。
【００５０】
パケット数テーブル３１３は、行方向で、同一時間における各サービス１〜Ｎの送信パケット数が並ぶテーブルとなっている。なお、サービス１〜Ｎは、ＩＰアドレスと、ホスト及びプロトコル毎に生成される。
【００５１】
図５に戻り、フロークラスタ生成部５０３は、図６に示したようなパケット数テーブル３１３に基づいて、サービス間の相関係数を計算し、計算したサービス間の相関係数が高い２つ以上のサービスを検出する。
【００５２】
例えば、サービス間の相関係数が高いサービスとしてサービス１とサービス２が検出された場合、サービス１が通信を行うとサービス２も連動して通信が行われていることを示している。
【００５３】
つまり、ある単位時間にサービス１からサービス２へ発生した通信と、この通信を受けてサービス２から発生した通信に、相関の関係があるということを意味する。
【００５４】
本発明では、このような関係を纏めることを、フロークラスタの生成と呼ぶ。フロークラスタ生成部５０３は、フロークラスタを生成する際に、２つの繋ぎ目となるサービスの決め方は、以下の優先順位で決定する。この繋ぎ目のサービスを中心ホストと呼ぶ。
（１）ホスト及びポートが重複するもの
（２）ポートは異なるが、ホスト名が重複するもの
（３）上記（２）が複数存在する場合は、ホスト名の辞書順
【００５５】
本実施例１では、上記のような順位でフロークラスタを生成したが、周知または公知の技術を適用して他の順位を用いても構わない。また、本実施例１では、相関係数が所定の閾値（例えば０．８）以上であるものを検出したが、閾値の値はシステムにより異なる。また、ホスト名の辞書は、監視対象のホストについて予め設定された辞書である。
【００５６】
相関関係の計算には、例えば、以下の（１）式で示した、ピアソンの積率相関係数を用いる。
【００５７】
【数１】
2019009549.tif 000003
【００５８】
本実施例１では、相関関係の計算にピアソンの積率相関係数を用いたが、これに限定されるものではなく、周知または公知のクラスタ分析手法等を適宜採用することができる。
【００５９】
図１５は、フロークラスタ３１４のテーブルの一例を示す図である。図示の例では、時間帯（単位時間）毎に相関係数が高いサービスとして検出されたフロークラスタを示している。本実施例１では、相関係数を計算する時間間隔を１時間とし、また、中心ホストと決定したサービスが中心に配置したテーブルの例を示す。
【００６０】
フロークラスタ３１４は、時間帯３１４１と、２つのサービスの繋ぎ目となるサービスを格納する中心ホスト３１４３と、中心ホストにつながるサービスを格納するカラム３１４２、３１４４とを有する。各カラム３１４２、３１４４及び中心ホスト３１４３には、サービスの識別子などを格納すれば良い。
【００６１】
図３に戻り、攻撃時間判定部３０３は、フロークラスタ中心ホスト統計処理３０６と、攻撃時間クラスタ処理３０７から構成され、フロークラスタ処理部３０２から受信したフロークラスタ３１４を用いて攻撃時間帯の特定（推定）を行う処理部である。
【００６２】
フロークラスタ中心ホスト統計処理３０６では、フロークラスタ３１４のフローとフローの繋ぎ目である中心ホストの相関フローの出現数のランキングを時間帯毎に算出し、フロークラスタ中心ホスト統計３１１として、記憶部３０５に保存してから、当該フロークラスタ中心ホスト統計３１１を攻撃時間クラスタ処理３０７へ送信する。
【００６３】
なお、フロークラスタ中心ホスト統計処理３０６は、図２で示したように、２つのホストの繋ぎ目となる中心ホストをフロークラスタ３１４内で特定し、当該中心ホストが処理対象の時間帯毎に出現した回数を算出し、当該出現回数を降順などでソートした結果をフロークラスタ中心ホスト統計３１１として出力する。
【００６４】
本実施例１では、フロークラスタ中心ホスト統計３１１として、中心ホストの相関フローの出現数ランキングを用いたが、中心ホストのフロー数を用いても構わない。中心ホストのフロー数を用いた場合、本実施例１の中心ホストの出現数ランキングより、簡単に実装を行えるという効果がある。
【００６５】
一方、中心ホストのフロー数は、正規分布を仮定して計算処理をする必要があるが、順位の相関を見る本実施例１の中心ホストの相関フローの出現数ランキングでは、正規分布を仮定せずに計算処理が可能という効果がある。
【００６６】
図７に、フロークラスタ中心ホスト統計３１１で生成するフロークラスタ中心ホスト統計３１１の一例を示す。フロークラスタ中心ホスト統計３１１は、中心ホストの識別子を格納する中心ホスト３１１１と、各時間帯（図中Ａ〜Ｃ）における中心ホストの相関フローの出現回数の順位を格納する出現数ランキング３１１Ａ〜３１１Ｃをひとつのエントリに含む。
【００６７】
図７では、３つの時間帯で構成される例を示すが、これに限定されるものではない。統計処理を行う時間帯の数は上記以外であってもよく、時間帯の数だけフィールドが生成される。
【００６８】
出現数ランキング３１１Ａ〜３１１Ｃのフィールド名は、時間帯の通し番号を示す。中心ホスト３１１１は、中心ホストの識別子に限定されるものではなく、ポート番号や、プロトコルの組み合わせを用いても良い。
【００６９】
図３に戻り、攻撃時間クラスタ処理３０７では、フロークラスタ中心ホスト統計処理３０６で生成されたフロークラスタ中心ホスト統計３１１を用いて、中心ホストの出現数ランキング３１１Ａ〜３１１Ｃ（活動量）が類似する時間帯Ａ〜Ｃをグルーピングする。
【００７０】
本実施例１では、３つの時間帯Ａ〜Ｃを用いてリアルタイムで攻撃検知を行う例を示すが、時間帯の数はこれに限定されるものではない。本実施例１では、後述するように、攻撃時間クラスタ処理３０７が、３つの時間帯のうちユークリッド距離が最も近い時間帯を、類似するグループと判定してひとつにグルーピングし、２つのグループに分割する。
【００７１】
また、本実施例１では、活動量として、フロークラスタ内で中心ホストを含む相関フローの出現回数のランキングを用いる例を示すが、相関フローの数を用いればよい。
【００７２】
また、時間帯の類似については、時間帯の関係が所定の条件を満たすものをひとつのグループにグルーピングすればよく、例えば、所定の条件として、各時間帯間のユークリッド距離が最小の時間帯をグルーピングする例を示した。
【００７３】
攻撃時間クラスタ処理３０７は、２つのグループのうち、時間帯の数が少数派となるグループを攻撃時間帯と判定（推定）し、当該特定（推定）した時間帯を攻撃時間帯３１５として、記憶部３０５へ保存してから、当該攻撃時間帯３１５を攻撃フロー特定部３０４へ送信する。本実施例１では、フロークラスタ中心ホスト統計３１１として、中心ホストの相関フローの出現数ランキングを用いたが、中心ホストのフロー数（パケット数）を用いても構わない。
【００７４】
図８は、攻撃時間クラスタ処理３０７の一例を示す図である。図示の例は、図７のフロークラスタ中心ホスト統計３１１を用いた例を示す。攻撃時間クラスタ処理３０７は、まず、３つの各時間帯（Ａ〜Ｃ）の中心ホスト（Ｈ１〜Ｈ３）の出現回数の順位の数値差を計算する。計算式の一例を以下の（２）式に示す。
【００７５】
【数２】
2019009549.tif 000004
【００７６】
上記（２）式では、時間帯Ａと時間帯Ｂにおける中心ホストＨ１の順位の差分が０、時間帯Ａと時間帯Ｂにおける中心ホストＨ２の順位の差分が１、時間帯Ａと時間帯Ｂにおける中心ホストＨ３の順位の差分が１より、ユークリッド距離を算出する例を示す。同様に、時間帯Ｂ、Ｃ、時間帯Ａ、Ｃについても、中心ホストＨ１、Ｈ２、Ｈ３毎に距離を計算する。
【００７７】
上記ユークリッド距離の計算の結果は、図８のグラフ３１１０となる。なお、本実施例１では、距離の計算にユークリッド距離を用いたが、周知または公知の階層的手法（最長距離法、群平均法など）を適宜用いることができる。
【００７８】
上記処理の結果、ユークリッド距離が最小となる時間帯Ａ、Ｂがひとつのグループとされ、時間帯Ｃは時間帯の数が少数派のグループと判定される。
【００７９】
図９に、図７、図８の例であげた、時間帯Ａ、時間帯Ｂ、時間帯Ｃについて、フロークラスタ中心ホストの相関フローの出現数ランキング３１１Ａ〜３１１Ｃの距離に基づいてグルーピングした結果の一例を示す。フロークラスタ中心ホスト統計処理３０６は図８の計算結果を用いて、各時間帯Ａ〜Ｃの間の距離を比較し、時間帯Ａ〜Ｃの距離が最も小さいもの同士をグループ化した結果である。
【００８０】
攻撃時間判定部３０３によるグループ化の処理は、最終的に全ての時間帯が１つになるまで続ける。攻撃時間判定部３０３は、グループ化した結果より、時間帯の数が少数のグループを攻撃時間帯３１５と判定する。
【００８１】
本実施例１では、時間Ａ、Ｂが正常時間帯、時間Ｃが攻撃時間帯として判定される。中心ホストの出現回数が時間帯の数が少数派のグループを攻撃時間帯と判定する理由は、正常なデータの量に対して、攻撃によるデータの量は少ないと考えられるためである。
【００８２】
本実施例１では、フロークラスタ中心ホスト統計３１１として、中心ホストの相関フローの出現数ランキングを用いたが、中心ホストのフロー数（またはパケット数）を用いても構わない。
【００８３】
図３に戻り、攻撃フロー特定部３０４は、正常フロークラスタ除外処理３０８と、中心ホストによるフィルタ処理３０９から構成される。攻撃フロー特定部３０４は、フロークラスタ３１４と攻撃時間帯３１５を用いて正常な（正常時間帯に出現する）フロークラスタ３１４を除外し、攻撃時間帯と推定される時間帯のみに着目して、活発に活動するフロークラスタ３１４の中心ホストを攻撃元のホストの候補として絞り込む。
【００８４】
正常フロークラスタ除外処理３０８では、攻撃時間判定部３０３が各時間帯を攻撃と正常に分離した後、正常な時間帯において出現するフロークラスタ３１４を、攻撃時間帯３１５において出現するフロークラスタ３１４から除外する。
【００８５】
そして、正常フロークラスタ除外処理３０８は、攻撃に関するフロークラスタを絞り込み、攻撃フロークラスタ３１２として、記憶部３０５へ保存する。次に、正常フロークラスタ除外処理３０８は、攻撃フロークラスタ３１２を中心ホストによるフィルタ処理３０９へ送信する。
【００８６】
中心ホストによるフィルタ処理３０９では、攻撃フロークラスタ３１２と、フロークラスタ中心ホスト統計３１１を用いて、攻撃時間帯３１５において中心ホストにおける相関フローの出現数ランキングを計算する。
【００８７】
そして、中心ホストによるフィルタ処理３０９では、出現数ランキングが所定の閾値以上のフロークラスタ３１４を検出し、検出したフロークラスタを攻撃フロークラスタフィルタ３１６として、記憶部３０５へ保存する。
【００８８】
また、中心ホストによるフィルタ処理３０９は、当該攻撃フロークラスタフィルタ３１６を、ＮＷ制御装置１０８へ送信する。なお、本実施例１では、フロークラスタ中心ホスト統計３１１として、中心ホストの相関フローの出現数ランキング（３１１Ａ〜３１１Ｃ）を用いたが、中心ホストのフロー数を用いても構わない。
【００８９】
図１０は、本実施例に係る攻撃検知分析装置１０７で行われるリアルタイム処理の一例を示すフローチャートである。この処理は、攻撃時間判定部３０３と攻撃フロー特定部３０４で行われる。
【００９０】
図１０は、複数のホストのフローを組み合わせて相関分析する相関フロークラスタリングにより検出された結果のうち、セキュリティ（攻撃）の候補を絞る処理について、リアルタイム処理を行う場合の一例を示すフローチャートである。
【００９１】
図１０に示すように、攻撃時間判定部３０３は、フロークラスタ処理部３０２により生成されたフロークラスタ３１４を時間帯毎に受信する（Ｓ１００１）。攻撃時間判定部３０３は、受信したフロークラスタの中心ホストの相関フローのランキングを、図７に示したフロークラスタ中心ホスト統計３１１として生成する（Ｓ１００２）。
【００９２】
攻撃時間判定部３０３は、生成したフロークラスタ中心ホスト統計３１１の相関フローのランキングと各時間帯の相関フローのランキング結果を比較し、受信したフロークラスタ３１４を図８で示したように、ユークリッド距離が最小（一番近い）の時間帯にグルーピングする（Ｓ１００３）。図８の例では、時間帯Ｂ、Ｃを時間帯とし、時間帯Ａを現在処理中の時間帯とし、既出の時間帯Ｂと時間帯Ａをひとつのグループにグルーピングする例を示す。
【００９３】
攻撃時間判定部３０３は、グルーピングした時間帯が攻撃時間帯３１５であるか否かを判定し、攻撃時間帯３１５であればステップＳ１００５へ進み、正常時間帯であればステップＳ１０１０へ進む。
【００９４】
ステップ１００５において、攻撃フロー特定部３０４は、正常時間帯において出現するフロークラスタ３１４を攻撃時間帯３１５のフロークラスタから除外する（Ｓ１００５）。攻撃フロー特定部３０４は、正常時間帯のフロークラスタ３１４が除外されたフロークラスタを、攻撃フロークラスタ３１２として記憶部３０５に格納する。
【００９５】
次に、攻撃フロー特定部３０４は、攻撃フロークラスタ３１２の中で、フロークラスタの中心ホストの相関フローのランキングを生成する（Ｓ１００６）。中心ホストの相関フローのランキングは、前述のように中心ホストの出現回数から生成する。
【００９６】
攻撃フロー特定部３０４は、生成した中心ホストの相関フローのランキングのうち、一定のランキング順位（順位の閾値）までの中心ホストを攻撃候補として絞り込む（Ｓ１００７）。ここで絞り込むランキング順位の数は、検出毎に異なる。
【００９７】
攻撃フロー特定部３０４は、絞り込んだ中心ホスト以外の中心ホストは、攻撃には関係ないと判定して、削除（除外）する（Ｓ１００８）。攻撃フロー特定部３０４は、絞り込んだ中心ホストを攻撃フロークラスタ３１２として、記憶部３０５に保存する（Ｓ１００９）。
【００９８】
攻撃時間判定部３０３は、グルーピングした時間帯Ａが攻撃時間帯３１５と推測していない場合(Ｓ１００４の否定)、正常時間帯であると考えられるため、正常なフロークラスタ３１４として記憶部に保存する（Ｓ１０１０）。
【００９９】
これにより、攻撃検知分析装置１０７は、ＮＷ装置１０６に接続され、複数のホストのフローを組み合わせて相関分析することで、一連の攻撃活動を検出することが可能となる。また、攻撃検知分析装置１０７は、検出された結果をもとに、さらにセキュリティ（攻撃）の候補を絞ることで、誤検知の低減を実現することが可能となる。
【０１００】
以上のように、実施例１の攻撃検知分析装置１０７は、相関フローのクラスタリングでキーとなる中心ホストにおける相関フローの出現数のランキングを時間帯ごとに生成し、出現数のランキングが類似（所定条件を満足）する時間帯をグルーピングし、生成されたグループのうち時間帯の数が少数派の方を攻撃時間帯として推定する。
【０１０１】
これにより、新たなクラスタを、異常または異常の予兆があるクラスタとして検出することで、不正な通信、または不正の疑いのある通信の発生を検出することが可能となって、マルウェアや外部の端末等からの未知の攻撃に対応することが可能となる。
【０１０２】
次に、攻撃検知分析装置１０７は、第二段階として、第一段階で攻撃時間帯と推定した時間帯に着目し、攻撃時間帯で活発に活動する中心ホストを攻撃ホスト候補として絞り込むことで、活動の不審な中心ホストを特定することで前述のような誤検知率を改善することができる。
【０１０３】
なお、上記実施例１では、攻撃検知分析装置１０７がリアルタイムでホスト１０１〜１０３のフローデータ３１０を収集して攻撃の検知を行う例を示したが、これに限定されるものではない。例えば、ストレージ装置１２の記憶部３０５からフローデータ３１０を読み込んで攻撃または攻撃の予兆を検出しても良い。
【０１０４】
なお、上記実施例１では、外部ネットワーク１０４のホスト１０１〜１０３ついて攻撃または攻撃の予兆を検出する例を示したが、ＬＡＮ等のネットワークに接続されたホスト（または機器）に適用することができる。
【０１０５】
なお、上記実施例１の図１０では、ユークリッド距離が最小の時間帯をひとつのグループにグルーピングする例を示したが、既に処理した時間帯を学習データとして、類似する時間帯のグルーピングを行うようにしてもよい。
【実施例２】
【０１０６】
本発明の実施例２に係る攻撃検知分析装置の機能ブロック図を、図１１に示す。本実施例２では、実施例１の攻撃時間判定部３０３の処理を外部の装置が行う例を示す。
【０１０７】
なお、図１１では、前記実施例１の図３と同一の部分については同一の符号を付し、主に異なる部分について説明する。
【０１０８】
図１１の攻撃検知分析装置１０７は、前記実施例１の攻撃時間判定部３０３を攻撃時間判定装置１１０１としたもので、フロークラスタ処理部３０２は、算出したフロークラスタ３１４を攻撃時間判定装置１１０１へ送信する。
【０１０９】
図１１に示すように、攻撃時間判定装置１１０１がフロークラスタ３１４から前記実施例１と同様に、攻撃時間帯３１５（および正常時間帯）と判定した結果およびフロークラスタ中心ホスト統計３１１を、攻撃検知分析装置１０７へ送信し、攻撃時間情報受信部１１０２が攻撃時間帯３１５と正常時間帯およびフロークラスタ中心ホスト統計３１１を受信する。また、攻撃時間情報受信部１１０２が受信した結果は、攻撃検知分析装置１０７の記憶部３０５に攻撃時間帯３１５およびフロークラスタ中心ホスト統計３１１として格納される。
【０１１０】
攻撃フロー特定部３０４は、攻撃時間情報受信部１１０２が受信した攻撃時間帯３１５とフローデータ３１０を用いて正常フロークラスタを除外し、攻撃時間帯と推定される
時間帯のみに着目して、活発に活動するフロークラスタ３１４の中心ホストを攻撃元のホスト候補として絞り込みを行う。
【０１１１】
このように、攻撃時間判定部として機能する攻撃時間判定装置１１０１と攻撃フロー特定部３０４が一連の処理を行わない場合でも、一連の攻撃活動を検出することが可能となる。また、攻撃検知分析装置１０７は、検出された結果をもとに、さらにセキュリティ（攻撃）の候補を絞ることで、誤検知の低減を実現することが可能となる。
【実施例３】
【０１１２】
本発明の実施例３に係る攻撃検知分析装置の機能ブロック図を、図１２に示す。実施例３では、本発明の誤検知低減に加えて、攻撃の検知率も向上させる例を示す。
【０１１３】
なお、図１２では、実施例１と実施例２と同一部分については同一の符号を付し、主に異なる部分について説明する。
【０１１４】
図１２に示すように、実施例３を実現させるために、攻撃フロー特定部３０４にポート番号統計処理１２０１とポート番号によるフィルタ処理１２０２を有し、また、記憶部３０５にポート番号データ１２０３とポート番号フィルタデータ１２０４をさらに記憶する。
【０１１５】
ポート番号統計処理１２０１は、中心ホストによるフィルタ処理３０９と、前記攻撃フロークラスタフィルタ３１６で検出されたホストを対象に、フロークラスタ処理を実施する時間帯毎に、フロークラスタ中心ホスト統計３１１を用いて、中心ホストの通信先のポート番号が短命ポート（Ephemeral port）である個数を正常時間帯と異常時間帯でそれぞれ集計する。なお、短命ポートのポート番号は、ウェルノウンポート以外のポート番号であればよい。
【０１１６】
ポート番号統計処理１２０１は、集計した結果（短命ポートの数）を、ポート番号データ１２０３として記憶部３０５へ格納する。また、ポート番号統計処理１２０１は、集計した結果を、ポート番号によるフィルタ処理１２０２へ送信する。
【０１１７】
ポート番号によるフィルタ処理１２０２は、フロークラスタ処理を実施する時間帯毎のポート番号データ１２０３と攻撃時間帯３１５を用いて、攻撃時間帯３１５の短命ポートの個数が正常時間帯の短命ポートの個数より増加した中心ホストを特定し、攻撃元のホスト候補として絞り込みを行う。
【０１１８】
図１３に、本実施例に係る攻撃検知分析装置１０７について、本発明の誤検知低減法に加えて、攻撃の検知率も向上させる処理の一例を示すフローチャートを示す。なお、図１３では、実施例１の図１０と同一部分については同一の符号を付し、主に異なる部分について説明する。
【０１１９】
ポート番号統計処理１２０１は、絞り込んだホストを対象に、フロークラスタ処理を実施する時間帯毎に中心ホストの通信先のポート番号が短命ポートである個数を、正常時間帯と異常時間帯でそれぞれ集計する(Ｓ１３０１)。
【０１２０】
次に、ポート番号によるフィルタ処理１２０２は、攻撃時間帯３１５のポート数が正常時間帯のポート数より増加したホストを特定し、攻撃候補として絞り込む(Ｓ１３０２)。
【０１２１】
なお、ホストの正常時間帯のポート数は、予め設定した値をポート番号フィルタデータ１２０４に格納するようにしても良い。
【０１２２】
このように、攻撃フロー特定部３０４が攻撃時間帯３１５で正常時間帯とは異なる動きをする中心ホストを短命ポートを利用して検出することで、さらに攻撃ホストの検知率の改善を実現することが可能となる。
【０１２３】
以上のように、本実施例３によれば、攻撃時間帯の中心ホストについて、短命ポートの数が正常時間帯に比して攻撃時間帯で増大する中心ホストを攻撃または攻撃の予兆の候補として特定することで、正常な中心ホストを攻撃候補として誤検出するのを抑制できる。  なお、上記実施例３では、攻撃時間判定装置１１０１を攻撃検知分析装置１０７から独立させた例を示したが、これに限定されるものではなく、前記実施例１と同様に、攻撃検知分析装置１０７が攻撃時間判定部３０３を内包する構成であってもよい。
【０１２４】
＜まとめ＞
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
【０１２５】
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１２６】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１２７】
１０１〜１０３  ホスト
１０４  外部ネットワーク
１０５  データセンター
１０６  ネットワーク装置
１０７  攻撃検知分析装置
１０８  ネットワーク制御装置
３０１  フローデータ収集部
３０２  フロークラスタ処理部
３０３  攻撃時間判定部
３０４  攻撃フロー特定部
３０５  記憶部
３０６  フロークラスタ中心ホスト統計処理
３０７  攻撃時間クラスタ処理
３０８  正常フロークラスタ除外処理
３０９  中心ホストによるフィルタ処理
３１０  フローデータ
３１１  フロークラスタ中心ホスト統計
３１２  攻撃フロークラスタ
３１３  パケット数テーブル
３１４  フロークラスタ
３１５  攻撃時間
３１６  攻撃フロークラスタフィルタ
４０１  データ変換部
４０２  データフィルタ部
５０１  サービス作成部
５０２  パケット集計部
５０３  フロークラスタ生成部
１１０１  攻撃時間判定装置
１１０２  攻撃時間情報受信部
１２０１  ポート番号統計処理
１２０２  ポート番号によるフィルタ処理
１２０３  ポート番号データ
１２０４  ポート番号フィルタデータ
【図１】
2019009549.tif 000005
【図２】
2019009549.tif 000006
【図３】
2019009549.tif 000007
【図４】
2019009549.tif 000008
【図５】
2019009549.tif 000009
【図６】
2019009549.tif 000010
【図７】
2019009549.tif 000011
【図８】
2019009549.tif 000012
【図９】
2019009549.tif 000013
【図１０】
2019009549.tif 000014
【図１１】
2019009549.tif 000015
【図１２】
2019009549.tif 000016
【図１３】
2019009549.tif 000017
【図１４】
2019009549.tif 000018
【図１５】
2019009549.tif 000019