特許第6589223号(P6589223)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 日本電信電話株式会社の特許一覧 ▶ 学校法人早稲田大学の特許一覧

特許6589223サービス推定装置、サービス推定方法、及びプログラム
<>
  • 特許6589223-サービス推定装置、サービス推定方法、及びプログラム 図000016
  • 特許6589223-サービス推定装置、サービス推定方法、及びプログラム 図000017
  • 特許6589223-サービス推定装置、サービス推定方法、及びプログラム 図000018
  • 特許6589223-サービス推定装置、サービス推定方法、及びプログラム 図000019
  • 特許6589223-サービス推定装置、サービス推定方法、及びプログラム 図000020
  • 特許6589223-サービス推定装置、サービス推定方法、及びプログラム 図000021
  • 特許6589223-サービス推定装置、サービス推定方法、及びプログラム 図000022
  • 特許6589223-サービス推定装置、サービス推定方法、及びプログラム 図000023
  • 特許6589223-サービス推定装置、サービス推定方法、及びプログラム 図000024
  • 特許6589223-サービス推定装置、サービス推定方法、及びプログラム 図000025
  • 特許6589223-サービス推定装置、サービス推定方法、及びプログラム 図000026
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6589223
(24)【登録日】2019年9月27日
(45)【発行日】2019年10月16日
(54)【発明の名称】サービス推定装置、サービス推定方法、及びプログラム
(51)【国際特許分類】
   H04L 12/70 20130101AFI20191007BHJP
【FI】
   H04L12/70 100Z
