(57)【特許請求の範囲】
【請求項１】
通信端末が通信相手との間に確立したセッションをフォアグラウンド通信およびバックグラウンド通信のいずれかに識別する通信識別装置において、
ネットワーク上で観測された各セッションを送信元情報および宛先情報の組み合わせに固有のSDグループに分類するセッション分類手段と、
SDグループごとに各セッションの生起タイミングを所定の時間幅を有するbinの位置で代表し、当該bin位置を要素とする生起タイミングベクトルを生成する手段と、
前記生起タイミングベクトルの異なる要素の組み合わせごとに差分を計算する手段と、
前記差分が同一となる組み合わせの要素集合ごとに、当該差分がセッションの生起周期である信頼度を計算する手段と、
各生起周期の信頼度に基づいてセッションを識別する手段とを具備したことを特徴とする通信識別装置。
【請求項２】
前記生起タイミングベクトルを生成する手段は、binごとにセッションの生起タイミングであるか否かを示すビット数列を生成する手段を具備し、
前記ビット数列の開始binから各生起タイミングのbinまでのbin数の時系列を生起タイミングベクトルの要素とすることを特徴とする請求項１に記載の通信識別装置。
【請求項３】
前記信頼度を計算する手段は、所定の監視期間内において、セッションの生起タイミングを検知されることが期待されるbin数に対する、セッションの生起タイミングを検知されたbin数に基づいて信頼度を計算することを特徴とする請求項１または２に記載の通信識別装置。
【請求項４】
前記信頼度を計算する手段は、差分が生起タイミングのサンプリング期間の略半分以上となる組み合わせの要素集合を信頼度の計算対象としないことを特徴とする請求項１ないし３のいずれかに記載の通信識別装置。
【請求項５】
前記生起タイミングベクトルを生成する手段は、各binの前後方向に所定の幅で付加期間を設定し、当該付加期間を含めたbin幅内で検知された生起タイミングに基づいて生起タイミングベクトルを生成することを特徴とする請求項１ないし４のいずれかに記載の通信識別装置。
【請求項６】
通信端末が通信相手との間に確立したセッションをコンピュータがフォアグラウンド通信およびバックグラウンド通信のいずれかに識別する通信識別方法において、
ネットワーク上で観測された各セッションを送信元情報および宛先情報の組み合わせに固有のSDグループに分類する手順と、
SDグループごとに各セッションの生起タイミングを所定の時間幅を有するbinの位置で代表し、当該bin位置を要素とする生起タイミングベクトルを生成する手順と、
前記生起タイミングベクトルの異なる要素の組み合わせごとに差分を計算する手順と、
差分が同一となる組み合わせの要素集合ごとに、当該差分がセッションの生起周期である信頼度を計算する手順と、
各生起周期の信頼度に基づいてセッションを識別する手順とを含むことを特徴とする通信識別方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信識別方法および装置に係り、特に、通信端末がフォアグラウンド（Foreground）で行う通信とバックグラウンド(Background)で行う通信とを識別する通信識別方法および装置に関する。
【背景技術】
【０００２】
通信端末が実行する通信の内容を識別する技術が研究されている。特許文献１には、通信トラヒック量の時系列変化やデータから、フーリエ変換等を用いて周期性を算出する手法が開示されている。
【０００３】
特許文献２には、通信トラヒックをフロー毎に測定・集約し、フロー毎の通信トラヒック特性から、周波数解析手法であるケプストラム分析を適用することにより、フローからアプリ（通信サービスの種別）を識別する技術が開示されている。
【０００４】
特許文献３には、通信トラヒックをフロー毎に測定・集約し、フロー毎の通信トラヒック特性から特徴量を算出し、機械学習を適用することにより、フローから通信サービスの種別（アプリケーション）を識別する技術が開示されている。
【０００５】
特許文献４には、ネットワーク上で観測される各セッションについて、その送信元情報および宛先情報の組み合わせごとに生起タイミングを監視し、生起タイミングの自己相関係数が高いセッションをバックグラウンド通信に識別する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2010-283668号公報
【特許文献２】特開2012-105043号公報
【特許文献３】特開2013-127504号公報
【特許文献４】特願2014-037083号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
近年におけるモバイル端末の爆発的な普及によりさまざまなサービスが台頭し、端末ユーザの通信要求操作を契機に生起されるフォアグラウンド通信のみならず、端末ユーザの通信要求操作とは無関係に、アプリケーションが自身に都合の良い任意のタイミングでサーバ等と通信するバックグラウンド通信が生起されるようになってきた。
【０００８】
各通信方式は、重要度、緊急度、データサイズ、遅延やジッタに対する許容度、端末ユーザの主観評価に与える影響などが異なるので、各通信方式を識別できれば様々な用途で活用できる。
【０００９】
しかしながら、特許文献１は、目的が異常検知すなわち平常時からの傾向変化検知であり、フォア／バックグラウンド通信を識別できない。特許文献２，３は、アプリケーションや通信サービスの識別を目的とする技術であり、フォア／バックグラウンド通信は識別できない。
【００１０】
特許文献４は、自己相関・相互相関の係数を計算するための負荷が、セッション数nに対してO(n2)となり、たとえFFT等の高速化手法を適用してもO(n log n)までにしか減ぜられなかった。
【００１１】
本発明の目的は、上記の技術課題を解決し、通信端末がフォアグラウンドでセッションを確立して行う通信とバックグラウンドでセッションを確立して行う通信とを少ない計算量で識別する通信識別方法および装置を提供することにある。
【課題を解決するための手段】
【００１２】
上記の目的を達成するために、本発明は、通信端末が通信相手との間に確立したセッションをフォアグラウンド通信およびバックグラウンド通信のいずれかに識別する通信識別装置において、ネットワーク上で観測された各セッションを送信元情報および宛先情報の組み合わせに固有のSDグループに分類するセッション分類手段と、SDグループごとに各セッションの生起タイミングを所定の時間幅を有するbinの位置で代表し、これを要素とする生起タイミングベクトルを生成する手段と、生起タイミングベクトルの異なる要素の組み合わせごとに差分を計算する手段と、差分が同一となる組み合わせの要素集合ごとに、当該差分がセッションの生起周期である信頼度を計算する手段と、各生起周期の信頼度に基づいてセッションを識別する手段とを具備したことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、以下のような効果が達成される。
(1) 通信端末が実行する通信のうち、ユーザ操作とは無関係にOSやアプリケーションが自動的、機械的に実行するバックグラウンド通信を、パッシブなパケットキャプチャにより低コストかつ少数の測定ポイントだけで識別できるようになる。
【００１４】
(2) バックグラウンド通信に係るセッションの生起タイミングのように、極めて疎なデータ列を評価する際、疎の区間に対応して多数の「０」を連続して含むビット数列Tではなく、このビット数列Tから生成した生起タイミングベクトルOCVを対象に信頼度計算を行うので、射影後の数列長を短くすることができ、計算量を大幅に減じることが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の通信識別方法が適用されるネットワークの構成を示した図である。
【図２】キャプチャ装置の一実施形態の構成を示した機能ブロック図である。
【図３】ビット数列生成部１０４ａの機能を説明するための図である。
【図４】差分計算部１０５ａの機能を説明するための図である。
【図５】要素集合表生成部１０５ｂの機能を説明するための図である。
【図６】信頼度計算部１０５ｃの動作を示したフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照して本発明の実施の形態について詳細に説明する。図１は、本発明の通信識別方法が適用されるネットワークの構成を示したブロック図である。
【００１７】
サービス提供範囲の各エリアには無線基地局BSが設置され、当該エリア内の無線移動端末MN（例えば、スマートフォンやタブレット端末）は前記各無線基地局BSに収容される。各無線基地局BSは無線アクセス網RANに接続され、前記無線アクセス網RANはコア網のゲートウェイ(GW)に接続される。前記コア網はインターネットエクスチェンジ(IX)においてインターネットと接続される。
【００１８】
前記インターネットには、各MNからの要求に応答してサービスを提供する各種のサーバが接続されている。本実施形態では、各MNと各サーバとの間のトラヒックを集約できる回線として、無線アクセス網RANとコア網とを接続する回線Lに、通信識別装置としてのキャプチャ装置１が接続されている。
【００１９】
図２は、前記キャプチャ装置１の一実施形態の主要部の構成を示した機能ブロック図であり、ここでは、本発明の説明に不要な構成は図示が省略されている。
【００２０】
通信トラヒック測定部１０１は、前記回線L上で送受されるパケットをキャプチャして、そのセッション種別（TCP、HTTP、UDPなど）、生起タイミング、送信元情報および宛先情報を含む各種の情報をログ情報管理部１０２に記録する。
【００２１】
セッション分類部１０３は、各セッションをその送信元情報(S)および宛先情報(D)の組み合わせに基づいていずれかのSDグループに分類する。すなわち、送信元情報(S)および宛先情報(D)のいずれもが同一のセッションは同一のSDグループに分類され、異なるセッションは別のSDグループに分類される。
【００２２】
本実施形態では、送信元情報として送信元IPアドレスを採用し、宛先情報として宛先IPアドレスおよびポート番号を採用する。各セッションの生起タイミングは、HTTPセッションであればHTTP Requestパケットの到着時刻で代表し、TCPセッションであればセッション確立時に実行されるスリーハンドシェイクで送受されるSynパケットの到着時刻で代表する。また、UDPであれば当該セッションで初めて観測されるパケットの到着時刻で代表する。
【００２３】
生起タイミングベクトル生成部１０４はビット数列生成部１０４ａを含み、SDグループごとに各セッションの生起タイミングを、所定の時間幅を有するbinの位置で代表し、これを要素とする生起タイミングベクトルを生成する。
【００２４】
図３は、前記ビット数列生成部１０４ａの機能を説明するための図であり、セッションが生起したか否かを監視する時間軸上のbin幅をΔt、監視期間をn×Δtとし、例えば第1，2，5，8，9，11，12，14番目の各binでセッションの生起が検知されると、次式(1)のように、セッションの生起が検知されたbinには「1」、セッションの生起が検知されなかったbinには「0」、のセットされたビット数列Tを生成され、その長さはnとなる。
【００２５】
【数１】
0006497798.tif 000002
【００２６】
前記生起タイミングベクトル生成部１０４は、ビット数列Tにおいてビットがセットされた各binを、周期の起点とみなす開始binからの距離（bin数）で表現し、これを時系列の要素とする生起タイミングベクトルOCV(occurrence vector)を生成する。開始binを第１番目のbinとすれば、上式(1)のビット数列Tから、次式(2)の生起タイミングベクトルOCV (occurrence vector) が生成され、その長さmは「8」となる。
【００２７】
【数２】
0006497798.tif 000003
【００２８】
周期性評価部１０５において、差分計算部１０５ａは、前記生起タイミングベクトルOCVの各要素の組み合わせごとに差分を計算する。
【００２９】
図４は、前記差分計算部１０５ａの機能を説明するための図であり、本実施形態では、生起タイミングベクトルOCVの各要素iを行列(x，y)方向に時系列で配置し、行列の交差欄に各要素の差分を登録してマトリックス表を導出する。
【００３０】
このとき、同一要素の差分は計算不要なので、マトリックス表において対角線上の組み合わせは計算対象から除外される。また、x番目のベクトル要素とy番目のベクトル要素との差分が求まれば、y番目のベクトル要素とx番目のベクトル要素との差分は計算不要なので、対角線よりも下側の組み合わせも全て計算対象から除外される。
【００３１】
さらに、監視期間がbinのn倍すなわちビット数列Tのビット長がnであれば、その半分のn/2を超える生起タイミング周期は判別できないので、ここでは8ビット以上の周期は計算対象から除外される。本実施形態では、以上の各徐外処理を事前に実施し、差分計算の対象を減じることで、計算量の削減が可能になる。
【００３２】
図２へ戻り、要素集合表生成部１０５ｂは、差分が同一となる組み合わせの要素集合の表を生成する。
【００３３】
図５は、前記要素集合表生成部１０５ｂの機能を説明するための図であり、本実施形態では、差分が同一となる組み合わせの要素集合が予め構築される。例えば、差分「2」に関して図４のマトリックス表を参照すると、第9ビットと第11ビットとの間隔および第12ビットと第14ビットとの間隔がいずれも「2」なので、差分「2」の要素集合は｛9，11，12，14｝となる。
【００３４】
同様に、差分「3」に関してマトリックス表を参照すると、第2ビットと第5ビットとの間隔、第5ビットと第8ビットとの間隔、第9ビットと第12ビットとの間隔および第11ビットと第14ビットとの間隔がいずれも「3」なので、差分「3」の要素集合は｛2，5，8，9，11，12，14｝となる。以下同様に、差分「4」，「5」，「6」，「7」に関してもマトリックス表を参照して要素集合が構築され、図５に示したような要素集合表が完成する。
【００３５】
信頼度計算部１０５ｃは、前記差分ごとに求められた要素集合に基づいて、当該差分をセッションの生起周期とみなした場合の信頼度を計算する。通信識別部１０６は、各セッションを、その生起タイミングの信頼度に基づいて、フォアグラウンド通信およびバックグラウンド通信のいずれかに識別する。
【００３６】
本実施形態のキャプチャ装置１は、汎用のコンピュータやサーバに各機能を実現するアプリケーション（プログラム）を実装することで構成できる。あるいはアプリケーションの一部がハードウェア化またはROM化された専用機や単能機としても構成できる。
【００３７】
図６は、前記信頼度計算部１０５ｃによる信頼度の計算手順を示したフローチャートであり、本実施形態では、差分Δdごとに得られるベクトル要素列を対象に、開始binを切り替えながら、セッション生起が差分Δdごとに検知されている割合に基づいて信頼度が計算される。
【００３８】
ステップS１では、要素数が最大の要素集合が選択される。本実施形態では、差分Δdを「3」として抽出された要素集合｛2，5，8，9，11，12，14｝の要素数が「7」で最多となるので、この要素集合が選択される。ステップS２では、セッションの生起周期の起点とみなす開始binに初期値の「1」がセットされる。
【００３９】
ステップS３では、前記選択された要素集合｛2，5，8，9，11，12，14｝について、今回の開始binの要素に差分Δdを順次に加算することで期待要素列が求められる。ここでは開始binが「1」なので、時系列で１番目の要素「2」に差分「3」を順次に加算して期待要素列｛2，5，8，11，14｝が求められる。
【００４０】
ステップＳ４では、前記選択された要素集合｛2，5，8，9，11，12，14｝と前記期待要素列｛2，5，8，11，14｝とが比較され、期待要素列の各要素が要素集合の各要素と一致するか否かを示す一致数列OCV'が求められる。ここでは、期待要素列｛2，5，8，11，14｝の全ての要素が要素集合｛2，5，8，9，11，12，14｝のいずれかの要素と一致するので、一致数列OCV'として[11111]が得られる。ステップS５では、次式(3)に基づいて、差分「3」の開始bin「1」における信頼度cが算出される。
【００４１】
【数３】
0006497798.tif 000004
【００４２】
ここで、ΠΔd,l (OCV')は一致数列OCV'の長さ（ビット長）であり、上記の例では「5」となる。また、zは生起タイミングが検知されるべきbinでありながら実際には検知されなかったbinの合計数、すなわち一致数列OCV'における「0」の個数である。したがって、上式(3)のzを含む項の値は、数列OCV'が「0」を含めばその個数であり、「0」を含まなければ0となる。上記のように、一致数列OCV'が[11111]であれば「0」を含まないので、上式(3)のzを含む項の値は0となる。したがって、周期「3」の開始bin「1」における信頼度cは、(5-1-0)/(5-1)となって100%となる。
【００４３】
なお、図５の差分が「2」の要素集合｛9，11，12，14｝について開始binを「1」とした場合を例にして説明すれば、ステップＳ３では、時系列で１番目の要素「9」に差分「2」を順次に加算して期待要素列｛9，11，13，15｝が求められる。
【００４４】
ステップＳ４では、前記選択された要素集合｛9，11，12，14｝と期待要素列｛9，11，13，15｝とが比較され、ここでは要素「9」，「11」が一致し、「12」，「14」が不一致となるので一致数列OCV'として[1100]が得られ、zが「2」となる。ステップS５では、これらを上式(3)に適用することで、開始bin「1」における周期「2」の信頼度cが、(4-1-2)/(4-1)となって33%となる。
【００４５】
このように、本実施形態では通信のバックグラウンドで周期的に確立されるセッションの生起タイミングのように、極めて疎なデータ列を評価するにあたり、疎の区間に対応して多数の「0」を連続して含むビット数列Tではなく、このビット数列Tから生成した生起タイミングベクトルOCV及びOCV'を対象に信頼度計算を行うので、射影後の数列長を短くすることができ、計算量を大幅に減じることが可能となる。
【００４６】
すなわち、分析対象であるビット数列Tの長さが「n」であれば、自己相関や相互相関はこのビット数列Tを対象に算出されるので、その計算量は単純アルゴリズムであればO(n2)、FFT等により高速化してもO(n log n)となる。
【００４７】
これに対して、本実施形態ではOCVの算出において、長さnのビット数列Tに対してn個の要素を一旦全て探索するので、その計算量はO(n)となる。ここで、通信トラヒックを分析対象としてセッションの生起時刻を基に算出したベクトルでは、通信トラヒックデータ全体の大きさ・長さnに対して、生起する時刻が少ないので要素数mが少なくなって疎となり、n＞＞mとなる。
【００４８】
OCVを扱う全ての計算は要素数mに対する計算・処理であり、計算量はO(m2)またはO(m)となる。ここで、n＞＞mなので、O(m2)やO(m)は、O(n2)やO(n log n)よりも極めて小さい。したがって、本実施形態によれば、特にビット数列Tが疎の場合に計算量がO(m)となり、その計算量を他の手法による場合に比べて極めて少なくできる。
【００４９】
図６へ戻り、ステップS６では、開始binがインクリメントされる。ステップS７では、開始binが所定の上限位置を超えたか否かが判断され、上限位置に達していなければステップS３へ戻り、更新後の開始bin（ここでは、「2」）に関して上記の各処理が繰り返される。
【００５０】
これに対して、開始binが上限値に達したと判断されるとステップS８へ進み、開始binごとに得られた信頼度の中の最高値が信頼度として採用される。
【００５１】
なお、本実施形態のように開始binが初期値「1」のときに、その信頼度が100%となれば、その後の計算は不要となるので、その時点で信頼度を100%として当該処理を終了するようにしても良い。
【００５２】
また、開始binを変更しながら信頼度計算を繰り返しても所定の閾値を超える信頼度が得られない場合にはステップS１へ戻り、要素数が次に大きな要素集合を選択して上記の処理を繰り返すようにしても良い。
【００５３】
前記通信識別部１０６は、算出された信頼度に基づいて、各SDグループのセッションをバックグラウンド通信およびフォアグラウンド通信のいずれかに識別する。本実施形態では、信頼度に例えば80%程度の閾値を設定し、信頼度が当該閾値を超える周期が存在すれば、当該SDグループの注目セッションをバックグラウンド通信に識別し、それ以外であればフォアグラウンド通信に識別する。あるいは、SDペアごとに求まる多数の信頼度を母数として、その90％ile値を閾値としても良いし、尤度判定を採用しても良い。
【００５４】
なお、上記の実施形態では各bin幅を厳密に固定し、bin幅内で生起タイミングが検知されたbinに対してのみ「1」をセットするものとして説明したが、本発明はこれのみに限定されるものではなく、各bin幅は維持したまま、その前後方向に所定の幅で付加期間を設定し、当該付加期間を含めたbin幅内で生起タイミングが検知されたbinに対して「1」をセットするようにしても良い。
【００５５】
このようにすれば、ネットワークに遅延やジッタが発生し、セッションの生起タイミングがずれて、算出される数列やその周期、信頼度が低くなってしまう場合でも、このような外乱に関わらず安定した周期判定が可能になり、ひいてはフォアグラウンド通信およびバックグラウンド通信の識別を正確に行えるようになる。
【００５６】
本実施形態によれば、通信端末が実行する通信のうち、ユーザ操作とは無関係にOSやアプリケーションが自動的、機械的に実行するバックグラウンド通信を識別できるようになる。
【００５７】
また、本実施形態によれば、バックグラウンド通信に係るセッションの生起タイミングのように、極めて疎なデータ列を評価する際、疎の区間に対応して多数の「０」を連続して含むビット数列Tではなく、このビット数列Tから生成した生起タイミングベクトルOCVを対象に信頼度計算を行うので、射影後の数列長を短くすることができ、計算量を大幅に減じることが可能となる。
【００５８】
さらに、本実施形態によれば、ユーザ由来・主導のフォアグラウンド通信とバックグラウンド通信とをパッシブなパケットキャプチャにより低コストかつ少数の測定ポイントだけで識別できるようになる。
【符号の説明】
【００５９】
１０１…通信トラヒック測定部，１０２…ログ情報管理部，１０３…セッション分類部，１０４…生起タイミングベクトル生成部，１０４ａ…ビット数列生成部，１０５…周期性評価部，１０５ａ…差分計算部，１０５ｂ…要素集合表生成部，１０５ｃ…信頼度計算部，１０６…通信識別部
【図１】
0006497798.tif 000005
【図２】
0006497798.tif 000006
【図３】
0006497798.tif 000007
【図４】
0006497798.tif 000008
【図５】
0006497798.tif 000009
【図６】
0006497798.tif 000010