(57)【要約】【課題】従来に比べて少ない量の通信データを用いて、通信種を特定可能なパターンを作成することを課題とする。【解決手段】情報処理装置に、対象の通信種に係る通信フローの組みについて、通信フロー間の最長共通部分をパターン候補として特定するパターン候補特定部と、他の通信種に係る複数の通信フローの夫々について、他の通信種に係る通信フローとパターン候補との最長共通部分がパターン候補中に占める第一の割合が共通度基準を満たすか否かを判定し、共通度基準を満たすと判定された通信フローの数が当該判定に用いられた通信フローの数に対して占める第二の割合がパターン決定基準を満たす場合に、判定に用いられたパターン候補を、対象の通信種を認識するためのパターンとして決定するパターン決定部と、を備えた。【選択図】図３
2020182095.tif 000002
【特許請求の範囲】
【請求項１】
所定の通信種を認識するためのパターンを作成するために用いる通信フローとして、該所定の通信種に係る複数の通信フロー、及び該所定の通信種とは異なる他の通信種に係る複数の通信フローを取得するパターン作成用通信フロー取得手段と、
前記所定の通信種に係る複数の通信フローに含まれる通信フローの組みについて、通信フロー間の最長の共通部分を、パターン候補として特定するパターン候補特定手段と、
前記他の通信種に係る複数の通信フローの夫々について、該他の通信種に係る通信フローと前記パターン候補との最長の共通部分が該パターン候補中に占める第一の割合が所定の共通度基準を満たすか否かを判定し、前記所定の共通度基準を満たすと判定された通信フローの数が該判定に用いられた通信フローの数に対して占める第二の割合が所定のパターン決定基準を満たす場合に、判定に用いられた前記パターン候補を、前記所定の通信種を認識するためのパターンとして決定するパターン決定手段と、
を備える情報処理装置。
【請求項２】
前記パターン候補特定手段は、前記所定の通信種に係る複数の通信フローに含まれる通信フローの組み毎に、前記パターン候補を特定し、
前記パターン決定手段は、前記通信フローの組み毎に得られた前記パターン候補の夫々について、該パターン決定手段による決定処理を実行することで、前記所定の通信種を認識するための複数のパターンを得る、
請求項１に記載の情報処理装置。
【請求項３】
前記パターン決定手段は、前記第一の割合が、前記パターン候補が前記他の通信種に係る通信フローと十分に近似するとみなすために必要な共通部分の比率以上である場合に、前記所定の共通度基準を満たすと判定する、
請求項１又は２に記載の情報処理装置。
【請求項４】
前記パターン決定手段は、前記第二の割合が、他の通信種に係る通信フローのうちパターン候補と十分に近似するとみなされる通信フローの比率の下限値以下である場合に、前記所定のパターン決定基準を満たすと判定する、
請求項１から３の何れか一項に記載の情報処理装置。
【請求項５】
通信種を特定したい特定対象通信フローを取得する特定対象通信フロー取得手段と、
前記パターン決定手段によって決定された、複数の通信種に係る複数のパターンの夫々と、前記特定対象通信フローとの組み毎に、該パターンと該特定対象通信フローとの最長の共通部分を特定し、該最長共通部分の長さが所定の候補選定基準を満たす場合に、該最長共通部分が得られたパターンに係る通信種を通信種候補とする通信種候補取得手段と、
前記通信種候補取得手段によって複数の通信種候補が得られた場合、該通信種候補毎に、前記最長共通部分の長さに基づく一致度を求め、前記通信種候補毎に得られた複数の前記一致度のうち最も大きな値を第一の一致度、２番目に大きな値を第二の一致度とし、第一の一致度と第二の一致度との比較結果が所定の突出度基準を満たす場合に、前記第一の一致度に係る通信種候補を、前記特定対象通信フローの通信種と推定する、通信種推定手段と、
を更に備える、請求項２から４の何れか一項に記載の情報処理装置。
【請求項６】
通信種を特定したい特定対象通信フローを取得する特定対象通信フロー取得手段と、
複数の通信種に係る、通信種を認識するための複数のパターンの夫々と、前記特定対象通信フローとの組み毎に、該パターンと該特定対象通信フローとの最長の共通部分を特定し、該最長共通部分の長さが所定の候補選定基準を満たす場合に、該最長共通部分が得られたパターンに係る通信種を通信種候補とする通信種候補取得手段と、
前記通信種候補取得手段によって複数の通信種候補が得られた場合、該通信種候補毎に、前記最長共通部分の長さに基づく一致度を求め、前記複数の通信種候補の夫々について得られた前記一致度のうち最も大きな値を第一の一致度、２番目に大きな値を第二の一致度とし、第一の一致度と第二の一致度との比較結果が所定の突出度基準を満たす場合に、前記第一の一致度に係る通信種候補を、前記特定対象通信フローの通信種と推定する、通信種推定手段と、
を備える情報処理装置。
【請求項７】
前記通信種推定手段は、前記通信種候補取得手段によって得られた前記通信種候補毎に、前記最長共通部分の長さの最大値を求め、該最大値を該通信種候補に係る一致度とする、
請求項５又は６に記載の情報処理装置。
【請求項８】
前記通信種候補取得手段は、前記パターンと該特定対象通信フローとの最長共通部分の長さが、通信種を特定するために必要な長さの下限値以上である場合に、前記所定の候補選定基準を満たすと判定する、
請求項５から７の何れか一項に記載の情報処理装置。
【請求項９】
前記通信種推定手段は、前記第一の一致度の、前記第二の一致度に対する比が閾値以上である場合に、前記所定の突出度基準を満たすと判定する、
請求項５から８の何れか一項に記載の情報処理装置。
【請求項１０】
前記通信種推定手段は、前記第一の一致度と前記第二の一致度との比較結果が所定の突出度基準を満たさない場合、前記特定対象通信フローの通信種を不明と決定する、
請求項５から９の何れか一項に記載の情報処理装置。
【請求項１１】
前記通信種推定手段は、前記通信種候補取得手段によって１の通信種候補が得られた場合、当該通信種候補を、前記特定対象通信フローの通信種と推定する、
請求項５から１０の何れか一項に記載の情報処理装置。
【請求項１２】
前記通信種推定手段は、前記通信種候補取得手段によって通信種候補が得られなかった場合、前記特定対象通信フローの通信種を不明と決定する、
請求項５から１１の何れか一項に記載の情報処理装置。
【請求項１３】
コンピューターが、
所定の通信種を認識するためのパターンを作成するために用いる通信フローとして、該所定の通信種に係る複数の通信フロー、及び該所定の通信種とは異なる他の通信種に係る複数の通信フローを取得するパターン作成用通信フロー取得ステップと、
前記所定の通信種に係る複数の通信フローに含まれる通信フローの組みについて、通信フロー間の最長の共通部分を、パターン候補として特定するパターン候補特定ステップと、
前記他の通信種に係る複数の通信フローの夫々について、該他の通信種に係る通信フローと前記パターン候補との最長の共通部分が該パターン候補中に占める第一の割合が所定の共通度基準を満たすか否かを判定し、前記所定の共通度基準を満たすと判定された通信フローの数が該判定に用いられた通信フローの数に対して占める第二の割合が所定のパターン決定基準を満たす場合に、判定に用いられた前記パターン候補を、前記所定の通信種を認識するためのパターンとして決定するパターン決定ステップと、
を実行する方法。
【請求項１４】
コンピューターが、
通信種を特定したい特定対象通信フローを取得する特定対象通信フロー取得ステップと、
複数の通信種に係る、通信種を認識するための複数のパターンの夫々と、前記特定対象通信フローとの組み毎に、該パターンと該特定対象通信フローとの最長の共通部分を特定し、該最長共通部分の長さが所定の候補選定基準を満たす場合に、該最長共通部分が得られたパターンに係る通信種を通信種候補とする通信種候補取得ステップと、
前記通信種候補取得ステップで複数の通信種候補が得られた場合、該通信種候補毎に、前記最長共通部分の長さに基づく一致度を求め、前記通信種候補毎に得られた複数の前記一致度のうち最も大きな値を第一の一致度、２番目に大きな値を第二の一致度とし、第一の一致度と第二の一致度との比較結果が所定の突出度基準を満たす場合に、前記第一の一致度に係る通信種候補を、前記特定対象通信フローの通信種と推定する、通信種推定ステップと、
を実行する方法。
【請求項１５】
コンピューターを、
所定の通信種を認識するためのパターンを作成するために用いる通信フローとして、該所定の通信種に係る複数の通信フロー、及び該所定の通信種とは異なる他の通信種に係る複数の通信フローを取得するパターン作成用通信フロー取得手段と、
前記所定の通信種に係る複数の通信フローに含まれる通信フローの組みについて、通信フロー間の最長の共通部分を、パターン候補として特定するパターン候補特定手段と、
前記他の通信種に係る複数の通信フローの夫々について、該他の通信種に係る通信フローと前記パターン候補との最長の共通部分が該パターン候補中に占める第一の割合が所定の共通度基準を満たすか否かを判定し、前記所定の共通度基準を満たすと判定された通信フローの数が該判定に用いられた通信フローの数に対して占める第二の割合が所定のパターン決定基準を満たす場合に、判定に用いられた前記パターン候補を、前記所定の通信種を認識するためのパターンとして決定するパターン決定手段と、
として機能させるためのプログラム。
【請求項１６】
コンピューターを、
通信種を特定したい特定対象通信フローを取得する特定対象通信フロー取得手段と、
複数の通信種に係る、通信種を認識するための複数のパターンの夫々と、前記特定対象通信フローとの組み毎に、該パターンと該特定対象通信フローとの最長の共通部分を特定し、該最長共通部分の長さが所定の候補選定基準を満たす場合に、該最長共通部分が得られたパターンに係る通信種を通信種候補とする通信種候補取得手段と、
前記通信種候補取得手段によって複数の通信種候補が得られた場合、該通信種候補毎に、前記最長共通部分の長さに基づく一致度を求め、前記通信種候補毎に得られた複数の前記一致度のうち最も大きな値を第一の一致度、２番目に大きな値を第二の一致度とし、第一の一致度と第二の一致度との比較結果が所定の突出度基準を満たす場合に、前記第一の一致度に係る通信種候補を、前記特定対象通信フローの通信種と推定する、通信種推定手段と、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、通信の種類を特定するための技術に関する。
【背景技術】
【０００２】
従来、単純なキーワードマッチングによって通信種を特定する技術として、データパケットのペイロードを検査キーと照合すると共に、優先度に応じて出力する技術が提案されている（特許文献１を参照）。
【０００３】
また、統計的分布を利用して通信種を特定するために、正常データのｎグラム分布を用いてペイロード異常を検出する技術や（特許文献２を参照）、機械学習を用いて通信種を特定するために、判定に用いる教師データの種類数を増やし、複数の特徴情報を用いて、精度よく特徴の種別を判定する技術が提案されている（特許文献３を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２３６２６８号公報
【特許文献２】特開２０１１−４００６４号公報
【特許文献３】特開２０１３−１２７５０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来、キーワードマッチングによって通信種を特定するためには、通信種を一意に特定可能なパターンを作成する必要があり、このようなパターンの作成には、通信内容解析スキルを有する人による作業が必要であった。また、人による作業量を軽減するための技術も各種提案されているが、従来提案されている技術を用いて通信種を一意に特定可能なパターンを作成するには、大量の通信データが必要であった。
【０００６】
本開示は、上記した問題に鑑み、従来に比べて少ない量の通信データを用いて、通信種を特定可能なパターンを作成することを課題とする。
【課題を解決するための手段】
【０００７】
本開示の一例は、所定の通信種を認識するためのパターンを作成するために用いる通信フローとして、該所定の通信種に係る複数の通信フロー、及び該所定の通信種とは異なる他の通信種に係る複数の通信フローを取得するパターン作成用通信フロー取得手段と、前記所定の通信種に係る複数の通信フローに含まれる通信フローの組みについて、通信フロー間の最長の共通部分を、パターン候補として特定するパターン候補特定手段と、前記他の通信種に係る複数の通信フローの夫々について、該他の通信種に係る通信フローと前記パターン候補との最長の共通部分が該パターン候補中に占める第一の割合が所定の共通度基準を満たすか否かを判定し、前記所定の共通度基準を満たすと判定された通信フローの数が該判定に用いられた通信フローの数に対して占める第二の割合が所定のパターン決定基準を満たす場合に、判定に用いられた前記パターン候補を、前記所定の通信種を認識するためのパターンとして決定するパターン決定手段と、を備える情報処理装置である。
【０００８】
本開示は、情報処理装置、システム、コンピューターによって実行される方法またはコンピューターに実行させるプログラムとして把握することが可能である。また、本開示は、そのようなプログラムをコンピューターその他の装置、機械等が読み取り可能な記録媒体に記録したものとしても把握できる。ここで、コンピューター等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的または化学的作用によって蓄積し、コンピューター等から読み取ることができる記録媒体をいう。
【発明の効果】
【０００９】
本開示によれば、従来に比べて少ない量の通信データを用いて、通信種を特定可能なパターンを作成することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係るシステムの構成を示す概略図である。
【図２】実施形態に係るネットワーク監視装置、管理サーバー及びパターン作成装置のハードウェア構成を示す図である。
【図３】実施形態に係る管理サーバー及びパターン作成装置の機能構成の概略を示す図である。
【図４】実施形態においてパターン蓄積部に蓄積されたパターンの内容を示す図である。
【図５】実施形態に係るパターン作成処理の流れの概要を示すフローチャートである。
【図６】実施形態に係るパターン候補選出処理の流れの概要を示すフローチャートである。
【図７】実施形態において比較されるペイロードの例を示す図である。
【図８】実施形態に係るパターン決定処理の流れの概要を示すフローチャートである。
【図９】実施形態に係る通信種推定処理の流れの概要を示すフローチャートである。
【図１０】実施形態に係る通信種候補選出処理の流れの概要を示すフローチャートである。
【図１１】実施形態に係る通信種決定処理の流れの概要を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本開示に係る情報処理装置、方法及びプログラムの実施の形態を、図面に基づいて説明する。但し、以下に説明する実施の形態は、実施形態を例示するものであって、本開示に係る情報処理装置、方法及びプログラムを以下に説明する具体的構成に限定するものではない。実施にあたっては、実施の態様に応じた具体的構成が適宜採用され、また、種々の改良や変形が行われてよい。
【００１２】
本実施形態では、本開示に係る情報処理装置、方法及びプログラムを、ネットワークの監視及び管理を行うためのシステムにおいて実施した場合の実施の形態について説明する。但し、本開示に係る情報処理装置、方法及びプログラムは、通信の種類を特定するために広く用いることが可能であり、本開示の適用対象は、本実施形態において示した例に限定されない。
【００１３】
＜システムの構成＞
図１は、本実施形態に係るシステム１の構成を示す概略図である。本実施形態に係るシステム１は、複数の情報処理端末９０（以下、「ノード９０」と称する）が接続されるネットワークセグメント２と、ノード９０に係る通信を監視するためのネットワーク監視装置２０（通信監視装置）と、ルータ１０を介してネットワークセグメント２と通信可能に接続された管理サーバー（通信判定装置）５０と、パターン作成装置７０と、を備える。
【００１４】
本実施形態において、ネットワーク監視装置２０は、スイッチまたはルータ（図１に示した例では、ルータ）のモニタリングポート（ミラーポート）に接続されることで、ノード９０によって送受信されるパケットやフレーム等の通信データを取得し、取得した通信データを管理サーバー５０に送信する。この場合、ネットワーク監視装置２０は、取得したパケットを転送しないパッシブモードで動作してもよい。
【００１５】
管理サーバー５０は、ネットワーク監視装置２０から情報を収集し、ネットワーク監視装置２０を管理する。なお、外部ネットワークには、更に検疫サーバーが設けられ、ネットワークセグメント２に接続されたノード９０に対して検疫サービスを提供してもよいし、業務サーバーが設けられ、ノード９０に対して業務のためのサービスを提供してもよい（図示は省略する）。
【００１６】
本実施形態に係るシステム１では、ノード９０から接続される各種サーバーは、インターネットや広域ネットワークを介して遠隔地において接続されたものであり、例えばＡＳＰ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）によって提供されるが、これらのサーバーは、必ずしも遠隔地に接続されたものである必要はない。例えば、これらのサーバーは、ノード９０やネットワーク監視装置２０が存在するローカルネットワーク上に接続されていてもよい。
【００１７】
図２は、本実施形態に係るネットワーク監視装置２０、管理サーバー５０及びパターン作成装置７０のハードウェア構成を示す図である。なお、図２においては、ネットワーク監視装置２０、管理サーバー５０及びパターン作成装置７０以外の構成（ルータ１０、ノード９０等）については、図示を省略している。ネットワーク監視装置２０、管理サーバー５０及びパターン作成装置７０は、それぞれ、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１ａ、１１ｂ、１１ｃ、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２ａ、１２ｂ、１２ｃ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３ａ、１３ｂ、１３ｃ、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の記憶装置１４ａ、１４ｂ、１４ｃ、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）１５ａ、１５ｂ、１５ｃ等の通信ユニット、等を備えるコンピューターである。
【００１８】
図３は、本実施形態に係る管理サーバー５０及びパターン作成装置７０の機能構成の概略を示す図である。なお、本実施形態では、本開示に係る情報処理装置が管理サーバー５０及びパターン作成装置７０として実施される例について説明するが、本開示に係る情報処理装置が備える下記の各機能の一部又は全部は、ネットワーク監視装置２０に備えられていてもよい。下記の各機能の一部又は全部がネットワーク監視装置２０に備えられる場合には、ネットワーク監視装置２０は、記憶装置１４ａに記録されているプログラムが、ＲＡＭ１３ａに読み出され、ＣＰＵ１１ａによって実行されて、下記の各機能の一部又は全部を備える情報処理装置として機能する。
【００１９】
パターン作成装置７０は、記憶装置１４ｃに記録されているプログラムが、ＲＡＭ１３ｃに読み出され、ＣＰＵ１１ｃによって実行されて、パターン作成装置７０に備えられた各ハードウェアが制御されることで、パターン作成用通信フロー取得部７１、パターン候補特定部７２及びパターン決定部７３を備える情報処理装置として機能する。なお、本実施形態及び後述する他の実施形態では、パターン作成装置７０の備える各機能は、汎用プロセッサであるＣＰＵ１１ｃによって実行されるが、これらの機能の一部または全部は、１または複数の専用プロセッサによって実行されてもよい。
【００２０】
同一の通信種（例えば、アプリケーション種別、マルウェア種別、正常通信種別又は異常通信種別等）に係る通信では、使用されるプロトコルやプロトコルの使われ方が同じであるため、同一の通信種に係る通信データ群には、複数の通信フローの間に共通する通信内容（共通部分）が存在する。そして、この共通部分は、「他通信種と区別できる共通部分」と「他通信種と区別できない共通部分」に分けることができる。そこで、本実施形態に係るパターン作成装置７０は、共通部分を一旦パターン候補として選出し、パターン候補の中に存在する「他通信種と区別できる共通部分」を見つけ出し、通信種を特定するために使用するパターン（バイト列または文字列）として決定する。
【００２１】
パターン作成用通信フロー取得部７１は、所定の通信種を認識するためのパターンを作成するために用いる通信フローとして、当該所定の通信種に係る複数の通信フロー、及び当該所定の通信種とは異なる他の通信種に係る複数の通信フローを取得する。なお、ここで、通信フローとは、同一のセッションに属する通信の流れ、又は当該セッションに属する通信の内容を指す。
【００２２】
パターン候補特定部７２は、所定の通信種に係る複数の通信フローに含まれる通信フローの組み毎に、通信フロー間の最長の共通部分をパターン候補として特定することで、１の通信種について複数のパターン候補を得る。
【００２３】
パターン決定部７３は、通信フローの組み毎に得られたパターン候補の夫々について、当該パターン決定部７３による決定処理を実行することで、所定の通信種を認識するための複数のパターンを得る。具体的には、はじめに、パターン決定部７３は、他の通信種に係る複数の通信フローの夫々について、当該他の通信種に係る通信フローとパターン候補との最長の共通部分が当該パターン候補中に占める割合（第一の割合）が所定の共通度基準α（例えば、０．５）以上であるか否かを判定する。そして、パターン決定部７３は、当該判定に用いられた通信フローの数に対して、共通度基準αを満たすと判定された通信フローの数が占める割合（第二の割合）が所定のパターン決定基準β（例えば、０．２）以下である場合に、判定に用いられたパターン候補を、所定の通信種を認識するためのパターンとして決定する。
【００２４】
ここで、共通度基準αは、パターン候補が他の通信種に係る通信フローと十分に近似するとみなすために必要な共通部分の比率である。また、パターン決定基準βは、他の通信種に係る通信フローのうちパターン候補と十分に近似するとみなされる通信フローの比率の下限値である。
【００２５】
また、パターン決定部７３は、決定されたパターン毎に、当該パターンを用いて通信種を特定する際に特定対象通信フローと当該パターンとの間の最長共通部分（共通する部分バイト列／文字列のうち最長のもの）の長さが満たすべき下限値（以下、「候補選定基準γ」）を決定してもよい。例えば、パターン決定部７３は、決定されたパターンと他の通信種の通信フローとの間の最長共通部分の長さの最大値を２倍した値を、候補選定基準γとして採用することができる。但し、候補選定基準γには固定値やその他の値が採用されてもよいし、候補選定基準γの算出方法についても、本実施形態での例示に限定されない。
【００２６】
管理サーバー５０は、記憶装置１４ｂに記録されているプログラムが、ＲＡＭ１３ｂに読み出され、ＣＰＵ１１ｂによって実行されて、管理サーバー５０に備えられた各ハードウェアが制御されることで、パターン蓄積部５１、特定対象通信フロー取得部５２、通信種候補取得部５３及び通信種推定部５４を備える情報処理装置として機能する。なお、本実施形態及び後述する他の実施形態では、管理サーバー５０の備える各機能は、汎用プロセッサであるＣＰＵ１１ｂによって実行されるが、これらの機能の一部または全部は、１または複数の専用プロセッサによって実行されてもよい。
【００２７】
本実施形態において、パターン作成装置７０によって作成されたパターンには、「同一通信種であっても一部の通信データには存在しない部分」（例えば、ユーザー名等の、通信種の特定には役に立たない部分等がこれに相当する）が含まれる可能性があるため、通信種を特定したい通信フローとパターンとを比較したとき、ある通信種に係るパターンの一部が、通信種を特定したい通信フローに含まれない場合がある。そこで、本実施形態に係る管理サーバー（通信判定装置）５０では、通信種を特定したい通信フローに各パターンがどの程度含まれるかを求めることで通信種候補を選出し、選出された通信種候補から、通信フローの通信種を決定する。
【００２８】
パターン蓄積部５１は、通信種を特定するためのパターンを蓄積する。パターン蓄積部５１によって蓄積されるパターンは、パターン作成装置７０によって作成されたものであってもよいし、その他の方法で入手されたものであってもよい。また、本実施形態では、通信種を特定するためのパターンは、管理サーバー５０のパターン蓄積部５１に蓄積されることとしているが、通信種を特定するためのパターンは、その他の場所（例えば、パターン蓄積装置として独立した装置や、パターン作成装置７０、ネットワーク監視装置２０等）に蓄積されてもよい。
【００２９】
図４は、本実施形態においてパターン蓄積部５１に蓄積されたパターンの内容を示す図である。パターン蓄積部５１には、パターン毎に、パターンＩＤ、通信種、プロトコル（省略されてもよい）、閾値（候補選定基準γ）及びパターンが関連づけて蓄積される。
【００３０】
特定対象通信フロー取得部５２は、通信種を特定したい通信フロー（特定対象通信フロー）を取得する。本実施形態に係るシステムでは、特定対象通信フロー取得部５２は、ネットワーク監視装置２０によって取得されて管理サーバー（通信判定装置）５０に送信された、ネットワークセグメント２上の通信フローを取得し、これを特定対象通信フローとする。但し、通信種を特定したい特定対象通信フローの取得方法は、本実施形態における例示に限定されない。
【００３１】
通信種候補取得部５３は、複数の通信種に係る複数のパターン（例えば、パターン決定部７３によって決定されたパターン）の夫々と、特定対象通信フローとの組み毎に、当該パターンと当該特定対象通信フローとの最長の共通部分を特定し、当該最長共通部分の長さが所定の候補選定基準γ以上である場合に、当該最長共通部分が得られたパターンに係る通信種を通信種候補とする。
【００３２】
通信種推定部５４は、通信種候補取得部５３によって１の通信種候補が得られた場合、当当該通信種候補を、特定対象通信フローの通信種と推定する。また、通信種推定部５４は、通信種候補取得部５３によって通信種候補が得られなかった場合、特定対象通信フローの通信種を不明と決定する。
【００３３】
通信種推定部５４は、通信種候補取得部５３によって複数の通信種候補が得られた場合、得られた通信種候補毎に、最長共通部分の長さに基づく一致度を求める。本実施形態では、通信種推定部５４は、通信種候補毎に、最長共通部分の長さの最大値を求め、当該最大値を当該通信種候補に係る一致度とする。そして、通信種推定部５４は、複数の通信種候補の夫々について得られた一致度のうち最も大きな値を第一の一致度、２番目に大きな値を第二の一致度とし、第一の一致度と第二の一致度との比較の結果、「第一の一致度／第二の一致度＞＝所定の突出度基準δ」である場合に、第一の一致度に係る通信種候補を、特定対象通信フローの通信種と推定する。一方、通信種推定部５４は、第一の一致度と第二の一致度との比が突出度基準δ（例えば、２．０）を満たさない場合、特定対象通信フローの通信種を不明と決定する。
【００３４】
ここで、突出度基準δは、第一の一致度の、第二の一致度に対する比の閾値（下限値）であり、第一の一致度が突出した値かどうかの線引きに寄与する。即ち、本実施形態では、第一の一致度が第二の一致度に比べて突出した値である場合に、第一の一致度に係る通信種候補が対象通信フローの通信種である可能性が高いと判断する。
【００３５】
＜処理の流れ＞
次に、本実施形態に係る管理サーバー５０及びパターン作成装置７０によって実行される処理の流れを説明する。なお、以下に説明する処理の具体的な内容および処理順序は、本開示を実施するための一例である。具体的な処理内容および処理順序は、本開示の実施の形態に応じて適宜選択されてよい。
【００３６】
図５は、本実施形態に係るパターン作成処理の流れの概要を示すフローチャートである。本フローチャートに示された処理は、複数の通信種に係る通信種特定済みの通信データ群が入力されて、ユーザーによってパターン作成指示が与えられたことを契機として開始される。
【００３７】
ここで、通信データ群は、複数の通信データの集合であり、各通信データは、特定済みの何れかの通信種を示す識別情報に関連づけられている。また、通信データは、ネットワークキャプチャソフトウェア等を用いて採取された一連のネットワーク通信の内容であり、同一の通信種に係る１以上の通信フローを含む（無関係な通信はあらかじめ通信データから除去済みとする）。ここで、通信データの中には、通信種固有の通信内容や、通信が行われた環境に依存する通信内容などが混在しており、１個の通信データの中のフローでは、環境に依存する通信内容が共通している可能性がある。
【００３８】
パターン作成用通信フロー取得部７１は、与えられた通信データ群に係る複数の通信種の中から、パターンを作成したい通信種を決定し、入力された通信データ群から、処理に必要な複数の通信フローを取得する（ステップＳ１０１）。パターン作成対象の通信種が決定されると、パターン候補特定部７２は、パターン作成対象の通信種について、パターン候補選出処理を実行する（ステップＳ１０２）。パターン候補選出処理の詳細については、図６を参照して後述する。パターン候補選出処理によって対象の通信種についてのパターン候補が選出されると、パターン決定部７３は、パターン決定処理を実行することで、選出されたパターン候補から、対象の通信種についてのパターンを決定する（ステップＳ１０３）。パターン決定処理の詳細については、図８を参照して後述する。
【００３９】
そして、パターン作成用通信フロー取得部７１、パターン候補特定部７２及びパターン決定部７３は、ステップＳ１０１からステップＳ１０３の処理を、パターンを作成したい通信種の数だけ繰り返し実行することで（ステップＳ１０４）、パターン作成の対象となっている複数の通信種の夫々について、複数のパターンを得る。パターン作成の対象となっている複数の通信種についてのパターンが得られると、パターン作成装置７０は、作成されたパターンに、当該パターンに関連する情報（パターンＩＤ、通信種、閾値γ等。図４を参照）を関連付けて、パターン蓄積部５１に蓄積する（ステップＳ１０５）。その後、本フローチャートは終了する。
【００４０】
図６は、本実施形態に係るパターン候補選出処理の流れの概要を示すフローチャートである。本フローチャートに示された処理は、図５を用いて説明したパターン作成処理のステップＳ１０２に相当する。
【００４１】
ステップＳ２０１では、通信データ群がフロー単位に分割され、同一フローに含まれるパケットのペイロードが連結される。パターン候補特定部７２は、入力された通信データ群に含まれる全てのパケットについて、ＴＣＰ／ＵＤＰのペイロード（パケットからＴＣＰ／ＩＰヘッダを除いた部分）をフロー単位で連結することで、フロー毎の連結ペイロードを作成する。なお、連結ペイロードのサイズには上限（例えば、先頭１５００バイト）が設けられてもよい。その後、処理はステップＳ２０２へ進む。
【００４２】
ステップＳ２０２では、ペイロードが連結された通信フローについて、最長共通部分が抽出される。パターン候補特定部７２は、パターン作成する通信種の通信データ群において、各通信データのフロー同士を総当りで比較し、最長共通部分を求める。例えば、図７に示したペイロード１とペイロード２を比較した場合、最長共通部分は、ペイロード１及び２中の下線が付された部分である。
【００４３】
また、例えば、文字列ｓ＿１，  ｓ＿２，  ．．．，  ｓ＿ｎ  の最長共通部分を得るための関数を「ｌｃｓ（ｓ＿１，  ｓ＿２，  ．．．，  ｓ＿ｎ）」とすると、通信データ１の通信フローが通信フローｆ１＿１，  ｆ１＿２の２つ、通信データ２の通信フローが通信フローｆ２＿１，  ｆ２＿２，  ｆ２＿３の３つである場合、総当りで比較することで抽出される最長共通部分は、以下の６通りである。
lcs(f1_1, f2_1)
lcs(f1_1, f2_2)
lcs(f1_1, f2_3)
lcs(f1_2, f2_1)
lcs(f1_2, f2_2)
lcs(f1_2, f2_3)
その後、処理はステップＳ２０３へ進む。
【００４４】
ステップＳ２０３では、抽出された最長共通部分のうち包含関係にあるものが削除され、残った最長共通部分がパターン候補として選出される。パターン候補特定部７２は、抽出された複数の最長共通部分のうち、ある最長共通部分１が、他の最長共通部分２を包含する場合、この最長共通部分２を削除する。ここで得られた最長共通部分は、他通信種の通信データにも含まれる可能性がある。このため、パターン候補選出処理で得られた最長共通部分は、そのままパターンとしては採用されない。パターン候補特定部７２は、残った最長共通部分を、パターン候補として選出する。その後、本フローチャートに示された処理は終了する。
【００４５】
図８は、本実施形態に係るパターン決定処理の流れの概要を示すフローチャートである。本フローチャートに示された処理は、図５を用いて説明したパターン作成処理のステップＳ１０３に相当する。
【００４６】
ステップＳ３０１では、パターン候補と他の通信種の通信フローとに基づいて、最長共通部分の長さが算出される。パターン決定部７３は、パターン候補選出処理で選出された全てのパターン候補の夫々について、当該パターン候補ＰＴＮ＿Ｃと他通信種のフロー（総数：ｐ）とを総当りで比較し、最長共通部分を求める。例えば、他の通信種の通信フローがｐ個ある場合、求められる最長共通部分（ｐ個）は、以下の通りである。
LCS_1 = lcs(PTN_C, 他通信種のフロー1)
LCS_2 = lcs(PTN_C, 他通信種のフロー2)
・・・
LCS_p = lcs(PTN_C, 他通信種のフローp)
更に、パターン決定部７３は、文字列ｓの長さを得るための関数「ｌｅｎ（ｓ）」を用いて、求められた最長共通部分の長さｌｅｎ（ＬＣＳ＿１），  ｌｅｎ（ＬＣＳ＿２），  ．．．ｌｅｎ（ＬＣＳ＿ｐ）を算出する。その後、処理はステップＳ３０２へ進む。
【００４７】
ステップＳ３０２では、「ステップＳ３０１で算出された最長共通部分の長さ／パターン候補の長さ」（第一の割合）が所定の共通度基準α以上である、他の通信種の通信フローの数が算出される。パターン決定部７３は、ステップＳ３０１で求められた最長共通部分の夫々が、パターン候補ＰＴＮ＿Ｃに含まれる割合（第一の割合）を求める（ｐ個）。具体的には、以下の通りである。
r_1 = len(LCS_1) / len(PTN_C)
r_2 = len(LCS_2) / len(PTN_C)
・・・
r_p = len(LCS_p) / len(PTN_C)
そして、パターン決定部７３は、算出された第一の割合ｒ＿１，  ｒ＿２，  ．．．，  ｒ＿ｐのうち、共通度基準α（例えば、０．５）以上である（即ち、パターン候補が他の通信種に係る通信フローと十分に近似すると見なされた）通信フローの個数ｐ’を算出する。その後、処理はステップＳ３０３へ進む。
【００４８】
ステップＳ３０３では、「ステップＳ３０２で算出された他の通信種の通信フローの数／他の通信種の通信フローの総数」（第二の割合）がパターン決定基準β以下であるパターン候補が、パターンに決定される。パターン決定部７３は、ステップＳ３０２において算出された、算出された他の通信種の通信フローの数ｐ’の、他の通信種の通信フローの総数ｐに対する比（第二の割合）と、パターン決定基準β（例えば、０．２）とを比較し、「ｐ’  ／  ｐ  ＜＝  β」である場合、当該パターン候補ＰＴＮ＿Ｃを、対象の通信種を認識するためのパターンに決定する。即ち、部分一致する他の通信種の通信フローの割合が所定の基準以下であるパターン候補が、パターンとして決定される。パターン決定部７３は、全てのパターン候補について上記処理を行い、そのパターン候補がパターンとして決定されるか否かを判定する。その後、処理はステップＳ３０４へ進む。
【００４９】
ステップＳ３０４では、パターン毎に、算出された最長共通部分の長さに基づいて、通信種特定に最低限必要な閾値である、候補選定基準γが決定される。本実施形態において、パターン決定部７３は、パターンと他の通信種の通信フローとが一致した長さの最大値を２倍した値を、候補選定基準γとして採用する。その後、本フローチャートに示された処理は終了する。
【００５０】
図９は、本実施形態に係る通信種推定処理の流れの概要を示すフローチャートである。本フローチャートに示された処理は、特定対象通信フロー取得部５２によって、通信種を特定したい通信フローが取得されたことを契機として開始される。
【００５１】
通信種候補取得部５３は、全てのパターン及びその関連情報をパターン蓄積部５１から読み込み（ステップＳ４０１）、入力された通信フローに対して、通信種候補選出処理を実行する（ステップＳ４０２）。通信種候補選出処理の詳細については、図１０を参照して後述する。通信種候補が選出されると、通信種推定部５４は、通信種決定処理を実行することで、選出された通信種候補から、対象の通信フローに係る通信種を決定する（ステップＳ４０３）。通信種決定処理の詳細については、図１１を参照して後述する。その後、本フローチャートは終了する。
【００５２】
図１０は、本実施形態に係る通信種候補選出処理の流れの概要を示すフローチャートである。本フローチャートに示された処理は、図９を用いて説明した通信種推定処理のステップＳ４０２に相当する。
【００５３】
ステップＳ５０１では、入力された通信フローに含まれる全てのパケットのペイロードが連結される。通信種候補取得部５３は、入力された通信フローについて、ＴＣＰ／ＵＤＰのペイロード（パケットからＴＣＰ／ＩＰヘッダを除いた部分）を連結することで、当該通信フローの連結ペイロードを作成する。なお、連結ペイロードのサイズには上限（例えば、先頭１５００バイト）が設けられてもよい。その後、処理はステップＳ５０２へ進む。
【００５４】
ステップＳ５０２では、ペイロードが連結された通信フローとパターンとに基づいて、最長共通部分の長さが算出される。通信種候補取得部５３は、ステップＳ４０１で読み込まれた全てのパターンの夫々について、当該パターンＰＴＮと通信種を特定したい特定対象通信フローＴ＿ＦＬＯＷとを比較し、最長共通部分ＬＣＳ＿ＬＥＮの長さを求める。本実施形態では、以下の関数処理によって求められる。
LCS_LEN = len(lcs(T_FLOW, PTN))
その後、処理はステップＳ５０３へ進む。
【００５５】
ステップＳ５０３では、「ステップＳ５０２で算出された最長共通部分の長さ＞＝候補選定基準γ」を満たすパターンの通信種が、通信種候補として選出される。なお、本実施形態において、候補選定基準γには、パターン毎に、ステップＳ３０４で決定され、パターン蓄積部５１に蓄積された値が用いられる。具体的には、通信種候補取得部５３は、最長共通部分ＬＣＳ＿ＬＥＮが以下の式を満たす場合、当該パターンＰＴＮが「通信種候補を選出したパターン」となるため、当該パターンＰＴＮに対応する通信種を、通信種候補として選出する。
ＬＣＳ＿ＬＥＮ  ＞＝  γ
通信種候補取得部５３は、他のパターンについても同様の処理を行い、全ての通信種候補を選出する。その後、本フローチャートに示された処理は終了する。
【００５６】
図１１は、本実施形態に係る通信種決定処理の流れの概要を示すフローチャートである。本フローチャートに示された処理は、図９を用いて説明した通信種推定処理のステップＳ４０３に相当する。
【００５７】
ステップＳ６０１からステップＳ６０４では、選出された通信種候補の数が１以下である場合に、通信種が決定される。図１０を参照して説明した通信種候補選出処理によって選出された通信種候補の数が１である場合（ステップＳ６０１のＮＯ、ステップＳ６０２のＹＥＳ）、通信種推定部５４は、選出された通信種候補を、特定対象通信フローＴ＿ＦＬＯＷの通信種に決定する（ステップＳ６０３）。通信種候補選出処理によって選出された通信種候補の数が０である場合（ステップＳ６０１のＮＯ、ステップＳ６０２のＮＯ）、通信種推定部５４は、特定対象通信フローＴ＿ＦＬＯＷの通信種は不明であると決定する（ステップＳ６０４）。通信種が決定されると、本フローチャートに示された処理は終了する。一方、通信種候補選出処理によって選出された通信種候補の数が１より多い場合（ステップＳ６０１のＹＥＳ）、処理はステップＳ６０５へ進む。
【００５８】
ステップＳ６０５では、通信種候補毎に、当該通信種候補と通信フローとの一致度が決定される。具体的には、通信種推定部５４は、「通信種候補を選出したパターン」と特定対象通信フローＴ＿ＦＬＯＷとの最長共通部分の長さ（通信種候補選出処理で算出されたもの）を、以下のようにして、通信種候補毎に分類する（種類数：ｑ）。
通信種候補１
LCS_LEN_1_1
LCS_LEN_1_2
・・・
通信種候補２
LCS_LEN_2_1
LCS_LEN_2_2
・・・
通信種候補ｑ
LCS_LEN_q_1
LCS_LEN_q_2
・・・
【００５９】
そして、通信種推定部５４は、数値ｎ＿１，  ｎ＿２，  ．．．，  ｎ＿ｎの最大値を求める関数「ｍａｘ（ｎ＿１，  ｎ＿２，  ．．．，  ｎ＿ｎ）」を用いて、通信種候補毎に、最長共通部分の長さの最大値を決定する。この最大値が、通信種候補についての一致度とされる。
通信種候補１
LCS_LEN_1_max = max(LCS_LEN_1_1, LCS_LEN_1_2, ...)
通信種候補２
LCS_LEN_2_max = max(LCS_LEN_2_1, LCS_LEN_2_2, ...)
・・・
通信種候補ｑ
LCS_LEN_q_max = max(LCS_LEN_q_1, LCS_LEN_q_2, ...)
その後、処理はステップＳ６０６へ進む。
【００６０】
ステップＳ６０６では、通信種候補毎に決定された一致度のうち、１番目に大きい値及び２番目に大きい値が選択される。具体的には、通信種推定部５４は、ＬＣＳ＿ＬＥＮ＿１＿ｍａｘ，  ＬＣＳ＿ＬＥＮ＿２＿ｍａｘ，  ．．．，  ＬＣＳ＿ＬＥＮ＿ｑ＿ｍａｘの中で、１番大きい値を第一の一致度１ｓｔ＿ｌｅｎ、２番目に大きい値を第二の一致度２ｎｄ＿ｌｅｎとする。その後、処理はステップＳ６０７へ進む。
【００６１】
ステップＳ６０７からステップＳ６０９では、第一の一致度１ｓｔ＿ｌｅｎと第二の一致度２ｎｄ＿ｌｅｎとの比に基づいて、通信種が決定される。通信種推定部５４は、第一の一致度１ｓｔ＿ｌｅｎの第二の一致度２ｎｄ＿ｌｅｎに対する比を算出し、算出された比を、突出度基準δと比較する（ステップＳ６０７。以下の式を参照）。
1st_len / 2nd_len >= δ
【００６２】
第一の一致度１ｓｔ＿ｌｅｎの第二の一致度２ｎｄ＿ｌｅｎに対する比が、突出度基準δ以上である場合（ステップＳ６０７のＹＥＳ）、通信種推定部５４は、第一の一致度１ｓｔ＿ｌｅｎに係る通信種候補を、特定対象通信フローＴ＿ＦＬＯＷの通信種として決定する（ステップＳ６０８）。第一の一致度１ｓｔ＿ｌｅｎの第二の一致度２ｎｄ＿ｌｅｎに対する比が、突出度基準δ未満である場合（ステップＳ６０７のＮＯ）、通信種推定部５４は、特定対象通信フローＴ＿ＦＬＯＷの通信種を「不明」と決定する（ステップＳ６０９）。その後、本フローチャートに示された処理は終了する。
【００６３】
＜バリエーション＞
本実施形態では、パターン作成装置７０によって作成されたパターンを用いて、管理サーバー（通信判定装置）５０によって通信フローの通信種を特定する例について説明したが、本開示に係るパターン作成技術と、通信種推定技術とは、別々に用いられてもよい。例えば、本開示に係るパターン作成技術を用いて作成されたパターンが、従来型の単純なキーワードマッチングを用いた通信種推定に用いられてもよい。また、本開示に係るパターン作成技術を用いて作成されたものではないパターンが、本開示に係る通信種推定技術を用いた通信種推定に用いられてもよい。
【００６４】
＜効果＞
上記説明した実施形態によれば、パターン候補を他の通信種の通信フローを比較してパターンを作成すること、及び／又は、パターンと通信フローとが完全一致しない場合に部分一致長に応じて通信種を特定すること、によって、従来に比べて少ない量の通信データを用いて、通信種を特定可能なパターンを作成したり、通信種を特定したりすることが可能である。
【符号の説明】
【００６５】
２０  ネットワーク監視装置
５０  管理サーバー（通信判定装置）
７０  パターン作成装置
【図１】
2020182095.tif 000003
【図２】
2020182095.tif 000004
【図３】
2020182095.tif 000005
【図４】
2020182095.tif 000006
【図５】
2020182095.tif 000007
【図６】
2020182095.tif 000008
【図７】
2020182095.tif 000009
【図８】
2020182095.tif 000010
【図９】
2020182095.tif 000011
【図１０】
2020182095.tif 000012
【図１１】
2020182095.tif 000013