【請求項の数】5
【全頁数】19
(21)【出願番号】特願2016-168907(P2016-168907)
(22)【出願日】2016年8月31日
(65)【公開番号】特開2018-37820(P2018-37820A)
(43)【公開日】2018年3月8日
【審査請求日】2018年7月24日
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(73)【特許権者】
【識別番号】899000068
【氏名又は名称】学校法人早稲田大学
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【弁理士】
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】原田 薫明
(72)【発明者】
【氏名】石橋 圭介
(72)【発明者】
【氏名】下田 晃弘
(72)【発明者】
【氏名】井上 武
(72)【発明者】
【氏名】後藤 滋樹
(72)【発明者】
【氏名】森 達哉
【審査官】 羽岡 さやか
(56)【参考文献】
【文献】 特開2014−230139(JP,A)
【文献】 特開2016−152501(JP,A)
【文献】 特表2015−513810(JP,A)
【文献】 特開2017−050827(JP,A)
【文献】 下田 晃弘 Akihiro Shimoda,DNSログとフローの突合によるサービス毎トラフィック量推定方法,電子情報通信学会2015年総合大会講演論文集 通信2 PROCEEDINGS OF THE 2015 IEICE GENERAL CONFERENCE,2015年 2月24日,P.203,B-7-53
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00−12/955
(57)【特許請求の範囲】
【請求項1】
それぞれが複数のサービスを提供する複数のサーバのいずれかに対する、前記サービスの識別情報を含むアクセスについて、前記各サーバの前記識別情報ごとのアクセス数を記録する学習部と、
いずれかの前記サーバに対する、前記識別情報を含まないアクセスが観測されると、当該サーバに関して記録されている前記識別情報ごとのアクセス数に基づいて、当該アクセスの対象のサービスを推定する推定部と、
を有することを特徴とするサービス推定装置。
【請求項2】
前記推定部は、いずれかの前記サーバに対する、前記識別情報を含むアクセスが観測されると、当該サーバに関して所定期間に記録された前記識別情報ごとのアクセス数に基づいて、当該アクセスの対象のドメイン名を推定する、
ことを特徴とする請求項1記載のサービス推定装置。
【請求項3】
前記学習部は、前記サービスの識別情報を含むアクセスについて、前記各サーバの前記識別情報ごとのクライアント数を記録し、
前記推定部は、前記識別情報を含まないアクセスが観測されると、当該サーバに関して記録されている前記識別情報ごとのクライアント数に基づいて、当該アクセスの対象のサービスを推定する、
ことを特徴とする請求項1又は2記載のサービス推定装置。
【請求項4】
それぞれが複数のサービスを提供する複数のサーバのいずれかに対する、前記サービスの識別情報を含むアクセスについて、前記各サーバの前記識別情報ごとのアクセス数を記録する学習手順と、
いずれかの前記サーバに対する、前記識別情報を含まないアクセスが観測されると、当該サーバに関して記録されている前記識別情報ごとのアクセス数に基づいて、当該アクセスの対象のサービスを推定する推定手順と、
をコンピュータが実行することを特徴とするサービス推定方法。
【請求項5】
請求項1乃至いずれか一項記載の各部としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サービス推定装置、サービス推定方法、及びプログラムに関する。
【背景技術】
【0002】
近年、OSやアプリケーションのアップデート等によるトラヒック変動の増加により、サービス毎のトラヒック分析に基づくネットワーク設計や通信制御の必要性が高まってきている。一方で、SSL(Secure Socket Layer)やTLS(Transport Layer Security)の普及によって多くのWebサービスが暗号化され、ネットワークの経路上におけるサービスの識別が困難となってきている。
【0003】
一方、DPI(Deep Packet Inspection)が利用可能な場合、TLSの拡張仕様であるSNI(Server Name Indication)情報を解析することで、暗号化されたトラヒックのサービスを識別する方法が存在する。SSL−SNIは、SSLの拡張仕様であり、クライアントからサーバに対して接続先ドメイン名(FQDN(Fully Qualified Domain Name))を伝える仕組みである。同一IPアドレスで複数ドメインを運用しているサーバが、ドメインに応じた証明書を使い分けるためにSNIが利用される。
【0004】
SNIに対応したクライアントの場合、サーバがSNIに対応しているか否かに関わらずSNIにドメイン名が付加される。既存技術では、このSNIのドメイン名に基づいてサービスを識別している。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Wazen M. Shbair, Thibault Cholez, Antoine Goichot and Isabelle Chrisment, ''Efficiently bypassing SNI-based HTTPS filtering,'' IFIP/IEEE International Symposium on Integrated Network Management 2015.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、SNIに非対応のクライアントの場合、SNIのドメイン名を利用することができず、サービスを識別することができない。
【0007】
暗号化されたトラヒックにおいて、同一IPアドレスで複数ドメインを運用しているサーバが存在する一方、SNI対応/非対応のクライアントが、混在しているのが一般的である。従来技術では、SNI非対応クライアントからのアクセスはサービスの識別ができず、分析データとして使用できないため、精度のよいサービス毎のトラヒック分析が行えなかった。
【0008】
本発明は、上記の点に鑑みてなされたものであって、SNIに非対応のクライアントがアクセスしたサービスを推定することを目的とする。
【課題を解決するための手段】
【0009】
そこで上記課題を解決するため、サービス推定装置は、それぞれが複数のサービスを提供する複数のサーバのいずれかに対する、前記サービスの識別情報を含むアクセスについて、前記各サーバの前記識別情報ごとのアクセス数を記録する学習部と、いずれかの前記サーバに対する、前記識別情報を含まないアクセスが観測されると、当該サーバに関して記録されている前記識別情報ごとのアクセス数に基づいて、当該アクセスの対象のサービスを推定する推定部と、を有する。
【発明の効果】
【0010】
SNIに非対応のクライアントがアクセスしたサービスを推定することができる。
【図面の簡単な説明】
【0011】
図1】リアルタイム法のイメージとバッチ法のイメージとを示す図である。
図2】第1の実施の形態におけるサービス推定装置のハードウェア構成例を示す図である。
図3】第1の実施の形態におけるサービス推定装置の機能構成例を示す図である。
図4】第1の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。
図5】第2の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。
図6】第3の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。
図7】第4の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。
図8】第5の実施の形態におけるサービス推定装置の機能構成例を示す図である。
図9】第5の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。
図10】第6の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。
図11】第7の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【0012】
以下、図面に基づいて本発明の実施の形態を説明する。本実施の形態では、SNI(Server Name Indication)対応クライアントからのサーバへのアクセスに基づきサービスへのアクセス状況を学習し、学習結果に基づきSNI非対応クライアントからのアクセスの対象のサービスを推定する。
【0013】
具体的には、サーバに対する通信を逐次観測し、観測時点までに蓄積された統計情報に基づいてサービスを逐次推定するリアルタイム法と、一定期間において観測された通信を対象に、全通信の統計情報に基づいてサービスを一括推定するバッチ法の2つの手法について開示する。図1に、リアルタイム法のイメージとバッチ法のイメージとを示す。
【0014】
リアルタイム法は通信の開始時にサービスを推定するため、即応性が必要なシステムに適している。バッチ法は通信の開始前のみならず終了後の統計量を利用可能であるため、より精度のよい推定が可能である。
【0015】
第1〜第4の実施の形態はリアルタイム法に関し、第5〜第7の実施の形態はバッチ法に関する。
【0016】
なお、本実施の形態において、サーバとは、IPアドレスを識別情報とする単位(すなわち、IPアドレスによって区別される単位)である。サービスとは、FQDN(Fully Qualified Domain Name)又はFQDNからホスト名を除いたドメイン名を識別情報とする単位(すなわち、FQDN又はFQDNからホスト名を除いたドメイン名によって区別される単位)である。
【0017】
図2は、第1の実施の形態におけるサービス推定装置のハードウェア構成例を示す図である。図2のサービス推定装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。
【0018】
サービス推定装置10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0019】
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従ってサービス推定装置10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
【0020】
図3は、第1の実施の形態におけるサービス推定装置の機能構成例を示す図である。図3において、サービス推定装置10は、SNI判定部11、サービス学習部12、及びサービス推定部13等を有する。これら各部は、サービス推定装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。サービス推定装置10は、また、統計情報記憶部14を利用する。統計情報記憶部14は、例えば、補助記憶装置102、又はサービス推定装置10にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【0021】
SNI判定部11は、観測されたHTTPSセッション(クライアントからサーバへのアクセス)について、SNIが含まれているか否かを判定する。サービス学習部12は、SNI情報が含まれていないアクセスについて、サーバ別及びサービス別のアクセス回数を統計情報記憶部14に記録する。サービス推定部13は、SNI情報が含まれていないアクセスについて、サービスを推定する。
【0022】
なお、第1の実施の形態において、サービス推定装置10は、サーバとクライアントとのネットワークのパケットを観測可能な位置であれば、どのような位置に配置されてもよい。
【0023】
以下、サービス推定装置10が実行する処理手順について説明する。図4は、第1の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。
【0024】
SNI判定部11は、ネットワークにおいて、クライアントcからサーバsへのアクセスを観測(検出)すると(S110でYes)、アクセス内容にSNI情報が含まれているか否かを判定する(S120)。当該アクセスは、例えば、SSL(Secure Socket Layer)のシーケンスにおける「ClientHello」であってもよい。
【0025】
アクセス内容にSNI情報が含まれている場合(S120でYes)、統計情報記憶部14に記憶されている統計情報を更新することで、サービスを学習する。統計情報には、サーバごとのサービスの集合と、各サーバのサービスごとのセッション数(SSLアクセス数)とが含まれる。ここで、アクセス内容に含まれていたSNI情報が示すサービスが、dであり、サーバsのサービスの集合がDsjであり、サーバsのサービスdに対するセッション数がNsj(d)であるとする。すなわち、Dsjは、サービスの集合が記録されるデータであり、Nsj(d)は、サーバsのサービスdに対するセッション数が記録されるデータである。なお、本実施の形態において、「セッション」とは、SSLセッションをいう。
【0026】
まず、サービス学習部12は、Dsjにdを記録済みであるか否かを判定する(S130)。Dsjにdが記録されていない場合(S130でYes)、サービス学習部12は、Dsjにdを記録する(S140)。続いて、サービス学習部12は、Nsj(d)に1を記録する(S150)。一方、Dsjにdが記録されている場合(S130でNo)、サービス学習部12は、Nsj(d)に1を加算した結果を、Nsj(d)に記録する(S160)。
【0027】
一方、アクセス内容にSNI情報が含まれていない場合(S120でNo)、サービス推定部13は、以下の確率P(d')に従って、サービスd'を選択し、選択結果をサービスの推定結果とする(S170)。
【0028】
【数1】
ここで、確率P(d')に従ってサービスd'を選択するとは、サービスd'が確率P(d')の確率で選択されるようにサービスd'を選択するということである。例えば、0〜1の範囲の乱数について、当該範囲を各d'の確率P(d')に応じた割合で分割してもよい。サービス推定部13は、当該乱数を発生させて、発生した値が属する範囲に対応するサービスd'を選択してもよい。
【0029】
上述したように、第1の実施の形態によれば、SNI対応クライアントからのアクセスに基づきサービスを学習し、学習結果に基づきSNI非対応クライアントからのアクセスの対象のサービスを推定することができる。その結果、例えば、SNI非対応クライアントのアクセスのデータを用いて、精度の高いサービス毎のトラヒック分析を行うことを可能とすることができる。
【0030】
次に、第2の実施の形態について説明する。第2の実施の形態では第1の実施の形態と異なる点について説明する。第2の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。
【0031】
第1の実施の形態では、学習期間の特段の制限は設けられていない。しかし、例えば、CDN(Content Delivery Network)の場合、サーバ側の制御によって配信サービスが時間変化するため、古い学習結果は誤推定の要因となる可能性が有る。第2の実施の形態では、斯かる問題を解決する。
【0032】
図5は、第2の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。図5中、図4と同一ステップには同一ステップ番号を付し、その説明は省略する。
【0033】
図5では、ステップS150、S160、S170の代わりに、ステップS150a、S160a、S170aが実行される。また、ステップS160aに続いてステップS161が実行される。なお、図5において、Nsj(d)は、サーバsのサービスdへのアクセスが観測(検出)された時刻の集合である。また、ステップS110におけるアクセスの観測時刻(最後のアクセスの観測時刻)は、時刻tであるとする。
【0034】
ステップS150aにおいて、サービス学習部12は、Nsj(d)に対して{t}を記録する(S150a)。すなわち、ステップS110におけるアクセスの観測時刻がNsj(d)に追加される。
【0035】
ステップS160aにおいて、サービス学習部12は、以下の演算を行う。
【0036】
【数2】
但し、δは、学習履歴の保持期間である。すなわち、ステップS160aでは、時刻tから遡って保持期間δ内の時刻がNsj(d)から抽出されて、Nsj(d)に代入される。
【0037】
続いて、サービス学習部12は、Nsj(d)と{t}との論理和をNsj(d)に記録する(S161)。
【0038】
ステップS170aにおいて、サービス推定部13は、以下の確率P(d')に従って、サービスd'を選択し、選択結果をサービスの推定結果とする。
【0039】
【数3】
但し、|X|は、Xの要素数を表し、以下においても同様である。すなわち、|Nsj(d)|は、サーバsのサービスdに対するアクセス数を示す。
【0040】
式(3)では、時刻tのアクセス先であるサーバsのサービスdごとに、時刻tから遡って保持期間δ内の時刻がNs(d)に代入される。式(4)では、サーバsのサービスd'ごとに、当該サービスd'の保持期間δ内のアクセス数について、サーバsの全てのサービスの保持期間δ内のアクセス数の総和に対する割合が確率P(d')として算出される。
【0041】
すなわち、時刻tから保持期間δ内の学習結果に基づいて、確率P(d')が計算される。なお、確率P(d')に従って、サービスd'を選択することの意味は、第1の実施の形態と同様である。
【0042】
上述したように、第2の実施の形態によれば、古い学習結果に基づく誤推定の可能性を低下させることができる。
【0043】
次に、第3の実施の形態について説明する。第3の実施の形態では第1の実施の形態と異なる点について説明する。第3の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。
【0044】
第1の実施の形態では特定クライアントから膨大な量のアクセスがあった場合に確率分布が偏ってしまう。そこで、第3の実施の形態では、確率分布の偏りを回避する例について説明する。
【0045】
図6は、第3の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。図6中、図4と同一ステップには同一ステップ番号を付し、その説明は省略する。
【0046】
図6では、ステップS150に続いて、ステップS151が実行される。また、ステップS160の前に、ステップS155及びS156が実行される。
【0047】
ステップS151において、サービス学習部12は、Csj,dkにcを記録する。ここで、Csj,dkは、サーバsのサービスdにアクセスしたクライアントの集合である。cは、ステップS101において観測されたアクセスのアクセス元のクライアントの識別情報である。
【0048】
ステップS155において、サービス学習部12は、Csj,dkにcが含まれているか否かを判定する。すなわち、クライアントcが、サーバsのサービスdに既にアクセスしていたか否かが判定される。クライアントcが、サーバsのサービスdにアクセスしていなかった場合(S155でYes)、サービス学習部12は、Csj,dkにcを追加する(S156)。続いて、サービス学習部12は、Nsj(d)に1を加算した結果を、Nsj(d)に記録する(S160)。
【0049】
一方、クライアントcが、サーバsのサービスdにアクセスしていた場合(S155でNo)、ステップS156及びS160は実行されない。すなわち、第3の実施の形態において、同一のクライアントによる同一のサーバ及び同一のサービスに対するアクセスは、重複してカウントされない。したがって、Nsj(d)は、セッション数ではなく、クライアント数を意味する。その結果、アクセスの確率分布の偏りを回避することができる。
【0050】
なお、ステップS170の内容は、第1の実施の形態と同様でよい。
【0051】
次に、第4の実施の形態について説明する。第4の実施の形態では第3の実施の形態と異なる点について説明する。第4の実施の形態において特に言及されない点については、第3の実施の形態と同様でもよい。
【0052】
第4の実施の形態では、第3の実施の形態に対して第2の実施の形態が組み合わされる。
【0053】
図7は、第4の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。図7中、図6と同一ステップには同一ステップ番号を付し、その説明は省略する。
【0054】
図7では、ステップS120でYesの場合に、サービス学習部12は、T(c)に対して時刻tを記録する(S121)。T(c)は、クライアントcによる最後のアクセスが観測された時刻である。すなわち、第4の実施の形態では、アクセスが観測されたクライアントごとに、当該クライアントが最後にいずれかのサーバにアクセスした時刻が統計情報記憶部14のT(c)に記録される。
【0055】
なお、図7では、ステップS150及びS160は実行されなくてよい。
【0056】
また、図7では、ステップS170がステップS170bに置き換わる。ステップS170bにおいて、サービス推定部13は、以下の確率P(d')に従って、サービスd'を選択し、選択結果をサービスの推定結果とする。
【0057】
【数4】
すなわち、式(5)では、サーバsのサービスdにアクセスしたクライアントの集合であるCsj,dkのうち、T(c)が時刻tから遡って保持期間δ内のcが、Nsj(d)に代入される。すなわち、最後のアクセス時刻が保持期間δ内のcがNsj(d)に代入される。Nsj(d)は、サーバsの全てのサービスdkについて生成される。
【0058】
また、式(6)では、サーバsのサービスd'ごとに、当該サービスd'の保持期間δ内のクライアント数について、サーバsの全てのサービスの保持期間δ内のクライアント数の総和に対する割合が確率P(d')として算出される。なお、確率P(d')に従って、サービスd'を選択することの意味は、第1の実施の形態と同様である。
【0059】
なお、第1〜第4の実施の形態では、確率的にサービスd'が選択される。但し、以下の式に基づいて、決定的にサービスd'が選択されてもよい。
【0060】
【数5】
すなわち、式(7)は、第1及び第3の実施の形態のように、Nsj(d')がアクセス数又はクライアント数である場合に、最大のNsj(d')のサービスd'が選択されることを示す。また、式(8)は、第2及び第4の実施の形態のように、Nsj(d')がアクセス時刻の集合である場合に、要素数が最大のNsj(d')のサービスd'が選択されることを示す。
【0061】
次に、第5の実施の形態について説明する。第5の実施の形態では第1の実施の形態と異なる点について説明する。第5の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。なお、第5の実施の形態以降は、バッチ法に関する実施形態である。
【0062】
図8は、第5の実施の形態におけるサービス推定装置の機能構成例を示す図である。図8中、図3と同一又は対応する部分には同一符号を付している。
【0063】
図8において、サービス推定装置10は、サービス学習部12の代わりに統計化処理部15を有する。統計化処理部15は、HTTPSトラヒック情報に基づいて、所定期間(以下、「観測期間T」という。)におけるサービスへのアクセスのうち、SNI対応クライアントからのアクセスに関する統計情報を計測又は算出する。計測又は算出された統計情報は、統計情報記憶部14に記憶される。具体的には、統計化処理部15は、観測期間Tにおいて、SNI対応クライアントからのアクセスの通信量をサービス別に計測する。本実施の形態において、セッション数及びトラヒック量が通信量の一例である。
【0064】
サービス推定部13は、HTTPSトラヒック情報と、統計情報記憶部14に記憶された情報とに基づいて、観測期間TにおけるSNI非対応クライアントからのアクセスをも含む通信量を、サービス別に推定する。
【0065】
なお、HTTPSトラヒック情報には、観測期間Tにおける、いずれかのクライアントによる、いずれかのサーバのいずれかのサービスへのアクセス(セッション)ごとに、クライアントの識別情報、SNI情報、サーバの識別情報、及びトラヒック量を示す情報(以下、「アクセスログ」という。)が含まれている。但し、SNI情報は、SNI情報が含まれているアクセスについてのみアクセスログに含まれている。
【0066】
図9は、第5の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。図9の処理手順は、観測期間Tの後に、観測期間Tにおいて観測されたHTTPSトラヒック情報について実行される。
【0067】
ステップS201において、統計化処理部15は、HTTPSトラヒック情報においてSNIが含まれているアクセスログに基づいて、観測期間Tにおいていずれかのサーバsにアクセスした全てのSNI対応クライアントcsj={c,・・・,c}を特定する。
【0068】
続いて、統計化処理部15は、HTTPSトラヒック情報に基づいて、観測期間Tにおいてアクセスされたサーバsごとに、当該サーバsjが提供する全サービスDsj={d,・・・,d}を特定する(S202)。
【0069】
続いて、統計化処理部15は、SNI対応クライアントcごとに、サービスdごとのセッション数n(c,d)を、HTTPSトラヒック情報に基づいて集計する(S203)。続いて、統計化処理部15は、SNI対応クライアントcごとに、サービスdごとのトラヒック量v(c,d)を、HTTPSトラヒック情報に基づいて集計する(S204)。
【0070】
続いて、統計化処理部15は、各サーバsのサービスdごとの総セッション数Nsj(d)を、以下の演算により算出する(S205)。
【0071】
【数6】
すなわち、ステップS203において集計されたn(c,d)について、サーバsのサービスdごとの総和が算出される。
【0072】
続いて、統計化処理部15は、各サーバsのサービスdごとの総トラヒック量Vsj(d)を、以下の演算により算出する(S206)。
【0073】
【数7】
すなわち、ステップS204において集計されたv(c,d)について、サーバsのサービスdごとの総和が算出される。
【0074】
なお、ステップS205及びS206における算出結果は、統計情報記憶部14に記憶される。
【0075】
続いて、サービス推定部13は、HTTPSトラヒック情報のうち、SNI情報が含まれていないアクセスログに基づいて、全SNI非対応クライアントによるサーバsごとのセッション数N'sjを集計する(S207)。
【0076】
続いて、サービス推定部13は、HTTPSトラヒック情報のうち、SNI情報が含まれていないアクセスログに基づいて、全SNI非対応クライアントによるサーバsごとのトラヒック量V'sjを集計する(S208)。
【0077】
続いて、サービス推定部13は、以下の演算を行って、SNI対応クライアント及びSNI非対応クライアントを問わない全てのクライアントと、各サーバsの各サービスdとの総セッション数Nsj(d)を算出する(S209)。
【0078】
【数8】
すなわち、ステップS206の算出結果に対して、Nsj(d)の確率にN'sjを乗じた値を加算した結果が、Nsj(d)の推定値として算出される。換言すれば、ステップS205において算出された各Nsj(d)の比に基づいて、各Nsj(d)に対してN'sjが配分される。
【0079】
続いて、サービス推定部13は、以下の演算を行って、SNI対応クライアント及びSNI非対応クライアントを問わない全てのクライアントと、各サーバsの各サービスdとのトラヒック量Vsj(d)を算出する(S210)。
【0080】
【数9】
すなわち、ステップS207の算出結果に対して、Vsj(d)の確率にN'sjを乗じた値を加算した結果が、Vsj(d)の推定値として算出される。換言すれば、ステップS206において算出された各Vsj(d)の比に基づいて、各Vsj(d)に対してV'sjが配分される。
【0081】
上述したように、第5の実施の形態によれば、過去の一定期間における観測結果に基づいて、SNI非対応のクライアントによるアクセスも含む、各サービスへのアクセスの統計情報を得ることができる。
【0082】
次に、第6の実施の形態について説明する。第6の実施の形態では第5の実施の形態と異なる点について説明する。第6の実施の形態において特に言及されない点については、第5の実施の形態と同様でもよい。
【0083】
一般的に、サービスの内容が異なる場合、セッションあたりのトラヒック量(以下、「セッション長」という。)の分布も異なる。例えば、動画サービスの場合はセッション長が相対的に長くなり、Webページなどのテキストではセッション長は相対的に短くなる。第6の実施の形態では、このような事情を考慮することで推定精度を向上させる。
【0084】
図10は、第6の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。
【0085】
ステップS301において、統計化処理部15は、HTTPSトラヒック情報に基づいて、観測期間Tにおいてアクセスされたサーバsごとに、当該サーバsが提供する全サービスDsj={d,・・・,d}を特定する。
【0086】
続いて、統計化処理部15は、サーバsごとに以下の演算を行うことにより、各サーバsの各サービスdのセッション長の確率分布であるセッション長分布Lsj(d)を算出する。
【0087】
【数10】
但し、ndk(l)は、サービスdについてセッション長lのセッションが観測された回数である。ndk(l)は、HTTPSトラヒック情報から集計可能である。また、lは、0〜∞の任意のセッション長である。ここで、便宜上セッション長の最大値を∞と表現しているが、実際には過去に観測された最大のセッション長を記録しておき、その値とすれば良い。すなわち、ステップS302では、サービスdについて、ndk(l)の総和が求められ、0〜∞の各セッション長lの観測回数ndk(l)について、当該総和に対する割合の分布が算出される。
【0088】
続いて、サービス推定部13は、HTTPSトラヒック情報に含まれているアクセスログのうち、SNI情報が含まれていないアクセスログに基づいて、観測期間Tにおける、SNI非対応クライアントからのサーバsへの各アクセス(セッション)を特定し、それぞれのアクセスのセッション長lに基づいて、以下の確率P(d')に従って、各アクセスのサービスd'を選択する(S303)。選択結果が、サービスの推定結果とされる。
【0089】
【数11】
なお、確率P(d')に従って、サービスd'を選択することの意味は、第1の実施の形態と同様である。
【0090】
なお、第6の実施の形態において、セッション長は、予め定められた区間ごとの代表値によって表現されてもよい。
【0091】
次に、第7の実施の形態について説明する。第7の実施の形態では第6の実施の形態と異なる点について説明する。第7の実施の形態において特に言及されない点については、第6の実施の形態と同様でもよい。
【0092】
例えば、負荷分散等のために、複数のサーバによって同一のサービスが提供される場合がある。そして、サービスの内容が同一である場合、サーバが異なってもセッションあたりのトラヒック量(セッション長)の分布は同一となる又は類似したものとなる可能性が高い。第7の実施の形態では、このような事情を考慮して推定精度の向上を図る。
【0093】
図11は、第7の実施の形態におけるサービス推定装置が実行する処理手順の一例を説明するためのフローチャートである。
【0094】
ステップS401において、統計化処理部15は、HTTPSトラヒック情報に基づいて、観測期間Tにおいてアクセスされた全サービスD={d,・・・,d}を特定する。ここでは、サーバの別は考慮されない。
【0095】
続いて、統計化処理部15は、以下の演算を行うことにより、各サービスdのセッション長分布L(d)を算出する(S402)。
【0096】
【数12】
但し、ndk(l)は、サービスdについてセッション長lのセッションが観測された回数である。また、lは、0〜∞の任意のセッション長である。すなわち、ステップS402では、サービスdについて、ndk(l)の総和が求められ、0〜∞の各セッション長lの観測回数ndk(l)について、当該総和に対する割合の分布が算出される。
【0097】
続いて、サービス推定部13は、HTTPSトラヒック情報に含まれているアクセスログのうち、SNI情報が含まれていないアクセスログに基づいて、観測期間Tにおける、SNI非対応クライアントからのサーバsへの各アクセス(セッション)を特定し、それぞれのアクセスのセッション長lに基づいて、以下の確率P(d')に従って、各アクセスのサービスd'を選択する(S403)。選択結果が、サービスの推定結果とされる。
【0098】
【数13】
なお、確率P(d')に従って、サービスd'を選択することの意味は、第1の実施の形態と同様である。
【0099】
なお、第7の実施の形態において、セッション長は、予め定められた区間ごとの代表値によって表現されてもよい。
【0100】
なお、第6及び第7の実施の形態では、確率的にサービスd'が選択される。但し、ステップS303又はS403では、以下の式に基づいて、決定的にサービスd'が選択(推定)されてもよい。
【0101】
【数14】
すなわち、サービス推定部13は、HTTPSトラヒック情報に含まれているアクセスログのうち、SNI情報が含まれていないアクセスログに基づいて、観測期間Tにおける、SNI非対応クライアントからのサーバsへの各アクセス(セッション)を特定し、それぞれのアクセスのセッション長lについて、観測回数が最大であるサービスd'をアクセス先として推定する。
【0102】
なお、上記各実施の形態において、サービス学習部12は、学習部の一例である。サービス推定部13は、推定部の一例である。統計化処理部15は、計測部及び算出部の一例である。
【0103】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0104】
10 サービス推定装置
11 SNI判定部
12 サービス学習部
13 サービス推定部
14 統計情報記憶部
15 統計化処理部
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
B バス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11