JP2019036830A - 端末識別装置、端末識別方法及びプログラム - Google Patents

端末識別装置、端末識別方法及びプログラム Download PDF

Info

Publication number
JP2019036830A
JP2019036830A JP2017156603A JP2017156603A JP2019036830A JP 2019036830 A JP2019036830 A JP 2019036830A JP 2017156603 A JP2017156603 A JP 2017156603A JP 2017156603 A JP2017156603 A JP 2017156603A JP 2019036830 A JP2019036830 A JP 2019036830A
Authority
JP
Japan
Prior art keywords
terminal
communication
list
created
identification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017156603A
Other languages
English (en)
Other versions
JP6866258B2 (ja
Inventor
晃弘 下田
Akihiro Shimoda
晃弘 下田
友香 駒井
Yuka Komai
友香 駒井
薫明 原田
Shigeaki Harada
薫明 原田
石橋 圭介
Keisuke Ishibashi
圭介 石橋
川原 亮一
Ryoichi Kawahara
亮一 川原
森 達哉
Tatsuya Mori
達哉 森
滋樹 後藤
Shigeki Goto
滋樹 後藤
翔 水野
Sho Mizuno
翔 水野
京斗 笹岡
Kyoto Sasaoka
京斗 笹岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Waseda University
Nippon Telegraph and Telephone Corp
Original Assignee
Waseda University
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Waseda University, Nippon Telegraph and Telephone Corp filed Critical Waseda University
Priority to JP2017156603A priority Critical patent/JP6866258B2/ja
Publication of JP2019036830A publication Critical patent/JP2019036830A/ja
Application granted granted Critical
Publication of JP6866258B2 publication Critical patent/JP6866258B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】端末の種別を識別する。
【解決手段】ネットワークに収容される第1の端末の通信トラヒックから、該第1の端末の通信先を示す通信先ホストのリストを作成するリスト作成部と、前記リスト作成部が作成した通信先ホストのリストと、予め作成された識別器とから、前記第1の端末の端末種別を識別する識別部と、を有することを特徴とする。
【選択図】図3

Description

本発明は、端末識別装置、端末識別方法及びプログラムに関する。
インターネットの利用ユーザ数の増加やIoT(Internet of Things)機器を始めとする通信端末の多様化等に伴い、通信事業者において、特定のアプリケーションや端末の仕様、通信挙動等が原因となり、ネットワークの適切な運用に支障が生じる場合がある。
例えば、ある特定の種別の端末が同時刻に一斉に通信を行う仕様である場合、端末数が多いとネットワーク輻輳の原因となることがある。このため、ネットワークの適切な運用に支障が生じる原因となるようなリスクを有する端末やアプリケーションの種別を調査し、必要に応じて端末やアプリケーションの開発元に仕様変更の打診を行ったり、ネットワークレベルでの通信制限の措置を講じたりすることが求められている。
また、ある特定の種別の端末を対象とするマルウェアの大規模感染が生じた場合等には、影響を最小限に抑える必要がある。このため、通信事業者は、マルウェアに関する通信トラヒックを検出した際に、原因となっている端末の種別を早期に特定し、注意喚起や通信制限等の措置を講じる必要がある。
このように、通信事業者は、ネットワークの適切な運用に影響を及ぼす可能性のある通信トラヒックの発生原因となっている端末やアプリケーションの種別を早期に特定する必要がある。以降では、ある特定のプログラム(OS(Operating System)やアプリケーションソフトウェア、ミドルウェア、ファームウェア、端末の製造元ベンダ等によりプリインストールされる固有のプログラム等も含む)が搭載された端末を特定すること(すなわち、端末の種別を識別すること)を「端末識別」と称する。
ここで、通信事業者が各ユーザの端末の種別を個別に全数調査することは困難である。そこで、通信トラヒック(以降、単に「トラヒック」とも表す。)から端末識別を行うことが考えられる。
トラヒックから端末識別を行う方法として、パケットのアプリケーション・ヘッダに含まれる端末識別情報(例えば、HTTP(Hypertext Transfer Protocol)ヘッダのUser−Agentフィールド)を参照する方法が知られている。しかしながら、通信が暗号化される場合には、アプリケーション・ヘッダも暗号化されるため、端末識別を行うことができないことがある。
これに対して、例えばIP(Internet Protocol)ヘッダやTCP(Transmission Control Protocol)/UDP(User Datagram Protocol)ヘッダ等から端末の種別を推定する方法が知られている(例えば非特許文献1)。非特許文献1に開示されている方法では、パケットのヘッダの一部のフィールドに設定されるネットワーク・パラメータ(例えば、ウィンドウサイズ、TTL(Time To Live)等)がOSやアプリケーション固有のパラメータに依存することに着目し、これらのネットワーク・パラメータを特徴量(フィンガプリント)として端末識別を行う。
Zalewski, Michal. "p0f: Passive OS Fingerprinting tool.", [online], インターネット<URL:http://lcamtuf.coredump.cx/p0f.shtml/>
ここで、非特許文献1に開示されている方法では、特定したい端末の種別毎に、IPヘッダやTCP/UDPヘッダの一部のフィールドに設定されるネットワーク・パラメータが異なる必要がある。
しかしながら、近年では、モバイル端末やIoT端末等の各種端末で用いられるネットワーク・パラメータの共通化が進んでいる。このため、特定したい端末の種別毎に、ネットワーク・パラメータに差異が生じない場合があり、非特許文献1に開示されている方法で端末識別を行うことができないことがある。
本発明の実施の形態は、上記の点に鑑みてなされたもので、端末の種別を識別することを目的とする。
上記課題を解決するため、ネットワークに収容される第1の端末の通信トラヒックから、該第1の端末の通信先を示す通信先ホストのリストを作成するリスト作成部と、前記リスト作成部が作成した通信先ホストのリストと、予め作成された識別器とから、前記第1の端末の端末種別を識別する識別部と、を有することを特徴とする。
端末の種別を識別することができる。
本発明の実施の形態における端末識別装置が含まれるシステムの全体構成の一例を示す図である。 本発明の実施の形態における端末識別装置のハードウェア構成の一例を示す図である。 本発明の実施の形態における端末識別の概略を説明する図である。 通信トラヒックから抽出する情報の一例を説明する図である。 本発明の実施の形態における端末識別処理部の機能構成の一例を示す図である。 端末識別処理部の学習フェーズにおける処理の一例を示すフローチャートである。 端末識別処理部の識別フェーズにおける処理の一例を示すフローチャートである。
以下、本発明の実施の形態について、図面を参照しながら説明する。
<全体構成>
まず、本発明の実施の形態において端末識別を行う端末識別装置10が含まれるシステムの全体構成について、図1を参照しながら説明する。図1は、本発明の実施の形態における端末識別装置10が含まれるシステムの全体構成の一例を示す図である。
図1に示すように、内部ネットワークE1は、利用ユーザAの端末21A、利用ユーザBの端末21B、利用ユーザCの端末21C等の複数の端末21を収容する。また、内部ネットワークE1には、種々の通信機器22が収容されていても良い。以降では、内部ネットワークE1に収容される端末21や通信機器22を区別しない場合は、「ユーザ端末20」とも表す。
内部ネットワークE1は、例えば、企業内のネットワーク環境やISP(Internet Services Provider)内のネットワーク環境等である。内部ネットワークE1では、例えばIPアドレスや加入者ID等を用いて、収容されている各ユーザ端末20を特定することができる。
内部ネットワークE1に収容される各端末21としては、例えば、PC(パーソナルコンピュータ)やスマートフォン、タブレット端末、ゲーム機器等が挙げられる。また、各通信機器22としては、例えば、ファクシミリ、コピー機、プリンタ、車載機(例えばカーナビ等)、監視カメラ、家電製品等の種々の通信可能な機器が挙げられる。
各ユーザ端末20は、OS(例えば、Windows(登録商標)、macOS(登録商標)、Android(登録商標)、Linux(登録商標)等)で端末種別を分類できるものとする。なお、各ユーザ端末20は、更に、例えば、モバイル端末であるか、固定端末であるか等により端末種別を分類できても良い。
また、内部ネットワークE1には、各ユーザ端末20の端末種別を識別する端末識別装置10と、各ユーザ端末20のトラヒックを収集するトラヒック収集装置30と、ドメイン名からIPアドレスへの名前解決を提供するDNS(Domain Name System)キャッシュサーバ40とが含まれる。
一方で、外部ネットワークE2は、ユーザ端末20がアクセスする通信先ホストサーバ50が含まれるネットワーク環境である。通信先ホストサーバ50は、例えば、Webサーバやクラウドサーバ等のコンテンツサーバであり、例えば、ユーザ端末20に搭載されているOS毎に存在する。ユーザ端末20は、インターネットを介して、通信先ホストサーバ50にアクセスすることで、例えば、OSのバージョンアップやOS固有のアプリケーションデータの同期等を行う。
DNSキャッシュサーバ40は、ユーザ端末20が通信先ホストサーバ50にアクセスするための名前解決を行うサーバである。DNSキャッシュサーバ40は、内部ネットワークE1に設置されている場合に限られず、例えば、外部ネットワークE2にも設置されていて良い。この場合、ユーザ端末20は、内部ネットワークE1又は外部ネットワークE2のいずれかに設置されているDNSキャッシュサーバ40を選択的に利用すれば良い。
なお、後述する学習フェーズ及び識別フェーズで必要な情報をHTTP又はHTTPS(Hypertext Transfer Protocol Secure)通信のトラヒックから収集する場合には、DNSキャッシュサーバ40が設置されていなくても良い。
トラヒック収集装置30は、ユーザ端末20が通信先ホストサーバ50にアクセスする際のトラヒック(HTTP/HTTPS通信のトラヒック)と、これに先立って発生するDNS通信(すなわち、名前解決のためのDNSキャッシュサーバ40への問い合せ通信)のトラヒックとを端末識別装置10に転送する。このため、トラヒック収集装置30は、ユーザ端末20から通信先ホストサーバ50へのトラヒックと、ユーザ端末20からDNSキャッシュサーバ40へのトラヒックとを収集可能な場所に設置される。
トラヒック収集装置30は、例えば、通信トラヒックの複製(ミラーリング)機能を有するネットワーク・スイッチやタップ等を用いて実現可能である。すなわち、ミラーリング機能を有するネットワーク・スイッチやタップ等において、該当のトラヒックを端末識別装置10に転送する設定を行うことで、トラヒック収集装置30が実現される。
端末識別装置10は、各ユーザ端末20がアクセスする通信先ホストサーバ50を示す情報(通信先ホスト)から、これら各ユーザ端末20の端末種別を識別する1以上のコンピュータである。端末識別装置10は、端末識別処理部100を有する。端末識別処理部100は、端末識別装置10にインストールされた1以上のプログラム(スクリプトも含む)が、後述するCPU16に実行させる処理により実現される。
また、端末識別装置10は、通信記録DB110と、識別結果DB120とを有する。これら各DBは、例えば、後述する補助記憶装置18を用いて実現可能である。なお、これら各DBのうちの少なくとも1つのDBが、端末識別装置10とネットワークを介して接続される記憶装置等を用いて実現されていても良い。
端末識別装置10は、端末識別処理部100により、トラヒック収集装置30から転送されたトラヒックから、通信先ホスト等が含まれる所定の情報を抽出した上で、通信記録DB110に格納する。そして、端末識別装置10は、端末識別処理部100により、通信記録DB110に格納されている情報を用いて、ユーザ端末20の通信先ホストから端末種別を識別した上で、識別結果を識別結果DB120に格納する。
なお、図1に示すシステムの全体構成は一例であって、他の構成であっても良い。例えば、端末識別装置10及びトラヒック収集装置30は、内部ネットワークE1と外部ネットワークE2との間に存在する中継ネットワーク内に設置されていても良い。また、この場合、DNSキャッシュサーバ40も中継ネットワーク内に設置されていても良い。
<ハードウェア構成>
次に、本発明の実施の形態における端末識別装置10のハードウェア構成について、図2を参照しながら説明する。図2は、本発明の実施の形態における端末識別装置10のハードウェア構成の一例を示す図である。
図2に示すように、本発明の実施の形態における端末識別装置10は、入力装置11と、表示装置12と、外部I/F13と、RAM(Random Access Memory)14と、ROM(Read Only Memory)15と、CPU(Central Processing Unit)16と、通信I/F17と、補助記憶装置18とを有する。これら各ハードウェアは、それぞれがバスBを介して通信可能に接続されている。
入力装置11は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置12は、例えばディスプレイ等であり、端末識別装置10の処理結果を表示する。なお、端末識別装置10は、入力装置11及び表示装置12の少なくとも一方を有していなくても良い。
外部I/F13は、外部装置とのインタフェースである。外部装置には、記録媒体13a等がある。端末識別装置10は、外部I/F13を介して、記録媒体13a等の読み取りや書き込みを行うことができる。
記録媒体13aには、例えば、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disk)、SD(Secure Digital)メモリカード、USB(Universal Serial Bus)メモリカード等がある。
RAM14は、プログラムやデータを一時保持する揮発性の半導体メモリである。ROM15は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM15には、例えば、OS設定やネットワーク設定等が格納されている。
CPU16は、ROM15や補助記憶装置18等からプログラムやデータをRAM14上に読み出して、処理を実行する演算装置である。
通信I/F17は、他の装置と通信を行うためのインタフェースである。端末識別装置10は、通信I/F17を介して、トラヒック収集装置30からトラヒックを受信する。
補助記憶装置18は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置18に格納されているプログラムやデータには、例えば、OS、当該OS上において各種機能を実現するアプリケーションプログラム、端末識別処理部100を実現するプログラム等がある。
本発明の実施の形態における端末識別装置10は、図2に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。
<端末識別の概略>
ここで、端末識別装置10の端末識別処理部100による端末識別の概略について、図3を参照しながら説明する。図3は、本発明の実施の形態における端末識別の概略を説明する図である。
端末識別処理部100による端末識別は、端末種別の識別に用いられる端末識別器200を作成するための「学習フェーズ」と、端末識別器200を用いて実際に端末種別を識別する「識別フェーズ」とがある。
≪学習フェーズ≫
S11)トラヒック収集装置30からトラヒックが転送されると、端末識別処理部100は、当該トラヒックから所定の情報(通信時刻、通信元アドレス、通信先ホスト及び端末種別)を抽出した上で、抽出した情報を対応付けて通信記録DB110に格納する。
通信記録DB110には、例えば所定の期間の間にトラヒック収集装置30から転送されたトラヒックの通信時刻、通信元アドレス、通信先ホスト及び端末種別が対応付けて格納されている。
S12)端末識別処理部100は、通信記録DB110に格納されている情報(通信時刻、通信元アドレス、通信先ホスト及び端末種別)から端末識別器200を作成する。端末識別器200は、識別フェーズにおいて通信先ホストから端末種別を識別するための中間データであり、例えば、バイナリデータやテキストデータの形式で作成される。
≪識別フェーズ≫
S21)トラヒック収集装置30からトラヒックが転送されると、端末識別処理部100は、当該トラヒックから所定の情報(通信時刻、通信元アドレス及び通信先ホスト)を抽出した上で、抽出した情報を対応付けて通信記録DB110に格納する。
S22)端末識別処理部100は、端末識別器200を用いて、通信記録DB110に格納されている通信先ホストから端末種別を識別する。そして、端末識別処理部100は、識別した端末種別と、通信元アドレスとを対応付けて識別結果DB120に格納する。これにより、通信元アドレスにより特定されるユーザ端末20の端末種別が識別される。
≪通信トラヒックから抽出する情報≫
ここで、学習フェーズ及び識別フェーズにおいて通信トラヒックから抽出する情報について、図4を参照しながら説明する。図4は、通信トラヒックから抽出する情報の一例を説明する図である。
上述したように、学習フェーズでは、(a)通信時刻、(b)通信元アドレス、(c)通信先ホスト、及び(d)端末種別が通信トラヒックから抽出される。一方で、識別フェーズでは、(a)通信時刻、(b)通信元アドレス、及び(c)通信先ホストが通信トラヒックから抽出される。
このとき、(a)通信時刻としては、例えば、(a−1)HTTP/HTTPS通信開始時のパケットをトラヒック収集装置30が収集した時刻、又は(a−2)DNS通信のパケットをトラヒック収集装置30が収集した時刻、のいずれか1つを用いれば良い。
また、(b)通信元アドレスとしては、例えば、(b−1)HTTP/HTTPS通信のクライアント側IPアドレス、又は(b−2)DNS通信の送信元IPアドレス、のいずれか1つを用いれば良い。
また、(c)通信先ホストとしては、(c−1)HTTPヘッダのHostフィールド、(c−2)DNS通信のFQDN(Fully Qualified Domain Name)、又は(c−3)HTTP通信のSNI(Server Name Indication)情報、のいずれか1つを用いれば良い。
更に、(d)端末種別としては、(d−1)HTTPヘッダのUser−Agentフィールド、又は(d−2)通信元アドレスと端末種別とが対応付けられた外部DB等を参照して得られる端末種別、のいずれか1つを用いれば良い。
このため、例えば、トラヒック収集装置30がHTTP通信のトラヒックを収集することができる場合には、学習フェーズでは、(a−1)、(b−1)、(c−1)及び(d−1)の情報を、それぞれ(a)通信時刻、(b)通信元アドレス、(c)通信先ホスト、及び(d)端末種別の情報として抽出すれば良い。
一方で、例えば、トラヒック収集装置30がDNS通信のトラヒックのみを収集することができる場合には、学習フェーズでは、(a−2)、(b−2)及び(c−2)の情報を、それぞれ(a)通信時刻、(b)通信元アドレス及び(c)通信先ホストの情報として抽出すれば良い。このとき、DNS通信のトラヒックには、端末種別に相当する情報が含まれないため、(d−1)通信元アドレスと端末種別とが対応付けられた外部DB等を参照して得られる端末種別を(d)端末種別の情報として抽出する。
外部DBとは、例えば、企業等の組織内で、ユーザ端末20のIPアドレスと、当該ユーザ端末20の端末種別とを対応付けて管理しているDB(データベース)である。したがって、トラヒック収集装置30がDNS通信のトラヒックのみを収集することができる場合には、端末識別装置10(又はトラヒック収集装置30)は、上記のような外部DBにアクセスできる必要がある。
また、例えば、トラヒック収集装置30がHTTP通信のトラヒックを収集することができる場合には、識別フェーズでは、(a−1)、(b−1)及び(c−1)の情報を、それぞれ(a)通信時刻、(b)通信元アドレス及び(c)通信先ホストの情報として抽出すれば良い。なお、このとき、HTTPS通信である場合には、(c−1)の代わり、(c−3)の情報を(c)通信先ホストの情報として抽出すれば良い。
一方で、トラヒック収集装置30がDNS通信のトラヒックのみを収集することができる場合には、識別フェーズでは、(a−2)、(b−2)及び(c−2)の情報を、それぞれ(a)通信時刻、(b)通信元アドレス及び(c)通信先ホストの情報として抽出すれば良い。
このように、トラヒック収集装置30が収集可能なトラヒックの種類に応じて、端末識別処理部100は、学習フェーズや識別フェーズで必要な情報を当該トラヒックから抽出する。なお、例えば、トラヒック収集装置30がHTTP通信及びDNS通信の両方のトラヒックを収集することができる場合には、抽出する項目に応じて、抽出する対象のトラヒックの種別を異ならせても良い。例えば、(a)通信時刻及び(b)通信元アドレスはDNS通信のトラヒックから抽出し、(c)通信先ホスト及び(d)端末種別はHTTP通信のトラヒックから抽出する等である。
なお、以降では、学習フェーズの処理を開始する前に、学習フェーズに必要な情報(すなわち、通信時刻、通信元アドレス、通信先ホスト及び端末種別)が通信記録DB110に格納されているものとする。同様に、識別フェーズを開始する前に、識別フェーズに必要な情報(すなわち、通信時刻、通信元アドレス及び通信先ホスト)が通信記録DB110に格納されているものとする。
<機能構成>
次に、本発明の実施の形態における端末識別処理部100の機能構成について、図5を参照しながら説明する。図5は、本発明の実施の形態における端末識別処理部100の機能構成の一例を示す図である。
図5に示すように、本発明の実施の形態における端末識別処理部100には、集合作成部101と、学習データ作成部102と、識別器作成部103と、識別部104とが含まれる。
集合作成部101は、学習フェーズにおいて、予め決められた時間ウインドウT(すなわち、予め決められた時間幅)毎に、通信記録DB110に格納されている通信元アドレスaと、通信先ホストhと、端末種別dとを取得する。そして、集合作成部101は、通信元アドレスa毎に、通信先ホストhと、端末種別dとの組の集合Rt,aを作成する。
ここで、tは、時間ウインドウT毎に取得された通信元アドレスaと、通信先ホストhと、端末種別dとを代表する時刻である。例えば、ある時刻をTとして、T以上、T+T未満の通信時刻に対応付けられていた通信元アドレスa、通信先ホストh及び端末種別dのtは、T≦t<T+Tを満たす任意の時刻(例えば、t=T)とすれば良い。また、例えば、T+T以上、T+2T未満の通信時刻に対応付けられていた通信元アドレスa、通信先ホストh及び端末種別dのtは、T+T≦t<T+2Tを満たす任意の時刻(例えば、t=T+T)とすれば良い。同様に、例えば、T+nT以上、T+(n+1)T未満の通信時刻に対応付けられていた通信元アドレスa、通信先ホストh及び端末種別dのtは、T+nT≦t<T+(n+1)Tを満たす任意の時刻(例えば、t=T+nT)とすれば良い。
また、集合作成部101は、識別フェーズにおいて、予め決められた時間ウインドウT毎に、通信記録DB110に格納されている通信元アドレスaと、通信先ホストhとを取得する。そして、集合作成部101は、通信元アドレスa毎に、通信先ホストhの集合St,aを作成する。
学習データ作成部102は、学習フェーズにおいて、集合作成部101により作成された集合Rt,aに対して正解ラベルd´を割り当てることで学習データを作成する。正解ラベルd´とは、当該集合Rt,aの代表となる端末種別のことである。正解ラベルd´は、例えば、端末種別を表す文字又は文字列で表される。
識別器作成部103は、学習フェーズにおいて、学習データ作成部102により作成された学習データを用いて、機械学習の手法により端末識別器200を作成する。識別器作成部103により作成された端末識別器200は、例えば、補助記憶装置18等に記憶される。
識別部104は、識別フェーズにおいて、端末識別器200を用いて、集合作成部101により作成された集合St,aから、当該通信元アドレスaにより特定されるユーザ端末20の端末種別d´を識別する。
<学習フェーズにおける処理の詳細>
次に、端末識別処理部100の学習フェーズにおける処理の詳細について、図6を参照しながら説明する。図6は、端末識別処理部100の学習フェーズにおける処理の一例を示すフローチャートである。
ステップS601)集合作成部101は、集合Rt,aを作成する。集合作成部101は、以下のようにして集合Rt,aを作成することができる。
まず、集合作成部101は、予め決められた時間ウインドウT毎に、通信記録DB110に格納されている通信元アドレスaと、通信先ホストhと、端末種別dとを取得する。このとき、通信元アドレスaと、通信先ホストhと、端末種別dとの組を示すレコードを識別する変数をiとすれば、tにおけるレコードrt,iの集合Rは、以下の数1で表される。
Figure 2019036830
なお、at,i、ht,i及びdt,iは、それぞれtにおけるi番目のレコードrt,iに含まれる通信元アドレスa、通信先ホストh及び端末種別dである。
次に、集合作成部101は、通信元アドレスa毎に各rt,iを集約することで、通信先ホストhと、端末種別dとの組を示すレコードを作成する。このとき、通信先ホストhと、端末種別dとの組を示すレコードを識別する変数をjとすれば、j番目のレコードrt,a,jの集合Rt,aは、以下の数2で表される。
Figure 2019036830
なお、ht,a,j及びdt,a,jは、それぞれtにおいて通信元アドレスaでレコードrt,iを集約した場合におけるj番目のレコードrt,a,jに含まれる通信先ホストh及び端末種別dである。
ステップS602)学習データ作成部102は、上記のステップS601で作成された集合Rt,aに対して正解ラベルd´を割り当てることで学習データを作成する。学習データ作成部102は、以下のように学習データを作成することができる。
まず、学習データ作成部102は、集合Rt,aに含まれる各端末種別dを抽象化する。これは、例えば、HTTPヘッダのUser−Agentフィールドを端末種別として用いた場合等には、端末種別を示す表記が統一されていない場合があるためである。
より具体的に説明すると、ユーザ端末20の端末種別が「Linux」であっても、あるユーザ端末20ではHTTPヘッダのUser−Agentフィールドに「linux」と設定され、別のあるユーザ端末20ではHTTPヘッダのUser−Agentフィールドに「ubuntu」と設定されることがある。したがって、この場合、例えば、「linux」や「ubuntu」等を、統一的な表記である「Linux」に抽象化する必要がある。
次に、学習データ作成部102は、集合Rt,aに対して正解ラベルd´を割り当てる。ここで、集合Rt,aには、端末種別が不明であることを示す情報が含まれるレコードrt,a,jが存在することがある。また、集合Rt,aには、それぞれ異なる端末種別dが含まれるレコードrt,a,jが存在することがある。このため、学習データ作成部102は、集合Rt,aに対して正解ラベルd´を一意に決定できないことがある。
そこで、学習データ作成部102は、任意の方法で、集合Rt,aに存在するレコードrt,a,jの中から正解ラベルd´を選択すれば良い。例えば、集合Rt,aに存在するレコードrt,a,jの中で、最も数が多い(すなわち、最も出現回数が多い)端末種別dを正解ラベルd´としても良いし、人間の経験則に基づいて手動で正解ラベルd´を選択しても良い。
正解ラベルd´が選択された場合、学習データ作成部102は、集合Rt,aに対して正解ラベルd´を割り当てる。これにより、学習データが作成される。すなわち、学習データは、集合Rt,aと、正解ラベルd´との組で表される。
ただし、学習データには、集合Rt,aに含まれる端末種別dが不要である場合もある。この場合、学習データは、通信先ホストht,a,jの集合と、正解ラベルd´との組であっても良い。
ステップS603)識別器作成部103は、上記のステップS602で作成された学習データを用いて、機械学習の手法により端末識別器200を作成する。すなわち、識別器作成部103は、機械学習の手法により、学習データに含まれる通信先ホストhの集合と、正解ラベルd´との関係性を学習させることで、端末識別器200を作成する。
端末識別器200には、通信先ホストhの集合を入力として、正解ラベルd´を推定するために必要なデータが含まれる。端末識別器200のデータ形式等は、識別器作成部103が利用する機械学習アルゴリズム又はその実装により異なる。機械学習アルゴリズムの要件は、以下の数3に示す関数fのように、通信先ホストhのリスト(集合)から端末種別d´を推定する処理を実施できることである。
Figure 2019036830
機械学習アルゴリズムとしては、一般に、多クラス分類問題を解くができる任意のアルゴリズムを利用可能である。このようなアルゴリズムの一例としては、ランダムフォレストが挙げられる。ランダムフォレストについては、例えば「A. Liaw and M. Wiener (2002). Classification and Regression by randomForest. R News 2(3), 18-22.」等に開示されている。
以上により、本発明の実施の形態における端末識別装置10は、識別フェーズにおいてユーザ端末20の通信先ホストから端末種別を識別するための端末識別器200を作成することができる。
<識別フェーズにおける処理の詳細>
次に、端末識別処理部100の識別フェーズにおける処理の詳細について、図7を参照しながら説明する。図7は、端末識別処理部100の識別フェーズにおける処理の一例を示すフローチャートである。
ステップS701)集合作成部101は、集合St,aを作成する。集合作成部101は、以下のようにして集合St,aを作成することができる。
まず、集合作成部101は、予め決められた時間ウインドウT毎に、通信記録DB110に格納されている通信元アドレスaと、通信先ホストhとを取得する。このとき、通信元アドレスaと、通信先ホストhとの組を示すレコードを識別する変数をkとすれば、tにおけるレコードrt,kの集合Sは、以下の数4で表される。
Figure 2019036830
なお、at,k及びht,k及びdt,iは、それぞれtにおけるk番目のレコードrt,kに含まれる通信元アドレスa及び通信先ホストhである。
次に、集合作成部101は、通信元アドレスa毎に各rt,kを集約することで、通信先ホストhを示すレコードを作成する。このとき、通信先ホストhを示すレコードを識別する変数をmとすれば、m番目のレコードrt,a,mの集合St,aは、以下の数5で表される。
Figure 2019036830
なお、ht,a,mは、tにおいて通信元アドレスaでレコードrt,kを集約した場合におけるm番目のレコードrt,a,mに含まれる通信先ホストhである。
ステップS702)識別部104は、端末識別器200を用いて、上記のステップS701で作成された集合St,aから端末種別d´を識別する。すなわち、識別部104は、端末識別器200を用いて、集合St,aに含まれる通信先ホストht,a,mの集合から端末種別d´を識別する。
そして、識別部104は、通信元アドレスaと、端末種別d´とを対応付けて識別結果DB120に格納する。
以上により、本発明の実施の形態における端末識別装置10は、通信先ホストから端末種別を識別することができる。このため、本発明の実施の形態における端末識別装置10では、例えば、ユーザ端末20の製造元ベンダ等によりプリインストールされたアプリケーションプログラム等に依存した通信先ホストサーバ50の差異によって、ユーザ端末20の端末種別を識別することができる。同様に、例えば、ユーザ端末20の利用形態(例えば、モバイル端末や固定端末等)に伴う利用サービスの差異(すなわち、通信先ホストサーバ50の差異)によっても、ユーザ端末20の端末種別を識別することができる。
したがって、本発明の実施の形態における端末識別装置10によれば、例えば、ユーザ端末20間でネットワーク・パラメータが共通であったとしても、端末種別に応じて通信先ホストに差異があれば、ユーザ端末20の端末種別を識別することができるようになる。
<具体例>
以降では、本発明の実施の形態における端末識別の具体例について述べる。HTTP通信とDNS通信との両方のトラヒックをトラヒック収集装置30による収集対象とした上で、数千ユーザ規模の12時間分のトラヒックから通信時刻、通信元アドレス、通信先ホスト及び端末種別を抽出して通信記録DB110に格納した。また、端末識別処理部100が通信記録DB110から情報を抽出する際の時間ウインドウTは5分とした。このとき、通信先ホストは、約3万件を抽出した。
更に、図6のステップS602において、HTTPヘッダのUser−Agentフィールドに含まれる文字列と、抽象化後の端末種別(正解ラベル)との関係は以下の(1)〜(4)の通りとした上で、学習データを作成した。User−Agentフィールドに含まれる文字列を判定する際、大文字と小文字の区別はないものとした。なお、いずれの端末種別にも抽象化できない場合には、識別不能を示す正解ラベルとした。
(1)User−Agentフィールドに含まれる文字列が大文字と小文字を区別せず「iPhone(登録商標)」、「iPad(登録商標)」、「iPod(登録商標)」、「watchOS(登録商標)」、又は「Apple TV(登録商標)」(空白を除外した文字列(例えば、「AppleTV」)も含む。)のいずれかである場合には、端末種別「iOS(登録商標)」とする。
(2)User−Agentフィールドに含まれる文字列が大文字と小文字を区別せず「Android」である場合には、端末種別「Android」とする。
(3)User−Agentフィールドに含まれる文字列が大文字と小文字を区別せず「Linux」又は「Ubuntu(登録商標)」である場合には、端末種別「Linux」とする。
(4)User−Agentフィールドに含まれる文字列が大文字と小文字を区別せず「Microsoft(登録商標)」又は「Windows」である場合には、端末種別「Windows」とする。
そして、上記で作成した学習データを用いて、端末識別器200を作成した。続いて、DNS通信のFQDNをユーザ端末20毎の通信先ホストとして識別フェーズを行った結果、以下の(A)〜(C)の通信元アドレスと端末種別との識別結果が得られた。
(A)通信元アドレス「a.a.a.a」のユーザ端末20は端末種別「iOS」
(B)通信元アドレス「b.b.b.b」のユーザ端末20は端末種別「Android」
(C)通信元アドレス「c.c.c.c」のユーザ端末20は端末種別「Windows」
上記の(A)〜(C)の識別結果は、別途平行して収集したHTTP通信におけるHTTPヘッダのUser−Agentフィールドに設定されている端末種別と一致していることを確認した。このため、本発明の実施の形態における端末識別装置10によれば、高い精度で、通信先ホストから端末種別を識別できていることがわかる。
<同一のネットワーク・パラメータを有するユーザ端末20における端末識別>
ここで、同一のネットワーク・パラメータを有するユーザ端末20における端末識別について補足する。ネットワーク・パラメータとOSとに関する調査文献(例えば、「MONTIGNY-LEBOEUF, De, et al. A multi-packet signature approach to passive operating system detection. DEFENCE RESEARCH AND DEVELOPMENT CANADAOTTAWA (ONTARIO), 2005.」)によれば、例えば、Linux2.4.0とMacOS10.2.6とは、環境によっては、同一の初期TTL値と、TCPパラメータ又はSYNヘッダパラメータとを有する(ただし、実際にはカーネル・パラメータやパッチの適用状態等で異なる場合もある。)。
このため、Linux2.4.0とMacOS10.2.6とは、非特許文献1に開示されているパケットシグネチャを用いる方法では区別することができない。仮に、OSの設定によりネットワーク・パラメータが変化した場合においても、この変化はLinux2.4.0及びMacOS10.2.6の両者で発生する可能性がある。このため、OSの設定による変化を、Linux2.4.0及びMacOS10.2.6の両者を区別するシグネチャとして用いるのは困難である。
一方で、例えば、Linuxには、固有の通信先ホスト(例えば、OSリポジトリ・サーバ、各ソフトウェアのバージョン更新用のサーバ等)が存在する。同様に、MacOSにも固有の通信先ホスト(例えば、OSバージョン確認用のサーバ、クラウドアプリの同期用サーバ等)が存在する。
したがって、本発明の実施の形態における端末識別装置10では、各OS固有の通信先ホストの差異を特徴として、これらのOSを識別することができる。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
10 端末識別装置
20 ユーザ端末
30 トラヒック収集装置
40 DNSキャッシュサーバ
50 通信先ホストサーバ
100 端末識別処理部
101 集合作成部
102 学習データ作成部
103 識別器作成部
104 識別部
110 通信記録DB
120 識別結果DB

