(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-10
(45)【発行日】2023-05-19
(54)【発明の名称】デバイス識別
(51)【国際特許分類】
H04L 43/02 20220101AFI20230511BHJP
H04L 9/32 20060101ALI20230511BHJP
【FI】
H04L43/02
H04L9/32 100Z
(21)【出願番号】P 2020500779
(86)(22)【出願日】2018-02-28
(86)【国際出願番号】 US2018020291
(87)【国際公開番号】W WO2018175078
(87)【国際公開日】2018-09-27
【審査請求日】2021-02-22
(32)【優先日】2017-03-20
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519339482
【氏名又は名称】フォアスカウト テクノロジーズ インコーポレイテッド
(74)【代理人】
【識別番号】100094569
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109335
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100210239
【氏名又は名称】富永 真太郎
(72)【発明者】
【氏名】ジャン ヤン
(72)【発明者】
【氏名】ヤン シーイン
【審査官】羽岡 さやか
(56)【参考文献】
【文献】特表2016-513328(JP,A)
【文献】特開2016-208516(JP,A)
【文献】米国特許出願公開第2014/0122386(US,A1)
【文献】米国特許出願公開第2013/0139263(US,A1)
【文献】国際公開第2017/004190(WO,A1)
【文献】Markus Miettinen et al.,IoT SENTINEL: Automated Device-Type Identification for Security Enforcement in IoT,2017 IEEE 37th International Conference on Distributed Computing Systems (ICDCS),2017年06月08日,P.2177-2184
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-69/40
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
メモリと、
前記メモリに動作可能に連結された処理装置であって、
ネットワークに連結されたデバイスに関連付けられた通信のパケットにアクセスし、
前記パケットの複数のそれぞれの部分に関連付けられた第1の複数の値を決定し、
前記パケットの複数のそれぞれの部分に関連付けられた第1の閾値にアクセスし、
前記第1の複数の値に関連付けられた第1の信頼性スコアを決定し、
前記第1の信頼性スコアを前記第1の閾値と比較し、
前記第1の信頼性スコアが前記第1の閾値より小さいことに応じて、前記デバイスの1又は2以上のポートをスキャンし、
前記デバイスの前記1又は2以上のポートに関連付けられた第2の複数の値を決定し、
前記デバイスの前記1又は2以上のポートに関連付けられた第2の閾値にアクセスし、
前記第1の複数の値及び前記第2の複数の値に関連付けられた第2の信頼性スコアを決定し、
前記第2の信頼性スコア
が前記第2の閾値
を満たす又は上回っている場合に応答して、前記デバイスのデバイス識別を決定し、
及び、前記デバイス識別を記憶するための前記処理装置と、
を含む、システム。
【請求項2】
前記パケットの前記それぞれの部分に関連付けられた前記第1の複数の値の前記決定は、受動的パケット分析を含む、
請求項1に記載のシステム。
【請求項3】
前記デバイスの前記1又は2以上のポートに関連付けられた前記第2の複数の値の前記決定は、アクティブポート分析に基づく、
請求項2に記載のシステム。
【請求項4】
前記第2の複数の値の1つの値は、前記デバイス上で開放されている1又は2以上の伝送制御プロトコル(TCP)又は前記デバイス上で開放されている1又は2以上のユーザデータグラムプロトコル(UDP)に基づく、
請求項1に記載のシステム。
【請求項5】
前記第1の閾値は、オペレーティングシステム、ベンダー、又は前記ベンダーの製品の少なくとも1つに関連付けられている、
請求項1に記載のシステム。
【請求項6】
エンコードされた命令を有する非一時的なコンピュータ可読媒体であって、処理装置により実行されると、前記処理装置は、
ネットワークに連結されたデバイスに関連付けられた通信のパケットにアクセスし、
前記パケットの複数のそれぞれの部分に関連付けられた第1の複数の値を決定し、
前記第1の複数の値に関連付けられた第1の信頼性スコアを決定し、
閾値にアクセスし、
前記第1の信頼性スコアが前
記閾値より小さいことに応じて、
前記デバイスの1又は2以上のポートをスキャンし、
前記デバイスの前記1又は2以上のポートに関連付けられた第2の複数の値を決定し、
前記第1の複数の値及び前記第2の複数の値に関連付けられた第2の信頼性スコアを決定し、
前記第2の信頼性スコアを前記閾値と比較し、
前記第2の信頼性スコアが前記閾値より小さいことに応じて、
ヒューリスティックに関連付けられた第3の複数の値を決定し、
前記第1の複数の値、前記第2の複数の値、及び前記第3の複数の値に関連付けられた第3の信頼性スコアを決定し、
前記処理装置により、前記第3の信頼性スコア
が前記閾値
を満たす又は上回っている場合に応答して、前記デバイスのデバイス識別決定を実行し、及び、
前記デバイス識別を記憶する、
非一時的なコンピュータ可読媒体。
【請求項7】
前記ヒューリスティックは、前記パケットのサイズ、前記パケットを含む複数のパケットに関連付けられた間隔、又は、複数のパケットに関連付けられた、前記パケットを含む一連のパケットサイズの少なくとも1つに関連付けられている、
請求項6に記載の非一時的なコンピュータ可読媒体。
【請求項8】
前記ヒューリスティックは、前記パケットを含むハートビート通信の時間間隔及びパケットサイズに関連付けられている、
請求項6に記載の非一時的なコンピュータ可読媒体。
【請求項9】
前記第3の複数の値は、前記デバイスの電力消費にさらに関連付けられている、
請求項6に記載の非一時的なコンピュータ可読媒体。
【請求項10】
前記第3の複数の値
を決定することは、
前記第3の複数の値を決定するために、機械学習
を前記デバイスに関連付けられたデータに適用することをさらに含み、
前記デバイスに関連付けられたデータは、前記第1の複数の値、前記第2の複数の値、前記ヒューリスティックに関連付けられたデータ、又はデバイス署名のうちの少なくとも1つを含む、
請求項6に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[関連特許出願の相互参照]
この出願は、2017年3月20日に出願された米国仮特許出願第15/463,227号の利益を主張し、その各々の全内容は参照により本明細書に組み込まれる。
【0002】
[技術分野]
本開示の態様及び実施は、ネットワーク監視に関し、より具体的には、通信ネットワークを介して利用可能な情報に基づくデバイス識別に関する。
【背景技術】
【0003】
技術が進歩するにつれて、通信ネットワークに接続されるデバイスの数と種類は急速に増加している。デバイスの数と種類のこの急速な増加は、新しいデバイスが頻繁に導入されるので、デバイスの識別を困難にし得る。ネットワークに接続されたデバイスの識別は、正式に許可されていない又は不正なデバイスがネットワークリソースにアクセスするのを防ぐために、通信ネットワークを監視及び保護するのに役立ち得る。
【発明の概要】
【0004】
本開示の態様及び実施は、以下に与えられる詳細な説明と本開示の様々な態様及び実施の添付図面からより十分に理解されるが、特定の態様又は実施に開示を限定するものと解釈されるべきではなく、説明と理解のみのためのものである。
【図面の簡単な説明】
【0005】
【
図1】
図1は、本開示の一実施に従った説明のための通信ネットワークを示す。
【
図2】
図2は、本開示の一実施に従ったデバイス識別のためのシステムの実例となるコンポーネントを示す。
【
図3】
図3は、本開示の態様及び実施に従ったデバイス識別で使用するために動作可能なデバイス情報の典型的なデータ構造を示す。
【
図4】
図4は、本開示の一実施に従ったデバイス分類のための方法の態様のフロー図を示す。
【
図5】
図5は、本開示の一実施に従った例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0006】
本開示の態様及び実施は、デバイス識別に関する。開示されたシステム及び方法は他分野の中でもネットワークセキュリティに関して採用することができる。より具体的には、正式に許可されていないデバイスによるネットワークリソースへのアクセスは重大かつ深刻さを増す問題であることが理解できる。同時に、ネットワーク接続デバイス(スマートフォン、タブレット、ウェアラブルデバイスなど)の拡散は、許可されたこれらのユーザ又はデバイスに対するネットワークリソースへのアクセスを効果的に管理することを難しくし得る。したがって、本明細書で様々な実施で説明されるのは、(例えば、あるネットワークリソースにアクセスすることが許可されている又は許可されていないデバイスの種類、そのようなアクセスが許され又は許されていない状況等を規定するアクセスポリシーを定義し、採用することにより、)ネットワークデバイス及びアクティビティの継続的な監視を可能にし、ネットワークリソースへのアクセスを制御する能力を提供するシステム、方法、技術、及び関連技術である。
【0007】
ネットワークアクセスポリシーを効率的に実施するため、ネットワークに接続されたデバイスの様々な態様、特徴、若しくは特性、又はデバイスがネットワークで何をしている(又はしていない)かを識別、分類、又はそうでなければ決定することが有利であり得る。ネットワーク接続デバイス(例えば、これらはイーサネット又はWi-Fi(登録商標)を介して接続される)の多くの種類に関して識別情報(例えば、IPアドレス、MACアドレスなど)のある種類を決定することができるかもしれないが、ある状況では、高い精度で特定のデバイス(例えば、そのようなデバイスがアクセスポイントであるかどうか)のある特性を決定し、従ってデバイスを識別することが難しい場合がある。
【0008】
特に「モノのインターネット(IoT)」など、デバイスの数及び種類の増加により、全ての接続されるデバイスを理解、監視、及び制御する必要が高まっている。IoTシステム及びデバイスは、ますます大規模に家庭から大きな産業環境までにわたる様々なアプリケーションと場所で使用されている。ネットワーク上に表示されていないデバイスを保護することは、デバイスの識別が不明な場合は困難である。保護は、ユーザがデバイスそれ自体で有効にすることができるセキュリティ機能の点で非常に制限され得るIoTデバイスに関して言えば、特に重要である。
【0009】
デバイスの識別は、異なるデバイスグループに異なるセキュリティポリシーを監視、制御、及び適用することを可能にし、それによって異なるセキュリティ技術のサポートが可能になる。したがって、識別は、IoTシステムの終端間のセキュリティを実現するため、セキュリティプロトコルを適用するために使用することができる。本開示は、とりわけ、デバイス情報の複数のソースを使用してデバイスを識別する(例えば、IoTデバイス)のためのシステム及び方法を説明する。
【0010】
さらに、MACアドレス、プロトコル、及びハイパーテキスト・トランスファー・プロトコル(HTTP)ユーザエージェント文字列に基づいて、デバイスを識別することは困難であり得る。そのような技術は特に限定され、それらの識別能力が限られており、多くの場合、デバイスを識別することができない場合がある。これらの技術はさらに、頻繁に検出漏れと誤検出をもたらし、その結果精度が低くなる。例えば、同一のプロトコル(例えば、ハイパーテキスト・トランスファー・プロトコル(HTTP))を使用して通信する2つの異なるIoTデバイスは、完全に異なるデバイスであり得る。その結果、デバイスを識別するのが難しい場合がある。
【0011】
現在、デバイス認識のための信頼できる手段はない。現在の手段は、デバイスで実行されているエージェントに基づき、又はHTTPユーザエージェント、MACアドレス又はポートスキャンなどの単一のプロパティに基づいている。これらの識別は信頼性がなく多くの欠点を有している。例えば、多くの状況では、デバイス上でエージェントを展開することは許されておらず、又は可能ですらない。さらに、従来のトラフィック検査では、HTTPペイロードは、デバイス識別を混乱させるように修正し得る。
【0012】
MACアドレスに基づく識別は、多数の理由で信頼できない場合がある。MACアドレスに基づく識別は、(例えば、スマートフォンにより)「MACランダム化」技術が使用されると失敗する。MACアドレスはまた、デバイスの異なる種類を識別するのにも有用でない場合がある。例えば、企業がシリアルインターフェイスへのイーサネットを含む部品を製造する場合、これらの部品は多様な製品に使用することができる。その製造では、特定のMACアドレス範囲が割り当てられ、その結果様々なデバイスは、製造業者のMACアドレスの範囲内にMACアドレスを有する場合がある。例えば、医療機器とトースターは、製造業者のMACアドレス範囲内にMACアドレスを有する場合がある。各々が同じ製造業者により作成されたイーサネットインターフェイスを有するからである。したがって、製造業者の範囲のMACアドレスは、様々なデバイスがその範囲にあり得るため、正確な識別をするのに使用することができない。
【0013】
ポートスキャンは、特に、デバイスからの応答がない場合、有用でない場合がある。センサ又は産業機器などのほとんどのデバイスがエージェントのインストールを許可しないため、デバイスの情報を収集するためにデバイス上で実行するエージェントに依存し、使い物にならなくなる他の手段がある。
【0014】
本開示の実施形態は、(例えば、ネットワークトラフィック分析に基づいて)より正確できめ細かい方法で信頼性のあるデバイス識別技術を提供する。デバイス識別は、情報の複数の要素(例えば、パケット分析、ポート分析、及び高度な検出など)に基づいて行うことができ、従って現在の手段よりもより信頼性があり、正確な(例えば誤検出を減らす)デバイス識別を提供する。デバイス識別は、オペレーティングシステムレベル、ベンダーレベル、ベンダー又は製品レベルからのモデルで生じ得る。信頼性スコアは、識別の信頼性又は正確性を決定するために各レベルで計算され得る。追加情報は、信頼性スコア(例えば、パケット分析に基づく信頼性スコア)を決定及び改善し、従って正確性を向上させるために、(例えば、サードパーティシステムなどからのポート分析、ヒューリスティクスを使って)収集され得る。識別されていないデバイスにセキュリティポリシーを適用することは、困難(例えば、無効)な場合があり、意図しない結果となり得る。例えば、ネットワークアクセス(例えば、2つの特定のポートのブロックに基づいて)を制限するためのセキュリティポリシーを、識別されておらず不正アクセスされたデバイスに適用しようとすることは、不正アクセスされたデバイスのネットワークアクセスが制限されない(例えば、他のポートがブロックされる)場合がある。
【0015】
実施形態は、ネットワークトラフィック分析に基づいてデバイス識別を実行することができる。複数の識別ソリューションは、統合され、最適化され、信頼性のあるデバイス識別ときめ細かなデバイス識別とを提供することができる高度な検出のヒューリスティクス及びアルゴリズムと組み合わせられる。1又は2以上の識別エンジンのロジックは、既存のソフトウェアアーキテクチャに影響を与えずにソフトウェアパッケージとして個別に使用することのできる信頼性スコアアルゴリズムに加えて、署名と組み合わせて使用することができ、従って柔軟性と拡張性を提供する。
【0016】
したがって、様々な実施において本明細書で説明されるのは、ネットワークと通信可能に連結されたデバイスの識別を可能にするシステム、方法、技術及び関連技術である。本明細書で説明するように、情報の様々な要素は、識別されるデバイスに関するネットワークトラフィックから収集され得る。
【0017】
説明された技術は、ネットワークセキュリティ、監視、及びポリシーの施行を含むがこれらに限定されない複数の技術分野における特定の技術的課題及び長年の欠陥に向けられ、対処することが理解できる。説明された技術は、言及した技術分野において、言及した技術的課題及び満たされないニーズに対して特定の技術的ソリューションを提供することを、さらに理解することができる。
【0018】
いくつかの実施形態では、デバイス識別の追加のソースはデバイス識別の正確性を向上させるために使用される。エージェントがデバイス(例えば、パーソナルコンピュータ(PC)又はサーバ)上に存在する場合、エージェントは、デバイス識別のための詳細な上昇を収集して提供することができる。エージェントが例えばモバイルデバイス上に存在しない場合、他のシステムからのデータ、例えばモバイルデバイスマネジメント(MDM)システム、ファイアウォールシステム又はスイッチシステムを、追加情報を集めるために使用することができる。
【0019】
図1は、本開示の一実施に従った実例となる通信ネットワーク100を示す。通信ネットワーク100は、ネットワーク監視装置102、ネットワークデバイス104、集約装置106、システム150、デバイス120、130、及びネットワーク接続デバイス122a、122bを含む。デバイス120、130とネットワーク接続デバイス122a、122bは、コンピューティングシステム、ラップトップ、スマートフォン、サーバ、モノのインターネット(IoT)デバイスなどを含むが、これらに限定されず、様々な任意のデバイスであり得る。通信ネットワーク100のデバイスは、有線及び無線の接続を含む様々な方法で通信し得ること、1又は2以上の様々なプロトコルを使用し得ることに留意する。
【0020】
ネットワークデバイス104は、集約装置106、システム150、ネットワーク監視装置102、デバイス120、130、及び、ネットワーク接続デバイス122a、122bの間で通信を促進するように構成された1又は2以上のネットワークデバイスであり得る。ネットワークデバイス104は、1又は2以上のネットワークスイッチ、アクセスポイント、ルータ、ファイアウォール、ハブなどであり得る。
【0021】
ネットワーク監視装置102は、デバイス識別(例えば、デバイス120、130、ネットワーク接続デバイス122a、122bの識別)を含む様々なタスクのために構成することができる。ネットワーク監視装置102は、コンピューティングシステム、ネットワークデバイス(例えば、ルータ、ファイアウォール、アクセスポイント)、ネットワークアクセス制御(NAC)装置、侵入防止システム(IPS)、侵入検出システム(IDS)、欺瞞装置、クラウドベースデバイス、仮想マシンベースシステムであり得る。
【0022】
ネットワーク監視装置102は、ネットワーク100上のデバイスそれぞれに対するデバイス識別テーブルを作成するために、(例えば、デバイスがネットワークに追加されると、連続的に、一定間隔で、など)ネットワーク100上のデバイスを監視するデバイス識別システムとして機能することができる。いくつかの実施形態では、ネットワーク監視装置102は、より具体的に(例えば、ベンダー)及び非常に具体的に(例えば、ベンダーの製品)、一般層(例えば、オペレーティングシステム)を含む3層の情報に基づきデバイスを識別するように構成される。
【0023】
一実施形態では、ネットワーク監視装置102によるデバイスの識別は、(例えば、パケットエンジン204により)1又は2以上のパケットを分析することから始まる。ネットワーク監視装置102は、単一の単純な条件で応答する既存の手段とは異なる。ネットワーク監視装置102は、各層の情報のための信頼性スコアを決定するための情報の複数要素とアルゴリズムを使用することができる。ネットワーク監視装置102によるパケット分析は、MACアドレス(例えば、レイヤ2から)、プロトコル情報(例えば、レイヤ3とレイヤ4から)、ペイロード(例えば、レイヤ7から)、及び動的ホスト制御プロトコル(DHCP)パターンを含む情報にアクセスすることを含むことができる。パケット分析中にアクセスされる情報は、信頼性スコアを決定するための指紋分析(例えば、識別エンジン240による)に使用することができる。
【0024】
信頼性スコアが閾値(例えば、調整可能な閾値)に達すると、ネットワーク監視装置102は、各層で情報を決定することができる。3層のそれぞれで情報が決定されると、ネットワーク監視装置102はデバイス識別プロセスを終了し、デバイス識別結果を報告することができる。
【0025】
パケット分析が閾値を上回る信頼性スコアに関連付けられた情報を提供できない場合、デバイス監視装置102は、(例えば、ポートエンジン220を使用して)ポート分析を実行することができる。ポート分析は、開放ポートを識別するためにデバイスをアクティブにスキャンすることを含むことができる。ポート分析の結果は、デバイス情報テーブルをさらに更新するために使用し、また更新された信頼性スコアを計算するために使用することができる。次に、信頼性スコアは、信頼性スコアが閾値を満たすか超えているかを決定するために閾値と比較することができ、そうであれば、デバイス識別プロセスは、デバイス識別結果を出力することができる。
【0026】
ポート分析に基づく更新された信頼性スコアが閾値に満たないと、その後ネットワーク監視装置102は、(例えば、高度な検出エンジン230を使用して)高度な検出プロセスを実行することができる。高度な検出プロセスは、ヒューリスティクス、機械学習、訓練を含むことができる。これらの高度な検出プロセスは、パケットシーケンス、パケットサイズ、パケットの間隔を含む複数のパケット間の相関、又は、エントロピーに基づくことができる。
【0027】
高度な検出プロセスのロジックは、オンザフライで更新することができる。(例えば、識別エンジン240によってアクセスされるなど)指紋署名と組み合わせた高度な検出ロジックは、ネットワーク監視装置102の機能に悪影響を与えることなく、ネットワーク監視装置102に更新(例えば、プッシュ)することができる。
【0028】
ネットワーク監視装置102は、ネットワーク100に連結されたデバイスの識別に使用し得る情報にアクセスするために、異なるネットワークデバイスとセキュリティ製品と通信することができる。アクセスされたデータは、(例えば、デバイス情報データベース242に記憶されている)デバイス情報を更新するために、処理、正規化、及び分析され得る。ネットワーク監視装置102は、ネットワークデバイス104(例えば、ポートミラーリング)を通じて流れるネットワークトラフィックを受信するように、ネットワークデバイス104に通信可能に連結され得る。
【0029】
ネットワーク監視装置102によるデバイスの識別は、本明細書でさらに説明される、トラフィック分析、外部又は遠隔のシステム(例えば、システム150)からの情報、エージェント(例えば、エージェント140)、通信(例えば、クエリ)集約装置(例えば、集約装置106)、及びデバイスそれ自体へのクエリからの情報を含む、情報の1又は2以上の要素の組み合わせに基づくことができる。ネットワーク監視装置102は、集約装置106、デバイス120、デバイス130、又はシステム150と通信するために、1又は2以上のアプリケーションプログラミングインターフェース(APIs)を使用するように構成し得る。
【0030】
いくつかの実施形態では、デバイス分類のヒューリスティックがデバイスを異なるグループに分類するために使用することができる。グループは、(例えば、ヒューリスティックの一部であるデフォルトのグループを)事前定義又は動的に(例えば、ネットワークトラフィックの受信後のオンザフライで)生成することができる。例えば、グループは、事前定義されたグループに一致しないデバイス分類に基づくデバイス名に基づいてデバイス分類のために動的に生成することができる。グループは、デバイスの種類に基づき得る。例えば、第1のグループは、特定のオペレーティングシステムを有するデバイス用、第2のグループは、医療機器(例えば、磁気共鳴画像(MRI)装置、X線装置、又はコンピュータ断層撮影(CT)スキャン装置)用、第3のグループは、操作技術デバイス(例えば、バルブ、ポンプなどの物理的デバイスの直接の監視又は制御を通じて物理的プロセスの変化を検出又は引き起こすように構成されたデバイス)用であり得る。グループへのデバイスの識別は、グラフィカルユーザインタフェイス内でデバイスの視覚的な組織化が可能になる。セキュリティポリシーは、グルーブ単位でさらに適用することができる。各グループはサブグループを有していても良い。例えば、医療機器グループは、MRI装置、X線マシン、自動調剤マシンのためのサブグルーブを有することができる。
【0031】
デバイスの識別のためのデータは、定期的に更新することができ、すなわち、より有用なデバイス識別が利用可能になると、それによって更新され、より正確で、きめ細かいデバイス識別が可能になる。
【0032】
デバイス130は、エージェント140を含むことができる。エージェント140は、デバイス130に関連付けられた情報を収集し、その情報をネットワーク監視装置102に送信するように構成されたハードウェアコンポーネント、ソフトウェアコンポーネント、又はそれらの組み合わせであっても良い。情報は、オペレーティングシステム及びバージョン、ファームウェアバージョン、シリアル番号、ベンダー(例えば、製造業者)、モデル、資源タグ、デバイス上で実行するソフトウェア(例えば、ウイルス対策ソフトウェア、マルウェア検出ソフトウェア、オフィスアプリケーション、Webブラウザ、通信アプリケーションなど)、デバイス上でアクティブ又は構成されているサービス、(例えば、デバイス上で実行するサービスに関連付けられた)開放されている又はデバイスが通信するように構成されているポート、MACアドレス、プロセッサ利用率、固有識別子、コンピュータ名などを含むことができる。エージェント140は、デバイス130とデバイス130からエージェント140が利用可能な情報とに基づいて異なるレベルと情報の要素とを提供するように構成され得る。エージェント140は、デバイス130に関連付けられた情報のログを記録することができる。ネットワーク監視装置102は、エージェント140からのエージェントの情報を利用することができる。
【0033】
システム150は、ネットワーク監視装置102の(例えば、別の)外部、遠隔、又はサードパーティシステムであっても良く、デバイス120、130、及びネットワーク接続デバイス122a、122bについての情報を有していても良い。システム150は、脆弱性評価(VA)システム、脅威検出(TD)システム、モバイルデバイス管理(MDM)システム、ファイウォール(FW)システム、スイッチシステム、又はアクセスポイントシステムであっても良い。ネットワーク監視装置102は、本明細書で説明するように、デバイス120、130、ネットワーク接続デバイス122a、122bについての情報を定期的に取得するためにシステム150と通信するように構成され得る。例えば、システム150は、デバイス120がコンピュータウイルスを有するかどうかを決定するように構成された脆弱性評価システムであっても良い。
【0034】
脆弱性評価(VA)システムは、デバイスの脆弱性を識別、定量化、及び優先順位を決定(例えば、ランク付け)するように構成され得る。VAシステムは、デバイスの資源と性能又はリソースの目録を作り、定量化可能な値(又は少なくともランク順位)、リソースの重要性を割り当て、各リソースの脆弱性又は潜在的な脅威を識別することができる。VAシステムは、ネットワーク監視装置102により使用される前述の情報を提供することができる。
【0035】
高度な脅威検出(ATD)又は脅威検出(TD)システムは、他のセキュリティ制御が通過を許可した通信を検査するように構成され得る。ATDシステムは、次に限定されるものではないが、ソースレピュテーション、実行可能な分析、脅威レベルのプロトコル分析を含む、分類されるデバイスについて情報を提供することができる。
【0036】
モバイルデバイス管理(MDM)システムは、モバイルデバイス、例えば、スパートフォン、タブレットコンピュータ、ラップトップ、デスクトップコンピュータの管理のために構成することができる。MDMシステムは、アプリケーション、データ、モバイルデバイスとアクティビティ監視の構成設定を含むMDMシステムにより管理されるモバイルデバイスについて情報を提供することができる。MDMシステムは、後に識別に使用され得る詳細なモバイルデバイスの情報を得るために使用され得る。
【0037】
ファイアウォール(FW)システムは、セキュリティルールに基づいて流入及び流出するネットワークトラフィックを監視及び制御するように構成され得る。FWシステムは、識別されるデバイスに関連するセキュリティルールと識別されるデバイスのネットワークトラフィックとを含む、識別されるデバイスについて情報を提供することができる。
【0038】
スイッチ又はアクセスポイント(AP)システムは、ネットワークへのデバイスアクセスを提供するように構成されたネットワークスイッチ又はアクセスポイント、例えば、無線アクセスポイント、又はこれらの組み合わせを含む様々なネットワークデバイス(例えば、ネットワークデバイス104又は集約装置106)のいずれであっても良い。例えば、スイッチ又はAPシステムは、デバイスを識別するために使用することができるMACアドレス情報、アドレス解決プロトコル(ARP)テーブル情報、デバイス命名情報、トラフィックデータなどを提供することができる。本明細書で説明するように、スイッチ又はAPシステムは、IoTデバイス又は他のデバイス(例えば、ZigBee(登録商標)、Bluetooth(登録商標))と通信するための1又は2以上のインターフェイスを有していても良い。
【0039】
VAシステム、ATDシステム、及びFWシステムは、脆弱性、脅威、識別されるデバイスのユーザ情報をリアルタイムで得るためにアクセスされ、識別されるデバイスのユーザ情報、脆弱性、脅威は正確な識別を決定するために使用することができる。識別されるデバイス上にデータを有している情報ソースがどれであるかと、その情報ソースの数は、識別するための要因として使用することができる。例えば、VAシステム、ATDシステム、FWシステム、又はそれらの組み合わせは、デバイス(例えば、管理されたデバイス)上にもたらされた脅威を報告することができる。デバイスに対して報告された各脅威がMicrosoft WindowsXP(登録商標)関連の脅威である場合、この情報は、一般的なMicrosoft Windows(登録商標)デバイス又はより具体的にはMicrosoft WindowsXP(登録商標)デバイスとして、デバイスを正確に識別するために使用することができる。
【0040】
集約装置106は、ネットワーク接続デバイス122a、122bと通信し、ネットワーク接続デバイス122a、122bへネットワークアクセスを提供するように構成され得る。集約装置106は、ネットワーク接続デバイス122a、122bについて、ネットワーク監視装置102に情報(例えば、オペレーティングシステム、デバイス名など)を提供するようにさらに構成され得る。集約装置106は、次に限定されないが、Bluetooth(登録商標)、Wi-Fi(登録商標)、ZigBee(登録商標)、無線周波数識別(RFID)、ライファイ(Li-Fi)、Z-Wave、Thread、ロング・ターム・エボリューション(LTE)、Wi-Fi(登録商標)HaLow、HomePlug、同軸ケーブルマルチメディア協会(MoCA)、及びイーサネットを含む複数の技術標準又はプロトコルを通じて幅広く多様なデバイスと通信するように構成された無線アクセスポイントであり得る。例えば、集約装置106は、イーサネット接続を介してネットワークデバイス104と連結し、また、無線接続を介してネットワーク接続デバイス122a、122bと連結するように構成され得る。集約装置106は、所有者の拡張又は修正を伴う標準プロトコルを使用してネットワーク接続デバイス122a、122bと通信するように構成され得る。
【0041】
集約装置106は、ネットワーク接続デバイス122a、122bのアクティビティ及びプロパティのログ情報をネットワーク監視装置102にさらに提供することができる。ログ情報は、(例えば、ネットワーク上のデバイスの種類が頻繁に変更されない)安定なネットワーク環境に対して特に信頼し得ることが理解される。
【0042】
デバイス名は、識別決定を行う際に、ネットワーク監視装置102によって使用されても良い。例えば、ログ情報は、デバイス名(例えば、LED_bulb_1やLED_strip_1)を含むことができる。デバイス名は、サブグループに入るデバイスを識別するためにさらに使用されても良い。例えば、LED_bulb_1のデバイス名は、照明グループの電球サブグループに入るデバイスを識別するために使用することができ、LED_strip_1のデバイス名は、照明グループの直管蛍光灯による照明サブグループに入るデバイスを識別するために使用することができる。
【0043】
ネットワーク監視装置102は、識別決定を行うためにデバイスの挙動をさらに使用することができる。挙動は、デバイスの動作スケジュールを含み得る。例えば、デバイスの電源が毎朝6:00又は毎日日の出の1時間以内にオンになっている場合、そのような情報を、光制御ブリッジデバイスと通信可能に連結されている電球としてのデバイスを識別するために使用することができる。
【0044】
ネットワーク監視装置102は、デバイス識別を決定する際に、クラスタリング情報(例えば、デバイス情報類似性)をさらに使用することができる。例えば、第1のデバイスが電球として識別され、第2のデバイスが同じIPアドレス(例えば、同じIPアドレス範囲又は数アドレスしか離れていないIPアドレス)又は同様のオン/オフ時間を有している場合、第2のデバイスは照明装置として識別され得る。
【0045】
ネットワーク監視装置102は、デバイスを識別するために、位置又は近接情報又は隣接のヒューリスティクスをさらに使用することができる。例えば、冷蔵装置を識別するのが難しい場合、例えば、当該冷蔵装置がキッチンのオーブンなどの別のネットワーク接続デバイスに近いという事実が、冷蔵装置を正確に識別するために使用できる。別の例として、ブルーレイデバイスを識別するのが難しい場合、ブルーレイデバイスが家庭用ゲーム機とテレビに近いという情報が、ブルーレイデバイスを正確に識別するために使用できる。
【0046】
図2は、様々な実施形態によって使用される例示的なコンポーネントを示す。特定のコンポーネントがシステム200に開示されているが、そのようなコンポーネントは例であることを理解されたい。すなわち、本発明の実施形態は、システム200に列挙された様々な他のコンポーネント又はコンポーネントの変形を有するのによく適している。システム200のコンポーネントは提示されたコンポーネント以外のコンポーネントで動作してもよく、システム200の目的を達成するためにシステム200のコンポーネントの全てが必要とされるわけではないということを理解されたい。
【0047】
図2は、本開示の一実施に従ったデバイス識別のためのシステム200の実例となるコンポーネントを示す。システム200は、データ収集コンポーネント202、識別エンジン240、及びデバイス情報データベース242を含む。いくつかの実施形態では、システム200は、デバイスがネットワーク(例えば、ネットワーク100)に参加するとき、データ識別を実行する。例えば、システム200は、ネットワークに参加しているデバイスの検出に基づいて、デバイスの識別を開始することができる。
【0048】
データ収集コンポーネント202は、デバイス識別のためにデータを収集及び分析することができる。データ収集コンポーネント202は、パケットエンジン204、ポートエンジン220、及び高度な検出エンジン230を含む。
【0049】
パケットエンジン204は、ネットワークトラフィックに(例えば、受動的に)アクセスし、ネットワークトラフィックを分析するように構成される。パケットエンジン204は、DHCP分析コンポーネント206、プロトコル分析コンポーネント208、ペイロード分析コンポーネント210、及び識別子分析コンポーネント212を含む。パケットエンジン204による受動的分析は、ネットワークトラフィックの傍聴又はポートミラーリング(例えば、ネットワークスイッチからのパケットの受信)を通じてパケットにアクセスすることにより実行され得る。パケットエンジン204による受動的分析は、パケットを精査又はアクティブにデバイスに送信すること及び応答を分析することに敏感なデバイス(例えば、医療機器)のパケット分析を可能にする。
【0050】
DHCP分析コンポーネント206は、オプションパラメータリスト又はリクエストパラメータリスト及びDHCPオペレーティングシステムパラメータを含む1又は2以上のDHCPパケットの様々なパラメータにアクセスすることができる。例えば、検査されるDHCPオプションパラメータは、1-20と45を含むことができる。DHCP分析コンポーネント206は、識別されるデバイスのDHCPトラフィックにおけるオプションの数に基づいて異なるデバイスの種類とオペレーティングシステムを決定するように構成することができる。DHCP分析コンポーネント206は、DHCPトラフィック分析に基づいてオペレーティングシステム又はデバイスの種類を識別するために、DHCPオプション、パラメータ、又はそれらの組み合わせの一意のパターンを使用し得る。
【0051】
例えば、1又は2以上のパケットのDHCPリクエストから、2つのフィールドは、デバイス識別のインジケータに使用することができる:1)ベンダークラス識別子は、デバイスがMSFT5.0システムであることを示すことができ、2)パラメータリクエストリストは、[1(サブネットマスク)、15(ドメイン名)、3(ルータ)、6(ドメイン名サーバ)、44(NetBIOS over TCP/IPスコープ)、31(ルータ発見の実行)、33(静的ルート)、121(クラス静的ルート)、249(プライベート/クラス静的ルート(Microsoft))、43(ベンダー特定情報)、及び252(プライベート/プロキシ自動発見)]であっても良く、パラメータリクエストリストは、Windows(登録商標)のオペレーティングシステムに特有である。
【0052】
プロトコル分析コンポーネント208は、使用される又は使用されている通信プロトコルに関連付けられた識別されるデバイスに関連付けられた1又は2以上のパケットの部分にアクセスする。いくつかの実施形態では、プロトコル分析コンポーネント208は、1又は2以上のパケットで規定されたポートに基づいて、使用されているプロトコルを決定することができる。例えば、ポート80又は8080は、HTTPプロトコルが使用されていることを示し、ポート22は、セキュアシェル(SSH)プロトコルが使用されていることを示し、ポート23は、テルネットプロトコルが使用されていることを示すことができる。プロトコル分析コンポーネント208は、バナー(例えば、複数のパケットを拡散する)にアクセスすることもできる。例えば、HTTP、ファイル転送プロトコル(FTP)、及びシンプル・メール・トランスファー・プロトコル(SMTP)のポートに対して行われた要求は、ソフトウェア、資源タグ、オペレーティングシステムなどのバージョンを含む、識別されるデバイス上で実行するサービスについて情報を伴ってバナー又はデータを返す場合がある。
【0053】
プロトコル分析コンポーネント208は、デバイスを識別するために、暗号スイートを使用するようにさらに構成され得る。例えば、デバイスがサーバとの通信中に暗号化を使用する場合、デバイスによりサポートされ、暗号化された通信接続を確立する前にサーバに通信される暗号スイートは、デバイスを識別する際に使用することができる。各応答確認プロセスは、デバイスを識別するための指紋又はインジケータとして使用することができる。特定のデバイスの暗号化スイートは、1又は2以上のパラメータを伴う応答確認プロセスの一部であり得る。暗号化スイート情報は、SSLプロトコルパケット形式の仕様に従ってバイナリー形式で交換又は通信可能であることが理解される。
【0054】
別の例として、セキュアソケットレイヤ(SSL)応答確認中、クライアントデバイス(例えば、IoTデバイス)は、クライアントがサポートし又は使用するように構成された暗号化スイートの優先順位リストをサーバに送信することがあり、サーバは、データ通信中に使用するために選択した1つの暗号化スイートを返信することがある。サポートされる暗号化スイートのリストは、一意である場合があり、デバイスを識別するのに使用することができる。拡張機能の数、拡張種類、及び値も一意にすることができる。サポートされている暗号化スイートのリストと拡張機能の数、拡張種類、及び値は、デバイス識別のために個別に又は組み合わせて使用することができる。
【0055】
例えば、クライアントデバイスは、
TLS_ECDME_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b),
TLS_ECDME_RSA_WITH_AES_128_GCM_SHA256 (0xc02f),
TLS_ECDME_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c),
TLS_ECDME_RSA_WITH_AES_256_GCM_SHA384 (0xc030),
TLS_ECDME_ECDSA_WITH_AES_256_CBC_SHA (0xc00a),
TLS_ECDME_ECDSA_WITH_AES_128_CBC_SHA (0xc00a), TLS_ECDME_RSA_WITH_AES_128_CBC_SHA (0xc013), TLS_ECDME_RSA_WITH_AES_256_CBC_SHA (0xc014),
TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x0033), TLS_DHE_RSA_WITH_AES_256_CBC_SHA
(0x0039), TLS_RSA_WITH_AES_128_CBC_SHA (0x002f), TLS_RSA_WITH_AES_256_CBC_SHA
(0x0035), TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000a)
を含む13の暗号化スイートをサポートすることができる。クライアントデバイスは、サーバ_名前、再交渉_情報及び楕円の曲線(server_name, renegotiation_info and elliptic _curves)を含む圧縮及び拡張機能をさらにサポートすることができる。
【0056】
さらに、デバイスが暗号化を使用しているという事実は、デバイスを識別する際に使用することができる。例えば、可能なデバイス識別のリストは、デバイスが暗号化を使用していると判定されると、暗号化を使用することが知られているものに削減することができる。
【0057】
ペイロード分析コンポーネント210は、1又は2以上のパケットのペイロードに関連付けられたパケットの1又は2以上の部分にアクセスして分析することができる。例えば、パケットに関連するHTTPに対して、ユーザエージェント文字列(例えば、使用されているブラウザとバージョン、オペレーティングシステム、プロセッサ、エンジン情報(例えば、レンダリングエンジン)、JavaScriptサポート、cookieサポート、デバイス画素比率、画面解像度、ブラウザのウィンドウサイズ)、URI、及び1又は2以上のアイコンは、アクセスされ、分析され得る。デバイス(例えば、オペレーティングシステム、プロセッサ、エンジン情報、ブラウザなど)に関連付けられたユーザエージェントの部分は、デバイスを識別又はデバイス識別の可能なインジケータを決定するために使用することができる。統一資源識別子(URI)は、例えば、デバイスがupdate.vender-site.comにアクセスする場合、デバイス識別のインジケータを提供することができる。ペイロード分析コンポーネ210は、異なるアイコンが異なるブラウザによって使用されるので、アイコンに基づいて使用されているブラウザを決定することもできる。
【0058】
ペイロード分析コンポーネント210は、接続のセットアップ中又はネゴシエーション中に特定のプロトコル(例えば、SSHやFTP)によって使用される1又は2以上のパケットのヘッダ内の明確なテキストパターンにアクセスすることもできる。ペイロード分析コンポーネント210は、コンベヤベルト又は医療機器を含む)所有者のプロトコル(例えば、運用技術(OT))を使用して1又は2以上のパケットのペイロードについて分析及び決定を行うようにさらに構成され得る。例えば、所有者のプロトコルが、プロトコルをベースにしたバイナリである場合、ペイロード分析コンポーネント210は、パケットを構文解析し、デバイス識別の際に使用するプロトコルとデバイス特性を識別することができる。
【0059】
いくつかの実施形態では、ペイロード分析コンポーネント210は、パケット生存時間(TTL)値にアクセスすることができる。異なるオペレーティングシステムは、デバイス識別に使用できる異なるTTL値を使用することができる。例えば、Linux(登録商標)は、TTL値に対し60又は64を使用する一方、Windows(登録商標)は120又は128を使用する。
【0060】
識別子分析コンポーネント212は、一意の識別子に対し1又は2以上のパケットを分析し、一意の識別子に基づいて、デバイス識別を含むデバイス特性を決定することができる。例えば、識別子分析コンポーネント212は、パケットからのMACアドレスにアクセス又は選択し、MACアドレスの組織的に一意の識別子(OUI)部分を分析することができる。識別子分析コンポーネント212は、次に、MACアドレスのOUI部分に基づいてデータ構造(例えば、データ構造300の)の値を設定することができる。この値は、次に、デバイスを識別するために、他の値と組み合わせられ得る。
【0061】
スコア(例えば、信頼性スコア)は、パケットエンジン204の1又は2以上のコンポーネントによる分析に基づいて、パケットエンジン204により決定することができる。次いで、信頼性スコアは、デバイス識別のために構成された正確さレベル(例えば、最小)に関連付けられた閾値と比較することができる。
【0062】
デバイスデータ及び分析データは、1又は2以上のデバイス指紋と比較するために識別エンジン240に送信されても良い。指紋が一致する場合、デバイス識別は、デバイス識別データベース242に出力され得る。
【0063】
識別エンジン240は、データ収集コンポーネント202、1又は2以上の指紋、又はそれらの組み合わせにより決定される、識別されるデバイスに関連付けられた1又は2以上のデータ要素に基づいてデバイス識別を決定するように構成される。識別エンジン240により使用される指紋は、(例えば、自動化されたダウンロードを介して定期的に)更新することができる。いくつかの実施形態では、信頼性スコアは、データ収集コンポーネント202により決定されたデータが特定のデバイス識別指紋と一致する程度に基づいて計算され得る。例えば、高い信頼性スコアは、記憶されたデバイス指紋の80%に一致する、識別されるデバイスに関連付けられたデータのために決定することができ、一方、低い信頼性スコアは、デバイス指紋の30%に一致する、識別されるデバイスに関連付けられたデータのために決定することができる。
【0064】
ポートエンジン220と高度な検出エンジン230は、デバイス識別を決定するために十分なデータがパケットエンジン204により集められる場合、デバイス識別を決定するために使用されない場合がある。いくつかの実施形態では、多くのデバイスがパケットエンジンに基づいて識別され、デバイスのごく一部が、ポートエンジン(例えば、パケットエンジンとポートエンジンからのデータの組み合わせに基づいて識別される)の実行後に識別され得る。また、識別される高度な検出エンジンのデータを必要とするデバイスはほとんどない。
【0065】
ポートエンジン220は、識別されるデバイスをアクティブに精査するように構成される(例えば、デバイスの各ポートのポートスキャンを使用して)。ポートエンジン220は、識別されるデバイスの各ポートを精査することができ、識別されるデバイスの開放及び閉鎖のポートに関連付けられたデータを記憶することができる。次に、開放及び閉鎖ポートは、開放及び閉鎖ポートが、既存のデバイス識別と一致するか、又は識別されるデバイスの識別可能なインジケータを提供するかどうかを決定するために、ローカルデータベース、リモートデータベース(例えば、オープンソースデータベース)、又はそれらの組み合わせと比較することができる。ポートエンジン220は、開放されているTCP/UDPポートのリストを、識別されるデバイスについて決定するための署名として使用することができる。例えば、照明装置は、(特定のポートに関連付けられた)特定のプロトコルを使用し、いくつかの照明装置に共通の特定の一連のポートを開放にすることができ、ポートエンジン220は、特定のプロトコルと解放された(又は閉鎖された)特定のポートに基づいて照明装置が実際に照明装置であることを決定することができる。ポートエンジン220のデバイス識別は、パケットエンジン204からのデータ分析にさらに基づくことができる。
【0066】
いくつかの実施形態では、ポートエンジン220は、アクティブなポートスキャンに潜在的に敏感なデバイスをスキャンしなくても良い。例えば、病院のネットワークが、ポートスキャンに敏感であると知られているネットワークの一部(例えば、メットワークアドレス範囲)を含む場合(例えば、ユーザ入力又はパケットエンジンからのデバイスデータに基づいて)、ポートエンジン220は、そのネットワークの一部上でデバイスのポートスキャンをスキップしても良い。ポートエンジン220は、また、パケットエンジン204により決定されるデバイス識別インジケータに基づいてデバイスのポートスキャンをスキップしても良い。したがって、システム200によるデバイス識別は、トラフィック分析、閾値、及びネットワーク環境情報(例えば、ポートスキャンに敏感なデバイスを伴うネットワークの一部)に基づくことができる。
【0067】
デバイスポートデータとポート分析データは、1又は2以上のデバイス指紋との比較のために識別エンジン240に送信され得る。指紋が一致すると、デバイス識別は、デバイス識別データベース242に出力され得る。
【0068】
識別されるデバイスがパケットエンジン204、ポートエンジン220、又はそれらの組み合わせからのデータに基づいて識別されない場合、高度な検出エンジン230が実行され得る。いくつかの実施形態では、高度な検出エンジン230は、ヒューリスティック分析コンポーネント232と機械学習分析コンポーネント234とを含む。高度な検出エンジン230は、示されたもの以外の他の分析コンポーネントを含むということが理解される。
【0069】
ヒューリスティック分析コンポーネント232は、パケットサイズ、パケット間隔、及びパケットシーケンス(例えば、クライアントとサーバの通信シーケンス)を分析することができる。例えば、クライアントからサーバに送信された第1のパケットが100バイトであり、クライアントからサーバに送信された第2のパケットが100バイトであり、サーバからクライアントに送信された第3のパケットが99バイトである場合、これは、デバイスの識別又はデバイス識別インジケータを提供するために使用することができる、パケットサイズの一意のトラフィックシーケンスであり得る。
【0070】
ヒューリスティック分析コンポーネント232は、同一ペイロード(例えば、レイヤ7のペイロード)に転送するネットワークトラフィック通信のために、異なるデバイスとデバイスの種類が、異なるパケットサイズ及び間隔(例えば、タイムスタンプに基づいて追跡可能な)を選択できるという事実を利用するように構成される。例えば、IoTデバイスがサーバにパケットを送信し、その後にサーバからクライアントへのパケットが続く(例えば、パケット間に特定の間隔を伴う)IoTデバイスとサーバ間のネットワークトラフィックは、デバイスを識別するために使用することができる一意のパターンであり得る。別の例として、3つのパケットがクライアントからサーバに送信されその後サーバが応答を送信すると、その時間間隔はクライアントデバイスを識別するために使用することができる。デバイスの間隔は、デバイスことに大きく異なり得る。ヒューリスティック分析コンポーネント232は、第1のパケットと第2のパケットの時間間隔を、デバイス識別を決定するためのパラメータとして使用することができる。
【0071】
ヒューリスティック分析コンポーネント232は、デバイスを識別する際にデバイスに関連付けられた電力消費をさらに使用することができる。例えば、ヒューリスティック分析コンポーネント232は、デバイス識別又はデバイス識別インジケータを決定するために、本明細書で考察された他の値と一緒にPower over Ethernet(POE)ネットワークデバイスからのデバイスに関連付けられた電力消費値を使用することができる。
【0072】
ヒューリスティック分析コンポーネント232は、デバイスのハートビート又はポーリング通信の時間間隔とサイズをさらに使用することができる。例えば、いくつかのデバイス(例えば、IoTデバイス)は、ハートビート通信をサーバ又はクラウドベースのシステムに(例えば通信接続を維持するために)定期的に送信することができる。様々なデバイスのハートビート通信は、デバイス間で異なる場合があり、時間間隔及びパケットサイズはデバイス識別に使用することができる。
【0073】
いくつかの実施形態では、ヒューリスティック分析コンポーネント232は、デバイス識別のためにヒューリスティクスデータの導関数(例えば、二次又はより高次のヒューリスティクス)を決定及び分析するように構成される。例えば、データの通信速度が、デバイスに固有の時間周期に転送されるデータのサイズに基づいて計算することができる。
【0074】
機械学習分析コンポーネント234は、(例えば、様々なDHCPオプションとパラメータの)新しい指紋を決定するために、ディープラーニングを使用することができる。機械学習分析コンポーネント234は、ネットワークトラフィックの大きなデータセットを使用して訓練されても良い。
【0075】
機械学習は、データ収集コンポーネント202の何れかのコンポーネント(例えば、DHCP分析コンポーネント206、プロトコル分析コンポーネント208、ペイロード分析コンポーネント210、識別子分析コンポーネント212、及びポート分析コンポーネント222)のデータ又は分析に基づいても良い。
【0076】
機械学習分析コンポーネント234は、パケットエンジン204、ポートエンジン220、及びヒューリスティック分析コンポーネント232(例えば、ヒューリスティクスの導関数を含む)からのデータを利用することができる。いくつかの実施形態では、機械学習分析コンポーネント234は、デバイス(例えば、ネットワーク100と連結している)を識別するために機械学習分析コンポーネント234により使用される1又は2以上の特定のデバイスのトラフィックを分離するために制御された環境で保存されたオフラインの訓練データを使用することができる。機械学習分析コンポーネント234は、1又は2以上のデバイス署名を、デバイス識別に基づく署名のためにさらに使用することができる。機械学習分析コンポーネント234は、アクティブ又はリアルタイムの機械学習分析を実行することができる。
【0077】
オフライン訓練データは、特定のデバイスを識別するために機械学習分析コンポーネント234を訓練するのに使用される、以前の又は過去に用いられたネットワークトラフィック(例えば、パケットエンジン204と高度な検出エンジン232により保存され及び分析されたネットワーク100の)を含むこともできる。例えば、10、20、又は100の未加工属性は、未加工の属性の組み合わせを決定するために、機械学習の訓練に使用され得る。未加工の属性の組み合わせ(例えば、モデルに基づく)は、コスト関数を計算するために使用することができる。特定の未加工の属性は、コスト関数に基づいてコスト値を計算するために使用することができる。このコスト値は、特定のデバイスの指紋として使用することができる。モデルは、ヒューリスティック分析(例えば、ヒューリスティック分析コンポーネント232による)に基づくデータを含む以前に受信したデータに基づくことができる。
【0078】
例えば、未加工の属性は、a=パケットサイズ、b=時間間隔、及びc=暗号化スイートの数を含むことができ、コスト関数は、使用するモデルに従って、例えば、a2+b2+c2などの非線形多項式を使用することができる。未加工の属性値(例えば、入力)は、特性のデバイスのため、コスト値を決定するためにコスト関数と一緒に使用することができる。
【0079】
高度な検出エンジン230によるデバイスデータ及び分析データは、識別エンジン240に、1又は2以上のデバイス指紋との比較のために送信され得る。指紋が一致すると、デバイス識別は、デバイス識別データベース242に出力され得る。
【0080】
システム200のモジュール式の性質により、他のコンポーネントに影響を与えることなくコンポーネントを独立してアップグレードすることができ、個々のコンポーネントを有効又は無効にする柔軟性を可能にし、その結果スケーラビリティ及び拡張性を提供することができるということが理解される。
【0081】
データ収集コンポーネント202のエンジンのそれぞれは、デバイス識別を決定するために使用することができる。例えば、識別されるデバイスがラズベリーパイ(登録商標)(組み込まれたシステム)で動作するIoTセンサである場合、DHCP分析コンポーネント206は、ラズベリーパイ(登録商標)で使用されるオペレーティングシステムであるラズビアン(Rasbian)の指紋と一致する[1,3,12,15,6,33,121,42,101]であるDHCPv4パラメータリストを分析する。次に、プロトコルとレイヤ7パケットペイロードは、確認され得る。プロトコル分析コンポーネント208は、ラズベリーパイ(登録商標)により使用される特定の通信プロトコルを検出することができ、その通信プロトコルは、ラズベリーパイ(登録商標)デバイスであり、オペレーティングシステムがラズビアン(Rasbian)であることをさらに示す。ペイロード分析コンポーネント210は、「ABCセンサモデル123」のユーザエージェントでHTTPトラフィックにアクセスすることができる。これは、デバイスがセンサ及びベンダABCに関連している可能性があることを示すことができる。識別子分析コンポーネント212は、識別されるデバイスのMACアドレス(例えば、OUIオプション)を分析し、MACアドレスがベンダーABCに関連付けられていることを決定することができる。したがって、パケットエンジン204分析に基づいて、デバイスのオペレーティングシステムがラズベリアンであり、ベンターがABCであると結論付けるために十分な情報があり得る。
【0082】
しかし、製品情報の信頼性スコアは、製品閾値に到達しない場合がある。次に、ポートエンジン220は、ポートスキャンを実行し、その結果を開放ポート/閉鎖ポートデータベースと比較するために実行され得る。その結果には、「センサ」というキーワードが含まれる場合があり、これは製品レベルでの信頼スコアに寄与する可能性があるが、製品閾値にまだ到達しない場合がある。高度な検出エンジン230は、次に実行され、パケットサイズ及びパケットシーケンスを以前の訓練データと比較し、温度センサの指紋(例えば、識別エンジン240との通信に基づいて)と一致することを決定することができる。次に、デバイス識別は、出力されて、デバイス情報データベース242に記憶することができる。
【0083】
いくつかの実施形態では、システム200は、処理デバイスにより実行されると、処理デバイスに、ネットワークと連結したデバイスに関連付けられた通信のパケットにアクセスさせ、パケットの複数のそれぞれの部分に関連付けられた第1の複数の値を決定させるエンコードされた命令を有する非一時的なコンピュータ可読媒体に記憶されたソフトウェアであり得る。例えば、第1の複数の値は、(例えば、パケットエンジン204により)パケット分析に基づいて決定され得る。命令は、さらに、処理デバイスに、デバイスの1又は2以上のポートをスキャンさせ、デバイスの1又は2以上のポートに関連付けられた第2の複数の値を(例えば、ポートエンジン220により)決定させることができる。命令は、さらに、処理デバイスに、ヒューリスティックに関連付けられた第3の複数の値を(例えば、高度な検出エンジン230により)決定させ、閾値にアクセスさせることができる。命令は、さらに、処理デバイスに、第1の複数の値、第2の複数の値、第3の複数の値、及び閾値に基づいて、(例えば、データ収集コンポーネント202の1又は2以上のエンジン、識別エンジン240、又はそれらの組み合わせにより)デバイスのデバイス識別を決定させ、デバイス識別を記憶させることができる。
【0084】
いくつかの実施形態では、ヒューリスティックは、パケットのサイズ、パケットを構成する複数のパケットに関連付けられる間隔、又はパケットを構成するパケットのシーケンスの少なくとも1つに関連付けられている。様々な実施形態では、ヒューリスティックは、パケットを構成するハートビート通信に関連付けられている。いくつかの実施形態では、第3の複数の値は、デバイスの電力消費にさらに関連付けられている。様々な実施形態では、第3の複数の値は、機械学習(例えば、機械学習分析コンポーネント234により)にさらに関連付けられている。
【0085】
いくつかの実施形態では、システムは、メモリと、当該メモリと連結された動作可能な処理デバイスを含む。処理デバイスは、ネットワークと連結されたデバイスに関連付けられた通信のパケットにアクセスし、パケットの複数のそれぞれの一部に関連付けられた第1の複数の値を決定する(例えばパケットエンジン204により)。処理デバイスは、さらに、パケットの複数のそれぞれの部分に関連付けられた第1の閾値にアクセスし、デバイスの1又は2以上のポートを(例えば、ポートエンジン220により)スキャンする。処理デバイスは、さらに、デバイスの1又は2以上のポートに関連付けられた第2の複数の値を(例えば、ポートエンジン220により)決定し、デバイスの1又は2以上のポートに関連付けられた第2の閾値にアクセスする。処理デバイスは、さらに、第1の複数の値、第2の複数の値、第1の閾値、及び第2の閾値に基づいて、デバイスのデバイス識別を(例えば、データ収集コンポーネント202の1又は2以上のエンジン、識別エンジン240、又はそれらの組み合わせにより)決定し、デバイス識別を記憶する。
【0086】
いくつかの実施形態では、パケットのそれぞれの部分に関連付けられた第1の複数の値の決定は、(例えば、パケットエンジン204により)受動的パケット分析を構成する。様々な実施形態では、デバイスの1又は2以上のポートに関連付けられた第2の複数の値の決定は、(例えば、ポートエンジン220による)アクティブポート分析に基づく。第2の複数の値の1つの値は、デバイス上で開放されている1又は2以上の転送制御プロトコル(TCP)ポート、又はデバイス上で開放されている1又は2以上のユーザデータグラムプロトコル(UDP)ポートの少なくとも1つに基づき得る。いくつかの実施形態では、第1の閾値は、オペレーティングシステム、ベンダー、又はベンダーの製品の少なくとも1つに関連付けられている。
【0087】
図3は、本開示の態様及び実施に従ったデバイス識別で使用するために動作可能なデバイス情報の典型的なデータ構造を示す。スコア行列300は、1又は2以上の層に対する値を記憶し、(例えば、閾値との比較に基づいて)デバイス識別で使用する信頼性スコアを計算するために、いくつかの実施形態により使用され得る例示的なデータ構造である。
【0088】
スコア行列300は、パケット部分304、ポート部分320、及び高度な検出部分330を含む。パケット部分304、ポート部分320、及び高度な検出部分300の各列に対し、スコア行列300は、オペレーティングシステム層350、ベンダー層360、及び製品層370のそれぞれの層に関連付けられた行を有する。各列の値は、それぞれの層に従って記憶される。例えば、о1の値は、オペレーティングシステムを示し得るパケットのレイヤ2部分に従って設定することができる。別の例として、オペレーティングシステム層350と列306に対し、値は、Microsoft WindowsXP(登録商標)が組み込まれたデバイスを使用していることを示すデバイスのパケットに基づいて割り当てられ得る。
【0089】
実施は、示されているよりも多く又は少ない列又は行をサポートしても良く、示されているよりも多く又は少なく値及びスコアをサポートしても良いことが理解される。さらに、各層の値又はスコアは1からnに進むが、値又はスコアの数は、任意の数であり、動的に調整できることが理解される。
【0090】
パケット部分304の値及びスコアは、パケット分析(例えば、パケットエンジン204により)に基づいて計算される。パケット部分304は、レイヤ2(L2)列306、レイヤ3(L3)列308、レイヤ4(L4)列310、及びレイヤ7列312(例えば、L7:1,L7:2,L7:3)を含む。
【0091】
L2列306は、オペレーティングシステム層350、ベンダー層360、及び製品層370に対する1又は2以上のパケットのレイヤ2の部分に関連する値及びスコアを記憶するために使用することができる。L2列306の値は、例えば、フレームサイズ、プロトコルタイプなどのレイヤ2の情報に基づくことができる。例えば、レイヤ2の情報が、プロトコルがCisco(登録情報)ディスカバリー・プロトコル(CDP)であることを示す場合、L2列のо1値は、Linuxであるオペレーティングシステムに基づいて設定され得る。L2列306のv1値は、Linuxであるオペレーティングシステム及び使用されているCDPプロトコルに基づくCisco(登録情報)であるベンダーに基づいて設定することができる。別の例として、p1値は、製品の特定の所有者のオペレーティングシステムを使用するデバイスに基づき得る。
【0092】
L3列308は、オペレーティングシステム層350、ベンダー層360、及び製品層370に対する1又は2以上のパケットのレイヤ3部分に関連する値を記憶するために使用することができる。例えば、L3列308の値は、IPプロトコル、TTLなどのレイヤ3情報に基づき得る。L4列310は、オペレーティングシステム層350、ベンダー層360、及び製品層370に対し、1又は2以上のパケットのレイヤ4部分に関連する値を記憶するために、使用することができる。例えば、L4列310の値は、TCP又はUDPプロトコルが使用されているか、ポートが使用されているかどうかを含むレイヤ4情報に基づき得る。L7列312は、オペレーティングシステム層350、ベンダー層360、及び製品層370に対し、1又は2以上のパケットのレイヤ7部分に関連する値を記憶するために、使用することができる。例えば、L7列312の値は、ユーザエージェント、URL名、コンテンツタイプなどを含むレイヤ7アプリケーション層ペイロード情報に基づき得る。
【0093】
ポート部分320は、ポート分析(例えば、ポートエンジン220により)に基づいて計算される値及びスコアを記憶するために、使用することができる。ポート部分320は、ポートスキャン列314を含む。ポートスキャン列314は、オペレーティングシステム層350、ベンダー層360、及び製品層370に対し、識別されるデバイスのポートスキャンの結果に関連する値を記憶するために、使用することができ、さらに、デバイス上の開放及び閉鎖ポートとデータベース(例えば、ローカル又はリモート)と比較することに基づき得る。
【0094】
高度な検出部分330は、値を記憶するために使用することができ、スコアは、ヒューリスティクス、機械学習又は訓練、又はそれらの組み合わせに基づいて、(例えば、高度な検出エンジン230により)決定され得る。高度な検出部分330は、ヒューリスティック列316-318と機械学習列320とを含む。ヒューリスティック列316-318は、1又は2以上のパケット(例えば、パケットサイズ、パケット間隔、及びパケットシーケンス)の様々なヒューリスティクスに関連する値又はスコアを記憶するために使用することができる。ヒューリスティック列316-318の値又はスコアは、ヒューリスティック分析コンポーネント232により決定された値又はスコアを記憶するために使用することができる。ヒューリスティック列316-318は、ヒューリスティクスの導関数(例えば、二次、三次など、ヒューリスティックデータの導関数)に基づく値又はスコアを記憶するために使用することもできる。機械学習列320は、本明細書で説明するように、識別されるデバイスに関連付けられたデータに対して実行される機械学習分析又は訓練に基づく値又はスコアを記憶するために、使用することができる。
【0095】
様々な重みは、スコア行列300の値に、例えば乗算されるなど適用され得る。例えば、レイヤ7の値に適用される重みは、デバイスを識別するためにより正確に使用可能な属性に基づいて、高くなり得る。別の例として、2の重みは特定のアプリケーションを示すレイヤ7属性にもしかすると適用(例えば、乗算)され、一方、1.2の重みは、他のレイヤ属性又は値に適用(例えば乗算)される。重みは、オフラインで訓練されるか、事前に決定されるか、経時的に調整されるか、又はそれらの組み合わせであり得る。重みと閾値は、オフラインで調整され、個別に更新され得る。
【0096】
パケット部分フィールド又はセル全体のスコアが決定されると、パケット部分の信頼性スコアが決定され得る。信頼性スコアは、スコア行列300のパケット部分の1又は2以上の値の組み合わせに基づいて、計算され得る。デバイス識別を実行するデバイス又はシステム(例えば、システム200)は、信頼性スコアを計算するためアルゴリズム(例えば、設定可能な)を使用することができる。デバイス識別を実行するシステムは、各デバイスに対し、スコア行列300を維持しても良い。スコア行列300の各列プロパティの値に基づいて、オペレーティングシステム層350、ベンダー層360、製品層370の各層の信頼性スコアが計算され得る。
【0097】
次に、製品層信頼スコアは、信頼できるデバイス識別が行われたかどうかを決定するために製品閾値と比較される。閾値が信頼性スコアによって満たされない場合、スコア行列300の他の部分の値が決定され得る(例えば、ポート部分320と高度な検出部分330)。
【0098】
いくつかの実施形態では、ポート部分320と高度な検出部分330の値は、オプションで決定される。パケットエンジン204の後の他のエンジン(例えば、ポートエンジン220と高度な検出エンジン230)の実行は、パケット部分の信頼性スコアが閾値を上回っているかどうかに基づくことができる。ポート部分320の値の決定は、識別されているデバイスがアクティブポートスキャン(例えば、パケットエンジン204により収集されたデータに基づいて決定されるようにユーザ入力に基づいて又はパケット部分304のインジケータ又は値に基づいて)に敏感であるかどうかに基づいても良い。
【0099】
各行のスコアに基づいて、層スコア380-384が決定され得る。オペレーティングシステム層スコア380は、オペレーティングシステム層350(行)に対する列306-320(例えば、о1-оn)の各値に基づいて決定され得る。ベンダー層スコア382は、ベンダー層360(行)に対する列306-320(例えば、v1-vn)の各値に基づいて決定され得る。製品スコア382は、製品層370(行)に対する列306-320(例えば、p1-pn)の各値に基づいて決定され得る。オペレーティングシステム層350、ベンダー層360、及び製品層370のそれぞれに対し、それぞれの閾値があり得る。いくつかの実施形態では、パケット部分304の値に基づくスコアは、製品層370に関連付けられた閾値を満たさない又は上回らない場合、ポート部分320と高度な検出330の値が決定され得る。
【0100】
信頼性スコアアルゴリズムは、調整することができ(例えば、オフライン又はリアルタイムで)、コンテンツの更新としてオンザフライで更新することもできる。例えば、信頼性スコアアルゴリズムは、ソフトウェアライブラリ更新の一部として更新することができる。
【0101】
図4を参照すると、フローチャート400は、様々な実施形態により使用される例示的な機能を示す。特定の機能ブロック(「ブロック」)がフローチャート400に開示されているが、そのようなブロックは例である。すなわち、実施形態は、フローチャート400に列挙された様々な他のブロック又はブロックの変形を実行するのに良く適している。フローチャート400のブロックは、提示された順序とは異なる順序で実行されても良いこと、及び、フローチャート400のブロックの全てが実行されなくても良いことが理解される。
【0102】
図4は、本開示の一実施に従ったデバイス識別のための方法の態様のフロー図を示す。フローチャート400の様々な部分は、例えば、パケットエンジン204、ポートエンジン220、高度な検出エンジン230、及び識別エンジン240の異なるコンポーネントによって実行され得る。
【0103】
ブロック402で、通信パケットがアクセスされる。パケットは、ネットワーク(例えば、ネットワーク100)と連結された通信可能なデバイス(例えば、デバイス120-130)から又は当該デバイスに送信されても良い。パケットは、複数のネットワークデバイス間の通信を促進するネットワークデバイス(例えば、ネットワークデバイス104)を介してアクセスされ得る。例えば、パケットは、パケットの一部にアクセスし、パケットの特定のレイヤ部分を精査し又は特定のレイヤにおけるパケットの1つのプロパティを精査し得るパケットエンジン(例えば、パケットエンジン204)によってアクセスされ得る。いくつかの実施形態では、パケットは、ネットワークと連結しているデバイスに応じてデバイスを検出することに基づいてアクセスされ得る。
【0104】
いくつかの実施形態では、1又は2以上のパケットは、スキップされ得る。例えば、大規模なダウンロード(例えば、3GB)が開示された場合、最初のいくつかのパケットはアクセスされ得るが、後続のパケットはアクセスすることができない(例えば、識別目的のために)。
【0105】
ブロック404で、パケットに関連付けられたデバイスが識別されたかどうかが決定される。これは、デバイス識別データ構造(例えば、デバイス情報データベース242)にアクセスし、パケット内の一意の識別子をデバイス識別データ構造と比較することにより決定され得る。パケットに関連付けられたデバイスが識別されている場合(例えば、以前に)、ブロック460が実行される。パケットに関連付けられたデバイスが識別されていない場合、ブロック410が実行される。
【0106】
ブロック410で、パケット分析が実行される。パケット分析は、パケット分析コンポーネント(例えば、パケットエンジン204)により実行され得る。パケット分析は、本明細書で説明されるように、1又は2以上のパケットの1又は2以上の部分にアクセスすることを含むことができる。パケット分析は、DHCP分析、プロトコル分析、ペイロード分析、及び識別子分析を含むことができる。
【0107】
ブロック412で、1又は2以上のスコア値が決定される。1又は2以上のスコア値は、パケット分析中にアクセスされる1又は2以上のパケットの1又は2以上の部分に基づいて決定され得る。例えば、スコア値は、パケットを送信したデバイスの強力な識別指示を有するレイヤ7プロパティに基づいて設定され得る。別の例として、スコア値は、パケット内にリストされている特定のポートに基づいて設定され得る。1又は2以上のスコア値は、本明細書に説明されるように、スコア行列(例えば、スコア行列300)の一部であり、様々な層(例えば、層350-370)に関連付けられていても良い。1又は2以上のスコアは、本明細書で説明されるように、スコアに適用される重みに基づいて決定され得る。
【0108】
ブロック414で、信頼性スコアが決定される。信頼性スコアは、本明細書で説明されるように、1又は2以上のスコア値の組み合わせに基づいて決定され得る。信頼性スコアは、識別の1又は2以上の層(例えば、層350-370)に関連付けられることができる。
【0109】
ブロック416で、デバイスが識別されたかどうかが決定される。デバイスが識別されたかどうかの決定は、本明細書で説明されるように、信頼性スコアが閾値を満たしている又は上回っているかどうかに基づいて、決定することができる。信頼性スコアが閾値を満たす又は上回っていると、デバイスが識別され、その後、ブロック418が実行される。信頼性スコアが閾値を満たすと、デバイスが識別されず、その後、ブロック420が実行される。
【0110】
ブロック418で、デバイス識別が出力される。デバイス識別は、将来のアクセスのために記憶され(例えば、別のプログラム又はモジュールにより)、グラフィカルユーザインタフェース(GUI)などの一部として表示される。例えば、デバイス識別は、類似デバイスのグループの一部として表示され、又は通知の一部として提示され得る。デバイス識別は、デバイス識別に基づいてデバイスにポリシー(例えば、セキュリティポリシー)を実装するためにも使用され得る。例えば、デバイス識別は、ベンダーAとモデル123により作成されたインターネットプロトコル(IP)カメラを含むことができ、デバイス識別は、セキュリティポリシーをベンダーAからの各デバイス又はモデル123である各デバイスに適用するために使用され得る。別の例として、デバイス識別は、ネットワークトラフィックパターン(例えば、予想されるトラフィックパターン)に基づいてデバイスのネットワークアクセスを監視及び制御するために使用され得る。デバイス識別は、特定のデバイス又はアプリケーション(例えば、特定のアプリケーションを実行する特定のデバイス)にサービス品質(QoS)制御を適用するために使用され得る。デバイス識別は、インシデント応答のためにさらに使用され得る。例えば、新たな脆弱性が特定のデバイスに発見された場合、アクション(例えば、デバイスのネットワーク通信を制限するセキュリティアクション)をデバイス識別に基づいて自動的に実行することができる。
【0111】
デバイス識別は、ネットワークの細分化と視覚化などのためにさらに使用することができる。例えば、特定のデバイスを有するネットワーク部分は、1又は2以上の他のネットワーク部分から分割する(例えば、アクセス制限する)ことができる。別の例として、1又は2以上のデバイスのデバイス識別は、(例えば、デバイス種類、製造者ロゴなど)デバイス識別に基づく1又は2以上のアイコンを有するGUIの一部として、視覚的に示され得る。
【0112】
ブロック420で、パケット分析情報が記憶される。パケット分析情報は、本明細書で説明されるように、決定された1又は2以上のスコア値と、1又は2以上の信頼性スコアとを含み得る。記憶された情報は、(例えば、ポートエンジン200又は高度な検出エンジン230からの)記憶された情報と追加情報とに基づいてデバイス識別を決定する際に使用するために記憶されても良い。
【0113】
ブロック422で、ポート分析が実行される。本明細書で説明されるように、ポート分析は、識別されるデバイスのポートスキャンを含み得る。いくつかの実施形態では、ポート分析は、識別されるデバイスが(例えば、パケット分析に基づいて)ポートスキャンに敏感である可能性がある場合、オプションであるかスキップすることができ、ブロック432が実行され得る。
【0114】
ブロック424で、1又は2以上のスコア値が決定される。1又は2以上のスコア値は、ポート分析に基づいて決定された開放及び閉鎖ポート(例えば、TCP/UDPポート)に基づいて決定される。例えば、スコア値は、識別されるデバイス上で開放されている特定のポートに基づき得る。1又は2以上のスコア値は、本明細書で説明されるように、スコア行列(例えば、スコア行列300)の一部であり、様々な層(例えば、層350-370)に関連付けられ得る。1又は2以上のスコア値は、本明細書で説明されるように、スコアに適用される重みに基づいて決定され得る。
【0115】
ブロック426で、信頼性スコアが決定される。信頼性スコアは、本明細書で説明されるように、決定された1又は2以上のスコア値の組み合わせに基づいて決定され得る。信頼性スコアは、識別の1又は2以上の層(例えば、層350-370)に関連付けられ得る。信頼性スコアは、パケット分析に関連付けられ、ポート分析に関連付けられたスコアにさらに基づき得る。
【0116】
ブロック428で、デバイスが識別されたかどうかが決定される。デバイスが識別されたかどうかの決定は、信頼性スコアが閾値を満たすか上回っているかどうかに基づいて決定することができる。信頼スコアが閾値を満たす又は上回っている場合、デバイスは識別されており、ブロック418が実行される。信頼性スコアが閾値を満たす場合、デバイスが識別されておらず、ブロック430が実行される。
【0117】
ブロック430で、ポート分析情報が記憶される。ポート分析情報は、本明細書で説明されるように、決定された1又は2以上のスコア値と信頼性スコアとを含み得る。記憶された情報は、(例えば、高度な検出エンジン230からの)記憶された情報と追加情報とに基づいてデバイス識別を決定する際に使用するために記憶され得る。
【0118】
ブロック432で、高度な分析が実行される(例えば、高度な検出エンジン230)。本明細書で説明されるように、高度な分析は、識別されるデバイスのヒューリスティクスと機械学習分析とを含み得る。いくつかの実施形態では、高度な分析は、本明細書で説明されるように、識別されるデバイスがポートスキャンに敏感である可能性がある場合に実行され得る。
【0119】
ブロック434で、1又は2以上のスコア値が決定される。1又は2以上のスコア値は、本明細書で説明されるように、ヒューリスティクス又は機械学習分析に基づいて決定される。例えば、スコア値は、1又は2以上のパケットのサイズ、パケット間の間隔、及びパケットのシーケンスに基づき得る。1又は2以上のスコア値は、本明細書で説明されるように、スコア行列(例えば、スコア行列300)の一部であり、様々な層(例えば、層350-370)に関連付けられ得る。1又は2以上のスコアは、本明細書で説明されるように、スコアに適用される重みに基づいて決定され得る。
【0120】
ブロック436で、信頼性スコアが決定される。信頼性スコアは、本明細書で説明されるように、決定された1又は2以上のスコア値の組み合わせに基づいて決定され得る。信頼性スコアは、識別の1又は2以上の層(例えば、層350-370)に関連付けられ得る。信頼性スコアは、パケット分析に関連付けられ、ポート分析に関連付けられたスコアにさらに基づき得る。
【0121】
ブロック440で、デバイスが識別されたかどうかが決定される。デバイスが識別されたかどうかの決定は、信頼性スコアが閾値を満たすか上回っているかどうかに基づいて決定され得る。信頼性スコアが閾値を満たす又は上回っている場合、ブロック418が実行される。信頼性スコアが閾値を満たす場合、デバイスが識別されておらず、ブロック450が実行される。
【0122】
ブロック450で、高度な分析情報が記憶される。高度な分析情報は、本明細書で説明されるように、決定された1又は2以上のスコア値と信頼性スコアとを含み得る。記憶された情報は、(例えば、パケットエンジン204、ポートエンジン220、高度な検出エンジン230、又はそれらの組み合わせからの)記憶された情報と追加情報とに基づいて将来のデバイス識別プロセスで使用するために記憶され得る。高度な分析情報は、提案されたデバイス識別を決定するためにさらに使用され得る。
【0123】
ブロック452で、識別提案が決定される。識別提案は、パケット分析、ポート分析、及び高度な分析情報に基づいて最も可能性の高いデバイスの識別であり得る。
【0124】
ブロック454で、識別提案が出力される。識別提案は、記憶され又はGUIの一部として表示され得る。識別提案は、(例えば、デバイスを識別するため)ユーザに識別提案の確認又は追加情報の提供を促すメッセージの一部としてユーザに対して表示され得る。
【0125】
ブロック460で、1又は2以上の追加のパケットベース機能が実行される。実行されるパケットベース機能は、識別とは個別の又は異なるパケットエンジンの他の機能(例えば、セキュリティ、トラフィックブロッキングなど)であり得る。実行される他の機能には、デバイス上で実行しているアプリケーションを決定すること、デバイスの脆弱性を決定すること、及びデバイスに関連付けられたユーザ情報(例えば、マシンにログインしているユーザ)を含むことができる。
【0126】
いくつかの実施形態では、デバイス識別プロセスは、パケット分析(例えば、パケットエンジン204により)、ポート分析(例えば、ポートエンジン220により)、及び高度な検出分析(例えば、高度な検出エンジン230により)を使用して直列化された方法で実行される。信頼閾値内で確認される3層(例えば、層350-370)の情報に応じて、識別プロセスは、識別時間とCPUの使用に関する節約をもたらすために終了することができる。例えば、パケットエンジンが高い信頼性スコアでデバイスを識別することができる場合、識別プロセスは、ポートエンジン及び高度な検出エンジンを使用することなく終了することができる。同様に、ポートエンジンにより決定されるように、ポート分析データと一緒にパケットエンジンデータが、高い信頼性スコアでデバイスを識別することができる場合、識別は、高度な検出エンジンを使用することなく完了することができる。
【0127】
処理能力及び時間は、各エンジンに基づいて異なり得る。例えば、パケットエンジンは、ポートエンジンよりも少ない処理と時間で済み、ポートエンジンは、高度な検出エンジンより少ない処理能力で済む。
【0128】
図5は、本明細書で説明される手段の何れか1つ又は複数をマシンに実行させるための一連の命令が実行され得るコンピュータシステム500の例示的な形態のマシンの図表示を示す。代替の実施形態では、マシンは、ローカルエリアネットワーク(LAN)、イントラネット、エクストラネット、又はインターネット内の他のマシンに接続(例えば、ネットワーク化)され得る。マシンは、クライアント‐サーバのネットワーク環境のサーバ又はクライアントマシンの能力内で、又はピアツーピア(又は分散)ネットワーク環境のピアマシンとして動作し得る。マシンは、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、Wdbアプライアンス、サーバ、ネットワークルータ、スイッチ又はブリッジ、ハブ、アクセスポイント、ネットワークアクセス制御デバイス、又はそのマシンが実行するアクションを特定する一連の命令(一連の又は他の)を実行することができる任意のマシンであり得る。さらに、単一のマシンのみが示されているが、「マシン」という用語は、本明細書で説明される1又は2以上の何れかの手段を実行するために、個別又は連帯して一連の(又は複数の一連の)命令を実行するマシンの集団も含むものとする。一実施形態では、コンピュータシステム500は、例えば、デバイス識別又はシステム200を実行するように構成されたネットワーク監視装置102などのサーバが代表し得る。
【0129】
典型的なコンピュータシステム500は、処理デバイス502、メインメモリ504(例えば、読み出し専用メモリ(ROM)、フラッシュメモリ、ダイナミックランダムアクセスメモリ(DRAM)、静的メモリ506(例えば、フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)など)、及びデータストレージデバイス518を含み、これらは、バス530を介して互いに通信する。本明細書で説明される様々なバスを介して提供される信号は、他の信号と時分割され、1又は2以上の共通のバスを介して提供される。さらに、回路コンポーネント又はブロックの相互接続は、バス又は単一の信号線として示される場合がある。バスのそれぞれは、代替的に1又は2以上の単一の信号線であっても良く、単一の信号線のそれぞれは、代替的にバスであっても良い。
【0130】
処理デバイス502は、例えば、マイクロプロセッサ、中央処理ユニット又は同様のものなどの1又は2以上の汎用処理デバイスを表す。より具体的には、処理デバイスは、複雑な命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピュータ(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、又は他の命令セットを実装しているプロセッサ、又は命令セットの組み合わせを実装しているプロセッサであっても良い。処理デバイス502は、例えば、特定用途向け集積回路(ASIC)、フィールドプログラマグルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサ、又は同様のものなど、1又は2以上の特殊用途処理デバイスであっても良い。処理デバイス502は、本明細書で説明される動作及びステップを実行するために、
図2に示されるシステム200の一例であり得る処理ロジック526を実行するように構成される。
【0131】
データストレージデバイス518は、本明細書で説明される1又は2以上の何れかの機能の手段を具体化する1又は2以上の一連の命令522(例えば、ソフトウェア)が記憶される機械可読記憶媒体528を含む。この命令522は、処理デバイス502にデバイス識別子200を実行させる命令を含む。命令522は、コンピュータシステム500による命令522の実行中に、メインメモリ504内又は処理装置502内に完全に又は少なくとも部分的に存在することもでき;メインメモリ504及び処理デバイス502は、機械可読記憶媒体を構成することもできる。命令522は、ネットワークインターフェイスデバイス508を通じてネットワーク520を介してさらに送信又は受信されても良い。
【0132】
機械可読記憶媒体528は、また、本明細書で説明されるように、デバイス識別のための方法を実行するための命令を記憶するために使用され得る。機械可読記憶媒体528は、単一の媒体であるように典型的な実施形態で示されているが、「機械可読記憶媒体」という用語は、1又は2以上の命令セットを記憶する単一の媒体又は複数の媒体(例えば、集中型又は分散型のデータベース、又は関連するキャッシュとサーバ)を含むものとする。機械可読記憶媒体は、マシン(例えば、コンピュータ)によって読み出し可能な形式(例えば、ソフトウェア、処理アプリケーション)で情報を記憶するための任意のメカニズムを含む。機械可読記憶媒体は、磁気記憶媒体(例えば、フロッピーディスク);光学記憶媒体(例えば、CD-ROM);光磁気記憶媒体;読み出し専用メモリ(ROM);ランダム‐アクセスメモリ(RAM);消去可能なプログラマブルメモリ(例えば、EPROM及びEEPROM);フラッシュメモリ;又は電子命令を記憶するのに適した他の種類の媒体を含み得るが、これらに限定されない。
【0133】
前述の記載は、本開示のいくつかの実施形態の良い理解を提供するために、例えば、特定のシステム、コンポーネント、方法その他の例などの多数の特定の詳細を説明する。しかし、本開示の少なくともいくつかの実施形態は、これらの特定の詳細なしでも実施され得ることは当業者には明らかであろう。他の例では、本開示を不用意に不明瞭にするのを避けるために、周知のコンポーネント又は方法は詳細に説明されないか、単純なブロック図形式で提示される。したがって、説明されている特定の詳細は、単なる例に過ぎない。特定の実施形態は、これらの例となる詳細から変わる場合があるが、本発明の範囲内にあると依然として考えられる。
【0134】
本明細書を通じて「一実施形態」又は「1つの実施形態」への言及は、少なくとも一実施形態に含まれる実施形態に関連して説明される特定の特徴、構造、又は特性を意味する。したがって、本明細書を通じて様々な場所における「一実施形態では」又は「1つの実施形態では」という語句の出現は、必ずしも全てが同じ実施形態を指しているわけではない。さらに、「又は」という用語は、排他的な「又は」というよりも、包括的な「又は」を意味することを意図したものである。
【0135】
さらに、いくつかの実施形態は、機械可読記憶媒体が記憶され、又は複数のコンピュータシステムにより実行される分散型コンピューティング環境で実施され得る。さらに、コンピュータシステム間で転送される情報は、コンピュータシステムを接続する通信媒体を渡ってプル又はプッシュされ得る。
【0136】
請求される主題の実施形態は、本明細書で説明される様々な動作を含むが、これらに限定されない。これらの動作は、ハードウェアコンポーネント、ソフトウェア、ファームウェア、又はそれらの組み合わせにより実行され得る。
【0137】
本明細書の方法の動作は、特定の順序で示されて説明されているが、各方法の動作の順序は、ある動作が逆の順序で実行されるように、又は、ある動作が他の動作と同時に少なくとも部分的に実行されるように、変更されても良い。別の実施形態では、区別できる動作の命令又はサブ動作は、断続的又は交互に起こる方法であり得る。
【0138】
要約の記載を含む発明の図入りの実施の上記の説明は、網羅的であること又は開示された正確な形態に発明を限定することを意図するものではない。本発明の特定の実施及び例が例示の目的で本明細書で説明されているが、様々な同等な修正は、当業者が認識するように、本発明の範囲内で可能である。「例(example)」又は「典型的な(exemplary)」という文言は、「例(example)」、「実例(instance)」、又は「例証(illustration)」として役目を果たすつもりで本明細書で使用される。本明細書で「例(example)」又は「典型的な(exemplary)」として説明される態様又は設計は、他の態様又は設計よりも好ましい又は有利であるとして必ずしも解釈されるべきではない。むしろ、「例(example)」又は「典型的な(exemplary)」という文言の使用は、概念を具体的な方法で提示することを意図している。この出願で使用されるように、「又は(or)」という用語は、排他的な「又は」よりはむしろ包括的な「又は」を意味することを意図している。つまり、特に明記しない限り、又は文脈から明らかでない限り、「XはA又はBを含む」は、自然な包括的な順列の何れかを意味することを意図している。つまり、XがAを含む;XがBを含む;XがAとBの両方を含む場合、「XはA又はBを含む」は前述の何れかの場合の下で満たされる。さらに、この出願及び添付された特許請求の範囲で使用される冠詞「a」及び「an」は、特に明記しない限り又は単数形を対象にする文脈から明らかでない限り、「1又は2以上」を意味するように一般的に解釈されるべきである。さらに、「実施形態(embodiment)」又は「一実施形態(one embodiment)」又は「実施(an implementation)」又は「一実施(one implementation)」という用語の使用は、そのように説明しない限り、同じ実施形態又は実施を意味することを意図するものではない。さらに、本明細書で使用される「第1の」、「第2の」、「第3の」、「第4の」といった用語は、異なる要素を区別するためのラベルとして意味があるものであり、数字上の指定に従った順序の意味を必ずしも持たない場合がある。