(57)【要約】  通信ネットワークのノードで動作するオペレーティングシステムをフィンガープリント処理するシステム及びその動作方法が提供される。この方法は、所与のノードに関して分析されるイベントの取得に応じて、イベントに合致する２つ以上のOSプロファイルのグループを生成し、１つ以上の有意なイベント、すなわち、生成されたグループ内の合致するOSプロファイルの中から所与のノードで動作するOSを一意に特徴付けるOSプロファイルを識別するために取得されるイベントの十分なセットを生成し、所与のノードに関して有意なイベントを取得すると、１つ以上の合致するOSプロファイルの新たなグループを生成し、ただし、この新たなグループは、この取得された有意なイベントに従って、少なくとも所与のノードに関して以前に分析された１つのイベントに従って生成され、１つ以上の合致するOSプロファイルのこの生成された新たなグループを用いて所与のノードで動作するOSを識別することを有する。
2013545196.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークのノードで動作するオペレーティングシステム（OS）を検出する方法であって、
(a)所与のノードに関して分析されるイベントの取得に応じて、前記イベントに合致する２つ以上のOSプロファイルのグループを生成するステップと、
(b)前記生成されたグループ内の前記合致するOSプロファイルの中から前記所与のノードで動作する前記OSを一意に特徴付けるOSプロファイルを識別するために取得される１つ以上のイベントの十分なセットを生成し、有意なイベントの前記十分なセットを生成するステップと、
(c)前記所与のノードに関して有意なイベントを取得すると、１つ以上の合致するOSプロファイルの新たなグループを生成するステップであり、前記新たなグループは、前記取得された有意なイベントに従って、少なくとも前記所与のノードに関して以前に分析された１つのイベントに従って生成されるステップと、
(d)１つ以上の合致するOSプロファイルの前記生成された新たなグループを用いて前記所与のノードで動作する前記OSを識別するステップと
を有する方法。
【請求項２】
合致するOSプロファイルの前記生成された新たなグループが単一のOSプロファイルを有する場合、
前記単一のプロファイルに対応するものとして、前記所与のノードで動作する前記OSを識別するステップを更に有する、請求項１に記載の方法。
【請求項３】
合致するOSプロファイルの前記生成された新たなグループが２つ以上の合致するOSプロファイルを有する場合、
単一のOSプロファイルによって合致するOSプロファイルの新たなグループを生成するまで、動作b)及びc)を繰り返し、前記単一のプロファイルに対応するものとして、前記所与のノードで動作する前記OSを識別するステップを更に有する、請求項１に記載の方法。
【請求項４】
有意なイベントの生成された十分なセットは、有意なイベントの以前に生成された十分なセットのサブセットを構成しない、請求項３に記載の方法。
【請求項５】
有意なイベントの生成された十分なセットは、有意なイベントの以前に生成された十分なセットのサブセットを構成する、請求項３に記載の方法。
【請求項６】
前記有意なイベントは、パッシブイベントである、請求項１ないし５のうちいずれか１項に記載の方法。
【請求項７】
前記有意なイベントは、アクティブイベントである、請求項１ないし６のうちいずれか１項に記載の方法。
【請求項８】
有意なイベントの前記十分なセットは、少なくとも２つの別の有意なイベントを有する、請求項１ないし７のうちいずれか１項に記載の方法。
【請求項９】
合致するOSプロファイルの新たなグループは、前記取得された有意なイベントに対応する特性と、合致するOSプロファイルの以前に生成されたグループに含まれるOSプロファイルとを比較することにより生成される、請求項１ないし８のうちいずれか１項に記載の方法。
【請求項１０】
合致するOSプロファイルの生成された新たなグループは、前記取得された有意なイベントに合致するOSプロファイルと、前記所与のノードに関して以前に分析された全てのイベントとを有する、請求項１ないし９のうちいずれか１項に記載の方法。
【請求項１１】
合致するOSプロファイルの生成された新たなグループは、前記取得された有意なイベントに合致する全てのOSプロファイルと、前記所与のノードに関して以前に分析された全てのイベントとを有する、請求項１ないし１０のうちいずれか１項に記載の方法。
【請求項１２】
合致するOSプロファイルの生成された新たなグループは、前記取得された有意なイベントに合致するOSプロファイルの一部と、少なくとも前記所与のノードに関して以前に分析された１つのイベントとを有する、請求項１ないし１１のうちいずれか１項に記載の方法。
【請求項１３】
合致するOSプロファイルの前記生成された新たなグループが前記取得された有意なイベントに合致するOSプロファイルを有さない場合、前記取得された有意なイベントに対応する特性と、OSプロファイルのデータベースに含まれるOSプロファイルとを比較するステップを更に有する、請求項１２に記載の方法。
【請求項１４】
有意なイベントの前記生成された十分なセットは、所定の基準に従って最適化される、請求項１ないし１３のうちいずれか１項に記載の方法。
【請求項１５】
前記所定の基準は、取得されるイベントの最小数及び／又は取得される特定の種類のイベントの最小数及び／又はOS検出処理の最小時間に関する、請求項１４に記載の方法。
【請求項１６】
合致するOSプロファイルの生成された新たなグループが２つ以上の合致するOSプロファイルを有する場合、
特定の有意なイベントが所定の時間中に取得されなかった場合、前記所与のノードで動作する前記OSを識別する前に動作b)及びc)を中断するステップを更に有する、請求項１ないし１５のうちいずれか１項に記載の方法。
【請求項１７】
特定のアクティブな有意なイベントが所定の時間中に取得されなかった場合、前記取得されなかった有意なイベントを有意なイベントの再生成される十分なセットから除外しつつ、有意なイベントの十分なセットを再生成するステップを更に有する、請求項１ないし１５のうちいずれか１項に記載の方法。
【請求項１８】
(a)所与のノードに関するイベントを監視し、前記所与のノードに関する繰り返しのイベントの推測された特性のずれを検出するステップと、
(b)所定のずれを検出したときに、前記所与のノードのOSの検出を開始するステップと
を更に有する、請求項１ないし１７のうちいずれか１項に記載の方法。
【請求項１９】
通信ネットワークのノードで動作するオペレーティングシステム（OS）を検出するように動作可能なOS検出器であって、
各オペレーティングシステムを特徴付けるOSプロファイルを収容するOSプロファイルデータベースと、
パッシブ及び／又はアクティブモードでイベントを取得するように構成されたイベントインタフェースと、
前記OSデータベース及び前記イベントインタフェースに動作可能に結合された分析及び管理ユニット（A&Mユニット）と
を有し、
前記A&Mユニットは、
(a)所与のノードに関して分析されるイベントの取得に応じて、前記イベントに合致する２つ以上のOSプロファイルのグループを生成し、
(b)前記生成されたグループ内の前記合致するOSプロファイルの中から前記所与のノードで動作する前記OSを一意に特徴付けるOSプロファイルを識別するために取得される１つ以上のイベントの十分なセットを生成し、有意なイベントの前記十分なセットを生成し、
(c)前記所与のノードに関して有意なイベントを取得すると、１つ以上の合致するOSプロファイルの新たなグループを生成し、ただし、前記新たなグループは、前記取得された有意なイベントに従って、少なくとも前記所与のノードに関して以前に分析された１つのイベントに従って生成され、
(d)１つ以上の合致するOSプロファイルの前記生成された新たなグループを用いて前記所与のノードで動作する前記OSを識別するように動作可能であるOS検出器。
【請求項２０】
合致するOSプロファイルの前記生成された新たなグループが単一のOSプロファイルを有する場合、
前記A&Mユニットは、前記単一のプロファイルに対応するものとして、前記所与のノードで動作する前記OSを識別するように更に動作可能である、請求項１９に記載のOS検出器。
【請求項２１】
合致するOSプロファイルの前記生成された新たなグループが２つ以上の合致するOSプロファイルを有する場合、
前記A&Mユニットは、単一のOSプロファイルによって合致するOSプロファイルの新たなグループを生成するまで、動作b)及びc)を繰り返し、前記単一のプロファイルに対応するものとして、前記所与のノードで動作する前記OSを識別するように更に動作可能である、請求項１９に記載のOS検出器。
【請求項２２】
前記有意なイベントは、前記イベントインタフェースを用いて提供される取り込みにより受信されたパッシブイベントである、請求項１９ないし２１のうちいずれか１項に記載のOS検出器。
【請求項２３】
前記有意なイベントは、前記A&Mユニットから受信した命令に従って前記イベントインタフェースを用いて生成して送信されたプローブに応じて取得されたアクティブイベントである、請求項１９ないし２２のうちいずれか１項に記載のOS検出器。
【請求項２４】
有意なイベントの前記十分なセットは、少なくとも２つの別の有意なイベントを有する、請求項１９ないし２３のうちいずれか１項に記載のOS検出器。
【請求項２５】
前記A&Mユニットは、前記取得された有意なイベントに対応する特性と、合致するOSプロファイルの以前に生成されたグループに含まれるOSプロファイルとを比較することにより、合致するOSプロファイルの新たなグループを生成するように動作可能である、請求項１９ないし２４のうちいずれか１項に記載のOS検出器。
【請求項２６】
合致するOSプロファイルの生成された新たなグループは、前記取得された有意なイベントに合致するOSプロファイルと、前記所与のノードに関して以前に分析された全てのイベントとを有する、請求項１９ないし２５のうちいずれか１項に記載のOS検出器。
【請求項２７】
合致するOSプロファイルの生成された新たなグループは、前記取得された有意なイベントに合致する全てのOSプロファイルと、前記所与のノードに関して以前に分析された全てのイベントとを有する、請求項１９ないし２６のうちいずれか１項に記載のOS検出器。
【請求項２８】
合致するOSプロファイルの生成された新たなグループは、前記取得された有意なイベントに合致するOSプロファイルの一部と、少なくとも前記所与のノードに関して以前に分析された１つのイベントとを有する、請求項１９ないし２５のうちいずれか１項に記載のOS検出器。
【請求項２９】
前記A&Mユニットは、合致するOSプロファイルの前記生成された新たなグループが前記取得された有意なイベントに合致するOSプロファイルを有さない場合、前記取得された有意なイベントに対応する特性と、前記OSプロファイルデータベースに含まれるOSプロファイルとを比較するように更に動作可能である、請求項２８に記載のOS検出器。
【請求項３０】
前記A&Mユニットは、所定の基準に従って有意なイベントの前記十分なセットを最適化するように動作可能である、請求項１９ないし２８のうちいずれか１項に記載のOS検出器。
【請求項３１】
前記所定の基準は、取得されるイベントの最小数及び／又は取得される特定の種類のイベントの最小数及び／又はOS検出処理の最小時間に関する、請求項３０に記載のOS検出器。
【請求項３２】
前記A&Mユニットは、特定のアクティブな有意なイベントが所定の時間中に取得されなかった場合、前記取得されなかった有意なイベントが有意なイベントの再生成される十分なセットから除外された、有意なイベントの十分なセットを再生成するように更に動作可能である、請求項１９ないし３１のうちいずれか１項に記載のOS検出器。
【請求項３３】
前記A&Mユニットに動作可能に結合されたノードデータベースを更に有し、
前記ノードデータベースは、１つ以上の所与のノードに関するイベントを収容するように動作可能である、請求項１９ないし３２のうちいずれか１項に記載のOS検出器。
【請求項３４】
前記ノードデータベースは、所与のノード毎に、各ノードに関するイベント及び／又はその派生物のリストを維持管理するように動作可能であり、
前記リストは、各ノードに関して分析されたイベントを少なくとも有する、請求項３３に記載のOS検出器。
【請求項３５】
前記A&Mユニットは、取得される１つ以上のパッシブイベント及び／又は取得される１つ以上のアクティブイベントを有する判定マトリクスの形式で、前記十分なセットを生成するように動作可能である、請求項１９ないし３４のうちいずれか１項に記載のOS検出器。
【請求項３６】
(a)所与のノードに関するイベントを監視し、前記所与のノードに関する繰り返しのイベントの推測された特性のずれを検出し、
(b)所定のずれを検出したときに、前記所与のノードのOSの検出を開始するように更に動作可能である、請求項１９ないし３５のうちいずれか１項に記載のOS検出器。
【請求項３７】
前記ネットワークに新たに接続されたノードに関する情報を取得した場合、前記新たなノードのOSの検出を開始するように更に動作可能である、請求項１９ないし３５のうちいずれか１項に記載のOS検出器。
【請求項３８】
プログラムがコンピュータで実行された場合、請求項１ないし１８のうちいずれか１項に記載の全ての段階を実行するコンピュータプログラムコード手段を有するコンピュータプログラム。
【請求項３９】
コンピュータ可読媒体に具現された請求項３８に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、2010年11月11日に出願された米国仮特許出願第61/412,500号に関し、この優先権を主張する。この全ての内容を援用する。
【０００２】
本発明は、概して通信ネットワークの分野に関し、特に通信ネットワークのノードで動作するオペレーティングシステム（OS：operating  system）をフィンガープリント処理（fingerprinting）することができる方法及びシステムに関する。
【背景技術】
【０００３】
オペレーティングシステムのフィンガープリント処理は、ネットワークノードのオペレーティングシステムの識別を可能にする処理である。どのオペレーティングシステムが所与のネットワークノードで動作しているかを学習することは、OSのバージョンに応じた脆弱性の修正、ソフトウェアの遠隔アップグレードの提供、ネットワークにおける無許可のデバイスの検出、OS配置の統計の収集等を行うために非常に有用になり得る。非限定的な例として、フィンガープリント処理は、データパケットの異なるフィールドを分析することにより行われてもよい。フィンガープリント処理は、能動的にデータパケットをネットワークノードに送信し、応答を分析することを有するアクティブモード、及び／又は受動的にネットワークノードから受信したデータパケットを分析することを有するパッシブモードで提供されてもよい。
【０００４】
ネットワークノードで動作するOSを検出する問題は、現在の技術で認識されており、様々なシステムが対策を提供するために開発されている。例えば、以下のものがある。
【０００５】
“Method  and  system  for  collecting  information  relating  to  a  communication  network”という題の国際特許出願第WO2005/053230号は、通信ネットワークで動作するノードにより伝達されたデータがノードにトランスペアレントであるように検出される方法及びシステムを開示している。検出されたデータは、通信ネットワークに関する情報を識別し、欠落した情報を識別するために分析される。欠落した情報を完成させるために、１つ以上のノードが問い合わされる。
【０００６】
“Method  and  system  for  evaluating  tests  used  in  operating  system  fingerprinting”という題の米国特許出願第2009/037353号は、オペレーティングシステム（OS）のフィンガープリント処理ツール（例えば、Nmap）のような分類システムを評価するシステムを開示している。情報利得は、フィンガープリント処理テスト及びこれに関連するプローブ（probe）を含むツールの分類テストの品質を評価するメトリックとして使用される。情報利得は、テスト値の範囲、分離値及び欠落値により表される署名／データを考慮することを含み、生のトレーニングサンプルではなく、OSのフィンガープリント処理ツールの署名データベースを使用して判定される。これらの方法をNmapの例示的な署名データベースに適用した際に、テスト値及び分類での均一な分布が仮定される。他の仮定又は事前の情報（例えば、或る範囲での通常の分布）も適応可能である。
【０００７】
“Method  and  apparatus  for  fingerprinting  systems  and  operating  systems  in  a  network”という題の米国特許出願第2009/182864号は、ネットワークアドレス変換の背後のコンピュータホストの数及びオペレーティングシステムの種類を識別するシステム及び方法を開示している。この方法は、ホストコンピュータシステムに関連するインターネットプロトコルパケットを処理することを含む。この処理は、インターネットプロトコルパケットを取得し、インターネットプロトコルパケットからキーフィールドを抽出し、フィンガープリントを生成することを含んでもよい。この方法は、ネットワークアドレス変換器がホストコンピュータと公衆ネットワーク（例えば、インターネット）との間に接続されているか否かを判定するために、フィールドを分析することにより続く。接続されたネットワークアドレス変換器が存在する場合、ネットワークアドレス変換器を使用するコンピュータの数を判定するために、フィールドが分析されてもよい。フィールドはまた、或るレベルの確率で、フィンガープリントがホストコンピュータで動作する正確なオペレーティングシステムを識別することを判定するために分析されてもよい。一般的に、分析しているインターネットプロトコルパケットは、キャリアネットワークの集約ポイントから取得される。
【０００８】
“Method  and  apparatus  for  Layer  2  discovery  in  a  managed  shared  network”という題の米国特許出願第2010/185759号は、ネットワークのノードが他のネットワークノードの通信機能に関する情報の発見のための要求をネットワークコントローラに提示する方法及び装置を開示している。ネットワークコントローラは、ノードの通信機能についての要求をネットワークの他のノードに送信し、各ノードの通信機能に関する情報を含む応答を他のノードから受信し、ノードの通信機能に関する受信した情報をネットワークの複数のノードに送信する。
【０００９】
“Method  and  apparatus  for  profiling  in  a  distributed  application  environment”という題の米国特許出願第2002/032754号は、分散アプリケーション（DA：distributed  application）のネットワーク環境におけるクライアントデバイスのリソース機能を導出して特徴付ける方法及び装置を開示している。クライアントデバイスの構成及びリソース情報を取得するための方法及び関連するアーキテクチャは、サーバ部とクライアント部とを有する分散プロファイリング（profiling）エンティティを組み込む。クライアント部は、クライアントデバイスの問い合わせと、サーバ部へのデバイスのリソース及び構成情報の返信とを容易にするために使用される。この情報は、サーバとクライアントデバイスとの間のエンティティの構成要素の分布を変更及び更新するために、後にプロファイリングエンティティにより使用される。この方法の第２の態様では、初期ダウンロード中及び初期化後の前述の分散プロファイリングエンティティを拡張する方法が開示される。
【００１０】
“The  Present  and  Future  of  Xprobe2,  the  Next  Generation  of  Active  Operating  System  Fingerprinting”という文献（Ofir  Arkin他により2003年7月にインターネットで公開、http://www.netsecuritv.org/dl/articles/Present_and_Future_Xprobe2-v1.0.pdf参照）は、能動的なオペレーティングシステムのフィンガープリント処理を実行するシステムを開示している。The  Present  and  Future  of  Xprobe2によれば、能動的なオペレーティングシステムのフィンガープリント処理は、複数のパケットで目的のシステムをプローブし、受信した応答を検査することにより、目的のネットワークノードの基礎のオペレーティングシステムを能動的に判定する処理である。
【発明の概要】
【課題を解決するための手段】
【００１１】
ここに開示される対象の特定の態様によれば、通信ネットワークのノードで動作するオペレーティングシステム（OS）を検出する方法が提供される。この方法は、(a)所与のノードに関して分析されるイベントの取得に応じて、イベントに合致する２つ以上のOSプロファイルのグループを生成し、(b)生成されたグループ内の合致するOSプロファイルの中から所与のノードで動作するOSを一意に特徴付けるOSプロファイルを識別するために取得される１つ以上のイベントの十分なセット（集合）を生成し、有意なイベント（significant  event）の十分なセットを生成し、(c)所与のノードに関して有意なイベントを取得すると、１つ以上の合致するOSプロファイルの新たなグループを生成し、ただし、この新たなグループは、この取得された有意なイベントに従って、少なくとも所与のノードに関して以前に分析された１つのイベントに従って生成され、(d)１つ以上の合致するOSプロファイルのこの生成された新たなグループを用いて所与のノードで動作するOSを識別することを有する。
【００１２】
合致するOSプロファイルのこの生成された新たなグループが単一のOSプロファイルを有する場合、この方法は、この単一のプロファイルに対応するものとして、所与のノードで動作するOSを識別することを更に有する。合致するOSプロファイルのこの生成された新たなグループが２つ以上の合致するOSプロファイルを有する場合、この方法は、単一のOSプロファイルによって合致するOSプロファイルの新たなグループを生成するまで、動作b)及びc)を繰り返し、この単一のプロファイルに対応するものとして、所与のノードで動作するOSを識別することを更に有する。特定の有意なイベントが所定の時間中に取得されなかった場合、動作b)及びc)は、所与のノードで動作するOSを識別する前に中断されてもよい。或いは又は更に、この方法は、特定のアクティブな有意なイベントが所定の時間中に取得されなかった場合、この取得されなかった有意なイベントを有意なイベントの再生成される十分なセットから除外しつつ、有意なイベントの十分なセットを再生成することを更に有してもよい。
【００１３】
ここに開示される対象の他の態様によれば、通信ネットワークのノードで動作するオペレーティングシステム（OS）を検出するように動作可能なOS検出器が提供される。OS検出器は、各オペレーティングシステムを特徴付けるOSプロファイルを収容するOSプロファイルデータベースと、パッシブ及び／又はアクティブモードでイベントを取得するように構成されたイベントインタフェースと、OSデータベース及びイベントインタフェースに動作可能に結合された分析及び管理ユニット（A&Mユニット）とを有する。A&Mユニットは、(a)所与のノードに関して分析されるイベントの取得に応じて、イベントに合致する２つ以上のOSプロファイルのグループを生成し、(b)生成されたグループ内の合致するOSプロファイルの中から所与のノードで動作するOSを一意に特徴付けるOSプロファイルを識別するために取得される１つ以上のイベントの十分なセットを生成し、有意なイベントの十分なセットを生成し、(c)所与のノードに関して有意なイベントを取得すると、１つ以上の合致するOSプロファイルの新たなグループを生成し、ただし、この新たなグループは、この取得された有意なイベントに従って、少なくとも所与のノードに関して以前に分析された１つのイベントに従って生成され、(d)１つ以上の合致するOSプロファイルのこの生成された新たなグループを用いて所与のノードで動作するOSを識別するように動作可能である。
【００１４】
合致するOSプロファイルのこの生成された新たなグループが単一のOSプロファイルを有する場合、A&Mユニットは、この単一のプロファイルに対応するものとして、所与のノードで動作するOSを識別するように更に動作可能である。合致するOSプロファイルのこの生成された新たなグループが２つ以上の合致するOSプロファイルを有する場合、A&Mユニットは、単一のOSプロファイルによって合致するOSプロファイルの新たなグループを生成するまで、動作b)及びc)を繰り返し、この単一のプロファイルに対応するものとして、所与のノードで動作するOSを識別するように更に動作可能である。特定の有意なイベントが所定の時間中に取得されなかった場合、A&Mユニットは、所与のノードで動作するOSを識別する前に動作b)及びc)を終了するように構成されてもよい。或いは又は更に、A&Mユニットは、特定のアクティブな有意なイベントが所定の時間中に取得されなかった場合、この取得されなかった有意なイベントを有意なイベントの再生成される十分なセットから除外しつつ、有意なイベントの十分なセットを再生成するように更に構成されてもよい。
【００１５】
更なる態様は、開示される方法及び／開示されるOS検出器に関する。
【００１６】
更なる態様によれば、ここに開示される対象の他の態様と組み合わせて、有意なイベントの生成された十分なセットは、有意なイベントの以前に生成された十分なセットのサブセット（部分集合）を構成してもよく、構成しなくてもよい。有意なイベントの十分なセットは、１つ以上のパッシブ（受動的）な及び／又は１つ以上のアクティブ（能動的）な有意なイベントを有してもよい。任意選択で、有意なイベントの十分なセットは、少なくとも２つの別の有意なイベントを有してもよい。有意なイベントの生成された十分なセットは、所定の基準（例えば、取得されるイベントの最小数、取得されるイベントの特定の種類の最小数及び／又はOS検出処理の最小時間に関する）に従って最適化されてもよい。
【００１７】
更なる態様によれば、ここに開示される対象の他の態様と組み合わせて、合致するOSプロファイルの新たなグループは、取得された有意なイベントに対応する特性と、合致するOSプロファイルの以前に生成されたグループに含まれるOSプロファイルとを比較することにより生成されてもよい。合致するOSプロファイルの生成された新たなグループは、取得された有意なイベントに合致するOSプロファイルの全部又は一部と、少なくとも所与のノードに関して以前に分析された１つのイベントとを有してもよい。任意選択で、合致するOSプロファイルの生成された新たなグループは、取得された有意なイベントに合致するOSプロファイルの全部又は一部と、所与のノードに関して以前に分析された全てのイベントとを有してもよい。
【００１８】
開示される対象の特定の実施例の利点の中には、ネットワークノードで動作するOSをフィンガープリント処理するために取得される必要のあるイベントの量を最小化する機能がある。開示される対象の特定の実施例の更なる利点の中には、識別処理を実行する処理時間を最小化する機能がある。
【図面の簡単な説明】
【００１９】
【図１】ここに開示される対象の特定の実施例に適用可能な通信ネットワークアーキテクチャの概略図
【図２】ここに開示される対象の特定の実施例によるOS検出器の概略機能ブロック図
【図３】ここに開示される対象の特定の実施例によるOSフィンガープリント処理の概略フローチャート
【発明を実施するための形態】
【００２０】
本発明を理解し、実際にどのように実施されるかを認識するために、添付図面を参照して単なる非限定的な例として実施例について説明する。
【００２１】
以下の詳細な説明では、本発明の完全な理解を提供するために複数の特定の詳細が示されている。しかし、ここに開示される対象はこれらの特定の詳細なしに実施されてもよいことが、当業者により分かる。他にも、ここに開示される対象をあいまいにしないように、周知の方法、手順、構成要素及び回路は詳細に記載されない。図面及び説明において、同じ参照符号は、異なる実施例又は構成に共通する構成要素を示す。
【００２２】
特に言及しない限り、以下の説明から明らかなように、明細書を通じて“処理”、“計算”、“判定”、“生成”、“受信”、“取得”、“分類”、“比較”等のような用語を使用した説明は、データを他のデータに操作及び／又は変換するコンピュータの動作及び／又は処理を示す。このデータは、電子のような物理量及び／又は物理オブジェクトを表す。“コンピュータ”という用語は、データ処理機能を備えた如何なる種類の電子システムをもカバーするように広く解釈されるべきである。
【００２３】
ここでの教示による動作は、所望の目的のために特に構成されたコンピュータにより実行されてもよく、過渡的でないコンピュータ可読記憶媒体に格納されたコンピュータプログラムによって所望の目的のために特に構成された汎用コンピュータにより実行されてもよい。
【００２４】
ここに開示される対象の実施例は、特定のプログラミング言語を参照して説明されない。ここに記載の発明の教示を実施するために、様々なプログラミング言語が使用され得ることが分かる。
【００２５】
背景技術で引用した文献は、ここに開示される対象に適用可能なOS検出の多くの原理を教示している。従って、更なる詳細又は別の詳細、特徴及び／又は技術的背景の適切な教示のために、これらの刊行物の全内容を援用する。
【００２６】
このことを考慮に入れて、ここに開示される対象の特定の実施例に適用可能な通信ネットワークアーキテクチャの概略図を示す図１に着目する。この特許明細書で使用される“通信ネットワーク”という用語は、通信オブジェクト（例えば、データ、音声、ビデオ、メッセージ等）が１つのノードから他のノードに（任意選択で複数のリンク上で様々なノードを通じて）渡され得るように構成されたノード及びリンクの集合により構成された如何なる種類のネットワークをもカバーするように広く解釈されるべきである。通信ネットワークの非限定的な例は、コンピュータネットワーク、通信ネットワーク、ストレージネットワーク等である。任意選択で、通信ネットワークは、相互接続された複数の物理的又は仮想的サブネットワークを有してもよい。
【００２７】
非限定的な例で示すように、オペレーティングシステムをフィンガープリント処理するシステム（以下ではOS検出器と呼ばれる）101は、３つのスイッチ103、104及び105を有する通信ネットワーク102に動作可能に結合される。端末ノード106及び107はスイッチ105に結合され、端末ノード108、109及び110はスイッチ104に結合され、端末ノード111はスイッチ103に結合される。スイッチ103はまた、ネットワーク102及びその一部のノードをインターネット114に接続するルータ112に結合される。従って、図示のネットワーク102は、スイッチ103、104、105、端末ノード106-111及びルータ112を有する。
【００２８】
単なる例示目的で、通信ネットワーク102に関して外部エンティティとして構成されたOS検出器について、以下の説明を提供する。ここに開示される対象の教示は、通信ネットワーク102内の別のノードとして構成されたOS検出器、又は通信ネットワーク102の１つ以上のノードに完全に若しくは部分的に統合されたOS検出器にも同様に適用可能であることが、当業者は容易に認識する。
【００２９】
図２〜３を参照して更に詳細に説明するように、ここに開示される対象の特定の実施例によれば、OS検出器101は、ネットワーク102のノードのオペレーティングシステムを識別するように構成される。
【００３０】
所与のノードのオペレーティングシステムを判定するフィンガープリント処理は、所与のノードに関する観測されたデータパケットの特性と特定のOSを特徴付ける所定の特性との比較に基づく。非限定的な例として、フィンガープリント処理は、TCP/IPスタックのフィンガープリント処理、アプリケーションレベルのフィンガープリント処理及び／又は観測されたデータパケットから推測される他の特性の比較に基づいて提供されてもよい。
【００３１】
図２を参照して詳細に説明するように、データパケットは、アクティブモード及び／又はパッシブモードで受信されてもよい。アクティブモードでは、OS検出器は、特に構成されたデータパケット（“プローブ（probe）”）を所与のノードに送信し、存在する場合にはこれに応じて返信されたパケットを分析する。パッシブモードでは、OS検出器は、所与のノードとネットワーク内及び／又はネットワーク外の他のノードとの間の通信を取り込む（sniff）ことにより、データパケットを受信し、これらのパケットを分析する。所与のノードのオペレーティングシステムを分類するために、分析されたデータパケットの特性は、既知のオペレーティングシステムを特徴付けるそれぞれの特性と比較される。
【００３２】
本発明は、図１を参照して説明する通信ネットワークの特別のアーキテクチャにより束縛されない点に留意すべきである。本発明は、要求されたデータをOS検出器に伝達できるノードを有する如何なる通信ネットワーク及び／又はその一部にも同様に適用であることを、当業者は容易に認識する。
【００３３】
図２を参照すると、ここに開示される対象の特定の実施例によるOS検出器の概略機能ブロック図が示されている。
【００３４】
OS検出器200は、OSプロファイルのデータベース201を有する。“所与のOSのOSプロファイル（OS  profile）”は、データパケットの特性の固有のセットをカバーするように広く解釈されるべきである。この特性は所与のOSを特徴付け、その識別に有用である。以下ではOS署名と呼ばれる。いくつかの署名は、２つ以上のオペレーティングシステムに共通でもよいが、署名の各セット（すなわち、OSプロファイル）は、各オペレーティングシステムに固有である。特定の実施例では、OSプロファイルはオペレーティングシステムのグループに共通でもよい。このようなオペレーティングシステムは、グループのレベルのみでフィンガープリント処理されてもよい。以下での“オペレーティングシステム”への言及はまた、同じOSプロファイルにより特徴付けられるオペレーティングシステムのこのようなグループを示すことも含む。OSフィンガープリント処理は、所与のノードに関して観測されたデータパケットの特性と、１つ以上のOSプロファイルに対応してデータベース201に含まれる署名との比較に基づく。
【００３５】
OSプロファイルデータベース201は、分析及び管理ユニット202に動作可能に結合される。分析及び管理ユニット202は、プローブユニット205とプローブ応答インタフェース206と取込インタフェース207とを有するイベントインタフェース209に動作可能に結合される。
【００３６】
OS検出器は、パッシブモード及び／又はアクティブモードでデータパケットを取得するように構成される。アクティブモードでは、OS検出器は、プローブユニット205により生成されて送信されたプローブに応じて、プローブ応答インタフェース206を介してデータパケットを取得するように構成される。パッシブモードでは、パケットは取込インタフェース207を介して取得される。
【００３７】
OSフィンガープリント処理に使用可能な受動的に取得されたデータパケット又は一連のデータパケットは、以下ではパッシブイベントepと呼ばれる。OSフィンガープリント処理に使用可能な能動的に取得されたデータパケット又は一連のデータパケットは、以下ではアクティブイベントeaと呼ばれる。イベントの非限定的な例は、SYN  REQUEST、SYN-ACK応答、DHCP  DISCOVERY、DHCP  REQUEST、HTTP  REQUEST等に関する一連のデータパケットを含む。このようなイベントは、TCP/IPスタックに基づくOSフィンガープリント処理、アプリケーションに基づくOSフィンガープリント処理等に関係してもよい。非限定的な例として、能動的なフィンガープリント処理は、“Nmap”、“synscan”及び／又は“Xprobe2”のツールで提供されてもよく、受動的なフィンガープリント処理は、“p0f”及び／又は“SinFP”のツールで提供されてもよい。
【００３８】
インタフェース207を介して取得されたパッシブイベント及び／又はインタフェース208を介して取得されたアクティブイベントは、分析及び管理（A&M）ユニット202に転送される。
【００３９】
A&Mユニットは、所与のノードに関するイベントを収容するように構成されたアセット（asset）／ノードデータベース208に更に動作可能に結合される。非限定的な例として、データベース208は、ノード毎に、ノードに関するイベント（及び／又はその派生物）のリストを維持管理してもよい。リストは、少なくとも所与のノードで動作するOSが識別されるまで維持管理される。任意選択で、リストは、ノードがネットワークにアタッチ（接続）されている時間を通じて（すなわち、電源オンになりネットワークに接続された時間から、切断されるまで／オフラインになるまで）維持管理されてもよい。これにより、（存在する場合には）OSのアップデートの監視が可能になる。任意選択で、リストは、ノードがオフラインモードになったとき（以前に接続された後にネットワークに接続されていないとき）に維持管理されてもよい。これにより、（存在する場合には）OSのアップデートの監視が可能になる。リストは、ノードに関する全てのイベントを含んでもよく、フィンガープリント処理中に分析されたイベントのみを含んでもよい。
【００４０】
A&Mユニット202は、判定ブロック204に動作可能に結合されたテストブロック203を有する。テストブロック203は、取得されたイベントの特性を推測するように構成される。テストブロック203は、推測された特性とOSプロファイルデータベース201に収容された署名とを比較し、推測された特性に合致する１つ以上のOSプロファイルを識別するように構成される。所与のノードに関するイベントeを分析する際に、テストブロックは、１つ以上の合致するOSプロファイルPiを識別し、イベントに合致するOSプロファイルのグループPを生成する。合致は、所与のノードに関する（存在する場合には）以前に分析されたイベントを考慮して提供される。合致するOSプロファイルのグループPは、所与のノードに関する全ての分析されたイベントに合致するOSプロファイルを有する。
【００４１】
【数１】
2013545196.tif 000003
合致するOSプロファイルの生成されたグループが単一の合致するOSプロファイルを有する場合（P={Px}）、この単一の合致するプロファイルは、各ノードで動作するオペレーティングシステムを特徴付け、このような所与のイベントは、以下では十分なイベントと呼ばれる。
【００４２】
合致するOSプロファイルの生成されたグループが複数の合致するOSプロファイルを有する場合（P={P1,P2...Pn}）、このような所与のイベントは、以下では不十分なイベントと呼ばれる。
【００４３】
所与のノードについて生成された合致するOSプロファイルのグループは、データベース208に格納される。
【００４４】
判定ブロック204は、複数の合致するOSプロファイルの生成されたグループを分析し、更に分析される１つ以上のイベントのセットを生成するように構成される。このようなセットは、複数の合致するOSプロファイルの中から各ノードで動作するOSに対応する固有のOSプロファイルを選択することを可能にする。このように生成されたセットは、以下では十分なセットと呼ばれ、十分なセット内のイベントは、以下では有意なイベントと呼ばれる。十分なセット内の有意なイベントの少なくとも一部は、別のイベントでもよい。すなわち、このようなイベントのいずれか１つを取得するときに、取得されたイベントに代わるイベントは有意であることを中止する。
【００４５】
判定ブロックは、事前に生成された状態機械を用いて、又は他の適切な技術を用いて、イベントの可能な任意選択の組み合わせの全てを処理することにより、十分なセットを生成してもよい。
【００４６】
判定ブロックは、十分なセットが１つ以上のアクティブイベントを有する場合、プローブユニット205に対して、各プローブを生成し、これを所与のノードに送信するように命令するように更に構成される。
【００４７】
A&Mユニットは、関心のあるノード毎にそれぞれ生成された十分なセットをデータベース208に格納及び更新可能にするように更に構成される。
【００４８】
判定ブロックは、単に有意なイベントに関して提供された分析の結果に応じて十分なセットを生成するように構成されてもよい。更に又は或いは、判定ブロックは、十分なセットを生成するときに、現時点で有意であると定義されたイベントについてテストブロックを更新するように構成されてもよい。テストブロックは、単に有意なイベントに応じて更なる分析を提供するように構成されてもよい。
【００４９】
非限定的な例として、十分なセットは、取得される１つ以上のパッシブイベント及び／又は取得される１つ以上のアクティブイベントを有する判定マトリクスとして構成されてもよい。
【００５０】
任意選択で、判定ブロックは、所定の基準（例えば、取得されるイベントの最小数及び／又は取得される特定の種類のイベントの最小数及び／又はOSフィンガープリント処理の最小時間等）に従って、生成された十分なセットを最適化するように更に構成されてもよい。
【００５１】
特定の場合に（例えば、ノードがフィルタリングされた場合及び／又はファイヤウォールされた場合）、プローブは、それぞれの有意なアクティブイベントを生じさせることができない。このような場合、OS検出器は、部分的な結果（例えば、合致するOSプロファイルの以前に生成されたグループに対応するOSのグループ）を提供するように構成されてもよく、及び／又はノードのフィンガープリント処理を中止するように構成されてもよい。或いは、OS検出器は、（例えば、所定の応答待機時間の終了時に）可能な場合には特定及び／又は全てのアクティブイベントを除外した十分なセットを再生成するように構成されてもよい。
【００５２】
OS検出器は、データベース201がノードで動作するOSを特徴付けるOSプロファイルを有していないことを検出した場合、所与のノードのフィンガープリント処理を中止するように更に構成されてもよい。
【００５３】
OS検出器は、ネットワークへの新たに接続されたノードに関する情報を受信し、それに従ってOSフィンガープリント処理を開始するように更に構成されてもよい。非限定的な例として、新たに追加されたノードに関する情報は、この出願の譲受人に譲渡された国際出願第WO2005/053230に開示されたように受信されてもよい。この全内容を援用する。
【００５４】
本発明の実施例は、図２を参照して説明した特定のアーキテクチャに束縛されないことを、当業者は容易に認識する。等価な機能及び／又は変更された機能が他の方法で統合又は分割されてもよく、ソフトウェア、ファームウェア及びハードウェアのいずれかの適切な組み合わせで実装されてもよい。ここに開示される対象の異なる実施例では、ブロック間及び／又はブロック内の有効な接続は、遠隔接続を含み、直接的に（例えば、バスを介して）実装されてもよく、間接的に実装されてもよい。
【００５５】
図３を参照すると、ここに開示される対象の特定の実施例によるOSフィンガープリント処理の概略フローチャートが示されている。所与のノードに関するフィンガープリント処理のために分析される第１のイベントを取得すると（300）、OS検出器は、イベントを分析し、イベントに合致する１つ以上のOSプロファイルのグループを生成する（301）。グループが単一のOSプロファイルを有する場合、このOSプロファイルは、所与のノードで動作するOSを一意に特徴付ける（307）。グループが複数のOSプロファイルを有する場合（302）、OS検出器は、１つ以上の有意なイベント（すなわち、合致するOSプロファイルの中から所与のノードで動作するOSを一意に特徴付けるOSプロファイルを識別するために取得されるイベント）の現在の十分なセットを生成する（303）。パッシブであれアクティブであれ、所与のノードに関してフィンガープリント処理するために分析される次のイベントを取得すると（304）、OS検出器は、イベントが有意であるか否かを検査し（305）、取得された有意なイベントと以前に分析されたイベントとに従って、合致するOSプロファイルの新たなグループを生成する（306）。
【００５６】
合致するOSプロファイルの新たなグループは、取得された次のイベントに対応する特性と、合致するOSプロファイルの以前に生成されたグループに含まれるOSプロファイルの署名とを比較することにより生成されてもよい。或いは、新たなグループは、データベース201に含まれる全てのOSプロファイルを分析することにより生成されてもよい。合致するOSプロファイルの以前に生成されたグループが以前のイベントに合致する全てのOSプロファイルを有していない場合（例えば、数個のみの可能性の高いOSプロファイルのみを有する場合）、グループ生成処理は、以前のサイクルで定義された合致するOSプロファイルの分析で始まり、必要な場合には全てのOSプロファイルを分析することにより続けてもよい。
【００５７】
OS検出器は、単一の合致するOSプロファイルによりグループを生成するまで、従って、所与のノードで動作するOSを識別するまで、合致するOSプロファイルの新たに生成されたグループ毎に、動作302-306を更に繰り返す。動作302-306は、観測されたデータパケットに対応するOSプロファイルがない場合、又は生成されたプローブへの応答がない場合等に、各OSを識別する前に終了してもよい。
【００５８】
有意なイベントの十分なセットは動的である。イベントの数（別のイベントを除く）は、動作302-306の次のサイクル毎に小さくなり、それぞれ次のサイクルの有意なイベントは、必ずしも前のサイクルのイベントのサブセットを構成するとは限らない。それぞれ次のサイクルでの合致するOSプロファイルのグループは、前のサイクルでの合致するOSプロファイルのグループのサブセットを構成する。
【００５９】
任意選択で、OS検出器は、単に有意なイベントを取得したことに応じて有意なイベントの新たな十分なセットを生成しつつ、いずれかの取得されたイベントに応じて又は分析される特定の（必ずしも有意でなくてもよい）所定のイベントに応じて、合致するOSプロファイルの新たなグループを生成するように構成されてもよい（306）。
【００６０】
有意でないイベントは無視され（308）、任意選択でデータベース208に更に記録される。
【００６１】
OS検出器は、所与のノードに関する繰り返しのイベントの推測された特性のずれを監視するように更に構成されてもよい。このようなずれは、ノードで動作するOSに関する変化を示す。OS検出器は、このようなずれを検出したときに所与のノードのフィンガープリント処理を開始するように構成されてもよく、及び／又は適切な警告を提供するように構成されてもよい。このことにより、ノードの基礎となる動作するオペレーティングシステムに関するいずれかの変化（すなわち、機械のデュアルブート、仮想化、スプーフィング（spoofing）等）を識別すること、NAT可能デバイスを識別すること等が可能になる。
【００６２】
非限定的な例として、特定のノードについて、取得されたNetBIOSデータパケットは、分析される第１のイベントでもよい。合致するOSプロファイルのそれぞれ生成されたグループは、Microsoft  Windows  7（登録商標）、Microsoft  Windows  2008（登録商標）及びMicrosoft  Windows  Vista（登録商標）のOSプロファイルを有してもよい。有意なイベントの生成された十分なセットは、単一の有意なイベント、すなわち、SMBクエリへの応答を有してもよい。従って、SMBクエリへの応答を取得することにより、Microsoft  Windows  7（登録商標）、Microsoft  Windows  2008（登録商標）及びMicrosoft  Windows  Vista（登録商標）の中から、ノードで動作する基礎となるOSをフィンガープリント処理することが可能になる。
【００６３】
特定のノードについての他の非限定的な例として、取得されたSYN-ACKイベントは、分析される第１のイベントでもよい。合致するOSプロファイルのそれぞれ生成されたグループは、Microsoft  Windows  XP（登録商標）及びMicrosoft  Windows  2003（登録商標）を有してもよい。有意なイベントの生成された十分なセットは、別のイベント、すなわち、HTTPリクエストのパッシブイベント及びNetBIOSのパッシブイベントを有してもよい。別のイベントのいずれか１つに対応するパケットの分析により、ノードで動作するOS（すなわち、Microsoft  Windows  XP（登録商標）又はMicrosoft  Windows  2003（登録商標））を識別することが可能になる。
【００６４】
本発明は、その用途を、ここに含まれる説明に示す詳細又は図面に示す詳細に限定しないことが分かる。本発明は、他の実施例も可能であり、様々な方法で実施及び実行可能である。従って、ここで使用される語句及び用語は、説明目的のためであり、限定としてみなされるべきではない。従って、この開示が基づく概念は、本発明の複数の目的を実行するための他の構成、方法及びシステムを設計する基礎として容易に利用され得ることを、当業者は認識する。
【００６５】
本発明による装置は、適切にプログラムされたコンピュータでもよいことも分かる。同様に、本発明は、本発明の方法を実行するコンピュータにより読み取り可能なコンピュータプログラムを意図する。本発明は、本発明の方法を実行する機械により実行可能な命令のプログラムを有形的に具現する機械可読メモリを更に意図する。
【００６６】
本発明に関連する特許請求の範囲に定義された本発明の範囲内を逸脱することなく、様々な変更及び変形が前述の本発明の実施例に適用されてもよいことを、当業者は容易に認識する。
【図１】
2013545196.tif 000004
【図２】
2013545196.tif 000005
【図３】
2013545196.tif 000006
【国際調査報告】
2013545196.tif 000007
2013545196.tif 000008
2013545196.tif 000009