(57)【特許請求の範囲】
【請求項１】
ポリシーを記述しているグローバルポリシーデータを格納するデータリポジトリと、
第１のコンピュータハードウェアによって少なくとも部分的に実装された、複数のコンピュータアセットと、
第２のコンピュータハードウェアによって少なくとも部分的に実装された、複数の解析部コンポーネントと、
を有してなるコンピュータシステムであって、
前記複数のコンピュータアセットは、複数のセットにグループ化されており、前記複数の解析部コンポーネントの各々は、前記複数のセットの内の１つのセットに割り当てられ、
前記複数のコンピュータアセットの前記複数のセットのうちの前記１つのセットに含まれる各コンピュータアセットが、クライアント装置からのメッセージを受信し、前記コンピュータアセットを実装するコンピュータ装置において、前記ポリシーを記述しているローカルポリシーデータを格納し、前記ポリシーのうちのどのポリシーが前記メッセージのうちのどのメッセージに適用されるかを決定し、前記ポリシーのうちのどのポリシーが前記メッセージのうちのどのメッセージに適用されるかに基づいて、前記メッセージに関して行われるポリシーに基づくアクションを識別し、前記メッセージから記録されたメッセージ情報を、前記１つのセットに割り当てられた解析部コンポーネントに送信し、前記グローバルポリシーデータに対する更新を反映するよう前記ローカルポリシーデータを更新するよう構成されており、
前記複数の解析部コンポーネントの内で前記１つのセットに割り当てられた前記解析部コンポーネントは、前記１つのセットに含まれる前記複数のコンピュータアセットの各々のコンピュータアセットから前記メッセージ情報を受信し、前記１つのセットに含まれる前記複数のコンピュータアセットのうちの各コンピュータアセットからの前記メッセージ情報を集合的に解析し、前記メッセージ情報の集合的な解析に基づいて、新たなポリシーを生成し、該新たなポリシーを記述するよう前記グローバルポリシーデータを更新すること、
を特徴とするコンピュータシステム。
【請求項２】
前記複数のコンピュータアセットのうちの各コンピュータアセットが第１のネットワークのエッジに配置されており、前記クライアント装置が第２のネットワーク内に配置されている、請求項１記載のコンピュータシステム。
【請求項３】
前記１つのセットに含まれる前記複数のコンピュータアセットおよび前記１つのセットに割り当てられた前記解析部コンポーネントが、前記コンピュータシステムの第１の領域内に配置されており、前記コンピュータシステムが、別のセットに含まれる別の複数のコンピュータアセットおよび該別のセットに割り当てられた別の解析部コンポーネントを各領域が含む１以上の更なる領域を更に含み、前記データリポジトリが前記第１の領域と前記１以上の更なる領域とによって共有されている、請求項１記載のコンピュータシステム。
【請求項４】
前記ポリシーのうちの各ポリシーが、該ポリシーが所与のメッセージに適用されるか否かを決定するための論理と、前記ポリシーが前記所与のメッセージに適用される場合に、該所与のメッセージに関して行われる、１以上の具体的なポリシーに基づくアクションを示す１以上の指示とを示すデータ構造である、請求項１記載のコンピュータシステム。
【請求項５】
前記１つのセットに割り当てられた前記解析部コンポーネントが、前記集合的に解析されたメッセージ情報からの、システムレベルのポリシーによって記述されている条件が存在するという決定に基づき、前記新たなポリシーのうちの１以上のポリシーを識別し、前記記載されている条件に照らしてブロックまたはリダイレクトされるメッセージを識別するための論理を含む１以上のアセットレベルのポリシーを生成し、該生成された１以上のアセットレベルのポリシーを含むよう前記グローバルポリシーデータを更新するよう更に構成された、請求項１記載のコンピュータシステム。
【請求項６】
前記１つのセットに割り当てられた前記解析部コンポーネントが、前記集合的に解析されたメッセージ情報に基づいて、前記コンピュータシステムに対する分散型の攻撃を識別し、該分散型の攻撃に関与するメッセージを識別するための論理を含む第１のポリシーを生成し、該第１のポリシーを記述するよう前記グローバルポリシーデータを更新するよう更に構成された、請求項１記載のコンピュータシステム。
【請求項７】
前記１つのセットに割り当てられた前記解析部コンポーネントが、前記集合的に解析されたメッセージ情報に基づいて、前記複数のコンピュータアセットのうちの第１のコンピュータアセットにおいて生じている攻撃を識別し、該攻撃に関与するメッセージを識別するための論理を含む第１のポリシーを生成し、該第１のポリシーを記述するよう前記グローバルポリシーデータを更新するよう更に構成され、
前記複数のコンピュータアセットのうちの第２のコンピュータアセットであって、該第２のコンピュータアセットのローカルポリシーデータが更新されるときに前記攻撃に関与するメッセージをまだ受信していない第２のコンピュータアセットが、前記更新されたグローバルポリシーデータに基づいて、前記第１のポリシーを記述するよう前記第２のコンピュータアセットの前記ローカルポリシーデータを更新し、前記第１のポリシーに基づいて、前記攻撃に関与するメッセージをブロックまたはリダイレクトするよう構成された、
請求項１記載のコンピュータシステム。
【請求項８】
前記メッセージが、前記複数のコンピュータアセットが行うよう指定されたアクションを示しており、各前記コンピュータアセットが、前記ポリシーが適用されるメッセージに対して、前記示されている指定されたアクションの代わりにまたはそれに加えて、前記適用されるポリシーに基づくアクションを行うよう構成された、請求項１記載のコンピュータシステム。
【請求項９】
前記ポリシーのうちの所与のポリシーによって示されているポリシーに基づくアクションが、前記所与のポリシーが適用されるあらゆるメッセージをブロックすること、前記所与のポリシーが適用されるあらゆるメッセージをリダイレクトすること、または、前記所与のポリシーが適用されるあらゆるメッセージにコンピュータアセットが正常に応答することを許可することのうちの１つである、請求項１記載のコンピュータシステム。
【請求項１０】
前記1つのセットに含まれる前記複数のコンピュータアセットのうちの或るコンピュータアセットが、たとえ該コンピュータアセットが、前記１つのセットに割り当てられた解析部コンポーネントおよび前記データリポジトリにアクセスできないときでも、前記コンピュータアセットの前記ローカルポリシーデータからのポリシーをメッセージに適用するよう構成された、請求項１記載のコンピュータシステム。
【請求項１１】
１以上のコンピュータ装置によって実装される、複数のコンピュータアセットを含む１つのセットに含まれる１つのコンピュータアセットにおいて、ポリシーを記述しているローカルポリシーデータを格納する工程と、
前記コンピュータアセットにおいて、クライアント装置からのメッセージを受信する工程と、
前記コンピュータアセットにおいて、前記ポリシーのうちのどのポリシーが前記メッセージのうちのどのメッセージに適用されるかを決定する工程と、
前記コンピュータアセットにおいて、前記ポリシーのうちのどのポリシーが前記メッセージのうちのどのメッセージに適用されるかに基づいて、前記メッセージに関して行われるポリシーに基づくアクションを識別する工程と、
前記コンピュータアセットから、前記メッセージから記録されたメッセージ情報を、複数の解析部コンポーネントの内で、前記コンピュータアセットが含まれる前記１つのセットに割り当てられた解析部コンポーネントに送信する工程と、
前記コンピュータアセットによって、前記１つのセットに割り当てられた前記解析部コンポーネントによって生成されたグローバルポリシーデータに対する更新を反映するよう前記ローカルポリシーデータを更新する工程と
を含むことを特徴とするデータ処理方法。
【請求項１２】
前記ポリシーのうちの各ポリシーが、該ポリシーが所与のメッセージに適用されるか否かを決定するための論理と、前記ポリシーが適用される場合に、前記所与のメッセージに関して行われる、１以上の具体的なポリシーに基づくアクションを示す１以上の指示とを示すデータ構造である、請求項１１記載の方法。
【請求項１３】
前記メッセージが、前記１つのセットに含まれる前記複数のコンピュータアセットが行うよう指定されたアクションを示しており、
前記方法が、前記ポリシーが適用されるメッセージに対して示されている前記指定されたアクションの代わりにまたはそれに加えて、適用されるポリシーに基づくアクションを行う工程を更に含む、
請求項１１記載の方法。
【請求項１４】
たとえ前記コンピュータアセットが、前記１つのセットに割り当てられた前記解析部コンポーネントおよび前記グローバルポリシーデータにアクセスできないときでも、前記ローカルポリシーデータからのポリシーをメッセージに適用する工程を更に含む、請求項１１記載の方法。
【請求項１５】
前記１つのセットに割り当てられた前記解析部コンポーネントにおいて、前記コンピュータアセットを含む複数のコンピュータアセットのうちの各コンピュータアセットにおいて記録されたメッセージ情報を受信する工程と、
前記１つのセットに割り当てられた前記解析部コンポーネントによって、前記複数のコンピュータアセットのうちの各コンピュータアセットにおいて記録された前記メッセージ情報を集合的に解析する工程と、
前記１つのセットに割り当てられた前記解析部コンポーネントによって、前記メッセージ情報の集合的な解析に基づいて、新たなポリシーを生成する工程と、
前記１つのセットに割り当てられた前記解析部コンポーネントによって、前記新たなポリシーを記述するよう前記グローバルポリシーデータを更新する工程と
を更に含む、請求項１１記載の方法。
【請求項１６】
複数の解析部コンポーネントを実装する１以上のコンピュータ装置によって行われるデータ処理方法であって、
複数のコンピュータアセットからなる１つのセットに含まれる各コンピュータアセットから、該コンピュータアセットによって受信されたメッセージを記述しているメッセージ情報を、前記複数の解析部コンポーネントの中で、前記１つのセットに割り当てられた解析部コンポーネントで受信する工程と、
前記１つのセットに含まれる前記複数のコンピュータアセットのうちの各コンピュータアセットからの前記メッセージ情報を集合的に解析する工程と、
前記メッセージ情報の集合的な解析に基づいてポリシーを生成する工程であって、該ポリシーが、該ポリシーが適用されるメッセージを識別するための論理と、前記ポリシーが適用される前記メッセージに関して行われるポリシーに基づくアクションとを記述している、ポリシーを生成する工程と、
前記ポリシーを記述するようグローバルポリシーデータリポジトリを更新する工程と、
前記１つのセットに含まれる前記複数のコンピュータアセットに、少なくとも前記グローバルポリシーデータリポジトリ内の前記ポリシーを記述しているポリシーデータを送信する工程と、
を含むことを特徴とする方法。
【請求項１７】
前記グローバルポリシーデータリポジトリが、少なくとも複数の前記解析部コンポーネントによって共有されている、
請求項１６記載の方法。
【請求項１８】
前記メッセージ情報からの、システムレベルのポリシーによって記述されている条件が存在するという決定に基づき、前記ポリシーのうちの１以上のポリシーを識別する工程と、
前記記載されている条件に照らしてブロックまたはリダイレクトされるメッセージを識別するための論理を含む１以上のアセットレベルのポリシーを生成する工程と、
前記生成された１以上のアセットレベルのポリシーを含むよう前記グローバルポリシーデータを更新する工程と
を更に含む、請求項１６記載の方法。
【請求項１９】
前記メッセージ情報の集合的な解析に基づいて、前記複数のコンピュータアセットを含むコンピュータシステムに対する分散型の攻撃を識別する工程と、
前記分散型の攻撃に関与するメッセージを識別するための論理を含む第１のポリシーを生成する工程と、
前記第１のポリシーを記述するよう前記グローバルポリシーデータを更新する工程と
を更に含む、請求項１６記載の方法。
【請求項２０】
前記１つのセットに割り当てられた前記解析部コンポーネントが、前記メッセージ情報に基づいて、前記１つのセットの前記複数のコンピュータアセットの内の第１のコンピュータアセットにおいて生じている攻撃を識別する工程と、
前記１つのセットの前記複数のコンピュータアセットのうちの少なくとも第２のコンピュータアセットであって、該第２のコンピュータアセットが前記攻撃に関与するメッセージを受信したことを示す前記第２のコンピュータアセットからのメッセージ情報を、前記１つのセットに割り当てられた前記解析部コンポーネントがまだ受信していない前記第２のコンピュータアセットにおいて、前記攻撃に関与するメッセージを識別するための論理を含む第１のポリシーを生成する工程と、
前記第１のポリシーを記述するよう前記グローバルポリシーデータを更新する工程と
を更に含む、請求項１６記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、分散型ネットワークのアセットにおけるネットワークトラフィックの管理に関する。
【背景技術】
【０００２】
本節に記載される手法は、追及され得る手法であるが、必ずしも以前に想到または追及された手法ではない。従って、特に明記しない限り、本節に記載されるいずれの手法も、それらが単に本節に含まれていることを理由として従来技術であると見なされるべきではない。
【０００３】
ネットワーク化されたコンピュータシステムの攻撃対象領域は、そのコンピュータシステム内の、潜在的な攻撃者によるアクセスに晒されているコンポーネントで構成される。そのようなコンポーネントは、例えば、ウェブサーバによって実行されるアプリケーション、および他のサーバに基づくアプリケーションを含み得る。ユーザが操作するクライアントは、典型的には、１以上のコンピュータネットワークを介してそれらのコンポーネントとやりとりするのが望ましい。従って、それらのコンポーネントは、それらの１以上のネットワークを介してクライアントとやりとりするための様々なインターフェースを備えている。例えば、これらのコンポーネントは、ユーザ入力制御を含むウェブに基づくグラフィカルユーザインターフェース（「ＧＵＩ」）、所定のプロトコル（例えばハイパーテキスト転送プロトコル（「ＨＴＴＰ」）またはシンプルオブジェクトアクセスプロトコル（「ＳＯＡＰ」）等）を介してユーザ入力を受信するためのインターフェース、カスタマイズされたアプリケーションプログラミングインターフェース（「ＡＰＩ」）、および／または、ユーザが操作するクライアント装置からの通信をコンポーネントが受信して反応するための他のサービスを表示し得る。
【０００４】
コンポーネントに対するユーザアクセスは典型的には望ましいが、ユーザアクセスを提供することは、時に、コンポーネントを、許可されていないユーザが、コンピュータシステムの所有者が意図しないまたは望まない方法でコンポーネントを実行させることに成功するという、許可されていない使用の対象になりやすくする。許可されていない使用（「攻撃」としても知られている）の例としては、例えば通信傍受等の受動的な攻撃、並びに、例えばサービス妨害、スクリプトを埋め込んだアカウントの作成、サーバまたはアカウントの乗っ取り、バッファーオーバーフロー、ヒープオーバーフロー、および書式文字列攻撃等の能動的な攻撃が挙げられるが、それらに限定されない。
【０００５】
本明細書に記載される目的では、攻撃は、必ずしも悪意のあるものである必要はなく、例えば、ユーザが非意図的にシステムリソースを使い過ぎることを含む、任意の望ましくない挙動であり得る。例えば、コンピュータシステムは様々なメディアリソースに対するアクセスを提供し得るものであり、ユーザは非意図的に、ソフトウェアコード（例えばメディアサーバ用のコード等）であって、実行された際に、コンピュータ装置に、メディアリソースに関する情報のライブラリをコンパイルおよび／または解析するために、繰り返しシステマティックにメディアリソースに対するアクセスを要求させるソフトウェアコードを作成または配置し得る。しかし、この挙動は、より従来型の、メディア項目に対するアドホックな要求に応答するシステムの能力に悪影響を及ぼし得るので、コンピュータシステムにとって望ましくないものであり得る。上記および他の望ましくない挙動に対処するための様々なトラフィック管理スキームが考案され得る。
【０００６】
ファイアウォールは、ネットワーク化されたコンピュータシステムの例示的なトラフィック管理コンポーネントである。ファイアウォールコンポーネントの例としては、専用の装置、システム内のコンピュータ装置上で実行されるソフトウェアに基づくアプリケーション、またはネットワークトラフィックに対するゲートウェイとして作用する他の任意のシステムコンポーネントが挙げられる。多くの従来のネットワーク化されたコンピュータシステムは、コンピュータシステムの外にある潜在的に信頼できないクライアント装置とコンピュータシステム内にある信頼できるコンポーネントとの間で送信されるメッセージの全てまたは少なくとも大半を、ファイアウォールが傍受するよう構成されている。メッセージは、１つのレベルまたは複数のレベルで傍受され得る。例えば、一部のファイアウォールは、例えばＴＣＰパケットまたはＵＤＰパケットの形態のメッセージ等のネットワーク層またはトランスポート層のメッセージ、および／または、例えばＦＴＰ要求、ＤＮＳ要求、またはＨＴＴＰ要求の形態のメッセージ等のアプリケーション層のメッセージを傍受する。他のファイアウォールは、様々な任意の層の様々な任意のメッセージタイプを傍受する。
【０００７】
従来、ファイアウォールは、傍受したメッセージに関してとられる１以上のアクションを決定するために、１以上のポリシーを傍受したメッセージと比較するよう構成されている。例えば、そのメッセージがアドレスで指定されている宛先に届くのを許可する、メッセージをリダイレクトする、メッセージをブロックする、メッセージを操作する、そのメッセージに関する特定の詳細を記録する等の様々な異なるアクションがとられ得る。ポリシーは、しばしば、望ましくないメッセージを完全にブロックすることによって「フィルタリング」することから、フィルターとして参照される場合もある。ポリシーの単純な例は、規則によって特定されている特定の基準（例えば、特定されているソースアドレスまたは宛先ポート等）に一致する特徴を有するメッセージはブロックされるべきであるという規則である。ファイアウォールは、システムのアセットに対する攻撃をブロックまたは最小限にすることを意図した様々なポリシーを適用するよう構成され得る。一部のシステムでは、ファイアウォールは、以前に受信したトラフィックから学習して、そのポリシーを、将来的な攻撃により良好に反応するために調節するよう構成された、適応的なものであり得る。
【０００８】
攻撃対象領域が非常に分散したネットワーク化されたコンピュータシステムでは、適応的なファイアウォールを効果的に配置することはしばしば困難である。単一の攻撃が、様々なソースからほぼ同時に発生して、攻撃対象領域にある多くの異なるアセットに影響する場合もある。従って、特定の攻撃を認識して、それらの範囲を理解するために、ネットワーク化されたコンピュータシステムを通るトラフィックを中央で解析することが有用である。しかし、各メッセージを傍受して解析するために、単一の集中型のファイアウォールコンポーネントに頼ることは、望ましくないまたは実行不可能な場合がある。
【発明の概要】
【０００９】
添付の特許請求の範囲は、本発明を要約する役割をし得る。
【図面の簡単な説明】
【００１０】
【図１】記載される技術が実施され得る例示的なネットワーク化されたコンピュータシステムを示す
【図２】複数の異なるグループのアセットを担当する複数の解析部を含む、例示的なネットワーク化されたコンピュータシステムを示す
【図３】分散型トラフィック管理システムにおいてローカルポリシーを適用するための例示的なフローを示す
【図４】分散型トラフィック管理システムにおいてポリシーを生成して発行するための例示的なフローを示す
【図５】本発明の実施形態が実装され得るコンピュータシステムを示すブロック図
【発明を実施するための形態】
【００１１】
以下の説明では、説明の目的で、本発明の完全なる理解を提供するために、多くの具体的な詳細を述べる。しかし、本発明が、これらの具体的な詳細を含まずに実施され得ることは明らかである。他の例では、本発明を不必要に不明瞭にすることを避けるために、周知の構造および装置はブロック図の形態で示されている。
【００１２】
本明細書において、以下の骨子に沿って実施形態を説明する。
１．０．総括
２．０．構造的概観
２．１．アセット
２．２．クライアント
２．３．メッセージハンドリング
２．４．ポリシーの執行
２．５．ログの報告および解析
２．６．ポリシーの生成および発行
２．７．分散型の解析部
２．８．ミッドティアコンポーネント
２．９．その他
３．０．機能的概観
３．１．ローカルポリシーの適用
３．２．ポリシーの生成および発行
４．０．例示的な実装の詳細
４．１．例示的なポリシー構造
４．２．例示的なポリシーキャッシュ
４．３．例示的な構成オプション
４．４．例示的なメッセージログ
４．５．例示的なクエリ
５．０．ハードウェアの概観。
【００１３】
１．０．総括
ネットワーク化されたコンピュータシステムにおける分散型トラフィック管理のための手法、技術、および機構が開示される。一実施形態において、多くの異なるコンピュータアセットが、ローカルポリシーデータに基づいて着信メッセージを規制する。このローカルポリシーデータは、グローバルポリシーデータと同期化される。グローバルポリシーデータは、１以上の別個の解析部によって生成される。各解析部は、複数のグループのコンピュータアセットについてのメッセージログまたはメッセージログから生成された情報へのアクセスを有し、従って、孤立したアセットではなくグループ全体からの情報に基づいてポリシーを生成することができる。効果の中でも特に、これらの手法、技術、および機構の幾つかは、攻撃対象領域にわたる監視に限度があるコンピューティング環境、並びに／または、アセットが、着信メッセージをどのように扱うべきかに関して、他のシステムコンポーネントとの関係におけるレイテンシーおよび／もしくは非信頼性を考慮して、独立した決定を行う必要があり得るコンピューティング環境においても、効果的であり得る。
【００１４】
一実施形態によれば、分散型トラフィック管理を実装するコンピュータシステムは、ポリシーを記述しているグローバルポリシーデータを格納するデータリポジトリを含む。本システムは、第１のコンピュータハードウェアによって少なくとも部分的に実装された複数のコンピュータアセットを更に含む。この複数のコンピュータアセットのうちの各アセットは、クライアント装置からのメッセージを受信し、上記のアセットを実装するコンピュータ装置において、ポリシーを記述しているローカルポリシーデータを格納し、上記ポリシーのうちのどのポリシーが上記メッセージのうちのどのメッセージに適用されるかを決定し、どのポリシーがどのメッセージに適用されるかに基づいて、メッセージに関して行われるポリシーに基づくアクションを識別し、上記メッセージから記録されたメッセージ情報を解析部コンポーネントに送信し、グローバルポリシーデータに対する更新を反映するようローカルポリシーデータを更新するよう構成される。本システムは、第２のコンピュータハードウェアによって少なくとも部分的に実装された解析部コンポーネントを更に含む。解析部コンポーネントは、複数のコンピュータアセットのうちの各コンピュータアセットからのメッセージ情報を受信し、複数のコンピュータアセットのうちの各コンピュータアセットからのメッセージ情報を集合的に解析し、メッセージ情報の集合的な解析に基づいて新たなポリシーを生成し、この新たなポリシーを記述するようグローバルポリシーデータを更新するよう構成される。
【００１５】
一実施形態において、複数のコンピュータアセットのうちの各アセットは第１のネットワークのエッジに配置されており、クライアント装置は第２のネットワーク内に配置されている。一実施形態において、複数のコンピュータアセットのうちの或るアセットは、上記の複数のコンピュータアセットに含まれておらず上記のアセットによって受信されたメッセージがダイレクトされるサーバアプリケーションの前に配置される。一実施形態において、複数のコンピュータアセットのうちの或るアセットは、このアセットによって受信されたメッセージに応答するよう構成されたウェブサーバアプリケーションを実行するよう更に構成される。一実施形態において、複数のコンピュータアセットおよび解析部はコンピュータシステムの第１の領域内に配置されており、コンピュータシステムは、別の複数のコンピュータアセットおよび別の解析部を各領域が含む１以上の更なる領域を更に含み、データリポジトリは、第１の領域と１以上の更なる領域とによって共有されている。一実施形態において、第１のコンピュータハードウェアは、第２のコンピュータハードウェアに含まれない１以上のコンピュータ装置を含む。
【００１６】
一実施形態において、解析部は、集合的なメッセージ情報からの、システムレベルのポリシーによって記述されている条件が存在するという決定に基づき、新たなポリシーのうちの１以上のポリシーを識別し、記載されている条件に照らしてブロックまたはリダイレクトされるメッセージを識別するための論理を含む１以上のアセットレベルのポリシーを生成し、生成された１以上のアセットレベルのポリシーを含むようグローバルポリシーデータを更新するよう更に構成される。
【００１７】
一実施形態において、解析部は、集合的なメッセージ情報に基づいて、コンピュータシステムに対する分散型の攻撃を識別し、分散型の攻撃に関与するメッセージを識別するための論理を含む第１のポリシーを生成し、第１のポリシーを記述するようグローバルポリシーデータを更新するよう更に構成される。一実施形態において、解析部は、集合的なメッセージ情報に基づいて、複数のコンピュータアセットのうちの第１のアセットにおいて生じている攻撃を識別し、攻撃に関与するメッセージを識別するための論理を含む第１のポリシーを生成し、第１のポリシーを記述するようグローバルポリシーデータを更新するよう更に構成される。複数のコンピュータアセットのうちの第２のアセットであって、第２のアセットのローカルポリシーデータが更新されるときに攻撃に関与するメッセージをまだ受信していない第２のアセットは、更新されたグローバルポリシーデータに基づいて、上記第１のポリシーを記述するよう第２のアセットのローカルポリシーデータを更新し、第１のポリシーに基づいて、攻撃に関与するメッセージをブロックまたはリダイレクトするよう構成される。
【００１８】
一実施形態において、上記ポリシーのうちの各ポリシーは、ポリシーが所与のメッセージに適用されるか否かを決定するための論理と、ポリシーが所与のメッセージに適用される場合に、所与のメッセージに関して行われる１以上の具体的なポリシーに基づくアクションを示す１以上の指示とを示すデータ構造である。一実施形態において、メッセージは、複数のアセットが行うよう指定されたアクションを示しており、各アセットは、ポリシーが適用されるメッセージに対して、示されている指定されたアクションの代わりにまたはそれに加えて、適用されるポリシーに基づくアクションを行うよう構成される。一実施形態において、上記ポリシーのうちの所与のポリシーによって示されているポリシーに基づくアクションは、所与のポリシーが適用されるあらゆるメッセージをブロックすること、所与のポリシーが適用されるあらゆるメッセージをリダイレクトすること、または、所与のポリシーが適用されるあらゆるメッセージにアセットが正常に応答することを許可することのうちの１つである。
【００１９】
一実施形態において、ローカルポリシーデータ更新することは、解析部コンポーネントからグローバルポリシーデータを記述しているポリシーデータを受信すること、または、共有のデータリポジトリからグローバルポリシーデータを読み出すことのうちの一方を含む。
【００２０】
一実施形態によれば、データ処理方法は、コンピュータアセットにおいて、ポリシーを記述しているローカルポリシーデータを格納する工程を含む。本方法は、コンピュータアセットにおいて、クライアント装置からのメッセージを受信する工程を更に含む。本方法は、コンピュータアセットにおいて、ポリシーのうちのどのポリシーがメッセージのうちのどのメッセージに適用されるかを決定する工程を更に含む。本方法は、コンピュータアセットにおいて、どのポリシーがどのメッセージに適用されるかに基づいて、メッセージに関して行われるポリシーに基づくアクションを識別する工程を更に含む。本方法は、コンピュータアセットから、メッセージから記録されたメッセージ情報を解析部コンポーネントに送信する工程を更に含む。本方法は、コンピュータアセットによって、解析部コンポーネントによって生成されたグローバルポリシーデータに対する更新を反映するようローカルポリシーデータを更新する工程を更に含む。コンピュータアセットは、１以上のコンピュータ装置によって実装される。
【００２１】
一実施形態において、本方法は、たとえアセットが解析部コンポーネントおよびグローバルポリシーデータにアクセスできないときでも、ローカルポリシーデータからのポリシーをメッセージに適用する工程を更に含む。一実施形態において、上記コンピュータアセットは、このコンピュータアセットによって受信されたメッセージがダイレクトされるサーバアプリケーションの前に配置される。一実施形態において、本方法は、コンピュータアセットにおいて、このコンピュータアセットによって受信されたメッセージの少なくとも一部に応答するウェブサーバアプリケーションを実行する工程を更に含む。一実施形態において、ローカルポリシーデータを更新する工程は、解析部コンポーネントからグローバルポリシーデータを記述しているポリシーデータを受信すること、または、共有のデータリポジトリからグローバルポリシーデータを読み出すことのうちの一方を含む。
【００２２】
一実施形態において、上記ポリシーのうちの各ポリシーは、ポリシーが所与のメッセージに適用されるか否かを決定するための論理と、ポリシーが適用される場合に、所与のメッセージに関して行われる１以上の具体的なポリシーに基づくアクションを示す１以上の指示とを示すデータ構造である。一実施形態において、上記ポリシーのうちの所与のポリシーによって示されているポリシーに基づくアクションは、所与のポリシーが適用されるあらゆるメッセージをブロックすること、所与のポリシーが適用されるあらゆるメッセージをリダイレクトすること、または、所与のポリシーが適用されるあらゆるメッセージにアセットが正常に応答することを許可することのうちの１つである。一実施形態において、メッセージは、複数のアセットが行うよう指定されたアクションを示しており、本方法は、ポリシーが適用されるメッセージに対して示されている指定されたアクションの代わりにまたはそれに加えて、適用されるポリシーに基づくアクションを行う工程を更に含む。
【００２３】
一実施形態において、本方法は、解析部コンポーネントにおいて、上記コンピュータアセットを含む複数のコンピュータアセットのうちの各アセットにおいて記録されたメッセージ情報を受信する工程を更に含む。本方法は、解析部コンポーネントによって、複数のコンピュータアセットのうちの各コンピュータアセットにおいて記録されたメッセージ情報を集合的に解析する工程を更に含む。本方法は、解析部コンポーネントによって、メッセージ情報の集合的な解析に基づいて、新たなポリシーを生成する工程を更に含む。本方法は、解析部コンポーネントによって、新たなポリシーを記述するようグローバルポリシーデータを更新する工程を更に含む。
【００２４】
一実施形態において、本方法は、上述のコンピュータアセットの工程を行う複数の組のコンピュータアセットを実行する工程を更に含む。複数の組のうちの所与の組内のアセットは、それぞれのメッセージ情報を、複数の解析部のうちの、上記所与の組に割り当てられた同じ解析部コンポーネントに送信する。本方法は、グローバルポリシーデータを、少なくとも複数の解析部によって共有されているデータリポジトリに格納する工程を更に含む。複数の解析部のうちの各解析部は、それぞれ新たなポリシーを生成して、それぞれ生成された新たなポリシーを記述するよう同じグローバルポリシーデータを更新する。
【００２５】
一実施形態において、本方法は、解析部コンポーネントにおいて、集合的なメッセージ情報からの、システムレベルのポリシーによって記述されている条件が存在するという決定に基づき、新たなポリシーのうちの１以上のポリシーを識別する工程を更に含む。本方法は、記載されている条件に照らしてブロックまたはリダイレクトされるメッセージを識別するための論理を含む１以上のアセットレベルのポリシーを生成する工程を更に含む。本方法は、生成された１以上のアセットレベルのポリシーを含むようグローバルポリシーデータを更新する工程を更に含む。
【００２６】
一実施形態において、本方法は、解析部コンポーネントによって、集合的なメッセージ情報に基づいて、複数のコンピュータアセットに対する分散型の攻撃を識別する工程を更に含む。本方法は、分散型の攻撃に関与するメッセージを識別するための論理を含む第１のポリシーを生成する工程を更に含む。本方法は、第１のポリシーを記述するようグローバルポリシーデータを更新する工程を更に含む。
【００２７】
一実施形態において、本方法は、解析部コンポーネントが、集合的なメッセージ情報に基づいて、コンピュータアセットにおいて生じている攻撃を識別する工程を更に含む。本方法は、解析部コンポーネントによって、攻撃に関与するメッセージを識別するための論理を含む第１のポリシーを生成する工程を更に含む。本方法は、解析部コンポーネントによって、第１のポリシーを記述するようグローバルポリシーデータを更新する工程を更に含む。本方法は、複数のコンピュータアセットのうちの別のコンピュータアセットであって、上記別のアセットのローカルポリシーデータが更新されるときに攻撃に関与するメッセージをまだ受信していない上記別のアセットにおいて、更新されたグローバルポリシーデータに基づいて、第１のポリシーを記述するよう上記別のアセットのローカルポリシーデータを更新する工程を更に含む。本方法は、上記別のアセットが、第１のポリシーに基づいて、攻撃に関与するメッセージをブロックまたはリダイレクトする工程を更に含む。
【００２８】
一実施形態によれば、データ処理方法は、複数のコンピュータアセットのうちの各アセットから、このアセットによって受信されたメッセージを記述しているメッセージ情報を受信する工程を含む。本方法は、複数のコンピュータアセットのうちの各コンピュータアセットからのメッセージ情報を集合的に解析する工程を更に含む。本方法は、メッセージ情報の集合的な解析に基づいてポリシーを生成する工程であって、ポリシーが適用されるメッセージを識別するための論理と、ポリシーが適用されるメッセージに関して行われるポリシーに基づくアクションとを記述するポリシーを生成する工程を更に含む。本方法は、上記ポリシーを記述するようグローバルポリシーデータリポジトリを更新する工程を更に含む。本方法は、複数のコンピュータアセットに、少なくともグローバルポリシーデータリポジトリ内のポリシーを記述しているポリシーデータを送信する工程を更に含む。本方法は、解析部コンポーネントを実装する１以上のコンピュータ装置によって行われる。
【００２９】
一実施形態において、解析部コンポーネントは、複数の異なるコンピュータアセットに関して以前の段落に記載されている工程を行うよう各解析部が構成された複数の解析部のうちの１つである。グローバルポリシーデータリポジトリは、少なくとも上記複数の解析部によって共有されている。
【００３０】
一実施形態において、本方法は、メッセージ情報からの、システムレベルのポリシーによって記述されている条件が存在するという決定に基づき、上記ポリシーの１以上を識別する工程を更に含む。本方法は、記載されている条件に照らしてブロックまたはリダイレクトされるメッセージを識別するための論理を含む１以上のアセットレベルのポリシーを生成する工程を更に含む。本方法は、生成された１以上のアセットレベルのポリシーを含むようグローバルポリシーデータを更新する工程を更に含む。
【００３１】
一実施形態において、本方法は、メッセージ情報の集合的な解析に基づいて、コンピュータシステムに対する分散型の攻撃を識別する工程を更に含む。本方法は、分散型の攻撃に関与するメッセージを識別するための論理を含む第１のポリシーを生成する工程を更に含む。本方法は、第１のポリシーを記述するようグローバルポリシーデータを更新する工程を更に含む。
【００３２】
一実施形態において、本方法は、解析部コンポーネントが、メッセージ情報に基づいて、第１のコンピュータアセットにおいて生じている攻撃を識別する工程を更に含む。本方法は、複数のコンピュータアセットのうちの少なくとも第２のアセットであって、第２のアセットが攻撃に関与するメッセージを受信したことを示す第２のアセットからのメッセージ情報を解析部コンポーネントがまだ受信していない前記第２のアセットにおいて、攻撃に関与するメッセージを識別するための論理を含む第１のポリシーを生成する工程を更に含む。本方法は、第１のポリシーを記述するようグローバルポリシーデータを更新する工程を更に含む。
【００３３】
一実施形態において、上記ポリシーのうちの所与のポリシーによって示されているポリシーに基づくアクションは、所与のポリシーが適用されるあらゆるメッセージをブロックすること、所与のポリシーが適用されるあらゆるメッセージをリダイレクトすること、または、所与のポリシーが適用されるあらゆるメッセージにアセットが正常に応答することを許可することのうちの１つである。一実施形態において、ポリシーデータを送信する工程は、複数のコンピュータアセットからのグローバルデータリポジトリに対するダイレクトクエリに応答すること、または、解析部コンポーネントによって、グローバルデータリポジトリからポリシーデータを読み出し、解析部コンポーネントから複数のコンピュータアセットに上記ポリシーデータを送信することのうちの一方を含む。一実施形態において、複数のコンピュータアセットのうちの第１のアセットは、第１のアセットによって受信されたメッセージがダイレクトされるサーバアプリケーションの前に配置される。一実施形態において、複数のコンピュータアセットのうちの第１のアセットは、第１のアセットによって受信された少なくとも一部のメッセージに応答するウェブサーバアプリケーションを実行する。
【００３４】
他の態様において、本発明は、上述の工程を行うよう構成されたコンピュータ装置およびコンピュータ可読媒体を包含する。
【００３５】
２．０．構造的概観
図１は、一実施形態による、記載される技術が実施され得る例示的なネットワーク化されたコンピュータシステム１００を示す。システム１００は、１以上のコンピュータ装置を含む。これらの１以上のコンピュータ装置は、本明細書に記載される様々な論理的コンポーネント（コンポーネント１０５〜１５７を含む）を実装するよう構成されたハードウェアおよびソフトウェアの任意の組合せを含む。例えば、１以上のコンピュータ装置は、本明細書に記載される様々なコンポーネントを実装するための指示を格納する１以上のメモリと、１以上のメモリに格納された指示を実行するよう構成された１以上のハードウェアプロセッサと、様々なコンポーネントによって用いられ操作されるデータ構造を格納するための１以上のメモリ内の様々なデータリポジトリとを含み得る。
【００３６】
一実施形態において、システム１００は、システム１００の様々なコンポーネントを一組のサーバサイドの処理として集合的に実装する１以上のサーバコンピュータ装置を含むサーバコンピュータシステムである。サーバコンピュータシステムは、図示されているコンポーネントが記載される機能性を提供するために用いるウェブサーバ、アプリケーションサーバ、データベースサーバ、および／または他の従来のサーバコンポーネントを含み得る。一実施形態において、特定のサーバコンポーネントは、完全にまたは部分的に、１以上のネットワーク（例えば、インターネット等）によってシステム１００に接続された「クラウド」に基づくシステムを用いて実装され得る。クラウドに基づくシステムは、システム１００のコンポーネントに対して処理、ストレージ、ソフトウェア、および／または他のリソースを提供するためのインターフェースを表示し得る。一実施形態において、クラウドに基づくシステムは、システム１００が配置されている別のエンティティの代理として第三者のエンティティによって実装され得る。しかし、他の実施形態では、システム１００のコンポーネントは全体的に、単一のエンティティによって所有され運営されているコンピュータシステムによって実装され得る。
【００３７】
２．１．アセット
本明細書において用いられる「アセット」は、一般的に、ネットワーク化されたコンピュータシステムの論理的または物理的コンポーネントである。アセットは、コンピュータ装置、コンピュータ装置のシステム、または、そのようなコンピュータ装置またはコンピュータ装置のシステムにおいてハードウェアおよび／またはソフトウェアの任意の組合せによって実装されたコンポーネントであり得る。一実施形態において、アセットは、サーバに基づくアプリケーションが１以上のコンピュータネットワークを介してクライアントコンピュータとやりとりするための１以上のサーバサイドのインターフェースを含む。例えば、アセットは、ウェブサーバ、アプリケーションサーバ、特定のウェブサイト、特定のアプリケーション、メールサーバ等を含み得る。
【００３８】
システム１００は、他のコンポーネントの中でも特に、ネットワーク１０５または１グループのネットワーク１０５によって接続された一組のアセット１１０を含む。ネットワーク１０５は、例えば、内部ネットワークまたはイントラネット等の信頼できるネットワークであり得る。システム１００は、実施形態に応じて、図示されていない様々なタイプのコンポーネント（例えば、他のアセット、ルーター、パーソナルコンピュータ、開発装置、バックアップサーバ等）を含み得る。ネットワーク１０５およびそれに直接接続されているコンポーネントは、必ずしも単一の物理的領域に制約される必要はない。例えば、一部の実施形態では、ネットワーク１０５は、それぞれ異なる地理的領域に配置され、専用回線、仮想プライベートネットワーク、および／または他の任意の適切な機構を介して接続された複数のサブネットワークを含み得る。
【００３９】
アセット１１０は、少なくとも部分的に、ネットワーク１０５上のネットワークトラフィックの少なくとも一部の態様の管理を担当するトラフィック管理コンポーネントとして機能する。アセット１１０は、少なくとも１つのネットワーク１９５を介したクライアント１９０との通信に晒される。ネットワーク１９５は、ネットワーク１０５とは対照的に、システム１００の外部にある、システム１００の所有者または操作者が制御していない信頼できないおよび／または監視されていないネットワーク（例えば、公共のワイドエリアネットワークまたはインターネット等）であり得る。よって、通信は、システム１００の所有者または操作者によって予め承認されていないクライアントコンピュータ装置から、ネットワーク１９５を介して受信され得る。少なくとも１つのそのような実施形態において、各アセット１１０はシステム１００の攻撃対象領域の一部を構成し、攻撃対象領域において、各アセット１１０は、ネットワーク１０５を介して、１以上のクライアント１９０からのメッセージを、メッセージがシステム１００内のファイアウォールまたは他のトラフィック管理コンポーネントをまず通過していない状態で、直接受信する。しかし、他の実施形態では、メッセージは、アセット１１０に届く前に、例えば、ルーター、負荷分散装置、他のアセット１１０、または専用のファイアウォール等の任意の数の他のコンポーネントを通過し得る。更に、少なくとも一部の実施形態では、ネットワーク１９５とネットワーク１０５とは全く区別されなくてもよい。
【００４０】
一部の実施形態では、アセット１１０の一部または全ては、１以上の他のアセットの前に配置された専用のファイアウォール装置、専用のソフトウェアファイアウォール、プロキシサーバ、エッジサービスアプリケーション、負荷分散装置、ゲートウェイ装置、および／または他のトラフィック管理コンポーネントであってもよく、他のアセットへとダイレクトされるメッセージが、他のアセットに届く前に、セキュリティまたは他の目的で、そこを通るようルーティングされる。他の実施形態では、アセット１１０の一部または全てがメッセージの意図された宛先であるように、別のトラフィック管理コンポーネントを先に用いるのが有利であり得る。例えば、アセット１１０は、それ自体の統合されたトラフィック管理コンポーネントを備えたウェブアプリケーション、ＡＰＩサーバ、またはストリーミングサーバであり得る。
【００４１】
一部の実施形態では、記載される技術を実装するために、コンピュータコードの１以上のライブラリを利用可能にしてもよい。１以上のライブラリは、アセット１１０によって実行された際に、アセット１１０の図示されているトラフィック管理コンポーネントの一部または全てを実装させる指示を含む。各アセット１１０は、トラフィック管理コンポーネントを実装するために、同じ１以上のライブラリを含み得る、または参照し得る。例えば、１以上のライブラリは、例えばネットフリックス社によって作られたエッジサービスのためのＺｕｕｌフレームワーク等のオープンソースウェブアプリケーションフレームワークに組み込まれてもよく、各アセット１１０はそのインスタンスであってもよい。必要に応じて、各アセット１１０は、メッセージに関して他の機能を行うための他の図示されていない更なるコンポーネントを実装するコードをそれぞれ含み得る。例えば、一部のアセット１１０は、更なるウェブアプリケーションコンポーネントを実装するコードを実行してもよく、他のアセット１１０は、更なるＡＰＩサーバコンポーネントを実装するコードを実行してもよい。他の実施形態では、アセット１１０は、共通のライブラリのセットに依存するのではなく、図示されているトラフィック管理コンポーネントの一部または全てをアドホックで実装し得る。
【００４２】
２．２．クライアント
クライアント１９０は、しばしばエンドユーザによって操作される個々のコンピュータ装置またはそのコンポーネントであり得る。例えば、クライアント１９０は、デスクトップコンピュータ上のウェブブラウザ、セットトップメディアボックス、モバイル装置上で実行されるアプリケーション等であり得る。アセット１１０を潜在的に含むシステム１００の特定のコンポーネントは、ネットワーク１９５を介して、例えばウェブページの配信、メディアコンテンツのストリーミング、電子メールの送信、アプリケーションプログラミングインターフェース（「ＡＰＩ」）呼び出しに対する応答等の様々なネットワーク化されたサービスをクライアント１９０に提供する。この目的で、クライアント１９０は、アセット１１０に対して様々なメッセージを送信および／または受信し得る。
【００４３】
２．３．メッセージハンドリング
アセット１１０は、少なくとも１つのメッセージハンドラーコンポーネント１１２を含む。メッセージハンドラー１１２は、通信インターフェースを介して、クライアント１９０からの、および／またはクライアント１９０へのメッセージを受信するよう構成される。本明細書に記載される目的で、メッセージは、クライアント１９０もしくはアセット１１０へと、またはクライアント１９０もしくはアセット１１０から送信される任意のデータ構造を含み得る。メッセージは、例えば、ＴＣＰもしくはＵＤＰパケット、ＨＴＴＰ要求もしくは応答、またはＦＴＰパケット等であるがそれらに限定されない様々な任意の標準的なネットワーキングプロトコルに従ったデータグラムまたはパケットであり得る。一実施形態において、メッセージは、メッセージの内容を含む「ペイロード」と、例えば、送信者および／または意図された受信者の識別子（例えばＩＰアドレス、ＭＡＣアドレス、ドメイン名、電子メールアドレス等）、メッセージの通信に用いられるポート番号、メッセージタイプまたは他の分類情報、タイムスタンプ、ルーティング指示等の「ヘッダー」または「トランザクション」情報とを含むよう構築される。しかし、本明細書に記載される技術は、メッセージのいかなる特定の形態にも限定されない。更に、メッセージの複数の層があり得、或る層（例えばネットワーク層またはトランスポート層等）の１グループの関連するメッセージが、別の層（例えばアプリケーション層等）の単一のメッセージを構成するために構築または解釈される。実施形態に応じて、記載される技術は、様々なメッセージタイプおよび／または１もしくは幾つかの異なる層のメッセージのうちの任意のメッセージに適用され得る。
【００４４】
メッセージハンドラー１１２は、メッセージの受信に応答して、１以上の指定されたアクションを識別して行うよう構成され得る。例示的な指定されたアクションとしては、要求されたデータ構造を読み出して返すこと、メッセージによって特定されているパラメータに基づいてデータ構造を生成して格納または返すこと、メッセージを、メッセージよって特定または示されている別のアセットに転送すること、メッセージを転送するアセットを選択すること等が挙げられるが、それらに限定されない。指定されたアクションは、メッセージ内で特定されていてもよい。例えば、メッセージハンドラー１１２はウェブアプリケーションサーバであってもよく、メッセージは、特定されているロケーションからのデータを返す、または特定されているコマンドを実行する要求であり得る。或いは、指定されたアクションは、メッセージの何らかの態様（例えばヘッダーまたはトランザクション情報等）から暗示されるものであり得る。例えば、宛先ＩＰアドレス、ポート番号、および／またはＵＲＬパスは、アセット１１０に、メッセージを別のアセットに転送するよう示し得る。一部の実施形態では、指定されたアクションは、全てのアセットによって受信されたメッセージ１１０について同じであり得る。例えば、アセット１１０は、メッセージを常に特定のサーバまたはアプリケーションに転送するよう構成されたプロキシサーバコンポーネントであり得る。
【００４５】
しかし、メッセージハンドラー１１２は、メッセージについての何らかの指定されたアクションを行う前に（または指定されたアクションを識別する前に）、何らかの指定されたアクションの前にまたはその代わりに何らかのポリシーに基づくアクションが行われるべきか否かを決定するための前処理のために、受信されたメッセージをポリシーエンフォーサー１１４に送信するよう構成される。このポリシーエンフォーサー１１４による前処理（本願の他の箇所で説明する）の結果、メッセージハンドラー１１２は、一部の実施形態では、メッセージハンドラー１１２がメッセージの処理を通常の方法で続けて、指定されたアクションを行うべきか、メッセージを無視するべきか、または他のポリシーに基づくアクション（例えば、メッセージをリダイレクトすること、指定された状態コードまたはエラーメッセージを用いて返信すること等）を行うべきかの表示を受信し得る。他の実施形態では、ポリシーエンフォーサー１１４がポリシーに基づくアクションの実行を担当してもよく、従って、メッセージハンドラー１１２は、単に、メッセージの処理を通常の方法で続けるべきか否かの表示を受信する。
【００４６】
メッセージハンドラー１１２は、受信されたメッセージ、または受信されたメッセージから生成された情報をメッセージロガーコンポーネント１１３に送信するよう更に構成される。次に、メッセージおよび／またはメッセージから生成された情報は、メッセージログ１１７に記録される。メッセージログ１１７は、任意の適切な形態のデータリポジトリに格納され得る。メッセージログ１１７は、メッセージの任意の適切な特性（例えば、ヘッダーフィールド値、ペイロードの内容等）を記述し得る。メッセージログ１１７は、例えば、特定の量のメッセージのみを格納する循環キャッシュ等の一時的なリポジトリであってもよい。或いは、メッセージログ１１７は、より永久的な形態で格納されてもよい。
【００４７】
所与のメッセージによって指定されたアクションのタイプに応じて、および／または、何らかのポリシーが適用されたか否かに応じて、クライアント１９０は、所与のメッセージに応答した返信メッセージを受信する場合、または受信しない場合がある。返信メッセージは、メッセージハンドラー１１２またはアセット１１０の別のコンポーネントから送信され得るか、またはそれを介して中継され得る。或いは、アセット１１０が、元のメッセージをシステム１００の別のコンポーネントに中継した場合には、一部の実施形態では、返信メッセージは、その別のコンポーネントから直接受信され得る。メッセージログ１１７は、所与のメッセージが応答されたか否か、どのように応答されたかを更に示してもよく、および／または、メッセージログ１１７は、メッセージの処理に関連する動作統計（例えばシステムリソース使用率等）を含んでもよい。
【００４８】
２．４．ポリシーの執行
アセット１１０は、ポリシーエンフォーサー１１４を更に含む。ポリシーエンフォーサー１１４は、メッセージおよび／またはメッセージと関連づけられた情報を、ローカルポリシーキャッシュ１１５に記録されているポリシーに照らして解析するよう構成される。ローカルポリシーキャッシュ１１５は、ポリシーエンフォーサー１１４がポリシーをすぐに入手できるように、ポリシーを、例えばファイル、ファイルの行、データベースレコード等のデータ構造として、アセット１１０が実装されるコンピュータ装置内にあるまたはコンピュータ装置に直接接続されているストレージ装置に格納する。
【００４９】
ポリシーは、ポリシーがメッセージに「適用される」か否かを決定するための論理と、ポリシーが適用される場合に、メッセージに関して行われる１以上のポリシーに基づくアクションを示す１以上の指示とを含む。論理は、メッセージの内在的な詳細（例えばヘッダー情報またはペイロードの内容等）に基づくものであり得る。論理は、必要に応じて、現在のメッセージに関連し得る以前のメッセージに関する情報（例えば、特定のタイプの以前のメッセージのカウント数、または特定の指定されたソースを有すること等）に更に基づき得る。このタイプの情報は、例えば、メッセージログ１１７に記録され得る。
【００５０】
幾つかのポリシーについては、論理は、検査対象のメッセージの特定のフィールドまたは特徴を、それらが一致した場合にポリシーがメッセージに適用されることを示す１以上の値または値の範囲と共に、単純に特定したものであってもよい。他のポリシーは、検査のための更なるメッセージフィールドまたは特徴を特定してもよい。別の例として、論理は、特定されたメッセージフィールドまたは特徴について現在のメッセージと同じ値（または同じ値の範囲内の値）を有する、或る期間にわたって受信された全てのメッセージに基づく統計を算出するための関数を特定してもよい。論理は、ポリシーが適用されるか否かを決定するために、算出された統計と比較される値を更に示してもよい。当然ながら、本明細書に記載される技術は、ポリシーを表すためのいかなる特定のタイプの論理にも限定されず、様々な複雑さの様々なポリシーに関して用いられ得る。
【００５１】
ポリシーがメッセージに適用されることが決定された場合には、実施形態に応じて、ポリシーエンフォーサー１１４は、メッセージに関してとられるべき１以上のポリシーに基づくアクションを行うか、または、例えばメッセージハンドラー１１２等の別のコンポーネントに、１以上のポリシーに基づくアクションを行うよう指示し得る。
【００５２】
２．５．ログの報告および解析
システム１００は、少なくとも１つの解析部１５０を更に含む。解析部１５０はアセット１１０の外部にある。例えば、解析部１５０は、アセット１１０の一部または全てではなく、異なる組の１以上のサーバコンピュータ装置上で実行され得る。解析部１５０は、複数のアセット１１０で受信されたメッセージを解析し、解析に基づいて新たなポリシーを識別し、その新たなポリシーを、複数のアセット１１０において用いるために発行するよう構成される。
【００５３】
この目的で、各アセット１１０は、そのアセット１１０において受信されたメッセージおよび／またはメッセージに関する情報を解析部１５０に送信するよう構成された報告コンポーネント１１８を含む。図示されているように、報告部１１８は、新たなレコードについてメッセージログ１１７をモニタリングして、必要に応じて、それらの新たなレコードを反映するデータを解析部１５０に流すという点で、メッセージハンドラー１１２とは非同期に動作する。しかし、他の実施形態では、メッセージハンドラー１１２またはメッセージロガー１１３は、新たなメッセージを処理する際に即時に報告部１１８を呼び出してもよく、報告部１１８は必ずしもメッセージログ１１７にアクセスする必要はない。報告部１１８は、各新たなメッセージについての情報を即時に解析部１５０に流し得る。或いは、報告部１１８は、リソース使用率を最適化するために、複数のメッセージについての情報をバッチ処理して、様々な任意の規則またはプロトコル従って決定されたタイミングで、バッチ処理された情報を流してもよい。
【００５４】
一実施形態では、報告部１１８は、各メッセージのログを送信する。他の実施形態では、報告部１１８は、メッセージが対象のメッセージであることを示す何らかの基準または規則をメッセージが満たす場合にのみ、そのメッセージについてのログを送信し得る。実施形態に応じて、ログは、完全なメッセージ、または特定のヘッダーもしくはトランザクション情報のみを含み得る。一実施形態では、各メッセージについての個々のログを送信する代わりに、複数のグループのメッセージから得られたデータを様々な統計にして、解析部１５０に送信してもよい。
【００５５】
解析部１５０は、メッセージ情報をメッセージデータベース１５７に格納するよう構成される。解析部１５０は少なくとも１つのログ解析部１５２を更に含み、ログ解析部１５２は、メッセージデータベース１５７内のメッセージ情報を、継続的に、或る間隔で、および／またはトリガ条件に応答して、解析するよう構成されている。
【００５６】
ログ解析部１５２は、システム１００についての状態情報を、解析部１５０のポリシー生成コンポーネント１５４に供給するよう更に構成される。状態情報は、実施形態に応じて、例えば、クライアント１９０毎の、特定の時間にわたってアセット１１０によって受信された特定のタイプのメッセージのカウント数、各アセット１１０へのアクティブな接続の数、ネットワークリソース使用率の傾向、メモリ使用率の傾向、プロセッサ使用率の傾向、既存のポリシーの適用頻度の表示等の様々な情報を含み得る。
【００５７】
一実施形態において、ログ解析部１５２は、状態情報中に、メッセージ情報に基づいて特定のクライアント１９０を特徴づけるデータを含めるよう更に構成され得る。例えば、ログ解析部は、クライアント１９０が特定の期間にわたって特定のタイプの要求を行った頻度に基づいて、クライアント１９０を、現在、潜在的なリスクになっていると分類する論理を実装し得る。正確な特徴づけ論理は、管理者によって構成可能であってもよく、および／または、実施形態に応じて様々であってよい。
【００５８】
状態情報がポリシー生成コンポーネント１５４に供給される頻度、または、それに応答する条件は、実施形態によって様々であり得る。状態情報は、一度に全て送信される必要はない。例えば、ログ解析部１５２は、状態情報の個々の項目を、それらの項目が識別された際に報告してもよい。
【００５９】
一実施形態において、ログ解析部１５２は、システム１００内の他のコンポーネントが、ログ解析部１５２が入手可能な様々な状態情報をクエリするために用い得る１以上のサーバインターフェースを提供するよう更に構成され得る。例えば、システム１００内の或るアセットが、ログ解析部１５２に、特定のＩＰアドレスまたはドメインを有する通信に関する情報（あれば）をクエリし得る。そのようなクエリは、様々な理由で有用であり得る。例えば、サーバが、特定のＩＰアドレスまたはドメインからの疑わしいトラフィックを受信し、クエリの結果が、その疑わしいトラフィックが過去に頻繁に生じていることを示す場合、サーバは、例えばそのＩＰアドレスまたはドメインをブラックリストに載せる等の積極的なアクションをとるよう構成され得る。
【００６０】
２．６．ポリシーの生成および発行
ポリシー生成部１５４は、ログ解析部１５２からの状態情報に基づいて、潜在的なセキュリティの脅威またはシステム１００の完全性に対する他のリスクを識別するよう構成される。ポリシー生成部１５４は、識別されリスクに最適に対処するために（および、一部の実施形態では、もはや存在しないリスクに対処することが意図されたポリシーを除去するために）、識別されたリスクに基づいて、ポリシーデータベース１５５に格納されるポリシーを生成、修正、および／または削除するよう更に構成される。リスクを識別してポリシーを生成するための多くの技術が存在し、または可能であり、ポリシー生成部１５４は、実施形態に応じて任意の適切な技術を用いてよい。
【００６１】
一実施形態において、ポリシー生成部１５４によって生成されたポリシーは、解析部１５０が担当する各アセット１１０において適用されるよう意図され得る。一実施形態において、幾つかのポリシーは、例えば、特定の地理的領域またはクラスタ内の全てのアセット１１０、特定のタイプの全てのアセット１１０、または単一の特定されたアセット１１０等といった、特定のアセット１１０のみにおいて適用されるよう調節され得る。一実施形態において、ポリシー生成部１５４によって生成されたポリシーは、所与のアセット１１０が、アセット１１０が既に入手可能な情報のみに基づいて、そのポリシーに該当するメッセージを識別するのに十分な論理を有する。例えば、ポリシーは、単一のアセット１１０が、他のアセット１１０からのメッセージログ１１７にアクセスできない場合であっても、および／または、単一のアセット１１０がシステム１００の他の任意のコンポーネントと、メッセージに関する通信を行う必要なく、単一のアセット１１０が、該当するメッセージをブロックするために識別するのに十分な情報を有し得る。
【００６２】
一実施形態において、トラフィック情報に基づいてポリシーが生成された際に、そのポリシーは、実際にはデータの解析／収集に寄与していない場合もある任意のエンドポイントに分配され得る。例えば、ログ解析部１５２は、所与のＩＰアドレスが「悪い」ことを見出し得る。次に、ポリシー生成部１５４は、そのＩＰアドレスからのメッセージをブロックするポリシーを生成し得る。そして、そのポリシーが他のシステムに、システム１００の外でそれぞれ独立して用いられるために分配され得る。例えば、悪いと疑われるＩＰのグレーリストが、そのグレーリストを用いてリスクスコアまたは不正スコアを算出するよう構成された別の接続されていない不正検出システムに対して周期的に発行され得る。
【００６３】
ポリシーが生成、修正、または削除されたら、解析部１５０は、生成もしくは修正されたポリシーを含むよう、または削除されたポリシーを除去するよう、ポリシーデータベース１５５を更新する。その場合、解析部１５０のポリシー発行部コンポーネント１５６は、任意の適切なプッシュ型および／またはプル型の配信技術を用いて、ポリシーデータベース１５５内の更新されたポリシーを各アセット１１０に対して発行するよう構成される。そして、各アセット１１０はポリシーコンシューマーコンポーネント１１６を含み、ポリシーコンシューマー１１６は、ポリシーの更新を受信し、それに従ってポリシーキャッシュ１１５を更新するよう構成される。一部の実施形態では、ポリシー発行部１５６は、単に、ポリシーデータベース１５５内へのポリシーの格納を担当してもよく、各ポリシーコンシューマー１１６は、対応するローカルポリシーキャッシュ１１５をポリシーデータベース１５５と同期化させるために、様々なタイミングでポリシーデータベース１５５にアクセスするよう構成されてもよい。
【００６４】
一実施形態において、ポリシー生成部１５４がアセット１１０のためにポリシーを動的に生成する１つの方法は、ユーザが定義した一般的なシステムレベルの一組のポリシーを用いて、より具体的なアセットレベルの動的なポリシーを作成すべきときを決定することである。例えば、一般的なポリシーは、システム１００において（単一のアセット１１０において、または幾つかのアセット１１０の組合せにおいて）特定のタイプの要求が特定の期間にわたって特定の回数を超えて受信された場合に、ＩＰアドレスを特定の期間にわたってブラックリストに載せ、この状態が続く場合にはそのＩＰアドレスを永久的にブラックリストに載せることであり得る。ポリシー生成部１５４が、状態情報から、前者の条件が生じたことを決定した場合には、ポリシー生成部１５４は、各アセット１１０に、そのＩＰアドレスからのメッセージを特定の回数にわたってブロックするよう指示するアセットレベルのポリシーを動的に生成し得る。違反条件が終わった場合には、ポリシー生成部１５４はそのポリシーを除去し得る。或いは、その条件が続く場合には、ポリシー生成部１５４は、そのアセットレベルのポリシーが永久的に執行されるよう、アセットレベルのポリシーを修正し得る。
【００６５】
なお、メッセージデータベース１５７は複数の異なるアセット１１０から収集されたメッセージ情報を含むので、解析部１５０のコンポーネントは、個々のアセット１１０に影響する脅威のみではなく、システム１００全体に対する脅威を識別するために、システム１００内の全てのアセット１１０についてのメッセージ情報を総合的に解析する能力を有する。これにより、解析部１５０は、各アセットのログが孤立した状態で解析されるシステムで可能であるよりも早期に、特定のタイプの分散型の攻撃を識別できる。また、状態情報は、単に個々のアセット１１０に関してではなく、システム１００全体についてのネットワークトラフィックの状態を記述するので、ポリシー生成部１５４は、そうでない場合に可能であるよりも迅速に、分散型の攻撃に対処するためのポリシーを生成する能力を有してもよく、それによってシステム１００全体に対するそのような攻撃の影響を最小限にする。更に、１つまたは少数のアセット１１０において１つのタイプの攻撃が見られる場合には、ポリシー生成部１５４は、他のアセット１１０または全てのアセット１１０がその攻撃に対処するためのポリシーを生成してもよく、それにより、他のアセット１１０が、それらのアセット１１０がまだ遭遇していない攻撃に対するポリシーを先制的に配置するのを可能にする。
【００６６】
２．７．分散型の解析部
図２は、一実施形態による、それぞれ異なるグループのアセット２１０を担当する複数の解析部２５０を含む、例示的なネットワーク化されたコンピュータシステム２００を示す。システム２００は、図１のシステム１００と同様に、１以上のコンピュータ装置を含む。これらの１以上のコンピュータ装置は、本明細書に記載される様々な論理的コンポーネント（コンポーネント２１０〜２５５を含む）を実装するよう構成されたハードウェアおよびソフトウェアの任意の組合せを含む。
【００６７】
一実施形態において、各アセット２１０は、図１のアセット１１０に関して説明されたのと同じコンポーネントを含み得る。各解析部２５０は、図１の解析部１５０に関して説明されたのと同じコンポーネントを含み得る。従って、一実施形態では、システム１００および２００は、システム１００については単一の領域のみが図示されていることを除き、実際には同じシステムであってもよい。他の実施形態では、アセット２１０および／または解析部２５０は、図１に図示されているのとは異なるコンポーネントおよび／またはそれらの構成を用いて、アセット１１０および／または解析部１５０に関して説明されたのと同様の機能性を提供するよう構成され得る。なお、システム２００は複数の解析部２５０を含むが、本明細書に記載される技術は、例えば、解析部１５０がシステム１００内の唯一の解析部コンポーネントである場合等の単一の集中型の解析部を有するシステムにも等しく適用可能である。
【００６８】
システム２００は、例えば図示されている領域２３１および２３２等の２以上の領域に更に分割される。領域２３１および２３２は地理的領域に対応する。例えば、領域２３１は、北米用のデータセンターに対応し、領域２３２は欧州用のデータセンターに対応し得る。しかし、一実施形態では、領域２３１および２３２は、グループが地理的領域に対応するか否かに関係ない、アセット２１０の任意のグループであり得る。
【００６９】
各領域２３１は、１以上のクラスタを含み得る。例えば、図示されているように、領域２３１はクラスタ２２１およびクラスタ２２２を含み、領域２３２はクラスタ２２３および２２４を含む。各クラスタ２２１〜２２４は複数のアセット２１０を含む。クラスタは、アセット２１０の任意のサブグループであり得る。例えばクラスタ２２１および２２３は、それぞれの領域内のウェブサーバアセットである（またはそれらを保護する）アセット２１０で構成される「ウェブクラスタ」であってもよく、クラスタ２２２および２２４は、それぞれの領域内のＡＰＩサーバアセットである（またはそれらを保護する）アセット２１０で構成される「ＡＰＩクラスタ」であってもよい。しかし、他の実施形態では、クラスタは、他の分類スキーム、地理的な近さ、実装するコンピュータ装置、または他の任意の適切なグループ化基準によってグループ化され得る。
【００７０】
各アセット２１０は、受信されたメッセージに関する情報を、アセット２１０が属する領域２３１／２３２の解析部２５０に流すまたは別様で送信するよう構成される。解析部２５０は、共有の多領域データリポジトリ２５５に対してポリシーを発行するよう構成される。例えば、多領域データリポジトリ２５５は、ポリシーデータベース１５５を格納し得る。多領域データリポジトリ２５５は中央データリポジトリであってもよく、または、多領域データリポジトリ２５５は各領域２３１／２３２に分散されていてもよい。例えば、各領域２３１／２３２は、任意の適切な同期化技術によって他の領域２３１／２３２における複製と同期化された、多領域データリポジトリ２５５の複製をそれぞれ格納し得る。
【００７１】
各アセット２１０において、ポリシーのローカルな複製は、多領域データリポジトリ２５５において見出されるポリシーと同期化された状態に維持される。アセット２１０は、多領域データリポジトリ２５５に直接アクセスしてもよく、または、対応する解析部２５０を介して同期化が行われてもよい。各アセット２１０がポリシーのローカルな複製を維持しているので、各アセット２１０は、たとえアセットが対応する解析部２５０と或る期間にわたって接触できない場合でも、または多領域データリポジトリ２５５と通信できない場合でも、比較的最近のポリシーのセットを適用していることを確実にできる。同期化が行われる頻度は、管理者によって、例えば、システムリソースの可用性、および、解析部２５０においてポリシーを生成することと、アセット２１０においてポリシーを執行することとの間の許容可能なタイムラグの長さに基づいて構成可能であり得る。
【００７２】
一実施形態において、各解析部２５０は、アセット２１０が属する領域２３１／２３２内のアセット２１０のみからのメッセージ情報に基づいてポリシーを生成するよう構成され得る。従って、一部の解析部２５０は、それぞれの領域２３１／２３２内の異なるネットワークトラフィックを考慮して、他の解析部２５０が生成しないポリシーを生成し得る。別の実施形態では、各解析部２５０は、例えば、メッセージデータベース１５７を、多領域データリポジトリ２５５に共有データベースとして格納することにより、対応する領域２３１／２３２についてのメッセージ情報を、他の領域の解析部２５０と共有する。これは、各解析部２５０が同様に構成される場合には、各解析部２５０が最終的に同様のポリシーを生成する実施形態となり得る（但し、それぞれ異なる領域におけるデータ共有処理間のレイテンシーを考慮すると、１つの解析部２５０が、或るポリシーを、別の解析部２５０よりかなり前に生成し得る）。これは、或る解析部２５０が故障するような場合に、冗長性を提供する。
【００７３】
２．８．ミッドティアコンポーネント
一実施形態において、システム２００は、必要に応じて、１以上のミッドティアコンポーネント２４１を含む。ミッドティアコンポーネント２４１は、アセット２１０によって適用される更なるポリシーを示す、人間の操作者および／またはシステム２００内で実行される自動化された処理からの入力を受け付けるよう構成される。これらの更なるポリシーは、例えば、解析部２５０が動的に生成したものではなく、人間の操作者または自動化された処理が様々な技術を用いて識別した、固定されたポリシーまたはビジネス規則であり得る。各解析部２５０は、ミッドティアコンポーネント２４１が、（例えばログ解析部１５２を介して）状態情報もしくはメッセージログを読み出すこと、現在のポリシーのセットを読み出すこと、または、解析部２５０に新たなポリシーを修正または生成するよう指示すること等のタスクを達成するためのＡＰＩを表示するよう構成され得る。例えば、一実施形態において、１つのミッドティアコンポーネント２４１は、人間の操作者が、メッセージログに関する統計を見て、そのような統計に照らして新たなポリシーを構築するためのウェブインターフェースを提供する。別のミッドティアコンポーネントは、解析部２５０が入手可能なデータ以外のデータを用いて不正のチェックを行い、それに基づいて、自動的に新たなポリシーを生成して、解析部２５０に送信し得る。更に別のミッドティアコンポーネント２４１は、アセット１１０内に配置されている、特定のタイプの攻撃（例えば単純なレート違反制限によって検出可能な攻撃等）を迅速に識別するために設けられた他の図示されていないコンポーネント（例えば、メッセージハンドラー１１２の前に配置された前置フィルターコンポーネント）とやりとりすることによってポリシーを生成するよう最適化されたコンポーネントであり得る。
【００７４】
２．９．その他
システム１００および２００は、本明細書に記載される技術を行うのに適したシステムの例に過ぎない。他のシステムは、様々な構成の更なるまたはより少ないコンポーネントを含み得る。コンポーネント間における機能の分割も、実施形態に応じて異なり得る。図１に図示されているアセット１１０および解析部１５０のサブコンポーネントは、本明細書に記載される本発明の技術を説明する意図で記述された論理的コンポーネントである。サブコンポーネントは、ソフトウェアアプリケーション、パッケージ、モジュール、クラス、処理、またはオブジェクトの区別できる組に実際に対応してもよく、または対応しなくてもよい。例えば、一部の実施形態では、リスクを識別する処理とポリシーを生成する処理とは、ログ解析部１５２およびポリシー生成部１５４が単一のサーバアプリケーションとして実装されるよう相関されてもよい。別の例として、一部の実施形態では、メッセージハンドラー１１２、メッセージロガー１１３、およびポリシーエンフォーサー１１４は、単一のソフトウェアアプリケーションを構成してもよい。
【００７５】
本明細書に記載される様々なデータ要素は、様々な方法で格納され得る。例えば、ポリシーキャッシュ１１５、メッセージログ１１７、ポリシーデータベース１５５、およびメッセージデータベース１５７の各々は、１以上のデータリポジトリ内の別個の１以上のデータベーステーブル、データベース、またはファイルに格納され得る。或いは、これらの様々なデータ要素の一部は、１以上の組み合わされたデータベーステーブル、データベース、および／またはファイルに一緒に格納され得る。
【００７６】
３．０．機能的概観
３．１．ローカルポリシーの適用
図３は、一実施形態による、分散型トラフィック管理システムにおいてローカルポリシーを適用するための例示的なフロー３００を示す。フロー３００の様々な要素は、例えば上述のシステム１００および２００等のシステムを含む様々なシステムで行われ得る。一実施形態において、後述する機能的ブロックに関して説明される各処理は、汎用コンピュータまたは専用コンピュータのいずれかにおいて、コンピュータのメモリとのやりとり、およびその物理的状態を変換することを含むデータの読み出し処理、変換処理、およびストレージ処理を行いながら、１以上のコンピュータプログラム、他のソフトウェア要素、および／またはデジタル論理を用いて実装され得る。フロー３００は、アセットにおけるローカルポリシーの適用の一例である。他のフローは、様々な構成のより少ないまたは更なる要素を含み得る。
【００７７】
ブロック３１０は、例えばクライアント１９０等のクライアント装置、またはメッセージが受信され得る他の任意の装置からのメッセージを受信することを含む。メッセージは、例えばＨＴＴＰ要求またはＴＣＰパケット等の任意のタイプのメッセージであり得る。メッセージは、例えばアセット１１０または他の任意の適切なアセット等のアセットにおいて受信される。一実施形態において、メッセージは、行われるよう指定されたアクション（例えばファイルの読み出し、アプリケーションの実行、別のシステムコンポーネントへのメッセージの転送等）を特定または別様で示し得る。
【００７８】
ブロック３２０は、アセットについてのローカルポリシーデータ内の、メッセージが検査されるべき一組のポリシーを識別することを含む。例えば、ローカルポリシーデータは、ポリシーキャッシュ１１５、または、アセットに対してローカルなストレージ装置に格納された、ポリシーを記述する他の任意の適切なデータ構造であり得る。
【００７９】
ブロック３３０は、ポリシーによって特定されている１以上のメッセージ特性についての値を識別することを含む。例えば、メッセージ特性は、例えばソースまたは宛先のＩＰアドレス等のヘッダーフィールド、要求されている統一資源識別子（ＵＲＩ）、参照ＵＲＩ、メッセージと関連づけられたクッキーまたはセッションデータ、タイムスタンプ、トランザクションメタデータ、ペイロード内における特定のキーワードの存在等を含み得るが、それらに限定されない。一実施形態において、メッセージ特性は、アセットによって受信された、１以上の同様の特性を有する以前のメッセージから少なくとも部分的に生成された統計または他の情報を含み得る。これらの以前のメッセージは、上記および他の目的で、例えば、メッセージログ１１７または他の任意の適切なローカルリポジトリに記録されたものであり得る。メッセージ特性は、メッセージ特性を得るための論理が既にアセットに知られているように、予め定義されたまたは周知のメッセージフィールドまたは特徴に対応し得る。或いは、ポリシーは、他のメッセージ特性からその値を算出するよう構成された関数または他の実行可能な論理を特定することによって、メッセージ特性についての値を識別する方法を特定し得る。
【００８０】
ブロック３４０は、識別された値に基づいて、ポリシーがメッセージに適用されるか否かを決定することを含む。ポリシーがメッセージに適用されるか否かを決定するために、任意の適切な技術が用いられ得る。ブロック３４０は、例えば、ポリシーによって特定されている値または値の範囲を、ブロック３３０において識別された１または複数の値と比較することを含み得る。ポリシーは、１以上の条件を含み得る。ポリシーによって特定されている論理に応じて、ポリシーが適用されるメッセージは、これらの条件の１つまたは全てのうちのどこかに一致することが要求され得る。
【００８１】
ブロック３４０は、ブロック３２０において識別されたポリシーの一部または全てについて行われ得る。一部の実施形態では、ブロック３２０〜３４０は、何回かの反復を用いて行われる。例えば、１回目の反復では、優先順位が最も高い単一のポリシーがロードされ得る。そのポリシーに必要な値は、ブロック３３０に従って算出される。次に、ブロック３４０において、その単一のポリシーについての決定が行われる。ポリシーが適用されない場合には、一致するポリシーが見出されるまで、または、ポリシーが適用されないことが決定されるまで、他のポリシーの各々について、更なる反復が続けて行われる。他の実施形態では、単一の反復において複数のポリシーまたは全てのポリシーが考慮され得るように、例えば決定木または状態マシン等の様々な最適化が用いられ得る。一実施形態では、一致するポリシーが見出されたら、他のポリシーを考慮する必要はなく、従って、ブロック３４０（および必要に応じてブロック３３０）は、他のポリシーに関して行われる必要はない。一実施形態では、一致するポリシーが見出されたか否かに関係なく、全てのポリシーが考慮され、複数の適用されるポリシーによって示されている矛盾するポリシーに基づくアクション（あれば）を調整するために、様々な優先順位付け機構が用いられ得る。
【００８２】
ブロック３４０において、ポリシーがメッセージに適用されると決定された場合には、フローはブロック３５０に進む。ブロック３５０は、適用されるポリシーと関連づけられた１以上のポリシーに基づくアクションを行うことを含む。ポリシーに基づくアクションは、例えば、メッセージをブロックすること（例えば「ブラックリストに載せる」）、メッセージのアドレスで指定されている宛先以外の宛先にメッセージを転送すること、メッセージがアドレスで指定されている宛先に進むことを許可すること（例えば「ホワイトリストに載せる」）、エラーメッセージまたは他の適切なメッセージを用いてメッセージに応答すること、および／または、アセットが実装するよう構成され得る他の任意の適切なタイプのアクションを含み得る。別の例として、アクションは、（例えば、後続のポリシー決定処理または生成処理に有用なように）メッセージについて通常は記録されない詳細なメッセージ情報を記録し得る。
【００８３】
ブロック３６０は、メッセージの処理を通常の方法で進める（例えば、メッセージによって示されている指定されたアクションを行う）か否かを決定することを含む。例えば、メッセージをブロックすること、またはエラーメッセージを用いて応答すること等の、特定のポリシーに基づくアクションは、アセットに、メッセージの処理を通常の方法で進めないよう暗示的または明示的に指示し得るものであり、その結果、フローはブロック３７０に進み、そこで、メッセージの処理が停止される。例えば、メッセージを許可すること、または詳細なメッセージ情報を記録すること等の、他のポリシーに基づくアクションは、アセットに、メッセージの処理を通常の方法で進めるよう暗示的または明示的に指示し得る。その結果、フローはブロック３８０に進む。
【００８４】
また、ブロック３４０において、ポリシーがメッセージに適用されないと決定された場合には、フローはブロック３８０に進む。ブロック３８０は、例えば、メッセージによって示されている指定されたアクションを行う等の、メッセージを通常の方法で処理することを含む。
【００８５】
３．２．ポリシーの生成および発行
図４は、一実施形態による、分散型トラフィック管理システムにおいてポリシーを生成して発行するための例示的なフロー４００を示す。フロー４００の様々な要素は、例えば、上述のシステム１００および２００等のシステムを含む様々なシステムにおいて行われ得る。一実施形態において、後述する機能的ブロックに関して説明される各処理は、汎用コンピュータまたは専用コンピュータのいずれかにおいて、コンピュータのメモリとのやりとり、およびその物理的状態を変換することを含むデータの読み出し処理、変換処理、およびストレージ処理を行いながら、１以上のコンピュータプログラム、他のソフトウェア要素、および／またはデジタル論理を用いて実装され得る。
【００８６】
ブロック４１０は、アセットにおいて、例えば、複数のアセットが図３のブロック３１０を行った結果として生じるメッセージ等のメッセージを受信することを含む。図示しないが、各アセットは、受信したメッセージの一部または全てに応答して、フロー３００を行い得る。フロー４００の実行は、フロー３００を行うアセットとは非同期に、ブロック４１０から進み得る。
【００８７】
ブロック４２０は、アセットが、例えば解析部１５０等の解析部に送信するメッセージ情報を識別することを含む。ブロック４３０は、メッセージ情報を解析部に送信することを含む。一部の実施形態では、メッセージ情報は本質的には各メッセージの完全な複製であるため、ブロック４２０はトリビアルな工程である。他の実施形態では、ブロック４２０は、様々な検出技術を用いて、解析部１５０の潜在的な対象であるメッセージを識別することを含み得る。例えばアセットは、解析部１５０によって行われるポリシーの決定に影響を及ぼし得る通常とは異なるメッセージを識別するための様々な規則または機械学習論理を有するよう構成され得る。従って、アセットは、全てのメッセージについてのメッセージ情報を送信するのではなく、潜在的な対象であるメッセージのみについてのメッセージ情報を送信する。一実施形態において、メッセージ情報は、更に、解析部が対象とし得るデータ（例えばフィールド、特性、統計等）のみを含むよう、フィルタリング、要約、集約、または別様で処理され得る。一実施形態において、メッセージ情報は、所与のメッセージの処理に関連づけて収集されたデータ（例えば、メッセージに応答するために使用されたアセット処理時間もしくはアセットリソースの量、または、いずれかのポリシーが適用されたか否か等）を含み得る。
【００８８】
一実施形態において、ブロック４２０〜４３０は、アセットにおいて、ブロック４１０におけるメッセージについての繰り返しとは非同期に実行される処理によって行われる。例えば、各アセットは、ブロック４１０に応答してアセットによって生成されたローカルメッセージログを周期的にまたは別様で読み込み、それに基づいてブロック４２０〜４３０を行うメッセージストリーミングコンポーネント（例えば報告部１１８等）を含み得る。そのような実施形態では、メッセージ情報は、複数のメッセージについて一度に一緒にバッチ処理され得る。或いは、メッセージストリーミングコンポーネントは、メッセージ情報を継続的に識別し得るが、メッセージ情報の配信については、ネットワークリソースが利用可能になるまで、および／または他の条件が満たされるまで待機し得る。他の実施形態では、ブロック４２０〜４３０は、メッセージの受信に応答して（例えば、フロー３００のブロック３１０においてメッセージが受信された際、または、メッセージに関するフロー３００を終了した際に）即時に行われる。
【００８９】
ブロック４４０は、解析部がメッセージ情報を記録することを含む。解析部は全メッセージ情報を記録してもよく、または、解析部は、メッセージ情報を処理して、フィルタリング、要約、または集約されたメッセージ情報のみを記録してもよい。メッセージ情報は、例えばメッセージデータベース１５７および／または多領域データリポジトリ２５５等の任意の適切なリポジトリに格納され得る。
【００９０】
ブロック４５０は、解析部が、記録されたメッセージ情報によって示されている望ましくない条件を識別することを含む。例えば、解析部は、アセットに対する特定のＩＰアドレスまたは特定のグループのＩＰアドレスからの攻撃、複数のシステムに影響している分散型の攻撃、望ましくない量のシステムリソースを消費している或るタイプのメッセージまたはクライアントのグループ等を識別し得る。解析部は、そのような条件を検出するための任意の適切な論理（例えば、予め定義された規則またはパターン認識に基づく論理等）を用い得る。必要に応じて、更に、またはその代わりに、ブロック４５０は、例えば、（例えば、要求を、負荷がかかり過ぎているまたは故障しているサーバから一時的にリダイレクトするポリシーを生成するか否かを示す）サーバ負荷統計等のシステムについての他の状態情報に基づいて望ましくない条件を識別することを含み得る。また、ブロック４５０は、必要に応じて、不要なポリシーが除去され得るように、もはや存在しない以前の望ましくない条件を識別することを含み得る。
【００９１】
ブロック４６０は、解析部が、望ましくない条件に対処するための少なくとも１つのポリシーを生成することを含む。ポリシーは、例えば、或るＩＰアドレスまたはＩＰアドレスの範囲をブロックすること、特定のタイプの要求をリダイレクトすること等の任意の適切な方法で、望ましくない条件に対処し得る。任意の適切な適応的ポリシー生成技術が用いられ得る。一実施形態では、ポリシーは、アセットが、他のアセットにおいてどのようなメッセージが受信されているかを知らずとも、アセットが解析部と通信する必要なく、単一のアセットにおいて適用可能なアセットレベルのポリシーである。
【００９２】
一実施形態において、解析部は、より一般的なシステムレベルのポリシーに基づいて、特定のアセットレベルのポリシーを生成し得る。システムレベルのポリシーは、複数のアセットからのメッセージ情報を反映する特性を潜在的に含む、メッセージ情報から得られた様々な特性の関数に少なくとも基づいて、望ましくない条件を示す基準を特定する。システムレベルのポリシーは、望ましくない条件が見出されたときに、どのようなアセットレベルのポリシーが生成されるべきかを更に示してもよい。
【００９３】
一実施形態において、ポリシーは時間基準を含み得る。解析部および／または個々のアセットは、それぞれの時間基準によって示される期限切れのポリシーを自動的に除去するよう構成され得る。
【００９４】
ブロック４７０は、ポリシーを記述しているデータを、ポリシーデータのリポジトリ（例えばポリシーデータベース１５５および／または多領域データリポジトリ２５５等）に格納することを含む。
【００９５】
ブロック４５０〜４７０は、フロー４００の残りの部分を進める前に、幾つかの生じ得る望ましくない条件に関して繰り返され得る。
【００９６】
ブロック４８０は、ポリシーの更新をアセットに送信することを含む。ブロック４８０は、例えば、アセットがポリシーデータをポリシーデータのリポジトリから直接読み出すこと、アセットが、解析部がポリシーの更新を提供することを周期的に要求すること、および／または、新たなポリシーが生成された際にまたは別様で、解析部が新たなポリシーの更新をアセットにプッシュすることを含み得る。例えば、各アセットは、ポリシーの更新について確認する、および／または、解析部もしくはリポジトリに、ポリシーの更新についてポーリングするコンシューマーコンポーネント（例えば、ポリシーコンシューマー１１６等）を含み得る。
【００９７】
ブロック４９０は、アセットが、任意の種類の同期化手段を用いて、それぞれのローカルポリシーデータをポリシーの更新と同期化させることを含む。なお、アセットは、フロー４００とは非同期に、フロー３００の様々な反復を行うので、アセットは、フロー３００の１回の反復を行った後、別のメッセージを受信する前に、ブロック４９０を行い得る。従って、そのアセットについてのフロー３００の次の反復は、フロー３００の前回の反復では考慮されなかった１以上の新たなポリシーを示す更新されたポリシーデータに基づくものとなる。
【００９８】
フロー４００は、ポリシーを生成して発行することの一例である。他のフローは、様々な構成のより少ないまたは更なる要素を含み得る。例えば、一実施形態では、ブロック４４０は必要ない。別の実施形態では、ブロック４５０および４６０は組み合わされてもよい。別の例として、フロー４００は、解析部が、例えば、ミッドティアコンポーネント２４１／２４２を介して受信され得るような、ビジネス規則または外部のコンポーネントによって生成されたフィルターを反映する固定されたポリシーを受信することを更に含み得る。これらの固定されたポリシーも、ブロック４７０において、ポリシーデータのリポジトリに追加され得る。
【００９９】
一実施形態において、ブロック４１０〜４４０および／またはブロック４８０〜４９０は、フロー４００の残りの要素とは非同期に、略連続的に行われる。一方、ブロック４５０〜４７０は、周期的にもしくは他の間隔で、または様々なトリガ条件（例えば、特定のタイプまたは量のメッセージ情報の受信等）に応答して繰り返され得る。
【０１００】
一実施形態において、ブロック４３０〜４８０は、分散型システム（例えば、システム２００または他の分散型システム等）における複数の解析部によって行われ得る。
【０１０１】
４．０．例示的な実装の詳細
一実施形態によれば、解析部は、セキュリティポリシーを執行すること、悪意のあるもしくは不正なアクティビティをブロックすること、ビジネス規則を執行すること、例えばレート制限等の特定の条件に基づいて、要求に対するカスタムのアクションを実行すること、ネットワークのエッジにおける対クロスサイトリクエストフォージェリ保護、ネットワークのエッジにおける対クロスサイトスクリプティング保護、迅速な反応時間を可能にするためのリアルタイムの積極的なセキュリティモニタリング（警戒アクション、および／もしくは、セキュリティ攻撃パターンを調べるために悪意のあるトラフィックをサンドボックスクラスタへとルーティングするためのルーティングアクションの実装を含む）、セキュリティ関連のインシデントに基づく反応的セキュリティモニタリング、インフラ脆弱性（あれば）に関する洞察を得るためのセキュリティ関連データのアドホックな解析、および／または、アセットが標的になりにくくなるよう攻撃者を欺くことであるが、それらに限定されないことの一部または全てを行うよう構成されたアセットレベルのポリシーを生成し得る。
【０１０２】
４．１．例示的なポリシー構造
一実施形態によれば、第１のポリシーデータベースは、データベース内の複数の行を含む。各行は１つのポリシーを表す。行の必要なフィールドは、例えば、ポリシー識別子、パスパラメータ、およびアクションパラメータを含み得る。行の必要に応じて設けられるフィールドは、方法パラメータ、レートパラメータ、領域パラメータ、クラスタパラメータ、ホストパラメータ、および／またはカスタムパラメータを含み得る。各パラメータは異なるメッセージ特性に対応し、ポリシーが適用されるか否かを決定するために対応するメッセージ特性と比較される単一の値、値の範囲、および／または値のリストを含み得る。
【０１０３】
一実施形態によれば、第２のポリシーデータベースは、複数の行を用いて複数のポリシーを表す。各行は、アクションが執行される対象（例えば、ＩＰアドレス、装置識別子、ユーザエージェント、顧客ＩＤ等）と、ポリシーＩＤとを特定する。各行は、メッセージ特性（例えばパス、方法、領域、クラスタ、ホスト、またはカスタム等）に対応する１以上のフィールドについての値を更に含む。実施形態に応じて、フィールドの１以上は空のままにされ、ポリシーが適用されるか否かを決定する際に無視されるメッセージ特性を示す。各行は、ポリシーについてのスケジュール（例えば、開始時間、終了時間、および／または反復パターン等）を示す必要に応じて設けられるフィールドを更に含み得る。各行は、行われるアクションを特定するフィールドを更に含む。
【０１０４】
第１のポリシーデータベースおよび第２のポリシーデータベースは、実施形態に応じて、互いに関連して、またはそれぞれ独立して用いられ得る。一実施形態において、第１のポリシーデータベースは、第２のポリシーデータベース内のポリシーを生成するときを決定するために、システムレベルで解析部によって用いられ、一方、第２のポリシーデータベースは、アセットにおいて、着信メッセージに対してポリシーを執行するために用いられる。しかし、他の実施形態では、ローカルポリシーデータは、第１のポリシーデータベースおよび第２のポリシーデータベースの両方を含み得る。
【０１０５】
第１のポリシーデータベースおよび第２のポリシーデータベースは、単に、ポリシーデータ構造の例である。更に別の実施形態では、ポリシーは、他の任意の適切な構造またはフォーマットでローカルにおよび／またはグローバルに格納され得る。
【０１０６】
４．２．例示的なポリシーキャッシュ
一実施形態によれば、アセットは、１以上の区別できるキャッシュの形態のローカルポリシーデータを格納し得る。一実施形態では、第１のキャッシュはグローバルリソースキャッシュである。グローバルリソースキャッシュは、アセットのための、特定のＵＲＩについて適用される適切な規則へのリソースＵＲＩのマッピングを含む。グローバルポリシーキャッシュの１つの用途は、特に、特定のＵＲＩに対して、ブラックリストおよび特別な規則を執行することである。例えば、例示的な用途のケースでは、顧客サービスセンターは、電子商取引プラットフォーム上で、アクセスに関して慎重に扱われるべきエンドポイントを用いるために、ホワイトリストに載せられる。しかし、ホワイトリストに載せることは、顧客サービスエージェントが全てのエンドポイントにアクセスすることを許可するものの、他の内部ツール、開発者、およびテストチームによって用いられることが意図された幾つかのＵＲＩがあり得、それらは顧客サービスエージェントについてはブロックされるべきである。そのようなリソースをグローバルリソースキャッシュにおいてリスト化して、着信した要求のＵＲＩを、グローバルリソースキャッシュ内に一致するものがあるかについて評価することにより、そのようなビジネス規則を執行できる。一般的に、グローバルリソースキャッシュは、ワークフローにおける処理の残りの部分を短絡させるための良好な候補であるリソース規則を含む。
【０１０７】
一実施形態では、第２のキャッシュは対象規則キャッシュである。対象規則キャッシュは、執行される即時規則への対象（例えばＩＰ、装置識別子、顧客ＩＤ）のマッピングを含む。このキャッシュは、各ＵＲＩについて特定のハンドリングを行わずに、断定的に対象に適用可能な規則を含む。そのようなポリシーの例は、「顧客ＩＤ１２４５６６８９からのあらゆる要求をブロックする」である。
【０１０８】
一実施形態では、第３のキャッシュは対象リソースキャッシュである。対象リソースキャッシュは、執行されるリソース特定規則への対象（例えばＩＰ、装置識別子、顧客ＩＤ）のマッピングを含む。このキャッシュは、特定のＵＲＩのみに対して適用可能なポリシーを含む。そのようなポリシーの例は、「顧客ＩＤ１２４５６６８９からのＵＲＩパス／ホームへの要求をブロックする」である。
【０１０９】
ポリシーを格納するために、これらのキャッシュおよび／または他のタイプのキャッシュの様々な任意の組合せが用いられ得る。特定の実施形態では、上記の３つのキャッシュは、以下のワークフローを用いて一緒に用いられる。まず、メッセージが受信される。次に、そのメッセージをポリシーの執行から除外するか否かを決定するための一組のグローバルな除外を用いて、メッセージが処理される。メッセージが除外されない場合には、次に、アセットは、そのメッセージＵＲＩがグローバルリソースキャッシュにあるか否かを決定する。否定された場合には、次に、アセットは、そのメッセージ対応する顧客ＩＤが、対象規則キャッシュまたは対象リソースキャッシュにあるか否かを決定する。否定された場合には、次に、アセットは、そのメッセージのソースＩＰアドレスが、対象規則キャッシュまたは対象リソースキャッシュにあるか否かを決定する。否定された場合には、次に、アセットは、そのメッセージの装置識別子が、対象規則キャッシュまたは対象リソースキャッシュにあるか否かを決定する。否定された場合には、メッセージは通常の方法で処理される。しかし、上述の決定のいずれかが肯定である場合には、対応するポリシーについての適切なアクションが執行される。
【０１１０】
４．３．例示的な構成オプション
一実施形態によれば、以下の構成オプションの一部または全てを用いて、アセットの特定の挙動を構成可能である。頻度パラメータは、アセットがローカルポリシーキャッシュを更新する頻度を制御する。例示的な頻度は、例えば３０秒毎であり得る。様々な「使用可」パラメータは、例えば、特定のアセットについては、ポリシーの執行またはログの報告が使用不可にされ得るように、アセットの個々のサブコンポーネントがアクティブであるか否かを制御し得る。モードパラメータは、アセットが、ポリシーに基づくアクションを実際に行うよう構成されるか、または、テストモードで動作して、アセットがテストモードになかったとした場合にアセットがどのようなポリシーに基づくアクション行なっていたかを、アセットが単に報告するよう構成されるかを制御する。ログレベルパラメータは、記録されるおよび／または解析部に送信されるメッセージ情報の量を制御し得る。ホワイトリストパラメータは、ホワイトリストに載せられたメッセージに対して、アセットが他のポリシーを実際に執行するか否かを制御し得る。他の実施形態では、そのような構成パラメータは設けられなくてもよく、および／または、他の様々な構成パラメータが可能である。
【０１１１】
４．４．例示的なメッセージログ
一実施形態によれば、メッセージ情報は、ＪＳＯＮ ｂｌｏｂまたは他の適切なデータ構造で記録および／または流され得る。データ構造は、例えば、装置識別子、ＩＰ、顧客ＩＤ、アプリケーション名、地理的位置データ、要求エイリアス、要求ＵＲＬ、応答状態、日付、ホスト名、メッセージバッチＩＤ、検出されたポリシーアクション等であるがそれらに限定されないフィールドを含み得る。例えば、そのようなログの１つは、以下のものであり得る。
【０１１２】
【表１】
0006785225.tif 000002
【０１１３】
当然ながら、他の様々なログ構造およびフィールドも可能である。
【０１１４】
４．５．例示的なクエリ
一実施形態によれば、解析部は、記録されたメッセージ情報を含む様々なクエリを用いて、ポリシーを生成する対象を識別するよう構成され得る。そのようなクエリの例は、特定の領域（例えば米国）内の上位ｎ個の要求元ＩＰアドレスを識別すること、特定のＡＰＩを呼び出した特定の領域内の上位ｎ個の要求元ＩＰアドレスを識別すること、特定のＡＰＩに関してＰＯＳＴ以外のメソッドを呼び出した特定の領域内の上位ｎ個の要求元ＩＰアドレスを識別すること、開ける可能性がある管理コンソールを探してサービスをスキャンしている特定の領域内の上位ｎ個の要求元ＩＰアドレスを識別すること、および、ＰＨＰエンドポイントを探してサービスをスキャンしている特定の領域内の上位ｎ個の要求元ＩＰアドレスを識別することを含み得るが、それらに限定されない。当然ながら、これらの例は、作成され得る様々なクエリの単なる例である。
【０１１５】
同様に、ミッドティアコンポーネントは、例えば、統計的解析、ビジネス規則の策定等の目的で、解析部に対して上記および他のクエリを行い得る。
【０１１６】
５．０．ハードウェアの概観
一実施形態によれば、本明細書に記載される技術は、１以上の専用コンピュータ装置によって実装される。専用コンピュータ装置は、本技術を行うためのハードワイヤードであってもよく、または、例えば、１以上の特定用途向け集積回路（ＡＳＩＣ）もしくは本技術を行うよう持続的にプログラムされたフィールドプログラマブルゲートアレイ（ＦＰＧＡ）等のデジタル電子装置を含んでもよく、または、ファームウェア、メモリ、他のストレージ、もしくはそれらの組合せ内のプログラム指示に従って本技術を行うようプログラムされた１以上の汎用ハードウェアプロセッサを含んでもよい。そのような専用コンピュータ装置は、カスタムのハードワイヤード論理、ＡＳＩＣ、または本技術を達成するためのカスタムプログラミングを有するＦＰＧＡを組み合わせたものであってもよい。専用コンピュータ装置は、本技術を実装するためのハードワイヤード論理および／またはプログラム論理を組み込んだデスクトップコンピュータシステム、携帯型コンピュータシステム、携帯型装置、ネットワーキング装置、または他の任意の装置であり得る。
【０１１７】
例えば、図５は、本発明の実施形態が実装され得るコンピュータシステム５００を示すブロック図である。コンピュータシステム５００は、情報を通信するためのバス５０２または他の通信機構と、バス５０２と接続された、情報を処理するためのハードウェアプロセッサ５０４とを含む。ハードウェアプロセッサ５０４は、例えば、汎用マイクロプロセッサであり得る。
【０１１８】
コンピュータシステム５００は、バス５０２に接続された、プロセッサ５０４によって実行される情報および指示を格納するための主メモリ５０６（例えば、ランダムアクセスメモリ（ＲＡＭ）または他の動的ストレージ装置等）も含む。主メモリ５０６は、プロセッサ５０４によって実行される指示を実行中に一時変数または他の中間情報を格納するためにも用いられ得る。そのような指示は、プロセッサ５０４によってアクセス可能な非一時的ストレージ媒体に格納された際に、コンピュータシステム５００を、指示において特定されている動作を行うようカスタマイズされた専用装置にする。
【０１１９】
コンピュータシステム５００は、バス５０２に接続された、プロセッサ５０４用の静的情報および指示を格納するための読み出し専用メモリ（ＲＯＭ）５０８または他の静的ストレージ装置を更に含む。情報および指示を格納するために、例えば磁気ディスクまたは光ディスク等のストレージ装置５１０が設けられ、バス５０２に接続される。
【０１２０】
コンピュータシステム５００は、バス５０２を介して、コンピュータのユーザに対して情報を表示するためのディスプレイ５１２（例えば、陰極線管（ＣＲＴ）等）に接続され得る。情報およびコマンド選択をプロセッサ５０４に通信するための、英数字キーおよび他のキーを含む入力装置５１４がバス５０２に接続されている。別のタイプのユーザ入力装置は、方向情報およびコマンド選択をプロセッサ５０４に通信するため、および、ディスプレイ５１２上でのカーソルの移動を制御するための、例えばマウス、トラックボール、またはカーソル方向キー等のカーソル制御部５１６である。この入力装置は、典型的には、装置が平面内の位置を特定するのを可能にする２つの軸（第１の軸（例えば、ｘ）および第２の軸（例えば、ｙ））における２自由度を有する。
【０１２１】
コンピュータシステム５００は、コンピュータシステムと組み合わされて、コンピュータシステム５００が専用装置になるようにするまたはプログラムするカスタマイズされハードワイヤード論理、１以上のＡＳＩＣもしくはＦＰＧＡ、ファームウェア、および／またはプログラム論理を用いて、本明細書に記載される技術を実装し得る。一実施形態によれば、本明細書の技術は、プロセッサ５０４が主メモリ５０６に格納されている１以上の指示の１以上のシーケンスを実行するのに応答して、コンピュータシステム５００によって行われる。そのような指示は、例えばストレージ装置５１０等の別のストレージ媒体から主メモリ５０６に読み込まれ得る。主メモリ５０６に格納されている指示のシーケンスの実行は、プロセッサ５０４に、本明細書に記載される処理工程を行わせる。別の実施形態では、ソフトウェア指示の代わりに、またはそれと組み合わせて、ハードワイヤード回路が用いられ得る。
【０１２２】
本明細書において用いられる「ストレージ媒体」という用語は、装置を特定の方法で動作させるデータおよび／または指示を格納する任意の非一時的な媒体を指す。そのようなストレージ媒体は、不揮発性媒体および／または揮発性媒体を含み得る。不揮発性媒体は、例えば、ストレージ装置５１０等の光ディスクまたは磁気ディスクを含む。揮発性媒体は、例えば主メモリ５０６等の動的メモリを含む。ストレージ媒体の一般的な形態としては、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、または他の任意の磁気データストレージ媒体、ＣＤ−ＲＯＭ、他の任意の光データストレージ媒体、孔のパターンを有する任意の物理的媒体、ＲＡＭ、ＰＲＯＭ、およびＥＰＲＯＭ、フラッシュＥＰＲＯＭ、ＮＶＲＡＭ、他の任意のメモリチップまたはカートリッジが挙げられる。
【０１２３】
ストレージ媒体は伝送媒体とは区別されるが、伝送媒体と関連して用いられ得る。伝送媒体は、ストレージ媒体間での情報の転送に関与する。例えば、伝送媒体は、バス５０２を構成するワイヤを含む、同軸ケーブル、銅線および光ファイバを含む。伝送媒体は、例えば電波データ通信および赤外線データ通信において生成されるような音響波または光波の形態もとり得る。
【０１２４】
１以上の指示の１以上のシーケンスを、実行のためにプロセッサ５０４へと搬送することには、様々な形態の媒体が関与し得る。例えば、指示は、まず、リモートコンピュータの磁気ディスクまたはソリッドステートドライブ上で搬送され得る。リモートコンピュータは、指示をリモートコンピュータの動的メモリにロードして、モデムを用いて電話回線を介して指示を送信し得る。コンピュータシステム５００に対してローカルなモデムは、電話回線上のデータを受信し、赤外線送信器を用いて、データを赤外線信号に変換し得る。赤外線検出器が、赤外線信号内で搬送されたデータを受信し、適切な回路が、データをバス５０２上に配置し得る。バス５０２は、データを主メモリ５０６へと搬送し、そこから、プロセッサ５０４が指示を読み出して実行する。主メモリ５０６が受け取った指示は、プロセッサ５０４による実行前または実行後に、必要に応じてストレージ装置５１０に格納され得る。
【０１２５】
コンピュータシステム５００は、バス５０２に接続された通信インターフェース５１８も含む。通信インターフェース５１８は、ローカルネットワーク５２２に接続されたネットワークリンク５２０に接続する双方向データ通信を提供する。例えば、通信インターフェース５１８は、総合デジタル通信網（ＩＳＤＮ）カード、ケーブルモデム、衛星モデム、または対応するタイプの電話回線へのデータ通信接続を提供するモデムであり得る。別の例として、通信インターフェース５１８は、適合するＬＡＮへのデータ通信接続を提供するローカルエリアネットワーク（ＬＡＮ）カードであり得る。無線リンクも実装され得る。そのような任意の実装において、通信インターフェース５１８は、様々なタイプの情報を表すデジタルデータストリームを搬送する電気信号、電磁信号、または光信号を送受信する。
【０１２６】
ネットワークリンク５２０は、典型的には、１以上のネットワークを介した他のデータ装置へのデータ通信を提供する。例えば、ネットワークリンク５２０は、ローカルネットワーク５２２を介して、ホストコンピュータ５２４への、またはインターネットサービスプロバイダ（ＩＳＰ）５２６によって運営されているデータ装置への接続を提供し得る。ＩＳＰ５２６は、現在では一般的に「インターネット」５２８と称される世界規模のパケットデータ通信網を介したデータ通信サービスを提供する。ローカルネットワーク５２２およびインターネット５２８は共に、デジタルデータストリームを搬送する電気信号、電磁信号、または光信号を用いる。コンピュータシステム５００へのおよびコンピュータシステム５００からのデジタルデータを搬送する、様々なネットワークを通る信号、並びに、ネットワークリンク５２０上および通信インターフェース５１８を通る信号は、伝送媒体の例示的な形態である。
【０１２７】
コンピュータシステム５００は、ネットワーク、ネットワークリンク５２０、および通信インターフェース５１８を介して、メッセージを送信し、データ（プログラムコードを含む）を受信し得る。インターネットの例では、サーバ５３０は、インターネット５２８、ＩＳＰ５２６、ローカルネットワーク５２２、および通信インターフェース５１８を介して、アプリケーションプログラムのための要求されたコードを送信し得る。
【０１２８】
受信されたコードは、受信された際にプロセッサ５０４によって実行され得るか、および／または、後で実行するためにストレージ装置５１０もしくは他の不揮発性ストレージに格納され得る。
【０１２９】
上記の明細書において、本発明の実施形態を、実装毎に異なり得る多くの具体的な詳細に関して説明した。従って、明細書および図面は、本発明を限定するものではなく、説明するものと見なされるものである。本発明の範囲、および本発明の範囲であることが出願人によって意図されるものは、本願の特許請求の範囲が発行される特定の形態における、その後の修正（あれば）を含む、本願の特許請求の範囲の文言およびその等価の範囲のみによって示される。この点に関して、本願の特許請求の範囲には、特定の請求項の従属関係が述べられているが、本願の従属項の特徴は、本願の他の従属項の特徴、および独立項の特徴と適宜組み合わせられ得るものであり、特許請求の範囲に記載されている特定の従属関係のみに従うものではないことを留意されたい。
以下、本発明の好ましい実施形態を項分け記載する。
実施形態１
ポリシーを記述しているグローバルポリシーデータを格納するデータリポジトリと、
第１のコンピュータハードウェアによって少なくとも部分的に実装された複数のコンピュータアセットであって、該複数のコンピュータアセットのうちの各アセットが、クライアント装置からのメッセージを受信し、前記アセットを実装するコンピュータ装置において、前記ポリシーを記述しているローカルポリシーデータを格納し、前記ポリシーのうちのどのポリシーが前記メッセージのうちのどのメッセージに適用されるかを決定し、前記ポリシーのうちのどのポリシーが前記メッセージのうちのどのメッセージに適用されるかに基づいて、前記メッセージに関して行われるポリシーに基づくアクションを識別し、前記メッセージから記録されたメッセージ情報を解析部コンポーネントに送信し、前記グローバルポリシーデータに対する更新を反映するよう前記ローカルポリシーデータを更新するよう構成された、複数のコンピュータアセットと、
第２のコンピュータハードウェアによって少なくとも部分的に実装された解析部コンポーネントであって、前記複数のコンピュータアセットのうちの各コンピュータアセットから前記メッセージ情報を受信し、前記複数のコンピュータアセットのうちの各コンピュータアセットからの前記メッセージ情報を集合的に解析し、前記メッセージ情報の集合的な解析に基づいて、新たなポリシーを生成し、該新たなポリシーを記述するよう前記グローバルポリシーデータを更新するよう構成された解析部コンポーネントと
を含むことを特徴とするコンピュータシステム。
実施形態２
前記複数のコンピュータアセットのうちの各アセットが第１のネットワークのエッジに配置されており、前記クライアント装置が第２のネットワーク内に配置されている、実施形態１記載のコンピュータシステム。
実施形態３
前記複数のコンピュータアセットおよび前記解析部が、前記コンピュータシステムの第１の領域内に配置されており、前記コンピュータシステムが、別の複数のコンピュータアセットおよび別の解析部を各領域が含む１以上の更なる領域を更に含み、前記データリポジトリが前記第１の領域と前記１以上の更なる領域とによって共有されている、実施形態１記載のコンピュータシステム。
実施形態４
前記ポリシーのうちの各ポリシーが、該ポリシーが所与のメッセージに適用されるか否かを決定するための論理と、前記ポリシーが前記所与のメッセージに適用される場合に、該所与のメッセージに関して行われる、１以上の具体的なポリシーに基づくアクションを示す１以上の指示とを示すデータ構造である、実施形態１記載のコンピュータシステム。
実施形態５
前記解析部が、前記集合的に解析されたメッセージ情報からの、システムレベルのポリシーによって記述されている条件が存在するという決定に基づき、前記新たなポリシーのうちの１以上のポリシーを識別し、前記記載されている条件に照らしてブロックまたはリダイレクトされるメッセージを識別するための論理を含む１以上のアセットレベルのポリシーを生成し、該生成された１以上のアセットレベルのポリシーを含むよう前記グローバルポリシーデータを更新するよう更に構成された、実施形態１記載のコンピュータシステム。
実施形態６
前記解析部が、前記集合的に解析されたメッセージ情報に基づいて、前記コンピュータシステムに対する分散型の攻撃を識別し、該分散型の攻撃に関与するメッセージを識別するための論理を含む第１のポリシーを生成し、該第１のポリシーを記述するよう前記グローバルポリシーデータを更新するよう更に構成された、実施形態１記載のコンピュータシステム。
実施形態７
前記解析部が、前記集合的に解析されたメッセージ情報に基づいて、前記複数のコンピュータアセットのうちの第１のアセットにおいて生じている攻撃を識別し、該攻撃に関与するメッセージを識別するための論理を含む第１のポリシーを生成し、該第１のポリシーを記述するよう前記グローバルポリシーデータを更新するよう更に構成され、
前記複数のコンピュータアセットのうちの第２のアセットであって、該第２のアセットのローカルポリシーデータが更新されるときに前記攻撃に関与するメッセージをまだ受信していない第２のアセットが、前記更新されたグローバルポリシーデータに基づいて、前記第１のポリシーを記述するよう前記第２のアセットの前記ローカルポリシーデータを更新し、前記第１のポリシーに基づいて、前記攻撃に関与するメッセージをブロックまたはリダイレクトするよう構成された、
実施形態１記載のコンピュータシステム。
実施形態８
前記メッセージが、前記複数のアセットが行うよう指定されたアクションを示しており、各前記アセットが、前記ポリシーが適用されるメッセージに対して、前記示されている指定されたアクションの代わりにまたはそれに加えて、前記適用されるポリシーに基づくアクションを行うよう構成された、実施形態１記載のコンピュータシステム。
実施形態９
前記ポリシーのうちの所与のポリシーによって示されているポリシーに基づくアクションが、前記所与のポリシーが適用されるあらゆるメッセージをブロックすること、前記所与のポリシーが適用されるあらゆるメッセージをリダイレクトすること、または、前記所与のポリシーが適用されるあらゆるメッセージにアセットが正常に応答することを許可することのうちの１つである、実施形態１記載のコンピュータシステム。
実施形態１０
前記複数のコンピュータアセットのうちの或るアセットが、たとえ該アセットが前記解析部コンポーネントおよび前記データリポジトリにアクセスできないときでも、前記アセットの前記ローカルポリシーデータからのポリシーをメッセージに適用するよう構成された、実施形態１記載のコンピュータシステム。
実施形態１１
１以上のコンピュータ装置によって実装されるコンピュータアセットにおいて、ポリシーを記述しているローカルポリシーデータを格納する工程と、
前記コンピュータアセットにおいて、クライアント装置からのメッセージを受信する工程と、
前記コンピュータアセットにおいて、前記ポリシーのうちのどのポリシーが前記メッセージのうちのどのメッセージに適用されるかを決定する工程と、
前記コンピュータアセットにおいて、前記ポリシーのうちのどのポリシーが前記メッセージのうちのどのメッセージに適用されるかに基づいて、前記メッセージに関して行われるポリシーに基づくアクションを識別する工程と、
前記コンピュータアセットから、前記メッセージから記録されたメッセージ情報を解析部コンポーネントに送信する工程と、
前記コンピュータアセットによって、前記解析部コンポーネントによって生成されたグローバルポリシーデータに対する更新を反映するよう前記ローカルポリシーデータを更新する工程と
を含むことを特徴とするデータ処理方法。
実施形態１２
前記ポリシーのうちの各ポリシーが、該ポリシーが所与のメッセージに適用されるか否かを決定するための論理と、前記ポリシーが適用される場合に、前記所与のメッセージに関して行われる、１以上の具体的なポリシーに基づくアクションを示す１以上の指示とを示すデータ構造である、実施形態１１記載の方法。
実施形態１３
前記メッセージが、前記複数のコンピュータアセットが行うよう指定されたアクションを示しており、
前記方法が、前記ポリシーが適用されるメッセージに対して示されている前記指定されたアクションの代わりにまたはそれに加えて、適用されるポリシーに基づくアクションを行う工程を更に含む、
実施形態１１記載の方法。
実施形態１４
たとえ前記アセットが前記解析部コンポーネントおよび前記グローバルポリシーデータにアクセスできないときでも、前記ローカルポリシーデータからのポリシーをメッセージに適用する工程を更に含む、実施形態１１記載の方法。
実施形態１５
前記解析部コンポーネントにおいて、前記コンピュータアセットを含む複数のコンピュータアセットのうちの各アセットにおいて記録されたメッセージ情報を受信する工程と、
前記解析部コンポーネントによって、前記複数のコンピュータアセットのうちの各コンピュータアセットにおいて記録された前記メッセージ情報を集合的に解析する工程と、
前記解析部コンポーネントによって、前記メッセージ情報の集合的な解析に基づいて、新たなポリシーを生成する工程と、
前記解析部コンポーネントによって、前記新たなポリシーを記述するよう前記グローバルポリシーデータを更新する工程と
を更に含む、実施形態１１記載の方法。
実施形態１６
解析部コンポーネントを実装する１以上のコンピュータ装置によって行われるデータ処理方法であって、
複数のコンピュータアセットのうちの各アセットから、該アセットによって受信されたメッセージを記述しているメッセージ情報を受信する工程と、
前記複数のコンピュータアセットのうちの各コンピュータアセットからの前記メッセージ情報を集合的に解析する工程と、
前記メッセージ情報の集合的な解析に基づいてポリシーを生成する工程であって、該ポリシーが、該ポリシーが適用されるメッセージを識別するための論理と、前記ポリシーが適用される前記メッセージに関して行われるポリシーに基づくアクションとを記述している、ポリシーを生成する工程と、
前記ポリシーを記述するようグローバルポリシーデータリポジトリを更新する工程と、
前記複数のコンピュータアセットに、少なくとも前記グローバルポリシーデータリポジトリ内の前記ポリシーを記述しているポリシーデータを送信する工程と、
を含むことを特徴とする方法。
実施形態１７
前記解析部コンポーネントが、それぞれ異なる複数のコンピュータアセットに関して実施形態１６記載の工程を行うよう各解析部が構成された複数の解析部のうちの１つであり、
前記グローバルポリシーデータリポジトリが、少なくとも前記複数の解析部によって共有されている、
実施形態１６記載の方法。
実施形態１８
前記メッセージ情報からの、システムレベルのポリシーによって記述されている条件が存在するという決定に基づき、前記ポリシーのうちの１以上のポリシーを識別する工程と、
前記記載されている条件に照らしてブロックまたはリダイレクトされるメッセージを識別するための論理を含む１以上のアセットレベルのポリシーを生成する工程と、
前記生成された１以上のアセットレベルのポリシーを含むよう前記グローバルポリシーデータを更新する工程と
を更に含む、実施形態１６記載の方法。
実施形態１９
前記メッセージ情報の集合的な解析に基づいて、前記複数のコンピュータアセットを含むコンピュータシステムに対する分散型の攻撃を識別する工程と、
前記分散型の攻撃に関与するメッセージを識別するための論理を含む第１のポリシーを生成する工程と、
前記第１のポリシーを記述するよう前記グローバルポリシーデータを更新する工程と
を更に含む、実施形態１６記載の方法。
実施形態２０
前記解析部コンポーネントが、前記メッセージ情報に基づいて、第１のコンピュータアセットにおいて生じている攻撃を識別する工程と、
前記複数のコンピュータアセットのうちの少なくとも第２のアセットであって、該第２のアセットが前記攻撃に関与するメッセージを受信したことを示す前記第２のアセットからのメッセージ情報を前記解析部コンポーネントがまだ受信していない前記第２のアセットにおいて、前記攻撃に関与するメッセージを識別するための論理を含む第１のポリシーを生成する工程と、
前記第１のポリシーを記述するよう前記グローバルポリシーデータを更新する工程と
を更に含む、実施形態１６記載の方法。
【符号の説明】
【０１３０】
１００、２００  コンピュータシステム
１０５  ネットワーク
１１０、２１０  アセット
１１２  メッセージハンドラー
１１３  メッセージロガー
１１４  ポリシーエンフォーサー
１１５  ローカルポリシーキャッシュ
１１６  ポリシーコンシューマー
１１７  メッセージログ
１１８  報告部
１５０、２５０  解析部
１５２  ログ解析部
１５４  ポリシー生成部
１５５  ポリシーデータベース
１５６  ポリシー発行部
１５７  メッセージデータベース
１９０  クライアント
１９５  ネットワーク
２２１、２２２、２２３、２２４  クラスタ
２３１、２３２  領域
２４１、２４２  ミッドティアコンポーネント
２５５  多領域データリポジトリ
【図１】
0006785225.tif 000003
【図２】
0006785225.tif 000004
【図３】
0006785225.tif 000005
【図４】
0006785225.tif 000006
【図５】
0006785225.tif 000007