(57)【要約】【課題】フローデータを詳細に分析可能なラベルの付加を自動的に行うこと。【解決手段】シグネチャ生成部１３２は、トラフィックデータに含まれるパケットデータのヘッダ情報と、パケットデータに対応するアプリケーションのカテゴリを表すラベルとを対応付けたシグネチャを生成する。また、フローデータ生成部１３１は、パケットデータからフローデータを生成する。また、付加部１３４は、シグネチャ及びフローデータのヘッダ情報を基に、フローデータにラベルを付加する。また、計算部１３５は、フローデータの特徴量を計算する。また、学習部１３６は、ラベル、及びラベルが付加されたフローデータの特徴量を用いて、特徴量からラベルを予測するモデルの学習を行う。【選択図】図２
2020141236.tif 000002
【特許請求の範囲】
【請求項１】
トラフィックデータに含まれるパケットデータのヘッダ情報と、前記パケットデータに対応するアプリケーションのカテゴリを表すラベルとを対応付けたシグネチャを生成するシグネチャ生成部と、
前記パケットデータからフローデータを生成するフローデータ生成部と、
前記シグネチャ及び前記フローデータのヘッダ情報を基に、前記フローデータにラベルを付加する付加部と、
前記フローデータの特徴量を計算する計算部と、
前記ラベル、及び前記ラベルが付加されたフローデータの前記特徴量を用いて、特徴量からラベルを予測するモデルの学習を行う学習部と、
を有することを特徴とする識別装置。
【請求項２】
トラフィックデータに含まれるフローデータの特徴量を計算する計算部と、
特徴量からアプリケーションのカテゴリを表すラベルを予測する学習済みのモデルを用いて、前記フローデータに対応するラベルを予測する予測部と、
を有することを特徴とする識別装置。
【請求項３】
前記シグネチャ生成部は、
前記パケットデータのペイロード情報、又は前記パケットデータをＤＰＩ（Deep  Packet  Inspection）装置により分析して得られる情報を基に特定されたカテゴリを表すラベルを用いて、前記シグネチャを生成することを特徴とする請求項１に記載の識別装置。
【請求項４】
前記シグネチャ生成部は、前記パケットデータの送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス及び宛先ポート番号の組と、前記ラベルとを対応付けたシグネチャを生成することを特徴とする請求項１又は３に記載の識別装置。
【請求項５】
前記学習部は、特徴量からラベルを予測するＤＮＮ（Deep  Neural  Network）の学習を行うことを特徴とする請求項１、３及び４のいずれか１項に記載の識別装置。
【請求項６】
前記計算部は、送信元ＩＰアドレス又は宛先ＩＰアドレスごとのフロー数、１パケットあたりの送受信バイト数の平均、１フローあたりのパケット数の少なくともいずれかを前記特徴量として計算することを特徴とする請求項１から４のいずれか１項に記載の識別装置。
【請求項７】
コンピュータを、請求項１から６のいずれか１項に記載の識別装置として機能させるための識別プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、識別装置及び識別プログラムに関する。
【背景技術】
【０００２】
従来、トラフィックデータを分析するための手法が知られている。例えば、パケットデータの情報を用いてフローデータにプロトコルを表すラベルを付与する手法が知られている（例えば、非特許文献１を参照）。また、トラフィックデータから抽出した特徴をＤＮＮ（Deep  Neural  Network）により分析する手法が知られている（例えば、非特許文献２を参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Thomas  Karagiannis,  Konstantina  Papagiannaki,  Michalis  Faloutsos,  BLINC:  Multilevel  Traffic  Classification  in  the  Dark.
【非特許文献２】Zhitang  Chen,  Ke  He,  Jian  Li  and  Yanhui  Geng,  Seq2Img:  A  Sequence-to-Image  based  Approach  Towards  IP  Traffic  Classification  using  Convolutional  Neural  Networks,  2017  IEEE  International  Conference  on  Big  Data  (BIGDATA).
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の手法には、フローデータを詳細に分析可能なラベルの付加を自動的に行うことが困難な場合があるという問題がある。例えば、非特許文献１に記載の手法では、プロトコルレベルでのラベルの付与しかできず、フローデータの詳細な分析は困難である。また、非特許文献２に記載の手法は、パケットデータの特徴からアプリケーションを識別しているに過ぎず、パケットデータと比べて得られる情報の少ないフローデータの分析を行うことは困難である。
【課題を解決するための手段】
【０００５】
上述した課題を解決し、目的を達成するために、識別装置は、トラフィックデータに含まれるパケットデータのヘッダ情報と、前記パケットデータに対応するアプリケーションのカテゴリを表すラベルとを対応付けたシグネチャを生成するシグネチャ生成部と、前記パケットデータからフローデータを生成するフローデータ生成部と、前記シグネチャ及び前記フローデータのヘッダ情報を基に、前記フローデータにラベルを付加する付加部と、前記フローデータの特徴量を計算する計算部と、前記ラベル、及び前記ラベルが付加されたフローデータの前記特徴量を用いて、特徴量からラベルを予測するモデルの学習を行う学習部と、を有することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、フローデータを詳細に分析可能なラベルの付加を自動的に行うことができる。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１の実施形態に係るネットワークシステムの構成の一例を示す図である。
【図２】図２は、第１の実施形態に係る識別装置の構成の一例を示す図である。
【図３】図３は、シグネチャの一例を示す図である。
【図４】図４は、悪性通信の検知について説明するための図である。
【図５】図５は、第１の実施形態に係る識別装置の学習処理の流れを示すフローチャートである。
【図６】図６は、第１の実施形態に係る識別装置の予測処理の流れを示すフローチャートである。
【図７】図７は、識別プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【０００８】
以下に、本願に係る識別装置及び識別プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
【０００９】
［第１の実施形態の構成］
第１の実施形態の識別装置は、フローデータに対して、当該フローデータを発生させたアプリケーションのカテゴリを表すラベルを付加するものである。また、識別装置は、フローデータに付加するラベルを予測するための識別器の学習を行う。なお、識別器は、特徴量からラベルを予測するモデルの一例である。
【００１０】
図１を用いて、識別装置を有するネットワークシステムの構成を説明する。図１は、第１の実施形態に係るネットワークシステムの構成の一例を示す図である。図１に示すように、識別装置１０ａは、小規模ＮＷ（Network）から、パケットデータ（Packet）とフローデータ（Netflow）を受け取る。そして、識別装置１０ａは、受け取ったパケットデータとフローデータを用いて識別器の学習を行い、学習済みの識別器を出力する。
【００１１】
識別装置１０ｂは、バックボーンＮＷからフローデータを受け取る。そして、識別装置１０ｂは、識別装置１０ａによって出力された識別器を使って、受け取ったフローデータに付加するラベルを予測する。
【００１２】
このように、第１の実施形態の識別装置によれば、小規模なネットワークで学習を行った結果を用いて、大規模なネットワークであるバックボーンＮＷのフローデータの分析を行うことができる。さらに、フローデータからアプリケーションを識別し、可視化することにより、ネットワーク状態の把握及び障害発生時の初期分析等が可能になる。
【００１３】
パケットデータは、パケットのヘッダ及びペイロードの情報である。また、フローデータは、の5-tuple情報を共有するパケットグループ、すなわちフローの統計情報である。例えば、フローデータは、フローに含まれるパケットの数、各パケットのバイト数、及びそれらの平均等の計算値を含んでいてもよい。
【００１４】
アプリケーション識別のために教師あり学習で識別器を生成する場合、大量のデータと各データポイントに対応したラベルが必要となる。しかし、フローデータにはＩＰアドレスやポート番号等の簡易な情報しか含まれない。このため、従来、自動的なラベルの付加は難しく精度も低かった。また、対象ネットワークの規模が大きいほど、パケットデータの収集及び分析にかかる負荷は高く、大規模なネットワークでは適用が難しい。このため、第１の実施形態のように、パケットデータを用いることなく、フローデータのみからアプリケーションのカテゴリを特定することは有用である。
【００１５】
第１の実施形態によれば、例えば小規模なネットワークで得られた少量のパケットデータを用いて学習した識別器を用いて、大規模なネットワークのフローデータへのラベルの付加が可能になる。その際に、大規模なネットワークのパケットデータを収集することは不要である。
【００１６】
図１を用いて、第１の実施形態に係る識別装置の構成について説明する。図１は、第１の実施形態に係る識別装置の構成の一例を示す図である。図１に示すように、識別装置１０は、入力部１１、フローデータ生成部１３１、シグネチャ生成部１３２、アプリケーションシグネチャＤＢ１３３、付加部１３４、計算部１３５、学習部１３６、識別モデルＤＢ１２２、予測部１３７及び出力部１４を有する。
【００１７】
入力部１１には、トラフィックデータ２１が入力される。トラフィックデータ２１は、ＮＷ機器２０から収集されるパケットデータ及びフローデータである。また、識別モデルＤＢ１２２には、初期状態では、生成済みの学習済みモデルが格納される。なお、識別装置１０は、初期状態のモデルを外部から得ることなく、乱数等を使って生成してもよい。
【００１８】
出力部１４は、予測結果として、フローデータごとのラベルの予測値を出力する。また、モデルがラベルごとの確率を出力するものである場合、出力部１４は、ラベルごとの予測確率を出力してもよい。
【００１９】
識別装置１０の各処理部の処理を、学習フェーズと予測フェーズに分けて説明する。なお、識別装置１０は、各処理部のうち学習に必要な処理部を持つ学習装置、及び各処理部のうち予測に必要な処理部を持つ予測装置により実現されてもよい。
【００２０】
（学習フェーズ）
学習フェーズにおいては、パケットデータ及びフローデータを含むトラフィックデータが入力部１１に入力される。フローデータ生成部１３１は、パケットデータからフローデータを生成する。
【００２１】
シグネチャ生成部１３２は、トラフィックデータに含まれるパケットデータのヘッダ情報と、パケットデータに対応するアプリケーションのカテゴリを表すラベルとを対応付けたシグネチャを生成する。
【００２２】
シグネチャ生成部１３２は、パケットデータのペイロード情報を基に、当該パケットデータに対応するアプリケーションのカテゴリを特定することができる。なお、対応するパケットデータのアプリケーションとは、例えば、当該パケットデータをクライアントに送信するアプリケーション、及び当該パケットデータをクライアントから受信するアプリケーションである。
【００２３】
また、シグネチャ生成部１３２は、ＤＰＩ（Deep  Packet  Inspection）装置により分析して得られる情報を基に、当該パケットデータに対応するアプリケーションのカテゴリを特定することができる。シグネチャ生成部１３２は、ＤＰＩ装置と同等の機能を有していてもよい。
【００２４】
シグネチャ生成部１３２は、パケットデータの送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス及び宛先ポート番号の組と、ラベルとを対応付けたシグネチャを生成する。そして、シグネチャ生成部１３２は、生成したシグネチャをアプリケーションシグネチャＤＢに格納する。
【００２５】
図３は、シグネチャの一例を示す図である。図３に示すように、アプリケーションのカテゴリを表すラベルは、例えば「Video」、「SNS」、「Cloud」、「Mail」等である。例えば、図３の１行目のシグネチャは、送信元ＩＰアドレスが「192.0.2.10」、送信元ポート番号が「80」、宛先ＩＰアドレスが「192.0.2.20」、宛先ポート番号が「32768」であるパケットデータ又はフローデータに対応するラベルが「Video」であることを表している。
【００２６】
付加部１３４は、シグネチャ及びフローデータのヘッダ情報を基に、フローデータにラベルを付加する。例えば、付加部１３４は、図３に示すシグネチャを参照し、送信元ＩＰアドレスが「192.0.2.10」、送信元ポート番号が「80」、宛先ＩＰアドレスが「192.0.2.20」、宛先ポート番号が「32768」であるフローデータに、ラベル「Video」を付加する。
【００２７】
計算部１３５は、フローデータの特徴量を計算する。ここでは、計算部１３５は、送信元ＩＰアドレス又は宛先ＩＰアドレスごとのフロー数、１パケットあたりの送受信バイト数の平均、１フローあたりのパケット数の少なくともいずれかを特徴量として計算する。
【００２８】
シグネチャ生成部１３２が、送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス及び宛先ポート番号ごとにラベルを対応付けるのに対し、計算部１３５は、送信元ＩＰアドレスごと、又は宛先ＩＰアドレスごとにフローデータを集約し特徴量を計算する。ここまでの処理により、ラベルと特徴量が対応付けられる。
【００２９】
学習部１３６は、ラベル、及びラベルが付加されたフローデータの特徴量を用いて、特徴量からラベルを予測するモデルの学習を行う。例えば、モデルが特徴量からラベルを予測するＤＮＮである場合、学習部１３６はＤＮＮの学習を行う。そして、学習部１３６は、更新したモデルのパラメータを識別モデルＤＢ１２２に格納する。例えば、学習部１３６は、ＤＮＮを構築するための重みやバイアス等のパラメータを識別モデルＤＢ１２２に格納する。
【００３０】
（予測フェーズ）
学習フェーズにおいては、フローデータを含むトラフィックデータが入力部１１に入力される。そして、計算部１３５は、トラフィックデータに含まれるフローデータの特徴量を計算する。
【００３１】
また、予測部１３７は、特徴量からアプリケーションのカテゴリを表すラベルを予測する学習済みのモデルを用いて、フローデータに対応するラベルを予測する。予測部１３７は、識別モデルＤＢに格納されているパラメータを基に構築したＤＮＮを用いて予測を行うことができる。
【００３２】
図４に示すように、識別装置１０の予測フェーズの処理によれば、悪性通信の検知を補助することができる。図４は、悪性通信の検知について説明するための図である。図４に示すように、悪性通信が含まれている可能性がある、識別対象のトラフィックデータが識別装置１０に入力される。そして、識別装置１０は、各トラフィックデータのラベルを予測する。このとき、識別装置１０によってラベルを予測できなかったトラフィックデータ（Unknown）が存在する場合がある。このとき、ラベルが予測されたトラフィックデータを除外することで、悪性通信の検知を効率良く行うことが可能になる。
【００３３】
［第１の実施形態の処理］
図５を用いて、識別装置１０の学習処理の流れについて説明する。図５は、第１の実施形態に係る識別装置の学習処理の流れを示すフローチャートである。図５に示すように、まず、識別装置１０は、フローデータ及びパケットデータの入力を受け付ける（ステップＳ１１）。次に、識別装置１０は、パケットデータからアプリケーションのカテゴリのシグネチャを生成する（ステップＳ１２）。
【００３４】
ここで、識別装置１０は、パケットデータからフローデータを生成する（ステップＳ１３）。そして、識別装置１０は、シグネチャに基づくラベルを特徴量に付加する（ステップＳ１４）。さらに、識別装置１０は、入力されたフローデータ及び生成したフローデータから特徴量を計算する（ステップＳ１５）。そして、識別装置１０は、ラベルが付加された特徴量を用いて識別モデルの学習を行う（ステップＳ１６）。
【００３５】
図６を用いて、識別装置１０の予測処理の流れについて説明する。図６は、第１の実施形態に係る識別装置の予測処理の流れを示すフローチャートである。図６に示すように、まず、識別装置１０は、フローデータの入力を受け付ける（ステップＳ２１）。次に、識別装置１０は、入力されたフローデータから特徴量を計算する（ステップＳ２２）。そして、識別装置１０は、識別モデルを使って、特徴量のラベルを予測する（ステップＳ２３）。
【００３６】
［第１の実施形態の効果］
これまで説明したように、シグネチャ生成部１３２は、トラフィックデータに含まれるパケットデータのヘッダ情報と、パケットデータに対応するアプリケーションのカテゴリを表すラベルとを対応付けたシグネチャを生成する。また、フローデータ生成部１３１は、パケットデータからフローデータを生成する。また、付加部１３４は、シグネチャ及びフローデータのヘッダ情報を基に、フローデータにラベルを付加する。また、計算部１３５は、フローデータの特徴量を計算する。また、学習部１３６は、ラベル、及びラベルが付加されたフローデータの特徴量を用いて、特徴量からラベルを予測するモデルの学習を行う。このように、識別装置１０は、パケットデータを用いた学習により、フローデータからラベルを予測するモデルを生成することができる。また、予測されたラベルによれば、フローデータの詳細な分析が可能になる。このため、第１の実施形態によれば、フローデータを詳細に分析可能なラベルの付加を自動的に行うことができる。
【００３７】
計算部１３５は、トラフィックデータに含まれるフローデータの特徴量を計算する。また、予測部１３７は、特徴量からアプリケーションのカテゴリを表すラベルを予測する学習済みのモデルを用いて、フローデータに対応するラベルを予測する。このように、識別装置１０は、フローデータのラベルを自動的に予測することができる。このため、第１の実施形態によれば、フローデータを詳細に分析可能なラベルの付加を自動的に行うことができる。
【００３８】
シグネチャ生成部１３２は、パケットデータのペイロード情報、又はパケットデータをＤＰＩ装置により分析して得られる情報を基に特定されたカテゴリを表すラベルを用いて、シグネチャを生成する。これにより、特徴量ごとに、アプリケーションのカテゴリを特定することが可能になる。
【００３９】
シグネチャ生成部１３２は、パケットデータの送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス及び宛先ポート番号の組と、ラベルとを対応付けたシグネチャを生成する。これらのヘッダ情報は、パケットデータとフローデータとで共通している。このため、第１の実施形態によれば、パケットデータから生成したシグネチャをフローデータに適用することが可能になる。
【００４０】
学習部１３６は、特徴量からラベルを予測するＤＮＮの学習を行う。これにより、大規模なデータから有用な特徴を効果的に学習することが可能になる。
【００４１】
計算部１３５は、送信元ＩＰアドレス又は宛先ＩＰアドレスごとのフロー数、１パケットあたりの送受信バイト数の平均、１フローあたりのパケット数の少なくともいずれかを特徴量として計算する。これにより、同一のアプリケーションのパケットのポートが変化した場合であっても、特徴量を当該アプリケーションのカテゴリに対応付けることが可能になる。
【００４２】
［システム構成等］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散及び統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散又は統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００４３】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００４４】
［プログラム］
一実施形態として、識別装置１０は、パッケージソフトウェアやオンラインソフトウェアとして上記の学習及び予測を実行する識別プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の識別プログラムを情報処理装置に実行させることにより、情報処理装置を識別装置１０として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）等の移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistant）等のスレート端末等がその範疇に含まれる。
【００４５】
また、識別装置１０は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の学習及び予測に関するサービスを提供するサーバ装置として実装することもできる。例えば、サーバ装置は、トラフィックデータを入力とし、学習済みモデル又は予測結果を出力とするサービスを提供するサーバ装置として実装される。この場合、サーバ装置は、Ｗｅｂサーバとして実装することとしてもよいし、アウトソーシングによって上記の学習及び予測に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【００４６】
図７は、識別プログラムを実行するコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００４７】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００４８】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、識別装置１０の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、識別装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤにより代替されてもよい。
【００４９】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０は、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した実施形態の処理を実行する。
【００５０】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００５１】
１０  識別装置
１１  入力部
１４  出力部
１２２  識別モデルＤＢ
１３１  フローデータ生成部
１３２  シグネチャ生成部
１３３  アプリケーションシグネチャＤＢ
１３４  付加部
１３５  計算部
１３６  学習部
１３７  予測部
【図１】
2020141236.tif 000003
【図２】
2020141236.tif 000004
【図３】
2020141236.tif 000005
【図４】
2020141236.tif 000006
【図５】
2020141236.tif 000007
【図６】
2020141236.tif 000008
【図７】
2020141236.tif 000009