Claims (6)

  1. ネットワークに収容される第1の端末の通信トラヒックから、該第1の端末の通信先を示す通信先ホストのリストを作成するリスト作成部と、
    前記リスト作成部が作成した通信先ホストのリストと、予め作成された識別器とから、前記第1の端末の端末種別を識別する識別部と、
    を有することを特徴とする端末識別装置。
  2. 予め蓄積された通信トラヒックから、該通信トラヒックの発生元の第2の端末と、該第2の端末の通信先ホストとの集合を作成する集合作成部と、
    前記集合作成部が作成した集合に対して、前記第2の端末の端末種別を示す正解ラベルを割り当てることで、学習データを作成する学習データ作成部と、
    前記学習データ作成部が作成した学習データを用いて、機械学習の手法により、前記端末種別を識別するための識別器を作成する識別器作成部と、を有し、
    前記識別部は、
    前記リスト作成部が作成した通信先ホストのリストと、前記識別器作成部が作成した識別器とから、前記第1の端末の端末種別を識別する、ことを特徴とする請求項1に記載の端末識別装置。
  3. 前記集合作成部は、
    前記通信トラヒックの発生元の第2の端末と、該第2の端末の通信先ホストと、前記第2の端末の端末種別との集合を作成し、
    前記学習データ作成部は、
    前記集合作成部が作成した集合に対して、該集合に含まれる端末種別のうち、最も出現回数が多い端末種別又はユーザにより選択された端末種別のいずれかを示す正解ラベルを割り当てることで、学習データを作成する、ことを特徴とする請求項2に記載の端末識別装置。
  4. 前記通信トラヒックは、HTTP通信、HTTPS通信及びDNS通信のうちの少なくとも1つの通信により発生する通信トラヒックである、ことを特徴とする請求項1乃至3の何れか一項に記載の端末識別装置。
  5. ネットワークに収容される第1の端末の通信トラヒックから、該第1の端末の通信先を示す通信先ホストのリストを作成するリスト作成手順と、
    前記リスト作成手順が作成した通信先ホストのリストと、予め作成された識別器とから、前記第1の端末の端末種別を識別する識別手順と、
    をコンピュータが実行することを特徴とする端末識別方法。
  6. ネットワークに収容される第1の端末の通信トラヒックから、該第1の端末の通信先を示す通信先ホストのリストを作成するリスト作成手順と、
    前記リスト作成手順が作成した通信先ホストのリストと、予め作成された識別器とから、前記第1の端末の端末種別を識別する識別手順と、
    をコンピュータに実行させることを特徴とするプログラム。
