(57)【要約】  デバイス識別のためのシステム、方法、及び関連技術が説明されている。ある態様では、デバイスに関連付けられたパケットデータを分析し、スコアを決定することができる。そのスコアと閾値がデバイスのためのデバイス識別を決定するために比較され得る。【選択図】図４
2020518208.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに連結されたデバイスに関連付けられた通信のパケットにアクセスするステップと、
前記パケットの複数のそれぞれの部分に関連付けられた複数の値を決定するステップと、
閾値にアクセスするステップと、
処理装置により、前記複数の値の少なくとも１つと前記閾値とに基づいて前記デバイスのデバイス識別を決定するステップと、
前記デバイス識別を保存するステップと、
を含む方法。
【請求項２】
前記デバイス識別を決定するステップは、前記閾値を、前記複数の値のうち少なくとも２つの値の組み合わせと比較することを含む、
請求項１に記載の方法。
【請求項３】
前記パケットの前記複数のそれぞれの部分に関連付けられた前記複数の値を決定するステップは、受動的パケット分析を含む、
請求項１に記載の方法。
【請求項４】
前記パケットに関連付けられた前記複数の値の各それぞれの値にそれぞれの重みを適用するステップをさらに含み、
前記デバイス識別を決定するステップは、前記複数の値の少なくとも１つとそれぞれの重みの少なくとも１つに基づく、
請求項１に記載の方法。
【請求項５】
前記複数の値の１つの値は、前記デバイスに関連付けられた暗号スイートに基づく、
請求項１に記載の方法。
【請求項６】
前記複数の値の１つの値は、前記パケットの動的ホスト制御プロトコル（ＤＨＣＰ）パラメータに基づく、
請求項１に記載の方法。
【請求項７】
前記複数の値の１つの値は、前記パケットの動的ホスト制御プロトコル（ＤＨＣＰ）オペレーティングシステムパラメータに基づく、
請求項１に記載の方法。
【請求項８】
前記複数の値の１つの値は、前記パケットに関連付けられたプロトコルに基づく、
請求項１に記載の方法。
【請求項９】
前記複数の値の１つの値は、前記パケットに関連付けられたバナーに基づく、
請求項１に記載の方法。
【請求項１０】
前記複数の値の１つの値は、前記パケットに関連付けられたメディアアクセス制御（ＭＡＣ）アドレスに基づく、
請求項１に記載の方法。
【請求項１１】
メモリと、
前記メモリに動作可能に連結された処理装置であって、
ネットワークに連結されたデバイスに関連付けられた通信のパケットにアクセスし、
前記パケットの複数のそれぞれの部分に関連付けられた第１の複数の値を決定し、
前記パケットの複数のそれぞれの部分に関連付けられた第１の閾値にアクセスし、
前記デバイスの１又は２以上のポートをスキャンし、
前記デバイスの前記１又は２以上のポートに関連付けられた第２の複数の値を決定し、
前記デバイスの前記１又は２以上のポートに関連付けられた第２の閾値にアクセスし、
前記第１の複数の値、前記第２の複数の値、前記第１の閾値、及び前記第２の閾値に基づいて前記デバイスのデバイス識別を決定し、前記デバイス識別の前記決定が前記第１の複数の値及び前記第２の複数の値に基づくスコアと前記第２の閾値との比較に基づくものであり、
及び、前記デバイス識別を記憶するための前記処理装置と、
を含む、システム。
【請求項１２】
前記パケットの前記それぞれの部分に関連付けられた前記第１の複数の値の前記決定は、受動的パケット分析を含む、
請求項１１に記載のシステム。
【請求項１３】
前記デバイスの前記１又は２以上のポートに関連付けられた前記第２の複数の値の前記決定は、アクティブポート分析に基づく、
請求項１２に記載のシステム。
【請求項１４】
前記第２の複数の値の１つの値は、前記デバイス上で開放されている１又は２以上の伝送制御プロトコル（ＴＣＰ）又は前記デバイス上で開放されている１又は２以上のユーザデータグラムプロトコル（ＵＤＰ）に基づく、
請求項１１に記載のシステム。
【請求項１５】
前記第１の閾値は、オペレーティングシステム、ベンダー、又は前記ベンダーの製品の少なくとも１つに関連付けられている、
請求項１１に記載のシステム。
【請求項１６】
エンコードされた命令を有する非一時的なコンピュータ可読媒体であって、処理装置により実行されると、前記処理装置は、
ネットワークに連結されたデバイスに関連付けられた通信のパケットにアクセスし、
前記パケットの複数のそれぞれの部分に関連付けられた第１の複数の値を決定し、
前記デバイスの１又は２以上のポートをスキャンし、
前記デバイスの前記１又は２以上のポートに関連付けられた第２の複数の値を決定し、
ヒューリスティックに関連付けられた第３の複数の値を決定し、
第３の閾値にアクセスし、
前記処理装置により、前記第１の複数の値、前記第２の複数の値、前記第３の複数の値、及び前記第３の閾値に基づいて前記デバイスのデバイス識別を決定し、及び、
前記デバイス識別を記憶する、
非一時的なコンピュータ可読媒体。
【請求項１７】
前記ヒューリスティックは、前記パケットのサイズ、前記パケットを含む複数のパケットに関連付けられた間隔、又は、前記パケットを含む一連のパケットに関連付けられている、
請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項１８】
前記ヒューリスティックは、前記パケットを含むハートビート通信に関連付けられている、
請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項１９】
前記第３の複数の値は、前記デバイスの電力消費にさらに関連付けられている、
請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項２０】
前記第３の複数の値は、機械学習にさらに関連付けられている、
請求項１６に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連特許出願の相互参照］
この出願は、２０１７年３月２０日に出願された米国仮特許出願第１５／４６３，２２７号の利益を主張し、その各々の全内容は参照により本明細書に組み込まれる。
【０００２】
［技術分野］
本開示の態様及び実施は、ネットワーク監視に関し、より具体的には、通信ネットワークを介して利用可能な情報に基づくデバイス識別に関する。
【背景技術】
【０００３】
技術が進歩するにつれて、通信ネットワークに接続されるデバイスの数と種類は急速に増加している。デバイスの数と種類のこの急速な増加は、新しいデバイスが頻繁に導入されるので、デバイスの識別を困難にし得る。ネットワークに接続されたデバイスの識別は、正式に許可されていない又は不正なデバイスがネットワークリソースにアクセスするのを防ぐために、通信ネットワークを監視及び保護するのに役立ち得る。
【発明の概要】
【０００４】
本開示の態様及び実施は、以下に与えられる詳細な説明と本開示の様々な態様及び実施の添付図面からより十分に理解されるが、特定の態様又は実施に開示を限定するものと解釈されるべきではなく、説明と理解のみのためのものである。
【図面の簡単な説明】
【０００５】
【図１】図１は、本開示の一実施に従った説明のための通信ネットワークを示す。
【図２】図２は、本開示の一実施に従ったデバイス識別のためのシステムの実例となるコンポーネントを示す。
【図３】図３は、本開示の態様及び実施に従ったデバイス識別で使用するために動作可能なデバイス情報の典型的なデータ構造を示す。
【図４】図４は、本開示の一実施に従ったデバイス分類のための方法の態様のフロー図を示す。
【図５】図５は、本開示の一実施に従った例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【０００６】
本開示の態様及び実施は、デバイス識別に関する。開示されたシステム及び方法は他分野の中でもネットワークセキュリティに関して採用することができる。より具体的には、正式に許可されていないデバイスによるネットワークリソースへのアクセスは重大かつ深刻さを増す問題であることが理解できる。同時に、ネットワーク接続デバイス（スマートフォン、タブレット、ウェアラブルデバイスなど）の拡散は、許可されたこれらのユーザ又はデバイスに対するネットワークリソースへのアクセスを効果的に管理することを難しくし得る。したがって、本明細書で様々な実施で説明されるのは、（例えば、あるネットワークリソースにアクセスすることが許可されている又は許可されていないデバイスの種類、そのようなアクセスが許され又は許されていない状況等を規定するアクセスポリシーを定義し、採用することにより、）ネットワークデバイス及びアクティビティの継続的な監視を可能にし、ネットワークリソースへのアクセスを制御する能力を提供するシステム、方法、技術、及び関連技術である。
【０００７】
ネットワークアクセスポリシーを効率的に実施するため、ネットワークに接続されたデバイスの様々な態様、特徴、若しくは特性、又はデバイスがネットワークで何をしている（又はしていない）かを識別、分類、又はそうでなければ決定することが有利であり得る。ネットワーク接続デバイス（例えば、これらはイーサネット又はＷｉ−Ｆｉ（登録商標）を介して接続される）の多くの種類に関して識別情報（例えば、ＩＰアドレス、ＭＡＣアドレスなど）のある種類を決定することができるかもしれないが、ある状況では、高い精度で特定のデバイス（例えば、そのようなデバイスがアクセスポイントであるかどうか）のある特性を決定し、従ってデバイスを識別することが難しい場合がある。
【０００８】
特に「モノのインターネット（ＩｏＴ）」など、デバイスの数及び種類の増加により、全ての接続されるデバイスを理解、監視、及び制御する必要が高まっている。ＩｏＴシステム及びデバイスは、ますます大規模に家庭から大きな産業環境までにわたる様々なアプリケーションと場所で使用されている。ネットワーク上に表示されていないデバイスを保護することは、デバイスの識別が不明な場合は困難である。保護は、ユーザがデバイスそれ自体で有効にすることができるセキュリティ機能の点で非常に制限され得るＩｏＴデバイスに関して言えば、特に重要である。
【０００９】
デバイスの識別は、異なるデバイスグループに異なるセキュリティポリシーを監視、制御、及び適用することを可能にし、それによって異なるセキュリティ技術のサポートが可能になる。したがって、識別は、ＩｏＴシステムの終端間のセキュリティを実現するため、セキュリティプロトコルを適用するために使用することができる。本開示は、とりわけ、デバイス情報の複数のソースを使用してデバイスを識別する（例えば、ＩｏＴデバイス）のためのシステム及び方法を説明する。
【００１０】
さらに、ＭＡＣアドレス、プロトコル、及びハイパーテキスト・トランスファー・プロトコル（ＨＴＴＰ）ユーザエージェント文字列に基づいて、デバイスを識別することは困難であり得る。そのような技術は特に限定され、それらの識別能力が限られており、多くの場合、デバイスを識別することができない場合がある。これらの技術はさらに、頻繁に検出漏れと誤検出をもたらし、その結果精度が低くなる。例えば、同一のプロトコル（例えば、ハイパーテキスト・トランスファー・プロトコル（ＨＴＴＰ））を使用して通信する２つの異なるＩｏＴデバイスは、完全に異なるデバイスであり得る。その結果、デバイスを識別するのが難しい場合がある。
【００１１】
現在、デバイス認識のための信頼できる手段はない。現在の手段は、デバイスで実行されているエージェントに基づき、又はＨＴＴＰユーザエージェント、ＭＡＣアドレス又はポートスキャンなどの単一のプロパティに基づいている。これらの識別は信頼性がなく多くの欠点を有している。例えば、多くの状況では、デバイス上でエージェントを展開することは許されておらず、又は可能ですらない。さらに、従来のトラフィック検査では、ＨＴＴＰペイロードは、デバイス識別を混乱させるように修正し得る。
【００１２】
ＭＡＣアドレスに基づく識別は、多数の理由で信頼できない場合がある。ＭＡＣアドレスに基づく識別は、（例えば、スマートフォンにより）「ＭＡＣランダム化」技術が使用されると失敗する。ＭＡＣアドレスはまた、デバイスの異なる種類を識別するのにも有用でない場合がある。例えば、企業がシリアルインターフェイスへのイーサネットを含む部品を製造する場合、これらの部品は多様な製品に使用することができる。その製造では、特定のＭＡＣアドレス範囲が割り当てられ、その結果様々なデバイスは、製造業者のＭＡＣアドレスの範囲内にＭＡＣアドレスを有する場合がある。例えば、医療機器とトースターは、製造業者のＭＡＣアドレス範囲内にＭＡＣアドレスを有する場合がある。各々が同じ製造業者により作成されたイーサネットインターフェイスを有するからである。したがって、製造業者の範囲のＭＡＣアドレスは、様々なデバイスがその範囲にあり得るため、正確な識別をするのに使用することができない。
【００１３】
ポートスキャンは、特に、デバイスからの応答がない場合、有用でない場合がある。センサ又は産業機器などのほとんどのデバイスがエージェントのインストールを許可しないため、デバイスの情報を収集するためにデバイス上で実行するエージェントに依存し、使い物にならなくなる他の手段がある。
【００１４】
本開示の実施形態は、（例えば、ネットワークトラフィック分析に基づいて）より正確できめ細かい方法で信頼性のあるデバイス識別技術を提供する。デバイス識別は、情報の複数の要素（例えば、パケット分析、ポート分析、及び高度な検出など）に基づいて行うことができ、従って現在の手段よりもより信頼性があり、正確な（例えば誤検出を減らす）デバイス識別を提供する。デバイス識別は、オペレーティングシステムレベル、ベンダーレベル、ベンダー又は製品レベルからのモデルで生じ得る。信頼性スコアは、識別の信頼性又は正確性を決定するために各レベルで計算され得る。追加情報は、信頼性スコア（例えば、パケット分析に基づく信頼性スコア）を決定及び改善し、従って正確性を向上させるために、（例えば、サードパーティシステムなどからのポート分析、ヒューリスティクスを使って）収集され得る。識別されていないデバイスにセキュリティポリシーを適用することは、困難（例えば、無効）な場合があり、意図しない結果となり得る。例えば、ネットワークアクセス（例えば、２つの特定のポートのブロックに基づいて）を制限するためのセキュリティポリシーを、識別されておらず不正アクセスされたデバイスに適用しようとすることは、不正アクセスされたデバイスのネットワークアクセスが制限されない（例えば、他のポートがブロックされる）場合がある。
【００１５】
実施形態は、ネットワークトラフィック分析に基づいてデバイス識別を実行することができる。複数の識別ソリューションは、統合され、最適化され、信頼性のあるデバイス識別ときめ細かなデバイス識別とを提供することができる高度な検出のヒューリスティクス及びアルゴリズムと組み合わせられる。１又は２以上の識別エンジンのロジックは、既存のソフトウェアアーキテクチャに影響を与えずにソフトウェアパッケージとして個別に使用することのできる信頼性スコアアルゴリズムに加えて、署名と組み合わせて使用することができ、従って柔軟性と拡張性を提供する。
【００１６】
したがって、様々な実施において本明細書で説明されるのは、ネットワークと通信可能に連結されたデバイスの識別を可能にするシステム、方法、技術及び関連技術である。本明細書で説明するように、情報の様々な要素は、識別されるデバイスに関するネットワークトラフィックから収集され得る。
【００１７】
説明された技術は、ネットワークセキュリティ、監視、及びポリシーの施行を含むがこれらに限定されない複数の技術分野における特定の技術的課題及び長年の欠陥に向けられ、対処することが理解できる。説明された技術は、言及した技術分野において、言及した技術的課題及び満たされないニーズに対して特定の技術的ソリューションを提供することを、さらに理解することができる。
【００１８】
いくつかの実施形態では、デバイス識別の追加のソースはデバイス識別の正確性を向上させるために使用される。エージェントがデバイス（例えば、パーソナルコンピュータ（ＰＣ）又はサーバ）上に存在する場合、エージェントは、デバイス識別のための詳細な上昇を収集して提供することができる。エージェントが例えばモバイルデバイス上に存在しない場合、他のシステムからのデータ、例えばモバイルデバイスマネジメント（ＭＤＭ）システム、ファイアウォールシステム又はスイッチシステムを、追加情報を集めるために使用することができる。
【００１９】
図１は、本開示の一実施に従った実例となる通信ネットワーク１００を示す。通信ネットワーク１００は、ネットワーク監視装置１０２、ネットワークデバイス１０４、集約装置１０６、システム１５０、デバイス１２０、１３０、及びネットワーク接続デバイス１２２ａ、１２２ｂを含む。デバイス１２０、１３０とネットワーク接続デバイス１２２ａ、１２２ｂは、コンピューティングシステム、ラップトップ、スマートフォン、サーバ、モノのインターネット（ＩｏＴ）デバイスなどを含むが、これらに限定されず、様々な任意のデバイスであり得る。通信ネットワーク１００のデバイスは、有線及び無線の接続を含む様々な方法で通信し得ること、１又は２以上の様々なプロトコルを使用し得ることに留意する。
【００２０】
ネットワークデバイス１０４は、集約装置１０６、システム１５０、ネットワーク監視装置１０２、デバイス１２０、１３０、及び、ネットワーク接続デバイス１２２ａ、１２２ｂの間で通信を促進するように構成された１又は２以上のネットワークデバイスであり得る。ネットワークデバイス１０４は、１又は２以上のネットワークスイッチ、アクセスポイント、ルータ、ファイアウォール、ハブなどであり得る。
【００２１】
ネットワーク監視装置１０２は、デバイス識別（例えば、デバイス１２０、１３０、ネットワーク接続デバイス１２２ａ、１２２ｂの識別）を含む様々なタスクのために構成することができる。ネットワーク監視装置１０２は、コンピューティングシステム、ネットワークデバイス（例えば、ルータ、ファイアウォール、アクセスポイント）、ネットワークアクセス制御（ＮＡＣ）装置、侵入防止システム（ＩＰＳ）、侵入検出システム（ＩＤＳ）、欺瞞装置、クラウドベースデバイス、仮想マシンベースシステムであり得る。
【００２２】
ネットワーク監視装置１０２は、ネットワーク１００上のデバイスそれぞれに対するデバイス識別テーブルを作成するために、（例えば、デバイスがネットワークに追加されると、連続的に、一定間隔で、など）ネットワーク１００上のデバイスを監視するデバイス識別システムとして機能することができる。いくつかの実施形態では、ネットワーク監視装置１０２は、より具体的に（例えば、ベンダー）及び非常に具体的に（例えば、ベンダーの製品）、一般層（例えば、オペレーティングシステム）を含む３層の情報に基づきデバイスを識別するように構成される。
【００２３】
一実施形態では、ネットワーク監視装置１０２によるデバイスの識別は、（例えば、パケットエンジン２０４により）１又は２以上のパケットを分析することから始まる。ネットワーク監視装置１０２は、単一の単純な条件で応答する既存の手段とは異なる。ネットワーク監視装置１０２は、各層の情報のための信頼性スコアを決定するための情報の複数要素とアルゴリズムを使用することができる。ネットワーク監視装置１０２によるパケット分析は、ＭＡＣアドレス（例えば、レイヤ２から）、プロトコル情報（例えば、レイヤ３とレイヤ４から）、ペイロード（例えば、レイヤ７から）、及び動的ホスト制御プロトコル（ＤＨＣＰ）パターンを含む情報にアクセスすることを含むことができる。パケット分析中にアクセスされる情報は、信頼性スコアを決定するための指紋分析（例えば、識別エンジン２４０による）に使用することができる。
【００２４】
信頼性スコアが閾値（例えば、調整可能な閾値）に達すると、ネットワーク監視装置１０２は、各層で情報を決定することができる。３層のそれぞれで情報が決定されると、ネットワーク監視装置１０２はデバイス識別プロセスを終了し、デバイス識別結果を報告することができる。
【００２５】
パケット分析が閾値を上回る信頼性スコアに関連付けられた情報を提供できない場合、デバイス監視装置１０２は、（例えば、ポートエンジン２２０を使用して）ポート分析を実行することができる。ポート分析は、開放ポートを識別するためにデバイスをアクティブにスキャンすることを含むことができる。ポート分析の結果は、デバイス情報テーブルをさらに更新するために使用し、また更新された信頼性スコアを計算するために使用することができる。次に、信頼性スコアは、信頼性スコアが閾値を満たすか超えているかを決定するために閾値と比較することができ、そうであれば、デバイス識別プロセスは、デバイス識別結果を出力することができる。
【００２６】
ポート分析に基づく更新された信頼性スコアが閾値に満たないと、その後ネットワーク監視装置１０２は、（例えば、高度な検出エンジン２３０を使用して）高度な検出プロセスを実行することができる。高度な検出プロセスは、ヒューリスティクス、機械学習、訓練を含むことができる。これらの高度な検出プロセスは、パケットシーケンス、パケットサイズ、パケットの間隔を含む複数のパケット間の相関、又は、エントロピーに基づくことができる。
【００２７】
高度な検出プロセスのロジックは、オンザフライで更新することができる。（例えば、識別エンジン２４０によってアクセスされるなど）指紋署名と組み合わせた高度な検出ロジックは、ネットワーク監視装置１０２の機能に悪影響を与えることなく、ネットワーク監視装置１０２に更新（例えば、プッシュ）することができる。
【００２８】
ネットワーク監視装置１０２は、ネットワーク１００に連結されたデバイスの識別に使用し得る情報にアクセスするために、異なるネットワークデバイスとセキュリティ製品と通信することができる。アクセスされたデータは、（例えば、デバイス情報データベース２４２に記憶されている）デバイス情報を更新するために、処理、正規化、及び分析され得る。ネットワーク監視装置１０２は、ネットワークデバイス１０４（例えば、ポートミラーリング）を通じて流れるネットワークトラフィックを受信するように、ネットワークデバイス１０４に通信可能に連結され得る。
【００２９】
ネットワーク監視装置１０２によるデバイスの識別は、本明細書でさらに説明される、トラフィック分析、外部又は遠隔のシステム（例えば、システム１５０）からの情報、エージェント（例えば、エージェント１４０）、通信（例えば、クエリ）集約装置（例えば、集約装置１０６）、及びデバイスそれ自体へのクエリからの情報を含む、情報の１又は２以上の要素の組み合わせに基づくことができる。ネットワーク監視装置１０２は、集約装置１０６、デバイス１２０、デバイス１３０、又はシステム１５０と通信するために、１又は２以上のアプリケーションプログラミングインターフェース（ＡＰＩｓ）を使用するように構成し得る。
【００３０】
いくつかの実施形態では、デバイス分類のヒューリスティックがデバイスを異なるグループに分類するために使用することができる。グループは、（例えば、ヒューリスティックの一部であるデフォルトのグループを）事前定義又は動的に（例えば、ネットワークトラフィックの受信後のオンザフライで）生成することができる。例えば、グループは、事前定義されたグループに一致しないデバイス分類に基づくデバイス名に基づいてデバイス分類のために動的に生成することができる。グループは、デバイスの種類に基づき得る。例えば、第１のグループは、特定のオペレーティングシステムを有するデバイス用、第２のグループは、医療機器（例えば、磁気共鳴画像（ＭＲＩ）装置、Ｘ線装置、又はコンピュータ断層撮影（ＣＴ）スキャン装置）用、第３のグループは、操作技術デバイス（例えば、バルブ、ポンプなどの物理的デバイスの直接の監視又は制御を通じて物理的プロセスの変化を検出又は引き起こすように構成されたデバイス）用であり得る。グループへのデバイスの識別は、グラフィカルユーザインタフェイス内でデバイスの視覚的な組織化が可能になる。セキュリティポリシーは、グルーブ単位でさらに適用することができる。各グループはサブグループを有していても良い。例えば、医療機器グループは、ＭＲＩ装置、Ｘ線マシン、自動調剤マシンのためのサブグルーブを有することができる。
【００３１】
デバイスの識別のためのデータは、定期的に更新することができ、すなわち、より有用なデバイス識別が利用可能になると、それによって更新され、より正確で、きめ細かいデバイス識別が可能になる。
【００３２】
デバイス１３０は、エージェント１４０を含むことができる。エージェント１４０は、デバイス１３０に関連付けられた情報を収集し、その情報をネットワーク監視装置１０２に送信するように構成されたハードウェアコンポーネント、ソフトウェアコンポーネント、又はそれらの組み合わせであっても良い。情報は、オペレーティングシステム及びバージョン、ファームウェアバージョン、シリアル番号、ベンダー（例えば、製造業者）、モデル、資源タグ、デバイス上で実行するソフトウェア（例えば、ウイルス対策ソフトウェア、マルウェア検出ソフトウェア、オフィスアプリケーション、Ｗｅｂブラウザ、通信アプリケーションなど）、デバイス上でアクティブ又は構成されているサービス、（例えば、デバイス上で実行するサービスに関連付けられた）開放されている又はデバイスが通信するように構成されているポート、ＭＡＣアドレス、プロセッサ利用率、固有識別子、コンピュータ名などを含むことができる。エージェント１４０は、デバイス１３０とデバイス１３０からエージェント１４０が利用可能な情報とに基づいて異なるレベルと情報の要素とを提供するように構成され得る。エージェント１４０は、デバイス１３０に関連付けられた情報のログを記録することができる。ネットワーク監視装置１０２は、エージェント１４０からのエージェントの情報を利用することができる。
【００３３】
システム１５０は、ネットワーク監視装置１０２の（例えば、別の）外部、遠隔、又はサードパーティシステムであっても良く、デバイス１２０、１３０、及びネットワーク接続デバイス１２２ａ、１２２ｂについての情報を有していても良い。システム１５０は、脆弱性評価（ＶＡ）システム、脅威検出（ＴＤ）システム、モバイルデバイス管理（ＭＤＭ）システム、ファイウォール（ＦＷ）システム、スイッチシステム、又はアクセスポイントシステムであっても良い。ネットワーク監視装置１０２は、本明細書で説明するように、デバイス１２０、１３０、ネットワーク接続デバイス１２２ａ、１２２ｂについての情報を定期的に取得するためにシステム１５０と通信するように構成され得る。例えば、システム１５０は、デバイス１２０がコンピュータウイルスを有するかどうかを決定するように構成された脆弱性評価システムであっても良い。
【００３４】
脆弱性評価（ＶＡ）システムは、デバイスの脆弱性を識別、定量化、及び優先順位を決定（例えば、ランク付け）するように構成され得る。ＶＡシステムは、デバイスの資源と性能又はリソースの目録を作り、定量化可能な値（又は少なくともランク順位）、リソースの重要性を割り当て、各リソースの脆弱性又は潜在的な脅威を識別することができる。ＶＡシステムは、ネットワーク監視装置１０２により使用される前述の情報を提供することができる。
【００３５】
高度な脅威検出（ＡＴＤ）又は脅威検出（ＴＤ）システムは、他のセキュリティ制御が通過を許可した通信を検査するように構成され得る。ＡＴＤシステムは、次に限定されるものではないが、ソースレピュテーション、実行可能な分析、脅威レベルのプロトコル分析を含む、分類されるデバイスについて情報を提供することができる。
【００３６】
モバイルデバイス管理（ＭＤＭ）システムは、モバイルデバイス、例えば、スパートフォン、タブレットコンピュータ、ラップトップ、デスクトップコンピュータの管理のために構成することができる。ＭＤＭシステムは、アプリケーション、データ、モバイルデバイスとアクティビティ監視の構成設定を含むＭＤＭシステムにより管理されるモバイルデバイスについて情報を提供することができる。ＭＤＭシステムは、後に識別に使用され得る詳細なモバイルデバイスの情報を得るために使用され得る。
【００３７】
ファイアウォール（ＦＷ）システムは、セキュリティルールに基づいて流入及び流出するネットワークトラフィックを監視及び制御するように構成され得る。ＦＷシステムは、識別されるデバイスに関連するセキュリティルールと識別されるデバイスのネットワークトラフィックとを含む、識別されるデバイスについて情報を提供することができる。
【００３８】
スイッチ又はアクセスポイント（ＡＰ）システムは、ネットワークへのデバイスアクセスを提供するように構成されたネットワークスイッチ又はアクセスポイント、例えば、無線アクセスポイント、又はこれらの組み合わせを含む様々なネットワークデバイス（例えば、ネットワークデバイス１０４又は集約装置１０６）のいずれであっても良い。例えば、スイッチ又はＡＰシステムは、デバイスを識別するために使用することができるＭＡＣアドレス情報、アドレス解決プロトコル（ＡＲＰ）テーブル情報、デバイス命名情報、トラフィックデータなどを提供することができる。本明細書で説明するように、スイッチ又はＡＰシステムは、ＩｏＴデバイス又は他のデバイス（例えば、ＺｉｇＢｅｅ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標））と通信するための１又は２以上のインターフェイスを有していても良い。
【００３９】
ＶＡシステム、ＡＴＤシステム、及びＦＷシステムは、脆弱性、脅威、識別されるデバイスのユーザ情報をリアルタイムで得るためにアクセスされ、識別されるデバイスのユーザ情報、脆弱性、脅威は正確な識別を決定するために使用することができる。識別されるデバイス上にデータを有している情報ソースがどれであるかと、その情報ソースの数は、識別するための要因として使用することができる。例えば、ＶＡシステム、ＡＴＤシステム、ＦＷシステム、又はそれらの組み合わせは、デバイス（例えば、管理されたデバイス）上にもたらされた脅威を報告することができる。デバイスに対して報告された各脅威がＭｉｃｒｏｓｏｆｔ  ＷｉｎｄｏｗｓＸＰ（登録商標）関連の脅威である場合、この情報は、一般的なＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）デバイス又はより具体的にはＭｉｃｒｏｓｏｆｔ  ＷｉｎｄｏｗｓＸＰ（登録商標）デバイスとして、デバイスを正確に識別するために使用することができる。
【００４０】
集約装置１０６は、ネットワーク接続デバイス１２２ａ、１２２ｂと通信し、ネットワーク接続デバイス１２２ａ、１２２ｂへネットワークアクセスを提供するように構成され得る。集約装置１０６は、ネットワーク接続デバイス１２２ａ、１２２ｂについて、ネットワーク監視装置１０２に情報（例えば、オペレーティングシステム、デバイス名など）を提供するようにさらに構成され得る。集約装置１０６は、次に限定されないが、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、ＺｉｇＢｅｅ（登録商標）、無線周波数識別（ＲＦＩＤ）、ライファイ（Ｌｉ−Ｆｉ）、Ｚ−Ｗａｖｅ、Ｔｈｒｅａｄ、ロング・ターム・エボリューション（ＬＴＥ）、Ｗｉ−Ｆｉ（登録商標）ＨａＬｏｗ、ＨｏｍｅＰｌｕｇ、同軸ケーブルマルチメディア協会（ＭｏＣＡ）、及びイーサネットを含む複数の技術標準又はプロトコルを通じて幅広く多様なデバイスと通信するように構成された無線アクセスポイントであり得る。例えば、集約装置１０６は、イーサネット接続を介してネットワークデバイス１０４と連結し、また、無線接続を介してネットワーク接続デバイス１２２ａ、１２２ｂと連結するように構成され得る。集約装置１０６は、所有者の拡張又は修正を伴う標準プロトコルを使用してネットワーク接続デバイス１２２ａ、１２２ｂと通信するように構成され得る。
【００４１】
集約装置１０６は、ネットワーク接続デバイス１２２ａ、１２２ｂのアクティビティ及びプロパティのログ情報をネットワーク監視装置１０２にさらに提供することができる。ログ情報は、（例えば、ネットワーク上のデバイスの種類が頻繁に変更されない）安定なネットワーク環境に対して特に信頼し得ることが理解される。
【００４２】
デバイス名は、識別決定を行う際に、ネットワーク監視装置１０２によって使用されても良い。例えば、ログ情報は、デバイス名（例えば、ＬＥＤ＿ｂｕｌｂ＿１やＬＥＤ＿ｓｔｒｉｐ＿１）を含むことができる。デバイス名は、サブグループに入るデバイスを識別するためにさらに使用されても良い。例えば、ＬＥＤ＿ｂｕｌｂ＿１のデバイス名は、照明グループの電球サブグループに入るデバイスを識別するために使用することができ、ＬＥＤ＿ｓｔｒｉｐ＿１のデバイス名は、照明グループの直管蛍光灯による照明サブグループに入るデバイスを識別するために使用することができる。
【００４３】
ネットワーク監視装置１０２は、識別決定を行うためにデバイスの挙動をさらに使用することができる。挙動は、デバイスの動作スケジュールを含み得る。例えば、デバイスの電源が毎朝６：００又は毎日日の出の１時間以内にオンになっている場合、そのような情報を、光制御ブリッジデバイスと通信可能に連結されている電球としてのデバイスを識別するために使用することができる。
【００４４】
ネットワーク監視装置１０２は、デバイス識別を決定する際に、クラスタリング情報（例えば、デバイス情報類似性）をさらに使用することができる。例えば、第１のデバイスが電球として識別され、第２のデバイスが同じＩＰアドレス（例えば、同じＩＰアドレス範囲又は数アドレスしか離れていないＩＰアドレス）又は同様のオン／オフ時間を有している場合、第２のデバイスは照明装置として識別され得る。
【００４５】
ネットワーク監視装置１０２は、デバイスを識別するために、位置又は近接情報又は隣接のヒューリスティクスをさらに使用することができる。例えば、冷蔵装置を識別するのが難しい場合、例えば、当該冷蔵装置がキッチンのオーブンなどの別のネットワーク接続デバイスに近いという事実が、冷蔵装置を正確に識別するために使用できる。別の例として、ブルーレイデバイスを識別するのが難しい場合、ブルーレイデバイスが家庭用ゲーム機とテレビに近いという情報が、ブルーレイデバイスを正確に識別するために使用できる。
【００４６】
図２は、様々な実施形態によって使用される例示的なコンポーネントを示す。特定のコンポーネントがシステム２００に開示されているが、そのようなコンポーネントは例であることを理解されたい。すなわち、本発明の実施形態は、システム２００に列挙された様々な他のコンポーネント又はコンポーネントの変形を有するのによく適している。システム２００のコンポーネントは提示されたコンポーネント以外のコンポーネントで動作してもよく、システム２００の目的を達成するためにシステム２００のコンポーネントの全てが必要とされるわけではないということを理解されたい。
【００４７】
図２は、本開示の一実施に従ったデバイス識別のためのシステム２００の実例となるコンポーネントを示す。システム２００は、データ収集コンポーネント２０２、識別エンジン２４０、及びデバイス情報データベース２４２を含む。いくつかの実施形態では、システム２００は、デバイスがネットワーク（例えば、ネットワーク１００）に参加するとき、データ識別を実行する。例えば、システム２００は、ネットワークに参加しているデバイスの検出に基づいて、デバイスの識別を開始することができる。
【００４８】
データ収集コンポーネント２０２は、デバイス識別のためにデータを収集及び分析することができる。データ収集コンポーネント２０２は、パケットエンジン２０４、ポートエンジン２２０、及び高度な検出エンジン２３０を含む。
【００４９】
パケットエンジン２０４は、ネットワークトラフィックに（例えば、受動的に）アクセスし、ネットワークトラフィックを分析するように構成される。パケットエンジン２０４は、ＤＨＣＰ分析コンポーネント２０６、プロトコル分析コンポーネント２０８、ペイロード分析コンポーネント２１０、及び識別子分析コンポーネント２１２を含む。パケットエンジン２０４による受動的分析は、ネットワークトラフィックの傍聴又はポートミラーリング（例えば、ネットワークスイッチからのパケットの受信）を通じてパケットにアクセスすることにより実行され得る。パケットエンジン２０４による受動的分析は、パケットを精査又はアクティブにデバイスに送信すること及び応答を分析することに敏感なデバイス（例えば、医療機器）のパケット分析を可能にする。
【００５０】
ＤＨＣＰ分析コンポーネント２０６は、オプションパラメータリスト又はリクエストパラメータリスト及びＤＨＣＰオペレーティングシステムパラメータを含む１又は２以上のＤＨＣＰパケットの様々なパラメータにアクセスすることができる。例えば、検査されるＤＨＣＰオプションパラメータは、１−２０と４５を含むことができる。ＤＨＣＰ分析コンポーネント２０６は、識別されるデバイスのＤＨＣＰトラフィックにおけるオプションの数に基づいて異なるデバイスの種類とオペレーティングシステムを決定するように構成することができる。ＤＨＣＰ分析コンポーネント２０６は、ＤＨＣＰトラフィック分析に基づいてオペレーティングシステム又はデバイスの種類を識別するために、ＤＨＣＰオプション、パラメータ、又はそれらの組み合わせの一意のパターンを使用し得る。
【００５１】
例えば、１又は２以上のパケットのＤＨＣＰリクエストから、２つのフィールドは、デバイス識別のインジケータに使用することができる：１）ベンダークラス識別子は、デバイスがＭＳＦＴ５．０システムであることを示すことができ、２）パラメータリクエストリストは、［１（サブネットマスク）、１５（ドメイン名）、３（ルータ）、６（ドメイン名サーバ）、４４（ＮｅｔＢＩＯＳ  ｏｖｅｒ  ＴＣＰ／ＩＰスコープ）、３１（ルータ発見の実行）、３３（静的ルート）、１２１（クラス静的ルート）、２４９（プライベート／クラス静的ルート（Ｍｉｃｒｏｓｏｆｔ））、４３（ベンダー特定情報）、及び２５２（プライベート／プロキシ自動発見）］であっても良く、パラメータリクエストリストは、Ｗｉｎｄｏｗｓ（登録商標）のオペレーティングシステムに特有である。
【００５２】
プロトコル分析コンポーネント２０８は、使用される又は使用されている通信プロトコルに関連付けられた識別されるデバイスに関連付けられた１又は２以上のパケットの部分にアクセスする。いくつかの実施形態では、プロトコル分析コンポーネント２０８は、１又は２以上のパケットで規定されたポートに基づいて、使用されているプロトコルを決定することができる。例えば、ポート８０又は８０８０は、ＨＴＴＰプロトコルが使用されていることを示し、ポート２２は、セキュアシェル（ＳＳＨ）プロトコルが使用されていることを示し、ポート２３は、テルネットプロトコルが使用されていることを示すことができる。プロトコル分析コンポーネント２０８は、バナー（例えば、複数のパケットを拡散する）にアクセスすることもできる。例えば、ＨＴＴＰ、ファイル転送プロトコル（ＦＴＰ）、及びシンプル・メール・トランスファー・プロトコル（ＳＭＴＰ）のポートに対して行われた要求は、ソフトウェア、資源タグ、オペレーティングシステムなどのバージョンを含む、識別されるデバイス上で実行するサービスについて情報を伴ってバナー又はデータを返す場合がある。
【００５３】
プロトコル分析コンポーネント２０８は、デバイスを識別するために、暗号スイートを使用するようにさらに構成され得る。例えば、デバイスがサーバとの通信中に暗号化を使用する場合、デバイスによりサポートされ、暗号化された通信接続を確立する前にサーバに通信される暗号スイートは、デバイスを識別する際に使用することができる。各応答確認プロセスは、デバイスを識別するための指紋又はインジケータとして使用することができる。特定のデバイスの暗号化スイートは、１又は２以上のパラメータを伴う応答確認プロセスの一部であり得る。暗号化スイート情報は、ＳＳＬプロトコルパケット形式の仕様に従ってバイナリー形式で交換又は通信可能であることが理解される。
【００５４】
別の例として、セキュアソケットレイヤ（ＳＳＬ）応答確認中、クライアントデバイス（例えば、ＩｏＴデバイス）は、クライアントがサポートし又は使用するように構成された暗号化スイートの優先順位リストをサーバに送信することがあり、サーバは、データ通信中に使用するために選択した１つの暗号化スイートを返信することがある。サポートされる暗号化スイートのリストは、一意である場合があり、デバイスを識別するのに使用することができる。拡張機能の数、拡張種類、及び値も一意にすることができる。サポートされている暗号化スイートのリストと拡張機能の数、拡張種類、及び値は、デバイス識別のために個別に又は組み合わせて使用することができる。
【００５５】
例えば、クライアントデバイスは、
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)
を含む１３の暗号化スイートをサポートすることができる。クライアントデバイスは、サーバ＿名前、再交渉＿情報及び楕円の曲線（server_name, renegotiation_info and elliptic _curves）を含む圧縮及び拡張機能をさらにサポートすることができる。
【００５６】
さらに、デバイスが暗号化を使用しているという事実は、デバイスを識別する際に使用することができる。例えば、可能なデバイス識別のリストは、デバイスが暗号化を使用していると判定されると、暗号化を使用することが知られているものに削減することができる。
【００５７】
ペイロード分析コンポーネント２１０は、１又は２以上のパケットのペイロードに関連付けられたパケットの１又は２以上の部分にアクセスして分析することができる。例えば、パケットに関連するＨＴＴＰに対して、ユーザエージェント文字列（例えば、使用されているブラウザとバージョン、オペレーティングシステム、プロセッサ、エンジン情報（例えば、レンダリングエンジン）、ＪａｖａＳｃｒｉｐｔサポート、ｃｏｏｋｉｅサポート、デバイス画素比率、画面解像度、ブラウザのウィンドウサイズ）、ＵＲＩ、及び１又は２以上のアイコンは、アクセスされ、分析され得る。デバイス（例えば、オペレーティングシステム、プロセッサ、エンジン情報、ブラウザなど）に関連付けられたユーザエージェントの部分は、デバイスを識別又はデバイス識別の可能なインジケータを決定するために使用することができる。統一資源識別子（ＵＲＩ）は、例えば、デバイスがｕｐｄａｔｅ．ｖｅｎｄｅｒ−ｓｉｔｅ．ｃｏｍにアクセスする場合、デバイス識別のインジケータを提供することができる。ペイロード分析コンポーネ２１０は、異なるアイコンが異なるブラウザによって使用されるので、アイコンに基づいて使用されているブラウザを決定することもできる。
【００５８】
ペイロード分析コンポーネント２１０は、接続のセットアップ中又はネゴシエーション中に特定のプロトコル（例えば、ＳＳＨやＦＴＰ）によって使用される１又は２以上のパケットのヘッダ内の明確なテキストパターンにアクセスすることもできる。ペイロード分析コンポーネント２１０は、コンベヤベルト又は医療機器を含む）所有者のプロトコル（例えば、運用技術（ＯＴ））を使用して１又は２以上のパケットのペイロードについて分析及び決定を行うようにさらに構成され得る。例えば、所有者のプロトコルが、プロトコルをベースにしたバイナリである場合、ペイロード分析コンポーネント２１０は、パケットを構文解析し、デバイス識別の際に使用するプロトコルとデバイス特性を識別することができる。
【００５９】
いくつかの実施形態では、ペイロード分析コンポーネント２１０は、パケット生存時間（ＴＴＬ）値にアクセスすることができる。異なるオペレーティングシステムは、デバイス識別に使用できる異なるＴＴＬ値を使用することができる。例えば、Ｌｉｎｕｘ（登録商標）は、ＴＴＬ値に対し６０又は６４を使用する一方、Ｗｉｎｄｏｗｓ（登録商標）は１２０又は１２８を使用する。
【００６０】
識別子分析コンポーネント２１２は、一意の識別子に対し１又は２以上のパケットを分析し、一意の識別子に基づいて、デバイス識別を含むデバイス特性を決定することができる。例えば、識別子分析コンポーネント２１２は、パケットからのＭＡＣアドレスにアクセス又は選択し、ＭＡＣアドレスの組織的に一意の識別子（ＯＵＩ）部分を分析することができる。識別子分析コンポーネント２１２は、次に、ＭＡＣアドレスのＯＵＩ部分に基づいてデータ構造（例えば、データ構造３００の）の値を設定することができる。この値は、次に、デバイスを識別するために、他の値と組み合わせられ得る。
【００６１】
スコア（例えば、信頼性スコア）は、パケットエンジン２０４の１又は２以上のコンポーネントによる分析に基づいて、パケットエンジン２０４により決定することができる。次いで、信頼性スコアは、デバイス識別のために構成された正確さレベル（例えば、最小）に関連付けられた閾値と比較することができる。
【００６２】
デバイスデータ及び分析データは、１又は２以上のデバイス指紋と比較するために識別エンジン２４０に送信されても良い。指紋が一致する場合、デバイス識別は、デバイス識別データベース２４２に出力され得る。
【００６３】
識別エンジン２４０は、データ収集コンポーネント２０２、１又は２以上の指紋、又はそれらの組み合わせにより決定される、識別されるデバイスに関連付けられた１又は２以上のデータ要素に基づいてデバイス識別を決定するように構成される。識別エンジン２４０により使用される指紋は、（例えば、自動化されたダウンロードを介して定期的に）更新することができる。いくつかの実施形態では、信頼性スコアは、データ収集コンポーネント２０２により決定されたデータが特定のデバイス識別指紋と一致する程度に基づいて計算され得る。例えば、高い信頼性スコアは、記憶されたデバイス指紋の８０％に一致する、識別されるデバイスに関連付けられたデータのために決定することができ、一方、低い信頼性スコアは、デバイス指紋の３０％に一致する、識別されるデバイスに関連付けられたデータのために決定することができる。
【００６４】
ポートエンジン２２０と高度な検出エンジン２３０は、デバイス識別を決定するために十分なデータがパケットエンジン２０４により集められる場合、デバイス識別を決定するために使用されない場合がある。いくつかの実施形態では、多くのデバイスがパケットエンジンに基づいて識別され、デバイスのごく一部が、ポートエンジン（例えば、パケットエンジンとポートエンジンからのデータの組み合わせに基づいて識別される）の実行後に識別され得る。また、識別される高度な検出エンジンのデータを必要とするデバイスはほとんどない。
【００６５】
ポートエンジン２２０は、識別されるデバイスをアクティブに精査するように構成される（例えば、デバイスの各ポートのポートスキャンを使用して）。ポートエンジン２２０は、識別されるデバイスの各ポートを精査することができ、識別されるデバイスの開放及び閉鎖のポートに関連付けられたデータを記憶することができる。次に、開放及び閉鎖ポートは、開放及び閉鎖ポートが、既存のデバイス識別と一致するか、又は識別されるデバイスの識別可能なインジケータを提供するかどうかを決定するために、ローカルデータベース、リモートデータベース（例えば、オープンソースデータベース）、又はそれらの組み合わせと比較することができる。ポートエンジン２２０は、開放されているＴＣＰ／ＵＤＰポートのリストを、識別されるデバイスについて決定するための署名として使用することができる。例えば、照明装置は、（特定のポートに関連付けられた）特定のプロトコルを使用し、いくつかの照明装置に共通の特定の一連のポートを開放にすることができ、ポートエンジン２２０は、特定のプロトコルと解放された（又は閉鎖された）特定のポートに基づいて照明装置が実際に照明装置であることを決定することができる。ポートエンジン２２０のデバイス識別は、パケットエンジン２０４からのデータ分析にさらに基づくことができる。
【００６６】
いくつかの実施形態では、ポートエンジン２２０は、アクティブなポートスキャンに潜在的に敏感なデバイスをスキャンしなくても良い。例えば、病院のネットワークが、ポートスキャンに敏感であると知られているネットワークの一部（例えば、メットワークアドレス範囲）を含む場合（例えば、ユーザ入力又はパケットエンジンからのデバイスデータに基づいて）、ポートエンジン２２０は、そのネットワークの一部上でデバイスのポートスキャンをスキップしても良い。ポートエンジン２２０は、また、パケットエンジン２０４により決定されるデバイス識別インジケータに基づいてデバイスのポートスキャンをスキップしても良い。したがって、システム２００によるデバイス識別は、トラフィック分析、閾値、及びネットワーク環境情報（例えば、ポートスキャンに敏感なデバイスを伴うネットワークの一部）に基づくことができる。
【００６７】
デバイスポートデータとポート分析データは、１又は２以上のデバイス指紋との比較のために識別エンジン２４０に送信され得る。指紋が一致すると、デバイス識別は、デバイス識別データベース２４２に出力され得る。
【００６８】
識別されるデバイスがパケットエンジン２０４、ポートエンジン２２０、又はそれらの組み合わせからのデータに基づいて識別されない場合、高度な検出エンジン２３０が実行され得る。いくつかの実施形態では、高度な検出エンジン２３０は、ヒューリスティック分析コンポーネント２３２と機械学習分析コンポーネント２３４とを含む。高度な検出エンジン２３０は、示されたもの以外の他の分析コンポーネントを含むということが理解される。
【００６９】
ヒューリスティック分析コンポーネント２３２は、パケットサイズ、パケット間隔、及びパケットシーケンス（例えば、クライアントとサーバの通信シーケンス）を分析することができる。例えば、クライアントからサーバに送信された第１のパケットが１００バイトであり、クライアントからサーバに送信された第２のパケットが１００バイトであり、サーバからクライアントに送信された第３のパケットが９９バイトである場合、これは、デバイスの識別又はデバイス識別インジケータを提供するために使用することができる、パケットサイズの一意のトラフィックシーケンスであり得る。
【００７０】
ヒューリスティック分析コンポーネント２３２は、同一ペイロード（例えば、レイヤ７のペイロード）に転送するネットワークトラフィック通信のために、異なるデバイスとデバイスの種類が、異なるパケットサイズ及び間隔（例えば、タイムスタンプに基づいて追跡可能な）を選択できるという事実を利用するように構成される。例えば、ＩｏＴデバイスがサーバにパケットを送信し、その後にサーバからクライアントへのパケットが続く（例えば、パケット間に特定の間隔を伴う）ＩｏＴデバイスとサーバ間のネットワークトラフィックは、デバイスを識別するために使用することができる一意のパターンであり得る。別の例として、３つのパケットがクライアントからサーバに送信されその後サーバが応答を送信すると、その時間間隔はクライアントデバイスを識別するために使用することができる。デバイスの間隔は、デバイスことに大きく異なり得る。ヒューリスティック分析コンポーネント２３２は、第１のパケットと第２のパケットの時間間隔を、デバイス識別を決定するためのパラメータとして使用することができる。
【００７１】
ヒューリスティック分析コンポーネント２３２は、デバイスを識別する際にデバイスに関連付けられた電力消費をさらに使用することができる。例えば、ヒューリスティック分析コンポーネント２３２は、デバイス識別又はデバイス識別インジケータを決定するために、本明細書で考察された他の値と一緒にＰｏｗｅｒ  ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ（ＰＯＥ）ネットワークデバイスからのデバイスに関連付けられた電力消費値を使用することができる。
【００７２】
ヒューリスティック分析コンポーネント２３２は、デバイスのハートビート又はポーリング通信の時間間隔とサイズをさらに使用することができる。例えば、いくつかのデバイス（例えば、ＩｏＴデバイス）は、ハートビート通信をサーバ又はクラウドベースのシステムに（例えば通信接続を維持するために）定期的に送信することができる。様々なデバイスのハートビート通信は、デバイス間で異なる場合があり、時間間隔及びパケットサイズはデバイス識別に使用することができる。
【００７３】
いくつかの実施形態では、ヒューリスティック分析コンポーネント２３２は、デバイス識別のためにヒューリスティクスデータの導関数（例えば、二次又はより高次のヒューリスティクス）を決定及び分析するように構成される。例えば、データの通信速度が、デバイスに固有の時間周期に転送されるデータのサイズに基づいて計算することができる。
【００７４】
機械学習分析コンポーネント２３４は、（例えば、様々なＤＨＣＰオプションとパラメータの）新しい指紋を決定するために、ディープラーニングを使用することができる。機械学習分析コンポーネント２３４は、ネットワークトラフィックの大きなデータセットを使用して訓練されても良い。
【００７５】
機械学習は、データ収集コンポーネント２０２の何れかのコンポーネント（例えば、ＤＨＣＰ分析コンポーネント２０６、プロトコル分析コンポーネント２０８、ペイロード分析コンポーネント２１０、識別子分析コンポーネント２１２、及びポート分析コンポーネント２２２）のデータ又は分析に基づいても良い。
【００７６】
機械学習分析コンポーネント２３４は、パケットエンジン２０４、ポートエンジン２２０、及びヒューリスティック分析コンポーネント２３２（例えば、ヒューリスティクスの導関数を含む）からのデータを利用することができる。いくつかの実施形態では、機械学習分析コンポーネント２３４は、デバイス（例えば、ネットワーク１００と連結している）を識別するために機械学習分析コンポーネント２３４により使用される１又は２以上の特定のデバイスのトラフィックを分離するために制御された環境で保存されたオフラインの訓練データを使用することができる。機械学習分析コンポーネント２３４は、１又は２以上のデバイス署名を、デバイス識別に基づく署名のためにさらに使用することができる。機械学習分析コンポーネント２３４は、アクティブ又はリアルタイムの機械学習分析を実行することができる。
【００７７】
オフライン訓練データは、特定のデバイスを識別するために機械学習分析コンポーネント２３４を訓練するのに使用される、以前の又は過去に用いられたネットワークトラフィック（例えば、パケットエンジン２０４と高度な検出エンジン２３２により保存され及び分析されたネットワーク１００の）を含むこともできる。例えば、１０、２０、又は１００の未加工属性は、未加工の属性の組み合わせを決定するために、機械学習の訓練に使用され得る。未加工の属性の組み合わせ（例えば、モデルに基づく）は、コスト関数を計算するために使用することができる。特定の未加工の属性は、コスト関数に基づいてコスト値を計算するために使用することができる。このコスト値は、特定のデバイスの指紋として使用することができる。モデルは、ヒューリスティック分析（例えば、ヒューリスティック分析コンポーネント２３２による）に基づくデータを含む以前に受信したデータに基づくことができる。
【００７８】
例えば、未加工の属性は、ａ＝パケットサイズ、ｂ＝時間間隔、及びｃ＝暗号化スイートの数を含むことができ、コスト関数は、使用するモデルに従って、例えば、ａ2＋ｂ2＋ｃ2などの非線形多項式を使用することができる。未加工の属性値（例えば、入力）は、特性のデバイスのため、コスト値を決定するためにコスト関数と一緒に使用することができる。
【００７９】
高度な検出エンジン２３０によるデバイスデータ及び分析データは、識別エンジン２４０に、１又は２以上のデバイス指紋との比較のために送信され得る。指紋が一致すると、デバイス識別は、デバイス識別データベース２４２に出力され得る。
【００８０】
システム２００のモジュール式の性質により、他のコンポーネントに影響を与えることなくコンポーネントを独立してアップグレードすることができ、個々のコンポーネントを有効又は無効にする柔軟性を可能にし、その結果スケーラビリティ及び拡張性を提供することができるということが理解される。
【００８１】
データ収集コンポーネント２０２のエンジンのそれぞれは、デバイス識別を決定するために使用することができる。例えば、識別されるデバイスがラズベリーパイ（登録商標）（組み込まれたシステム）で動作するＩｏＴセンサである場合、ＤＨＣＰ分析コンポーネント２０６は、ラズベリーパイ（登録商標）で使用されるオペレーティングシステムであるラズビアン（Ｒａｓｂｉａｎ）の指紋と一致する［１，３，１２，１５，６，３３，１２１，４２，１０１］であるＤＨＣＰｖ４パラメータリストを分析する。次に、プロトコルとレイヤ７パケットペイロードは、確認され得る。プロトコル分析コンポーネント２０８は、ラズベリーパイ（登録商標）により使用される特定の通信プロトコルを検出することができ、その通信プロトコルは、ラズベリーパイ（登録商標）デバイスであり、オペレーティングシステムがラズビアン（Ｒａｓｂｉａｎ）であることをさらに示す。ペイロード分析コンポーネント２１０は、「ＡＢＣセンサモデル１２３」のユーザエージェントでＨＴＴＰトラフィックにアクセスすることができる。これは、デバイスがセンサ及びベンダＡＢＣに関連している可能性があることを示すことができる。識別子分析コンポーネント２１２は、識別されるデバイスのＭＡＣアドレス（例えば、ＯＵＩオプション）を分析し、ＭＡＣアドレスがベンダーＡＢＣに関連付けられていることを決定することができる。したがって、パケットエンジン２０４分析に基づいて、デバイスのオペレーティングシステムがラズベリアンであり、ベンターがＡＢＣであると結論付けるために十分な情報があり得る。
【００８２】
しかし、製品情報の信頼性スコアは、製品閾値に到達しない場合がある。次に、ポートエンジン２２０は、ポートスキャンを実行し、その結果を開放ポート／閉鎖ポートデータベースと比較するために実行され得る。その結果には、「センサ」というキーワードが含まれる場合があり、これは製品レベルでの信頼スコアに寄与する可能性があるが、製品閾値にまだ到達しない場合がある。高度な検出エンジン２３０は、次に実行され、パケットサイズ及びパケットシーケンスを以前の訓練データと比較し、温度センサの指紋（例えば、識別エンジン２４０との通信に基づいて）と一致することを決定することができる。次に、デバイス識別は、出力されて、デバイス情報データベース２４２に記憶することができる。
【００８３】
いくつかの実施形態では、システム２００は、処理デバイスにより実行されると、処理デバイスに、ネットワークと連結したデバイスに関連付けられた通信のパケットにアクセスさせ、パケットの複数のそれぞれの部分に関連付けられた第１の複数の値を決定させるエンコードされた命令を有する非一時的なコンピュータ可読媒体に記憶されたソフトウェアであり得る。例えば、第１の複数の値は、（例えば、パケットエンジン２０４により）パケット分析に基づいて決定され得る。命令は、さらに、処理デバイスに、デバイスの１又は２以上のポートをスキャンさせ、デバイスの１又は２以上のポートに関連付けられた第２の複数の値を（例えば、ポートエンジン２２０により）決定させることができる。命令は、さらに、処理デバイスに、ヒューリスティックに関連付けられた第３の複数の値を（例えば、高度な検出エンジン２３０により）決定させ、閾値にアクセスさせることができる。命令は、さらに、処理デバイスに、第１の複数の値、第２の複数の値、第３の複数の値、及び閾値に基づいて、（例えば、データ収集コンポーネント２０２の１又は２以上のエンジン、識別エンジン２４０、又はそれらの組み合わせにより）デバイスのデバイス識別を決定させ、デバイス識別を記憶させることができる。
【００８４】
いくつかの実施形態では、ヒューリスティックは、パケットのサイズ、パケットを構成する複数のパケットに関連付けられる間隔、又はパケットを構成するパケットのシーケンスの少なくとも１つに関連付けられている。様々な実施形態では、ヒューリスティックは、パケットを構成するハートビート通信に関連付けられている。いくつかの実施形態では、第３の複数の値は、デバイスの電力消費にさらに関連付けられている。様々な実施形態では、第３の複数の値は、機械学習（例えば、機械学習分析コンポーネント２３４により）にさらに関連付けられている。
【００８５】
いくつかの実施形態では、システムは、メモリと、当該メモリと連結された動作可能な処理デバイスを含む。処理デバイスは、ネットワークと連結されたデバイスに関連付けられた通信のパケットにアクセスし、パケットの複数のそれぞれの一部に関連付けられた第１の複数の値を決定する（例えばパケットエンジン２０４により）。処理デバイスは、さらに、パケットの複数のそれぞれの部分に関連付けられた第１の閾値にアクセスし、デバイスの１又は２以上のポートを（例えば、ポートエンジン２２０により）スキャンする。処理デバイスは、さらに、デバイスの１又は２以上のポートに関連付けられた第２の複数の値を（例えば、ポートエンジン２２０により）決定し、デバイスの１又は２以上のポートに関連付けられた第２の閾値にアクセスする。処理デバイスは、さらに、第１の複数の値、第２の複数の値、第１の閾値、及び第２の閾値に基づいて、デバイスのデバイス識別を（例えば、データ収集コンポーネント２０２の１又は２以上のエンジン、識別エンジン２４０、又はそれらの組み合わせにより）決定し、デバイス識別を記憶する。
【００８６】
いくつかの実施形態では、パケットのそれぞれの部分に関連付けられた第１の複数の値の決定は、（例えば、パケットエンジン２０４により）受動的パケット分析を構成する。様々な実施形態では、デバイスの１又は２以上のポートに関連付けられた第２の複数の値の決定は、（例えば、ポートエンジン２２０による）アクティブポート分析に基づく。第２の複数の値の１つの値は、デバイス上で開放されている１又は２以上の転送制御プロトコル（ＴＣＰ）ポート、又はデバイス上で開放されている１又は２以上のユーザデータグラムプロトコル（ＵＤＰ）ポートの少なくとも１つに基づき得る。いくつかの実施形態では、第１の閾値は、オペレーティングシステム、ベンダー、又はベンダーの製品の少なくとも１つに関連付けられている。
【００８７】
図３は、本開示の態様及び実施に従ったデバイス識別で使用するために動作可能なデバイス情報の典型的なデータ構造を示す。スコア行列３００は、１又は２以上の層に対する値を記憶し、（例えば、閾値との比較に基づいて）デバイス識別で使用する信頼性スコアを計算するために、いくつかの実施形態により使用され得る例示的なデータ構造である。
【００８８】
スコア行列３００は、パケット部分３０４、ポート部分３２０、及び高度な検出部分３３０を含む。パケット部分３０４、ポート部分３２０、及び高度な検出部分３００の各列に対し、スコア行列３００は、オペレーティングシステム層３５０、ベンダー層３６０、及び製品層３７０のそれぞれの層に関連付けられた行を有する。各列の値は、それぞれの層に従って記憶される。例えば、о1の値は、オペレーティングシステムを示し得るパケットのレイヤ２部分に従って設定することができる。別の例として、オペレーティングシステム層３５０と列３０６に対し、値は、Ｍｉｃｒｏｓｏｆｔ  ＷｉｎｄｏｗｓＸＰ（登録商標）が組み込まれたデバイスを使用していることを示すデバイスのパケットに基づいて割り当てられ得る。
【００８９】
実施は、示されているよりも多く又は少ない列又は行をサポートしても良く、示されているよりも多く又は少なく値及びスコアをサポートしても良いことが理解される。さらに、各層の値又はスコアは１からｎに進むが、値又はスコアの数は、任意の数であり、動的に調整できることが理解される。
【００９０】
パケット部分３０４の値及びスコアは、パケット分析（例えば、パケットエンジン２０４により）に基づいて計算される。パケット部分３０４は、レイヤ２（Ｌ２）列３０６、レイヤ３（Ｌ３）列３０８、レイヤ４（Ｌ４）列３１０、及びレイヤ７列３１２（例えば、Ｌ７：１，Ｌ７：２，Ｌ７：３）を含む。
【００９１】
Ｌ２列３０６は、オペレーティングシステム層３５０、ベンダー層３６０、及び製品層３７０に対する１又は２以上のパケットのレイヤ２の部分に関連する値及びスコアを記憶するために使用することができる。Ｌ２列３０６の値は、例えば、フレームサイズ、プロトコルタイプなどのレイヤ２の情報に基づくことができる。例えば、レイヤ２の情報が、プロトコルがＣｉｓｃｏ（登録情報）ディスカバリー・プロトコル（ＣＤＰ）であることを示す場合、Ｌ２列のо1値は、Ｌｉｎｕｘであるオペレーティングシステムに基づいて設定され得る。Ｌ２列３０６のｖ1値は、Ｌｉｎｕｘであるオペレーティングシステム及び使用されているＣＤＰプロトコルに基づくＣｉｓｃｏ（登録情報）であるベンダーに基づいて設定することができる。別の例として、ｐ1値は、製品の特定の所有者のオペレーティングシステムを使用するデバイスに基づき得る。
【００９２】
Ｌ３列３０８は、オペレーティングシステム層３５０、ベンダー層３６０、及び製品層３７０に対する１又は２以上のパケットのレイヤ３部分に関連する値を記憶するために使用することができる。例えば、Ｌ３列３０８の値は、ＩＰプロトコル、ＴＴＬなどのレイヤ３情報に基づき得る。Ｌ４列３１０は、オペレーティングシステム層３５０、ベンダー層３６０、及び製品層３７０に対し、１又は２以上のパケットのレイヤ４部分に関連する値を記憶するために、使用することができる。例えば、Ｌ４列３１０の値は、ＴＣＰ又はＵＤＰプロトコルが使用されているか、ポートが使用されているかどうかを含むレイヤ４情報に基づき得る。Ｌ７列３１２は、オペレーティングシステム層３５０、ベンダー層３６０、及び製品層３７０に対し、１又は２以上のパケットのレイヤ７部分に関連する値を記憶するために、使用することができる。例えば、Ｌ７列３１２の値は、ユーザエージェント、ＵＲＬ名、コンテンツタイプなどを含むレイヤ７アプリケーション層ペイロード情報に基づき得る。
【００９３】
ポート部分３２０は、ポート分析（例えば、ポートエンジン２２０により）に基づいて計算される値及びスコアを記憶するために、使用することができる。ポート部分３２０は、ポートスキャン列３１４を含む。ポートスキャン列３１４は、オペレーティングシステム層３５０、ベンダー層３６０、及び製品層３７０に対し、識別されるデバイスのポートスキャンの結果に関連する値を記憶するために、使用することができ、さらに、デバイス上の開放及び閉鎖ポートとデータベース（例えば、ローカル又はリモート）と比較することに基づき得る。
【００９４】
高度な検出部分３３０は、値を記憶するために使用することができ、スコアは、ヒューリスティクス、機械学習又は訓練、又はそれらの組み合わせに基づいて、（例えば、高度な検出エンジン２３０により）決定され得る。高度な検出部分３３０は、ヒューリスティック列３１６−３１８と機械学習列３２０とを含む。ヒューリスティック列３１６−３１８は、１又は２以上のパケット（例えば、パケットサイズ、パケット間隔、及びパケットシーケンス）の様々なヒューリスティクスに関連する値又はスコアを記憶するために使用することができる。ヒューリスティック列３１６−３１８の値又はスコアは、ヒューリスティック分析コンポーネント２３２により決定された値又はスコアを記憶するために使用することができる。ヒューリスティック列３１６−３１８は、ヒューリスティクスの導関数（例えば、二次、三次など、ヒューリスティックデータの導関数）に基づく値又はスコアを記憶するために使用することもできる。機械学習列３２０は、本明細書で説明するように、識別されるデバイスに関連付けられたデータに対して実行される機械学習分析又は訓練に基づく値又はスコアを記憶するために、使用することができる。
【００９５】
様々な重みは、スコア行列３００の値に、例えば乗算されるなど適用され得る。例えば、レイヤ７の値に適用される重みは、デバイスを識別するためにより正確に使用可能な属性に基づいて、高くなり得る。別の例として、２の重みは特定のアプリケーションを示すレイヤ７属性にもしかすると適用（例えば、乗算）され、一方、１．２の重みは、他のレイヤ属性又は値に適用（例えば乗算）される。重みは、オフラインで訓練されるか、事前に決定されるか、経時的に調整されるか、又はそれらの組み合わせであり得る。重みと閾値は、オフラインで調整され、個別に更新され得る。
【００９６】
パケット部分フィールド又はセル全体のスコアが決定されると、パケット部分の信頼性スコアが決定され得る。信頼性スコアは、スコア行列３００のパケット部分の１又は２以上の値の組み合わせに基づいて、計算され得る。デバイス識別を実行するデバイス又はシステム（例えば、システム２００）は、信頼性スコアを計算するためアルゴリズム（例えば、設定可能な）を使用することができる。デバイス識別を実行するシステムは、各デバイスに対し、スコア行列３００を維持しても良い。スコア行列３００の各列プロパティの値に基づいて、オペレーティングシステム層３５０、ベンダー層３６０、製品層３７０の各層の信頼性スコアが計算され得る。
【００９７】
次に、製品層信頼スコアは、信頼できるデバイス識別が行われたかどうかを決定するために製品閾値と比較される。閾値が信頼性スコアによって満たされない場合、スコア行列３００の他の部分の値が決定され得る（例えば、ポート部分３２０と高度な検出部分３３０）。
【００９８】
いくつかの実施形態では、ポート部分３２０と高度な検出部分３３０の値は、オプションで決定される。パケットエンジン２０４の後の他のエンジン（例えば、ポートエンジン２２０と高度な検出エンジン２３０）の実行は、パケット部分の信頼性スコアが閾値を上回っているかどうかに基づくことができる。ポート部分３２０の値の決定は、識別されているデバイスがアクティブポートスキャン（例えば、パケットエンジン２０４により収集されたデータに基づいて決定されるようにユーザ入力に基づいて又はパケット部分３０４のインジケータ又は値に基づいて）に敏感であるかどうかに基づいても良い。
【００９９】
各行のスコアに基づいて、層スコア３８０−３８４が決定され得る。オペレーティングシステム層スコア３８０は、オペレーティングシステム層３５０（行）に対する列３０６−３２０（例えば、о1−оn）の各値に基づいて決定され得る。ベンダー層スコア３８２は、ベンダー層３６０（行）に対する列３０６−３２０（例えば、ｖ1−ｖn）の各値に基づいて決定され得る。製品スコア３８２は、製品層３７０（行）に対する列３０６−３２０（例えば、ｐ1−ｐn）の各値に基づいて決定され得る。オペレーティングシステム層３５０、ベンダー層３６０、及び製品層３７０のそれぞれに対し、それぞれの閾値があり得る。いくつかの実施形態では、パケット部分３０４の値に基づくスコアは、製品層３７０に関連付けられた閾値を満たさない又は上回らない場合、ポート部分３２０と高度な検出３３０の値が決定され得る。
【０１００】
信頼性スコアアルゴリズムは、調整することができ（例えば、オフライン又はリアルタイムで）、コンテンツの更新としてオンザフライで更新することもできる。例えば、信頼性スコアアルゴリズムは、ソフトウェアライブラリ更新の一部として更新することができる。
【０１０１】
図４を参照すると、フローチャート４００は、様々な実施形態により使用される例示的な機能を示す。特定の機能ブロック（「ブロック」）がフローチャート４００に開示されているが、そのようなブロックは例である。すなわち、実施形態は、フローチャート４００に列挙された様々な他のブロック又はブロックの変形を実行するのに良く適している。フローチャート４００のブロックは、提示された順序とは異なる順序で実行されても良いこと、及び、フローチャート４００のブロックの全てが実行されなくても良いことが理解される。
【０１０２】
図４は、本開示の一実施に従ったデバイス識別のための方法の態様のフロー図を示す。フローチャート４００の様々な部分は、例えば、パケットエンジン２０４、ポートエンジン２２０、高度な検出エンジン２３０、及び識別エンジン２４０の異なるコンポーネントによって実行され得る。
【０１０３】
ブロック４０２で、通信パケットがアクセスされる。パケットは、ネットワーク（例えば、ネットワーク１００）と連結された通信可能なデバイス（例えば、デバイス１２０−１３０）から又は当該デバイスに送信されても良い。パケットは、複数のネットワークデバイス間の通信を促進するネットワークデバイス（例えば、ネットワークデバイス１０４）を介してアクセスされ得る。例えば、パケットは、パケットの一部にアクセスし、パケットの特定のレイヤ部分を精査し又は特定のレイヤにおけるパケットの１つのプロパティを精査し得るパケットエンジン（例えば、パケットエンジン２０４）によってアクセスされ得る。いくつかの実施形態では、パケットは、ネットワークと連結しているデバイスに応じてデバイスを検出することに基づいてアクセスされ得る。
【０１０４】
いくつかの実施形態では、１又は２以上のパケットは、スキップされ得る。例えば、大規模なダウンロード（例えば、３ＧＢ）が開示された場合、最初のいくつかのパケットはアクセスされ得るが、後続のパケットはアクセスすることができない（例えば、識別目的のために）。
【０１０５】
ブロック４０４で、パケットに関連付けられたデバイスが識別されたかどうかが決定される。これは、デバイス識別データ構造（例えば、デバイス情報データベース２４２）にアクセスし、パケット内の一意の識別子をデバイス識別データ構造と比較することにより決定され得る。パケットに関連付けられたデバイスが識別されている場合（例えば、以前に）、ブロック４６０が実行される。パケットに関連付けられたデバイスが識別されていない場合、ブロック４１０が実行される。
【０１０６】
ブロック４１０で、パケット分析が実行される。パケット分析は、パケット分析コンポーネント（例えば、パケットエンジン２０４）により実行され得る。パケット分析は、本明細書で説明されるように、１又は２以上のパケットの１又は２以上の部分にアクセスすることを含むことができる。パケット分析は、ＤＨＣＰ分析、プロトコル分析、ペイロード分析、及び識別子分析を含むことができる。
【０１０７】
ブロック４１２で、１又は２以上のスコア値が決定される。１又は２以上のスコア値は、パケット分析中にアクセスされる１又は２以上のパケットの１又は２以上の部分に基づいて決定され得る。例えば、スコア値は、パケットを送信したデバイスの強力な識別指示を有するレイヤ７プロパティに基づいて設定され得る。別の例として、スコア値は、パケット内にリストされている特定のポートに基づいて設定され得る。１又は２以上のスコア値は、本明細書に説明されるように、スコア行列（例えば、スコア行列３００）の一部であり、様々な層（例えば、層３５０−３７０）に関連付けられていても良い。１又は２以上のスコアは、本明細書で説明されるように、スコアに適用される重みに基づいて決定され得る。
【０１０８】
ブロック４１４で、信頼性スコアが決定される。信頼性スコアは、本明細書で説明されるように、１又は２以上のスコア値の組み合わせに基づいて決定され得る。信頼性スコアは、識別の１又は２以上の層（例えば、層３５０−３７０）に関連付けられることができる。
【０１０９】
ブロック４１６で、デバイスが識別されたかどうかが決定される。デバイスが識別されたかどうかの決定は、本明細書で説明されるように、信頼性スコアが閾値を満たしている又は上回っているかどうかに基づいて、決定することができる。信頼性スコアが閾値を満たす又は上回っていると、デバイスが識別され、その後、ブロック４１８が実行される。信頼性スコアが閾値を満たすと、デバイスが識別されず、その後、ブロック４２０が実行される。
【０１１０】
ブロック４１８で、デバイス識別が出力される。デバイス識別は、将来のアクセスのために記憶され（例えば、別のプログラム又はモジュールにより）、グラフィカルユーザインタフェース（ＧＵＩ）などの一部として表示される。例えば、デバイス識別は、類似デバイスのグループの一部として表示され、又は通知の一部として提示され得る。デバイス識別は、デバイス識別に基づいてデバイスにポリシー（例えば、セキュリティポリシー）を実装するためにも使用され得る。例えば、デバイス識別は、ベンダーＡとモデル１２３により作成されたインターネットプロトコル（ＩＰ）カメラを含むことができ、デバイス識別は、セキュリティポリシーをベンダーＡからの各デバイス又はモデル１２３である各デバイスに適用するために使用され得る。別の例として、デバイス識別は、ネットワークトラフィックパターン（例えば、予想されるトラフィックパターン）に基づいてデバイスのネットワークアクセスを監視及び制御するために使用され得る。デバイス識別は、特定のデバイス又はアプリケーション（例えば、特定のアプリケーションを実行する特定のデバイス）にサービス品質（ＱｏＳ）制御を適用するために使用され得る。デバイス識別は、インシデント応答のためにさらに使用され得る。例えば、新たな脆弱性が特定のデバイスに発見された場合、アクション（例えば、デバイスのネットワーク通信を制限するセキュリティアクション）をデバイス識別に基づいて自動的に実行することができる。
【０１１１】
デバイス識別は、ネットワークの細分化と視覚化などのためにさらに使用することができる。例えば、特定のデバイスを有するネットワーク部分は、１又は２以上の他のネットワーク部分から分割する（例えば、アクセス制限する）ことができる。別の例として、１又は２以上のデバイスのデバイス識別は、（例えば、デバイス種類、製造者ロゴなど）デバイス識別に基づく１又は２以上のアイコンを有するＧＵＩの一部として、視覚的に示され得る。
【０１１２】
ブロック４２０で、パケット分析情報が記憶される。パケット分析情報は、本明細書で説明されるように、決定された１又は２以上のスコア値と、１又は２以上の信頼性スコアとを含み得る。記憶された情報は、（例えば、ポートエンジン２００又は高度な検出エンジン２３０からの）記憶された情報と追加情報とに基づいてデバイス識別を決定する際に使用するために記憶されても良い。
【０１１３】
ブロック４２２で、ポート分析が実行される。本明細書で説明されるように、ポート分析は、識別されるデバイスのポートスキャンを含み得る。いくつかの実施形態では、ポート分析は、識別されるデバイスが（例えば、パケット分析に基づいて）ポートスキャンに敏感である可能性がある場合、オプションであるかスキップすることができ、ブロック４３２が実行され得る。
【０１１４】
ブロック４２４で、１又は２以上のスコア値が決定される。１又は２以上のスコア値は、ポート分析に基づいて決定された開放及び閉鎖ポート（例えば、ＴＣＰ／ＵＤＰポート）に基づいて決定される。例えば、スコア値は、識別されるデバイス上で開放されている特定のポートに基づき得る。１又は２以上のスコア値は、本明細書で説明されるように、スコア行列（例えば、スコア行列３００）の一部であり、様々な層（例えば、層３５０−３７０）に関連付けられ得る。１又は２以上のスコア値は、本明細書で説明されるように、スコアに適用される重みに基づいて決定され得る。
【０１１５】
ブロック４２６で、信頼性スコアが決定される。信頼性スコアは、本明細書で説明されるように、決定された１又は２以上のスコア値の組み合わせに基づいて決定され得る。信頼性スコアは、識別の１又は２以上の層（例えば、層３５０−３７０）に関連付けられ得る。信頼性スコアは、パケット分析に関連付けられ、ポート分析に関連付けられたスコアにさらに基づき得る。
【０１１６】
ブロック４２８で、デバイスが識別されたかどうかが決定される。デバイスが識別されたかどうかの決定は、信頼性スコアが閾値を満たすか上回っているかどうかに基づいて決定することができる。信頼スコアが閾値を満たす又は上回っている場合、デバイスは識別されており、ブロック４１８が実行される。信頼性スコアが閾値を満たす場合、デバイスが識別されておらず、ブロック４３０が実行される。
【０１１７】
ブロック４３０で、ポート分析情報が記憶される。ポート分析情報は、本明細書で説明されるように、決定された１又は２以上のスコア値と信頼性スコアとを含み得る。記憶された情報は、（例えば、高度な検出エンジン２３０からの）記憶された情報と追加情報とに基づいてデバイス識別を決定する際に使用するために記憶され得る。
【０１１８】
ブロック４３２で、高度な分析が実行される（例えば、高度な検出エンジン２３０）。本明細書で説明されるように、高度な分析は、識別されるデバイスのヒューリスティクスと機械学習分析とを含み得る。いくつかの実施形態では、高度な分析は、本明細書で説明されるように、識別されるデバイスがポートスキャンに敏感である可能性がある場合に実行され得る。
【０１１９】
ブロック４３４で、１又は２以上のスコア値が決定される。１又は２以上のスコア値は、本明細書で説明されるように、ヒューリスティクス又は機械学習分析に基づいて決定される。例えば、スコア値は、１又は２以上のパケットのサイズ、パケット間の間隔、及びパケットのシーケンスに基づき得る。１又は２以上のスコア値は、本明細書で説明されるように、スコア行列（例えば、スコア行列３００）の一部であり、様々な層（例えば、層３５０−３７０）に関連付けられ得る。１又は２以上のスコアは、本明細書で説明されるように、スコアに適用される重みに基づいて決定され得る。
【０１２０】
ブロック４３６で、信頼性スコアが決定される。信頼性スコアは、本明細書で説明されるように、決定された１又は２以上のスコア値の組み合わせに基づいて決定され得る。信頼性スコアは、識別の１又は２以上の層（例えば、層３５０−３７０）に関連付けられ得る。信頼性スコアは、パケット分析に関連付けられ、ポート分析に関連付けられたスコアにさらに基づき得る。
【０１２１】
ブロック４４０で、デバイスが識別されたかどうかが決定される。デバイスが識別されたかどうかの決定は、信頼性スコアが閾値を満たすか上回っているかどうかに基づいて決定され得る。信頼性スコアが閾値を満たす又は上回っている場合、ブロック４１８が実行される。信頼性スコアが閾値を満たす場合、デバイスが識別されておらず、ブロック４５０が実行される。
【０１２２】
ブロック４５０で、高度な分析情報が記憶される。高度な分析情報は、本明細書で説明されるように、決定された１又は２以上のスコア値と信頼性スコアとを含み得る。記憶された情報は、（例えば、パケットエンジン２０４、ポートエンジン２２０、高度な検出エンジン２３０、又はそれらの組み合わせからの）記憶された情報と追加情報とに基づいて将来のデバイス識別プロセスで使用するために記憶され得る。高度な分析情報は、提案されたデバイス識別を決定するためにさらに使用され得る。
【０１２３】
ブロック４５２で、識別提案が決定される。識別提案は、パケット分析、ポート分析、及び高度な分析情報に基づいて最も可能性の高いデバイスの識別であり得る。
【０１２４】
ブロック４５４で、識別提案が出力される。識別提案は、記憶され又はＧＵＩの一部として表示され得る。識別提案は、（例えば、デバイスを識別するため）ユーザに識別提案の確認又は追加情報の提供を促すメッセージの一部としてユーザに対して表示され得る。
【０１２５】
ブロック４６０で、１又は２以上の追加のパケットベース機能が実行される。実行されるパケットベース機能は、識別とは個別の又は異なるパケットエンジンの他の機能（例えば、セキュリティ、トラフィックブロッキングなど）であり得る。実行される他の機能には、デバイス上で実行しているアプリケーションを決定すること、デバイスの脆弱性を決定すること、及びデバイスに関連付けられたユーザ情報（例えば、マシンにログインしているユーザ）を含むことができる。
【０１２６】
いくつかの実施形態では、デバイス識別プロセスは、パケット分析（例えば、パケットエンジン２０４により）、ポート分析（例えば、ポートエンジン２２０により）、及び高度な検出分析（例えば、高度な検出エンジン２３０により）を使用して直列化された方法で実行される。信頼閾値内で確認される３層（例えば、層３５０−３７０）の情報に応じて、識別プロセスは、識別時間とＣＰＵの使用に関する節約をもたらすために終了することができる。例えば、パケットエンジンが高い信頼性スコアでデバイスを識別することができる場合、識別プロセスは、ポートエンジン及び高度な検出エンジンを使用することなく終了することができる。同様に、ポートエンジンにより決定されるように、ポート分析データと一緒にパケットエンジンデータが、高い信頼性スコアでデバイスを識別することができる場合、識別は、高度な検出エンジンを使用することなく完了することができる。
【０１２７】
処理能力及び時間は、各エンジンに基づいて異なり得る。例えば、パケットエンジンは、ポートエンジンよりも少ない処理と時間で済み、ポートエンジンは、高度な検出エンジンより少ない処理能力で済む。
【０１２８】
図５は、本明細書で説明される手段の何れか１つ又は複数をマシンに実行させるための一連の命令が実行され得るコンピュータシステム５００の例示的な形態のマシンの図表示を示す。代替の実施形態では、マシンは、ローカルエリアネットワーク（ＬＡＮ）、イントラネット、エクストラネット、又はインターネット内の他のマシンに接続（例えば、ネットワーク化）され得る。マシンは、クライアント‐サーバのネットワーク環境のサーバ又はクライアントマシンの能力内で、又はピアツーピア（又は分散）ネットワーク環境のピアマシンとして動作し得る。マシンは、パーソナルコンピュータ（ＰＣ）、タブレットＰＣ、セットトップボックス（ＳＴＢ）、パーソナルデジタルアシスタント（ＰＤＡ）、携帯電話、Ｗｄｂアプライアンス、サーバ、ネットワークルータ、スイッチ又はブリッジ、ハブ、アクセスポイント、ネットワークアクセス制御デバイス、又はそのマシンが実行するアクションを特定する一連の命令（一連の又は他の）を実行することができる任意のマシンであり得る。さらに、単一のマシンのみが示されているが、「マシン」という用語は、本明細書で説明される１又は２以上の何れかの手段を実行するために、個別又は連帯して一連の（又は複数の一連の）命令を実行するマシンの集団も含むものとする。一実施形態では、コンピュータシステム５００は、例えば、デバイス識別又はシステム２００を実行するように構成されたネットワーク監視装置１０２などのサーバが代表し得る。
【０１２９】
典型的なコンピュータシステム５００は、処理デバイス５０２、メインメモリ５０４（例えば、読み出し専用メモリ（ＲＯＭ）、フラッシュメモリ、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、静的メモリ５０６（例えば、フラッシュメモリ、スタティックランダムアクセスメモリ（ＳＲＡＭ）など）、及びデータストレージデバイス５１８を含み、これらは、バス５３０を介して互いに通信する。本明細書で説明される様々なバスを介して提供される信号は、他の信号と時分割され、１又は２以上の共通のバスを介して提供される。さらに、回路コンポーネント又はブロックの相互接続は、バス又は単一の信号線として示される場合がある。バスのそれぞれは、代替的に１又は２以上の単一の信号線であっても良く、単一の信号線のそれぞれは、代替的にバスであっても良い。
【０１３０】
処理デバイス５０２は、例えば、マイクロプロセッサ、中央処理ユニット又は同様のものなどの１又は２以上の汎用処理デバイスを表す。より具体的には、処理デバイスは、複雑な命令セットコンピューティング（ＣＩＳＣ）マイクロプロセッサ、縮小命令セットコンピュータ（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ）マイクロプロセッサ、又は他の命令セットを実装しているプロセッサ、又は命令セットの組み合わせを実装しているプロセッサであっても良い。処理デバイス５０２は、例えば、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマグルゲートアレイ（ＦＰＧＡ）、デジタルシグナルプロセッサ（ＤＳＰ）、ネットワークプロセッサ、又は同様のものなど、１又は２以上の特殊用途処理デバイスであっても良い。処理デバイス５０２は、本明細書で説明される動作及びステップを実行するために、図２に示されるシステム２００の一例であり得る処理ロジック５２６を実行するように構成される。
【０１３１】
データストレージデバイス５１８は、本明細書で説明される１又は２以上の何れかの機能の手段を具体化する１又は２以上の一連の命令５２２（例えば、ソフトウェア）が記憶される機械可読記憶媒体５２８を含む。この命令５２２は、処理デバイス５０２にデバイス識別子２００を実行させる命令を含む。命令５２２は、コンピュータシステム５００による命令５２２の実行中に、メインメモリ５０４内又は処理装置５０２内に完全に又は少なくとも部分的に存在することもでき；メインメモリ５０４及び処理デバイス５０２は、機械可読記憶媒体を構成することもできる。命令５２２は、ネットワークインターフェイスデバイス５０８を通じてネットワーク５２０を介してさらに送信又は受信されても良い。
【０１３２】
機械可読記憶媒体５２８は、また、本明細書で説明されるように、デバイス識別のための方法を実行するための命令を記憶するために使用され得る。機械可読記憶媒体５２８は、単一の媒体であるように典型的な実施形態で示されているが、「機械可読記憶媒体」という用語は、１又は２以上の命令セットを記憶する単一の媒体又は複数の媒体（例えば、集中型又は分散型のデータベース、又は関連するキャッシュとサーバ）を含むものとする。機械可読記憶媒体は、マシン（例えば、コンピュータ）によって読み出し可能な形式（例えば、ソフトウェア、処理アプリケーション）で情報を記憶するための任意のメカニズムを含む。機械可読記憶媒体は、磁気記憶媒体（例えば、フロッピーディスク）；光学記憶媒体（例えば、ＣＤ−ＲＯＭ）；光磁気記憶媒体；読み出し専用メモリ（ＲＯＭ）；ランダム‐アクセスメモリ（ＲＡＭ）；消去可能なプログラマブルメモリ（例えば、ＥＰＲＯＭ及びＥＥＰＲＯＭ）；フラッシュメモリ；又は電子命令を記憶するのに適した他の種類の媒体を含み得るが、これらに限定されない。
【０１３３】
前述の記載は、本開示のいくつかの実施形態の良い理解を提供するために、例えば、特定のシステム、コンポーネント、方法その他の例などの多数の特定の詳細を説明する。しかし、本開示の少なくともいくつかの実施形態は、これらの特定の詳細なしでも実施され得ることは当業者には明らかであろう。他の例では、本開示を不用意に不明瞭にするのを避けるために、周知のコンポーネント又は方法は詳細に説明されないか、単純なブロック図形式で提示される。したがって、説明されている特定の詳細は、単なる例に過ぎない。特定の実施形態は、これらの例となる詳細から変わる場合があるが、本発明の範囲内にあると依然として考えられる。
【０１３４】
本明細書を通じて「一実施形態」又は「１つの実施形態」への言及は、少なくとも一実施形態に含まれる実施形態に関連して説明される特定の特徴、構造、又は特性を意味する。したがって、本明細書を通じて様々な場所における「一実施形態では」又は「１つの実施形態では」という語句の出現は、必ずしも全てが同じ実施形態を指しているわけではない。さらに、「又は」という用語は、排他的な「又は」というよりも、包括的な「又は」を意味することを意図したものである。
【０１３５】
さらに、いくつかの実施形態は、機械可読記憶媒体が記憶され、又は複数のコンピュータシステムにより実行される分散型コンピューティング環境で実施され得る。さらに、コンピュータシステム間で転送される情報は、コンピュータシステムを接続する通信媒体を渡ってプル又はプッシュされ得る。
【０１３６】
請求される主題の実施形態は、本明細書で説明される様々な動作を含むが、これらに限定されない。これらの動作は、ハードウェアコンポーネント、ソフトウェア、ファームウェア、又はそれらの組み合わせにより実行され得る。
【０１３７】
本明細書の方法の動作は、特定の順序で示されて説明されているが、各方法の動作の順序は、ある動作が逆の順序で実行されるように、又は、ある動作が他の動作と同時に少なくとも部分的に実行されるように、変更されても良い。別の実施形態では、区別できる動作の命令又はサブ動作は、断続的又は交互に起こる方法であり得る。
【０１３８】
要約の記載を含む発明の図入りの実施の上記の説明は、網羅的であること又は開示された正確な形態に発明を限定することを意図するものではない。本発明の特定の実施及び例が例示の目的で本明細書で説明されているが、様々な同等な修正は、当業者が認識するように、本発明の範囲内で可能である。「例（ｅｘａｍｐｌｅ）」又は「典型的な（ｅｘｅｍｐｌａｒｙ）」という文言は、「例（ｅｘａｍｐｌｅ）」、「実例（ｉｎｓｔａｎｃｅ）」、又は「例証（ｉｌｌｕｓｔｒａｔｉｏｎ）」として役目を果たすつもりで本明細書で使用される。本明細書で「例（ｅｘａｍｐｌｅ）」又は「典型的な（ｅｘｅｍｐｌａｒｙ）」として説明される態様又は設計は、他の態様又は設計よりも好ましい又は有利であるとして必ずしも解釈されるべきではない。むしろ、「例（ｅｘａｍｐｌｅ）」又は「典型的な（ｅｘｅｍｐｌａｒｙ）」という文言の使用は、概念を具体的な方法で提示することを意図している。この出願で使用されるように、「又は（ｏｒ）」という用語は、排他的な「又は」よりはむしろ包括的な「又は」を意味することを意図している。つまり、特に明記しない限り、又は文脈から明らかでない限り、「ＸはＡ又はＢを含む」は、自然な包括的な順列の何れかを意味することを意図している。つまり、ＸがＡを含む；ＸがＢを含む；ＸがＡとＢの両方を含む場合、「ＸはＡ又はＢを含む」は前述の何れかの場合の下で満たされる。さらに、この出願及び添付された特許請求の範囲で使用される冠詞「ａ」及び「ａｎ」は、特に明記しない限り又は単数形を対象にする文脈から明らかでない限り、「１又は２以上」を意味するように一般的に解釈されるべきである。さらに、「実施形態（ｅｍｂｏｄｉｍｅｎｔ）」又は「一実施形態（ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ）」又は「実施（ａｎ  ｉｍｐｌｅｍｅｎｔａｔｉｏｎ）」又は「一実施（ｏｎｅ  ｉｍｐｌｅｍｅｎｔａｔｉｏｎ）」という用語の使用は、そのように説明しない限り、同じ実施形態又は実施を意味することを意図するものではない。さらに、本明細書で使用される「第１の」、「第２の」、「第３の」、「第４の」といった用語は、異なる要素を区別するためのラベルとして意味があるものであり、数字上の指定に従った順序の意味を必ずしも持たない場合がある。
【図１】
2020518208.tif 000003
【図２】
2020518208.tif 000004
【図３】
2020518208.tif 000005
【図４】
2020518208.tif 000006
【図５】
2020518208.tif 000007
【国際調査報告】
2020518208.tif 000008
2020518208.tif 000009
2020518208.tif 000010