JP2017534105A - 分散型トラフィック管理システムおよび技術 - Google Patents

分散型トラフィック管理システムおよび技術 Download PDF

Info

Publication number
JP2017534105A
JP2017534105A JP2017516098A JP2017516098A JP2017534105A JP 2017534105 A JP2017534105 A JP 2017534105A JP 2017516098 A JP2017516098 A JP 2017516098A JP 2017516098 A JP2017516098 A JP 2017516098A JP 2017534105 A JP2017534105 A JP 2017534105A
Authority
JP
Japan
Prior art keywords
policy
message
asset
computer
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017516098A
Other languages
English (en)
Other versions
JP2017534105A5 (ja
JP6785225B2 (ja
Inventor
チャン,ジェイソン
ウドゥピ,プアナプラジュナ
マダッパ,シャシ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netflix Inc
Original Assignee
Netflix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netflix Inc filed Critical Netflix Inc
Publication of JP2017534105A publication Critical patent/JP2017534105A/ja
Publication of JP2017534105A5 publication Critical patent/JP2017534105A5/ja
Application granted granted Critical
Publication of JP6785225B2 publication Critical patent/JP6785225B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0245Filtering by information in the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0209Architectural arrangements, e.g. perimeter networks or demilitarized zones
    • H04L63/0218Distributed architectures, e.g. distributed firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Abstract

分散型ファイアウォールを実装する手法、技術、および機構が開示される。一実施形態において、多くの異なるコンピュータアセットが、ローカルポリシーデータに基づいて着信メッセージを規制する。このローカルポリシーデータは、グローバルポリシーデータと同期化される。グローバルポリシーデータは、1以上の別個の解析部によって生成される。各解析部は、コンピュータアセットの複数のグループについてのメッセージログ、またはメッセージログから生成された情報へのアクセスを有し、従って、孤立したアセットではなくグループ全体からの情報に基づいてポリシーを生成することができる。効果の中でも特に、これらの手法、技術、および機構の幾つかは、たとえ、攻撃対象領域にわたる監視に限界があるコンピューティング環境、並びに/または、アセットが、着信メッセージをどのように扱うべきかに関して、他のシステムコンポーネントとの関係におけるレイテンシーおよび/もしくは非信頼性を考慮して、独立した決定を行う必要があり得るコンピューティング環境においても、効果的であり得る。

Description

本開示は、分散型ネットワークのアセットにおけるネットワークトラフィックの管理に関する。
本節に記載される手法は、追及され得る手法であるが、必ずしも以前に想到または追及された手法ではない。従って、特に明記しない限り、本節に記載されるいずれの手法も、それらが単に本節に含まれていることを理由として従来技術であると見なされるべきではない。
ネットワーク化されたコンピュータシステムの攻撃対象領域は、そのコンピュータシステム内の、潜在的な攻撃者によるアクセスに晒されているコンポーネントで構成される。そのようなコンポーネントは、例えば、ウェブサーバによって実行されるアプリケーション、および他のサーバに基づくアプリケーションを含み得る。ユーザが操作するクライアントは、典型的には、1以上のコンピュータネットワークを介してそれらのコンポーネントとやりとりするのが望ましい。従って、それらのコンポーネントは、それらの1以上のネットワークを介してクライアントとやりとりするための様々なインターフェースを備えている。例えば、これらのコンポーネントは、ユーザ入力制御を含むウェブに基づくグラフィカルユーザインターフェース(「GUI」)、所定のプロトコル(例えばハイパーテキスト転送プロトコル(「HTTP」)またはシンプルオブジェクトアクセスプロトコル(「SOAP」)等)を介してユーザ入力を受信するためのインターフェース、カスタマイズされたアプリケーションプログラミングインターフェース(「API」)、および/または、ユーザが操作するクライアント装置からの通信をコンポーネントが受信して反応するための他のサービスを表示し得る。
コンポーネントに対するユーザアクセスは典型的には望ましいが、ユーザアクセスを提供することは、時に、コンポーネントを、許可されていないユーザが、コンピュータシステムの所有者が意図しないまたは望まない方法でコンポーネントを実行させることに成功するという、許可されていない使用の対象になりやすくする。許可されていない使用(「攻撃」としても知られている)の例としては、例えば通信傍受等の受動的な攻撃、並びに、例えばサービス妨害、スクリプトを埋め込んだアカウントの作成、サーバまたはアカウントの乗っ取り、バッファーオーバーフロー、ヒープオーバーフロー、および書式文字列攻撃等の能動的な攻撃が挙げられるが、それらに限定されない。
本明細書に記載される目的では、攻撃は、必ずしも悪意のあるものである必要はなく、例えば、ユーザが非意図的にシステムリソースを使い過ぎることを含む、任意の望ましくない挙動であり得る。例えば、コンピュータシステムは様々なメディアリソースに対するアクセスを提供し得るものであり、ユーザは非意図的に、ソフトウェアコード(例えばメディアサーバ用のコード等)であって、実行された際に、コンピュータ装置に、メディアリソースに関する情報のライブラリをコンパイルおよび/または解析するために、繰り返しシステマティックにメディアリソースに対するアクセスを要求させるソフトウェアコードを作成または配置し得る。しかし、この挙動は、より従来型の、メディア項目に対するアドホックな要求に応答するシステムの能力に悪影響を及ぼし得るので、コンピュータシステムにとって望ましくないものであり得る。上記および他の望ましくない挙動に対処するための様々なトラフィック管理スキームが考案され得る。
ファイアウォールは、ネットワーク化されたコンピュータシステムの例示的なトラフィック管理コンポーネントである。ファイアウォールコンポーネントの例としては、専用の装置、システム内のコンピュータ装置上で実行されるソフトウェアに基づくアプリケーション、またはネットワークトラフィックに対するゲートウェイとして作用する他の任意のシステムコンポーネントが挙げられる。多くの従来のネットワーク化されたコンピュータシステムは、コンピュータシステムの外にある潜在的に信頼できないクライアント装置とコンピュータシステム内にある信頼できるコンポーネントとの間で送信されるメッセージの全てまたは少なくとも大半を、ファイアウォールが傍受するよう構成されている。メッセージは、1つのレベルまたは複数のレベルで傍受され得る。例えば、一部のファイアウォールは、例えばTCPパケットまたはUDPパケットの形態のメッセージ等のネットワーク層またはトランスポート層のメッセージ、および/または、例えばFTP要求、DNS要求、またはHTTP要求の形態のメッセージ等のアプリケーション層のメッセージを傍受する。他のファイアウォールは、様々な任意の層の様々な任意のメッセージタイプを傍受する。
従来、ファイアウォールは、傍受したメッセージに関してとられる1以上のアクションを決定するために、1以上のポリシーを傍受したメッセージと比較するよう構成されている。例えば、そのメッセージがアドレスで指定されている宛先に届くのを許可する、メッセージをリダイレクトする、メッセージをブロックする、メッセージを操作する、そのメッセージに関する特定の詳細を記録する等の様々な異なるアクションがとられ得る。ポリシーは、しばしば、望ましくないメッセージを完全にブロックすることによって「フィルタリング」することから、フィルターとして参照される場合もある。ポリシーの単純な例は、規則によって特定されている特定の基準(例えば、特定されているソースアドレスまたは宛先ポート等)に一致する特徴を有するメッセージはブロックされるべきであるという規則である。ファイアウォールは、システムのアセットに対する攻撃をブロックまたは最小限にすることを意図した様々なポリシーを適用するよう構成され得る。一部のシステムでは、ファイアウォールは、以前に受信したトラフィックから学習して、そのポリシーを、将来的な攻撃により良好に反応するために調節するよう構成された、適応的なものであり得る。
攻撃対象領域が非常に分散したネットワーク化されたコンピュータシステムでは、適応的なファイアウォールを効果的に配置することはしばしば困難である。単一の攻撃が、様々なソースからほぼ同時に発生して、攻撃対象領域にある多くの異なるアセットに影響する場合もある。従って、特定の攻撃を認識して、それらの範囲を理解するために、ネットワーク化されたコンピュータシステムを通るトラフィックを中央で解析することが有用である。しかし、各メッセージを傍受して解析するために、単一の集中型のファイアウォールコンポーネントに頼ることは、望ましくないまたは実行不可能な場合がある。
添付の特許請求の範囲は、本発明を要約する役割をし得る。
記載される技術が実施され得る例示的なネットワーク化されたコンピュータシステムを示す 複数の異なるグループのアセットを担当する複数の解析部を含む、例示的なネットワーク化されたコンピュータシステムを示す 分散型トラフィック管理システムにおいてローカルポリシーを適用するための例示的なフローを示す 分散型トラフィック管理システムにおいてポリシーを生成して発行するための例示的なフローを示す 本発明の実施形態が実装され得るコンピュータシステムを示すブロック図
以下の説明では、説明の目的で、本発明の完全なる理解を提供するために、多くの具体的な詳細を述べる。しかし、本発明が、これらの具体的な詳細を含まずに実施され得ることは明らかである。他の例では、本発明を不必要に不明瞭にすることを避けるために、周知の構造および装置はブロック図の形態で示されている。
本明細書において、以下の骨子に沿って実施形態を説明する。
1.0.総括
2.0.構造的概観
2.1.アセット
2.2.クライアント
2.3.メッセージハンドリング
2.4.ポリシーの執行
2.5.ログの報告および解析
2.6.ポリシーの生成および発行
2.7.分散型の解析部
2.8.ミッドティアコンポーネント
2.9.その他
3.0.機能的概観
3.1.ローカルポリシーの適用
3.2.ポリシーの生成および発行
4.0.例示的な実装の詳細
4.1.例示的なポリシー構造
4.2.例示的なポリシーキャッシュ
4.3.例示的な構成オプション
4.4.例示的なメッセージログ
4.5.例示的なクエリ
5.0.ハードウェアの概観。
1.0.総括
ネットワーク化されたコンピュータシステムにおける分散型トラフィック管理のための手法、技術、および機構が開示される。一実施形態において、多くの異なるコンピュータアセットが、ローカルポリシーデータに基づいて着信メッセージを規制する。このローカルポリシーデータは、グローバルポリシーデータと同期化される。グローバルポリシーデータは、1以上の別個の解析部によって生成される。各解析部は、複数のグループのコンピュータアセットについてのメッセージログまたはメッセージログから生成された情報へのアクセスを有し、従って、孤立したアセットではなくグループ全体からの情報に基づいてポリシーを生成することができる。効果の中でも特に、これらの手法、技術、および機構の幾つかは、攻撃対象領域にわたる監視に限度があるコンピューティング環境、並びに/または、アセットが、着信メッセージをどのように扱うべきかに関して、他のシステムコンポーネントとの関係におけるレイテンシーおよび/もしくは非信頼性を考慮して、独立した決定を行う必要があり得るコンピューティング環境においても、効果的であり得る。
一実施形態によれば、分散型トラフィック管理を実装するコンピュータシステムは、ポリシーを記述しているグローバルポリシーデータを格納するデータリポジトリを含む。本システムは、第1のコンピュータハードウェアによって少なくとも部分的に実装された複数のコンピュータアセットを更に含む。この複数のコンピュータアセットのうちの各アセットは、クライアント装置からのメッセージを受信し、上記のアセットを実装するコンピュータ装置において、ポリシーを記述しているローカルポリシーデータを格納し、上記ポリシーのうちのどのポリシーが上記メッセージのうちのどのメッセージに適用されるかを決定し、どのポリシーがどのメッセージに適用されるかに基づいて、メッセージに関して行われるポリシーに基づくアクションを識別し、上記メッセージから記録されたメッセージ情報を解析部コンポーネントに送信し、グローバルポリシーデータに対する更新を反映するようローカルポリシーデータを更新するよう構成される。本システムは、第2のコンピュータハードウェアによって少なくとも部分的に実装された解析部コンポーネントを更に含む。解析部コンポーネントは、複数のコンピュータアセットのうちの各コンピュータアセットからのメッセージ情報を受信し、複数のコンピュータアセットのうちの各コンピュータアセットからのメッセージ情報を集合的に解析し、メッセージ情報の集合的な解析に基づいて新たなポリシーを生成し、この新たなポリシーを記述するようグローバルポリシーデータを更新するよう構成される。
一実施形態において、複数のコンピュータアセットのうちの各アセットは第1のネットワークのエッジに配置されており、クライアント装置は第2のネットワーク内に配置されている。一実施形態において、複数のコンピュータアセットのうちの或るアセットは、上記の複数のコンピュータアセットに含まれておらず上記のアセットによって受信されたメッセージがダイレクトされるサーバアプリケーションの前に配置される。一実施形態において、複数のコンピュータアセットのうちの或るアセットは、このアセットによって受信されたメッセージに応答するよう構成されたウェブサーバアプリケーションを実行するよう更に構成される。一実施形態において、複数のコンピュータアセットおよび解析部はコンピュータシステムの第1の領域内に配置されており、コンピュータシステムは、別の複数のコンピュータアセットおよび別の解析部を各領域が含む1以上の更なる領域を更に含み、データリポジトリは、第1の領域と1以上の更なる領域とによって共有されている。一実施形態において、第1のコンピュータハードウェアは、第2のコンピュータハードウェアに含まれない1以上のコンピュータ装置を含む。
一実施形態において、解析部は、集合的なメッセージ情報からの、システムレベルのポリシーによって記述されている条件が存在するという決定に基づき、新たなポリシーのうちの1以上のポリシーを識別し、記載されている条件に照らしてブロックまたはリダイレクトされるメッセージを識別するための論理を含む1以上のアセットレベルのポリシーを生成し、生成された1以上のアセットレベルのポリシーを含むようグローバルポリシーデータを更新するよう更に構成される。
一実施形態において、解析部は、集合的なメッセージ情報に基づいて、コンピュータシステムに対する分散型の攻撃を識別し、分散型の攻撃に関与するメッセージを識別するための論理を含む第1のポリシーを生成し、第1のポリシーを記述するようグローバルポリシーデータを更新するよう更に構成される。一実施形態において、解析部は、集合的なメッセージ情報に基づいて、複数のコンピュータアセットのうちの第1のアセットにおいて生じている攻撃を識別し、攻撃に関与するメッセージを識別するための論理を含む第1のポリシーを生成し、第1のポリシーを記述するようグローバルポリシーデータを更新するよう更に構成される。複数のコンピュータアセットのうちの第2のアセットであって、第2のアセットのローカルポリシーデータが更新されるときに攻撃に関与するメッセージをまだ受信していない第2のアセットは、更新されたグローバルポリシーデータに基づいて、上記第1のポリシーを記述するよう第2のアセットのローカルポリシーデータを更新し、第1のポリシーに基づいて、攻撃に関与するメッセージをブロックまたはリダイレクトするよう構成される。
一実施形態において、上記ポリシーのうちの各ポリシーは、ポリシーが所与のメッセージに適用されるか否かを決定するための論理と、ポリシーが所与のメッセージに適用される場合に、所与のメッセージに関して行われる1以上の具体的なポリシーに基づくアクションを示す1以上の指示とを示すデータ構造である。一実施形態において、メッセージは、複数のアセットが行うよう指定されたアクションを示しており、各アセットは、ポリシーが適用されるメッセージに対して、示されている指定されたアクションの代わりにまたはそれに加えて、適用されるポリシーに基づくアクションを行うよう構成される。一実施形態において、上記ポリシーのうちの所与のポリシーによって示されているポリシーに基づくアクションは、所与のポリシーが適用されるあらゆるメッセージをブロックすること、所与のポリシーが適用されるあらゆるメッセージをリダイレクトすること、または、所与のポリシーが適用されるあらゆるメッセージにアセットが正常に応答することを許可することのうちの1つである。
一実施形態において、ローカルポリシーデータ更新することは、解析部コンポーネントからグローバルポリシーデータを記述しているポリシーデータを受信すること、または、共有のデータリポジトリからグローバルポリシーデータを読み出すことのうちの一方を含む。
一実施形態によれば、データ処理方法は、コンピュータアセットにおいて、ポリシーを記述しているローカルポリシーデータを格納する工程を含む。本方法は、コンピュータアセットにおいて、クライアント装置からのメッセージを受信する工程を更に含む。本方法は、コンピュータアセットにおいて、ポリシーのうちのどのポリシーがメッセージのうちのどのメッセージに適用されるかを決定する工程を更に含む。本方法は、コンピュータアセットにおいて、どのポリシーがどのメッセージに適用されるかに基づいて、メッセージに関して行われるポリシーに基づくアクションを識別する工程を更に含む。本方法は、コンピュータアセットから、メッセージから記録されたメッセージ情報を解析部コンポーネントに送信する工程を更に含む。本方法は、コンピュータアセットによって、解析部コンポーネントによって生成されたグローバルポリシーデータに対する更新を反映するようローカルポリシーデータを更新する工程を更に含む。コンピュータアセットは、1以上のコンピュータ装置によって実装される。
一実施形態において、本方法は、たとえアセットが解析部コンポーネントおよびグローバルポリシーデータにアクセスできないときでも、ローカルポリシーデータからのポリシーをメッセージに適用する工程を更に含む。一実施形態において、上記コンピュータアセットは、このコンピュータアセットによって受信されたメッセージがダイレクトされるサーバアプリケーションの前に配置される。一実施形態において、本方法は、コンピュータアセットにおいて、このコンピュータアセットによって受信されたメッセージの少なくとも一部に応答するウェブサーバアプリケーションを実行する工程を更に含む。一実施形態において、ローカルポリシーデータを更新する工程は、解析部コンポーネントからグローバルポリシーデータを記述しているポリシーデータを受信すること、または、共有のデータリポジトリからグローバルポリシーデータを読み出すことのうちの一方を含む。
一実施形態において、上記ポリシーのうちの各ポリシーは、ポリシーが所与のメッセージに適用されるか否かを決定するための論理と、ポリシーが適用される場合に、所与のメッセージに関して行われる1以上の具体的なポリシーに基づくアクションを示す1以上の指示とを示すデータ構造である。一実施形態において、上記ポリシーのうちの所与のポリシーによって示されているポリシーに基づくアクションは、所与のポリシーが適用されるあらゆるメッセージをブロックすること、所与のポリシーが適用されるあらゆるメッセージをリダイレクトすること、または、所与のポリシーが適用されるあらゆるメッセージにアセットが正常に応答することを許可することのうちの1つである。一実施形態において、メッセージは、複数のアセットが行うよう指定されたアクションを示しており、本方法は、ポリシーが適用されるメッセージに対して示されている指定されたアクションの代わりにまたはそれに加えて、適用されるポリシーに基づくアクションを行う工程を更に含む。
一実施形態において、本方法は、解析部コンポーネントにおいて、上記コンピュータアセットを含む複数のコンピュータアセットのうちの各アセットにおいて記録されたメッセージ情報を受信する工程を更に含む。本方法は、解析部コンポーネントによって、複数のコンピュータアセットのうちの各コンピュータアセットにおいて記録されたメッセージ情報を集合的に解析する工程を更に含む。本方法は、解析部コンポーネントによって、メッセージ情報の集合的な解析に基づいて、新たなポリシーを生成する工程を更に含む。本方法は、解析部コンポーネントによって、新たなポリシーを記述するようグローバルポリシーデータを更新する工程を更に含む。
一実施形態において、本方法は、上述のコンピュータアセットの工程を行う複数の組のコンピュータアセットを実行する工程を更に含む。複数の組のうちの所与の組内のアセットは、それぞれのメッセージ情報を、複数の解析部のうちの、上記所与の組に割り当てられた同じ解析部コンポーネントに送信する。本方法は、グローバルポリシーデータを、少なくとも複数の解析部によって共有されているデータリポジトリに格納する工程を更に含む。複数の解析部のうちの各解析部は、それぞれ新たなポリシーを生成して、それぞれ生成された新たなポリシーを記述するよう同じグローバルポリシーデータを更新する。
一実施形態において、本方法は、解析部コンポーネントにおいて、集合的なメッセージ情報からの、システムレベルのポリシーによって記述されている条件が存在するという決定に基づき、新たなポリシーのうちの1以上のポリシーを識別する工程を更に含む。本方法は、記載されている条件に照らしてブロックまたはリダイレクトされるメッセージを識別するための論理を含む1以上のアセットレベルのポリシーを生成する工程を更に含む。本方法は、生成された1以上のアセットレベルのポリシーを含むようグローバルポリシーデータを更新する工程を更に含む。
一実施形態において、本方法は、解析部コンポーネントによって、集合的なメッセージ情報に基づいて、複数のコンピュータアセットに対する分散型の攻撃を識別する工程を更に含む。本方法は、分散型の攻撃に関与するメッセージを識別するための論理を含む第1のポリシーを生成する工程を更に含む。本方法は、第1のポリシーを記述するようグローバルポリシーデータを更新する工程を更に含む。
一実施形態において、本方法は、解析部コンポーネントが、集合的なメッセージ情報に基づいて、コンピュータアセットにおいて生じている攻撃を識別する工程を更に含む。本方法は、解析部コンポーネントによって、攻撃に関与するメッセージを識別するための論理を含む第1のポリシーを生成する工程を更に含む。本方法は、解析部コンポーネントによって、第1のポリシーを記述するようグローバルポリシーデータを更新する工程を更に含む。本方法は、複数のコンピュータアセットのうちの別のコンピュータアセットであって、上記別のアセットのローカルポリシーデータが更新されるときに攻撃に関与するメッセージをまだ受信していない上記別のアセットにおいて、更新されたグローバルポリシーデータに基づいて、第1のポリシーを記述するよう上記別のアセットのローカルポリシーデータを更新する工程を更に含む。本方法は、上記別のアセットが、第1のポリシーに基づいて、攻撃に関与するメッセージをブロックまたはリダイレクトする工程を更に含む。
一実施形態によれば、データ処理方法は、複数のコンピュータアセットのうちの各アセットから、このアセットによって受信されたメッセージを記述しているメッセージ情報を受信する工程を含む。本方法は、複数のコンピュータアセットのうちの各コンピュータアセットからのメッセージ情報を集合的に解析する工程を更に含む。本方法は、メッセージ情報の集合的な解析に基づいてポリシーを生成する工程であって、ポリシーが適用されるメッセージを識別するための論理と、ポリシーが適用されるメッセージに関して行われるポリシーに基づくアクションとを記述するポリシーを生成する工程を更に含む。本方法は、上記ポリシーを記述するようグローバルポリシーデータリポジトリを更新する工程を更に含む。本方法は、複数のコンピュータアセットに、少なくともグローバルポリシーデータリポジトリ内のポリシーを記述しているポリシーデータを送信する工程を更に含む。本方法は、解析部コンポーネントを実装する1以上のコンピュータ装置によって行われる。
一実施形態において、解析部コンポーネントは、複数の異なるコンピュータアセットに関して以前の段落に記載されている工程を行うよう各解析部が構成された複数の解析部のうちの1つである。グローバルポリシーデータリポジトリは、少なくとも上記複数の解析部によって共有されている。
一実施形態において、本方法は、メッセージ情報からの、システムレベルのポリシーによって記述されている条件が存在するという決定に基づき、上記ポリシーの1以上を識別する工程を更に含む。本方法は、記載されている条件に照らしてブロックまたはリダイレクトされるメッセージを識別するための論理を含む1以上のアセットレベルのポリシーを生成する工程を更に含む。本方法は、生成された1以上のアセットレベルのポリシーを含むようグローバルポリシーデータを更新する工程を更に含む。
一実施形態において、本方法は、メッセージ情報の集合的な解析に基づいて、コンピュータシステムに対する分散型の攻撃を識別する工程を更に含む。本方法は、分散型の攻撃に関与するメッセージを識別するための論理を含む第1のポリシーを生成する工程を更に含む。本方法は、第1のポリシーを記述するようグローバルポリシーデータを更新する工程を更に含む。
一実施形態において、本方法は、解析部コンポーネントが、メッセージ情報に基づいて、第1のコンピュータアセットにおいて生じている攻撃を識別する工程を更に含む。本方法は、複数のコンピュータアセットのうちの少なくとも第2のアセットであって、第2のアセットが攻撃に関与するメッセージを受信したことを示す第2のアセットからのメッセージ情報を解析部コンポーネントがまだ受信していない前記第2のアセットにおいて、攻撃に関与するメッセージを識別するための論理を含む第1のポリシーを生成する工程を更に含む。本方法は、第1のポリシーを記述するようグローバルポリシーデータを更新する工程を更に含む。
一実施形態において、上記ポリシーのうちの所与のポリシーによって示されているポリシーに基づくアクションは、所与のポリシーが適用されるあらゆるメッセージをブロックすること、所与のポリシーが適用されるあらゆるメッセージをリダイレクトすること、または、所与のポリシーが適用されるあらゆるメッセージにアセットが正常に応答することを許可することのうちの1つである。一実施形態において、ポリシーデータを送信する工程は、複数のコンピュータアセットからのグローバルデータリポジトリに対するダイレクトクエリに応答すること、または、解析部コンポーネントによって、グローバルデータリポジトリからポリシーデータを読み出し、解析部コンポーネントから複数のコンピュータアセットに上記ポリシーデータを送信することのうちの一方を含む。一実施形態において、複数のコンピュータアセットのうちの第1のアセットは、第1のアセットによって受信されたメッセージがダイレクトされるサーバアプリケーションの前に配置される。一実施形態において、複数のコンピュータアセットのうちの第1のアセットは、第1のアセットによって受信された少なくとも一部のメッセージに応答するウェブサーバアプリケーションを実行する。
他の態様において、本発明は、上述の工程を行うよう構成されたコンピュータ装置およびコンピュータ可読媒体を包含する。
2.0.構造的概観
図1は、一実施形態による、記載される技術が実施され得る例示的なネットワーク化されたコンピュータシステム100を示す。システム100は、1以上のコンピュータ装置を含む。これらの1以上のコンピュータ装置は、本明細書に記載される様々な論理的コンポーネント(コンポーネント105〜157を含む)を実装するよう構成されたハードウェアおよびソフトウェアの任意の組合せを含む。例えば、1以上のコンピュータ装置は、本明細書に記載される様々なコンポーネントを実装するための指示を格納する1以上のメモリと、1以上のメモリに格納された指示を実行するよう構成された1以上のハードウェアプロセッサと、様々なコンポーネントによって用いられ操作されるデータ構造を格納するための1以上のメモリ内の様々なデータリポジトリとを含み得る。
一実施形態において、システム100は、システム100の様々なコンポーネントを一組のサーバサイドの処理として集合的に実装する1以上のサーバコンピュータ装置を含むサーバコンピュータシステムである。サーバコンピュータシステムは、図示されているコンポーネントが記載される機能性を提供するために用いるウェブサーバ、アプリケーションサーバ、データベースサーバ、および/または他の従来のサーバコンポーネントを含み得る。一実施形態において、特定のサーバコンポーネントは、完全にまたは部分的に、1以上のネットワーク(例えば、インターネット等)によってシステム100に接続された「クラウド」に基づくシステムを用いて実装され得る。クラウドに基づくシステムは、システム100のコンポーネントに対して処理、ストレージ、ソフトウェア、および/または他のリソースを提供するためのインターフェースを表示し得る。一実施形態において、クラウドに基づくシステムは、システム100が配置されている別のエンティティの代理として第三者のエンティティによって実装され得る。しかし、他の実施形態では、システム100のコンポーネントは全体的に、単一のエンティティによって所有され運営されているコンピュータシステムによって実装され得る。
2.1.アセット
本明細書において用いられる「アセット」は、一般的に、ネットワーク化されたコンピュータシステムの論理的または物理的コンポーネントである。アセットは、コンピュータ装置、コンピュータ装置のシステム、または、そのようなコンピュータ装置またはコンピュータ装置のシステムにおいてハードウェアおよび/またはソフトウェアの任意の組合せによって実装されたコンポーネントであり得る。一実施形態において、アセットは、サーバに基づくアプリケーションが1以上のコンピュータネットワークを介してクライアントコンピュータとやりとりするための1以上のサーバサイドのインターフェースを含む。例えば、アセットは、ウェブサーバ、アプリケーションサーバ、特定のウェブサイト、特定のアプリケーション、メールサーバ等を含み得る。
システム100は、他のコンポーネントの中でも特に、ネットワーク105または1グループのネットワーク105によって接続された一組のアセット110を含む。ネットワーク105は、例えば、内部ネットワークまたはイントラネット等の信頼できるネットワークであり得る。システム100は、実施形態に応じて、図示されていない様々なタイプのコンポーネント(例えば、他のアセット、ルーター、パーソナルコンピュータ、開発装置、バックアップサーバ等)を含み得る。ネットワーク105およびそれに直接接続されているコンポーネントは、必ずしも単一の物理的領域に制約される必要はない。例えば、一部の実施形態では、ネットワーク105は、それぞれ異なる地理的領域に配置され、専用回線、仮想プライベートネットワーク、および/または他の任意の適切な機構を介して接続された複数のサブネットワークを含み得る。
アセット110は、少なくとも部分的に、ネットワーク105上のネットワークトラフィックの少なくとも一部の態様の管理を担当するトラフィック管理コンポーネントとして機能する。アセット110は、少なくとも1つのネットワーク195を介したクライアント190との通信に晒される。ネットワーク195は、ネットワーク105とは対照的に、システム100の外部にある、システム100の所有者または操作者が制御していない信頼できないおよび/または監視されていないネットワーク(例えば、公共のワイドエリアネットワークまたはインターネット等)であり得る。よって、通信は、システム100の所有者または操作者によって予め承認されていないクライアントコンピュータ装置から、ネットワーク195を介して受信され得る。少なくとも1つのそのような実施形態において、各アセット110はシステム100の攻撃対象領域の一部を構成し、攻撃対象領域において、各アセット110は、ネットワーク105を介して、1以上のクライアント190からのメッセージを、メッセージがシステム100内のファイアウォールまたは他のトラフィック管理コンポーネントをまず通過していない状態で、直接受信する。しかし、他の実施形態では、メッセージは、アセット110に届く前に、例えば、ルーター、負荷分散装置、他のアセット110、または専用のファイアウォール等の任意の数の他のコンポーネントを通過し得る。更に、少なくとも一部の実施形態では、ネットワーク195とネットワーク105とは全く区別されなくてもよい。
一部の実施形態では、アセット110の一部または全ては、1以上の他のアセットの前に配置された専用のファイアウォール装置、専用のソフトウェアファイアウォール、プロキシサーバ、エッジサービスアプリケーション、負荷分散装置、ゲートウェイ装置、および/または他のトラフィック管理コンポーネントであってもよく、他のアセットへとダイレクトされるメッセージが、他のアセットに届く前に、セキュリティまたは他の目的で、そこを通るようルーティングされる。他の実施形態では、アセット110の一部または全てがメッセージの意図された宛先であるように、別のトラフィック管理コンポーネントを先に用いるのが有利であり得る。例えば、アセット110は、それ自体の統合されたトラフィック管理コンポーネントを備えたウェブアプリケーション、APIサーバ、またはストリーミングサーバであり得る。
一部の実施形態では、記載される技術を実装するために、コンピュータコードの1以上のライブラリを利用可能にしてもよい。1以上のライブラリは、アセット110によって実行された際に、アセット110の図示されているトラフィック管理コンポーネントの一部または全てを実装させる指示を含む。各アセット110は、トラフィック管理コンポーネントを実装するために、同じ1以上のライブラリを含み得る、または参照し得る。例えば、1以上のライブラリは、例えばネットフリックス社によって作られたエッジサービスのためのZuulフレームワーク等のオープンソースウェブアプリケーションフレームワークに組み込まれてもよく、各アセット110はそのインスタンスであってもよい。必要に応じて、各アセット110は、メッセージに関して他の機能を行うための他の図示されていない更なるコンポーネントを実装するコードをそれぞれ含み得る。例えば、一部のアセット110は、更なるウェブアプリケーションコンポーネントを実装するコードを実行してもよく、他のアセット110は、更なるAPIサーバコンポーネントを実装するコードを実行してもよい。他の実施形態では、アセット110は、共通のライブラリのセットに依存するのではなく、図示されているトラフィック管理コンポーネントの一部または全てをアドホックで実装し得る。
2.2.クライアント
クライアント190は、しばしばエンドユーザによって操作される個々のコンピュータ装置またはそのコンポーネントであり得る。例えば、クライアント190は、デスクトップコンピュータ上のウェブブラウザ、セットトップメディアボックス、モバイル装置上で実行されるアプリケーション等であり得る。アセット110を潜在的に含むシステム100の特定のコンポーネントは、ネットワーク195を介して、例えばウェブページの配信、メディアコンテンツのストリーミング、電子メールの送信、アプリケーションプログラミングインターフェース(「API」)呼び出しに対する応答等の様々なネットワーク化されたサービスをクライアント190に提供する。この目的で、クライアント190は、アセット110に対して様々なメッセージを送信および/または受信し得る。
2.3.メッセージハンドリング
アセット110は、少なくとも1つのメッセージハンドラーコンポーネント112を含む。メッセージハンドラー112は、通信インターフェースを介して、クライアント190からの、および/またはクライアント190へのメッセージを受信するよう構成される。本明細書に記載される目的で、メッセージは、クライアント190もしくはアセット110へと、またはクライアント190もしくはアセット110から送信される任意のデータ構造を含み得る。メッセージは、例えば、TCPもしくはUDPパケット、HTTP要求もしくは応答、またはFTPパケット等であるがそれらに限定されない様々な任意の標準的なネットワーキングプロトコルに従ったデータグラムまたはパケットであり得る。一実施形態において、メッセージは、メッセージの内容を含む「ペイロード」と、例えば、送信者および/または意図された受信者の識別子(例えばIPアドレス、MACアドレス、ドメイン名、電子メールアドレス等)、メッセージの通信に用いられるポート番号、メッセージタイプまたは他の分類情報、タイムスタンプ、ルーティング指示等の「ヘッダー」または「トランザクション」情報とを含むよう構築される。しかし、本明細書に記載される技術は、メッセージのいかなる特定の形態にも限定されない。更に、メッセージの複数の層があり得、或る層(例えばネットワーク層またはトランスポート層等)の1グループの関連するメッセージが、別の層(例えばアプリケーション層等)の単一のメッセージを構成するために構築または解釈される。実施形態に応じて、記載される技術は、様々なメッセージタイプおよび/または1もしくは幾つかの異なる層のメッセージのうちの任意のメッセージに適用され得る。
メッセージハンドラー112は、メッセージの受信に応答して、1以上の指定されたアクションを識別して行うよう構成され得る。例示的な指定されたアクションとしては、要求されたデータ構造を読み出して返すこと、メッセージによって特定されているパラメータに基づいてデータ構造を生成して格納または返すこと、メッセージを、メッセージよって特定または示されている別のアセットに転送すること、メッセージを転送するアセットを選択すること等が挙げられるが、それらに限定されない。指定されたアクションは、メッセージ内で特定されていてもよい。例えば、メッセージハンドラー112はウェブアプリケーションサーバであってもよく、メッセージは、特定されているロケーションからのデータを返す、または特定されているコマンドを実行する要求であり得る。或いは、指定されたアクションは、メッセージの何らかの態様(例えばヘッダーまたはトランザクション情報等)から暗示されるものであり得る。例えば、宛先IPアドレス、ポート番号、および/またはURLパスは、アセット110に、メッセージを別のアセットに転送するよう示し得る。一部の実施形態では、指定されたアクションは、全てのアセットによって受信されたメッセージ110について同じであり得る。例えば、アセット110は、メッセージを常に特定のサーバまたはアプリケーションに転送するよう構成されたプロキシサーバコンポーネントであり得る。
しかし、メッセージハンドラー112は、メッセージについての何らかの指定されたアクションを行う前に(または指定されたアクションを識別する前に)、何らかの指定されたアクションの前にまたはその代わりに何らかのポリシーに基づくアクションが行われるべきか否かを決定するための前処理のために、受信されたメッセージをポリシーエンフォーサー114に送信するよう構成される。このポリシーエンフォーサー114による前処理(本願の他の箇所で説明する)の結果、メッセージハンドラー112は、一部の実施形態では、メッセージハンドラー112がメッセージの処理を通常の方法で続けて、指定されたアクションを行うべきか、メッセージを無視するべきか、または他のポリシーに基づくアクション(例えば、メッセージをリダイレクトすること、指定された状態コードまたはエラーメッセージを用いて返信すること等)を行うべきかの表示を受信し得る。他の実施形態では、ポリシーエンフォーサー114がポリシーに基づくアクションの実行を担当してもよく、従って、メッセージハンドラー112は、単に、メッセージの処理を通常の方法で続けるべきか否かの表示を受信する。
メッセージハンドラー112は、受信されたメッセージ、または受信されたメッセージから生成された情報をメッセージロガーコンポーネント113に送信するよう更に構成される。次に、メッセージおよび/またはメッセージから生成された情報は、メッセージログ117に記録される。メッセージログ117は、任意の適切な形態のデータリポジトリに格納され得る。メッセージログ117は、メッセージの任意の適切な特性(例えば、ヘッダーフィールド値、ペイロードの内容等)を記述し得る。メッセージログ117は、例えば、特定の量のメッセージのみを格納する循環キャッシュ等の一時的なリポジトリであってもよい。或いは、メッセージログ117は、より永久的な形態で格納されてもよい。
所与のメッセージによって指定されたアクションのタイプに応じて、および/または、何らかのポリシーが適用されたか否かに応じて、クライアント190は、所与のメッセージに応答した返信メッセージを受信する場合、または受信しない場合がある。返信メッセージは、メッセージハンドラー112またはアセット110の別のコンポーネントから送信され得るか、またはそれを介して中継され得る。或いは、アセット110が、元のメッセージをシステム100の別のコンポーネントに中継した場合には、一部の実施形態では、返信メッセージは、その別のコンポーネントから直接受信され得る。メッセージログ117は、所与のメッセージが応答されたか否か、どのように応答されたかを更に示してもよく、および/または、メッセージログ117は、メッセージの処理に関連する動作統計(例えばシステムリソース使用率等)を含んでもよい。
2.4.ポリシーの執行
アセット110は、ポリシーエンフォーサー114を更に含む。ポリシーエンフォーサー114は、メッセージおよび/またはメッセージと関連づけられた情報を、ローカルポリシーキャッシュ115に記録されているポリシーに照らして解析するよう構成される。ローカルポリシーキャッシュ115は、ポリシーエンフォーサー114がポリシーをすぐに入手できるように、ポリシーを、例えばファイル、ファイルの行、データベースレコード等のデータ構造として、アセット110が実装されるコンピュータ装置内にあるまたはコンピュータ装置に直接接続されているストレージ装置に格納する。
ポリシーは、ポリシーがメッセージに「適用される」か否かを決定するための論理と、ポリシーが適用される場合に、メッセージに関して行われる1以上のポリシーに基づくアクションを示す1以上の指示とを含む。論理は、メッセージの内在的な詳細(例えばヘッダー情報またはペイロードの内容等)に基づくものであり得る。論理は、必要に応じて、現在のメッセージに関連し得る以前のメッセージに関する情報(例えば、特定のタイプの以前のメッセージのカウント数、または特定の指定されたソースを有すること等)に更に基づき得る。このタイプの情報は、例えば、メッセージログ117に記録され得る。
幾つかのポリシーについては、論理は、検査対象のメッセージの特定のフィールドまたは特徴を、それらが一致した場合にポリシーがメッセージに適用されることを示す1以上の値または値の範囲と共に、単純に特定したものであってもよい。他のポリシーは、検査のための更なるメッセージフィールドまたは特徴を特定してもよい。別の例として、論理は、特定されたメッセージフィールドまたは特徴について現在のメッセージと同じ値(または同じ値の範囲内の値)を有する、或る期間にわたって受信された全てのメッセージに基づく統計を算出するための関数を特定してもよい。論理は、ポリシーが適用されるか否かを決定するために、算出された統計と比較される値を更に示してもよい。当然ながら、本明細書に記載される技術は、ポリシーを表すためのいかなる特定のタイプの論理にも限定されず、様々な複雑さの様々なポリシーに関して用いられ得る。
ポリシーがメッセージに適用されることが決定された場合には、実施形態に応じて、ポリシーエンフォーサー114は、メッセージに関してとられるべき1以上のポリシーに基づくアクションを行うか、または、例えばメッセージハンドラー112等の別のコンポーネントに、1以上のポリシーに基づくアクションを行うよう指示し得る。
2.5.ログの報告および解析
システム100は、少なくとも1つの解析部150を更に含む。解析部150はアセット110の外部にある。例えば、解析部150は、アセット110の一部または全てではなく、異なる組の1以上のサーバコンピュータ装置上で実行され得る。解析部150は、複数のアセット110で受信されたメッセージを解析し、解析に基づいて新たなポリシーを識別し、その新たなポリシーを、複数のアセット110において用いるために発行するよう構成される。
この目的で、各アセット110は、そのアセット110において受信されたメッセージおよび/またはメッセージに関する情報を解析部150に送信するよう構成された報告コンポーネント118を含む。図示されているように、報告部118は、新たなレコードについてメッセージログ117をモニタリングして、必要に応じて、それらの新たなレコードを反映するデータを解析部150に流すという点で、メッセージハンドラー112とは非同期に動作する。しかし、他の実施形態では、メッセージハンドラー112またはメッセージロガー113は、新たなメッセージを処理する際に即時に報告部118を呼び出してもよく、報告部118は必ずしもメッセージログ117にアクセスする必要はない。報告部118は、各新たなメッセージについての情報を即時に解析部150に流し得る。或いは、報告部118は、リソース使用率を最適化するために、複数のメッセージについての情報をバッチ処理して、様々な任意の規則またはプロトコル従って決定されたタイミングで、バッチ処理された情報を流してもよい。
一実施形態では、報告部118は、各メッセージのログを送信する。他の実施形態では、報告部118は、メッセージが対象のメッセージであることを示す何らかの基準または規則をメッセージが満たす場合にのみ、そのメッセージについてのログを送信し得る。実施形態に応じて、ログは、完全なメッセージ、または特定のヘッダーもしくはトランザクション情報のみを含み得る。一実施形態では、各メッセージについての個々のログを送信する代わりに、複数のグループのメッセージから得られたデータを様々な統計にして、解析部150に送信してもよい。
解析部150は、メッセージ情報をメッセージデータベース157に格納するよう構成される。解析部150は少なくとも1つのログ解析部152を更に含み、ログ解析部152は、メッセージデータベース157内のメッセージ情報を、継続的に、或る間隔で、および/またはトリガ条件に応答して、解析するよう構成されている。
ログ解析部152は、システム100についての状態情報を、解析部150のポリシー生成コンポーネント154に供給するよう更に構成される。状態情報は、実施形態に応じて、例えば、クライアント190毎の、特定の時間にわたってアセット110によって受信された特定のタイプのメッセージのカウント数、各アセット110へのアクティブな接続の数、ネットワークリソース使用率の傾向、メモリ使用率の傾向、プロセッサ使用率の傾向、既存のポリシーの適用頻度の表示等の様々な情報を含み得る。
一実施形態において、ログ解析部152は、状態情報中に、メッセージ情報に基づいて特定のクライアント190を特徴づけるデータを含めるよう更に構成され得る。例えば、ログ解析部は、クライアント190が特定の期間にわたって特定のタイプの要求を行った頻度に基づいて、クライアント190を、現在、潜在的なリスクになっていると分類する論理を実装し得る。正確な特徴づけ論理は、管理者によって構成可能であってもよく、および/または、実施形態に応じて様々であってよい。
状態情報がポリシー生成コンポーネント154に供給される頻度、または、それに応答する条件は、実施形態によって様々であり得る。状態情報は、一度に全て送信される必要はない。例えば、ログ解析部152は、状態情報の個々の項目を、それらの項目が識別された際に報告してもよい。
一実施形態において、ログ解析部152は、システム100内の他のコンポーネントが、ログ解析部152が入手可能な様々な状態情報をクエリするために用い得る1以上のサーバインターフェースを提供するよう更に構成され得る。例えば、システム100内の或るアセットが、ログ解析部152に、特定のIPアドレスまたはドメインを有する通信に関する情報(あれば)をクエリし得る。そのようなクエリは、様々な理由で有用であり得る。例えば、サーバが、特定のIPアドレスまたはドメインからの疑わしいトラフィックを受信し、クエリの結果が、その疑わしいトラフィックが過去に頻繁に生じていることを示す場合、サーバは、例えばそのIPアドレスまたはドメインをブラックリストに載せる等の積極的なアクションをとるよう構成され得る。
2.6.ポリシーの生成および発行
ポリシー生成部154は、ログ解析部152からの状態情報に基づいて、潜在的なセキュリティの脅威またはシステム100の完全性に対する他のリスクを識別するよう構成される。ポリシー生成部154は、識別されリスクに最適に対処するために(および、一部の実施形態では、もはや存在しないリスクに対処することが意図されたポリシーを除去するために)、識別されたリスクに基づいて、ポリシーデータベース155に格納されるポリシーを生成、修正、および/または削除するよう更に構成される。リスクを識別してポリシーを生成するための多くの技術が存在し、または可能であり、ポリシー生成部154は、実施形態に応じて任意の適切な技術を用いてよい。
一実施形態において、ポリシー生成部154によって生成されたポリシーは、解析部150が担当する各アセット110において適用されるよう意図され得る。一実施形態において、幾つかのポリシーは、例えば、特定の地理的領域またはクラスタ内の全てのアセット110、特定のタイプの全てのアセット110、または単一の特定されたアセット110等といった、特定のアセット110のみにおいて適用されるよう調節され得る。一実施形態において、ポリシー生成部154によって生成されたポリシーは、所与のアセット110が、アセット110が既に入手可能な情報のみに基づいて、そのポリシーに該当するメッセージを識別するのに十分な論理を有する。例えば、ポリシーは、単一のアセット110が、他のアセット110からのメッセージログ117にアクセスできない場合であっても、および/または、単一のアセット110がシステム100の他の任意のコンポーネントと、メッセージに関する通信を行う必要なく、単一のアセット110が、該当するメッセージをブロックするために識別するのに十分な情報を有し得る。
一実施形態において、トラフィック情報に基づいてポリシーが生成された際に、そのポリシーは、実際にはデータの解析/収集に寄与していない場合もある任意のエンドポイントに分配され得る。例えば、ログ解析部152は、所与のIPアドレスが「悪い」ことを見出し得る。次に、ポリシー生成部154は、そのIPアドレスからのメッセージをブロックするポリシーを生成し得る。そして、そのポリシーが他のシステムに、システム100の外でそれぞれ独立して用いられるために分配され得る。例えば、悪いと疑われるIPのグレーリストが、そのグレーリストを用いてリスクスコアまたは不正スコアを算出するよう構成された別の接続されていない不正検出システムに対して周期的に発行され得る。
ポリシーが生成、修正、または削除されたら、解析部150は、生成もしくは修正されたポリシーを含むよう、または削除されたポリシーを除去するよう、ポリシーデータベース155を更新する。その場合、解析部150のポリシー発行部コンポーネント156は、任意の適切なプッシュ型および/またはプル型の配信技術を用いて、ポリシーデータベース155内の更新されたポリシーを各アセット110に対して発行するよう構成される。そして、各アセット110はポリシーコンシューマーコンポーネント116を含み、ポリシーコンシューマー116は、ポリシーの更新を受信し、それに従ってポリシーキャッシュ115を更新するよう構成される。一部の実施形態では、ポリシー発行部156は、単に、ポリシーデータベース155内へのポリシーの格納を担当してもよく、各ポリシーコンシューマー116は、対応するローカルポリシーキャッシュ115をポリシーデータベース155と同期化させるために、様々なタイミングでポリシーデータベース155にアクセスするよう構成されてもよい。
一実施形態において、ポリシー生成部154がアセット110のためにポリシーを動的に生成する1つの方法は、ユーザが定義した一般的なシステムレベルの一組のポリシーを用いて、より具体的なアセットレベルの動的なポリシーを作成すべきときを決定することである。例えば、一般的なポリシーは、システム100において(単一のアセット110において、または幾つかのアセット110の組合せにおいて)特定のタイプの要求が特定の期間にわたって特定の回数を超えて受信された場合に、IPアドレスを特定の期間にわたってブラックリストに載せ、この状態が続く場合にはそのIPアドレスを永久的にブラックリストに載せることであり得る。ポリシー生成部154が、状態情報から、前者の条件が生じたことを決定した場合には、ポリシー生成部154は、各アセット110に、そのIPアドレスからのメッセージを特定の回数にわたってブロックするよう指示するアセットレベルのポリシーを動的に生成し得る。違反条件が終わった場合には、ポリシー生成部154はそのポリシーを除去し得る。或いは、その条件が続く場合には、ポリシー生成部154は、そのアセットレベルのポリシーが永久的に執行されるよう、アセットレベルのポリシーを修正し得る。
なお、メッセージデータベース157は複数の異なるアセット110から収集されたメッセージ情報を含むので、解析部150のコンポーネントは、個々のアセット110に影響する脅威のみではなく、システム100全体に対する脅威を識別するために、システム100内の全てのアセット110についてのメッセージ情報を総合的に解析する能力を有する。これにより、解析部150は、各アセットのログが孤立した状態で解析されるシステムで可能であるよりも早期に、特定のタイプの分散型の攻撃を識別できる。また、状態情報は、単に個々のアセット110に関してではなく、システム100全体についてのネットワークトラフィックの状態を記述するので、ポリシー生成部154は、そうでない場合に可能であるよりも迅速に、分散型の攻撃に対処するためのポリシーを生成する能力を有してもよく、それによってシステム100全体に対するそのような攻撃の影響を最小限にする。更に、1つまたは少数のアセット110において1つのタイプの攻撃が見られる場合には、ポリシー生成部154は、他のアセット110または全てのアセット110がその攻撃に対処するためのポリシーを生成してもよく、それにより、他のアセット110が、それらのアセット110がまだ遭遇していない攻撃に対するポリシーを先制的に配置するのを可能にする。
2.7.分散型の解析部
図2は、一実施形態による、それぞれ異なるグループのアセット210を担当する複数の解析部250を含む、例示的なネットワーク化されたコンピュータシステム200を示す。システム200は、図1のシステム100と同様に、1以上のコンピュータ装置を含む。これらの1以上のコンピュータ装置は、本明細書に記載される様々な論理的コンポーネント(コンポーネント210〜255を含む)を実装するよう構成されたハードウェアおよびソフトウェアの任意の組合せを含む。
一実施形態において、各アセット210は、図1のアセット110に関して説明されたのと同じコンポーネントを含み得る。各解析部250は、図1の解析部150に関して説明されたのと同じコンポーネントを含み得る。従って、一実施形態では、システム100および200は、システム100については単一の領域のみが図示されていることを除き、実際には同じシステムであってもよい。他の実施形態では、アセット210および/または解析部250は、図1に図示されているのとは異なるコンポーネントおよび/またはそれらの構成を用いて、アセット110および/または解析部150に関して説明されたのと同様の機能性を提供するよう構成され得る。なお、システム200は複数の解析部250を含むが、本明細書に記載される技術は、例えば、解析部150がシステム100内の唯一の解析部コンポーネントである場合等の単一の集中型の解析部を有するシステムにも等しく適用可能である。
システム200は、例えば図示されている領域231および232等の2以上の領域に更に分割される。領域231および232は地理的領域に対応する。例えば、領域231は、北米用のデータセンターに対応し、領域232は欧州用のデータセンターに対応し得る。しかし、一実施形態では、領域231および232は、グループが地理的領域に対応するか否かに関係ない、アセット210の任意のグループであり得る。
各領域231は、1以上のクラスタを含み得る。例えば、図示されているように、領域231はクラスタ221およびクラスタ222を含み、領域232はクラスタ223および224を含む。各クラスタ221〜224は複数のアセット210を含む。クラスタは、アセット210の任意のサブグループであり得る。例えばクラスタ221および223は、それぞれの領域内のウェブサーバアセットである(またはそれらを保護する)アセット210で構成される「ウェブクラスタ」であってもよく、クラスタ222および224は、それぞれの領域内のAPIサーバアセットである(またはそれらを保護する)アセット210で構成される「APIクラスタ」であってもよい。しかし、他の実施形態では、クラスタは、他の分類スキーム、地理的な近さ、実装するコンピュータ装置、または他の任意の適切なグループ化基準によってグループ化され得る。
各アセット210は、受信されたメッセージに関する情報を、アセット210が属する領域231/232の解析部250に流すまたは別様で送信するよう構成される。解析部250は、共有の多領域データリポジトリ255に対してポリシーを発行するよう構成される。例えば、多領域データリポジトリ255は、ポリシーデータベース155を格納し得る。多領域データリポジトリ255は中央データリポジトリであってもよく、または、多領域データリポジトリ255は各領域231/232に分散されていてもよい。例えば、各領域231/232は、任意の適切な同期化技術によって他の領域231/232における複製と同期化された、多領域データリポジトリ255の複製をそれぞれ格納し得る。
各アセット210において、ポリシーのローカルな複製は、多領域データリポジトリ255において見出されるポリシーと同期化された状態に維持される。アセット210は、多領域データリポジトリ255に直接アクセスしてもよく、または、対応する解析部250を介して同期化が行われてもよい。各アセット210がポリシーのローカルな複製を維持しているので、各アセット210は、たとえアセットが対応する解析部250と或る期間にわたって接触できない場合でも、または多領域データリポジトリ255と通信できない場合でも、比較的最近のポリシーのセットを適用していることを確実にできる。同期化が行われる頻度は、管理者によって、例えば、システムリソースの可用性、および、解析部250においてポリシーを生成することと、アセット210においてポリシーを執行することとの間の許容可能なタイムラグの長さに基づいて構成可能であり得る。
一実施形態において、各解析部250は、アセット210が属する領域231/232内のアセット210のみからのメッセージ情報に基づいてポリシーを生成するよう構成され得る。従って、一部の解析部250は、それぞれの領域231/232内の異なるネットワークトラフィックを考慮して、他の解析部250が生成しないポリシーを生成し得る。別の実施形態では、各解析部250は、例えば、メッセージデータベース157を、多領域データリポジトリ255に共有データベースとして格納することにより、対応する領域231/232についてのメッセージ情報を、他の領域の解析部250と共有する。これは、各解析部250が同様に構成される場合には、各解析部250が最終的に同様のポリシーを生成する実施形態となり得る(但し、それぞれ異なる領域におけるデータ共有処理間のレイテンシーを考慮すると、1つの解析部250が、或るポリシーを、別の解析部250よりかなり前に生成し得る)。これは、或る解析部250が故障するような場合に、冗長性を提供する。
2.8.ミッドティアコンポーネント
一実施形態において、システム200は、必要に応じて、1以上のミッドティアコンポーネント241を含む。ミッドティアコンポーネント241は、アセット210によって適用される更なるポリシーを示す、人間の操作者および/またはシステム200内で実行される自動化された処理からの入力を受け付けるよう構成される。これらの更なるポリシーは、例えば、解析部250が動的に生成したものではなく、人間の操作者または自動化された処理が様々な技術を用いて識別した、固定されたポリシーまたはビジネス規則であり得る。各解析部250は、ミッドティアコンポーネント241が、(例えばログ解析部152を介して)状態情報もしくはメッセージログを読み出すこと、現在のポリシーのセットを読み出すこと、または、解析部250に新たなポリシーを修正または生成するよう指示すること等のタスクを達成するためのAPIを表示するよう構成され得る。例えば、一実施形態において、1つのミッドティアコンポーネント241は、人間の操作者が、メッセージログに関する統計を見て、そのような統計に照らして新たなポリシーを構築するためのウェブインターフェースを提供する。別のミッドティアコンポーネントは、解析部250が入手可能なデータ以外のデータを用いて不正のチェックを行い、それに基づいて、自動的に新たなポリシーを生成して、解析部250に送信し得る。更に別のミッドティアコンポーネント241は、アセット110内に配置されている、特定のタイプの攻撃(例えば単純なレート違反制限によって検出可能な攻撃等)を迅速に識別するために設けられた他の図示されていないコンポーネント(例えば、メッセージハンドラー112の前に配置された前置フィルターコンポーネント)とやりとりすることによってポリシーを生成するよう最適化されたコンポーネントであり得る。
2.9.その他
システム100および200は、本明細書に記載される技術を行うのに適したシステムの例に過ぎない。他のシステムは、様々な構成の更なるまたはより少ないコンポーネントを含み得る。コンポーネント間における機能の分割も、実施形態に応じて異なり得る。図1に図示されているアセット110および解析部150のサブコンポーネントは、本明細書に記載される本発明の技術を説明する意図で記述された論理的コンポーネントである。サブコンポーネントは、ソフトウェアアプリケーション、パッケージ、モジュール、クラス、処理、またはオブジェクトの区別できる組に実際に対応してもよく、または対応しなくてもよい。例えば、一部の実施形態では、リスクを識別する処理とポリシーを生成する処理とは、ログ解析部152およびポリシー生成部154が単一のサーバアプリケーションとして実装されるよう相関されてもよい。別の例として、一部の実施形態では、メッセージハンドラー112、メッセージロガー113、およびポリシーエンフォーサー114は、単一のソフトウェアアプリケーションを構成してもよい。
本明細書に記載される様々なデータ要素は、様々な方法で格納され得る。例えば、ポリシーキャッシュ115、メッセージログ117、ポリシーデータベース155、およびメッセージデータベース157の各々は、1以上のデータリポジトリ内の別個の1以上のデータベーステーブル、データベース、またはファイルに格納され得る。或いは、これらの様々なデータ要素の一部は、1以上の組み合わされたデータベーステーブル、データベース、および/またはファイルに一緒に格納され得る。
3.0.機能的概観
3.1.ローカルポリシーの適用
図3は、一実施形態による、分散型トラフィック管理システムにおいてローカルポリシーを適用するための例示的なフロー300を示す。フロー300の様々な要素は、例えば上述のシステム100および200等のシステムを含む様々なシステムで行われ得る。一実施形態において、後述する機能的ブロックに関して説明される各処理は、汎用コンピュータまたは専用コンピュータのいずれかにおいて、コンピュータのメモリとのやりとり、およびその物理的状態を変換することを含むデータの読み出し処理、変換処理、およびストレージ処理を行いながら、1以上のコンピュータプログラム、他のソフトウェア要素、および/またはデジタル論理を用いて実装され得る。フロー300は、アセットにおけるローカルポリシーの適用の一例である。他のフローは、様々な構成のより少ないまたは更なる要素を含み得る。
ブロック310は、例えばクライアント190等のクライアント装置、またはメッセージが受信され得る他の任意の装置からのメッセージを受信することを含む。メッセージは、例えばHTTP要求またはTCPパケット等の任意のタイプのメッセージであり得る。メッセージは、例えばアセット110または他の任意の適切なアセット等のアセットにおいて受信される。一実施形態において、メッセージは、行われるよう指定されたアクション(例えばファイルの読み出し、アプリケーションの実行、別のシステムコンポーネントへのメッセージの転送等)を特定または別様で示し得る。
ブロック320は、アセットについてのローカルポリシーデータ内の、メッセージが検査されるべき一組のポリシーを識別することを含む。例えば、ローカルポリシーデータは、ポリシーキャッシュ115、または、アセットに対してローカルなストレージ装置に格納された、ポリシーを記述する他の任意の適切なデータ構造であり得る。
ブロック330は、ポリシーによって特定されている1以上のメッセージ特性についての値を識別することを含む。例えば、メッセージ特性は、例えばソースまたは宛先のIPアドレス等のヘッダーフィールド、要求されている統一資源識別子(URI)、参照URI、メッセージと関連づけられたクッキーまたはセッションデータ、タイムスタンプ、トランザクションメタデータ、ペイロード内における特定のキーワードの存在等を含み得るが、それらに限定されない。一実施形態において、メッセージ特性は、アセットによって受信された、1以上の同様の特性を有する以前のメッセージから少なくとも部分的に生成された統計または他の情報を含み得る。これらの以前のメッセージは、上記および他の目的で、例えば、メッセージログ117または他の任意の適切なローカルリポジトリに記録されたものであり得る。メッセージ特性は、メッセージ特性を得るための論理が既にアセットに知られているように、予め定義されたまたは周知のメッセージフィールドまたは特徴に対応し得る。或いは、ポリシーは、他のメッセージ特性からその値を算出するよう構成された関数または他の実行可能な論理を特定することによって、メッセージ特性についての値を識別する方法を特定し得る。
ブロック340は、識別された値に基づいて、ポリシーがメッセージに適用されるか否かを決定することを含む。ポリシーがメッセージに適用されるか否かを決定するために、任意の適切な技術が用いられ得る。ブロック340は、例えば、ポリシーによって特定されている値または値の範囲を、ブロック330において識別された1または複数の値と比較することを含み得る。ポリシーは、1以上の条件を含み得る。ポリシーによって特定されている論理に応じて、ポリシーが適用されるメッセージは、これらの条件の1つまたは全てのうちのどこかに一致することが要求され得る。
ブロック340は、ブロック320において識別されたポリシーの一部または全てについて行われ得る。一部の実施形態では、ブロック320〜340は、何回かの反復を用いて行われる。例えば、1回目の反復では、優先順位が最も高い単一のポリシーがロードされ得る。そのポリシーに必要な値は、ブロック330に従って算出される。次に、ブロック340において、その単一のポリシーについての決定が行われる。ポリシーが適用されない場合には、一致するポリシーが見出されるまで、または、ポリシーが適用されないことが決定されるまで、他のポリシーの各々について、更なる反復が続けて行われる。他の実施形態では、単一の反復において複数のポリシーまたは全てのポリシーが考慮され得るように、例えば決定木または状態マシン等の様々な最適化が用いられ得る。一実施形態では、一致するポリシーが見出されたら、他のポリシーを考慮する必要はなく、従って、ブロック340(および必要に応じてブロック330)は、他のポリシーに関して行われる必要はない。一実施形態では、一致するポリシーが見出されたか否かに関係なく、全てのポリシーが考慮され、複数の適用されるポリシーによって示されている矛盾するポリシーに基づくアクション(あれば)を調整するために、様々な優先順位付け機構が用いられ得る。
ブロック340において、ポリシーがメッセージに適用されると決定された場合には、フローはブロック350に進む。ブロック350は、適用されるポリシーと関連づけられた1以上のポリシーに基づくアクションを行うことを含む。ポリシーに基づくアクションは、例えば、メッセージをブロックすること(例えば「ブラックリストに載せる」)、メッセージのアドレスで指定されている宛先以外の宛先にメッセージを転送すること、メッセージがアドレスで指定されている宛先に進むことを許可すること(例えば「ホワイトリストに載せる」)、エラーメッセージまたは他の適切なメッセージを用いてメッセージに応答すること、および/または、アセットが実装するよう構成され得る他の任意の適切なタイプのアクションを含み得る。別の例として、アクションは、(例えば、後続のポリシー決定処理または生成処理に有用なように)メッセージについて通常は記録されない詳細なメッセージ情報を記録し得る。
ブロック360は、メッセージの処理を通常の方法で進める(例えば、メッセージによって示されている指定されたアクションを行う)か否かを決定することを含む。例えば、メッセージをブロックすること、またはエラーメッセージを用いて応答すること等の、特定のポリシーに基づくアクションは、アセットに、メッセージの処理を通常の方法で進めないよう暗示的または明示的に指示し得るものであり、その結果、フローはブロック370に進み、そこで、メッセージの処理が停止される。例えば、メッセージを許可すること、または詳細なメッセージ情報を記録すること等の、他のポリシーに基づくアクションは、アセットに、メッセージの処理を通常の方法で進めるよう暗示的または明示的に指示し得る。その結果、フローはブロック380に進む。
また、ブロック340において、ポリシーがメッセージに適用されないと決定された場合には、フローはブロック380に進む。ブロック380は、例えば、メッセージによって示されている指定されたアクションを行う等の、メッセージを通常の方法で処理することを含む。
3.2.ポリシーの生成および発行
図4は、一実施形態による、分散型トラフィック管理システムにおいてポリシーを生成して発行するための例示的なフロー400を示す。フロー400の様々な要素は、例えば、上述のシステム100および200等のシステムを含む様々なシステムにおいて行われ得る。一実施形態において、後述する機能的ブロックに関して説明される各処理は、汎用コンピュータまたは専用コンピュータのいずれかにおいて、コンピュータのメモリとのやりとり、およびその物理的状態を変換することを含むデータの読み出し処理、変換処理、およびストレージ処理を行いながら、1以上のコンピュータプログラム、他のソフトウェア要素、および/またはデジタル論理を用いて実装され得る。
ブロック410は、アセットにおいて、例えば、複数のアセットが図3のブロック310を行った結果として生じるメッセージ等のメッセージを受信することを含む。図示しないが、各アセットは、受信したメッセージの一部または全てに応答して、フロー300を行い得る。フロー400の実行は、フロー300を行うアセットとは非同期に、ブロック410から進み得る。
ブロック420は、アセットが、例えば解析部150等の解析部に送信するメッセージ情報を識別することを含む。ブロック430は、メッセージ情報を解析部に送信することを含む。一部の実施形態では、メッセージ情報は本質的には各メッセージの完全な複製であるため、ブロック420はトリビアルな工程である。他の実施形態では、ブロック420は、様々な検出技術を用いて、解析部150の潜在的な対象であるメッセージを識別することを含み得る。例えばアセットは、解析部150によって行われるポリシーの決定に影響を及ぼし得る通常とは異なるメッセージを識別するための様々な規則または機械学習論理を有するよう構成され得る。従って、アセットは、全てのメッセージについてのメッセージ情報を送信するのではなく、潜在的な対象であるメッセージのみについてのメッセージ情報を送信する。一実施形態において、メッセージ情報は、更に、解析部が対象とし得るデータ(例えばフィールド、特性、統計等)のみを含むよう、フィルタリング、要約、集約、または別様で処理され得る。一実施形態において、メッセージ情報は、所与のメッセージの処理に関連づけて収集されたデータ(例えば、メッセージに応答するために使用されたアセット処理時間もしくはアセットリソースの量、または、いずれかのポリシーが適用されたか否か等)を含み得る。
一実施形態において、ブロック420〜430は、アセットにおいて、ブロック410におけるメッセージについての繰り返しとは非同期に実行される処理によって行われる。例えば、各アセットは、ブロック410に応答してアセットによって生成されたローカルメッセージログを周期的にまたは別様で読み込み、それに基づいてブロック420〜430を行うメッセージストリーミングコンポーネント(例えば報告部118等)を含み得る。そのような実施形態では、メッセージ情報は、複数のメッセージについて一度に一緒にバッチ処理され得る。或いは、メッセージストリーミングコンポーネントは、メッセージ情報を継続的に識別し得るが、メッセージ情報の配信については、ネットワークリソースが利用可能になるまで、および/または他の条件が満たされるまで待機し得る。他の実施形態では、ブロック420〜430は、メッセージの受信に応答して(例えば、フロー300のブロック310においてメッセージが受信された際、または、メッセージに関するフロー300を終了した際に)即時に行われる。
ブロック440は、解析部がメッセージ情報を記録することを含む。解析部は全メッセージ情報を記録してもよく、または、解析部は、メッセージ情報を処理して、フィルタリング、要約、または集約されたメッセージ情報のみを記録してもよい。メッセージ情報は、例えばメッセージデータベース157および/または多領域データリポジトリ255等の任意の適切なリポジトリに格納され得る。
ブロック450は、解析部が、記録されたメッセージ情報によって示されている望ましくない条件を識別することを含む。例えば、解析部は、アセットに対する特定のIPアドレスまたは特定のグループのIPアドレスからの攻撃、複数のシステムに影響している分散型の攻撃、望ましくない量のシステムリソースを消費している或るタイプのメッセージまたはクライアントのグループ等を識別し得る。解析部は、そのような条件を検出するための任意の適切な論理(例えば、予め定義された規則またはパターン認識に基づく論理等)を用い得る。必要に応じて、更に、またはその代わりに、ブロック450は、例えば、(例えば、要求を、負荷がかかり過ぎているまたは故障しているサーバから一時的にリダイレクトするポリシーを生成するか否かを示す)サーバ負荷統計等のシステムについての他の状態情報に基づいて望ましくない条件を識別することを含み得る。また、ブロック450は、必要に応じて、不要なポリシーが除去され得るように、もはや存在しない以前の望ましくない条件を識別することを含み得る。
ブロック460は、解析部が、望ましくない条件に対処するための少なくとも1つのポリシーを生成することを含む。ポリシーは、例えば、或るIPアドレスまたはIPアドレスの範囲をブロックすること、特定のタイプの要求をリダイレクトすること等の任意の適切な方法で、望ましくない条件に対処し得る。任意の適切な適応的ポリシー生成技術が用いられ得る。一実施形態では、ポリシーは、アセットが、他のアセットにおいてどのようなメッセージが受信されているかを知らずとも、アセットが解析部と通信する必要なく、単一のアセットにおいて適用可能なアセットレベルのポリシーである。
一実施形態において、解析部は、より一般的なシステムレベルのポリシーに基づいて、特定のアセットレベルのポリシーを生成し得る。システムレベルのポリシーは、複数のアセットからのメッセージ情報を反映する特性を潜在的に含む、メッセージ情報から得られた様々な特性の関数に少なくとも基づいて、望ましくない条件を示す基準を特定する。システムレベルのポリシーは、望ましくない条件が見出されたときに、どのようなアセットレベルのポリシーが生成されるべきかを更に示してもよい。
一実施形態において、ポリシーは時間基準を含み得る。解析部および/または個々のアセットは、それぞれの時間基準によって示される期限切れのポリシーを自動的に除去するよう構成され得る。
ブロック470は、ポリシーを記述しているデータを、ポリシーデータのリポジトリ(例えばポリシーデータベース155および/または多領域データリポジトリ255等)に格納することを含む。
ブロック450〜470は、フロー400の残りの部分を進める前に、幾つかの生じ得る望ましくない条件に関して繰り返され得る。
ブロック480は、ポリシーの更新をアセットに送信することを含む。ブロック480は、例えば、アセットがポリシーデータをポリシーデータのリポジトリから直接読み出すこと、アセットが、解析部がポリシーの更新を提供することを周期的に要求すること、および/または、新たなポリシーが生成された際にまたは別様で、解析部が新たなポリシーの更新をアセットにプッシュすることを含み得る。例えば、各アセットは、ポリシーの更新について確認する、および/または、解析部もしくはリポジトリに、ポリシーの更新についてポーリングするコンシューマーコンポーネント(例えば、ポリシーコンシューマー116等)を含み得る。
ブロック490は、アセットが、任意の種類の同期化手段を用いて、それぞれのローカルポリシーデータをポリシーの更新と同期化させることを含む。なお、アセットは、フロー400とは非同期に、フロー300の様々な反復を行うので、アセットは、フロー300の1回の反復を行った後、別のメッセージを受信する前に、ブロック490を行い得る。従って、そのアセットについてのフロー300の次の反復は、フロー300の前回の反復では考慮されなかった1以上の新たなポリシーを示す更新されたポリシーデータに基づくものとなる。
フロー400は、ポリシーを生成して発行することの一例である。他のフローは、様々な構成のより少ないまたは更なる要素を含み得る。例えば、一実施形態では、ブロック440は必要ない。別の実施形態では、ブロック450および460は組み合わされてもよい。別の例として、フロー400は、解析部が、例えば、ミッドティアコンポーネント241/242を介して受信され得るような、ビジネス規則または外部のコンポーネントによって生成されたフィルターを反映する固定されたポリシーを受信することを更に含み得る。これらの固定されたポリシーも、ブロック470において、ポリシーデータのリポジトリに追加され得る。
一実施形態において、ブロック410〜440および/またはブロック480〜490は、フロー400の残りの要素とは非同期に、略連続的に行われる。一方、ブロック450〜470は、周期的にもしくは他の間隔で、または様々なトリガ条件(例えば、特定のタイプまたは量のメッセージ情報の受信等)に応答して繰り返され得る。
一実施形態において、ブロック430〜480は、分散型システム(例えば、システム200または他の分散型システム等)における複数の解析部によって行われ得る。
4.0.例示的な実装の詳細
一実施形態によれば、解析部は、セキュリティポリシーを執行すること、悪意のあるもしくは不正なアクティビティをブロックすること、ビジネス規則を執行すること、例えばレート制限等の特定の条件に基づいて、要求に対するカスタムのアクションを実行すること、ネットワークのエッジにおける対クロスサイトリクエストフォージェリ保護、ネットワークのエッジにおける対クロスサイトスクリプティング保護、迅速な反応時間を可能にするためのリアルタイムの積極的なセキュリティモニタリング(警戒アクション、および/もしくは、セキュリティ攻撃パターンを調べるために悪意のあるトラフィックをサンドボックスクラスタへとルーティングするためのルーティングアクションの実装を含む)、セキュリティ関連のインシデントに基づく反応的セキュリティモニタリング、インフラ脆弱性(あれば)に関する洞察を得るためのセキュリティ関連データのアドホックな解析、および/または、アセットが標的になりにくくなるよう攻撃者を欺くことであるが、それらに限定されないことの一部または全てを行うよう構成されたアセットレベルのポリシーを生成し得る。
4.1.例示的なポリシー構造
一実施形態によれば、第1のポリシーデータベースは、データベース内の複数の行を含む。各行は1つのポリシーを表す。行の必要なフィールドは、例えば、ポリシー識別子、パスパラメータ、およびアクションパラメータを含み得る。行の必要に応じて設けられるフィールドは、方法パラメータ、レートパラメータ、領域パラメータ、クラスタパラメータ、ホストパラメータ、および/またはカスタムパラメータを含み得る。各パラメータは異なるメッセージ特性に対応し、ポリシーが適用されるか否かを決定するために対応するメッセージ特性と比較される単一の値、値の範囲、および/または値のリストを含み得る。
一実施形態によれば、第2のポリシーデータベースは、複数の行を用いて複数のポリシーを表す。各行は、アクションが執行される対象(例えば、IPアドレス、装置識別子、ユーザエージェント、顧客ID等)と、ポリシーIDとを特定する。各行は、メッセージ特性(例えばパス、方法、領域、クラスタ、ホスト、またはカスタム等)に対応する1以上のフィールドについての値を更に含む。実施形態に応じて、フィールドの1以上は空のままにされ、ポリシーが適用されるか否かを決定する際に無視されるメッセージ特性を示す。各行は、ポリシーについてのスケジュール(例えば、開始時間、終了時間、および/または反復パターン等)を示す必要に応じて設けられるフィールドを更に含み得る。各行は、行われるアクションを特定するフィールドを更に含む。
第1のポリシーデータベースおよび第2のポリシーデータベースは、実施形態に応じて、互いに関連して、またはそれぞれ独立して用いられ得る。一実施形態において、第1のポリシーデータベースは、第2のポリシーデータベース内のポリシーを生成するときを決定するために、システムレベルで解析部によって用いられ、一方、第2のポリシーデータベースは、アセットにおいて、着信メッセージに対してポリシーを執行するために用いられる。しかし、他の実施形態では、ローカルポリシーデータは、第1のポリシーデータベースおよび第2のポリシーデータベースの両方を含み得る。
第1のポリシーデータベースおよび第2のポリシーデータベースは、単に、ポリシーデータ構造の例である。更に別の実施形態では、ポリシーは、他の任意の適切な構造またはフォーマットでローカルにおよび/またはグローバルに格納され得る。
4.2.例示的なポリシーキャッシュ
一実施形態によれば、アセットは、1以上の区別できるキャッシュの形態のローカルポリシーデータを格納し得る。一実施形態では、第1のキャッシュはグローバルリソースキャッシュである。グローバルリソースキャッシュは、アセットのための、特定のURIについて適用される適切な規則へのリソースURIのマッピングを含む。グローバルポリシーキャッシュの1つの用途は、特に、特定のURIに対して、ブラックリストおよび特別な規則を執行することである。例えば、例示的な用途のケースでは、顧客サービスセンターは、電子商取引プラットフォーム上で、アクセスに関して慎重に扱われるべきエンドポイントを用いるために、ホワイトリストに載せられる。しかし、ホワイトリストに載せることは、顧客サービスエージェントが全てのエンドポイントにアクセスすることを許可するものの、他の内部ツール、開発者、およびテストチームによって用いられることが意図された幾つかのURIがあり得、それらは顧客サービスエージェントについてはブロックされるべきである。そのようなリソースをグローバルリソースキャッシュにおいてリスト化して、着信した要求のURIを、グローバルリソースキャッシュ内に一致するものがあるかについて評価することにより、そのようなビジネス規則を執行できる。一般的に、グローバルリソースキャッシュは、ワークフローにおける処理の残りの部分を短絡させるための良好な候補であるリソース規則を含む。
一実施形態では、第2のキャッシュは対象規則キャッシュである。対象規則キャッシュは、執行される即時規則への対象(例えばIP、装置識別子、顧客ID)のマッピングを含む。このキャッシュは、各URIについて特定のハンドリングを行わずに、断定的に対象に適用可能な規則を含む。そのようなポリシーの例は、「顧客ID12456689からのあらゆる要求をブロックする」である。
一実施形態では、第3のキャッシュは対象リソースキャッシュである。対象リソースキャッシュは、執行されるリソース特定規則への対象(例えばIP、装置識別子、顧客ID)のマッピングを含む。このキャッシュは、特定のURIのみに対して適用可能なポリシーを含む。そのようなポリシーの例は、「顧客ID12456689からのURIパス/ホームへの要求をブロックする」である。
ポリシーを格納するために、これらのキャッシュおよび/または他のタイプのキャッシュの様々な任意の組合せが用いられ得る。特定の実施形態では、上記の3つのキャッシュは、以下のワークフローを用いて一緒に用いられる。まず、メッセージが受信される。次に、そのメッセージをポリシーの執行から除外するか否かを決定するための一組のグローバルな除外を用いて、メッセージが処理される。メッセージが除外されない場合には、次に、アセットは、そのメッセージURIがグローバルリソースキャッシュにあるか否かを決定する。否定された場合には、次に、アセットは、そのメッセージ対応する顧客IDが、対象規則キャッシュまたは対象リソースキャッシュにあるか否かを決定する。否定された場合には、次に、アセットは、そのメッセージのソースIPアドレスが、対象規則キャッシュまたは対象リソースキャッシュにあるか否かを決定する。否定された場合には、次に、アセットは、そのメッセージの装置識別子が、対象規則キャッシュまたは対象リソースキャッシュにあるか否かを決定する。否定された場合には、メッセージは通常の方法で処理される。しかし、上述の決定のいずれかが肯定である場合には、対応するポリシーについての適切なアクションが執行される。
4.3.例示的な構成オプション
一実施形態によれば、以下の構成オプションの一部または全てを用いて、アセットの特定の挙動を構成可能である。頻度パラメータは、アセットがローカルポリシーキャッシュを更新する頻度を制御する。例示的な頻度は、例えば30秒毎であり得る。様々な「使用可」パラメータは、例えば、特定のアセットについては、ポリシーの執行またはログの報告が使用不可にされ得るように、アセットの個々のサブコンポーネントがアクティブであるか否かを制御し得る。モードパラメータは、アセットが、ポリシーに基づくアクションを実際に行うよう構成されるか、または、テストモードで動作して、アセットがテストモードになかったとした場合にアセットがどのようなポリシーに基づくアクション行なっていたかを、アセットが単に報告するよう構成されるかを制御する。ログレベルパラメータは、記録されるおよび/または解析部に送信されるメッセージ情報の量を制御し得る。ホワイトリストパラメータは、ホワイトリストに載せられたメッセージに対して、アセットが他のポリシーを実際に執行するか否かを制御し得る。他の実施形態では、そのような構成パラメータは設けられなくてもよく、および/または、他の様々な構成パラメータが可能である。
4.4.例示的なメッセージログ
一実施形態によれば、メッセージ情報は、JSON blobまたは他の適切なデータ構造で記録および/または流され得る。データ構造は、例えば、装置識別子、IP、顧客ID、アプリケーション名、地理的位置データ、要求エイリアス、要求URL、応答状態、日付、ホスト名、メッセージバッチID、検出されたポリシーアクション等であるがそれらに限定されないフィールドを含み得る。例えば、そのようなログの1つは、以下のものであり得る。
Figure 2017534105
当然ながら、他の様々なログ構造およびフィールドも可能である。
4.5.例示的なクエリ
一実施形態によれば、解析部は、記録されたメッセージ情報を含む様々なクエリを用いて、ポリシーを生成する対象を識別するよう構成され得る。そのようなクエリの例は、特定の領域(例えば米国)内の上位n個の要求元IPアドレスを識別すること、特定のAPIを呼び出した特定の領域内の上位n個の要求元IPアドレスを識別すること、特定のAPIに関してPOST以外のメソッドを呼び出した特定の領域内の上位n個の要求元IPアドレスを識別すること、開ける可能性がある管理コンソールを探してサービスをスキャンしている特定の領域内の上位n個の要求元IPアドレスを識別すること、および、PHPエンドポイントを探してサービスをスキャンしている特定の領域内の上位n個の要求元IPアドレスを識別することを含み得るが、それらに限定されない。当然ながら、これらの例は、作成され得る様々なクエリの単なる例である。
同様に、ミッドティアコンポーネントは、例えば、統計的解析、ビジネス規則の策定等の目的で、解析部に対して上記および他のクエリを行い得る。
5.0.ハードウェアの概観
一実施形態によれば、本明細書に記載される技術は、1以上の専用コンピュータ装置によって実装される。専用コンピュータ装置は、本技術を行うためのハードワイヤードであってもよく、または、例えば、1以上の特定用途向け集積回路(ASIC)もしくは本技術を行うよう持続的にプログラムされたフィールドプログラマブルゲートアレイ(FPGA)等のデジタル電子装置を含んでもよく、または、ファームウェア、メモリ、他のストレージ、もしくはそれらの組合せ内のプログラム指示に従って本技術を行うようプログラムされた1以上の汎用ハードウェアプロセッサを含んでもよい。そのような専用コンピュータ装置は、カスタムのハードワイヤード論理、ASIC、または本技術を達成するためのカスタムプログラミングを有するFPGAを組み合わせたものであってもよい。専用コンピュータ装置は、本技術を実装するためのハードワイヤード論理および/またはプログラム論理を組み込んだデスクトップコンピュータシステム、携帯型コンピュータシステム、携帯型装置、ネットワーキング装置、または他の任意の装置であり得る。
例えば、図5は、本発明の実施形態が実装され得るコンピュータシステム500を示すブロック図である。コンピュータシステム500は、情報を通信するためのバス502または他の通信機構と、バス502と接続された、情報を処理するためのハードウェアプロセッサ504とを含む。ハードウェアプロセッサ504は、例えば、汎用マイクロプロセッサであり得る。
コンピュータシステム500は、バス502に接続された、プロセッサ504によって実行される情報および指示を格納するための主メモリ506(例えば、ランダムアクセスメモリ(RAM)または他の動的ストレージ装置等)も含む。主メモリ506は、プロセッサ504によって実行される指示を実行中に一時変数または他の中間情報を格納するためにも用いられ得る。そのような指示は、プロセッサ504によってアクセス可能な非一時的ストレージ媒体に格納された際に、コンピュータシステム500を、指示において特定されている動作を行うようカスタマイズされた専用装置にする。
コンピュータシステム500は、バス502に接続された、プロセッサ504用の静的情報および指示を格納するための読み出し専用メモリ(ROM)508または他の静的ストレージ装置を更に含む。情報および指示を格納するために、例えば磁気ディスクまたは光ディスク等のストレージ装置510が設けられ、バス502に接続される。
コンピュータシステム500は、バス502を介して、コンピュータのユーザに対して情報を表示するためのディスプレイ512(例えば、陰極線管(CRT)等)に接続され得る。情報およびコマンド選択をプロセッサ504に通信するための、英数字キーおよび他のキーを含む入力装置514がバス502に接続されている。別のタイプのユーザ入力装置は、方向情報およびコマンド選択をプロセッサ504に通信するため、および、ディスプレイ512上でのカーソルの移動を制御するための、例えばマウス、トラックボール、またはカーソル方向キー等のカーソル制御部516である。この入力装置は、典型的には、装置が平面内の位置を特定するのを可能にする2つの軸(第1の軸(例えば、x)および第2の軸(例えば、y))における2自由度を有する。
コンピュータシステム500は、コンピュータシステムと組み合わされて、コンピュータシステム500が専用装置になるようにするまたはプログラムするカスタマイズされハードワイヤード論理、1以上のASICもしくはFPGA、ファームウェア、および/またはプログラム論理を用いて、本明細書に記載される技術を実装し得る。一実施形態によれば、本明細書の技術は、プロセッサ504が主メモリ506に格納されている1以上の指示の1以上のシーケンスを実行するのに応答して、コンピュータシステム500によって行われる。そのような指示は、例えばストレージ装置510等の別のストレージ媒体から主メモリ506に読み込まれ得る。主メモリ506に格納されている指示のシーケンスの実行は、プロセッサ504に、本明細書に記載される処理工程を行わせる。別の実施形態では、ソフトウェア指示の代わりに、またはそれと組み合わせて、ハードワイヤード回路が用いられ得る。
本明細書において用いられる「ストレージ媒体」という用語は、装置を特定の方法で動作させるデータおよび/または指示を格納する任意の非一時的な媒体を指す。そのようなストレージ媒体は、不揮発性媒体および/または揮発性媒体を含み得る。不揮発性媒体は、例えば、ストレージ装置510等の光ディスクまたは磁気ディスクを含む。揮発性媒体は、例えば主メモリ506等の動的メモリを含む。ストレージ媒体の一般的な形態としては、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、または他の任意の磁気データストレージ媒体、CD−ROM、他の任意の光データストレージ媒体、孔のパターンを有する任意の物理的媒体、RAM、PROM、およびEPROM、フラッシュEPROM、NVRAM、他の任意のメモリチップまたはカートリッジが挙げられる。
ストレージ媒体は伝送媒体とは区別されるが、伝送媒体と関連して用いられ得る。伝送媒体は、ストレージ媒体間での情報の転送に関与する。例えば、伝送媒体は、バス502を構成するワイヤを含む、同軸ケーブル、銅線および光ファイバを含む。伝送媒体は、例えば電波データ通信および赤外線データ通信において生成されるような音響波または光波の形態もとり得る。
1以上の指示の1以上のシーケンスを、実行のためにプロセッサ504へと搬送することには、様々な形態の媒体が関与し得る。例えば、指示は、まず、リモートコンピュータの磁気ディスクまたはソリッドステートドライブ上で搬送され得る。リモートコンピュータは、指示をリモートコンピュータの動的メモリにロードして、モデムを用いて電話回線を介して指示を送信し得る。コンピュータシステム500に対してローカルなモデムは、電話回線上のデータを受信し、赤外線送信器を用いて、データを赤外線信号に変換し得る。赤外線検出器が、赤外線信号内で搬送されたデータを受信し、適切な回路が、データをバス502上に配置し得る。バス502は、データを主メモリ506へと搬送し、そこから、プロセッサ504が指示を読み出して実行する。主メモリ506が受け取った指示は、プロセッサ504による実行前または実行後に、必要に応じてストレージ装置510に格納され得る。
コンピュータシステム500は、バス502に接続された通信インターフェース518も含む。通信インターフェース518は、ローカルネットワーク522に接続されたネットワークリンク520に接続する双方向データ通信を提供する。例えば、通信インターフェース518は、総合デジタル通信網(ISDN)カード、ケーブルモデム、衛星モデム、または対応するタイプの電話回線へのデータ通信接続を提供するモデムであり得る。別の例として、通信インターフェース518は、適合するLANへのデータ通信接続を提供するローカルエリアネットワーク(LAN)カードであり得る。無線リンクも実装され得る。そのような任意の実装において、通信インターフェース518は、様々なタイプの情報を表すデジタルデータストリームを搬送する電気信号、電磁信号、または光信号を送受信する。
ネットワークリンク520は、典型的には、1以上のネットワークを介した他のデータ装置へのデータ通信を提供する。例えば、ネットワークリンク520は、ローカルネットワーク522を介して、ホストコンピュータ524への、またはインターネットサービスプロバイダ(ISP)526によって運営されているデータ装置への接続を提供し得る。ISP526は、現在では一般的に「インターネット」528と称される世界規模のパケットデータ通信網を介したデータ通信サービスを提供する。ローカルネットワーク522およびインターネット528は共に、デジタルデータストリームを搬送する電気信号、電磁信号、または光信号を用いる。コンピュータシステム500へのおよびコンピュータシステム500からのデジタルデータを搬送する、様々なネットワークを通る信号、並びに、ネットワークリンク520上および通信インターフェース518を通る信号は、伝送媒体の例示的な形態である。
コンピュータシステム500は、ネットワーク、ネットワークリンク520、および通信インターフェース518を介して、メッセージを送信し、データ(プログラムコードを含む)を受信し得る。インターネットの例では、サーバ530は、インターネット528、ISP526、ローカルネットワーク522、および通信インターフェース518を介して、アプリケーションプログラムのための要求されたコードを送信し得る。
受信されたコードは、受信された際にプロセッサ504によって実行され得るか、および/または、後で実行するためにストレージ装置510もしくは他の不揮発性ストレージに格納され得る。
上記の明細書において、本発明の実施形態を、実装毎に異なり得る多くの具体的な詳細に関して説明した。従って、明細書および図面は、本発明を限定するものではなく、説明するものと見なされるものである。本発明の範囲、および本発明の範囲であることが出願人によって意図されるものは、本願の特許請求の範囲が発行される特定の形態における、その後の修正(あれば)を含む、本願の特許請求の範囲の文言およびその等価の範囲のみによって示される。この点に関して、本願の特許請求の範囲には、特定の請求項の従属関係が述べられているが、本願の従属項の特徴は、本願の他の従属項の特徴、および独立項の特徴と適宜組み合わせられ得るものであり、特許請求の範囲に記載されている特定の従属関係のみに従うものではないことを留意されたい。
100、200 コンピュータシステム
105 ネットワーク
110、210 アセット
112 メッセージハンドラー
113 メッセージロガー
114 ポリシーエンフォーサー
115 ローカルポリシーキャッシュ
116 ポリシーコンシューマー
117 メッセージログ
118 報告部
150、250 解析部
152 ログ解析部
154 ポリシー生成部
155 ポリシーデータベース
156 ポリシー発行部
157 メッセージデータベース
190 クライアント
195 ネットワーク
221、222、223、224 クラスタ
231、232 領域
241、242 ミッドティアコンポーネント
255 多領域データリポジトリ

Claims (20)

  1. ポリシーを記述しているグローバルポリシーデータを格納するデータリポジトリと、
    第1のコンピュータハードウェアによって少なくとも部分的に実装された複数のコンピュータアセットであって、該複数のコンピュータアセットのうちの各アセットが、クライアント装置からのメッセージを受信し、前記アセットを実装するコンピュータ装置において、前記ポリシーを記述しているローカルポリシーデータを格納し、前記ポリシーのうちのどのポリシーが前記メッセージのうちのどのメッセージに適用されるかを決定し、前記ポリシーのうちのどのポリシーが前記メッセージのうちのどのメッセージに適用されるかに基づいて、前記メッセージに関して行われるポリシーに基づくアクションを識別し、前記メッセージから記録されたメッセージ情報を解析部コンポーネントに送信し、前記グローバルポリシーデータに対する更新を反映するよう前記ローカルポリシーデータを更新するよう構成された、複数のコンピュータアセットと、
    第2のコンピュータハードウェアによって少なくとも部分的に実装された解析部コンポーネントであって、前記複数のコンピュータアセットのうちの各コンピュータアセットから前記メッセージ情報を受信し、前記複数のコンピュータアセットのうちの各コンピュータアセットからの前記メッセージ情報を集合的に解析し、前記メッセージ情報の集合的な解析に基づいて、新たなポリシーを生成し、該新たなポリシーを記述するよう前記グローバルポリシーデータを更新するよう構成された解析部コンポーネントと
    を含むことを特徴とするコンピュータシステム。
  2. 前記複数のコンピュータアセットのうちの各アセットが第1のネットワークのエッジに配置されており、前記クライアント装置が第2のネットワーク内に配置されている、請求項1記載のコンピュータシステム。
  3. 前記複数のコンピュータアセットおよび前記解析部が、前記コンピュータシステムの第1の領域内に配置されており、前記コンピュータシステムが、別の複数のコンピュータアセットおよび別の解析部を各領域が含む1以上の更なる領域を更に含み、前記データリポジトリが前記第1の領域と前記1以上の更なる領域とによって共有されている、請求項1記載のコンピュータシステム。
  4. 前記ポリシーのうちの各ポリシーが、該ポリシーが所与のメッセージに適用されるか否かを決定するための論理と、前記ポリシーが前記所与のメッセージに適用される場合に、該所与のメッセージに関して行われる、1以上の具体的なポリシーに基づくアクションを示す1以上の指示とを示すデータ構造である、請求項1記載のコンピュータシステム。
  5. 前記解析部が、前記集合的に解析されたメッセージ情報からの、システムレベルのポリシーによって記述されている条件が存在するという決定に基づき、前記新たなポリシーのうちの1以上のポリシーを識別し、前記記載されている条件に照らしてブロックまたはリダイレクトされるメッセージを識別するための論理を含む1以上のアセットレベルのポリシーを生成し、該生成された1以上のアセットレベルのポリシーを含むよう前記グローバルポリシーデータを更新するよう更に構成された、請求項1記載のコンピュータシステム。
  6. 前記解析部が、前記集合的に解析されたメッセージ情報に基づいて、前記コンピュータシステムに対する分散型の攻撃を識別し、該分散型の攻撃に関与するメッセージを識別するための論理を含む第1のポリシーを生成し、該第1のポリシーを記述するよう前記グローバルポリシーデータを更新するよう更に構成された、請求項1記載のコンピュータシステム。
  7. 前記解析部が、前記集合的に解析されたメッセージ情報に基づいて、前記複数のコンピュータアセットのうちの第1のアセットにおいて生じている攻撃を識別し、該攻撃に関与するメッセージを識別するための論理を含む第1のポリシーを生成し、該第1のポリシーを記述するよう前記グローバルポリシーデータを更新するよう更に構成され、
    前記複数のコンピュータアセットのうちの第2のアセットであって、該第2のアセットのローカルポリシーデータが更新されるときに前記攻撃に関与するメッセージをまだ受信していない第2のアセットが、前記更新されたグローバルポリシーデータに基づいて、前記第1のポリシーを記述するよう前記第2のアセットの前記ローカルポリシーデータを更新し、前記第1のポリシーに基づいて、前記攻撃に関与するメッセージをブロックまたはリダイレクトするよう構成された、
    請求項1記載のコンピュータシステム。
  8. 前記メッセージが、前記複数のアセットが行うよう指定されたアクションを示しており、各前記アセットが、前記ポリシーが適用されるメッセージに対して、前記示されている指定されたアクションの代わりにまたはそれに加えて、前記適用されるポリシーに基づくアクションを行うよう構成された、請求項1記載のコンピュータシステム。
  9. 前記ポリシーのうちの所与のポリシーによって示されているポリシーに基づくアクションが、前記所与のポリシーが適用されるあらゆるメッセージをブロックすること、前記所与のポリシーが適用されるあらゆるメッセージをリダイレクトすること、または、前記所与のポリシーが適用されるあらゆるメッセージにアセットが正常に応答することを許可することのうちの1つである、請求項1記載のコンピュータシステム。
  10. 前記複数のコンピュータアセットのうちの或るアセットが、たとえ該アセットが前記解析部コンポーネントおよび前記データリポジトリにアクセスできないときでも、前記アセットの前記ローカルポリシーデータからのポリシーをメッセージに適用するよう構成された、請求項1記載のコンピュータシステム。
  11. 1以上のコンピュータ装置によって実装されるコンピュータアセットにおいて、ポリシーを記述しているローカルポリシーデータを格納する工程と、
    前記コンピュータアセットにおいて、クライアント装置からのメッセージを受信する工程と、
    前記コンピュータアセットにおいて、前記ポリシーのうちのどのポリシーが前記メッセージのうちのどのメッセージに適用されるかを決定する工程と、
    前記コンピュータアセットにおいて、前記ポリシーのうちのどのポリシーが前記メッセージのうちのどのメッセージに適用されるかに基づいて、前記メッセージに関して行われるポリシーに基づくアクションを識別する工程と、
    前記コンピュータアセットから、前記メッセージから記録されたメッセージ情報を解析部コンポーネントに送信する工程と、
    前記コンピュータアセットによって、前記解析部コンポーネントによって生成されたグローバルポリシーデータに対する更新を反映するよう前記ローカルポリシーデータを更新する工程と
    を含むことを特徴とするデータ処理方法。
  12. 前記ポリシーのうちの各ポリシーが、該ポリシーが所与のメッセージに適用されるか否かを決定するための論理と、前記ポリシーが適用される場合に、前記所与のメッセージに関して行われる、1以上の具体的なポリシーに基づくアクションを示す1以上の指示とを示すデータ構造である、請求項11記載の方法。
  13. 前記メッセージが、前記複数のコンピュータアセットが行うよう指定されたアクションを示しており、
    前記方法が、前記ポリシーが適用されるメッセージに対して示されている前記指定されたアクションの代わりにまたはそれに加えて、適用されるポリシーに基づくアクションを行う工程を更に含む、
    請求項11記載の方法。
  14. たとえ前記アセットが前記解析部コンポーネントおよび前記グローバルポリシーデータにアクセスできないときでも、前記ローカルポリシーデータからのポリシーをメッセージに適用する工程を更に含む、請求項11記載の方法。
  15. 前記解析部コンポーネントにおいて、前記コンピュータアセットを含む複数のコンピュータアセットのうちの各アセットにおいて記録されたメッセージ情報を受信する工程と、
    前記解析部コンポーネントによって、前記複数のコンピュータアセットのうちの各コンピュータアセットにおいて記録された前記メッセージ情報を集合的に解析する工程と、
    前記解析部コンポーネントによって、前記メッセージ情報の集合的な解析に基づいて、新たなポリシーを生成する工程と、
    前記解析部コンポーネントによって、前記新たなポリシーを記述するよう前記グローバルポリシーデータを更新する工程と
    を更に含む、請求項11記載の方法。
  16. 解析部コンポーネントを実装する1以上のコンピュータ装置によって行われるデータ処理方法であって、
    複数のコンピュータアセットのうちの各アセットから、該アセットによって受信されたメッセージを記述しているメッセージ情報を受信する工程と、
    前記複数のコンピュータアセットのうちの各コンピュータアセットからの前記メッセージ情報を集合的に解析する工程と、
    前記メッセージ情報の集合的な解析に基づいてポリシーを生成する工程であって、該ポリシーが、該ポリシーが適用されるメッセージを識別するための論理と、前記ポリシーが適用される前記メッセージに関して行われるポリシーに基づくアクションとを記述している、ポリシーを生成する工程と、
    前記ポリシーを記述するようグローバルポリシーデータリポジトリを更新する工程と、
    前記複数のコンピュータアセットに、少なくとも前記グローバルポリシーデータリポジトリ内の前記ポリシーを記述しているポリシーデータを送信する工程と、
    を含むことを特徴とする方法。
  17. 前記解析部コンポーネントが、それぞれ異なる複数のコンピュータアセットに関して請求項16記載の工程を行うよう各解析部が構成された複数の解析部のうちの1つであり、
    前記グローバルポリシーデータリポジトリが、少なくとも前記複数の解析部によって共有されている、
    請求項16記載の方法。
  18. 前記メッセージ情報からの、システムレベルのポリシーによって記述されている条件が存在するという決定に基づき、前記ポリシーのうちの1以上のポリシーを識別する工程と、
    前記記載されている条件に照らしてブロックまたはリダイレクトされるメッセージを識別するための論理を含む1以上のアセットレベルのポリシーを生成する工程と、
    前記生成された1以上のアセットレベルのポリシーを含むよう前記グローバルポリシーデータを更新する工程と
    を更に含む、請求項16記載の方法。
  19. 前記メッセージ情報の集合的な解析に基づいて、前記複数のコンピュータアセットを含むコンピュータシステムに対する分散型の攻撃を識別する工程と、
    前記分散型の攻撃に関与するメッセージを識別するための論理を含む第1のポリシーを生成する工程と、
    前記第1のポリシーを記述するよう前記グローバルポリシーデータを更新する工程と
    を更に含む、請求項16記載の方法。
  20. 前記解析部コンポーネントが、前記メッセージ情報に基づいて、第1のコンピュータアセットにおいて生じている攻撃を識別する工程と、
    前記複数のコンピュータアセットのうちの少なくとも第2のアセットであって、該第2のアセットが前記攻撃に関与するメッセージを受信したことを示す前記第2のアセットからのメッセージ情報を前記解析部コンポーネントがまだ受信していない前記第2のアセットにおいて、前記攻撃に関与するメッセージを識別するための論理を含む第1のポリシーを生成する工程と、
    前記第1のポリシーを記述するよう前記グローバルポリシーデータを更新する工程と
    を更に含む、請求項16記載の方法。
JP2017516098A 2014-09-24 2015-09-23 分散型トラフィック管理システムおよび技術 Active JP6785225B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/495,631 US9621588B2 (en) 2014-09-24 2014-09-24 Distributed traffic management system and techniques
US14/495,631 2014-09-24
PCT/US2015/051783 WO2016049228A1 (en) 2014-09-24 2015-09-23 Distributed traffic management system and techniques

Publications (3)

Publication Number Publication Date
JP2017534105A true JP2017534105A (ja) 2017-11-16
JP2017534105A5 JP2017534105A5 (ja) 2018-11-15
JP6785225B2 JP6785225B2 (ja) 2020-11-18

Family

ID=54289094

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017516098A Active JP6785225B2 (ja) 2014-09-24 2015-09-23 分散型トラフィック管理システムおよび技術

Country Status (10)

Country Link
US (3) US9621588B2 (ja)
EP (1) EP3198839B1 (ja)
JP (1) JP6785225B2 (ja)
KR (1) KR102390765B1 (ja)
AU (2) AU2015320692B2 (ja)
CA (2) CA3207248A1 (ja)
DK (1) DK3198839T3 (ja)
MX (1) MX363982B (ja)
SG (1) SG11201702314YA (ja)
WO (1) WO2016049228A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10680957B2 (en) 2014-05-28 2020-06-09 Cavium International Method and apparatus for analytics in a network switch
US9251221B1 (en) * 2014-07-21 2016-02-02 Splunk Inc. Assigning scores to objects based on search query results
US9621588B2 (en) 2014-09-24 2017-04-11 Netflix, Inc. Distributed traffic management system and techniques
EP3210120B1 (en) * 2014-10-23 2019-06-19 Covenant Eyes, Inc. Tunneled monitoring service and methods
US9697349B2 (en) * 2014-10-26 2017-07-04 Microsoft Technology Licensing, Llc Access blocking for data loss prevention in collaborative environments
US9871733B2 (en) * 2014-11-13 2018-01-16 Cavium, Inc. Policer architecture
US9836598B2 (en) 2015-04-20 2017-12-05 Splunk Inc. User activity monitoring
US20170170990A1 (en) * 2015-12-15 2017-06-15 Microsoft Technology Licensing, Llc Scalable Tenant Networks
US10778645B2 (en) 2017-06-27 2020-09-15 Microsoft Technology Licensing, Llc Firewall configuration manager
US11662910B2 (en) * 2018-02-02 2023-05-30 International Business Machines Corporation Workload and interface cognizant heat-tiered storage
US10447592B2 (en) * 2018-02-08 2019-10-15 Ricoh Company, Ltd. Output device discovery using network switches
CN108429760A (zh) * 2018-03-28 2018-08-21 江苏满运软件科技有限公司 基于网关边际服务的用户请求跟踪方法
WO2019201458A1 (en) * 2018-04-17 2019-10-24 Telefonaktiebolaget Lm Ericsson (Publ) Methods, nodes and operator network for enabling management of an attack towards an application
CN109101334A (zh) * 2018-06-29 2018-12-28 中译语通科技股份有限公司 一种面向Zuul网关的微服务并发控制方法
KR101951208B1 (ko) * 2018-09-28 2019-02-25 주식회사 루터스시스템 방화벽에이전트를 이용해 네트워크 트래픽을 감시하는 방화벽 시스템
US20200106793A1 (en) * 2018-10-02 2020-04-02 Olympus Infotech, LLC Methods, systems, and computer program products for continuous cyber risk monitoring
CN109714193B (zh) * 2018-12-05 2022-01-18 国云科技股份有限公司 一种基于zuul路由转发方式接管对象存储服务的方法
CN110086820B (zh) * 2019-05-06 2021-05-11 江苏亨通工控安全研究院有限公司 一种资产信息安全管理系统与方法
CN110190994B (zh) * 2019-05-24 2021-05-28 湖南戎腾网络科技有限公司 一种基于报文缓冲的无损流量串接管理方法
US11489860B2 (en) * 2019-10-01 2022-11-01 Microsoft Technology Licensing, Llc Identifying similar assets across a digital attack surface
US11516135B2 (en) * 2020-01-19 2022-11-29 Mellanox Technologies, Ltd. Global policers
US11711445B2 (en) * 2020-09-16 2023-07-25 Netflix, Inc. Configurable access-based cache policy control
US11848949B2 (en) * 2021-01-30 2023-12-19 Netskope, Inc. Dynamic distribution of unified policies in a cloud-based policy enforcement system
US11159576B1 (en) 2021-01-30 2021-10-26 Netskope, Inc. Unified policy enforcement management in the cloud
US11777993B2 (en) 2021-01-30 2023-10-03 Netskope, Inc. Unified system for detecting policy enforcement issues in a cloud-based environment
US11894973B2 (en) 2022-03-10 2024-02-06 Ricoh Company, Ltd. Assigning and prioritizing mediation servers for monitoring legacy devices
US11606242B1 (en) 2022-03-10 2023-03-14 Ricoh Company, Ltd. Coordinated monitoring of legacy output devices

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003229913A (ja) * 2002-02-04 2003-08-15 Hitachi Ltd ネットワーク接続システム、ネットワーク接続方法、および、それらに用いられるネットワーク接続装置
JP2003273936A (ja) * 2002-03-15 2003-09-26 First Trust:Kk ファイアウォールシステム
JP2004362581A (ja) * 2003-06-06 2004-12-24 Microsoft Corp マルチレイヤーファイアウォールアーキテクチャ
JP2005071218A (ja) * 2003-08-27 2005-03-17 Nec Fielding Ltd 不正アクセス防御システム、ポリシ管理装置、不正アクセス防御方法、及びプログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6530024B1 (en) * 1998-11-20 2003-03-04 Centrax Corporation Adaptive feedback security system and method
US7152240B1 (en) * 2000-07-25 2006-12-19 Green Stuart D Method for communication security and apparatus therefor
DE10211081A1 (de) * 2002-03-13 2003-10-16 Siemens Ag System zur medizinischen Notversorgung und -überwachung eines Patienten
US6715084B2 (en) 2002-03-26 2004-03-30 Bellsouth Intellectual Property Corporation Firewall system and method via feedback from broad-scope monitoring for intrusion detection
IL149583A0 (en) * 2002-05-09 2003-07-06 Kavado Israel Ltd Method for automatic setting and updating of a security policy
US20040015719A1 (en) * 2002-07-16 2004-01-22 Dae-Hyung Lee Intelligent security engine and intelligent and integrated security system using the same
US7308711B2 (en) * 2003-06-06 2007-12-11 Microsoft Corporation Method and framework for integrating a plurality of network policies
US7559082B2 (en) 2003-06-25 2009-07-07 Microsoft Corporation Method of assisting an application to traverse a firewall
US8042167B2 (en) 2005-03-28 2011-10-18 Wake Forest University Methods, systems, and computer program products for network firewall policy optimization
US7665128B2 (en) * 2005-04-08 2010-02-16 At&T Corp. Method and apparatus for reducing firewall rules
US9407662B2 (en) 2005-12-29 2016-08-02 Nextlabs, Inc. Analyzing activity data of an information management system
CA2644386A1 (en) * 2006-03-03 2007-09-07 Art Of Defence Gmbh Distributed web application firewall
US8881259B2 (en) * 2012-12-18 2014-11-04 Verizon Patent And Licensing Inc. Network security system with customizable rule-based analytics engine for identifying application layer violations
US9621588B2 (en) 2014-09-24 2017-04-11 Netflix, Inc. Distributed traffic management system and techniques

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003229913A (ja) * 2002-02-04 2003-08-15 Hitachi Ltd ネットワーク接続システム、ネットワーク接続方法、および、それらに用いられるネットワーク接続装置
US20040010572A1 (en) * 2002-02-04 2004-01-15 Tomonori Watanabe Network gateway system having rules for exchanging packet, network gateway method, and network gateway device therefor
JP2003273936A (ja) * 2002-03-15 2003-09-26 First Trust:Kk ファイアウォールシステム
JP2004362581A (ja) * 2003-06-06 2004-12-24 Microsoft Corp マルチレイヤーファイアウォールアーキテクチャ
JP2005071218A (ja) * 2003-08-27 2005-03-17 Nec Fielding Ltd 不正アクセス防御システム、ポリシ管理装置、不正アクセス防御方法、及びプログラム

Also Published As

Publication number Publication date
AU2015320692B2 (en) 2019-05-02
AU2019210630A1 (en) 2019-08-22
EP3198839B1 (en) 2020-12-02
US20180316647A1 (en) 2018-11-01
US20160088020A1 (en) 2016-03-24
DK3198839T3 (da) 2021-02-08
EP3198839A1 (en) 2017-08-02
SG11201702314YA (en) 2017-04-27
KR20170060092A (ko) 2017-05-31
CA2962228A1 (en) 2016-03-31
WO2016049228A1 (en) 2016-03-31
AU2015320692A1 (en) 2017-04-13
CA3207248A1 (en) 2016-03-31
US9621588B2 (en) 2017-04-11
US10701035B2 (en) 2020-06-30
MX363982B (es) 2019-04-10
US20170201489A1 (en) 2017-07-13
JP6785225B2 (ja) 2020-11-18
MX2017003826A (es) 2018-01-12
CA2962228C (en) 2023-09-19
US9954822B2 (en) 2018-04-24
KR102390765B1 (ko) 2022-04-26

Similar Documents

Publication Publication Date Title
JP6785225B2 (ja) 分散型トラフィック管理システムおよび技術
US10721243B2 (en) Apparatus, system and method for identifying and mitigating malicious network threats
US11831609B2 (en) Network security system with enhanced traffic analysis based on feedback loop
US10200384B1 (en) Distributed systems and methods for automatically detecting unknown bots and botnets
US10057284B2 (en) Security threat detection
JP6006788B2 (ja) ドメイン名をフィルタリングするためのdns通信の使用
US11297077B2 (en) Gain customer trust with early engagement through visualization and data driven configuration
US9912678B2 (en) Techniques for automatically mitigating denial of service attacks via attack pattern matching
US20200137115A1 (en) Smart and selective mirroring to enable seamless data collection for analytics
US20200137021A1 (en) Using intent to access in discovery protocols in a network for analytics
CN117321966A (zh) 用于网络保护的高效威胁上下文感知数据包过滤的方法和系统
CN112602301B (zh) 用于高效网络保护的方法和系统
KR20060013491A (ko) 어택 서명 생성 방법, 서명 생성 애플리케이션 적용 방법, 컴퓨터 판독 가능 기록 매체 및 어택 서명 생성 장치
US20240163253A1 (en) Network security analysis system with reinforcement learning for selecting domains to scan
CN118018282A (en) Method and system for efficient network protection

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180925

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180925

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191016

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200116

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200416

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200930

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201026

R150 Certificate of patent or registration of utility model

Ref document number: 6785225

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250