JP2017156603A 2017-08-14 2017-08-14 端末識別装置、端末識別方法及びプログラム Active JP6866258B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017156603A JP6866258B2 (ja) 2017-08-14 2017-08-14 端末識別装置、端末識別方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017156603A JP6866258B2 (ja) 2017-08-14 2017-08-14 端末識別装置、端末識別方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2019036830A true JP2019036830A (ja) 2019-03-07
JP6866258B2 JP6866258B2 (ja) 2021-04-28

Family

ID=65636009

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017156603A Active JP6866258B2 (ja) 2017-08-14 2017-08-14 端末識別装置、端末識別方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6866258B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7366690B2 (ja) 2019-10-31 2023-10-23 株式会社日立製作所 機器種別推定システム
JP7388613B2 (ja) 2019-10-31 2023-11-29 ホアウェイ・テクノロジーズ・カンパニー・リミテッド パケット処理方法及び装置、デバイス、並びに、コンピュータ可読ストレージ媒体

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7366690B2 (ja) 2019-10-31 2023-10-23 株式会社日立製作所 機器種別推定システム
JP7388613B2 (ja) 2019-10-31 2023-11-29 ホアウェイ・テクノロジーズ・カンパニー・リミテッド パケット処理方法及び装置、デバイス、並びに、コンピュータ可読ストレージ媒体

