(57)【特許請求の範囲】
【請求項１】
侵入検知システムを管理するコンピュータ実装方法であって、
クライアント・マシンのセキュリティ・エージェントによって、前記クライアント・マシンを使用する第１の実行環境によって生成された複数のイベントの第１のサブセットをインターセプトすることであって、前記複数のイベントの前記第１のサブセットは第１の学習済みセキュリティ・ポリシーに従ってインターセプトされ、前記第１の学習済みセキュリティ・ポリシーは前記第１の実行環境の動作を観察することに基づいて学習され、前記第１のサブセットのうちの少なくとも１つのイベントが悪意コード・プロファイルに関連付けられた種類のイベントである、前記第１のサブセットをインターセプトすることと、
前記セキュリティ・エージェントによって、前記第１の実行環境のための前記第１の学習済みセキュリティ・ポリシーに基づいて、少なくとも１つのインターセプトされたイベントを前記第１の学習済みセキュリティ・ポリシーの少なくとも１つの規則と比較することに基づく異常を特定することと、
前記異常の特定に応答して、前記セキュリティ・エージェントによって軽減処置を実行することと
を含むコンピュータ実装方法。
【請求項２】
前記クライアント・マシンを使用する第１の実行環境を特定することに応答して、クライアント・マシンのセキュリティ・エージェントによって、セキュリティ・ポリシー・データベースから第１の学習済みセキュリティ・ポリシーを取り出すことをさらに含み、
前記セキュリティ・ポリシー・データベースは複数の学習済みセキュリティ・ポリシーを含み、各セキュリティ・ポリシーは少なくとも１つのセキュリティ規則を含み、各セキュリティ規則は少なくとも１つの条件を含む、請求項１に記載の方法。
【請求項３】
前記セキュリティ・ポリシー・データベースは、セキュリティ規則テーブルと、セキュリティ・ポリシー・テーブルと、クライアント・マシン・テーブルとを含み、複数のセキュリティ規則が少なくとも１つのセキュリティ・ポリシーに関連付けられ、複数のセキュリティ・ポリシーが少なくとも１つのセキュリティ規則に関連付けられ、複数のクライアント・マシンが少なくとも１つのセキュリティ・ポリシーに関連付けられ、複数のセキュリティ・ポリシーが少なくとも１つのクライアント・マシンに関連付けられている、請求項２に記載の方法。
【請求項４】
前記クライアント・マシンが前記セキュリティ・ポリシー・データベース内の前記第１の学習済みセキュリティ・ポリシーと第２の学習済みセキュリティ・ポリシーとに関連付けられていると判断することに応答して、前記セキュリティ・エージェントによって、前記セキュリティ・ポリシー・データベースから少なくとも前記第２の学習済みセキュリティ・ポリシーを取り出すことをさらに含む、請求項３に記載の方法。
【請求項５】
前記第１の学習済みセキュリティ・ポリシーは、前記第１の実行環境のシミュレーションによって生成されたシミュレーションされたイベントのサブセットをインターセプトすることと、シミュレーションされたイベントのインターセプトされた前記サブセットに基づいて複数の規則を生成することとによって学習される、請求項１ないし４のいずれかに記載の方法。
【請求項６】
侵入検知システムを管理するコンピュータ実装方法であって、
第１の実行環境に関連付けられたイベントのサブセットに基づいて第１の学習済みセキュリティ・ポリシーを含む複数のセキュリティ・ポリシーを生成することであって、前記第１の学習済みセキュリティ・ポリシーに関連付けられた少なくとも１つの規則が悪意コード・プロファイルに関連付けられた種類のイベントに基づく、前記複数のセキュリティ・ポリシーを生成することと、
前記複数のセキュリティ・ポリシーをセキュリティ・ポリシー・データベースに記憶することと、
少なくとも前記第１の学習済みセキュリティ・ポリシーを複数のクライアントに提供することであって、前記第１の学習済みセキュリティ・ポリシーは前記複数のクライアントによってデプロイされた第１の実行環境に関連し、前記複数のクライアントは前記第１の学習済みセキュリティ・ポリシーを実施するように構成された、前記第１の学習済みセキュリティ・ポリシーを複数のクライアントに提供することと、
第１のクライアントから、前記第１のクライアント上にデプロイされた前記第１の実行環境によって生成され、前記第１の学習済みセキュリティ・ポリシーに従って前記第１のクライアントによってインターセプトされた少なくとも１つのインターセプトされたイベントに基づく異常を特定するアラートを受け取ることと
を含むコンピュータ実装方法。
【請求項７】
前記複数のセキュリティ・ポリシーは、規則を含むセキュリティ・ポリシーをノードとして有し、ノード間の関係を示す前記セキュリティ・ポリシー間の接続を辺として有する有向非巡回グラフ（ＤＡＧ）に格納される、請求項６に記載の方法。
【請求項８】
前記第１の学習済みセキュリティ・ポリシーを提供することは、第２の学習済みセキュリティ・ポリシーに対応する第２のノードが前記ＤＡＧにおいて前記第１の学習済みセキュリティ・ポリシーに対応する第１のノードと辺を共有しているとの判断に応答して、前記第２の学習済みセキュリティ・ポリシーを提供することをさらに含む、請求項７に記載の方法。
【請求項９】
複数のセキュリティ・ポリシーを生成することは、
第１の時間間隔にわたって前記第１の実行環境からイベントの第１のサブセットをインターセプトすることと、
前記第１の実行環境からのイベントの前記第１のサブセットに基づいて、正常動作と異常動作とを定義する複数の規則を生成することであって、それぞれの規則が１つまたは複数の条件に関連付けられた、前記複数の規則を生成することと、
前記複数の規則を前記第１の実行環境のための前記第１の学習済みセキュリティ・ポリシーとして前記セキュリティ・ポリシー・データベースに格納することと、
前記第１の学習済みセキュリティ・ポリシーを前記複数のクライアントに関連付けることと
をさらに含む、請求項６ないし８のいずれかに記載の方法。
【請求項１０】
前記第１の学習済みセキュリティ・ポリシーは、各クライアント上にデプロイされたそれぞれの第１の実行環境に関連付けられたそれぞれのパラメータに基づいて前記複数のクライアントのうちの各クライアントによって動的に変更されるように構成される、請求項６ないし９のいずれかに記載の方法。
【請求項１１】
侵入検知システムを管理するコンピュータ・システムであって、
プロセッサと、
プログラム命令を記憶する有形のコンピュータ可読メモリとを含み、前記プログラム命令は、前記プロセッサによって実行されると、
クライアント・マシンを使用する第１の実行環境によって生成された複数のイベントの第１のサブセットをインターセプトするステップであって、前記複数のイベントの前記第１のサブセットは第１の学習済みセキュリティ・ポリシーによって定義され、前記第１の学習済みセキュリティ・ポリシーは前記第１の実行環境の動作を観察することに基づいて学習され、前記第１のサブセットのうちの少なくとも１つのイベントは悪意コード・プロファイルに関連付けられた種類のイベントである、前記ステップと、
前記第１の実行環境のための前記第１の学習済みセキュリティ・ポリシーに基づいて、少なくとも１つのインターセプトされたイベントを前記第１の学習済みセキュリティ・ポリシーの少なくとも１つの規則と比較することに基づく異常を特定するステップと、
前記異常の特定に応答して軽減処置を実行するステップと
を実行する、コンピュータ・システム。
【請求項１２】
前記第１の学習済みセキュリティ・ポリシーは、前記第１の実行環境とは独立した少なくとも１つの静的規則と、前記第１の実行環境で構成された少なくとも１つのパラメータに依存する少なくとも１つの動的規則とを含み、前記プロセッサは、
前記第１の実行環境で構成された少なくとも１つのパラメータを前記第１の学習済みセキュリティ・ポリシーの前記少なくとも１つの動的規則に代入するステップを実行するようにさらに構成された、請求項１１に記載のコンピュータ・システム。
【請求項１３】
異常を特定するように構成された前記プロセッサは、
前記第１の学習済みセキュリティ・ポリシーの第１の規則の複数の条件と前記少なくとも１つのインターセプトされたイベントとを比較するステップであって、前記複数の条件は、前記少なくとも１つのインターセプトされたイベントのプロセス名と、コマンド行と、ファイル・ダイジェストとに関係する、前記ステップを実行するようにさらに構成された、請求項１１または１２に記載のコンピュータ・システム。
【請求項１４】
前記第１の学習済みセキュリティ・ポリシー内の少なくとも１つの規則は、真値または偽値を生成するように構成された１組の条件に関連付けられ、真値が軽減処置を実行するように構成され、偽値が次のインターセプトされたイベントに対して反復されるように構成された、請求項１１ないし１３のいずれかに記載のコンピュータ・システム。
【請求項１５】
前記第１の学習済みセキュリティ・ポリシー内の少なくとも１つの規則は、真値または偽値を生成するように構成された１組の条件に関連付けられ、偽値が軽減処置を実行するように構成され、真値が次のインターセプトされたイベントに対して反復されるように構成された、請求項１１ないし１３のいずれかに記載のコンピュータ・システム。
【請求項１６】
侵入検知システムを管理するためのシステムであって、
プロセッサと、プロセッサ実行可能命令を記憶するメモリと、セキュリティ・ポリシー・データベースと、インターフェースとを含むセキュリティ・マネージャであって、複数のノードに通信可能に結合された前記セキュリティ・マネージャを含み、
前記セキュリティ・マネージャは、
第１の学習済みセキュリティ・ポリシーに関連付けられた少なくとも１つの規則が悪意コード・プロファイルに関連付けられた種類のイベントに基づく、前記第１の学習済みセキュリティ・ポリシーを含む複数のセキュリティ・ポリシーを、第１の実行環境に関連付けられたイベントのうちの少数イベントに基づいて生成し、
前記複数のセキュリティ・ポリシーを前記セキュリティ・ポリシー・データベースに記憶し、
ノードのサブセットが前記第１の実行環境をホストするように構成され、それぞれのセキュリティ・エージェントがノードの前記サブセットのそれぞれのノード上で少なくとも前記第１の学習済みセキュリティ・ポリシーを実施するように構成された、複数のノードの前記サブセットにそれぞれのセキュリティ・エージェントと、少なくとも前記第１の学習済みセキュリティ・ポリシーとを提供し、
第１のノードを使用する前記第１の実行環境によって生成され、前記第１の学習済みセキュリティ・ポリシーに従って第１のセキュリティ・エージェントによってインターセプトされた少なくとも１つのインターセプトされたイベントに基づく異常を特定するアラートを前記第１のノードに提供された前記第１のセキュリティ・エージェントから受け取る
ように構成された、システム。
【請求項１７】
前記セキュリティ・マネージャは、
前記インターフェースに前記アラートを提示することと前記インターフェースから入力を受け取ることとに応答して前記第１のセキュリティ・エージェントに軽減処置を送るようにさらに構成され、前記第１のセキュリティ・エージェントは前記軽減処置を実施するように構成された、請求項１６に記載のシステム。
【請求項１８】
前記セキュリティ・マネージャは、
第１の時間間隔にわたって第１の実行環境からイベントの第１のサブセットをインターセプトするステップと、
イベントの前記第１のサブセットに基づいて、それぞれの規則が１つまたは複数の条件に関連付けられた正常動作と異常動作とを定義する複数の規則を生成するステップと、
前記複数の規則を前記第１の実行環境の前記第１の学習済みセキュリティ・ポリシーとして前記セキュリティ・ポリシー・データベースに記憶するステップと、
ノードの前記サブセットが前記第１の実行環境をホストするように構成されていることに基づいてノードの前記サブセットに前記第１の学習済みセキュリティ・ポリシーを関連付けるステップと、
を実行することによって複数のセキュリティ・ポリシーを生成するように構成された、請求項１６または１７に記載のシステム。
【請求項１９】
前記セキュリティ・マネージャは、
前記第１のセキュリティ・エージェントから更新された第１の学習済みセキュリティ・ポリシーを受け取るステップであって、前記第１のセキュリティ・エージェントが、前記第１の実行環境に関連付けられた許可された更新を検出することに応答して前記第１の学習済みセキュリティ・ポリシーを更新するように構成されている、前記ステップと、
前記更新された第１の学習済みセキュリティ・ポリシーを受け取ることに応答して前記セキュリティ・ポリシー・データベース内の前記第１の学習済みセキュリティ・ポリシーを更新するステップと、
ノードの前記サブセットのうちの第２のノードに提供された少なくとも１つの第２のセキュリティ・エージェントに、前記更新された第１の学習済みセキュリティ・ポリシーを提供するステップと
を実行するようにさらに構成された、請求項１６ないし１８のいずれかに記載のシステム。
【請求項２０】
コンピュータ可読媒体に記憶され、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されるとプロセッサに請求項１ないし１０のいずれかに記載の方法を行わせるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・セキュリティに関し、より詳細には侵入検知システムに関する。
【背景技術】
【０００２】
コンピュータ・セキュリティ・システムは、コンピュータ・システムで記憶され、実行され、またはコンピュータ・システム間で通信されるあるいはその組合せの、データの機密性（例えば、プライバシー侵害に対する保護）、データ保全性（例えば、データ破損に対する保護）、およびデータ可用性（例えば、機能不全に対する保護）を守る。それにもかかわらず、コンピュータ・システムへの不正侵入の結果としてデータが危険にさらされたり、または機能が制限されたり、あるいはその両方であることがある。
【０００３】
不正侵入は、限定はしないが、ワークステーション襲撃、クレデンシャル搾取、エクスプロイテーション（例えばバッファ・オーバーフロー、スタック・オーバーランなど）、脆弱性（例えばアプリケーション、カーネルなどのコーディングの弱点の利用）、およびエスケープ・ツー・ホスト攻撃（escape-to-host attack）などの様々な攻撃ベクトルを利用することがある。
【０００４】
従来の侵入検知システムは、過剰な数のアラートを発生し、（例えば侵入検知システムの構成／維持を行うためと、侵入検知システムからの出力を解釈するための）かなりの専門知識を必要とし、（例えば許可された更新を行うことができないようにする）厳格過ぎる規則、または（例えば新たな悪意攻撃／プロファイルを特定することができない）柔軟過ぎる規則があるなど、多くの問題があった。
【０００５】
保護システムの例としては、マシンの感染を防止し、またはすでに感染しているマシンについて存在する脅威を無効にするように構成された、アンチウィルス・ツール、ルートキット・ディテクタ、または持続的標的型攻撃（Ａｄｖａｎｃｅｄ  Ｐｅｒｓｉｓｔｅｎｔ  Ｔｈｒｅａｔ：ＡＰＴ）ツールあるいはその組合せなどがある。不都合なことに、これらのツールは、ツールを使用するマシンにかなりの資源負担（例えば実行時オーバーヘッド）をかける。例えば、これらのツールは、すべての着信ネットワーク通信を検査する必要がある場合がある。
【０００６】
保護システムの別の例は、他のもの（例えば悪意コード）が実行されるのを防ぐために、ユーザがコンピュータ・システムの期待動作を定義する実行ポリシーの設定である。不都合なことに、実行ポリシーは厳格過ぎることがある。例えば、実行ポリシーの使用中は、オペレーティング・システム更新または手動管理セッションあるいはその両方が実施不可能な場合がある。
【０００７】
別の保護システムの例は、未知または悪意のある内容を有するファイルが実行されるのを防止するホワイトリストである。しかし、ホワイトリストは、安全な実行環境で一般的に使用されている信頼されているツール（例えば、ｎｍａｐまたはｔｃｐｄｕｍｐ）を使用した攻撃を防止することができないことがある。
【０００８】
保護システムの別の例は、ネットワーク型侵入検知システム（ＮＩＤＳ）である。不都合なことに、多くの攻撃がネットワーク・レベルでの検知が困難であるか不可能である。
【０００９】
保護システムの別の例は、基礎にあるオペレーティング・システムとのインタラクションを検査することによって、ホスト上のアプリケーションの動作を監視するホスト型侵入検知システム（ＨＩＤＳ）である。しかし、従来のＨＩＤＳは、数百の異なるコンテナまたは仮想マシンあるいはその両方が実行されることがあるネットワーク環境で行われる多数のコールを監視することができない。
【００１０】
従来技術の解決策としては、“Secure Yet Usable - Protecting Servers and Linux Containers”, S. Barlev, Z. Basil, S. Kohanim, R.Peleg, S. Regev, A. Shulman-Peleg, 27 July 2016, IBMJournal of Research and Development, Vol. 60, Issue 4, pgs. 12:1-12:10がある。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】“Secure Yet Usable - Protecting Servers and Linux Containers”, S. Barlev,Z. Basil, S. Kohanim, R. Peleg, S. Regev, A. Shulman-Peleg, 27 July 2016, IBM Journal of Research and Development, Vol. 60, Issue 4, pgs. 12:1-12:10
【発明の概要】
【発明が解決しようとする課題】
【００１２】
データ処理における侵入検知および侵入軽減に関する技術を提供する。
【課題を解決するための手段】
【００１３】
第１の観点から見ると、本発明は、侵入検知システムを管理するコンピュータ実装方法を提供する。この方法は、クライアント・マシンのセキュリティ・エージェントによって、上記クライアント・マシンを使用する第１の実行環境によって生成された複数のイベントの第１のサブセットをインターセプトすることであって、上記複数のイベントの上記第１のサブセットは第１の学習済みセキュリティ・ポリシーに従ってインターセプトされ、上記第１の学習済みセキュリティ・ポリシーは上記第１の実行環境の動作を観察することに基づいて学習され、上記第１のサブセットは上記複数のイベントの半分未満のイベントを含み、イベントの上記第１のサブセットのうちの少なくとも１つのイベントが悪意コード・プロファイルに関連付けられた種類のイベントである、上記第１のサブセットをインターセプトすることと、上記セキュリティ・エージェントによって、上記第１の実行環境のための上記第１の学習済みセキュリティ・ポリシーに基づいて、少なくとも１つのインターセプトされたイベントを上記第１の学習済みセキュリティ・ポリシーの少なくとも１つの規則と比較することに基づく異常を特定することと、上記異常の特定に応答して、上記セキュリティ・エージェントによって軽減処置を実行することとを含む。
【００１４】
他の観点から見ると、本発明は、侵入検知システムを管理するコンピュータ実装方法を提供する。この方法は、合成の第１の実行環境に関連付けられたイベントのサブセットに基づいて第１の学習済みセキュリティ・ポリシーを含む複数のセキュリティ・ポリシーを生成することであって、上記第１の学習済みセキュリティ・ポリシーに関連付けられた少なくとも１つの規則が悪意コード・プロファイルに関連付けられた種類のイベントに基づく、上記複数のセキュリティ・ポリシーを生成することと、上記複数のセキュリティ・ポリシーをセキュリティ・ポリシー・データベースに記憶することと、少なくとも上記第１の学習済みセキュリティ・ポリシーを複数のクライアントに提供することであって、上記第１の学習済みセキュリティ・ポリシーは上記複数のクライアントによって配備された第１の実行環境に関連し、上記複数のクライアントは上記第１の学習済みセキュリティ・ポリシーを実施するように構成された、上記第１の学習済みセキュリティ・ポリシーを複数のクライアントに提供することと、第１のクライアントから、上記第１のクライアント上に配備された上記第１の実行環境によって生成され、上記第１の学習済みセキュリティ・ポリシーに従って上記第１のクライアントによってインターセプトされた少なくとも１つのインターセプトされたイベントに基づく異常を特定するアラートを受け取ることとを含むコンピュータ実装方法を提供する。
【００１５】
他の観点から見ると、本発明は、侵入検知システムを管理するコンピュータ・システムを提供する。このコンピュータ・システムは、プロセッサと、プログラム命令を記憶するための有形のコンピュータ可読メモリであって、上記プログラム命令は、上記プロセッサによって実行されると、クライアント・マシンを使用する第１の実行環境によって生成された複数のイベントの第１のサブセットをインターセプトするステップであって、上記複数のイベントの上記第１のサブセットは第１の学習済みセキュリティ・ポリシーによって定義され、上記第１の学習済みセキュリティ・ポリシーは上記第１の実行環境の動作を観察することに基づいて学習され、上記第１のサブセットは上記複数のイベントの半分未満のイベントを含み、イベントの上記第１のサブセットのうちの少なくとも１つのイベントは悪意コード・プロファイルに関連付けられた種類のイベントである、上記第１のサブセットをインターセプトするステップと、上記第１の実行環境のための上記第１の学習済みセキュリティ・ポリシーに基づいて、少なくとも１つのインターセプトされたイベントを上記第１の学習済みセキュリティ・ポリシーの少なくとも１つの規則と比較することに基づく異常を特定するステップと、上記異常の特定に応答して軽減処置を実行するステップとを実行する。
【００１６】
他の観点から見ると、本発明は、侵入検知システムを管理するためのシステムを提供する。このシステムは、プロセッサと、プロセッサ実行可能命令を記憶するメモリと、セキュリティ・ポリシー・データベースと、インターフェースとを含むセキュリティ・マネージャであって複数のノードに通信可能に結合された上記セキュリティ・マネージャを含み、上記セキュリティ・マネージャは、第１の学習済みセキュリティ・ポリシーに関連付けられた少なくとも１つの規則が悪意コード・プロファイルに関連付けられた種類のイベントに基づく、上記第１の学習済みセキュリティ・ポリシーを含む複数のセキュリティ・ポリシーを、合成の第１の実行環境に関連付けられたイベントのうちの少数イベントに基づいて生成し、上記複数のセキュリティ・ポリシーを上記セキュリティ・ポリシー・データベースに記憶し、ノードのサブセットが第１の実行環境をホストするように構成され、それぞれのセキュリティ・エージェントがノードの上記サブセットのそれぞれのノード上で少なくとも上記第１の学習済みセキュリティ・ポリシーを実施するように構成された、複数のノードの上記サブセットにそれぞれのセキュリティ・エージェントと少なくとも上記第１の学習済みセキュリティ・ポリシーとを提供し、第１のノードを使用する上記第１の実行環境によって生成され、上記第１の学習済みセキュリティ・ポリシーに従って第１のセキュリティ・エージェントによってインターセプトされた少なくとも１つのインターセプトされたイベントに基づく異常を特定するアラートを上記第１のノードに提供された上記第１のセキュリティ・エージェントから受け取るように構成されたシステムを提供する。
【００１７】
他の観点から見ると、本発明は、侵入検知システムを管理するためのコンピュータ・プログラム製品を提供する。このコンピュータ・プログラム製品は、処理回路によって読み取り可能であって、本発明のステップを実行する方法を行うように上記処理回路によって実行されるための命令を記憶するコンピュータ可読記憶媒体を含む、コンピュータ・プログラム製品を提供する。
【００１８】
他の観点から見ると、本発明は、コンピュータ可読媒体に記憶され、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、上記プログラムがコンピュータ上で実行されると本発明のステップを行うためのソフトウェア・コード部分を含む、コンピュータ・プログラムを提供する。
【００１９】
本開示の態様は、クライアント・マシンのセキュリティ・エージェントによって、上記クライアント・マシンを使用する第１の実行環境によって生成された複数のイベントの第１のサブセットをインターセプトすることを含むコンピュータ実装方法を対象とする。上記複数のイベントの上記第１のサブセットは第１の学習済みセキュリティ・ポリシーに従ってインターセプトすることができる。上記第１の学習済みセキュリティ・ポリシーは上記第１の実行環境の動作を観察することに基づいて学習可能である。上記第１のサブセットは上記複数のイベントの半分未満のイベントを含むことができ、イベントの上記第１のサブセットのうちの少なくとも１つのイベントは悪意コード・プロファイルに関連付けられた種類のイベントとすることができる。上記コンピュータ実装方法は、上記セキュリティ・エージェントによって、上記第１の実行環境のための上記第１の学習済みセキュリティ・ポリシーに基づいて、少なくとも１つのインターセプトされたイベントを上記第１の学習済みセキュリティ・ポリシーの少なくとも１つの規則と比較することに基づく異常を特定することをさらに含むことができる。上記コンピュータ実装方法は、上記異常の特定に応答して、上記セキュリティ・エージェントによって軽減処置を実行することをさらに含むことができる。
【００２０】
本開示の他の態様は、プロセッサと、上記プロセッサによって実行されると、クライアント・マシンを使用する第１の実行環境によって生成された複数のイベントの第１のサブセットをインターセプトするステップを実行するプログラム命令を記憶する有形のコンピュータ可読メモリとを含む、侵入検知システムを管理するコンピュータ・システムを対象とする。上記複数のイベントの上記第１のサブセットは第１の学習済みセキュリティ・ポリシーによって定義することができる。上記第１の学習済みセキュリティ・ポリシーは上記第１の実行環境の動作を観察することに基づいて学習可能である。上記第１のサブセットは上記複数のイベントの半分未満のイベントを含むことができ、イベントの上記第１のサブセットのうちの少なくとも１つのイベントは悪意コード・プロファイルに関連付けられた種類のイベントとすることができる。上記プログラム命令は、前上記プロセッサによって、記第１の実行環境のための上記第１の学習済みセキュリティ・ポリシーに基づいて、少なくとも１つのインターセプトされたイベントを上記第１の学習済みセキュリティ・ポリシーの少なくとも１つの規則と比較することに基づく異常を特定するステップと、上記異常の特定に応答して軽減処置を実行するステップとをさらに行うように実行可能である。
【００２１】
本開示の他の態様は、それによって実現されるプログラム命令を有するコンピュータ可読記憶媒体を含むコンピュータ・プログラム製品を対象とする。コンピュータ可読記憶媒体は、一過性の信号自体ではあり得ない。プログラム命令は、クライアント・マシンを使用する第１の実行環境により生成された複数のイベントの第１のサブセットをインターセプトすることを含む方法をプロセッサに実行させるために、プロセッサによって実行可能である。複数のイベントの第１のサブセットは、第１の学習済みセキュリティ・ポリシーによって定義することができる。第１の学習済みセキュリティ・ポリシーは、第１の実行環境の動作の観察に基づいて学習可能である。第１のサブセットは、上記複数のイベントの半分未満のイベントを含むことができ、イベントの第１のサブセットのうちの少なくとも１つのイベントは、悪意コード・プロファイルに関連付けられた種類のイベントである。プロセッサは、上記第１の実行環境の第１の学習済みセキュリティ・ポリシーに基づき、少なくとも１つのインターセプトされたイベントを第１の学習済みセキュリティ・ポリシーの少なくとも１つの規則と比較することに基づく異常を特定することと、上記異常の特定に応答して軽減処置を実行することとをさらに含む方法を実行することができる。
【００２２】
本開示の他の態様は、プロセッサと、プロセッサ実行可能命令を記憶するメモリと、セキュリティ・ポリシー・データベースと、インターフェースとを含むセキュリティ・マネージャを含むシステムを対象とする。セキュリティ・マネージャは、複数のノードに通信可能に結合することができる。セキュリティ・マネージャは、合成の第１の実行環境に関連付けられたイベントのうちの少数イベントに基づいて第１の学習済みセキュリティ・ポリシーを含む複数のセキュリティ・ポリシーを生成するように構成することができる。第１の学習済みポリシーに関連付けられた少なくとも１つの規則は、悪意コード・プロファイルに関連付けられた種類のイベントに基づき得る。セキュリティ・マネージャは、さらに、上記複数のセキュリティ・ポリシーを上記セキュリティ・ポリシー・データベースに記憶し、上記複数のノードのサブセットにそれぞれのセキュリティ・エージェントと少なくとも上記第１の学習済みセキュリティ・ポリシーとを提供するように構成することができる。ノードの上記サブセットは、上記第１の実行環境をホストするように構成することができる。それぞれのセキュリティ・エージェントは、ノードの上記サブセットのそれぞれのノード上で少なくとも上記第１の学習済みセキュリティ・ポリシーを実施するように構成することができる。セキュリティ・マネージャは、さらに、第１のノードに提供された第１のセキュリティ・エージェントから、上記第１のノードを使用する上記第１の実行環境によって生成され、上記第１の学習済みセキュリティ・ポリシーに従って上記第１のセキュリティ・エージェントによってインターセプトされた、少なくとも１つのインターセプトされたイベントに基づく異常を特定するアラートを受け取るように構成することができる。
【００２３】
本開示の他の態様は、合成の第１の実行環境に関連付けられたイベントのサブセットに基づいて第１の学習済みセキュリティ・ポリシーを含む複数のセキュリティ・ポリシーを生成することを含むコンピュータ実装方法であって、上記第１の学習済みセキュリティ・ポリシーに関連付けられた少なくとも１つの規則が、悪意コード・プロファイルに関連付けられた種類のイベントに基づく、コンピュータ実装方法を対象とする。この方法は、上記複数のセキュリティ・ポリシーをセキュリティ・ポリシー・データベースに記憶することと、少なくとも上記第１の学習済みセキュリティ・ポリシーを複数のクライアントに提供することとをさらに含むことができる。上記第１の学習済みセキュリティ・ポリシーは、上記複数のクライアントによって配備された第１の実行環境に関連し得る。上記複数のクライアントは、上記第１の学習済みセキュリティ・ポリシーを実施するように構成することができる。この方法は、第１のクライアント上に配備された上記第１の実行環境によって生成され、上記第１の学習済みセキュリティ・ポリシーに従って上記第１のクライアントによってインターセプトされた少なくとも１つのインターセプトされたイベントに基づく異常を特定するアラートを、上記第１のクライアントから受け取るようにさらに含むことができる。
【００２４】
本出願に含まれる図面は、本明細書に組み込まれ、その一部をなす。図面は、本開示の実施形態を示し、説明とともに、本開示の原理を説明するのに役立つ。図面は、特定の実施形態を示すに過ぎず、本開示を限定するものではない。
【図面の簡単な説明】
【００２５】
【図１】本開示のある実施形態による例示のセキュリティ環境のブロック図を示す図である。
【図２】本開示のある実施形態による例示のセキュリティ・ポリシー・データベースを示す図である。
【図３】本開示のある実施形態による有向非巡回グラフ（ＤＡＧ）の例示のトポロジを示す図である。
【図４】本開示のある実施形態による、クライアント・マシンにセキュリティ資源を提供する例示の方法のフローチャートを示す図である。
【図５】本開示のある実施形態による、セキュリティ・ポリシー・データベースを生成する例示の方法のフローチャートを示す図である。
【図６】本開示のある実施形態による、セキュリティ・ポリシーを実施する例示の方法のフローチャートを示す図である。
【図７】本開示のある実施形態による、セキュリティ・ポリシーを更新する例示の方法のフローチャートを示す図である。
【図８】本開示のある実施形態によるセキュリティ・マネージャのブロック図を示す図である。
【図９】本開示のある実施形態によるクラウド・コンピューティング環境を示す図である。
【図１０】本開示のある実施形態による抽象モデル層を示す図である。
【発明を実施するための形態】
【００２６】
本開示は様々な変更および代替形態に修正可能であるが、本開示の具体的詳細を図面に例として示し、詳細に説明する。しかし、その意図するところは本開示を記載されている特定の実施形態に限定することではないことを理解されたい。むしろ、本開示の思想および範囲に含まれるすべての変更、均等物および代替物を含むことを意図している。
【００２７】
本開示の態様は、コンピュータ・セキュリティを対象とし、より詳細には、侵入検知システムを対象とする。本開示の態様は、制御された（例えばトレーニング、合成、シミュレーションまたは実働前）実行環境において生成された、選択的にインターセプトされたイベントに基づいて、１つまたは複数のセキュリティ・ポリシーを作成する。各セキュリティ・ポリシーは、１つまたは複数のルールを含むことができる。各ルールは、１組の条件を含むことができる。クライアント・マシンは、１つまたは複数のセキュリティ・ポリシーを使用することができる。ある実施形態では、クライアント・マシンは、実働環境におけるサーバである。規則とセキュリティ・ポリシーとクライアント・マシンとの関係は、セキュリティ・ポリシー・データベースに記憶されている多対多関係によって表すことができる。生成されたセキュリティ・ポリシーは、１つまたは複数のクライアント・マシンで稼働する実行環境で実施することができる。セキュリティ・ポリシーは、実行環境に関連付けられた特定の種類のイベントをインターセプトし、インターセプトされたイベントをセキュリティ・ポリシーに格納されている関連する規則および条件と比較することによって実施することができる。侵入検知システムは、アラートを生成することができ、場合によっては、選択された種類のイベントとセキュリティ・ポリシーとの比較に基づいて侵入を軽減することができる。
【００２８】
本開示では、実行環境は、様々なクラスのプロセスに関連付けられたソフトウェア・ルーチンを含むことができる。実行環境は、アプリケーション、コンテナ、仮想マシン（ＶＭ）、データベース管理システム（ＤＢＭＳ）、論理区画（ＬＰＡＲＳ）、および実行実体とすることができるが、これらには限定されない。実行環境は、本開示の様々な実施形態により様々な細分度を有することができる。例えば、デバイス上で実行可能なアプリケーションの種類ごとに実行環境を定義することができる。あるいは、アプリケーションの同一または類似のクラスに属する複数のアプリケーションのために１つの実行環境を定義することもできる。したがって、実行環境の範囲は、セキュリティ・ポリシー・データベースの複雑さおよび管理容易性、およびそれぞれのセキュリティ・ポリシーの実行に付随する演算オーバーヘッドなどの要因に対応するように調整可能である。
【００２９】
例えば、複数のアプリケーションのために定義された実行環境は、（各セキュリティ・ポリシーがより多くのアプリケーションに対応するため）セキュリティ・ポリシー・データベースに記憶されるセキュリティ・ポリシーの数を少なくすることができる一方、（各セキュリティ・ポリシーの実行がより多くの規則の実施を必要とし、所与のアプリケーションにとって規則のサブセットのみが適用可能な場合があるため）動作時の演算オーバーヘッドがより高くなる。
【００３０】
あるいは、アプリケーションごとに定義された実行環境により、（セキュリティ・ポリシーがより多いため）セキュリティ・ポリシー・データベースがより複雑になる可能性があるが、（各セキュリティ・ポリシーが所与のアプリケーションに関連する規則のみを含むため）各実行環境に関連付けられたセキュリティ・ポリシーの実行に付随する演算オーバーヘッドが低減される。
【００３１】
本開示では、イベントとは、実行環境によって生成された、または実行環境に関連付けられた通信と定義することができる。イベントは、システム・コール、演算、コマンド、プロセス、タスク、または、システム・ログファイル（ｓｙｓｌｏｇ）、動作ログファイル（ｏｐｅｒｌｏｇ）、イベント・ログファイル、トランザクション・ログファイルまたはメッセージ・ログファイルなどのログファイルからインターセプトすることができるその他のイベントとすることができるが、これらには限定されない。ある実施形態では、イベントは、ネットワーク・トラフィックからインターセプトすることができる。様々な実施形態では、イベントは、イベントを（例えばログファイルに）記憶するのとほぼ同時に、またはイベントの記憶後（例えばログファイルからの履歴データの取り出し）、イベントの送信中にインターセプトすることができる。以下では、イベントの種類とは、イベントのクラス（例えばファイル・システム・マウント・プロセス、ファイル・アクセスなど）を指し、イベントとはある種類のイベントの実際の実行を指し、そのイベントは特定の実行環境に関連付けられたパラメータを含むことができる。
【００３２】
本開示の態様は、改良型ＨＩＤＳ保護解決策を対象とする。改良型ＨＩＤＳ保護解決策は、従来の保護システムに優る様々な利点を提供する。
【００３３】
本開示の態様の利点の一例は、演算オーバーヘッドが低いことである。本開示の態様は、侵入または悪意のある攻撃あるいはその両方に付随する可能性の最も高いイベントのみを選択的にインターセプトおよび評価することによって、低い演算オーバーヘッドを示す。例えば、本開示の態様は、イベントの中でも特に、新たなプロセス起動、ファイル・システム・マウンティング、ライブラリのロード、クリティカル・ファイル・アクセス、ネットワーク構成変更に付随するイベント、および不正侵入または悪意攻撃あるいはその両方の一部として使用される可能性のあるその他のイベントをインターセプトすることができる。この方策は、インターセプトされ評価されるイベントの数を制限することによって演算オーバーヘッドを低減するので有利である。本開示のある実施形態によると、インターセプトされるイベントの数は、所与の時間間隔中に生成されるイベントの総数より大幅に少なくなる可能性がある（例えば合計イベント数の１０％未満、場合によっては合計イベント数の１％未満）。
【００３４】
本開示の態様の別の利点の一例は、自動学習である。実装の前にセキュリティ・ポリシーを手動で定義する必要がある一部の従来の解決策とは異なり、本開示の態様は、正常な動作条件に付随する典型的な毎日または毎週あるいはその両方のタスクを再現する制御された（例えばトレーニング、合成、シミュレーション、または実働前の）環境における学習期間がある。本開示の態様は、これらのトレーニングの観察結果を使用して、正常な動作と異常な動作とを定義する規則を生成する。
【００３５】
本開示の態様の他の利点の一例は、セキュリティ・ポリシーの拡張性である。例えば、類似したサーバのラックは、そのサーバ・ラックの各サーバがトレーニング期間を経る必要なしに、学習期間中にそのサーバ・ラックのうちのいずれか１つのサーバによって生成されたセキュリティ・ポリシーを使用することができる。この利点は、数百台または数千台のデバイスが関与する大規模な状況で容易に明らかになる。
【００３６】
本開示の態様の他の利点は、学習段階が限定されていることである。例えば、本開示の態様は、許可された更新プロセス（例えばオペレーティング・システム更新、アプリケーション更新など）の結果としての変更を再学習するために限定された学習期間に入ることができる。これに対して、一部の従来のセキュリティ・システムは、許可された更新を異常と識別し、その更新が行われるのを妨げることがある。また、一部の従来のセキュリティ・システムは、許可された更新の結果としての変更を組み込むためにセキュリティ・ポリシーの手動再構成を必要とすることになる。したがって、本開示の態様は、許可された更新を自動的に特定し、許可された更新が行われることができるようにするので、有利である。また、本開示の態様は、許可された更新時に加えられた変更に基づいてセキュリティ・ポリシーを修正して、セキュリティ・ポリシーが許可された更新を踏まえて確実に正常動作と異常動作とを適切に定義するようにするので有利である。
【００３７】
本開示の態様の他の利点は、改良されたセキュリティ・ポリシー管理である。セキュリティ・ポリシーは、任意のマシンを複数のセキュリティ・ポリシーに関連付けることができるようにし（例えば、オペレーティング・システム・セキュリティ・ポリシーと、ウェブ閲覧セキュリティ・ポリシーと、バックアップ・システム・セキュリティ・ポリシーとを単一のマシンに関連付けることができ、単一のマシン上で実施することができる）、任意のセキュリティ・ポリシーを複数のマシンに関連付けることができるようにする、多対多モデルで表される。同様に、任意の規則を複数のセキュリティ・ポリシーに関連付けることができ、任意のセキュリティ・ポリシーを複数の規則に関連付けることができる。したがって、任意の単一の規則に加えられた更新を、更新された規則に関連付けられたすべてのセキュリティ・ポリシーとマシンとが容易に利用することができる。
【００３８】
上記の利点は利点の例であり、すべての利点が列挙されているわけではない。上記の利点のすべてまたは一部を含むかまたは１つも含まない本開示の実施形態が存在するが、それらも本開示の思想および範囲内にとどまる。
【００３９】
次に、図面を参照すると、図１は本開示のある実施形態による例示のセキュリティ環境１００を示す。セキュリティ環境１００は、セキュリティ・ポリシー・データベース１０４を含むとともにネットワーク１５０を介してノード１０６、ノード１０８およびノード１１０と通信可能に結合された、セキュリティ・マネージャ１０２を含むことができる。ある実施形態では、セキュリティ環境１００は、実働環境（例えば、実際のワークロードを稼働させているコンピュータ環境）に相当し、他の実施形態では、セキュリティ環境１００は、制御された環境（例えば、試験ワークロードを稼働させているトレーニング環境、合成環境、シミュレーション環境、または実働前環境）に相当し得る。セキュリティ環境１００は、３つのノードを含むものとして示されているが、実施形態はこれより多いかまたは少ない数のノードを含むことができる。例えば、ある実施形態では、セキュリティ・マネージャ１０２は、単一のノードに通信可能に結合されている（または組み込まれている）。あるいは、ある実施形態では、セキュリティ・マネージャ１０２は、多くのノード（例えば、数百、数千、数万またはそれ以上のノード）に通信可能に結合されている。
【００４０】
様々な実施形態によると、ノード１０６、１０８および１１０は、演算機能を実行するように構成されたハードウェアに関連付けられたデバイスとすることができる。ノード１０６、１０８および１１０は、サーバ、コンピュータ、ラップトップ、メインフレーム、またはその他のデバイスとすることができるが、これらには限らない。ノード１０６、１０８および１１０は、類似した、または類似していない機能および能力を有する、類似または類似していないデバイスとすることができる。ある実施形態では、ノード１０６、１０８および１１０のそれぞれが、ノードの別個のネットワークまたはサブネットワークに相当し得る。ある実施形態では、ノード１０６、１０８および１１０のそれぞれが別個の実働環境に相当し得る。ある実施形態では、セキュリティ・マネージャ１０２は、各ノード１０６、１０８および１１０と通信するが、ノード１０６、１０８および１１０は互いに通信することができなくてもよい。ある実施形態では、ノード１０６、１０８および１１０をクライアント、クライアント・デバイス、クライアント・マシン、またはマシンあるいはその組合せとも呼ぶことがある。ある実施形態では、ノード１０６、１０８および１１０は、仮想マシンに相当する。
【００４１】
以下、ノード１０６、１０８および１１０を、場合によっては「クライアント」または「クライアント・マシン」と呼ぶことがあるが、これらのマシンはセキュリティ・システムに対してのみ「クライアント」であるに過ぎず、ネットワーク内の他のマシンに対しては「サーバ」として機能し得ることを理解されたい。
【００４２】
様々な実施形態によると、ネットワーク１５０は、物理ネットワーク、仮想ネットワーク、または、一部のデバイス間の物理接続と他のデバイス間の仮想接続の両方を含むネットワークとすることができる。様々な実施形態では、ネットワーク１５０は、パブリック・ネットワーク、プライベート・ネットワーク、またはパブリックとプライベートの両方の特徴を有するネットワークである。
【００４３】
ある実施形態では、セキュリティ・マネージャ１０２は、１つまたは複数のデバイス（例えば、ノード、ワークステーション、ラップトップ、インターフェースに結合された１組のサーバ、または１つまたは複数のデバイス上で稼働する仮想マシン）を含む。ある実施形態では、セキュリティ・マネージャ１０２は、ネットワークを介して有形の記憶デバイスからダウンロード可能であって、ダウンロードされたデバイス上で実行されるように構成された、コンピュータ実行可能命令を含む。以下、セキュリティ・マネージャ１０２について、図４ないし図８を参照しながらより詳細に説明する。
【００４４】
セキュリティ・マネージャ１０２は、セキュリティ・ポリシー・データベース１０４を含む。セキュリティ・ポリシー・データベース１０４はセキュリティ・マネージャ１０２内に組み込まれているものとして図示されているが、これに代えて、セキュリティ・ポリシー・データベースはセキュリティ・マネージャ１０２から離れていて、物理接続または仮想接続を介してセキュリティ・マネージャ１０２に通信可能に結合されていてもよい。
【００４５】
セキュリティ・ポリシー・データベース１０４は、様々な実行環境のセキュリティ・ポリシーを記憶することができる。セキュリティ・ポリシー・データベース１０４は、規則と、ポリシーと、マシンとの間の多対多関係によって定義されたセキュリティ・ポリシーを記憶することができる。ある実施形態では、多対多関係は、セキュリティ・ポリシー・データベース１０４内の多くのテーブルによって定義することができる。ある実施形態では、セキュリティ・ポリシーは、（例えば実行環境属性を鍵として使用した）鍵付きハッシュ・リストとして記憶される。ある実施形態では、セキュリティ・ポリシーは、セキュリティ・ポリシーをノードとして有し、セキュリティ・ポリシー間の関係を、ノードを接続する辺として有する、有向非巡回グラフ（ＤＡＧ）として記憶される。ある実施形態では、セキュリティ・ポリシー・データベース１０４に記憶されるセキュリティ・ポリシーは、静的規則と動的規則とを含む。静的規則は、実行環境パラメータとは独立していることができ、動的規則は実行環境パラメータに依存し得る。したがって、選択された実行環境でセキュリティ・ポリシーを実施する前に、その所与の実行環境の１つまたは複数のパラメータを、１つまたは複数の動的規則に代入することができる。ある実施形態では、セキュリティ・ポリシー・データベース１０４に記憶されるセキュリティ・ポリシーは、シミュレーションされた実行環境での観察結果に基づく学習済みセキュリティ・ポリシーである。ある実施形態では、セキュリティ・ポリシー・データベース１０４に記憶されるセキュリティ・ポリシーは、セキュリティ・ポリシーに関連する許可された更新（例えば、オペレーティング・システム更新、ソフトウェア更新など）の特定時に、限定された再学習期間によって更新される。セキュリティ・ポリシー・データベース１０４については、図２ないし図３および図５を参照しながら以下により詳細に説明する。
【００４６】
ある実施形態では、セキュリティ・マネージャ１０２は、悪意コード・プロファイル１４０に通信可能に結合される。悪意コード・プロファイル１４０は、悪意攻撃または不正侵入あるいはその両方のプロファイルのパブリック・データベースまたはプライベート・データベースを含むことができる。本開示では、悪意攻撃プロファイルと不正侵入プロファイルとは、不正アクセスの結果として検知可能な損害が生じるか否かを問わず、両者がデバイスまたはネットワークあるいはその両方に対する不正アクセスを対象としている限りにおいて同義である。それぞれの攻撃／侵入について、悪意コード・プロファイル１４０は、セキュリティ・ポリシー・データベース１０４に記憶されるセキュリティ・ポリシーを生成するのに有用となり得る技術、出力、対策、コード、システム・コール、プロセス、タスク、コマンドまたはその他の属性あるいはその組合せを扱うことができる。
【００４７】
セキュリティ・マネージャ１０２は、ノード１０６にセキュリティ・エージェント１１４を提供することができる。ある実施形態では、セキュリティ・エージェント１１４は、ノード１０６にダウンロード可能であって、ノード１０６に付随する既存のハードウェア資源を使用してノード１０６上で実行可能な、プロセッサ実行可能命令を含む。セキュリティ・エージェント１１４は、セキュリティ・ポリシー１１６とイベント１１８とを含むことができる。セキュリティ・ポリシー１１６は、セキュリティ・ポリシー・データベース１０４からのセキュリティ・ポリシーであって、ノード１０６上で発生するかまたは発生し得る実行環境に基づく、ノード１０６に関連する１つまたは複数のセキュリティ・ポリシーとすることができる。イベント１１８は、ノード１０６上で稼働する様々な実行環境（例えば実行環境ＡないしＣ（１１２Ａないし１１２Ｃ））によって生成され、セキュリティ・ポリシー１１６を使用した評価のためにセキュリティ・エージェント１１４によってインターセプトされる、イベントのインターセプトされたサブセットを含む。
【００４８】
イベント１１８は、様々な実行環境によって生成されたイベントを含み得る。例えば、イベント１１８は、システム・コールまたは実行可能コードの態様あるいはその両方とすることができる。イベント１１８は、例えばログファイルからインターセプトすることができる。イベント１１８は、実行環境によって生成されたイベントの総数よりも少ないイベントを含むことができる。ある実施形態では、セキュリティ・エージェント１１４は、実行環境によって生成されたインターセプトされない他のイベントよりも悪意攻撃との関連度が高いイベント１１８に基づいて、イベント１１８をインターセプトすることができる。ある実施形態では、イベント１１８は、各イベントまたはイベントのうちの過半数のイベントが、登録されている悪意攻撃プロファイルのうちの少なくとも１つ、または過半数、または２５％、５０％、７５％または９０％を超えて現れるようなイベントを含むことができる。ある実施形態では、イベント１１８は、所与の実行環境によって生成されたすべてのイベントの平均出現率よりも登録された悪意攻撃プロファイルでの出現率が高いイベントを含む。ある実施形態では、イベント１１８は、ある時間間隔（例えば１時間、１日など）にわたって実行環境によって生成されるイベントの総数のうちの少数のイベント（例えば５０％未満、半分未満）、または１０％未満、または１％未満のイベントを含む。
【００４９】
ノード１０６は、実行環境ＡないしＣ（１１２Ａないし１１２Ｃ）をホストすることができる。実行環境ＡないしＣ（１１２Ａないし１１２Ｃ）は、ノード１０６の態様を使用する実行環境と類似していても類似していなくてもよい。様々な実施形態では、それぞれのノードがノード１０６に示す３つの実行環境ＡないしＣ（１１２Ａないし１１２Ｃ）よりも多いかまたは少ない数の実行環境をホストすることができる。
【００５０】
セキュリティ・マネージャ１０２は、さらにノード１０８に接続されている。ノード１０８は、ノード１０６に示す実行環境ＡないしＣ（１１２Ａないし１１２Ｃ）と類似していても類似していなくてもよい実行環境１２０をホストすることができる。ノード１０８は、セキュリティ・ポリシー１２４とイベント１２６とを記憶するセキュリティ・エージェント１２２をさらに含むことができる。セキュリティ・エージェント１２２は、セキュリティ・エージェント１１４と一致していてもよい（例えば両方ともセキュリティ・マネージャ１０２によってそれぞれのノードに提供される）が、セキュリティ・エージェント１２２は、セキュリティ・エージェント１１４によって実施されるセキュリティ・ポリシー１１６と類似しているかまたは異なっていてもよい１つまたは複数のセキュリティ・ポリシー１２４を実施することができる。同様に、セキュリティ・エージェント１２２は、実行環境ＡないしＣ（１１２Ａないし１１２Ｃ）からインターセプトされるイベント１１８と類似しているかまたは異なっていてもよい実行環境１２０によって生成されたイベント１２６をインターセプトすることができる。
【００５１】
セキュリティ・マネージャ１０２は、さらにノード１１０に接続されているように図示されている。ノード１１０は、例えばファイル・システムなどのデータ１２８をホストすることができる。ノード１１０は、さらにセキュリティ・ポリシー１３２とイベント１３４とを記憶するセキュリティ・エージェント１３０を含むことができる。セキュリティ・エージェント１３０は、セキュリティ・エージェント１２２およびセキュリティ・エージェント１１４と一致していてよいが、セキュリティ・エージェント１３０は、セキュリティ・ポリシー１２４および１１６と類似しているかまたは異なる１つまたは複数のセキュリティ・ポリシー１３２を実装することができ、セキュリティ・エージェント１３０は、イベント１２６および１１８と類似しているかまたは異なっていてもよいイベント１３４をインターセプトすることができる。例えば、セキュリティ・エージェント１３０は、ファイル整合性監視（ＦＩＭ）システムとして機能することができ、データ１２８に格納されている選択されたファイルに対するファイル・アクセスまたは変更あるいはその両方に付随するイベント１３４をインターセプトすることができる。
【００５２】
図２に、本開示のある実施形態による例示のセキュリティ・ポリシー・データベース２００を示す。ある実施形態では、セキュリティ・ポリシー・データベース２００は、図１のセキュリティ・ポリシー・データベース１０４と一致している。セキュリティ・ポリシー・データベース２００は、セキュリティ規則テーブル２０２と、セキュリティ・ポリシー・テーブル２０８と、マシン・テーブル２１４とを含むことができる。当業者にはわかるように、セキュリティ・ポリシー・データベース２００に示すテーブルは、セキュリティ・ポリシー・データベース２００の例示のトポロジとして示されており、実際には、これより多いかまたは少ない列および行を有し、１つまたは複数のマッピング・テーブル（図示せず）によって相互に関係付けられた、これより多いかまたは少ないテーブルが存在し得る。
【００５３】
セキュリティ規則２０２は、規則１（２０４Ａ）などの規則ごとに、条件１（２０４Ｂ）などの１つまたは複数の条件と、処置１（２０４Ｃ）などの１つまたは複数の処置とを格納する。規則１（２０４Ａ）は、（例えば数字、英数字、単語またはその他の識別情報によって）規則を識別することができる。
【００５４】
条件１（２０４Ｂ）は、１つまたは複数のイベント（例えば、プロセス、システム・コールなど）に関係する１つまたは複数の条件を定義することができる。条件１（２０４Ｂ）は、１つまたは複数のイベントの、プロセス名、コマンド行、またはファイル・ダイジェストあるいはその組合せに関連付けられ得るが、これらには限定されない。
【００５５】
処置１（２０４Ｃ）は、条件１（２０４Ｂ）の結果に関連付けられた１つまたは複数の処置とすることができる。例えば、処置１（２０４Ｃ）は、条件１（２０４Ｂ）がイベントが正常であることを示すことに基づいて（例えば次のイベントを反復することによって）監視を続ける。別の実施例では、処置１（２０４Ｃ）は、条件１（２０４Ｂ）がイベントが異常であることを示すことに基づいてアラートを出す。別の実施例では、処置１（２０４Ｃ）は、条件１（２０４Ｂ）が異常を示すことに応答して、異常を例えばその異常に関連付けられた１つまたは複数のプロセスを終了させることによって軽減する。ある実施形態では、複数の処置が同時にまたは順次に行われる。例えば、ある実施形態では、処置１（２０４Ｃ）は、同時にアラートを出すことと異常を終了させることとを含む。ある実施形態では、処置１（２０４Ｃ）は、アラートを出し、セキュリティ・マネージャによって提供される入力に応答して、異常を終了させることを含む。ある実施形態では、処置１（２０４Ｃ）は、アラートを出し、一定時間の経過または第２の異常イベントの検知に応答して、異常を自動的に終了させることを含む。
【００５６】
条件１（２０４Ｂ）は制限的または許可的条件とすることができる。例えば、条件１（２０４Ｂ）は、真であると判断された場合、インターセプトされたイベントが異常であると判断され、それ以外の場合（すなわち偽であると判断された場合）は、インターセプトされたイベントが正常イベントであると判断される許可的条件を含むことができる。したがって、このような実施形態では、特定のプロファイルと合致するイベントのみが異常と特定される。
【００５７】
逆に、条件１（２０４Ｂ）は、真であると判断された場合、インターセプトされたイベントが正常イベントであると判断され、それ以外の場合（すなわち、偽であると判断された場合）は、インターセプトされたイベントが異常であると判断される制限的条件を含むことができる。したがって、このような実施形態では、特定のプロファイルに合致しないイベントが異常であるとみなされる。
【００５８】
許可的条件は、多様性のあるワークロードの場合に（例えば、正常イベントを異常イベントとして特定するなどの誤検出を制限するのに）有利な場合があり、制限的条件は、予測可能なワークロードの場合に（例えば異常イベントを正常イベントとして特定するなどの検出漏れを制限するのに）有利な場合がある。ある実施形態では、許可的条件と制限的条件の両方が使用される。
【００５９】
セキュリティ規則２０２は、対応する条件２（２０６Ｂ）および処置２（２０６Ｃ）を有する規則２（２０６Ａ）をさらに含む。説明のために２つの規則と対応する条件と処置のみが示されているが、セキュリティ規則テーブル２０２は、任意の適切な数（例えば数千）の規則を含むことができるものと理解されたい。ある実施形態では、セキュリティ規則テーブル２０２は、（図５に関して以下でより詳細に説明する）シミュレーションされた実行環境における自動学習によって生成することができる。
【００６０】
許可的セキュリティ規則（例えば、真の場合に異常、偽の場合に正常）の非限定的な例として、規則１（２０４Ａ）が選択されたファイルのインターセプトされたファイル・アクセス機能に関係していてもよい。条件１（２０４Ｂ）は、選択されたファイルへのアクセス要求のインターセプトに応答して、その要求に関連付けられたユーザ・プロファイルが「管理者」の役割未満であるか否か、および、アクセス要求が勤務時間外（例えば夜間）に生成されたか否かを判断することを含んでもよい。両方の条件が真の場合、規則１（２０４Ａ）は、セキュリティ・マネージャにアラートを送るか、またはアクセス要求を生成しているユーザ・プロファイルに関連付けられた特権を減ずるか、あるいはその両方を行うなどの１つまたは複数の処置１（２０４Ｃ）を実行することができる。条件１（２０４Ｂ）のいずれかが偽の場合、規則１（２０４Ａ）はイベントが正常なイベントであるとみなし、監視を続けることができる。
【００６１】
制限的セキュリティ規則（例えば真の場合は正常、偽の場合は異常）の一例として、規則２（２０６Ａ）はファイル・システム・マウンティング・プロセスに関係していてもよい。新規ファイル・システムのマウンティングに関係するイベントをインターセプトし、条件２（２０６Ｂ）と比較することができる。条件２（２０６Ｂ）により、インターセプトされたイベントが、セキュリティ規則の学習中に特定された典型的なファイル・システム・マウンティング・プロセスと同一の特権許可（例えば読み取りおよび書き込みプロファイル）を含むか否かを判断することができる。インターセプトされたイベントが同一でない特権許可を含む場合、規則２（２０６Ａ）は、そのファイル・システム・マウンティング・プロセスを終了させ、セキュリティ・マネージャにアラートを提供するなどの処置２（２０６Ｃ）を実行することができる。インターセプトされたイベントが同一の特権許可を含む場合、インターセプトされたイベントは正常なイベントと判断されてよい。
【００６２】
セキュリティ・ポリシー・テーブル２０８は、それぞれの実行環境のためのセキュリティ規則の組を含む。例えば、セキュリティ・ポリシー・テーブル２０８は、セキュリティ規則テーブル２０２から取り出された１つまたは複数の規則２１０Ｂを含む、実行環境１のためのセキュリティ・ポリシー２１０Ａを含むことができる。同様に、実行環境２のためのセキュリティ・ポリシー２１２Ａは、セキュリティ規則テーブル２０２から取り出された１つまたは複数の規則２１２Ｂを含むことができる。セキュリティ・ポリシーは狭く定義する（例えば特定のアプリケーションのためのセキュリティ・ポリシー）か、または広く定義する（例えば１組のアプリケーションのためのセキュリティ・ポリシー）ことができる。セキュリティ・ポリシー・テーブル２０８には２つの例示のセキュリティ・ポリシーが示されているが、任意の適切な数のセキュリティ・ポリシーをセキュリティ・ポリシー・テーブル２０８に含めることができるものと理解されたい。例えば、実行環境定義の細分度と、セキュリティ・ポリシー・テーブル２０８内のセキュリティ・ポリシーを使用するクライアント上で動作するワークロードの多様性とに基づいて、数十、数百または数千のセキュリティ・ポリシーが可能である。セキュリティ・ポリシー・テーブル２０８は、（図５に関して以下でさらに詳しく説明する）シミュレーションされた実行環境でのトレーニングに基づいて生成することができる。
【００６３】
マシン・テーブル２１４は、セキュリティ環境（例えば図１のセキュリティ環境１００）で機能する１つまたは複数のマシンのリストを含むことができる。マシン・テーブル２１４は、特定のマシン、ノード、クライアント、クライアント・マシン、またはその他のデバイスを適切な１組のセキュリティ・ポリシーに関連付ける。様々な実施形態では、マシン・テーブル２１４をノード・テーブル、クライアント・テーブル、またはクライアント・マシン・テーブルとも呼ぶことがある。
【００６４】
マシン・テーブル２１４は、マシン１（２１８Ａ）と、マシン１（２１８Ａ）に関連付けられ、セキュリティ・ポリシー・テーブル２０８から取り出された１つまたは複数のセキュリティ・ポリシー２１６Ｂとを含むことができる。マシン・テーブル２１４は、セキュリティ・ポリシー・テーブル２０８から取り出されたセキュリティ・ポリシー２１８Ｂに関連付けられたマシン２（２１８Ａ）をさらに含むことができる。例示のためにマシン・テーブル２１４には２つのマシンのみが含まれているが、マシン・テーブル２１４にはこれより多いかまたは少ないマシンが含めることができることを理解されたい。例えば、ある実施形態では、マシン・テーブル２１４は数千以上のマシンを含むことができる。また、マシン１（２１６Ａ）およびマシン２（２１８Ａ）は、様々な実施形態では物理マシンまたは仮想マシンを指し得る。
【００６５】
セキュリティ・ポリシーとのマシンの関連付けはトレーニングによって（例えば、所与のマシン上で発生する実行プロファイルまたはイベントを、所与のセキュリティ・ポリシーの規則に格納されている実行プロファイルまたはイベントと突き合わせることによって）、またはマシンの種類（例えば、すべてのサーバがセキュリティ・ポリシーの第１の組を有し、すべてのデスクトップがセキュリティ・ポリシーの第２の組を有し、すべてのラップトップがセキュリティ・ポリシーの第３の組を有するなど）によって、または手動構成によって学習可能である。
【００６６】
図３に、本開示のある実施形態による有向非巡回グラフの例示のトポロジを示す。有向非巡回グラフ（ＤＡＧ）３００は、本開示のある実施形態によるセキュリティ・ポリシーを編成するための方策の図である。当業者にはわかるように、ＤＡＧ３００は、トポロジ図であり、ＤＡＧ３００のノードおよび辺によって示される依存関係は、例えばセキュリティ・ポリシー・データベース（例えば図１のセキュリティ・ポリシー・データベース１０４または図２のセキュリティ・ポリシー・データベース２００）内の１つまたは複数の相互関係テーブルによって、または、トポロジ図をＤＡＧ３００のノードおよび辺を定義する１組の符号化論理ステートメントに変換することによって実現することができる。
【００６７】
ＤＡＧ３００は、セキュリティ・ポリシーＡないしＩ（３０２ないし３１８）を含むことができる。セキュリティ・ポリシーは、ＤＡＧ３００に示すように、１つまたは複数のその他のセキュリティ・ポリシーに依存するかまたは関連付けられることができる。例えば、セキュリティ・ポリシーＩ（３１８）は、セキュリティ・ポリシーＨ（３１６）に依存するかまたは関連付けられる。同様に、セキュリティ・ポリシーＦ（３１２）は、セキュリティ・ポリシーＥ（３１０）とセキュリティ・ポリシーＡ（３０２）の両方に依存するかまたは関連付けられる。同様に、セキュリティ・ポリシーＣ（３０６）とセキュリティ・ポリシーＤ（３０８）は、セキュリティ・ポリシーＢ（３０４）とセキュリティ・ポリシーＡ（３０２）とに依存するかまたは関連付けられる。セキュリティ・ポリシーＧ（３１４）などの一部のセキュリティ・ポリシーは、他のどのセキュリティ・ポリシーにも依存しない。
【００６８】
セキュリティ・ポリシーは、そのセキュリティ・ポリシーを実施するマシンのセキュリティが別のセキュリティ・ポリシーも実施することで有利になる場合に、その別のセキュリティ・ポリシーに依存するかまたは関連付けられることができる。ＤＡＧ３００の図で、別のセキュリティ・ポリシーの下にあって、その別のセキュリティ・ポリシーに接続されているセキュリティ・ポリシーは、その別のセキュリティ・ポリシーに依存する。
【００６９】
ＤＡＧ３００に示すように、いくつかのセキュリティ・ポリシーが横方向に互いに接続されている（例えばセキュリティ・ポリシーＡ（３０２）はセキュリティ・ポリシーＧ（３１４）に横方向に接続されている）。横方向に接続されたセキュリティ・ポリシーは、様々な実施形態では様々な意味を持つ。ある実施形態では、横方向に接続されたセキュリティ・ポリシーは、依存関係に関連付けられ得る（例えば、セキュリティ・ポリシーＧ（３１４）はセキュリティ・ポリシーＡ（３０２）に依存し得る）。ある実施形態では、横方向に接続されたセキュリティ・ポリシーは、互いに関連付けられているが、互いに依存していない（例えば横方向に接続されたセキュリティ・ポリシーＡ（３０２）、セキュリティ・ポリシーＧ（３１４）、およびセキュリティ・ポリシーＨ（３１６）は、同じ会社に関連付けられる場合があるが、その他の点では互いに関連性がない）。ある実施形態では、セキュリティ・ポリシー間に横方向の接続がない（例えばセキュリティ・ポリシーＧ（３１４）がセキュリティ・ポリシーＡ（３０２）と接続されていなくてもよい）。
【００７０】
セキュリティ・マネージャまたはセキュリティ・エージェントが、実行環境の態様を特定することによって適切なセキュリティ・ポリシーを取り出すことができる。例えば、セキュリティ・エージェントは、セキュリティ・ポリシーＤ（３０８）に関連付けられた第１のアプリケーションを特定することができる。次に、セキュリティ・エージェントはセキュリティ・ポリシーＤ（３０８）を要求するかまたは取り出すか、あるいはその両方を行い、セキュリティ・ポリシーＤ（３０８）に関連付けられたセキュリティ・ポリシー、すなわちセキュリティ・ポリシーＢ（３０４）およびセキュリティ・ポリシーＡ（３０２）も要求するかまたは取り出すか、あるいはその両方を自動的に行う。このような実施例では、セキュリティ・ポリシーＤ（３０８）は、特定のアプリケーションのためのセキュリティ・ポリシーとすることができ、セキュリティ・ポリシーＢ（３０４）は特定のオペレーティング・システム（ＯＳ）のためのセキュリティ・ポリシーとすることができ、セキュリティ・ポリシーＡ（３０２）は、特定の種類のマシン（例えばラップトップ、またはラップトップの特定のモデル）に関連付けられたセキュリティ・ポリシーとすることができる。したがって、本開示のある実施形態によると、ＤＡＧ３００はセキュリティ・ポリシーの組の迅速な編成と取り出しを可能にする。
【００７１】
図４に、本開示のある実施形態によるクライアント・マシンにセキュリティ資源を提供する例示の方法のフローチャートを示す。ある実施形態では、方法４００はセキュリティ・マネージャ（例えば図１のセキュリティ・マネージャ１０２）によって実装可能である。ある実施形態では、方法４００は、コンピュータ読み取り可能記憶媒体に通信可能に結合されたプロセッサによって、コンピュータ可読記憶媒体に記憶された命令を実行することによって行うことができる。
【００７２】
動作４０２で、セキュリティ・マネージャが複数のセキュリティ・ポリシーを生成する。ある実施形態では、複数のセキュリティ・ポリシーは、シミュレーションされた実行環境で行われる観察によって生成することができる。別の実施形態では、複数のセキュリティ・ポリシーは、実働実行環境で稼働する実際のワークロードによってリアルタイムで行われた観察によって生成される。動作４０２については、図５に関して以下でさらに詳細に説明する。
【００７３】
動作４０４で、セキュリティ・マネージャはクライアント・マシン（例えば図１のノード１０６などのノード）に、セキュリティ・エージェント（例えば図１のセキュリティ・エージェント１１４など）を少なくとも１つのセキュリティ・ポリシーとともに提供する。ある実施形態では、動作４０４は、セキュリティ・マネージャからクライアント・マシンに、セキュリティ・エージェントのための命令とセキュリティ・ポリシー・データベースの少なくともサブセットとをダウンロードすることによって、セキュリティ・エージェントと少なくとも１つのセキュリティ・ポリシーとをクライアント・マシンに提供する。ある実施形態では、少なくとも１つのセキュリティ・ポリシーは、クライアント・マシンがその少なくとも１つのセキュリティ・ポリシーに関連付けられた実行環境をホストするかまたはホストするように構成されていることに基づいてクライアント・マシンに提供される。ある実施形態では、セキュリティ・エージェントがまずクライアント・マシンに提供され、その後、セキュリティ・エージェントがそのクライアント・マシンを使用する実行環境を特定することに基づいて、セキュリティ・マネージャに対して少なくとも１つのセキュリティ・ポリシーを要求する。ある実施形態では、セキュリティ・エージェントは、クライアント・マシンを使用する実行環境から取り出された１つまたは複数のパラメータを直接使用してセキュリティ・ポリシー・データベースに照会し、適切なセキュリティ・ポリシーを特定し、取り出す。
【００７４】
動作４０６で、セキュリティ・マネージャは、クライアント・マシンでホストされているセキュリティ・エージェントからアラートを受け取る。アラートは、異常動作を通知するか、またはその他のことを（例えば、セキュリティ・エージェントが完全に構成され、クライアント・マシン上で機能していることなどを示すために）セキュリティ・マネージャに伝達することができる。アラートは、図６に関して以下でより詳細に説明するように、セキュリティ・エージェントがクライアント・マシン上でセキュリティ・ポリシーを実施することに応答して生成され得る。
【００７５】
動作４０８で、セキュリティ・マネージャは、クライアント・マシン上で実装されているセキュリティ・エージェントから１つまたは複数のセキュリティ・ポリシー更新を受け取る。セキュリティ・ポリシーは、クライアント・マシンに関連付けられた１つまたは複数の実行環境に関する許可された更新に照らして更新することができる。セキュリティ・ポリシーの更新については、図７に関して以下でより詳細に説明する。
【００７６】
動作４１０で、セキュリティ・マネージャは、更新されたセキュリティ・ポリシーをセキュリティ・ポリシー・データベース（例えば図１のセキュリティ・ポリシー・データベース１０４または図２のセキュリティ・ポリシー・データベース２００）に記憶し、場合によっては、方法４００は更新されたセキュリティ・ポリシーを他のクライアント・マシン上で稼働している他のセキュリティ・エージェントに配信する。
【００７７】
図５に、本開示のある実施形態によるセキュリティ・ポリシー・データベースを生成する例示の方法のフローチャートを示す。ある実施形態では、方法５００は、セキュリティ・マネージャ（例えば図１のセキュリティ・マネージャ１０２）によって実行可能である。ある実施形態では、方法５００は、コンピュータ可読記憶媒体に通信可能に結合されたプロセッサによってコンピュータ可読記憶媒体に記憶されている命令を実行することによって行われる。
【００７８】
動作５０２で、セキュリティ・マネージャは、１つまたは複数の実行環境のための学習環境において第１の時間間隔にわたってイベントのサブセットをインターセプトする。インターセプトされるイベントのサブセットは、様々な種類のシステム・コールであってよいが、これには限定されない。例えば、インターセプトされるイベントのサブセットは、以下の種類のイベントに関係する（ただしこれらには限定されない）任意の生成されたイベントを含むことができる。すなわち、ファイル・システム・マウンティング、ライブラリ・ロード、ネットワーク構成、クレデンシャル変更などである。インターセプトされるイベントのサブセットは、例えばログファイルから取り出すことができる。ある実施形態では、インターセプトされるイベントのサブセットは、第１の時間間隔における生成イベントの総数より少ない数（例えば第１の時間間隔に生成されるイベントの総数の少数、半分未満、５０％、１０％または１％未満）のイベントを含む。ある実施形態では、インターセプトされるイベントのサブセットは、第１の時間間隔に生成されたすべてのイベントの平均出現率と比較して、悪意攻撃プロファイル（例えば図１の悪意コード・プロファイル１４０）のリポジトリに記憶されている悪意攻撃プロファイルにおいてより高い出現率を示すイベントを含む。ある実施形態では、選択されるイベント、または選択されるイベントの過半数は、悪意攻撃プロファイルの閾値割合（例えば少なくとも１つ、過半数、または２５％、５０％、７５％または９０％を超える割合）で出現するイベントを含む。ある実施形態では、イベントがすべての攻撃プロファイルの５０％を超えて現れる場合、またはイベントが直前の１年間に発生した攻撃プロファイルの５０％を超えて現れる場合、またはイベントが攻撃プロファイルのサブセットに関連付けられた任意の攻撃プロファイルに出現する場合、またはイベントが管理者入力に基づいて手動で含められる場合、インターセプトされるイベントのサブセットがそのイベントを含むように、複数の異なる条件が使用される。ある実施形態では、各悪意攻撃プロファイルに関連付けられた少なくとも１つのイベントがインターセプトされるように構成されるようにインターセプトするために、集合論を使用して最も少ない種類のイベントを判断する。様々な実施形態では、第１の時間間隔は１時間以下、４時間以下、１２時間以下、２４時間以下、７２時間以下、または１週間以下である。第１の時間間隔は、特に実行環境の種類などの要因に基づいてもよい。様々な実施形態では、インターセプトするイベントの数と種類の決定は、手動構成に基づくか、または悪意コード・プロファイルのリポジトリに照会して、悪意コード・プロファイルのそれぞれの種類に関連付けられたイベントのそれぞれの種類を特定することに基づくか、あるいはその両方に基づく。
【００７９】
動作５０４で、セキュリティ・マネージャは、正常動作と異常動作とを定義するそれぞれの条件を有するそれぞれの規則を生成する。ある実施形態では、動作５０４は、各規則が１つまたは複数の条件と１つまたは複数の処置とに関連付けられるように、図２のセキュリティ規則テーブル２０２と一致する規則を生成する。動作５０４は、許可的規則（例えば、真の場合に異常、偽の場合に正常）、または制限的規則（例えば、真の場合に正常、偽の場合に異常）、または許可的規則と制限的規則との組合せを生成することができる。ある実施形態では、動作５０４は、追加のセキュリティをもたせることができるそれぞれの規則のための追加の条件を生成するために、悪意攻撃プロファイル（例えば、図１の悪意コード・プロファイル１４０）のリポジトリに照会する。
【００８０】
第１の実施例として、動作５０４において、セキュリティ・マネージャは、インターセプトされるイベントのサブセットの各インターセプトされるイベントに基づいて、複数の制限的規則（真の場合は正常、偽の場合は異常）を生成することができる。したがって、第１の実施例では、正常なイベントは学習中に発生したイベントと同一のイベントのみである。
【００８１】
第２の実施例として、動作５０４において、セキュリティ・マネージャは、リポジトリから取り出された悪意コード・プロファイルに基づいて複数の許可的規則（真の場合に異常、偽の場合に正常）を生成することができる。したがって、第２の実施例では、正常なイベントは特定の悪意コード・プロファイルに合致しないあらゆるイベントである。
【００８２】
第３の実施例として、動作５０４において、セキュリティ・マネージャは、複数の制限的規則と複数の許可的規則とを生成することができる。したがって、第３の実施例では、所与の悪意コード・プロファイルと合致するあらゆるイベントが（許可的規則に従って）異常とみなされ、学習済みイベントの種類の条件と合致しなかった一部の種類のイベント（例えばファイル・システム・マウンティング・プロセス）が（制限的規則に従って）異常とみなされる。
【００８３】
動作５０６で、セキュリティ・マネージャはそれぞれの規則をそれぞれのセキュリティ・ポリシーに関連付ける。各規則に複数のセキュリティ・ポリシーを関連付けることができ、各セキュリティ・ポリシーに複数の規則を関連付けることができる。セキュリティ・ポリシーは、特定の実行環境、または実行環境の特定のサブセットに関連する規則を含むことができる。第１の実施例として、セキュリティ・ポリシーは特定のアプリケーション、オペレーティング・システム、およびマシンの種類のためのセキュリティ規則を格納することができる。第２の実施例として、第１のセキュリティ・ポリシーが特定のアプリケーションに関連する規則を格納することができ、第２のセキュリティ・ポリシーがその特定のアプリケーションに関連付けられた特定のオペレーティング・システムに関連する規則を格納することができ、第３のセキュリティ・ポリシーがその特定のオペレーティング・システムまたはその特定のアプリケーションあるいはその両方に関連付けられたマシンの種類に関連する規則を格納することができる。第２の実施例の場合、ある実施形態では、動作５０６はセキュリティ・ポリシーの階層を格納する有向非巡回グラフ（例えば図３のＤＡＧ３００）を生成する。
【００８４】
動作５０８で、セキュリティ・マネージャは、それぞれのセキュリティ・ポリシーをそれぞれのマシンに関連付ける。ある実施形態では、動作５０８は、図２のマシン・テーブル２１４などのマシン・テーブルをセキュリティ・ポリシー・データベース内に生成する。各マシンに複数のセキュリティ・ポリシーを関連付けることができ、各セキュリティ・ポリシーに複数のマシンを関連付けることができる。マシンは、様々な種類のハードウェア資源（例えば、サーバ、デスクトップ、ラップトップ、携帯電話など）とすることができ、ある実施形態では、マシンは仮想マシンを含むことができる。ある実施形態では、マシンをクライアントまたはクライアント・マシンと呼ぶ。
【００８５】
動作５１０で、セキュリティ・マネージャは、生成された規則、ポリシー、および関連付けを、図１のセキュリティ・ポリシー・データベース１０４または図２のセキュリティ・ポリシー・データベース２００などのセキュリティ・ポリシー・データベースに記憶する。
【００８６】
図６に、本開示のある実施形態によるセキュリティ・ポリシーを実施する例示の方法のフローチャートを示す。ある実施形態では、方法６００は、セキュリティ・エージェント（例えば図１のセキュリティ・エージェント１１４）によって実行可能である。ある実施形態では、方法６００は、コンピュータ可読記憶媒体に通信可能に結合されたプロセッサによって、コンピュータ可読記憶媒体に記憶された命令を実行することによって行われる。
【００８７】
動作６０２で、セキュリティ・エージェントは第１の実行環境を検出する。ある実施形態では、動作６０２は、第１の実行環境に関連付けられた１つまたは複数のイベントをインターセプトし、インターセプトされたイベントに基づいて第１の実行環境を特定することによって第１の実行環境を検出する。ある実施形態では、動作６０２は、第１の実行環境を識別するために、第１の実行環境に関連付けられた１つまたは複数のユニバーサル・ユニーク識別子（ＵＵＩＤ）またはグローバリ・ユニーク識別子（ＧＵＩＤ）を抽出する。
【００８８】
動作６０４で、セキュリティ・エージェントは、第１の実行環境の検出に応答して１つまたは複数のセキュリティ・ポリシーを取り出す。ある実施形態では、１つまたは複数のセキュリティ・ポリシーは、ローカル・ストレージから取り出される。ある実施形態では、１つまたは複数のセキュリティ・ポリシーは、セキュリティ・ポリシー・データベースから取り出される。
【００８９】
動作６０６で、セキュリティ・エージェントは、取り出されたセキュリティ・ポリシーに１つまたは複数のパラメータを代入する。代入されるパラメータは、第１の実行環境から取り出され、取り出されたセキュリティ・ポリシーに関連付けられた様々な規則（例えば動的規則）の条件に関連付けられたパラメータとすることができる。したがって、動作６０６で、セキュリティ・エージェントは、第１の実行環境からのパラメータを１つまたは複数の動的規則に代入することによって、動的規則を第１の実行環境で実施可能な静的規則に変換する。例えば、仮想マシンのインスタンスを含む実行環境では、代入可能パラメータは、その仮想マシンを含む様々な他のハードウェア資源の資源場所（例えばアドレス）に関係付けられる。
【００９０】
ある実施形態では、動作６０６で、セキュリティ・エージェントは第１の実行環境からのパラメータを使用して、規則またはセキュリティ・ポリシーあるいはその両方の有向非巡回グラフ（ＤＡＧ）内の適切な経路を特定し、特定された適切な経路から規則またはセキュリティ・ポリシーあるいはその両方を実施する。
【００９１】
動作６０８で、セキュリティ・エージェントは、第１の実行環境に関連付けられたイベントの第１のサブセットをインターセプトする。ある実施形態では、イベントの第１のサブセットは、取り出されたセキュリティ・ポリシーによって定義される。ある実施形態では、イベントの第１のサブセットは、実行環境によって生成されるすべてのイベントの平均出現率より高い悪意攻撃プロファイルの出現率に関連付けられたイベントとすることができる。ある実施形態では、イベントの第１のサブセットは、第１の時間間隔に第１の実行環境によって生成されたイベントの総数の５０％未満、１０％未満または１％未満を含み得る。
【００９２】
動作６１０で、セキュリティ・エージェントは、インターセプトされたイベントのうちの少なくとも１つのイベントと取り出されたセキュリティ・ポリシーの少なくとも１つの規則とに基づいて、異常イベントを特定する。様々な実施形態では、インターセプトされたイベントは、インターセプトされたイベントがセキュリティ規則のすべての条件を満たすこと（例えば許可的セキュリティ規則が真値を生成すること）に基づいて、または別の実施形態では、インターセプトされたイベントがセキュリティ規則の１つまたは複数の条件を満たすことができないこと（例えば制限的セキュリティ規則が偽値を生成すること）に基づいて、異常なイベントであると特定することができる。
【００９３】
動作６１２で、セキュリティ・エージェントは、異常イベントの特定に応答して軽減処置を実行することができる。軽減処置は、例えば、アラートを生成し、そのアラートを管理者（例えばセキュリティ・マネージャ）に伝えることとすることができる。別の実施例として、軽減処置は、異常イベントに関連付けられたプロセスを終了することとすることができる。
【００９４】
図７に、本開示のある実施形態による、セキュリティ・ポリシーを更新する例示の方法のフローチャートを示す。ある実施形態によると、方法７００はセキュリティ・エージェント（例えば図１のセキュリティ・エージェント１１４）によって実行可能である。ある実施形態では、方法７００は、コンピュータ可読記憶媒体に通信可能に結合されたプロセッサによって、コンピュータ可読記憶媒体に記憶された命令を実行することによって行われる。
【００９５】
動作７０２で、セキュリティ・エージェントが（例えば図６の動作６０８に関して説明したように）１つまたは複数の実行環境によって生成された特定のイベントをインターセプトすることによって、１つまたは複数のセキュリティ・ポリシーを実施する。
【００９６】
動作７０４で、セキュリティ・エージェントは、実行環境またはセキュリティ・ポリシーあるいはその両方に関連する許可された更新を行うプロセスを特定する。動作７０４は、Ｗｉｎｄｏｗｓ（Ｒ）  Ｕｐｄａｔｅ  Ｓｅｒｖｉｃｅ、（例えばＡｄｖａｎｃｅｄ  Ｐａｃｋａｇｉｎｇ  Ｔｏｏｌ（ＡＰＴ）ソフトウェア・パッケージで使用されているような）「ａｐｔ−ｇｅｔ」コマンド、または「ｙｕｍ」コマンド（例えば一部のＬｉｎｕｘシステムで使用されているようなＹｅｌｌｏｗｄｏｇ  Ｕｐｄａｔｅｒ  Ｍｏｄｉｆｉｅｒ）などであるがこれらには限定されない実行ツールまたはコマンドに基づいて、許可されたサービスを特定することができる。例えば、動作７０４は、イベントをインターセプトし、そのイベントが許可された更新プロセスを示すコマンドまたはその他のパラメータあるいはその両方を含むと判断することができる。
【００９７】
動作７０６で、セキュリティ・エージェントは、限定された学習段階に入る。限定学習段階は、許可された更新に関連付けられた実行環境によって生成されるイベントを一定の時間間隔（例えば、１時間、１２時間、２４時間、１週間など）にわたって観察するように構成することができる。限定学習段階中、セキュリティ・エージェントは、セキュリティ・ポリシーまたはセキュリティ・ポリシーのサブセットの実施を減らすかまたはなくすことができる。一実施例では、セキュリティ・エージェントは、限定学習段階の期間、セキュリティ・ポリシーまたはセキュリティ・ポリシーのサブセットを実施しない。別の実施例では、限定学習段階中、セキュリティ・エージェントは、特定された異常によってトリガされるアラートを生成するが、許可された更新に関連付けられたプロセスを終了させない。
【００９８】
動作７０８で、セキュリティ・エージェントは、セキュリティ・ポリシーに関連付けられ、限定された学習段階に基づいて更新された規則、条件および処置を更新することによって、セキュリティ・ポリシーを更新する。ある実施形態では、動作７０８は、更新されたセキュリティ・ポリシーをセキュリティ・マネージャに提供することをさらに含む。動作７１０で、セキュリティ・エージェントは更新されたセキュリティ・ポリシーを実施する。
【００９９】
図８に、本開示のある実施形態によるセキュリティ・マネージャ８００のブロック図を示す。ある実施形態では、セキュリティ・マネージャ８００は、図１のセキュリティ・マネージャ１０２またはセキュリティ・エージェント１１４あるいはその両方と一致する。セキュリティ・マネージャ８００は、１つまたは複数のクライアント・マシン（例えば、図１のノード１０６、１０８、および１１０）とインターフェースしてそれらのクライアント・マシンのセキュリティ・システムを提供し、更新し、管理する。様々な実施形態では、セキュリティ・マネージャ８００は、図４ないし図７に記載されている方法のいずれかを実行することができる。ある実施形態では、セキュリティ・マネージャ８００は、クライアント・マシンがセキュリティ・マネージャ８００によって提供された命令に基づいてこの方法を実行するように、クライアント・マシンに図４ないし図７に記載されている方法のうちの１つまたは複数の方法のための命令を提供する。ある実施形態では、セキュリティ・マネージャ８００は、セキュリティ・マネージャとセキュリティ・エージェントとが同じマシンに格納されている状況で、セキュリティ・エージェント（例えば図１のセキュリティ・エージェント１１４）としても機能する。
【０１００】
セキュリティ・マネージャ８００は、メモリ８２５と、ストレージ８３０と、相互接続（例えばバス）８２０と、１つまたは複数のＣＰＵ８０５（本明細書ではプロセッサ８０５とも呼ぶ）と、入出力デバイス・インターフェース８１０と、入出力デバイス８１２と、ネットワーク・インターフェース８１５とを含むことができる。
【０１０１】
各ＣＰＵ８０５は、メモリ８２５またはストレージ８３０に記憶されたプログラミング命令を取り出し、実行する。相互接続８２０は、ＣＰＵ８０５と、入出力デバイス・インターフェース８１０と、ストレージ８３０と、ネットワーク・インターフェース８１５と、メモリ８２５との間で、プログラミング命令などのデータを移動するために使用される。相互接続８２０は、１つまたは複数のバスを使用して実装することができる。ＣＰＵ８０５は、様々な実施形態では、単一ＣＰＵ、複数ＣＰＵ、または複数の処理コアを有する単一ＣＰＵとすることができる。ある実施形態では、ＣＰＵ８０５は、デジタル・シグナル・プロセッサ（ＤＳＰ）とすることができる。メモリ８２５は、ランダム・アクセス・メモリ（例えばスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）またはフラッシュ）を代表するものとめに一般的に含められている。ストレージ８３０は、ハード・ディスク・ドライブ、ソリッド・ステート・デバイス（ＳＳＤ）、取り外し可能メモリ・カード、光学式ストレージ、またはフラッシュ・メモリ・デバイスなどの不揮発性メモリを代表するものとして一般的に含められている。別の実施形態では、ストレージ８３０は、入出力デバイス・インターフェース８１０を介して、またはネットワーク・インターフェース８１５を介し、ネットワーク８５０を介してセキュリティ・マネージャ８００に接続された、ストレージ・エリア・ネットワーク（ＳＡＮ）デバイス、クラウド、またはその他のデバイスに置き換えることができる。
【０１０２】
ある実施形態では、メモリ８２５は命令８６０を記憶し、ストレージ８３０はセキュリティ・ポリシー８３２と、インターセプトされたイベント８３４と、アラート８３６とを記憶する。しかし、様々な実施形態では、命令８６０と、セキュリティ・ポリシー８３２と、インターセプトされたイベント８３４と、アラート８３６との一部がメモリ８２５に、一部がストレージ８３０に記憶されるか、または全部がメモリ８２５に、または全部がストレージ８３０に記憶されるか、またはネットワーク・インターフェース８１５を介してネットワーク８５０でアクセスされる。
【０１０３】
セキュリティ・ポリシー８３２は、セキュリティ・ポリシー・データベースに記憶された１つまたは複数のセキュリティ・ポリシーを含むことができる。例えば、セキュリティ・ポリシー８３２は、図１のセキュリティ・ポリシー・データベース１０４または図２のセキュリティ・ポリシー・データベース２００あるいはその両方と一致していてもよい。セキュリティ・ポリシー８３２は、少なくとも１つの条件に基づく少なくとも１つの規則を含む少なくとも１つのセキュリティ・ポリシーを含む。セキュリティ・ポリシー８３２は、セキュリティ・マネージャ８００に提供可能であるか、またはセキュリティ・ポリシー８３２は、（例えば図５に関して説明したように）学習命令８６２の実行に基づいて学習可能である。
【０１０４】
インターセプトされるイベント８３４は、実行環境によって生成され、セキュリティ・ポリシーの１つまたは複数の規則との比較のためにセキュリティ・ポリシーを実施するセキュリティ・エージェントによってインターセプトされる、イベントのサブセットを含むことができる。ある実施形態では、インターセプトされるイベント８３４は、図１のイベント１１８、１２６または１３４あるいはその組合せと一致する。
【０１０５】
アラート８３６は、異常動作の検出に応答して生成され、ユーザ・インターフェース（例えば入出力デバイス８１２）に提供されるアラートを含む。アラート８３６は、アラートのクラス（例えば、緊急、重大、一般、または通知）、アラートに関連するクライアント・マシン、ノードまたは実行環境の識別情報あるいはこれらの組合せ、アラートに関連付けられたプロセスの名称、アラートに関連付けられたプロセスを生成するプログラムの名称、時刻、または推奨される軽減処置あるいはこれらの組合せなどの情報を含むことができる。
【０１０６】
命令８６０は、学習命令８６２と、セキュリティ・エージェント命令８６４と、セキュリティ管理命令８６６とを含むプロセッサ実行可能命令である。学習命令８６２は、図５に関して説明した方法５００などの方法を使用してセキュリティ・ポリシー８３２を生成するためにセキュリティ・マネージャ８００により実行可能である。
【０１０７】
セキュリティ・エージェント命令８６４は、図６の方法６００および図７の方法７００などの方法を実行するように構成することができる。ある実施形態では、セキュリティ・エージェント命令８６４は、インターセプトされたイベントを１つまたは複数のセキュリティ・ポリシーと比較し、１つまたは複数のセキュリティ・ポリシーに従って、異常動作を示すアラートを生成するように構成される。ある実施形態では、セキュリティ・エージェント命令８６４は、更新されたセキュリティ・ポリシー、インターセプトされたイベント、またはアラート、あるいはこれらの組合せを、セキュリティ・マネージャ８００がセキュリティ・ポリシー８３２、インターセプトされたイベント８３４、またはアラート８３６、あるいはこれらの組合せに格納するために、セキュリティ・マネージャ８００に送信するように構成される。ある実施形態では、セキュリティ・マネージャ８００は、セキュリティ・マネージャ８００とセキュリティ・エージェントの両方として機能し、セキュリティ・エージェント命令８６４をネットワーク８５０を介してクライアント・マシンに提供するのではなく、セキュリティ・エージェント命令８６４を直接実行する。
【０１０８】
セキュリティ管理命令８６６は、図４に関して説明した方法４００などの方法を使用して１つまたは複数の通信可能に結合されたクライアント・マシンまたはノードのセキュリティを管理するために、セキュリティ・マネージャ８００により実行可能である。ある実施形態では、セキュリティ・マネージャ８００は、ネットワーク８５０を介して接続された数百または数千のクライアント・マシンに配信されたセキュリティ・エージェントのセキュリティ管理のためにセキュリティ管理命令８６６を実行する。
【０１０９】
様々な実施形態では、入出力デバイス８１２は、情報を提示し、入力を受け取ることが可能なインターフェースを含むことができる。例えば、入出力デバイス８１２は、セキュリティ・マネージャ８００と対話するユーザに情報（例えばアラート８３６）を提示し、ユーザから入力（例えば選択された軽減処置）を受け取ることができる。
【０１１０】
セキュリティ・マネージャ８００は、ネットワーク・インターフェース８１５を介してネットワーク８５０に接続される。ある実施形態では、ネットワーク８５０は図１のネットワーク１５０と一致する。
【０１１１】
本開示は、クラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載の教示の実装は、クラウド・コンピューティング環境には限定されないことを理解されたい。むしろ本発明の実施形態は、現在知られているかまたは今後開発される他のどのような種類のコンピューティング環境とでも実装可能である。
【０１１２】
クラウド・コンピューティングは、最小限の管理労力またはサービス・プロバイダとの相互連絡で迅速にプロビジョニングすることができ、解放することができる、構成可能コンピューティング資源（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス）の共用プールへの便利なオンデマンドのネットワーク・アクセスのためのサービス配布のモデルである。このクラウド・モデルは、少なくとも５つの特徴と、少なくとも３つのサービス・モデルと、少なくとも４つの配備モデルとを含み得る。
【０１１３】
特徴は以下の通りである。
オンデマンド・セルフサービス：クラウド消費者は、サービス・プロバイダとの間で人間の介在を必要とせずに、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
広帯域ネットワーク・アクセス：ネットワークを介して機能が利用可能であり、異種のシン・クライアントまたはシック・クライアント・プラットフォーム（例えば携帯電話、ラップトップ、およびＰＤＡ）による使用を促進する標準機構を介してアクセスすることができる。
資源プール：マルチテナント・モデルを使用して複数の消費者に対応するために、プロバイダのコンピューティング資源がプールされ、需要に応じて異なる物理資源および仮想資源が動的に割り当てられ、再割り当てされる。消費者は一般に、提供される資源の厳密な場所について制御することができないかまたは知らないが、より高い抽象レベルの場所（例えば、国、州、またはデータセンター）を指定することが可能な場合があるという点で、位置独立感がある。
迅速な伸縮性：迅速かつ伸縮性をもって、場合によっては自動的に機能をプロビジョニングして、迅速にスケールアウトすることができ、また、迅速に機能を解放して迅速にスケールインすることができる。消費者にとっては、プロビジョニングのために利用可能な機能はしばしば無限であるように見え、いつでも好きなだけ購入することができる。
従量制サービス：クラウド・システムが、サービスの種類（例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント）に応じて適切な何らかの抽象化レベルの計量機能を活用することによって、資源利用を自動的に制御し、最適化する。資源使用量を監視、制御および報告することができ、利用されたサービスの透明性をプロバイダと消費者の両方に与えることができる。
【０１１４】
サービス・モデルは以下の通りである。
ソフトウェア・アズ・ア・サービス（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ：ＳａａＳ）：消費者に提供される機能は、クラウド・インフラストラクチャ上で稼働するプロバイダのアプリケーションを使用することである。アプリケーションには、ウェブ・ブラウザなどのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である（例えばウェブ・ベースのｅメール）。消費者は、限られたユーザ固有アプリケーション構成設定の考えられる例外を除き、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個別のアプリケーション機能まで含めて、基礎にあるクラウド・インフラストラクチャを管理も制御もしない。
プラットフォーム・アズ・ア・サービス（Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ：ＰａａＳ）:消費者に提供される機能は、クラウド・インフラストラクチャ上に、消費者作成アプリケーション、またはプロバイダによってサポートされるプログラミング言語およびツールを使用して作成された取得アプリケーションを配備することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎にあるクラウド・インフラストラクチャを管理も制御もしないが、配備されたアプリケーションと、場合によってはアプリケーション・ホスティング環境構成とを制御することができる。
インフラストラクチャ・アズ・ア・サービス（Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ：ＩａａＳ）：消費者に提供される機能は、処理、ストレージ、ネットワークおよびその他の基本的コンピューティング資源をプロビジョニングすることであり、その際、消費者は、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを配備し、実行することができる。消費者は、基礎にあるクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システムと、ストレージと、配備されたアプリケーションとを制御することができ、場合によっては選択されたネットワーク・コンポーネント（例えばホスト・ファイアウォール）の限定的な制御を行うことができる。
【０１１５】
配備モデルは以下の通りである。
プライベート・クラウド：このクラウド・インフラストラクチャは、組織のためにのみ運用される。組織または第三者によって管理されることができ、オンプレミスまたはオフプレミスに存在可能である。
コミュニティ・クラウド：このクラウド・インフラストラクチャは、いくつかの組織によって共用され、共通の関心事（例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンス事項）を有する特定のコミュニティをサポートする。組織または第三者によって管理されてよく、オンプレミスまたはオフプレミスに存在可能である。
パブリック・クラウド：このクラウド・インフラストラクチャは、公衆または大規模業界団体が利用することができ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド：このクラウド・インフラストラクチャは、独自の実体のままであるが、データ可搬性またはアプリケーション可搬性を可能にする標準化技術または専有技術（例えば、クラウド間の負荷バランシングのためのクラウド・バースティング）によって結合された、２つ以上のクラウド（プライベート、コミュニティまたはパブリック）の複合体である。
【０１１６】
クラウド・コンピューティング環境は、ステートレス性、疎結合性、モジュール性、および意味的相互運用性に焦点を合わせたサービス指向型である。クラウド・コンピューティングの核心にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【０１１７】
図９を参照すると、例示のクラウド・コンピューティング環境５０が図示されている。図のように、クラウド・コンピューティング環境５０は、例えばパーソナル・デジタル・アシスタント（ＰＤＡ）または携帯電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃ、または自動車コンピュータ・システム５４Ｎあるいはその組合せなど、クラウド消費者によって使用されるローカル・コンピューティング・デバイスが通信することができる、１つまたは複数のコンピューティング・ノード１０を含む。ノード１０は互いに通信してもよい。これらは、上述のプライベート、コミュニティ、パブリックまたはハイブリッド・クラウドまたはこれらの組合せなどの１つまたは複数のネットワークにおいて物理的または仮想的にグループ化（図示せず）されてもよい。これによって、クラウド・コンピューティング環境５０は、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組合せを、クラウド消費者がそのためにローカル・コンピューティング・デバイス上で資源を維持する必要がないサービスとして提供することができる。なお、図９に示すコンピューティング・デバイス５４Ａないし５４Ｎの種類は、例示のみを意図したものであり、コンピューティング・ノード１０およびクラウド・コンピューティング環境５０は、（例えばウェブ・ブラウザを使用して）任意の種類のネットワークまたはネットワーク・アドレス指定可能接続あるいはその組合せを介して、任意の種類のコンピュータ化デバイスと通信することができるものと理解される。
【０１１８】
次に、図１０を参照すると、クラウド・コンピューティング環境５０（図９）によって提供される１組の機能抽象化層が示されている。なお、図１０に示す構成要素、層および機能は、例示のみを意図したものであり、本発明の実施形態はこれらには限定されないことを前もって理解されたい。図のように、以下の層および対応する機能が提供される。
【０１１９】
ハードウェアおよびソフトウェア層６０は、ハードウェア構成要素とソフトウェア構成要素とを含む。ハードウェア構成要素の例としては、メインフレーム６１、縮小命令セットコンピュータ（Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ：ＲＩＳＣ）アーキテクチャ・ベースのサーバ６２、サーバ６３、ブレード・サーバ６４、ストレージ・デバイス６５、およびネットワークおよびネットワーキング構成要素６６がある。実施形態によっては、ソフトウェア構成要素は、ネットワーク・アプリケーション・サーバ・ソフトウェア６７およびデータベース・ソフトウェア６８を含む。仮想化層７０は、以下の仮想実体の例を与えることができる抽象化層を提供する。すなわち、仮想サーバ７１、仮想ストレージ７２、仮想プライベート・ネットワークを含む仮想ネットワーク７３、仮想アプリケーションおよびオペレーティング・システム７４、および仮想クライアント７５である。
【０１２０】
一実施例では、管理層８０は以下に記載の機能を提供することができる。資源プロビジョニング８１は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング資源およびその他の資源の動的調達を行う。メータリングおよびプライシング８２は、クラウド・コンピューティング環境内で資源が利用されるときのコスト追跡と、これらの資源の消費に対する対価の請求またはインボイス処理を行う。一実施例では、これらの資源にはアプリケーション・ソフトウェア・ライセンスが含まれてもよい。セキュリティは、クラウド消費者およびタスクのための本人検証と、データおよびその他の資源の保護とを行う。ユーザ・ポータル８３は、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理８４は、必要なサービス・レベルが満たされるようにクラウド・コンピューティング資源割り当ておよび管理を行う。サービス・レベル・アグリーメント（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ：ＳＬＡ）計画および履行８５は、ＳＬＡに従って将来の要求が予想されるクラウド・コンピューティング資源のための事前取り決めおよび調達を行う。
【０１２１】
ワークロード層９０は、クラウド・コンピューティング環境をそのために利用することができる機能の例を提供する。この層から提供可能なワークロードおよび機能の例としては、マッピングおよびナビゲーション９１、ソフトウェア開発およびライフサイクル管理９２、仮想教室教育配信９３、データ分析処理９４、トランザクション処理９５、およびセキュリティ管理９６がある。
【０１２２】
本発明の実施形態は、任意の可能な技術的詳細の統合レベルでのシステム、方法またはコンピュータ・プログラム製品あるいはその組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令が記憶されたコンピュータ可読記憶媒体（または複数の媒体）を含み得る。
【０１２３】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持し、記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学式ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適合する組合せであってよいが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のものが含まれる。すなわち、可搬コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、可搬コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピィ・ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、およびこれらの任意の適合する組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体とは、電波またはその他の自由に伝播する電磁波、導波路またはその他の伝送媒体を伝播する電磁波（例えば光ファイバ・ケーブルを通る光パルス）、または電線を介して伝送される電気信号などの、一過性の信号自体であると解釈すべきではない。
【０１２４】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワークあるいはこれらの組合せを介して外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、交換機、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはこれらの組合せを含んでよい。各コンピューティング／処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体への記憶のために転送する。
【０１２５】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、または、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語および「Ｃ」プログラミング言語または同様のプログラム言語などの手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上で、または一部がユーザのコンピュータ上で、または一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で、または全体がリモート・コンピュータまたはサーバ上で実行されてよい。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む、任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに対して行ってもよい。実施形態によっては、本発明の態様を実行するために、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路が、コンピュータ可読プログラム命令の状態情報を使用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
【０１２６】
本発明の態様について、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品を示すフローチャート図またはブロック図あるいはその両方を参照しながら説明している。フローチャート図またはブロック図あるいはその両方の図の各ブロックおよび、フローチャート図またはブロック図あるいはその両方の図のブロックの組合せは、コンピュータ可読プログラム命令によって実装可能であることはわかるであろう。
【０１２７】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックで規定されている機能／動作を実装する手段を形成するように、汎用コンピュータ、特殊目的コンピュータ、またはその他のプログラマブル・データ処理装置のプロセッサに供給されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックで規定されている機能／動作の態様を実装する命令を含む製造品を含むように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、またはその他のデバイスあるいはこれらの組合せに対して特定の方式で機能するように指示することができるものであってもよい。
【０１２８】
コンピュータ可読プログラム命令は、コンピュータ、その他のプログラマブル装置またはその他のデバイス上で実行される命令がフローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックで規定されている機能／動作を実装するように、コンピュータ実装プロセスを生成すべく、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイスにロードされ、コンピュータ、その他のプログラマブル装置、またはその他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【０１２９】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能および動作を示す。なお、フローチャートまたはブロック図の各ブロックは、規定されている論理機能を実装するための１つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、またはサブセットを表すことがある。別の実装形態では、ブロックに記載されている機能は、図に記載されている順序とは異なる順序で行われてもよい。例えば、連続して示されている２つのブロックは、関与する機能に応じて、実際には実質的に並行して実行されてよく、またはそれらのブロックは場合によっては逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の図の各ブロック、およびブロック図またはフローチャート図あるいはその両方の図のブロックの組合せは、規定されている機能または動作を実行する特殊目的ハードウェア・ベースのシステムによって実装されるか、または特殊目的ハードウェアとコンピュータ命令との組合せを実施することができることもわかるであろう。
【０１３０】
プロセス・ソフトウェア（例えば、図８の命令８６０に格納されている命令のいずれか、または、図４ないし図７に関して説明した方法の任意のサブセットを実行するように構成された任意のソフトウェア、あるいはその両方）は、ＣＤ、ＤＶＤなどの記憶媒体の装填によりクライアント、サーバ、およびプロキシ・コンピュータに直接手動でロードすることによって配備することができるものと理解されるが、プロセス・ソフトウェアは、プロセス・ソフトウェアを中央サーバまたは中央サーバのグループに送信することによって、コンピュータ・システムに自動的または半自動的に配備することも可能である。プロセス・ソフトウェアは、次に、プロセス・ソフトウェアを実行するクライアント・コンピュータにダウンロードされる。あるいは、プロセス・ソフトウェアは、ｅメールでクライアント・システムに直接送信される。次に、プロセス・ソフトウェアは、プロセス・ソフトウェアをディレクトリにデタッチする１組のプログラム命令を実行することによって、ディレクトリにデタッチされるか、またはディレクトリにロードされる。別の選択肢は、プロセス・ソフトウェアをクライアント・コンピュータのハード・ドライブ上のディレクトリに直接送信することである。プロキシ・サーバがある場合、プロセスは、プロキシ・サーバ・コードを選択し、どのコンピュータにプロキシ・サーバのコードを配置するかを決定し、プロキシ・サーバ・コードを送信し、次に、プロキシ・サーバ・コードをプロキシ・コンピュータにインストールすることになる。プロセス・ソフトウェアは、プロキシ・サーバに送信され、次に、プロキシ・サーバに格納されることになる。
【０１３１】
本発明の実施形態は、クライアント企業、非営利組織、政府機関、内部組織構造などとのサービス契約の一部として配布されてもよい。これらの実施形態は、本明細書に記載の方法の一部または全部を実行するようにコンピュータ・システムを構成することと、本明細書に記載の方法の一部または全部を実装するソフトウェア、ハードウェア、およびウェブ・サービスを配備することとを含み得る。これらの実施形態は、クライアントの動作を分析することと、分析に応じて推奨事項を作成することと、推奨事項のサブセットを実装するシステムを構築することと、システムを既存のプロセスおよびインフラストラクチャに組み込むことと、システムの使用を計量することと、システムのユーザに費用を配分することと、システムの使用の対価の請求、インボイス処理、またはその他の方法による支払いを受領することも含み得る。
【図１】
0006960037.tif 000002
【図２】
0006960037.tif 000003
【図３】
0006960037.tif 000004
【図４】
0006960037.tif 000005
【図５】
0006960037.tif 000006
【図６】
0006960037.tif 000007
【図７】
0006960037.tif 000008
【図８】
0006960037.tif 000009
【図９】
0006960037.tif 000010
【図１０】
0006960037.tif 000011