(57)【特許請求の範囲】
【請求項１】
ネットワークノードに関連付けられたユニークな識別子を特定するための方法であって、
イベントデータメッセージを受信するステップであって、前記イベントデータメッセージは、前記ネットワークノードに関連付けられたインターネットプロトコル（ＩＰ）アドレスを含むものと、
受信した前記イベントデータメッセージに含まれる前記ネットワークノードに関連付けられたインターネットプロトコル（ＩＰ）アドレスを使用して、ＩＰアドレス検索データ構造に対してクエリーを行うステップと、ここで、前記ＩＰアドレス検索データ構造は、１または複数のエレメントを具備するアレイからなり、各前記エレメントが１つのインデックスに記憶されており、各前記エレメントが前記特定のネットワークノードに関連付けられたユニークな識別子からなり、前記インデックスは前記特定のネットワークノードに関連付けられたＩＰアドレスに基づいて特定されるものであり、
前記クエリーに応じて、前記ネットワークノードに関連付けられた前記ユニークな識別子を返すステップと、
前記返されたユニークな識別子を使用して、前記ネットワークノードに関連付けられたアセットモデルを取得すること、および、前記返されたユニークな識別子を使用して、前記ネットワークノードがあるカテゴリの一員であるか否かを判定することのいずれか一方を実行するステップであって、前記アセットモデルは、前記ネットワークノードのセキュリティの脆弱性に関する情報を含むものと、
を具備する方法。
【請求項２】
前記ネットワークノードに関連付けられた前記ユニークな識別子が、基本データ型"int"(整数)の値である請求項１に記載の方法。
【請求項３】
前記ネットワークノードに関連付けられたＩＰアドレスを使用して、ＩＰアドレス検索データ構造に対してクエリーを行うステップが、前記ネットワークノードに関連付けられたＩＰアドレスに基づいてインデックスを特定することからなる請求項１に記載の方法。
【請求項４】
前記ＩＰアドレス検索データ構造が、アレイに基づく形態からテーブルに基づく形態に自動的に変化するよう構成されている請求項１に記載の方法。
【請求項５】
前記返されたユニークな識別子を使用して、前記ネットワークノードがあるカテゴリの一員であるか否かを判定することが、
それぞれがカテゴリを示す複数の先祖ノードとそれぞれがネットワークノードを示す複数の子孫ノードとの間に１または複数のリンクを含み、各前記リンクは子孫ノードが先祖ノードの一員であることを示す推移的クロージャを識別することと、
前記返されたユニークな識別子および前記カテゴリを使用して前記推移的クロージャにクエリーを行うことと、
前記ネットワークノードが前記カテゴリの一員であるか否かを示すブーリアン値を返すことと、
からなる請求項１に記載の方法。
【請求項６】
前記返されたユニークな識別子および前記カテゴリを使用して前記推移的クロージャにクエリーを行うことが、前記返されたユニークな識別子に関連付けられた子孫ノードと前記カテゴリに関連付けられた先祖ノードとの間にリンクが存在するか否かを判定することからなる請求項５に記載の方法。
【請求項７】
前記返されたユニークな識別子を使用して、前記ネットワークノードが前記カテゴリの一員であるか否かを判定することが、
前記カテゴリに関連付けられていて、複数のビットからなり、ビット値によってネットワークノードが前記カテゴリの一員であるか否かを示すビットマップを識別することと、
前記返されたユニークな識別子を使用して前記ビットマップにクエリーを行うことと、
前記ネットワークノードが前記カテゴリの一員であることを示すブーリアン値を返すことと、
からなる請求項１に記載の方法。
【請求項８】
前記返されたユニークな識別子を使用して前記ビットマップにクエリーを行うことが、
前記返されたユニークな識別子を前記ビットマップへのインデックスとして使用することによって、前記ビットマップ内のビットを識別することと、
識別された前記ビットの値を返すことと
からなる請求項７に記載の方法。
【請求項９】
ネットワークノードに関連付けられたユニークな識別子を特定するための方法であって、
イベントデータメッセージを受信するステップであって、前記イベントデータメッセージは、前記ネットワークノードに関連付けられたドメインネーム及びホストネーム並びにインターネットプロトコル（ＩＰ）アドレスを含むものと、
受信した前記イベントデータメッセージに含まれる前記ネットワークノードに関連付けられたドメインネームを使用して第１の検索テーブルにクエリーを行うステップであって、前記第１の検索テーブルが、各々が特定のネットワークノードに関連付けられたドメインネームと複数の第２の検索テーブルのうち1つの第２の検索テーブルへの参照とからなる１または複数の対を含み、前記第２の検索テーブルの各々は、各々が前記特定のネットワークノードに関連付けられたホストネームと前記特定のネットワークノードに関連付けられたユニークな識別子とからなる１または複数の対を含む前記ステップと、ここで、前記第２の検索テーブルは、１または複数のエレメントを具備するアレイからなり、各前記エレメントが１つのインデックスに記憶されており、各前記エレメントが前記特定のネットワークノードに関連付けられた前記ユニークな識別子からなり、前記インデックスは前記特定のネットワークノードに関連付けられた前記ホストネームに基づいて特定されるものであり、
受信した前記イベントデータメッセージに含まれる前記ネットワークノードに関連付けられたホストネームを使用して、前記参照に応じた前記第２の検索テーブルにクエリーを行うステップと、
前記第２の検索テーブルに対する前記クエリーに応じて、前記ネットワークノードに関連付けられた前記ユニークな識別子を返すステップと、
前記返されたユニークな識別子を使用して、前記ネットワークノードに関連付けられたアセットモデルを取得すること、および、前記返されたユニークな識別子を使用して、前記ネットワークノードがあるカテゴリの一員であるか否かを判定することのいずれか一方を実行するステップであって、前記アセットモデルは、前記ネットワークノードのセキュリティの脆弱性に関する情報を含むものと、
を具備する方法。
【請求項１０】
ネットワークノードに関連付けられたユニークな識別子を特定するためのコンピュータプログラムであって、
イベントデータメッセージを受信する手順であって、前記イベントデータメッセージは、前記ネットワークノードに関連付けられたインターネットプロトコル（ＩＰ）アドレスを含むものと、
受信した前記イベントデータメッセージに含まれる前記ネットワークノードに関連付けられたインターネットプロトコル（ＩＰ）アドレスを使用して、ＩＰアドレス検索テーブルに対してクエリーを行う手順であって、前記ＩＰアドレス検索テーブルが、各々が特定のネットワークノードに関連付けられたＩＰアドレスと該特定のネットワークノードに関連付けられたユニークな識別子とからなる１または複数の対で構成されるものと、ここで、前記ＩＰアドレス検索テーブルは、１または複数のエレメントを具備するアレイからなり、各前記エレメントが１つのインデックスに記憶されており、各前記エレメントが前記特定のネットワークノードに関連付けられたユニークな識別子からなり、前記インデックスは前記特定のネットワークノードに関連付けられたＩＰアドレスに基づいて特定されるものであり、
前記クエリーに応じて、前記ネットワークノードに関連付けられた前記ユニークな識別子を返す手順と、
前記返されたユニークな識別子を使用して、前記ネットワークノードに関連付けられたアセットモデルを取得すること、および、前記返されたユニークな識別子を使用して、前記ネットワークノードがあるカテゴリの一員であるか否かを判定することのいずれか一方を実行する手順であって、前記アセットモデルは、前記ネットワークノードのセキュリティの脆弱性に関する情報を含むものと、
をコンピュータに実行させるためのコンピュータプログラム。
【請求項１１】
ネットワークノードに関連付けられたユニークな識別子を特定するための装置であって、
イベントデータメッセージを受信する手段であって、前記イベントデータメッセージは、前記ネットワークノードに関連付けられたインターネットプロトコル（ＩＰ）アドレスを含むものと、
受信した前記イベントデータメッセージに含まれる前記ネットワークノードに関連付けられたインターネットプロトコル（ＩＰ）アドレスを使用して、ＩＰアドレス検索テーブルに対してクエリーを行うよう構成されたクエリーモジュールであって、前記ＩＰアドレス検索テーブルが、各々が特定のネットワークノードに関連付けられたＩＰアドレスと該特定のネットワークノードに関連付けられたユニークな識別子とからなる１または複数の対で構成されるものと、ここで、前記ＩＰアドレス検索テーブルは、１または複数のエレメントを具備するアレイからなり、各前記エレメントが１つのインデックスに記憶されており、各前記エレメントが前記特定のネットワークノードに関連付けられたユニークな識別子からなり、前記インデックスは前記特定のネットワークノードに関連付けられたＩＰアドレスに基づいて特定されるものであり、
前記クエリーに応じて、前記ネットワークノードに関連付けられた前記ユニークな識別子を返すよう構成されたリターンモジュールと、
前記返されたユニークな識別子を使用して、前記ネットワークノードに関連付けられたアセットモデルを取得するよう構成されたアセットモデルモジュール、および、前記返されたユニークな識別子を使用して、前記ネットワークノードがあるカテゴリの一員であるか否かを判定するよう構成されたカテゴリモジュールのいずれか一方と、
を具備し、前記アセットモデルは、前記ネットワークノードのセキュリティの脆弱性に関する情報を含むことを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の説明
本出願は、2006年10月25日に出願された米国特許仮出願No.06/862,930および2007年10月24日に出願された米国特許出願No.11/923,513(これらは、その出典を記載することによって本明細書の一部とする)に基づく優先権を主張するものである。
【０００２】
本発明は、セキュリティ情報/イベントマネージメント(SIMまたはSIEM)に関し、特に、モデルデータがセキュリティ情報/イベントと共に使用可能なよう、ネットワークノード(例えば、イベントの対象とされるノード)のモデルにアクセスする技術に関する。
【背景技術】
【０００３】
セキュリティ情報/イベントマネージメント(SIMまたはSIEM)の分野は、一般的に、1)  ネットワーク装置のネットワーク活動および/または動作を反映したデータをネットワークおよび前記ネットワーク装置から収集すること、および2)  セキュリティ向上のために前記データを分析することに関係する。例えば、前記データを分析することによって、前記ネットワークまたはネットワーク装置に対するアタック(攻撃)を見つけ出し、どのユーザまたはマシーンに責任があるのかを判定することできる。アタックが進行中である場合、該アタックを阻止し、該アタックによる損害を軽減するための対応策を講じることができる。収集されるデータは、通常、(イベント、警報、警告等の)メッセージまたはログファイルにおける記入項目(エントリ)に由来するものである。
【０００４】
通常、前記メッセージまたは入力は、ネットワーク活動に関与する1つまたは複数のコンピュータネットワーク装置(“ネットワークノード”)を示す。例えば、前記メッセージまたはエントリは、前記活動の対象であるノード(“ターゲットノード”)および/または前記活動の発生源であるノード(“ソースノード”)を示すことがある。前記収集されたデータのみを使用してアタックを見つけ出して詳細に調べることが可能であるが、示されたネットワークノードについての情報などの追加的な情報を有することはしばしば有用である。
【０００５】
“アセットモデル”と称されるネットワークノードについての情報は、例えば、該ノードのインターネットプロトコル(ＩＰ)アドレスと、該ノードのホストネームと、該ノードが属するネットワークと、企業内における該ノードの役割、該ノードにおけるオープンのポートと、該ノードにインストールされたソフトウエア(例えば、オペレーティングシステムおよびアプリケーション)、ならびに、該ノードの既知の脆弱性または弱さ(“露出した脆弱性”)を含むことができる。
【０００６】
アセットモデルは、セキュリティ分析時にアクセスされる。セキュリティ分析は、バッチモードまたはリアルタイムモードで行うことができる。バッチモードにおいては、セキュリティ情報/イベントが受信されたときに記憶され、その後、該記憶されたセキュリティ情報/イベントが分析される。リアルタイムモードにおいて、セキュリティ情報/イベントが受信されたときに、該セキュリティ情報/イベントがリアルタイムまたは略リアルタイムに分析される。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
セキュリティ分析がリアルタイム(または略リアルタイム)に行われるためには、前記アセットモデルはリアルタイム(または略リアルタイム)にアクセスされなければならない。毎分数千のイベントが発生され、各イベントが1または複数のノードを示すので、これは大変難しい。5,000イベント/秒のイベント発生率で1イベントあたり4つのノードの場合、20,000ノード/秒となる。
【０００８】
従って、従来より必要とされているのは、アセットモデルがセキュリティ情報/イベントと共にリアルタイムに使用できるよう、効率的にアセットモデルにアクセスする方法である。
【課題を解決するための手段】
【０００９】
マネージャは、1または複数のイベントを受信し、アタックを検出するために該イベントを分析する。イベントは、“ネットワークノード”と呼ばれるコンピュータネットワーク装置を関与させる活動を記述する。イベントは、1または複数のノード(例えば、活動の対象であるノード(“ターゲットノード”)および/または前記活動の発生源であるノード(“ソースノード”)への参照(“ノード参照”という)を含む。ノード参照は、インターネットプロトコル(ＩＰ)アドレス、ネットワークゾーン、ホストネーム、媒体アクセス制御(MAC)アドレスおよびアセット識別子(アセットID)等の多数のフィールドを含む。
【００１０】
前記アセットIDフィールドは、ネットワークノードに割り当てられたユニークな(唯一な)識別子(ID)を格納するものである。イベントが前記マネージャによって最初に受け取られるとき、ノード参照のアセットIDフィールドは空である。その後、前記ノードの“アセットモデル”に対応する識別子が前記アセットIDフィールドに格納される。前記IDは、該IDに関連付けられたネットワークノードに対応するアセットモデルを取得するために使用され、および、前記ネットワークノードが特定のカテゴリ(後述)の一員であるか否かを判定するために使用される。前記マネージャは、セキュリティ分析を実行するために、ネットワークノードのアセットモデルにアクセスする。
【００１１】
アセットモデルは、ネットワークノードについての1組の情報である。この情報は、例えば、該ノードのＩＰアドレス、該ノードのホストネーム、該ノードが属するネットワーク、企業内における該ノードの役割、該ノードにおけるオープンポート、該ノードにインストールされたソフトウエア(例えば、オペレーティングシステムおよびアプリケーション)、および、該ノードの“露出した脆弱性”と呼ばれる既知の脆弱性または弱さのリストを含む。
【００１２】
前記マネージャは、識別モジュールとカテゴリモジュールとを含む。前記識別モジュールは、ネットワークノードに割り当てられたユニークな識別子に関連する機能を提供し、検索モジュールとマネージメントモジュールとを含む。前記検索モジュールは、ネットワークノードのＩＰアドレス、ホストネーム、ネットワークゾーンおよび/または媒体アクセス制御(MAC)アドレス等の様々な特性に基づいて該ネットワークノードのIDを特定する。これらの情報は、1または複数の検索データ構造(検索テーブル)に対するキーとして使用される。検索が成功すると(すなわち、前記キーに関連付けられた値が見つかると)、(該ノードのアセットモデルである)前記値が返される。前記マネージメントモジュールは、どのIDがネットワークノードに割り当てられており、どのIDがネットワークノードに割り当てられていないのかを追跡する。
【００１３】
前記カテゴリモジュールは、カテゴリに関連した機能を提供し、検索モジュールとマネージメントモジュールとを含む。前記検索モジュールは、特定のネットワークノード(アセット)が特定のカテゴリの一員(特定のカテゴリ内)であるか否かを判定する。この判定を行うために、前記カテゴリモジュールはカテゴリデータを使用する。前記カテゴリデータは、推移的クロージャ(TC)を使用して、アセットモデルに付加され得るカテゴリ(特性)の階層的およびダイナミックなスペースをモデル化する。前記推移的クロージャは、1組のビットマップとして格納され、ここで、ビットマップは、特定のアセットカテゴリまたはグループに対応している。ビットマップにおける0/1ビットは、特定のセットカテゴリ/グループとアセットとの間のリンクが存在しているか否かを示す。アセットのユニークなIDは、推移的クロージャビットマップへのインデックスとして機能する。前記マネージメントモジュールは、必要に応じてカテゴリデータをアップデートする。
【図面の簡単な説明】
【００１４】
【図１】一実施の形態に係るセキュリティ情報/イベント管理システムを有する環境を示す高レベル図。
【００１５】
【図２】一実施の形態に係るセキュリティ情報/イベントマネージメントシステムのマネージャとして機能するコンピュータの高レベル図。
【００１６】
【図３】一実施の形態に係るセキュリティ情報/イベントマネージメントシステム10のマネージャ14内のモジュールを示す高レベル図。
【００１７】
【図４】一実施の形態に係るネットワークノードに関連付けられた識別子を特定する方法を示すフローチャート。
【００１８】
【図５】ＩＰアドレス検索テーブルのデータ構造の例を示す図。
【００１９】
【図６】ホストネームによる検索を実行するために使用される2つの検索テーブルを示す図。
【００２０】
【図７】MACアドレス検索テーブルのデータ構造の例を示す図。
【００２１】
この図は実施の形態を例示するものであり、以下の説明から、ここで例示する構成および方法の他の実施の形態が本発明の原理から逸脱することなく採用されてよいことが容易に当業者に理解されよう。
【発明を実施するための形態】
【００２２】
ここで説明するのは、異種のソースからセキュリティイベントを捕捉(キャプチャ)し、該イベントを共通のスキーマに正規化し、メタイベントを作成するためのルールを使用して該正規化されたイベントを相互相関させるためのコンピュータに基づくシステムである。該システム(その一実施の形態はコンピュータソフトウエアとして実現される)は、多数のセキュリティ装置から疑わしきネットワーク活動の集約、相関、検出および調査追跡を可能にする。また、本システムは、応答管理、アドホック(特別目的の)クエリー分解能、報告および科学的分析のための再生、ならびに、ネットワークにおける脅威および行為、活動のグラフィカルな視覚化をサポートする。
【００２３】
本システムを様々な図示例を参照して以下に説明するが、これらの例は、本発明のより広い精神および範囲を制限するように解釈されるべきではない。例えば、ここで示す例は分散されたエージエント、マネージャおよびコンソールを説明するが、これらは本発明の一実施の形態にすぎない。本発明の概念および範囲は、より広いものであり、いかなるコンピュータに基づくまたはネットワークに基づくシステムにも及ぶものである。さらに、前記システムの構成要素に対して授受されることができるメッセージの例、および、前記システムの構成要素に使用されることができるデータスキーマの例が、本発明の詳細な説明のさらに説明するためにここに記載されているが、これらは包括的なものではない。
【００２４】
以下の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータについての処理のアルゴリズムおよび記号表現についてなされている。これらのアルゴリズムおよび記号表現は、コンピュータサイエンスの当業者がかれらの作業内容を他の当業者に最も効果的に伝えるために使用される手段である。ここでは、また、一般的には、アルゴリズムとは、所望の結果に至る一貫したシーケンスである。ステップとは、物理的数量の物理的操作を必要とする工程である。必ずしもそうではないが、通常、これらの数量は、記憶され、伝送され、組合せられ、比較されおよびその他の方法で操作されることが可能な電気的または磁気的な信号の形態をとる。これらの信号をビット、数値、文字、用語、番号等として言及することは、主に一般的な用法上の理由で、折にふれて便利であることが知られている。しかしながら、これらの用語およびこれらに類似した用語は、適当な物理的数量に対応付けられるものであり、これらの数量に適用される単に便利なラベルである。特にそうでないと明記する場合を除き、本発明の説明全体を通じて、“処理”、“計算”、“算出”、“判定”、“表示”等の用語の使用は、コンピュータシステムのレジスタおよびメモリ内において物理的(電子的)数量として表現されているデータを操作して、コンピュータシステムのメモリもしくはレジスタ、または、その他の情報記憶装置、伝送装置もしくは表示装置内における同様に物理的数量として表現されるその他のデータに変換するコンピュータシステムまたはこれと同様な電子計算装置の動作および処理を意味する。
【００２５】
上述の如く、本発明の一実施の形態はコンピュータによって読み取り可能な命令であるコンピュータソフトウエアとして例示的に説明されており、該コンピュータソフトウエアは、1つまたは複数のコンピュータプロセッサ/システムによって実行される場合、該プロセッサ/システムに対して指定された動作を行うよう指示する。このようなコンピュータソフトウエアは、例えば、ハードドライブ、CD-ROM、DVD-ROM、読み取り専用メモリ、読み書き可能メモリ等の1つまたは複数のコンピュータによって読み取り可能な媒体に常駐されてよい。このようなソフトウエアは、1つまたは複数のコンピュータによって読み取り可能な媒体に分散されてよく、1つまたは複数のコンピュータネットワーク(例えば、インターネット)を介してダウンロードできるようにされてもよい。その形態に関わらず、ここで説明されているコンピュータプログラミング、レンダリングおよびプロセシング技術は、本発明の特徴を実現するために使用可能な各種プログラミング、レンダリングおよびプロセシングの単なる一例である。これらの例は本発明の範囲を制限するものではなく、以下の説明に続く特許請求の範囲を参照することにより最もよく理解される。
システムアーキテクチャ
【００２６】
図1は、一実施の形態に係るセキュリティ情報/イベントマネージメントシステム10を有する環境を示す高レベル図である。該システム10は、エージェント12と、1または複数のマネージャ14と、1または複数のコンソール16(これはブラウザに基づくバージョンを含む)。ある実施の形態において、エージェント、マネージャおよび/またはコンソールは、1つのプラットフォームに組み合わされ、または、(図示のように)2つ、3つもしくは4つ以上のプラットフォームに分散されてよい。この多段アーキテクチャの使用は、コンピュータネットワークまたはシステムが大きくなるのに伴う拡張可能性をサポートする。
【００２７】
エージェント12は、各種のネットワークセキュリティ装置および/またはアプリケーションからの効率的な、リアルタイム(または略リアルタイム)のローカルイベントデータキャプチャおよびフィルタリングを実現するソフトウエアプログラムである。セキュリティイベントの主要ソースは、ファイアウォール、侵入検出システムおよびオペレーティングシステムログを含む一般的なネットワークエレメントである。エージェント12は、イベントログまたはメッセージを発生する任意のソースからイベントを収集し、ネットワーク内の分岐点におけるネイティブ装置で、および/または、簡単なネットワーク管理プロトコル(SNMP)トラップを介して動作可能である。
【００２８】
エージェント12は、マニュアルおよび自動化された処理の両方によって、ならびに、関連した設定ファイルを介して設定可能である。各エージェント12は、正規化要素、時間補正要素、集約要素、バッチ処理要素、レゾルバ要素、移送要素、および/または、追加要素を含む1または複数のソフトウエアモジュールを含んでいてよい。これらの要素は、設定ファイル内の適当なコマンドを介して作動および/または作動停止させられる。
【００２９】
マネージャ14は、ルールエンジン18および集中型のイベントデータベース20を使用して、前記エージェントから受け取ったイベントをさらに統合整理し、フィルタし、相互相関させる。前記マネージャ14の1つの役割は、リアルタイムのおよび歴史的なイベントデータをキャプチャして格納することによって、(データベースマネージャ22を介して)セキュリティ活動の完全な企業規模のイメージを構成することである。前記マネージャ14は、さらに、集中型の管理、(１または複数の通知アプリケーション24を介した)通知、報告、および、知識ベース28およびケースマネージメントワークフローを提供する。前記マネージャ14は任意のコンピュータハードウエアプラットフォームで展開されてよく、一実施の形態は、前記イベントデータ格納要素を実現するためにOracle(商標)データベースのようなリレーショナルデータベースマネージメントを使用する。前記マネージャ14と前記エージェント12との間の通信は、(例えば、前記マネージャ14がプラットフォームを主催するエージェント12にコマンドを送信するのを可能にするために)双方向であってよく、暗号化されてもよい。ある設定において、前記マネージャ14は、多数のエージェント12のためのデータコンセントレーター(concentrator)として機能してよく、(例えば、企業の本社で展開される)他のマネージャに情報を送る。
【００３０】
前記マネージャ14は1または複数のエージェントマネージャ26を含み、該エージェントマネージャ26は前記エージェント12によって送信されたイベントデータメッセージを受信する。前記エージェント12との双方向通信が実行される場合、これらのエージェントマネージャ26は、前記エージェント12にメッセージを送信するために使用されてよい。エージェントとマネージャとの間の通信に暗号化が採用される場合(これは任意)、前記エージェントマネージャ26は、前記エージェント12から受信されたメッセージを解読したり、前記エージェント12に送信されるメッセージを暗号化する。
【００３１】
コンソール16は、セキュリティ専門家がイベントモニタリング、ルール作成、事件調査および報告等の毎日の管理およびオペレーションタスクを実行することを可能するコンピュータ(例えば、ワークステーション)に基づくアプリケーションである。アクセス制御リストは、多数のセキュリティ専門家の各々がそれぞれの責務に適当な表示、相関ルール、警戒、報告および知識ベースを有する同一のシステムおよびイベントデータベースを使用することを可能にする。1つのマネージャ14は、多数のコンソール16をサポートすることができる。
【００３２】
ある実施の形態において、セキュリティイベント、知識ベースの格納項目、報告、通知および事例に対するアクセスを提供するために、前記コンソール16のブラウザに基づくバージョンが使用されてよい。すなわち、コンソール16の機能のうちの一部または全てを提供するために、前記マネージャ14は、(コンソール16の代わりをする)パーソナルまたは携帯コンピュータ上で主催されるウェブブラウザを介してアクセス可能なウエブサーバを含んでいてよい。ブラウザによるアクセスは、前記コンソール16から離れたセキュリティ専門家およびパートタイムユーザにとって特に有用である。
【００３３】
上述のアーキテクチャによって、本システムは、集中化されたまたは集中化されていない環境をサポートすることができる。組織体がシステム10の1つのインスタンスを実行し、アクセス制御リストを使用してユーザをパーティション区分することを欲するので、このようなサポートは有用である。代案として、組織体は、多数のグループの各々について異なるシステム10を展開し、その結果を“マスタ”レベルで統合するようにしてよい。このような展開は、また、地理的に分散したピアグループが、主要なミスに対する責任を標準的な業務時間内で現在働いているグループの責任とすることによって共働する“太陽追尾(follow the sun)”構成を実現できる。本システム10は、また、複数の業務部門が個別に働き、集中化されたマネージメント機能へのロールアップをサポートする企業内階層形態で展開されることができる。
【００３４】
上述のようなセキュリティ情報/イベントマネージメントシステム10については、2002年12月2日に出願された米国特出願No.10/308,415に詳細に説明されており、該米国特出願No.10/308,415は、その出典を記載することによって本明細書の一部とする。
アセットモデルについての序論
【００３５】
マネージャ14は、1または複数のイベントを受信し、アタックを検出するために該イベントを分析する。イベントは、“ネットワークノード”と呼ばれるコンピュータネットワーク装置を関与させる活動を記述する。典型的なネットワークノードは、ラップトップまたはデスクトップコンピュータと、サーバ(例えば、電子メールサーバ、アクセス制御サーバ、ドメインネームシステム(DNS)サーバ等)と、フィアウォール、ルーティング装置、侵入検出システムと、仮想プライベートネットワーク(VPN)システムと、プリンタとを備えている。
【００３６】
一実施の形態において、イベントは、1または複数のノード(活動の対象であるノード(“ターゲットノード”)および/または前記活動の発生源であるノード(“ソースノード”))を示す。この実施の形態において、前記イベントは、各ノードへの参照(“ノード参照”という)を含む。ノード参照は、インターネットプロトコル(ＩＰ)アドレス、ネットワークゾーン、ホストネーム、媒体アクセス制御(MAC)アドレスおよびアセット識別子(アセットID)等の多数のフィールドを含む。(ネットワークゾーンはネットワークのセグメントである。ラベルは、ネットワークゾーンを識別し、プライベートアドレススペース同志を識別するために使用される)。ネットワークノードは、ＩＰアドレスを使用してアドレス指定される。この状況下において、ＩＰアドレスは、個別のネットワークノードとして取り扱われる。従って、1つの装置は、多数のネットワークノードを“収容”する。
【００３７】
前記アセットIDフィールドは、ネットワークノードに割り当てられたユニークな(唯一な)識別子(ID)を格納するものである。イベントが前記マネージャによって最初に受け取られるとき、ノード参照のアセットIDフィールドは空である。その後、前記ノードの“アセットモデル”に対応する識別子がアセットIDフィールドに格納される。一実施の形態において、前記IDは、該IDに関連付けられたネットワークノードに対応するアセットモデルを取得するために使用される。他の実施の形態において、前記IDは、前記ネットワークノードが特定のカテゴリ(後述)の一員であるか否かを判定するために使用される。アセットモデルは、ネットワークノードについての1組の情報である。この情報は、例えば、該ノードのＩＰアドレス、該ノードのホストネーム、該ノードが属するネットワーク、企業内における該ノードの役割、該ノードにおけるオープンポート、および、該ノードにインストールされたソフトウエア(例えば、オペレーティングシステムおよびアプリケーション)を含むことができる。一実施の形態において、アセットモデルは、該ノードの“露出した脆弱性”と呼ばれる既知の脆弱性または弱さのリストを含む。脆弱性は、一般的に、該ノードの製造業者によって意図されたもの以外の影響を生じるよう利用可能なノードの設定または条件として定義される。
【００３８】
前記マネージャ14は、セキュリティ分析を実行するためにネットワークノードのアセットモデルにアクセスする。例えば、イベントは、1または複数の“利用される脆弱性”と呼ばれる既知の脆弱性を利用する試みを記述することができる。前記マネージャ14は、(該ノードのアセットモデルにアクセスすることによって)ターゲットノードの露出した脆弱性を特定し、該脆弱性を前記利用される脆弱性と比較する。脆弱性が前記露出した脆弱性および利用される脆弱性の両方として現れる場合、脅威が検出される。脅威検出については、2007年8月21日に付与された米国特許No.7,620,844に詳細に説明されており、該米国特許は、その出典を記載することによって本明細書の一部とする。
【００３９】
他の例として、その機密性許容範囲に従うノードのカテゴリ化を要求する連邦情報処理標準(FIPS)内の1つの基準を説明する。イベントは、特定のノード上で機密性を無効にする行為、活動を記述することができる。前記マネージャ14は、このイベントに気づき、(該ノードのアセットモデルにアクセスすることによって)該ノードについて機密性がどの程度重大なのかを判定できる。機密性が重大である場合、その違反を追跡するためのトラブルチケットが作成可能である。
【００４０】
ネットワークノードは、その特性を記述するためにカテゴリ化され得る。1つのカテゴリは“グループ”として実現される。例えば、特定のノードがWindows（登録商標）2003 Serverオペレーテイングシステムを実行していることを明記するために、該ノードのアセットは、“/AllCategories/OperatingSystems/Microsoft/Windows/2003Server”というグループに入れられる。カテゴリは階層的であってよい。“2003Server”は“Windows（登録商標）”というカテゴリの子供であり、“Windows（登録商標）”は“Microsoft（登録商標）” というカテゴリの子供であり、等々である。階層的なカテゴリのその他の例は、グラフィカルな分類(例えば、大陸/国/州/地域...である。
【００４１】
あるノード参照およびカテゴリを仮定した場合、前記マネージャ14は、当該ノードが前記カテゴリの一員(すなわち、該カテゴリ内)であるか否かを判定することができる。アセットグループも、ネットワークゾーンおよびネットワークゾーングループと同様にカテゴリ分類され得る。
【００４２】
従って、セキュリティ分析は、アセットモデルを識別してこれにアクセスし、カテゴリの一員であるか否かをチェック(カテゴリメンバーシップチェック)することを含む。セキュリティ分析がリアルタイム(または略リアルタイム)に実行されるためには、モデル識別およびアクセスならびにカテゴリチェックも、リアルタイム(または略リアルタイム)に実行されなければならない。毎分数千のイベントが発生され、各イベントが1または複数のノードを示すので、これは大変難しい。5,000イベント/秒のイベント発生率で1イベントあたり4つのノードの場合、20,000ノード/秒となる。各ノード参照ごとに、そのアセットモデルが識別され、アクセスされ、いくつかのカテゴリメンバーシップチェックが実行される。
マネージャアーキテクチャ
【００４３】
図2は、一実施の形態に係るセキュリティ情報/イベントマネージメントシステム10のマネージャ14として機能するコンピュータ200の高レベル図である。図示のように、少なくとも1つのプロセッサ202がバス204に接続されている。さらに、前記バス204には、メモリ206、記憶装置208、キーボード210、グラフィックスアダプタ212、ポインティング装置214およびネットワークアダプタ216が接続されている。一実施の形態において、前記バス204の機能は、相互接続用のチップセットによって実現される。表示器218は、前記グラフィックスアダプタ212に接続されている。
【００４４】
前記憶装置208は、ハードドライブ、コンパクトディスク読み取り専用メモリ(CD-ROM)、DVDまたはソリッドステートメモリデバイスなどの、データを保持可能な任意の装置である。前記メモリ206は、前記プロセッサ202によって使用される命令およびデータを保持する。前記ポインティング装置214は、マウス、トラックボールまたはその他のタイプのポインティング装置であり、前記キーボード210と共に使用されて前記コンピュータ200にデータを入力する。前記グラフィックスアダプタ212は、前記表示器218に画像およびその他の情報を表示する。前記ネットワークアダプタ216は、前記コンピュータ200をローカルまたは広域ネットワークに接続する。
【００４５】
当該技術分野で知られているように、コンピュータ200は、図2に示したものとは異なるおよび/またはそれ以外の構成要素を有することができる。さらに、前記コンピュータ200は、図2に示した構成要素のうちのあるものを欠いていてもよい。例えば、マネージャ14として機能するコンピュータ200は、キーボード210、ポインティング装置214、グラフィックスアダプタ212、および/または表示器218を欠いていてよい。さらに、前記憶装置208は、ローカルなおよび/または前記コンピュータ200から離れたもの(例えば、記憶領域ネットワーク(SAN)内に含まれるもの)であってよい。
【００４６】
ソフトウエアエージェント12(例えば、カルフォルニア州CupertinoのArcSight, Inc.から入手可能なSmartConnector)は、センサから、ネットワークノードに関するメッセージを受け取る。その後、前記エージェント12は、前記メッセージを処理してイベントを作成する。一実施の形態において、イベントは1または複数のフィールドを含むデータ構造を示し、各前記フィールドは値を含むことができる。フィールドの値は、前記センサから受信したメッセージに基づいて特定される。前記エージェントは、格納および分析のために、前記イベントをマネージャ14(例えば、ArcSight, Inc.から入手可能なEnterprise manager)に送る。
【００４７】
前記マネージャ14は、Even Asset resolver(EAR)と呼ばれるモジュール(図示せず)を含む。イベントはノード参照を有する。前記EARモジュールは、このノード参照を対応するアセットモデルに対応付け、前記ノード参照にユニークな識別子(ID)によるタグを付ける。例えば、前記EARモジュールは、それまで空であつたノード参照アセットフィールドに前記IDを格納することによって前記イベントを修正する。一実施の形態において、イベントは、ネットワークトラフィックのソース、ネットワークトラフィックのデスティネーション、エージェントのホスト、イベントを報告したセンサのホストである4つのノードへの参照を含む。各ノード参照ごとに、前記EARモジュールは、該ノード参照を対応するアセットモデルに対応付け、前記ノード参照にユニークな識別子(ID)によるタグを付ける。
【００４８】
図3は、一実施の形態に係るセキュリティ情報/イベントマネージメントシステム10のマネージャ14内のモジュールを示す高レベル図である。図3に示すように、マネージャ14の一実施の形態は、識別モジュール300と、カテゴリモジュール310とを含む。他の実施の形態は、図に示したものとは異なるおよび/またはそれ以外のモジュールを有することができる。例えば、前記マネージャ14は図1に示したモジュールを含んでいてよいが、図3では明確さのためにこれらのモジュールが省略されている。さらに、上記機能は、ここで記載したものとは異なる態様で前記モジュール間で分散されることができる。
【００４９】
前記識別モジュール300は、ネットワークノードに割り当てられたユニークな識別子に関連する機能を提供する。一実施の形態において、IDは整数に基づく値(例えば、基本データ型“int”で表現された値)である。一実施の形態において、IDはローカルに(局所的に)ユニークである。例えば、IDは、特定のマネージャ14内でユニークであるが、必ずしも多数のマネージャ中でユニークではない。他の実施の形態において、IDは、世界中でユニークな識別子(UUID)またはグローバルにユニークな識別子(GUID)である。この実施の形態において、IDは“グローバル”にユニークな識別子(GUID)である。例えば、IDは多数のマネージャ中でユニークである。UUIDまたはGUIDを格納するために必要なメモリ量は、少なくとも16バイトである。整数に基づく値を格納するにはより少ないメモリ量でよい。100万個以上のIDが同時にメモリに格納される必要があることもあるので、このメモリ差は重要である。
【００５０】
一実施の形態において、前記IDは、該IDに関連付けられたネットワークノードに対応するアセットモデルを得るために使用される。例えば、アセットマネージメントモジュール(図示せず)は、アセットモデル情報を維持し、IDを使用してクエリーされたときにアセットモデルを返す。アセットモデルは、例えば、 (例えば、Java（登録商標）のようなオブジェクト指向プログラミング言語)によるオブジェクトデータ構造である。他の実施の形態において、前記IDは、前記ネットワークノードが特定のカテゴリの一員であるか否かを判定するために使用される。
【００５１】
図示した実施の形態において、前記識別モジュール300は、検索モジュール320と、マネージメントモジュール330と、ギャップテーブル340と、1または複数の検索テーブル350とを含む。前記検索モジュール320は、ネットワークノードの様々な特性に基づいて該ネットワークノードのIDを特定する。上述のごとく、これらの特性は、当該イベント内のノード参照に存在する。特定のネットワークノードのIDは、該ノードのＩＰアドレス、ホストネーム、ネットワークゾーンおよび/または媒体アクセス制御(MAC)アドレスに基づいて特定される。一実施の形態において、これらの情報は、1または複数の検索データ構造(後述の検索テーブル350)に対するキーとして使用される。検索が成功すると(すなわち、前記キーに関連付けられた値が見つかると)、(該ノードのアセットモデルである)前記値が返される。
【００５２】
図4は、一実施の形態に係るネットワークノードに関連付けられた識別子を特定する方法を示すフローチャートである。該方法400が開始される前に、ネットワークノードについての情報が受信される。この情報は、当該ノードのＩＰアドレス、ネットワークゾーン、ホストネームおよびMACアドレスのうちの1または複数を含む。
【００５３】
前記ノードのMACアドレスを使用して検索が試みられる410。この結果成功したマッチがあると、前記IDが返される420。前記MACアドレスによる検索の結果成功したマッチが無いと、前記ノードのＩＰアドレスおよびネットワークゾーンを使用して検索が試みられる430。この結果成功したマッチがあると、前記IDが返される420。前記ＩＰアドレスによる検索の結果成功したマッチが無いと、前記ノードのホストネームおよびネットワークゾーンを使用して検索が試みられる440。この結果成功したマッチがあると、前記IDが返される420。前記ホストネームによる検索の結果成功したマッチが無いと、前記ノードのネットワークゾーン内において前記ノードのＩＰアドレスをカバーするアセット範囲を使用して検索が試みられる。この結果成功したマッチがあると、前記IDが返される420。一実施の形態において、前記検索(MACアドレスによる検索、ＩＰアドレスによる検索、ホストネームによる検索およびアセット範囲による検索)が試みられる順序は、設定により可変である。
【００５４】
前記検索テーブル350は、前記ネットワークノードの様々な特性に基づいて該ネットワークノードのIDを特定するために、前記検索モジュール320によって使用される。一実施の形態において、ＩＰアドレス/ネットワークゾーン検索テーブル、ホストネーム/ネットワークゾーン検索テーブル、MACアドレス検索テーブルおよびアセット範囲検索テーブルである4種類の検索テーブル350がある。前記検索テーブルの各々には、上述のアセットマネージメントによってデータの格納がなされる。
ＩＰアドレス/ネットワークゾーン検索テーブル
【００５５】
一実施の形態において、ＩＰアドレス検索テーブルは、基本データ型“int”(整数)のキーおよび値を使用する。検索を実行するために使用されるキーは、ＩＰアドレスを示す32ビットの整数である。検索によって返される値は、対応するアセットモデルの整数IDである。ＩＰアドレスはネットワークゾーン内においてのみユニークなアドレスであるので、各ネットワークゾーンは、それ自身のＩＰ検索テーブルを有する。
【００５６】
一実施の形態において、前記検索テーブルは、低メモリ使用量および/または高速度を実現するためにカスタマイズされ、最適化される。このように最適化されるテーブルは、ハッシュマップまたはアレイとすることができる。
【００５７】
図5は、ＩＰアドレス検索テーブルのデータ構造の例を示す図である。ここに図示されたデータ構造は、オープンアドレス式ハッシュマップ500および直接アクセスアレイ510を含む。オープンアドレス式ハッシュマップの伝統的な実施形態においては、キーを格納するアレイ、値を格納するアレイ、および、キーと値との対が有効なものか否かを示すアレイからなる3つのアレイが使用される。ここでは、キー(ＩＰアドレス)および値(ID)が、一緒に1つの整数アレイ500に格納される。図示した実施の形態においては、より効率的なキャッシュの局所性を実現するために、キーおよび該キーに関連付けられた値は、前記アレイにおいて互いに近い位置に(例えば、隣り合って)配される。換言すると、オープンアドレス式ハッシュマップは、キーアレイの値と値アレイの値とをインターリーブすることによって、1つのアレイを使用して実現される。1つのアレイを使用したオープンアドレス式ハッシュマップの実現は、当業者に知られており、
http://en.wikibooks.org/wiki/Data_Structure/Hash_TablesにおけるData Structures/Hash Tables Wikibookに記載されている。
【００５８】
ネットワークゾーン内において、あるＩＰアドレスは有効ではないかもしれない。一実施の形態において、無効なアドレスは、対応する値(ここではID)が空であることを示すために検索データ構造に使用される。
【００５９】
代案として、各値(ここではID)がアレイの1つのエレメントとして格納される直接アクセスアレイ510が使用されてもよい。前記アレイ内における前記エレメントのインデックスは、前記キー(ここではＩＰアドレス)に基づいて特定される。一実施の形態において、インデックスは、特定のアドレス範囲内におけるＩＰアドレスのオフセットに等しい。例えば、192.168.0.100から192.168.0.200までに及ぶＩＰアドレスを含むネットワークゾーンについて説明する。ＩＰアドレス192.168.0.150は、前記範囲の下端からのそのオフセットが50であるので、50に等しいインデックスを有することになる。従って、そのIDはarray[50]に格納される。ここで、arrayはアレイの名前であり、50は前記アレイへのインデックスである。このようにして、キーを格納しなくてすむ。その代わりに、キーはインデックスに変換され、その後、前記アレイの特定のエレメントにアクセスするために使用される。
【００６０】
その他のネットワークゾーンおよびそのＩＰアドレス範囲(例えば、192.168.0.0から192.168.0.255)について説明する。前記範囲内のＩＰアドレスに(実際そうであるべきように)密にデータが格納されている場合、直接アレイが使用される。ＩＰアドレスが明確に検索テーブルに格納されなくてもよいので、これは、メモリを節約しながらより速い検索を実現する。
【００６１】
ネットワークゾーン内においてＩＰアドレスにまばらにデータが格納されている場合、直接アレイ検索を使用することは大幅なメモリオーバーヘッドを有することになるので、ハッシュマップが使用される。一実施の形態において、前記ＩＰアドレス検索テーブルに使用される内部データ構造の種類は、前記ネットワークゾーンに関連付けられたＩＰアドレス内におけるＩＰアドレスの使用量(例えば、データ格納密度)に基づく。前記データ構造は、必要に応じて(例えば、ＩＰアドレスデータ格納密度が変化した場合)アレイ検索510とハッシュ検索500との間で切り替え可能である。
ホストネーム/ネットワークゾーン検索
【００６２】
ＩＰアドレスはネットワークゾーン内においてのみユニークなアドレスであるので、各ネットワークゾーンは、それ自身のＩＰ検索テーブルを有する。一実施の形態において、前記検索テーブルは、低メモリ使用量および/または高速度を実現するためにカスタマイズされ、最適化される。
【００６３】
一実施の形態において、ホストネームによる検索は、2つの検索テーブルを使用して実行される。各検索テーブルは、ハッシュマップまたはアレイとして実現され得る。図6は、ホストネームによる検索を実行するために使用される2つの検索テーブルを示す。図示を簡単にするために、前記検索テーブルはロー/コラムフォーマツトで示されており、各ローはキー/値対を示す。
【００６４】
ホストネームは、マシーンネームおよびドメインネームである2つの部分に分割される。例えば、ホストネーム“test.arcsight.com”は、“test”(マシーンネーム)および“arcsight.com”(ドメインネーム)に分割される。第1の検索テーブル600は、基本データ型“string”のキーおよび基本データ型“int”(整数)の値を使用する。検索を実行するために使用されるキーは、ドメインネームを示す文字列(“DN1”として示されている)である。検索によって返される値は、前記ドメインネームに関連付けられた第2のテーブル610への整数参照(“Ref1”として示されている)である。これは、同一のドメインネームの多数のコピーを格納することによりメモリスペースを無駄使いするのを回避する。
【００６５】
第2の検索テーブル610は、基本データ型“int”(整数)のキーおよび値を使用する。検索を実行するために使用されるキーは、マシーンネームおよびドメインネームを示す整数(“MN1/DN1”として示されている)である。検索によって返される値は、対応するアセットモデルの整数ID(“ID1”として示されている)である(実施の一例については後述)。
【００６６】
一実施の形態において、前記第2の検索テーブル610のためのキーは、マシーンネームの整数ハッシュおよび(例えば、ドメインネームテーブルに格納されている)ドメインネームの整数参照に基づく。一実施の形態において、マシーンネームは、コンパクトな格納のために、UTF-8(8ビットのUCS/ユニコード変換書式)として格納される。Java（登録商標）においては、文字がUTF-16としてエンコードされ、このエンコードは文字毎にメモリの2バイトを必要とする。ほとんどの場合そうであるが前記マシーンネームがASCII文字のみを含む場合、UTF-8のエンコードは文字毎に1バイトのみを必要とする。(DoD Internet Host Table Specification (RFC952)はホストネームがASCII文字のみを含むべきことを明記している。)
【００６７】
オープンアドレス式ハッシュマップの伝統的な実施形態においては、キーを格納するアレイ、値を格納するアレイおよびキーと値との対が有効なものか否かを示すアレイからなる3つのアレイが使用される。ここでは、前記第2の検索テーブル610については、キー(マシーンネームおよびドメインネームを示す整数)が1つの整数アレイに一緒に格納される。より効率的なキャッシュの局所性を実現するために、キーおよび該キーに関連付けられた値は、前記アレイにおいて互いに近い位置に(例えば、隣り合って)配される。換言すると、オープンアドレス式ハッシュマップは、キーアレイの値と値アレイの値とをインターリーブすることによって、1つのアレイを使用して実現される。
【００６８】
一実施の形態において、前記第2の検索テーブル610は、各テーブルエントリ毎に1つの整数アレイ(例えば、ホストネーム毎に1つのアレイ)を使用することによって実現される。このアレイは、マシーンネームのUTF-8バイトアレイ、マシーンネームのハッシュコード、ドメインネーム参照および関連したIDを含む。オブジェクトは使用されないので、オブジェクトに関連したオーバーヘッドが回避され、これにより、メモリ使用量が減少する。さらに、キャッシュの局所性が向上し、これにより、性能が向上する。
【００６９】
オープンアドレス式ハッシュマップにおいて、ハッシュが算出され、その点におけるエントリがフェッチされ、ヒットがあるか否かを判定するためにキーが検査される。ここでは、ドメインネーム参照を得るために、前記第1の検索テーブル600と共にドメインネームが使用される。キー検査を最適化するために、前記得られた参照(整数)が前記エントリに格納された参照(これも整数)と比較される。その後、前記マシーンネームのハッシュ(この検索のために前記ハッシュを算出する処理の一部として算出された整数)が、前記エントリに格納されたハッシュ(これも整数)と比較される。最後に、前記マシーンネームの文字列が前記エントリに格納された文字列と比較される。前記返される値は、前記ホストネームに関連したアセットモデルの整数IDである。
MACアドレスによる検索
【００７０】
前記MACアドレス検索テーブルは、基本データ型“long”(長整数)のキーおよび基本データ型“int”(整数)の値を使用する。検索を実行するために使用されるキーは、MACアドレスを示す64ビット整数である。検索によって返される値は、前記対応するアセットモデルの整数IDである。MACアドレスはグローバルにユニークであるので、ただ1つのMACアドレス検索テーブルが使用される。
【００７１】
一実施の形態において、前記検索テーブルは、低メモリ使用量および/または高速度を実現するためにカスタマイズされ、最適化される。前記カスタマイズされたテーブルは、ハッシュマップまたはアレイとすることができる。
【００７２】
図7は、MACアドレス検索テーブルのデータ構造の例を示す図。ここで図示されたデータ構造は、オープンアドレス式ハッシュマップ700である。オープンアドレス式ハッシュマップの伝統的な実施形態においては、キーを格納するアレイ、値を格納するアレイおよびキーと値との対が有効なものか否かを示すアレイからなる3つのアレイが使用される。ここでは、キー(MACアドレス)および値(ID)が1つの整数アレイに一緒に格納される。より効率的なキャッシュの局所性を実現するために、キーおよび該キーに関連付けられた値は、前記アレイにおいて互いに近い位置に(例えば、隣り合って)配される。換言すると、オープンアドレス式ハッシュマップは、キーアレイの値と値アレイの値とをインターリーブすることによって、1つのアレイを使用して実現される。
【００７３】
あるMACアドレスは有効ではないかもしれない。一実施の形態において、無効なアドレスは、対応する値(ここではID)が空であることを示すために検索データ構造に使用される。
アセット範囲による検索
【００７４】
検索を実行するために使用されるキーは、一緒にＩＰアドレス範囲を示す1対のＩＰアドレスである。検索によって返される値は、前記対応するアセットモデルの整数IDである。ＩＰアドレスはネットワークゾーン内でのみユニークであるので、各ネットワークゾーンは、それ自身のアセット範囲検索テーブルを有する。前記検索が実行される前に、当該ＩＰアドレスは、該ＩＰアドレスを含むＩＰアドレス範囲を特定するために検査される。
【００７５】
前記マネージメントモジュール330は、どのIDがネットワークノードに割り当てられており、どのIDがネットワークノードに割り当てられていないのかを追跡する。また、該マネージメントモジュール330は、リクエストされたときに(例えば、新たなネットワークノードに割り当てるべき)IDを提供する。IDは、それらの間のギャップを最小化するために互いに接近して作成される。ネットワークノード(およびそれらに関連したアセットモデル)がシステムから除去されたとき、使用中のID間にギャップが現れ始めることがある。一実施の形態において、前記マネージメントモジュール330は、次のようにしてID間のギャップを管理する。初期のロード時においては、ギャップのテーブル(ギャップテーブル340)が作成される。新たなネットワークノードが追加されたとき(従って、新たなアセットモデルが作成されたとき)、IDが割り当てられる。ギャップが存在する場合、該ギャップ内に存在するIDが使用される。ギャップが存在しない場合、新たなIDが作成され、使用される。
【００７６】
上述のごとく、ID間のギャップを管理するために、前記ギャップテーブル340が前記マネージメントモジュール330によって使用される。
【００７７】
前記カテゴリモジュール310は、カテゴリに関連した機能を提供する。アセットの特性を記述するために、アセットがカテゴリ化され得る。1つのカテゴリは“グループ”として実現される。例えば、特定のノードがWindows（登録商標）2003 Serverオペレーテイングシステムを実行していることを明記するために、該ノードのアセットは、
“/AllCategories/OperatingSystems/Microsoft/Windows/2003Server”というグループに入れられる。カテゴリは階層的であってよい。“2003Server”は“Windows（登録商標）”というカテゴリの子供であり、“Windows（登録商標）”は“Microsoft（登録商標）”というカテゴリの子供であり、等々である。階層的なカテゴリのその他の例は、グラフィカルな分類(例えば、大陸/国/州/地域...である。アセットグループも、ネットワークゾーンおよびネットワークゾーングループと同様にカテゴリ化され得る。
【００７８】
図示した実施の形態において、前記カテゴリモジュール310は、検索モジュール360と、マネージメントモジュール370と、カテゴリデータ380と、アップデートデータ390とを含む。前記検索モジュール360は、特定のネットワークノード(アセット)が特定のカテゴリの一員(特定のカテゴリ内)であるか否かを判定する。例えば、“このアセットはこのカテゴリまたは子孫カテゴリの一員か?”という質問が考えられる。この判定を行うために、前記カテゴリモジュール310は、カテゴリデータ380を使用する。
【００７９】
前記カテゴリデータ380は、推移的クロージャ(TC)を使用して、アセットモデルに付加され得るカテゴリ(特性)の階層的およびダイナミックなスペースをモデル化する。TCは、基本的に、各先祖(カテゴリまたはグループ)と各子孫(アセット)との間でリンクが存在し得る有向グラフ(DAG)である。このようなリンクの存在は、子孫アセットが前記先祖カテゴリもしくはグループの一員、または、いずれかの先祖カテゴリもしくはグループの一員であることを示す。前記リンクは、DAG内に既に存在する親-子供リンクに加えて構築される。TCリンクの存在は、所与の子供(アセット)が所与の親(カテゴリまたはグループ)であるか否かをチェックするための0(1)時間効率を可能にする。
【００８０】
上記カテゴリ階層AllCategories/OperatingSystems/Microsoft/Windows/2003Serverについて説明する。しばしば、ネットワークノードが2003Serverオペレーティングシステムを実行しているか否かを知ることは、該ノードが一般的な(例えば、任意の種類の)Microsoft（登録商標）のオペレーティングシステム実行しているか否かを知ることほど興味深いものではない。“Microsoft（登録商標）”カテゴリと前記ノードとの間にリンクが存在しない場合、ツリーウォーク(tree walk)が実行されなければならない。例えば、ツリーウォークは、前記Microsoft（登録商標）カテゴリから始まり、子孫間のマッチを求めて下方にサーチする。代案として、ツリーウォークは、前記ネットワークノードから始まり、上方にサーチする。ツリーウォークは、予期不能な量の時間を要し、理論的には、常に、すべての先祖とすべての子孫との間のリンクの完全なるリストに対する0(1)検索(すなわち、推移的クロージャ)より高価である。TCを使用することの不利点は、多数の情報をソートすることを必要とすることである。例えば、先祖-子孫リンクの数は、親-子供リンクの数よりはるかに大きい。
【００８１】
推移的クロージャを示すデータ構造は、毎秒5,000イベント、各イベントあたり4つのノードおよび各ノード参照あたり100回のカテゴリメンバーシップチェック(従って、毎秒2,000,000回のチェック)の速度でのリアルタイム検索に使用される。前記データ構造が伝統的な方法(例えば、最近最も使われていない(LRU)方法で)補助的な記憶装置に格納され、または、キャッシュされる場合、カテゴリメンバーシップチェックの性能は、速くもなく予期可能でもない。一実施の形態において、前記TCデータ構造は、カテゴリメンバーシップチェックが迅速に実行され得るように、インデックス付けされた態様でメモリに格納される。
【００８２】
一実施の形態において、前記推移的クロージャは、1組のビットマップとしてメモリに格納され、各ビットマップはビットのアレイであり、各ビットはブーリアン値を記憶する。これはビットマップインデキシングと同様である。ここで、ビットマップは、特定のアセットカテゴリまたはグループに対応している。ビットマップにおける0/1ビットは、特定のセットカテゴリ/グループとアセットとの間のリンクが存在しているか否かを示す。100万個のアセットおよび1,000個のアセットカテゴリ/グループが存在している場合、潜在的に、100万 * 1,000 = 10億ビットの記憶ビットが必要である。なお、アセットモデルは、整数値であるIDによって識別される。一実施の形態において、このIDは、推移的クロージャビットマップへのインデックスとして機能する。
【００８３】
1つのアセットは、通常、合計1,000個のカテゴリのうちの約30個のカテゴリに分類される。このようにして、特定のアセットが特定のカテゴリに存在する確率は、30/1,000 = 3%である。これは、ビットマップの約3%が設定されている(すなわち、他とは異なる値を有する)ことを意味する。従って、ビットマップは大変まばらなものになる。一実施の形態において、メモリ要件を減少させるために、ビットマップは、World-Aligned Hybridのような技術を使用して圧縮される。
【００８４】
カテゴリチェックを実行する際、圧縮されていないビットマップを使用する方が、圧縮されているビットマップを使用するより処理が速い。より頻繁にチェックされるカテゴリについてのビットマップは圧縮されていない形態で格納され、より少なくチェックされるカテゴリについてのビットマップは圧縮された形態で格納される。このようにして、大部分のチェックを追加的なメモリ要件を少なくして極めて速く行うことが可能になり、従って、平均的なカテゴリチェック性能を向上することができる。
【００８５】
前記マネージメントモジュール370は、必要に応じてカテゴリデータ380をアップデートする。アセットモデルは時間経過と共に変化する可能性があるので、前記推移的クロージャデータ構造が時間経過と共にアップデートされる必要がある。ビットマップが圧縮されている場合、該ビットマップをアップデートすることは、該ビットマップを解凍し、アップデートを適用し、再び圧縮することを含む。一実施の形態において、圧縮されているか否かに関わらず、アップデートは該当ビットマップに直ちに適用される。
【００８６】
他の実施の形態においては、ビットマップが圧縮されている場合、該ビットマップは直ちにアップデートされない。その代わりに、アップデートは、(アップデートデータ390に)一時的に記憶され、その後(例えば毎分1回のように定期的に行われるタスクを介して)同一のビットマップに対して他のアップデートと共に適用される。ビットマップを解凍し圧縮するのは時間がかかるので、ある時にビットマップを解凍し、多数のアップデートを実行し、その後に該ビットマップを圧縮する方がより速い。この実施の形態においては、圧縮されたビットマップに関わるカテゴリチェックがリクエストされたとき、前記一時的なアップデート記憶(アップデートデータ390)がアクセスされ、アップデートが存在するか否かが判定される。(サイズが小さく、従って、速い検索をサポートする)前記一時的なアップデート記憶の検索が失敗した場合、圧縮されたビットマップについて検索が実行される。ビットマップが圧縮されていない場合、該ビットマップは直ちにアップデートされる。
【００８７】
上述の如く、前記アップデートデータ390は、カテゴリデータ380をアップデートするのを遅らせるために前記マネージメントモジュール370によって使用される。
【００８８】
以上本発明の好ましい実施の形態の動作について説明したが、ここでの説明は本発明の範囲を制限するものではない。本発明は、次の特許請求の範囲によってのみ限定されるものである。上記の説明から、本発明の精神および範囲に包含される多くの変更が可能であることが当業者に明らかであろう。
【符号の説明】
【００８９】
10    セキュリティ情報/イベントマネージメントシステム
12    エージェント
14    マネージャ
16    コンソール
【図１】
0005417179.tif 000002
【図２】
0005417179.tif 000003
【図３】
0005417179.tif 000004
【図４】
0005417179.tif 000005
【図５】
0005417179.tif 000006
【図６】
0005417179.tif 000007
【図７】
0005417179.tif 000008