(57)【特許請求の範囲】
【請求項１】
ネットワークにおいて観測されるＤＮＳレスポンスに含まれる各Ａレコード又は各ＣＮＡＭＥレコードに含まれる名前及びＩＰアドレスをノードとし、当該各Ａレコード又は当該各ＣＮＡＭＥレコードにおける、前記名前及び前記ＩＰアドレスの対応関係を枝とするグラフ情報を、当該ＤＮＳレスポンスに対応するクライアントに対応付けて生成する生成部と、
ネットワークにおいて観測される、クライアントとサーバとの間のパケットについて、当該クライアントに対応付けられている前記グラフ情報において、当該サーバのＩＰアドレスに対応するノードから枝を辿ることで到達可能な葉ノードに係る名前を特定する特定部とを有し、
前記生成部は、ＤＮＳレスポンスが観測されるたびに、当該ＤＮＳレスポンスに含まれる各Ａレコード及び各ＣＮＡＭＥレコードに基づいて、当該ＤＮＳレスポンスに対応するクライアントに対応付けられている前記グラフ情報を更新するとともに、当該ＤＮＳレスポンスに対応するＤＮＳクエリに指定された名前に対応するノードから到達可能な、名前に係る葉ノードごとに、当該葉ノードに係る名前と、当該ＤＮＳレスポンスの各Ａレコードに含まれる各ＩＰアドレスとの組み合わせごとの頻度情報を更新し、
前記特定部は、観測されるクライアントとサーバとの間のパケットについて、当該クライアントに対応付けられている前記グラフ情報において、当該サーバのＩＰアドレスに対応するノードから枝を辿ることで到達可能な複数の葉ノードの中から、当該サーバのＩＰアドレスと当該各葉ノードの名前との各組み合わせに対する前記頻度情報に基づいて一つの葉ノードを選択する、
ことを特徴とする名前特定装置。
【請求項２】
前記生成部は、前記グラフ情報の各枝に対し、当該枝に対応する対応関係に関してＤＮＳレスポンスに含まれている有効期限に基づく期限を付与し、
前記特定部は、クライアントとサーバとの間のパケットについて、当該クライアントに対応付けられている前記グラフ情報において、当該サーバのＩＰアドレスに対応するノードから枝を辿ることで到達可能な複数の葉ノードの中で、期限切れの枝を辿らずに到達可能な葉ノードを優先して名前を特定する、
ことを特徴とする請求項１記載の名前特定装置。
【請求項３】
コンピュータが、
ネットワークにおいて観測されるＤＮＳレスポンスに含まれる各Ａレコード又は各ＣＮＡＭＥレコードに含まれる名前及びＩＰアドレスをノードとし、当該各Ａレコード又は当該各ＣＮＡＭＥレコードにおける、前記名前及び前記ＩＰアドレスの対応関係を枝とするグラフ情報を、当該ＤＮＳレスポンスに対応するクライアントに対応付けて生成する生成手順と、
ネットワークにおいて観測される、クライアントとサーバとの間のパケットについて、当該クライアントに対応付けられている前記グラフ情報において、当該サーバのＩＰアドレスに対応するノードから枝を辿ることで到達可能な葉ノードに係る名前を特定する特定手順とを実行し、
前記生成手順は、ＤＮＳレスポンスが観測されるたびに、当該ＤＮＳレスポンスに含まれる各Ａレコード及び各ＣＮＡＭＥレコードに基づいて、当該ＤＮＳレスポンスに対応するクライアントに対応付けられている前記グラフ情報を更新するとともに、当該ＤＮＳレスポンスに対応するＤＮＳクエリに指定された名前に対応するノードから到達可能な、名前に係る葉ノードごとに、当該葉ノードに係る名前と、当該ＤＮＳレスポンスの各Ａレコードに含まれる各ＩＰアドレスとの組み合わせごとの頻度情報を更新し、
前記特定手順は、観測されるクライアントとサーバとの間のパケットについて、当該クライアントに対応付けられている前記グラフ情報において、当該サーバのＩＰアドレスに対応するノードから枝を辿ることで到達可能な複数の葉ノードの中から、当該サーバのＩＰアドレスと当該各葉ノードの名前との各組み合わせに対する前記頻度情報に基づいて一つの葉ノードを選択する、
ことを特徴とする名前特定方法。
【請求項４】
前記生成手順は、前記グラフ情報の各枝に対し、当該枝に対応する対応関係に関してＤＮＳレスポンスに含まれている有効期限に基づく期限を付与し、
前記特定手順は、クライアントとサーバとの間のパケットについて、当該クライアントに対応付けられている前記グラフ情報において、当該サーバのＩＰアドレスに対応するノードから枝を辿ることで到達可能な複数の葉ノードの中で、期限切れの枝を辿らずに到達可能な葉ノードを優先して名前を特定する、
ことを特徴とする請求項３記載の名前特定方法。
【請求項５】
請求項３又は４記載の名前特定方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、名前特定装置、名前特定方法、及びプログラムに関する。
【背景技術】
【０００２】
通信事業者は、ネットワークのトラフィックを測定し、通信種別の内訳を明らかにして、運用管理に役立てる。ここで、通信種別とは、ＳＭＴＰ（Simple Mail Transfer Protocol）やＨＴＴＰ（HyperText Transfer Protocol）のようにポート番号で区別できるプロトコル種別だけでなく、ＨＴＴＰ上で実現されているＹｏｕＴｕｂｅ（登録商標）やＬＩＮＥなどの様々なサービスの種別をも含む概念である。サービスの種別は、例えば、ＨＴＴＰヘッダのＵＲＬ（Uniform Resource Locator）に記載されたyoutube.comやline.meのようなホスト名から、推定することができる。
【０００３】
しかし、近年、多くのＨＴＴＰフローがＳＳＬ（Secure Socket Layer）／ＴＬＳ（Transport Layer Security）によって暗号化されており、ＵＲＬを含むＨＴＴＰヘッダの情報の観測が困難になっている。また、ＣＤＮ（Contents Delivery Network）の普及により、サーバのＩＰアドレスを逆引きして得られるホスト名は、e566.dspe1.akamaiedge.netのようなＣＤＮ事業者を表すことが多く、サービスの識別に利用できない。
【０００４】
そこで、非特許文献１では、クライアントが通信を行う前にＤＮＳ（Domain Name System）を用いてホスト名をＩＰアドレスに変換することを利用して、暗号フローからクライアントのＩＰアドレスとサーバのＩＰアドレスとを取得し、当該暗号フローに対応するＤＮＳレスポンスからホスト名を推定する技術が開示されている。この技術は、通信事業者が利用することを想定している。クライアントが行うすべての通信は通信事業者を通過するが、通信事業者は暗号フローの内容を理解できないと仮定する。
【０００５】
非特許文献１について更に詳しく説明する。ここで、クライアントのＩＰアドレスの集合をＣとする。同様に、サーバのＩＰアドレスの集合をＳとする。また、サーバのホスト名の集合をＮとする。
【０００６】
クライアントが送信するＤＮＳクエリは、名前ｎ∈Ｎに対するサーバＩＰアドレスｓ∈Ｓを問い合わせる。回答であるＤＮＳレスポンスは、ｎ∈Ｎをｓ∈Ｓに対応付けるＡレコード：ｎ→ｓと、別の名前ｎ'∈Ｎとｎとの対応付けを行うＣＮＡＭＥレコード：ｎ'→ｎとを含む。
【０００７】
図１は、ＤＮＳクエリとＤＮＳレスポンスとの例を示す図である。図１には、ＤＮＳクエリｑ１と、ＤＮＳクエリｑ１に対するＤＮＳレスポンスｒ１とが示されている。ＤＮＳクエリｑ１において名前解決の対象は、「www.ieee.org」である。ＤＮＳレスポンスｒ１には、２つのＡレコードと、２つのＣＮＡＭレコードとが含まれている。ＤＮＳレスポンスｒ１の例では、名前解決の対象である「www.ieee.org」の各別名に対するＡレコードが含まれている。なお、各レコードに付与されている括弧内の秒数は、各レコードの有効期限を示す。
【０００８】
非特許文献１の技術は、ＤＮＳレスポンスを監視し、クライアントｃ∈Ｃとサーバｓ∈Ｓごとに、解決された名前ｎ∈Ｎを対応付けて管理する（Ｃ×Ｓ→Ｎ）。図１の例では、クライアントのＩＰアドレスを1.1.1.1とすると、
・(1.1.1.1, 23.2.132.181) → www.ieee.org
・(1.1.1.1, 23.10.1.125) → www.ieee.org
という２つの対応関係が記憶される。暗号フローが観測されたら、当該暗号フローのヘッダに含まれている、クライアントのＩＰアドレスとサーバのＩＰアドレスとの組に対応付けられているホスト名によって、サービスが識別される。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】I. N. Bermudez, M. Mellia, M. M. Munafo, R. Keralapura, and A. Nucci, "Dns to the rescue: Discerning content and services in a tangled web," in Proceedings of the 2012 ACM Conference on Internet Measurement Conference, ser. IMC'12, 2012, pp.413-426.
【発明の概要】
【発明が解決しようとする課題】
【００１０】
非特許文献１の技術では、クライアントのＩＰアドレス及びサーバのＩＰアドレスごとに、直近のホスト名のみが管理される。しかし、ＤＮＳレスポンスは、キャッシュされて後で再利用されることもあるため、必ずしも直近に問い合わせのあったホスト名が正解になるとは限らない。また、ＣＤＮではe566.dspe1.akamaiedge.netのようなＣＮＡＭＥ（別名）が使われ、その名前に対する問い合わせが行われることもあり、その際にホスト名として記憶された値（ＣＮＡＭＥ）によってサービスを識別するのは困難である。
【００１１】
この点について具体的に説明する。クライアントは、或る名前に関するＤＮＳレスポンスを受信すると、ＤＮＳレスポンスをキャッシュしておく。そして、当該名前宛に再び通信を行うときは、ＤＮＳクエリを送信することなく、キャッシュされているＤＮＳレスポンスを参照して、当該名前に対応するＩＰアドレスを探索する。但し、ＡレコードとＣＮＡＭＥレコードとには有効期限が有るため、探索に必要ないずれかのレコードが期限切れになった場合には、ＤＮＳクエリが送信される。
【００１２】
図１では、Ａレコードの有効期限が最短であるため、ＤＮＳレスポンスｒ１に含まれるレコードの中で最初に期限切れとなる。この場合、クライアントは、元のwww.ieee.orgという名前ではなく、e.1630.c.akamaiedge.netという名前（別名）に対してＤＮＳクエリを送信する。このクエリに対するレスポンスは、e.1630.c.akamaiedge.netをＩＰアドレスに対応付けるＡレコードのみを含む。
【００１３】
非特許文献１の技術は直近のレスポンスのみを管理するため、この場合、
・(1.1.1.1, 23.2.132.181) → e.1630.c.akamaiedge.net
・(1.1.1.1, 23.10.1.125) → e.1630.c.akamaiedge.net
という対応関係が記憶されることになる。そうすると、(1.1.1.1, 23.2.132.181)又は(1.1.1.1, 23.10.1.125)に係る暗号フローに関して推定されるホスト名はe.1630.c.akamaiedge.netとなり、サービスの種別を表すwww.ieee.orgにならない。
【００１４】
本発明は、上記の点に鑑みてなされたものであって、別名を用いた名前解決が行われた場合のホスト名の推定精度を向上させることを目的とする。
【課題を解決するための手段】
【００１５】
そこで上記課題を解決するため、名前特定装置は、ネットワークにおいて観測されるＤＮＳレスポンスに含まれる各Ａレコード又は各ＣＮＡＭＥレコードに含まれる名前及びＩＰアドレスをノードとし、当該各Ａレコード又は当該各ＣＮＡＭＥレコードにおける、前記名前及び前記ＩＰアドレスの対応関係を枝とするグラフ情報を、当該ＤＮＳレスポンスに対応するクライアントに対応付けて生成する生成部と、ネットワークにおいて観測される、クライアントとサーバとの間のパケットについて、当該クライアントに対応付けられている前記グラフ情報において、当該サーバのＩＰアドレスに対応するノードから枝を辿ることで到達可能な葉ノードに係る名前を特定する特定部とを有し、前記生成部は、ＤＮＳレスポンスが観測されるたびに、当該ＤＮＳレスポンスに含まれる各Ａレコード及び各ＣＮＡＭＥレコードに基づいて、当該ＤＮＳレスポンスに対応するクライアントに対応付けられている前記グラフ情報を更新するとともに、当該ＤＮＳレスポンスに対応するＤＮＳクエリに指定された名前に対応するノードから到達可能な、名前に係る葉ノードごとに、当該葉ノードに係る名前と、当該ＤＮＳレスポンスの各Ａレコードに含まれる各ＩＰアドレスとの組み合わせごとの頻度情報を更新し、前記特定部は、観測されるクライアントとサーバとの間のパケットについて、当該クライアントに対応付けられている前記グラフ情報において、当該サーバのＩＰアドレスに対応するノードから枝を辿ることで到達可能な複数の葉ノードの中から、当該サーバのＩＰアドレスと当該各葉ノードの名前との各組み合わせに対する前記頻度情報に基づいて一つの葉ノードを選択する。
【発明の効果】
【００１６】
別名を用いた名前解決が行われた場合のホスト名の推定精度を向上させることができる。
【図面の簡単な説明】
【００１７】
【図１】ＤＮＳクエリとＤＮＳレスポンスとの例を示す図である。
【図２】本発明の実施の形態におけるネットワーク構成例を示す図である。
【図３】本発明の実施の形態における推定装置のハードウェア構成例を示す図である。
【図４】本発明の実施の形態における推定装置の機能構成例を示す図である。
【図５】ＤＮＧの一例を示す図である。
【図６】ＤＮＳレスポンスの観測時に推定装置が実行する処理手順の一例を説明するためのフローチャートである。
【図７】ＤＮＧの枝の削除処理の処理手順の一例を説明するためのフローチャートである。
【図８】クライアントとサーバとの間の暗号パケットの観測時に推定装置が実行する処理手順の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【００１８】
以下、図面に基づいて本発明の実施の形態を説明する。図２は、本発明の実施の形態におけるネットワーク構成例を示す図である。図２において、１以上のクライアント２０は、１以上のサーバ３０及びＤＮＳ（Domain Name System）サーバ４０と、ＬＡＮ（Local Area Network）又はインターネット等のネットワークを介して通信可能である。また、推定装置１０は、各クライアント２０と各サーバ３０との間の通信、及び各クライアント２０とＤＮＳサーバ４０との間の通信を観測可能なように、ネットワークに接続される。
【００１９】
各クライアント２０は、サーバ３０が提供するサービスに関して要求を送信するコンピュータである。各サーバ３０は、クライアント２０から要求されたサービスに係る処理を実行するコンピュータである。例えば、各サーバ３０は、Ｗｅｂサーバであってもよい。
【００２０】
ＤＮＳサーバ４０は、一般的なＤＮＳサーバである。本実施の形態において、ＤＮＳサーバ４０は、クライアント２０からのＤＮＳクエリに指定されたホスト名又はドメイン名（以下、「ホスト名」で統一する。）に対応するＩＰアドレスを含むＤＮＳレスポンスを、クライアント２０に返信する。
【００２１】
推定装置１０は、クライアント２０からのＤＮＳクエリに対するＤＮＳサーバ４０からのＤＮＳレスポンスを観測又は監視（以下、「観測」で統一する）し、観測されたＤＮＳレスポンスに基づいて、クライアント２０とサーバ３０との間でやりとりされるパケット（例えば、ＩＰ（Internet Protocol）パケット）に係るサービスの識別名を推定する１以上のコンピュータである。パケットに係るサービスの識別名とは、当該パケットに係る要求又は応答に関するサービスの識別名（以下、「サービス名」という。）をいう。一般的に、ホスト名は、サービスごとにことなる。したがって、本実施の形態では、サーバ３０のホスト名がサービス名の一例として用いられる。推定装置１０は、例えば、ＩＳＰ（Internet Service Provider）等の通信事業者によって運用されてもよい。
【００２２】
図３は、本発明の実施の形態における推定装置のハードウェア構成例を示す図である。図３の推定装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００２３】
推定装置１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００２４】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って推定装置１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００２５】
図４は、本発明の実施の形態における推定装置の機能構成例を示す図である。図４において、推定装置１０は、ＤＮＧ生成部１１、枝削除部１２、及び推定部１３を有する。これら各部は、推定装置１０にインストールされる１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。推定装置１０は、また、ＤＮＧ記憶部１４及び頻度リスト記憶部１５を利用する。これら各記憶部は、例えば、補助記憶装置１０２、又は推定装置１０にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【００２６】
ＤＮＧ生成部１１は、ＤＮＳサーバ４０からのＤＮＳレスポンスを観測し、観測されたＤＮＳレスポンスに含まれる各Ａレコード又は各ＣＮＡＭＥレコードに含まれる名前（ホスト名又は別名）及びＩＰアドレスをノードとし、当該各Ａレコード又は当該各ＣＮＡＭＥレコードにおける名前及びＩＰアドレスの対応関係を枝とするグラフ情報を生成する。以下、当該グラフ情報をＤＮＧ（domain name graph）という。生成されたＤＮＧは、ＤＮＳレスポンスに対応するＤＮＳクエリの送信元のクライアント２０のＩＰアドレスに対応付けられてＤＮＧ記憶部１４に記憶される。
【００２７】
図５は、ＤＮＧの一例を示す図である。図５に示されるグラフｇ１は、図１に示したＤＮＳレスポンスｒ１に基づいて生成されるＤＮＧである。すなわち、グラフｇ１における各ノードは、ＤＮＳレスポンスｒ１の各Ａレコード又は各ＣＮＡＭＥレコードに含まれる名前（ホスト名若しくは別名）又はＩＰアドレスに対応する。また、グラフｇ１における各枝は、これらの名前及びＩＰアドレスの対応関係に対応する。なお、各枝は、対応関係における参照の方向に対応した向きを有する。但し、各枝は、必ずしも有向枝でなくてもよい。
【００２８】
また、各枝には、当該枝に対応する対応関係に関してＤＮＳレスポンスｒ１に含まれている有効期限に基づく期限が付与される。図５では、便宜上、ＤＮＳレスポンスｒ１に含まれている有効期限がそのまま各枝に付与されているが、厳密には、当該有効期限の日時を特定可能な情報が、各枝に付与される。例えば、ＤＮＳレスポンスｒ１に含まれている有効期限の起点となる日時と当該有効期限とが付与されてもよいし、当該起点となる日時に当該有効期限を加算して得られる日時が付与されてもよい。
【００２９】
なお、各ＤＮＧの構造は、当該ＤＮＧに対応するクライアント２０に係るＤＮＳレスポンスが観測されるたびに更新される。
【００３０】
ＤＮＧ生成部１１は、また、ＤＮＳレスポンスの観測に応じ、頻度リスト記憶部１５に記憶されている頻度リストの更新も行う。頻度リストとは、名前ｎとサーバ３０のＩＰアドレスｓとの組み合わせ（ｎ、ｓ）をキーとし、当該組み合わせに係る問い合わせ回数（ＤＮＳクエリの回数）を値とする連想配列である。頻度リストについても、クライアント２０ごとに管理される。
【００３１】
枝削除部１２は、各ＤＮＧを構成する枝の中で、期限切れとなった枝を削除する。
【００３２】
推定部１３は、各クライアント２０と各サーバ３０との間の暗号パケットを観測し、観測された暗号パケットに係るクライアント２０に対応するＤＮＧと、当該クライアント２０に対応する頻度リストとに基づいて、当該暗号パケットに係るサービス名を推定する。なお、暗号パケットとは、ペイロード部が暗号化されているパケットをいう。但し、暗号化されていないパケットに関して本実施の形態が適用されてもよい。
【００３３】
以下、推定装置１０が実行する処理手順について説明する。図６は、ＤＮＳレスポンスの観測時に推定装置が実行する処理手順の一例を説明するためのフローチャートである。
【００３４】
ＤＮＧ生成部１１は、ネットワーク上においてＤＮＳレスポンス（以下、「対象ＤＮＳレスポンス」という。）が観測されると（Ｓ１０１でＹｅｓ）、対象ＤＮＳレスポンスに係るクライアント２０（以下、「対象クライアント２０」という。）に対応するＤＮＧを、ＤＮＧ記憶部１４から取得する（Ｓ１０２）。対象クライアント２０に対応するＤＮＧとは、対象ＤＮＳレスポンスのパケットの宛先ＩＰアドレスに対応付けられているＤＮＧをいう。該当するＤＮＧが取得された場合（Ｓ１０３でＹｅｓ）、当該ＤＮＧが処理対象とされてステップＳ１０５以降が実行される。該当するＤＮＧが取得されなかった場合（Ｓ１０３でＮｏ）、ＤＮＧ生成部１１は、対象ＤＮＳレスポンスのパケットの宛先ＩＰアドレスに対応するＤＮＧを新たに生成する（Ｓ１０４）。但し、この時点において、新たなＤＮＧの内容は空である。この場合、当該新たなＤＮＧが処理対象とされてステップＳ１０５以降が実行される。以下、ステップＳ１０５以降において処理対象であるＤＮＧを、「対象ＤＮＧ」という。
【００３５】
続いて、ＤＮＧ生成部１１は、対象ＤＮＳレスポンスに含まれているＡレコード及びＣＮＡＭＥレコードのうちの一つのレコード（以下、「対象レコード」という。）を処理対象として取得する（Ｓ１０５）。続いて、ＤＮＧ生成部１１は、対象レコードに対応する枝及びノードを、対象ＤＮＧに追加する（Ｓ１０６）。例えば、対象レコードがＡレコードであれば、当該Ａレコードに含まれている名前とＩＰアドレスとのそれぞれのノードと、当該ノード間を接続する枝とが追加される。また、対象レコードがＣＮＡＭＥレコードであれば、当該ＣＮＡＭＥレコードに含まれている各名前に対応するノードと、当該ノード間を接続する枝とが追加される。なお、既に存在するノード又は枝については追加されなくてよい。このように、ＤＮＧは、ＤＮＳレスポンスが観測されるたびに更新される。なお、ＤＮＧを表現するデータ構造は、所定のものに限定されない。例えば、各ノード及び各枝は、オブジェクト又は構造体によって表現されてもよい。又は、各ノード及び各枝が、データベースのレコードによって表現されてもよい。
【００３６】
続いて、ＤＮＧ生成部１１は、対象レコードに対応する枝に付与されている期限を更新する（Ｓ１０７）。例えば、対象レコードに含まれている有効期限を現在日時に加算することで得られる日時が、当該枝に付与される。
【００３７】
ステップＳ１０５〜Ｓ１０７は、対象ＤＮＳレスポンスに含まれている全てのＡレコード及びＣＮＡＭＥレコードについて実行される（Ｓ１０８）。したがって、例えば、図１のＤＮＳレスポンスｒ１が対象ＤＮＳレスポンスである場合、２つのＡレコードと、２つのＣＮＡＭＥレコードとのそれぞれについて、ステップＳ１０５〜Ｓ１０７が実行される。この場合、対象ＤＮＧが新たなＤＮＧであれば、図５に示されるグラフｇ１が生成される。なお、生成又は更新された対象ＤＮＧは、ＤＮＧ記憶部１４に記憶される。
【００３８】
対象ＤＮＳレスポンスに含まれている全てのＡレコード及びＣＮＡＭＥレコードについてステップＳ１０５〜Ｓ１０７の実行が完了すると（Ｓ１０８でＹｅｓ）、ＤＮＧ生成部１１は、対象ＤＮＧにおいて、対象ＤＮＳレスポンスに対応するＤＮＳクエリに指定されている名前ｎ＊に到達可能な、名前に係る葉ノードの集合を探索する（Ｓ１０９）。探索された各葉ノードに係る名前の集合を、Ｎ'と記す。なお、図１では省略されているが、一般的に、ＤＮＳレスポンスにはＤＮＳクエリの内容が含まれているため、対象ＤＮＳレスポンスに対応するＤＮＳクエリに指定されている名前ｎ＊は、対象ＤＮＳレスポンスに基づいて特定可能である。
【００３９】
ここで、「名前に係る葉ノード」とは、ＤＮＧには、ＩＰアドレスに係る葉ノードも存在するところ、ＩＰアドレスに係る葉ノードを除く趣旨である。また、ＤＮＳクエリに指定されている名前ｎ＊に到達可能な葉ノードとは、対象ＤＮＧの枝を辿ることにより、名前ｎ＊に係るノードに到達可能な葉ノードをいう。ＤＮＳクエリには、図１のe1630.c.akamaiedge.netのように大元の名前ではない別名が指定されている可能性もあるため、大元の名前を特定するために、このような葉ノードの集合が探索される。なお、図５のグラフｇ１が対象ＤＮＧである場合、Ｎ'には、www.ieee.orgのみが含まれるが、対象ＤＮＧの構造によっては、複数の名前がＮ'に含まれうる。
【００４０】
続いて、ＤＮＧ生成部１１は、Ｎ'の一つの要素ｎ'（すなわち、名前ｎ'）を処理対象として取得する（Ｓ１１０）。続いて、ＤＮＧ生成部１１は、対象ＤＮＳレスポンスの一つのＡレコード（ｎ，ｓ）を処理対象として取得する（Ｓ１１１）。ここで、（ｎ，ｓ）のｎは、当該Ａレコードに含まれる名前を示し、ｓは、当該Ａレコードに含まれるＩＰアドレス（すなわち、いずれかのサーバ３０のＩＰアドレス）を示す。
【００４１】
続いて、ＤＮＧ生成部１１は、頻度リスト記憶部１５に記憶されている頻度リストの中で、対象クライアント２０のＩＰアドレスに対応付けられている頻度リストＦｃの要素のうち、（ｎ'，ｓ）をキーとする要素の値に１を加算する（Ｓ１１２）。なお、加算される値は、１に限定されない。例えば、Ｎ'の要素数に応じて加算値が割り引かれてもよい。例えば、１／（Ｎ'の要素数）が、加算値とされてもよい。
【００４２】
ステップＳ１１１及びＳ１１２は、対象ＤＮＳレスポンスに含まれている全てのＡレコードについて実行される（Ｓ１１３）。更に、当該全てのＡレコードに関して実行されるステップＳ１１１及びＳ１１２は、Ｎ'に含まれる名前ごとに実行される（Ｓ１１４）。したがって、図１のＤＮＳレスポンスｒ１が対象ＤＮＳレスポンスであり、図５のグラフｇ１が対象ＤＮＧである場合、頻度リストＦｃにおいて、（www.ieee.org,23.2.132.181）の組み合わせをキーとする要素の値と、（www.ieee.org,23.10.1.125）の組み合わせをキーとする要素の値とが更新される。
【００４３】
なお、本実施の形態では、ＤＮＧと頻度リストとがクライアント２０ごとに管理される例が示されているが、全てのクライアント２０に関して１つのＤＮＧが生成されてもよい。また、全てのクライアント２０に関して１つの頻度リストが管理されてもよい。この場合、頻度リストのキーは（ｎ，ｓ）ではなく、（ｎ，ｓ，ｃ）とされてもよい。ｃは、クライアント２０のＩＰアドレスを示す。すなわち、頻度リストの要素のキーによって、対応するクライアント２０が区別されてよい。
【００４４】
続いて、枝削除部１２が実行する処理手順について説明する。図７は、ＤＮＧの枝の削除処理の処理手順の一例を説明するためのフローチャートである。
【００４５】
例えば、枝削除部１２は、一定時間ごとにステップＳ２０２以降を実行する（Ｓ２０１）。ステップＳ２０２において、枝削除部１２は、ＤＮＧ記憶部１４に記憶されているいずれかのＤＮＧを構成する枝の中で、付与されている期限が、現在日時より前である枝を検索する。該当する枝が有る場合（Ｓ２０２でＹｅｓ）、枝削除部１２は、当該枝に削除フラグを付与する（Ｓ２０３）。削除フラグとは、枝が削除されたこと（枝の有効期限が切れたこと）を示す、枝の属性情報の一つである。なお、枝を完全に削除しないのは、後述される推定部１３による処理によって、大元の名前が一つも特定されないといった事態を避けるためである。また、図６のステップＳ１０６において追加される枝に対応する枝が既に存在し、削除フラグが付与されている場合、既に存在する枝の削除フラグは除去される。
【００４６】
続いて、クライアント２０とサーバ３０との間でやりとりされる暗号パケットの観測時に実行される処理手順について説明する。図８は、クライアントとサーバとの間の暗号パケットの観測時に推定装置が実行する処理手順の一例を説明するためのフローチャートである。
【００４７】
推定部１３は、ネットワーク上において暗号パケット（以下、「対象パケット」という。）が観測されると（Ｓ３０１でＹｅｓ）、対象パケットのヘッダ部から、クライアント２０のＩＰアドレスｃと、サーバ３０のＩＰアドレスｓとを抽出する（Ｓ３０２）。ｃとｓとは、対象パケットの送信元ＩＰアドレス又は宛先ＩＰアドレスである。推定装置１０がＩＳＰ等によって運用される場合、各クライアント２０のＩＰアドレスは、ＩＳＰによって割り当てられる。換言すれば、推定装置１０は、クライアント２０のＩＰアドレスの一覧を保持することができる。斯かる一覧に基づいて、送信元ＩＰアドレス又及び宛先ＩＰアドレスのいずれがクライアント２０のＩＰアドレスｃであるかが特定されてもよい。
【００４８】
続いて、推定部１３は、クライアント２０のＩＰアドレスｃに対応付けられているＤＮＧを、ＤＮＧ記憶部から取得する（Ｓ３０３）。当該ＤＮＧを、以下「グラフＧｃ」という。
【００４９】
続いて、推定部１３は、グラフＧｃにおいて、サーバ３０のＩＰアドレスｓのノードに到達可能な、名前に係る葉ノードを探索する（Ｓ３０４）。ここでは、削除フラグが付与されている枝を使用しないことが到達可能であることの要件とされる。また、削除フラグが付与されていない枝のみによって到達可能であっても、その先に削除フラグが付与されている枝が接続されているノードは、探索対象から除外される。すなわち、大元の名前に対応する葉ノードが探索対象とされる。
【００５０】
該当する葉ノードが１以上有る場合（Ｓ３０４でＹｅｓ）、推定部１３は、該当する各葉ノードに係る名前について、クライアント２０のＩＰアドレスｃに対応する頻度リストＦｃにおいて、当該名前ｎとサーバ３０のＩＰアドレスｓとの組み合わせ（ｎ，ｓ）をキーとする要素の値Ｆｃ（ｎ，ｓ）を取得する（Ｓ３０６）。続いて、推定部１３は、取得された値が最大である名前を特定（選択）する（Ｓ３０７）。すなわち、当該名前が、対象パケットに係るサービス名として推定される。但し、取得された値が上位のＮ番目までの名前が選択されてもよい。すなわち、複数の名前が特定されてもよい。また、別途、名前ごとの人気度を示す情報を入手可能な場合には、当該人気度によって重み付けが行われて、名前の選択が行われてもよい。人気度の一例として、アクセスランキング等が挙げられる。なお、ステップＳ３０４において、該当する葉ノードが１つである場合、ステップＳ３０６は実行されずに、当該葉ノードに係る名前が、サービス名として推定されてもよい。
【００５１】
一方、該当する葉ノードが無い場合（Ｓ３０４でＮｏ）、推定部１３は、グラフＧｃにおいて、サーバ３０のＩＰアドレスｓのノードに到達可能であった名前に係る葉ノードを探索する（Ｓ３０５）。ここでは、削除フラグが付与されている枝が使用されることも許容される。該当する葉ノードが有る場合（Ｓ３０５でＹｅｓ）、当該葉ノードに関して、ステップＳ３０６及びＳ３０７が実行される。すなわち、期限が切れていない枝のみによってｓのノードに到達可能な名前に係る葉ノードが、そうでない葉ノードに対して優先される。期限が切れている枝によって到達可能な葉ノードに係る名前は、もはや有効ではない可能性が有るからである。
【００５２】
なお、推定部１３による推定結果は、例えば、サービスごとの通信種別の内訳の分析等に用いられてもよい。
【００５３】
また、上記において、Ａレコードは、ＡＡＡＡレコードに置き換えられてもよい。すなわち、本実施の形態は、ＩＰｖ４のみならず、ＩＰｖ６に関して適用されてもよい。
【００５４】
上述しように、本実施の形態によれば、ＤＮＳレスポンスの履歴に基づいてＤＮＧが生成され、当該ＤＮＧを用いて各パケットに係るサービス名が推定される。ＤＮＧには、直近の名前のみならず、大元の名前も含まれる。したがって、別名を用いた名前解決が行われた場合のホスト名の推定精度を向上させることができる。
【００５５】
また、特定される名前の候補が複数存在する場合には、複数の候補の中で、名前解決の回数が最大である名前が特定される。すなわち、名前解決に使用されている回数が最大である名前が特定される。このことは、クライアント２０によって使用される頻度が最大である名前が特定されることを意味する。クライアント２０によって使用される頻度が高い名前は、或るサービスの識別名としてサービス名として認識されている可能性が高い名前であるといえる。したがって、サービス名として正しい名前が特定される可能性を更に高めることができる。
【００５６】
また、期限が切れていない枝のみによってサーバ３０のＩＰアドレスｓに到達可能な名前が、そうでない名前に対して優先されて特定される。したがって、既に無効である名前がサービス名として推定される可能性を低下させることができる。
【００５７】
なお、上述したように、本実施の形態の推定装置１０は、コンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【００５８】
なお、本実施の形態において、推定装置１０は、名前特定装置の一例である。ＤＮＧ生成部１１は、生成部の一例である。推定部１３は、特定部の一例である。頻度リストは、頻度情報の一例である。
【００５９】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００６０】
１０          推定装置
１１          ＤＮＧ生成部
１２          枝削除部
１３          推定部
１４          ＤＮＧ記憶部
１５          頻度リスト記憶部
２０          クライアント
３０          サーバ
４０          ＤＮＳサーバ
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
Ｂ            バス
【図１】
0006347431.tif 000002
【図２】
0006347431.tif 000003
【図３】
0006347431.tif 000004
【図４】
0006347431.tif 000005
【図５】
0006347431.tif 000006
【図６】
0006347431.tif 000007
【図７】
0006347431.tif 000008
【図８】
0006347431.tif 000009