IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧

<>
  • 特許-生成装置、生成方法及び生成プログラム 図1
  • 特許-生成装置、生成方法及び生成プログラム 図2
  • 特許-生成装置、生成方法及び生成プログラム 図3
  • 特許-生成装置、生成方法及び生成プログラム 図4
  • 特許-生成装置、生成方法及び生成プログラム 図5
  • 特許-生成装置、生成方法及び生成プログラム 図6
  • 特許-生成装置、生成方法及び生成プログラム 図7
  • 特許-生成装置、生成方法及び生成プログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-14
(45)【発行日】2022-11-22
(54)【発明の名称】生成装置、生成方法及び生成プログラム
(51)【国際特許分類】
   H04L 43/022 20220101AFI20221115BHJP
   H04L 43/04 20220101ALI20221115BHJP
【FI】
H04L43/022
H04L43/04
【請求項の数】 5
(21)【出願番号】P 2021532630
(86)(22)【出願日】2019-07-17
(86)【国際出願番号】 JP2019028178
(87)【国際公開番号】W WO2021009887
(87)【国際公開日】2021-01-21
【審査請求日】2021-11-04
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】胡 博
(72)【発明者】
【氏名】神谷 和憲
【審査官】鈴木 肇
(56)【参考文献】
【文献】国際公開第2015/194604(WO,A1)
【文献】特開2015-149695(JP,A)
【文献】特開2019-075745(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-13/18
H04L 41/00-49/9057
H04L 61/00-65/80
H04L 69/00-69/40
G06F 21/12-21/16
G06F 21/50-21/57
G06N 3/00- 3/12
G06N 7/08-99/00
(57)【特許請求の範囲】
【請求項1】
複数のトラヒックデータを所定のターゲットごとに集約する前処理部と、
前記前処理部によって集約されたトラヒックデータの数が閾値を超えているか否かを判定し、前記閾値を超えている場合には、当該閾値を超えているターゲットのみトラヒックデータをサンプリングするサンプリング部と、
前記サンプリング部によってサンプリングが行われなかったターゲットについては、集約されたトラヒックデータの特徴を表す特徴ベクトルを生成し、前記サンプリング部によってサンプリングが行われたターゲットについては、サンプリングされたトラヒックデータの特徴を表す特徴ベクトルを生成する生成部と、
を有することを特徴とする生成装置。
【請求項2】
前記サンプリング部は、前記閾値と同数、又は、前記閾値以上かつ前記ターゲットに集約されたトラヒックデータの数未満のトラヒックデータをサンプリングすることを特徴とする請求項1に記載の生成装置。
【請求項3】
前記サンプリング部は、所定の基準でソートしたトラヒックデータの先頭から所定の数のトラヒックデータをサンプリングすることを特徴とする請求項1に記載の生成装置。
【請求項4】
コンピュータによって実行される生成方法であって、
複数のトラヒックデータを所定のターゲットごとに集約する前処理工程と、
前記前処理工程によって集約されたトラヒックデータの数が閾値を超えているか否かを判定し、前記閾値を超えている場合には、当該閾値を超えているターゲットのみトラヒックデータをサンプリングするサンプリング工程と、
前記サンプリング工程によってサンプリングが行われなかったターゲットについては、集約されたトラヒックデータの特徴を表す特徴ベクトルを生成し、前記サンプリング工程によってサンプリングが行われたターゲットについては、サンプリングされたトラヒックデータの特徴を表す特徴ベクトルを生成する生成工程と、
を有することを特徴とする生成方法。
【請求項5】
コンピュータを、請求項1から3のいずれか1項に記載の生成装置として機能させるための生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、生成装置、生成方法及び生成プログラムに関する。
【背景技術】
【0002】
従来、教師あり学習をNWフローに適用する技術が知られている。また、その際、データのサンプリングを行うことで、処理量を削減することが知られている。
【先行技術文献】
【非特許文献】
【0003】
【文献】Walter de Donato, Antonio Pescape, and Alberto Dainotti, "Traffic Identification Engine: An Open Platform for Traffic Classification", IEEE Network March/April 2014
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術には、モデルの精度が低下する場合があるという問題がある。例えば、NWフローから得られたトラヒックデータを基に、ホストごとに特徴量を生成する場合を考える。この場合、所定のサンプリングレートでサンプリングを行うと、もともとトラヒックデータが少ないホストについて、十分なトラヒックデータが得られず、モデルの精度が低下することが考えられる。
【課題を解決するための手段】
【0005】
上述した課題を解決し、目的を達成するために、生成装置は、複数のトラヒックデータを所定のターゲットごとに集約する前処理部と、前記前処理部によって集約されたトラヒックデータの数が閾値を超えているターゲットのトラヒックデータをサンプリングするサンプリング部と、前記サンプリング部によってサンプリングが行われなかったターゲットについては、集約されたトラヒックデータの特徴を表す特徴ベクトルを生成し、前記サンプリング部によってサンプリングが行われたターゲットについては、サンプリングされたトラヒックデータの特徴を表す特徴ベクトルを生成する生成部と、を有することを特徴とする。
【発明の効果】
【0006】
本発明によれば、モデルの精度の低下を抑止することができる。
【図面の簡単な説明】
【0007】
図1図1は、第1の実施形態に係る生成装置の構成例を示す図である。
図2図2は、トラヒックデータの一例を示す図である。
図3図3は、非選択的サンプリングについて説明するための図である。
図4図4は、選択的サンプリングについて説明するための図である。
図5図5は、第1の実施形態に係る生成装置の処理の流れを示すフローチャートである。
図6図6は、特徴量生成処理を並列に行う場合の構成例を示す図である。
図7図7は、前処理を並列に行う場合の構成例を示す図である。
図8図8は、生成プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【0008】
以下に、本願に係る生成装置、生成方法及び生成プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
【0009】
[第1の実施形態の構成]
まず、図1を用いて、第1の実施形態に係る生成装置の構成について説明する。図1は、第1の実施形態に係る生成装置の構成の一例を示す図である。図1に示すように、生成装置10は、データセット20の入力を受け付け、予測結果30を出力する。
【0010】
実施形態において、生成装置10は、特徴ベクトル(特徴量)を生成し、生成した特徴ベクトルを使った学習及び予測を行うことができるものとして説明する。一方で、生成装置10は、少なくとも特徴ベクトルの生成ができればよい。例えば、他の装置が、生成装置10によって生成された特徴ベクトルを受け取り、当該受け取った特徴ベクトルを使って学習及び予測を行うようにしてもよい。
【0011】
データセット20は、複数のトラヒックデータのセットである。例えば、トラヒックデータはNWフローから得られる情報である。ただし、トラヒックデータはNWフローから得られる情報に限られず、ネットワークに関する情報に基づくものであればどのようなデータであってもよい。また、トラヒックフローには、あらかじめクラスが設定されている場合がある。設定されたクラスは、モデルの学習時にはラベルとして用いられる。
【0012】
図2は、トラヒックデータの一例を示す図である。例えば、図2に示すように、トラヒックデータは、NWフローごとのタイムスタンプ(ts)、送信元IPアドレス(sip)、宛先IPアドレス(dip)、送信元ポート番号(sp)、宛先ポート番号(dp)、プロトコル(pr)、パケット数(pkt)、バイト数(byt)を含む。また、各トラヒックデータには、悪性(Malicias)又は良性(Benign)のいずれかクラスが設定されている場合がある。
【0013】
なお、図2のトラヒックデータは、ターゲットriごとに集約されたNWフロー(Bag ri of network flows)である。なお、集約する処理については後に説明する。また、この場合のターゲットは、送信元又は宛先のホストである。
【0014】
生成装置10の各部について説明する。図1に示すように、生成装置10は、前処理部101、選択部102、サンプリング部103、サンプリング部104、生成部105、学習部107、モデル108、予測部109を有する。
【0015】
モデル108は、トラヒックデータから生成された特徴ベクトルを基に、トラヒックが悪性であるか良性であるかを予測するためのモデルである。また、生成装置10は、クラスが既知のトラヒックデータを使い、モデル108の学習を行うことができる。
【0016】
前処理部101は、データセット20を、学習用のデータと予測用のデータとに分けることができる。例えば、前処理部101は、データセット20に含まれるトラヒックデータのうち、ラベルが付与されているものを学習用のデータとし、ラベルが未付与のものを予測用のデータとすることができる。なお、学習を行うか予測を行うかはあらかじめ決められていてもよく、その場合、前処理部101はデータを分ける必要はない。
【0017】
また、前処理部101は、データセット20のトラヒックデータを、所定のターゲットごとに集約する。ターゲットは、例えばホスト又はフローである。例えば、ターゲットがホストである場合、前処理部101は、送信元IPアドレス又は宛先IPアドレスが共通するトラヒックデータを同じ集合(Bag)として集約する。
【0018】
例えば、図2の例では、前処理部101は、送信元IPアドレス又は宛先IPアドレスがm1であるトラヒックデータを、Bag rm1として集約する。また、前処理部101は、送信元IPアドレス又は宛先IPアドレスがb1であるトラヒックデータを、Bag rb1として集約する。
【0019】
選択部102は、ターゲットを選択する。例えば、ターゲットがホストである場合、選択部102は、サーバm1、サーバm2、…、サーバb1、サーバb2、…のような順序でサーバを選択していく。また、ターゲットがフローである場合、選択部102は、5-tupleの値の組み合わせを順に選択していく。
【0020】
サンプリング部103は、前処理部101によって集約されたトラヒックデータの数が閾値を超えているターゲットのトラヒックデータをサンプリングする。つまり、サンプリング部103は、選択部102によって選択されたターゲットのトラヒックデータが閾値を超えていればサンプリングを行う。逆に、サンプリング部103は、選択部102によって選択されたターゲットのトラヒックデータが閾値以下であれば、当該ターゲットについてはサンプリングを行わない。 なお、サンプリング部103は、サンプリングレートに従ってランダムにサンプリングを行ってもよいし、所定の基準でソートしたトラヒックデータの先頭から所定の数のトラヒックデータをサンプリングしてもよい。
【0021】
このように、本実施形態のように、トラヒックデータの数に応じて、サンプリングを行うか否かを選択的に決定する方法を選択的サンプリングと呼ぶ。一方、全てのターゲットに対してサンプリングを行う方法を非選択的サンプリングと呼ぶ。
【0022】
まず、図3を用いて非選択的サンプリングについて説明する。図3は、非選択的サンプリングについて説明するための図である。図3に示すように、例えば、ホスト「Server b1」のトラヒックデータが2,000件であり、ホスト「Server b2」のトラヒックデータが200件であり、ホスト「Server m1」のトラヒックデータが20件であるものとする。
【0023】
ここで、サンプリングレートを1.5%に設定しランダムサンプリングを行い、ホスト「Server b1」のトラヒックデータから30件、ホスト「Server b2」のトラヒックデータから3件、ホスト「Server m1」のトラヒックデータから0件がサンプリングされたものとする。
【0024】
この場合、ホスト「Server b1」については、モデルの精度を向上させるために十分な情報を持つ特徴量が得られると考えられる。一方で、ホスト「Server b2」については、ホスト「Server b1」と比べてデータ数が非常に少ないため、モデルの精度を向上させることが難しくなることが考えられる。さらに、ホスト「Server m1」については、データが欠落し、特徴量が得られない。このように、非選択的サンプリングには、モデルの精度向上が困難になる場合があるという問題がある。選択的サンプリングによれば、このような問題が解決される。
【0025】
図4は、選択的サンプリングについて説明するための図である。図4の例では、閾値が20であるものとする。また、ホストごとの入力されるトラヒックデータの数は、図3の場合と同じであるものとする。ここでは、サンプリング部103は、閾値と同数のトラヒックデータをサンプリングするものとする。なお、サンプリング部103は、閾値以上かつホストに集約されたトラヒックデータの数未満の所定の数のトラヒックデータをサンプリングしてもよい。
【0026】
ホスト「Server b1」のデータ件数は閾値を超えているため、サンプリング部103は、ホスト「Server b1」のトラヒックデータから20件をサンプリングする。また、ホスト「Server b2」のデータ件数は閾値を超えているため、サンプリング部103は、ホスト「Server b2」のトラヒックデータから20件をサンプリングする。ホスト「Server m1」のデータ件数は閾値を超えていないため、サンプリング部103は、ホスト「Server m1」のトラヒックデータからサンプリングを行わない。これは、ホスト「Server m1」のトラヒックデータの全件が特徴量生成の対象となることを意味する。
【0027】
生成部105は、サンプリング部103によってサンプリングが行われなかったホストについては、集約されたトラヒックデータの特徴を表す特徴ベクトルを生成する。また、生成部105は、サンプリング部103によってサンプリングが行われたホストについては、サンプリングされたトラヒックデータの特徴を表す特徴ベクトルを生成する。
【0028】
図4の例では、生成部105は、ホスト「Server b1」及び「Server b2」については、サンプリング部104によってサンプリングされたトラヒックデータから特徴ベクトルを生成する。一方で、生成部105は、ホスト「Server m1」については、サンプリングが行われないため、サンプリング前のトラヒックデータから特徴ベクトルを生成する。
【0029】
なお、図1では、学習と予測を分けて説明するため、サンプリング部103とサンプリング部104を異なるブロックで表しているが、サンプリング部104はサンプリング部103と同じ処理を行う。
【0030】
学習部107は、特徴ベクトルを用いて、モデル108の学習を行う。この場合、図2に示すように、ホストごとの悪性又は良性を表すラベルは既知であるものとする。予測部109は、トラヒックデータの特徴ベクトルを学習済みのモデル108に入力し、当該トラヒックデータが悪性であるか良性であるかを示すラベルを予測する。
【0031】
[第1の実施形態の処理]
図5を用いて、第1の実施形態の生成装置10の処理の流れを説明する。図5は、第1の実施形態に係る生成装置の処理の流れを示すフローチャートである。まず、図5に示すように、生成装置10は、複数のトラヒックデータを含むデータセットの入力を受け付ける(ステップS11)。次に、生成装置10は、トラヒックデータをホストごとに集約する(ステップS12)。
【0032】
ここで、生成装置10は、未選択のホストから1つを選択する(ステップS13)。生成装置10は、選択したホストについて、集約されたトラヒックデータの数が閾値を超えているか否かを判定する(ステップS14)。
【0033】
生成装置10は、トラヒックデータの数が閾値を超えていると判定した場合(ステップS14、Yes)、当該ホストについてトラヒックデータのサンプリングを行う(ステップS15)。一方、生成装置10は、トラヒックデータの数が閾値を超えていないと判定した場合(ステップS14、No)、当該ホストについてトラヒックデータのサンプリングを行わない。
【0034】
次に、生成装置10は、特徴ベクトルを生成する(ステップS16)。このとき、生成装置10は、サンプリングが行われたホストについては、サンプリングされたトラヒックデータから特徴ベクトルを生成し、サンプリングが行われなかったホストについては、入力されたサンプリング前のトラヒックデータから特徴ベクトルを生成する。
【0035】
その後、未選択のホストがある場合(ステップS17、Yes)、生成装置10は、ステップS13に戻り処理を繰り返す。一方、未選択のホストがなくなった場合(ステップS17、No)、生成装置10は、生成装置10は、各特徴ベクトルを使って学習又は予測を実行する(ステップS18)。
【0036】
[第1の実施形態の効果]
これまで説明してきたように、生成装置10は、複数のトラヒックデータを所定のターゲットごとに集約する。また、生成装置10は、集約されたトラヒックデータの数が閾値を超えているターゲットのトラヒックデータをサンプリングする。また、生成装置10は、サンプリングが行われなかったターゲットについては、集約されたトラヒックデータの特徴を表す特徴ベクトルを生成し、サンプリングが行われたターゲットについては、サンプリングされたトラヒックデータの特徴を表す特徴ベクトルを生成する。このように、生成装置10は、ターゲットごとのトラヒックデータの件数に応じてサンプリングを行うか否かを決定することができる。このため、第1の実施形態によれば、特徴量を生成するためのデータが、サンプリングにより極端に少なくなることや、全くなくなってしまうことを防止できるため、モデルの精度の低下を抑止できる。
【0037】
生成装置10は、閾値と同数、又は、閾値以上かつターゲットに集約されたトラヒックデータの数未満のトラヒックデータをサンプリングする。また、生成装置10は、サンプリング部103は、所定の基準でソートしたトラヒックデータの先頭から所定の数のトラヒックデータをサンプリングする。このように、生成装置10は、データの特性等に合わせて様々な方法でサンプリングを行うことができる。
【0038】
[その他の実施形態]
前処理、サンプリング及び特徴ベクトルの生成処理のうちの少なくとも一部は、並列処理により行われてもよい。図6及び7を用いて、生成装置10が並列処理を行う場合の構成及び処理について説明する。
【0039】
図6は、前処理を並列に行う場合の構成例を示す図である。図6に示すように、生成装置10は、前処理部101及びサンプリング部103を複数持ち、前処理及びサンプリングを並列して行うことができる。この場合、前処理部101がそれぞれ異なる閾値を定義し、サンプリング部103が自身に接続する前処理部101で定義された閾値を使ってサンプリングを行うようにしてもよい。これにより、集約後のターゲットごとのトラヒックデータの件数に応じて柔軟に閾値を定義することが可能になる。
【0040】
図7は、特徴量生成処理を並列に行う場合の構成例を示す図である。図7に示すように、生成装置10は、生成部105を複数持ち、特徴ベクトルの生成処理を並列して行うことができる。この場合、特徴ベクトル生成に要する時間を短縮することが可能になる。
【0041】
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散及び統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散又は統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0042】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0043】
[プログラム]
一実施形態として、生成装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記の抽出処理を実行する生成プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の生成プログラムを情報処理装置に実行させることにより、情報処理装置を生成装置10として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。
【0044】
また、生成装置10は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の抽出処理に関するサービスを提供する抽出サーバ装置として実装することもできる。例えば、抽出サーバ装置は、トラヒックデータを入力とし、第1の特徴量及び第2の特徴量を出力とする抽出サービスを提供するサーバ装置として実装される。この場合、抽出サーバ装置は、Webサーバとして実装することとしてもよいし、アウトソーシングによって上記の抽出処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【0045】
図8は、生成プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0046】
メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(BASIC Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
【0047】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、生成装置10の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、生成装置10における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSDにより代替されてもよい。
【0048】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020は、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した実施形態の処理を実行する。
【0049】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【符号の説明】
【0050】
10 生成装置
20 データセット
30 予測結果
101 前処理部
102 選択部
103、104 サンプリング部
105 生成部
107 学習部
108 モデル
109 予測部
図1
図2
図3
図4
図5
図6
図7
図8