Also Published As

Publication number Publication date
JP6866258B2 (ja) 2021-04-28

Similar Documents

Publication Publication Date Title
Perdisci et al. Iotfinder: Efficient large-scale identification of iot devices via passive dns traffic analysis
US10121000B1 (en) System and method to detect premium attacks on electronic networks and electronic devices
US8806644B1 (en) Using expectation measures to identify relevant application analysis results
US8627469B1 (en) Systems and methods for using acquisitional contexts to prevent false-positive malware classifications
EP3590063B1 (en) Detecting malicious behavior within local networks
US10411985B1 (en) Network traffic monitoring for virtual machines
US10158733B2 (en) Automated DPI process
US11647037B2 (en) Penetration tests of systems under test
US10122722B2 (en) Resource classification using resource requests
EP3131260A1 (en) Automatic detection and control of personally identifiable information leaks in a network traffic
US9332003B2 (en) Systems and methods for discovering website certificate information
JP2017509054A (ja) ダウンロードに利用可能なアプリケーションについてユーザに知らせるためのシステム及び方法
JP6866258B2 (ja) 端末識別装置、端末識別方法及びプログラム
JP7451476B2 (ja) 根本原因解析のために経時的にフォレンジックスナップショットを相互参照するためのシステムおよび方法
JP2019103069A (ja) 特定システム、特定方法及び特定プログラム
Bhardwaj et al. Forensic analysis and security assessment of IoT camera firmware for smart homes
US8694659B1 (en) Systems and methods for enhancing domain-name-server responses
US11403398B2 (en) System and method of detecting a source of malicious activity in a computer system
JP2020502703A (ja) ネットワーク・マッピングのためのフィンガープリントの決定
US11095666B1 (en) Systems and methods for detecting covert channels structured in internet protocol transactions
US11163882B2 (en) Analysis apparatus, analysis method, and analysis program
JP6813451B2 (ja) 異常検知システム及び異常検知方法
EP3799367B1 (en) Generation device, generation method, and generation program
JP6333763B2 (ja) マルウェア解析装置およびマルウェア解析方法
JP6676790B2 (ja) リクエスト制御装置、リクエスト制御方法、および、リクエスト制御プログラム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20170815

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20170815

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191028

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20191028

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20191028

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200929

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210406

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210407

R150 Certificate of patent or registration of utility model

Ref document number: 6866258

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150