(57)【特許請求の範囲】
【請求項１】
コンピュータの情報処理による方法であって、前記方法が、
ソフトウェアによって定義された環境内のワークロードおよび前記ワークロードに対応するリソースのセットを表すセキュリティ・コンテナを定義するステップと、
前記セキュリティ・コンテナのセキュリティ基準のセットを決定するステップと、
前記セキュリティ基準のセットに少なくとも部分的に基づいて、セキュリティ・イベントについて前記ワークロードおよび前記リソースのセットを監視するステップと、
セキュリティ・イベントの識別に応答して１つまたは複数のセキュリティ・メカニズムを調整するステップと
を含む、方法であって、
少なくとも前記監視するステップおよび前記調整するステップが前記ソフトウェアによって定義され、実体化された環境内で処理される、方法。
【請求項２】
前記リソースのセットが、計算リソース、ストレージ・リソース、およびネットワーク・リソースを含む、請求項１に記載の方法。
【請求項３】
前記セキュリティ基準のセットが、前記ソフトウェアによって定義された環境全体で移植可能であるコンテナ固有のポリシーの仕様を含む、請求項１に記載の方法。
【請求項４】
前記監視するステップが、深部探索、条件に基づく監視、および前記リソースのセット内のリソースへの挙動モデルの適用のうちの１つを含む、請求項１に記載の方法。
【請求項５】
前記１つまたは複数のセキュリティ・メカニズムを調整するステップが、セキュリティ・メカニズムを挿入するステップ、およびセキュリティ・メカニズムを削除するステップのうちの一方を含む、請求項１に記載の方法。
【請求項６】
前記１つまたは複数のセキュリティ・メカニズムが、隔離アクションおよび移行アクションのうちの少なくとも一方を含む、請求項１に記載の方法。
【請求項７】
請求項１乃至６の何れか１項に記載の方法の各ステップを、コンピュータに実行させる、コンピュータ・プログラム。
【請求項８】
請求項７に記載の前記コンピュータ・プログラムを、コンピュータ可読記憶媒体に記録した、コンピュータ可読記憶媒体。
【請求項９】
請求項１乃至６の何れか１項に記載の方法の各ステップを、コンピュータ・ハードウェアによる手段として構成した、コンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にソフトウェアによって定義された環境（ＳＤＥ）の分野に関し、より詳細にはＳＤＥ内のセキュリティに関する。
【背景技術】
【０００２】
企業は、ミッションクリティカルなアプリケーションおよび性能に敏感なアプリケーションを、共有されたインフラストラクチャおよびクラウド上の高度に仮想化された環境に移行することに、ますます積極的になっている。モバイル・アプリケーション、ソーシャル・アプリケーション、および分析アプリケーションは、多くの場合、共有されたインフラストラクチャおよびクラウド上で直接開発され、運用される。現在の仮想化ソリューションおよびクラウド・ソリューションは、それらの容量に関して、計算リソース、ストレージ・リソース、およびネットワーク・リソースの基本的な抽象化のみを可能にする。このアプローチは、多くの場合、これらのリソースの抽象化を簡略化するために、基盤になるシステム・アーキテクチャの標準化を必要とする。さらに、ワークロード最適化システムのアプローチは、基盤になるシステム・アーキテクチャへの（コンパイラを含めた）ワークロードの緊密な統合に依存する。このアプローチは、必要な労働集約的最適化を犠牲にして、各マイクロアーキテクチャによって、およびシステム・レベルの能力によって提供される特殊能力の直接的活用を可能にする。
【０００３】
ソフトウェアによって定義された環境（ＳＤＥ）では、同じ物理的システム内で多くの仮想「システム」が作成される場合があり、または複数の物理的システムが１つの仮想システム内で仮想化される場合があり、あるいはその両方が行われる場合がある。ソフトウェアによって定義された「システム」は、絶えず最初から作成され、絶えず進化し、最終的に破壊されることが可能であるため、論理的リソースと物理的リソースの間には、永続的な関連（または結合）は存在しない。
【０００４】
フレームワーク（本明細書では「フィスター・フレームワーク（Pfisterframework）」と呼ばれる）は、特定のアプリケーションのワークロードの特徴を表すために使用されてきた。フィスター・フレームワークは、「スレッド競合」対「データ競合」を考慮する。これを考慮して、次の４つのワークロードのカテゴリが定義される。（ｉ）共有されたデータまたはキューを更新する混合ワークロード（企業のソフトウェア（アプリケーションや統合ミドルウェアとしても知られている）など）、（ｉｉ）高度にスレッド化されたアプリケーション、（ｉｉｉ）分析を伴う並列データ構造（クラスタ計算環境上のデータセットのストレージおよび大規模処理のためのフレームワークなど）、および（ｉｖ）小規模な個別のアプリケーション
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、ソフトウェアによって定義されたインフラストラクチャ内のセキュリティのメカニズムを調整することである。
【課題を解決するための手段】
【０００６】
本発明の第１の態様によれば、ソフトウェアによって定義された環境内のワークロードおよびそのワークロードに対応するリソースのセットを表すセキュリティ・コンテナを確立するステップと、セキュリティ・コンテナのセキュリティ基準のセットを決定するステップと、セキュリティ基準のセットに少なくとも部分的に基づいてセキュリティ・イベントについてワークロードおよびリソースのセットを監視するステップと、セキュリティ・イベントの識別に応答して、１つまたは複数のセキュリティ・メカニズムを調整するステップとを含んでいる方法が存在する。監視するステップおよび調整するステップは、ソフトウェアによって定義された環境内で処理される。
【０００７】
本発明の第２の態様によれば、ソフトウェアによって定義された環境内のワークロードおよびそのワークロードに対応するリソースのセットを表すセキュリティ・コンテナを確立することと、セキュリティ・コンテナのセキュリティ基準のセットを決定することと、セキュリティ基準のセットに少なくとも部分的に基づいてセキュリティ・イベントについてワークロードおよびリソースのセットを監視することと、セキュリティ・イベントの識別に応答して、１つまたは複数のセキュリティ・メカニズムを調整することとを行うようにプログラムされたプログラム命令が記憶されたコンピュータ可読記憶媒体を含んでいるコンピュータ・プログラム製品が存在する。
【０００８】
本発明の第３の態様によれば、プロセッサ・セットおよびコンピュータ可読記憶媒体を含んでいるコンピュータ・システムが存在する。プロセッサ・セットは、コンピュータ可読記憶媒体に記憶されたプログラム命令を実行するように構造化され、配置され、接続され、またはプログラムされ、あるいはこれらの組合せが行われ、プログラム命令は、ソフトウェアによって定義された環境内のワークロードおよびそのワークロードに対応するリソースのセットを表すセキュリティ・コンテナを確立することと、セキュリティ・コンテナのセキュリティ基準のセットを決定することと、セキュリティ基準のセットに少なくとも部分的に基づいてセキュリティ・イベントについてワークロードおよびリソースのセットを監視することと、セキュリティ・イベントの識別に応答して、１つまたは複数のセキュリティ・メカニズムを調整することとを行うようにプログラムされたプログラム命令を含む。
【０００９】
ここで、添付の図面を例として参照し、本発明の実施形態について説明する。
【図面の簡単な説明】
【００１０】
【図１】本発明に従うシステムの第１の実施形態において使用されるクラウド・コンピューティング・ノードを表す図である。
【図２】本発明に従うクラウド・コンピューティング環境の実施形態（「第１の実施形態のシステム」とも呼ばれる）を表す図である。
【図３】第１の実施形態のシステムにおいて使用される抽象モデル・レイヤを表す図である。
【図４】第１の実施形態のシステムによって少なくとも部分的に実行される第１の実施形態の方法を示すフローチャートである。
【図５】第１の実施形態のシステムの機械論理（例えば、ソフトウェア）部分を示すブロック図である。
【図６】本発明に従うシステムの第２の実施形態を示すブロック図である。
【図７】第２の実施形態のシステムの機械論理（例えば、ソフトウェア）部分を示すブロック図である。
【発明を実施するための形態】
【００１１】
ソフトウェアによって定義された環境のエンド・ツー・エンドのセキュリティは、ワークロード・リソースの自己記述コンテナを確立することによって提供される。セキュリティ・ポリシーの実施メカニズムは、ソフトウェアによって定義された環境内で開発、配置、および運用される。本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはこれらの組合せである。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいる１つまたは複数のコンピュータ可読記憶媒体を含む。
【００１２】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持する、または記憶する、あるいはその両方を行う有形のデバイスである。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せにすることができるが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：random access memory）、読み取り専用メモリ（ＲＯＭ：read-onlymemory）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ：erasableprogrammable read-only memoryまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ：static random access memory）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：compact disc read-only memory）、デジタル多用途ディスク（ＤＶＤ：digital versatile disk）、メモリ・スティック、フロッピー（Ｒ）・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組合せを含む。本明細書において使用されているコンピュータ可読記憶媒体は、本質的に、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、あるいはワイヤを介して送信される電気信号などの一時的信号であると解釈されるべきではない。
【００１３】
本明細書に記載されたコンピュータ可読プログラム命令は、一部の実施形態に従って、コンピュータ可読記憶媒体から各コンピューティング・デバイス／処理デバイスへ、またはネットワーク（例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワークあるいはこれらの組合せ）を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされる。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはこれらの組合せを備える。各コンピューティング・デバイス／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス／処理デバイス内のコンピュータ可読記憶媒体に記憶するために転送する。
【００１４】
本発明の処理を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ：instruction-set-architecture）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードまたはオブジェクト・コードにすることができる。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータを、ローカル・エリア・ネットワーク（ＬＡＮ：local area network）または広域ネットワーク（ＷＡＮ：wide areanetwork）を含む任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続を、（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに対して行うことができる。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ：field-programmable gate arrays）、またはプログラマブル・ロジック・アレイ（ＰＬＡ：programmable logic arrays）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行できる。
【００１５】
本発明の態様は、本明細書において、本発明の実施形態に記載された方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組合せは、コンピュータ可読プログラム命令によって実装されると理解されるであろう。
【００１６】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて規定された機能／動作を実装するための手段を構築するように、本発明の一部の実施形態に従って、汎用コンピュータ、専用コンピュータ、またはその他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。このコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて規定された機能／動作の態様を実装する命令を含んでいる製品を備えるように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、またはその他のデバイスあるいはこれらの組合せに特定の方法で機能するように指示することができるものであってもよい。
【００１７】
コンピュータ可読プログラム命令は、コンピュータ、その他のプログラマブル装置、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて規定された機能／動作を実装するように、コンピュータ実装プロセスを生成するべく、本発明の一部の実施形態に従って、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイス上にロードされ、コンピュータ、その他のプログラマブル装置、あるいはその他のデバイス上で一連の動作可能なステップを実行させるものであってもよい。
【００１８】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に記載されているシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および処理を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための１つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表す。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生する。例えば、連続して示された２つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組合せは、一部の実施形態において、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェアベースのシステムによって実装されるということにも注意する。
【００１９】
本開示にはクラウド・コンピューティングの詳細な説明が含まれているが、本明細書で示された教示の実装は、クラウド・コンピューティング環境に限定されないと、あらかじめ理解される。本発明の実施形態は、既知または今後開発される他のいかなる種類のコンピューティング環境と組み合わせても実装できる。
【００２０】
クラウド・コンピューティングは、構成可能な計算リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス）の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間とサービス・プロバイダとのやりとりを最小限に抑えて、それらのリソースが迅速にプロビジョニングおよび解放される。本発明の一部の実施形態では、このクラウド・モデルは、少なくとも５つの特徴、少なくとも３つのサービス・モデル、および少なくとも４つの配置モデルを含む。
【００２１】
特徴は、次のとおりである。
【００２２】
オンデマンドのセルフ・サービス：クラウドの利用者は、サーバの時間、ネットワーク・ストレージなどのコンピューティング能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングする。
【００２３】
幅広いネットワーク・アクセス：能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを使用してアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム（例えば、携帯電話、ラップトップ、ＰＤＡ）による利用を促進する。
【００２４】
リソース・プール：プロバイダの計算リソースは、プールされ、マルチテナント・モデルを使用して複数の利用者に提供される。さまざまな物理的および仮想的リソースが、要求に従って動的に割り当てられ、および再度割り当てられる。場所に依存しないという感覚があり、利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高い抽象レベル（例えば、国、州、データセンタ）では、場所を指定できる場合がある。
【００２５】
迅速な順応性：能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインする。プロビジョニングに使用できる能力は、利用者には、多くの場合、無制限に見え、任意の量をいつでも購入できる。
【００２６】
測定されるサービス：クラウド・システムは、計測機能を活用することによって、サービスの種類に適した抽象レベル（例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント）で、リソースの使用を自動的に制御および最適化する。リソースの使用量に対して、監視、制御、またはレポート、あるいはこれらの組合せが実行され、利用されるサービスのプロバイダと利用者の両方に透明性を提供する。
【００２７】
サービス・モデルは、次のとおりである。
【００２８】
ＳａａＳ（Software as a Service）：利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Ｗｅｂブラウザ（例えば、Ｗｅｂベースの電子メール）などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能を含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
【００２９】
ＰａａＳ（Platform as a Service）：利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者によって作成または取得されたアプリケーションをクラウド・インフラストラクチャに配置することである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、配置されたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
【００３０】
ＩａａＳ（Infrastructure as a Service）：利用者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的な計算リソースのプロビジョニングであり、利用者は、一部の実施形態において、オペレーティング・システムまたはアプリケーションあるいはその両方を含む任意のソフトウェアを配置して実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、および配置されたアプリケーションを制御することができ、場合によっては、選択されたネットワーク・コンポーネント（例えば、ホスト・ファイアウォール）を限定的に制御できる。
【００３１】
配置モデルは、次のとおりである。
【００３２】
プライベート・クラウド：このクラウド・インフラストラクチャは、組織のためにのみ運用される。これは、組織またはサード・パーティによって管理され、構内または構外に存在する。
【００３３】
コミュニティ・クラウド：このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事（例えば、任務、セキュリティ要件、ポリシー、適合性に関する考慮事項）を共有している特定のコミュニティをサポートする。これは、組織またはサード・パーティによって管理され、構内または構外に存在する。
【００３４】
パブリック・クラウド：このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
【００３５】
ハイブリッド・クラウド：このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術（例えば、クラウド間の負荷を平衡させるためのクラウド・バースト）によって固有の実体を残したまま互いに結合された２つ以上のクラウド（プライベート、コミュニティ、またはパブリック）の複合である。
【００３６】
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを備えるインフラストラクチャである。
【００３７】
ここで図１を参照すると、クラウド・コンピューティング・ノードの例の概略図が示されている。クラウド・コンピューティング・ノード１０は、適切なクラウド・コンピューティング・ノードの一例に過ぎず、本明細書に記載された本発明の実施形態の使用または機能の範囲に関して、いかなる限定も示唆することを意図されていない。いずれにせよ、クラウド・コンピューティング・ノード１０は、前述した任意の機能を実装すること、または実行すること、あるいはその両方を行うことができる。
【００３８】
クラウド・コンピューティング・ノード１０内には、他の多数の汎用または専用のコンピューティング・システム環境または構成で運用できるコンピュータ・システム／サーバ１２が存在する。コンピュータ・システム／サーバ１２での使用に適した既知のコンピューティング・システム、環境、または構成、あるいはその組合せの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マイクロプロセッサ・システム、マイクロプロセッサベース・システム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークＰＣ、マイクロコンピュータ・システム、メインフレーム・コンピュータ・システム、およびこれらの任意のシステムまたはデバイスを含む分散クラウド・コンピューティング環境などを含むが、これらに限定されない。
【００３９】
コンピュータ・システム／サーバ１２は、コンピュータ・システムによって実行されているプログラム・モジュールなどの、コンピュータ・システムによって実行可能な命令の一般的なコンテキストで説明することができる。通常、プログラム・モジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含む。コンピュータ・システム／サーバ１２は、本発明の一部の実施形態に従って、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散クラウド・コンピューティング環境内で実行される。分散クラウド・コンピューティング環境において、プログラム・モジュールは、ローカルおよびリモートの両方のコンピュータ・システムの、メモリ・ストレージ・デバイスを含む記憶媒体に配置できる。
【００４０】
図１に示すように、クラウド・コンピューティング・ノード１０内のコンピュータ・システム／サーバ１２は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム／サーバ１２のコンポーネントは、１つまたは複数のプロセッサまたはプロセッシング・ユニット１６、システム・メモリ２８、およびシステム・メモリ２８を含むさまざまなシステム・コンポーネントをプロセッサ１６に結合するバス１８を含むが、これらに限定されない。
【００４１】
バス１８は、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィックス・ポート、および任意のさまざまなバス・アーキテクチャを使用するプロセッサまたはローカル・バスを含む、１つまたは複数の任意の種類のバス構造を表す。例として、そのようなアーキテクチャは、ＩＳＡ（Industry Standard Architecture）バス、MCA（Micro Channel Architecture）バス、ＥＩＳＡ（EnhancedISA）バス、ＶＥＳＡ（Video Electronics Standards Association）ローカル・バス、ＰＣＩ（Peripheral Component Interconnect）バスを含むが、これらに限定されない。
【００４２】
コンピュータ・システム／サーバ１２は、通常、さまざまなコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム／サーバ１２によってアクセスできる任意の使用可能な媒体にすることができ、揮発性および不揮発性媒体、取り外し可能および取り外し不可の媒体の両方を含む。
【００４３】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ）３０またはキャッシュ・メモリ３２あるいはその両方などの、揮発性メモリの形態のコンピュータ・システム可読媒体を含む。コンピュータ・システム／サーバ１２は、一部の実施形態において、その他の取り外し可能／取り外し不可、揮発性／不揮発性のコンピュータ・システム記憶媒体をさらに含む。例として、取り外し不可、不揮発性の磁気媒体（図示されておらず、通常は「ハード・ドライブ」と呼ばれる）に対する読み取りと書き込みを行うために、ストレージ・システム３４が提供される。さらに例として、図示されていないが、取り外し可能、不揮発性の磁気ディスク（例えば、「フロッピー（Ｒ）・ディスク」）に対する読み取りと書き込みを行うための磁気ディスク・ドライブ、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、またはその他の光媒体などの取り外し可能、不揮発性の光ディスクに対する読み取りと書き込みを行うための光ディスク・ドライブが提供される。そのような例では、それぞれを、１つまたは複数のデータ媒体インターフェイスによってバス１８に接続することができる。下でさらに示され、説明されるように、メモリ２８は、一部の実施形態において、本発明の実施形態の機能を実行するように構成されるプログラム・モジュールの（例えば、少なくとも１つの）セットを備える少なくとも１つのプログラム製品を含む。
【００４４】
プログラム・モジュール４２の（少なくとも１つの）セットを含んでいるプログラム／ユーティリティ４０は、以下のものに限定されないが、オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データとともに、例えば、メモリ２８に記憶される。オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データまたはこれらの組合せは、それぞれネットワーク環境の実装を含むことができる。プログラム・モジュール４２は、通常、本明細書に記載された本発明の実施形態の機能または方法あるいはその両方を実行する。
【００４５】
また、コンピュータ・システム／サーバ１２は、本発明の一部の実施形態に従って、キーボード、ポインティング・デバイス、ディスプレイ２４などの１つまたは複数の外部デバイス１４、ユーザがコンピュータ・システム／サーバ１２と情報をやりとりできるようにする１つまたは複数のデバイス、またはコンピュータ・システム／サーバ１２が１つまたは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイス（例えば、ネットワーク・カード、モデムなど）、あるいはその組合せと通信する。そのような通信は、一部の実施形態において、入力／出力（Ｉ／Ｏ：Input/Output）インターフェイス２２を介して発生する。さらに、コンピュータ・システム／サーバ１２は、一部の実施形態において、ローカル・エリア・ネットワーク（ＬＡＮ：Local Area Network）、一般的な広域ネットワーク（ＷＡＮ：WideArea Network）、またはパブリック・ネットワーク（例えば、インターネット）あるいはその組合せなどの１つまたは複数のネットワークと、ネットワーク・アダプタ２０を介して通信する。図示されているように、ネットワーク・アダプタ２０は、バス１８を介してコンピュータ・システム／サーバ１２の他のコンポーネントと通信する。図示されていないが、その他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方を、コンピュータ・システム／サーバ１２と併用できると理解されるべきである。その例は、マイクロコード、デバイス・ドライバ、冗長プロセッシング・ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどを含むが、これらに限定されない。
【００４６】
ここで図２を参照すると、例示のクラウド・コンピューティング環境５０が示されている。図示されているように、クラウド・コンピューティング環境５０は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス（例えば、ＰＤＡ（Personal Digital Assistant）または携帯電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃ、または自動車コンピュータ・システム５４Ｎ、あるいはその組合せ）が通信できる１つまたは複数のクラウド・コンピューティング・ノード１０を備える。ノード１０は、互いに通信することができる。ノード１０は、前述したプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはそれらの組合せなど、１つまたは複数のネットワーク内で物理的または仮想的にグループ化される（図示せず）。これによって、クラウド・コンピューティング環境５０は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないサービスとしてインフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはその組合せを提供できる。図２に示されたコンピューティング・デバイス５４Ａ〜Nの種類は、例示のみが意図されており、コンピューティング・ノード１０およびクラウド・コンピューティング環境５０は、任意の種類のネットワークまたはネットワーク・アドレス指定可能な接続（例えば、Ｗｅｂブラウザを使用した接続）あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信すると理解される。
【００４７】
ここで図３を参照すると、クラウド・コンピューティング環境５０（図２）によって提供される機能的抽象レイヤのセットが示されている。図３に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
【００４８】
ハードウェアおよびソフトウェア・レイヤ６０は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は、メインフレーム（一例を挙げると、ＩＢＭ（Ｒ）  ｚＳｅｒｉｅｓ（Ｒ）システム）、ＲＩＳC（Reduced Instruction Set Computer）アーキテクチャ・ベース・サーバ（一例を挙げると、ＩＢＭ  ｐＳｅｒｉｅｓ（Ｒ）システム）、ＩＢＭ  ｘＳｅｒｉｅｓ（Ｒ）システム、ＩＢＭ  ＢｌａｄｅＣｅｎｔｅｒ（Ｒ）システム、ストレージ・デバイス６０ａ、ネットワークおよびネットワーク・コンポーネントを含む。ソフトウェア・コンポーネントの例は、ネットワーク・アプリケーション・サーバ・ソフトウェア（一例を挙げると、ＩＢＭ  ＷｅｂＳｐｈｅｒｅ（Ｒ）アプリケーション・サーバ・ソフトウェア）、およびデータベース・ソフトウェア（一例を挙げると、ＩＢＭ  ＤＢ２（Ｒ）データベース・ソフトウェア）を含む。（ＩＢＭ、ｚＳｅｒｉｅｓ、ｐＳｅｒｉｅｓ、ｘＳｅｒｉｅｓ、ＢｌａｄｅＣｅｎｔｅｒ、ＷｅｂＳｐｈｅｒｅ、およびＤＢ２は、世界中の多くの管轄区域で登録されているＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎの商標である。）
【００４９】
仮想化レイヤ６２は抽象レイヤを提供し、この抽象レイヤから、例えば次のような仮想実体が提供される。仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーションおよびオペレーティング・システム、ならびに仮想クライアント
【００５０】
一例を挙げると、管理レイヤ６４は、以下で説明する機能を提供する。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよびその他のリソースの動的調達を行う。計測および価格設定は、クラウド・コンピューティング環境内でリソースが利用された際のコスト追跡、およびそれらのリソースの利用に対する請求書の作成と送付を行う。一例を挙げると、それらのリソースは、アプリケーション・ソフトウェア・ライセンスを含む。セキュリティ（図示せず）は、クラウドの利用者およびタスクの同一性検証を行うとともに、データおよびその他のリソースの保護を行う。ユーザ・ポータルは、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割り当てと管理を行う。サービス水準合意（ＳＬＡ：Service Level Agreement）計画および実行は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、ＳＬＡに従って行う。
【００５１】
ワークロード・レイヤ６６は、クラウド・コンピューティング環境で利用される機能の例を示している。このレイヤから提供されるワークロードおよび機能の例は、マッピングおよびナビゲーション、ソフトウェア開発およびライフサイクル管理、仮想クラスルーム教育の配信、データ分析処理、トランザクション処理、および、この「発明を実施するための形態」セクションの以下のサブセクションで詳細に説明されるように、本発明に従う機能（機能ブロック６６ａを参照）を含む。
【００５２】
本明細書に記載されたプログラムは、アプリケーションに基づいて識別され、本発明の特定の実施形態において、そのアプリケーション関してプログラムが実装される。ただし、本明細書における特定のプログラムの名前は単に便宜上使用されていると理解されるべきであり、したがって、本発明は、そのような名前によって識別された、または暗示された、あるいはその両方によって示された特定のアプリケーションのみで使用するように限定されるべきではない。
【００５３】
本発明のさまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された実施形態に限定されない。本発明の範囲および思想を逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかである。本明細書で使用された用語は、実施形態の原理、実際のアプリケーション、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするため選択されている。
【００５４】
図４は、本発明に従う方法を表すフローチャート４００を示している。図５は、フローチャート４００の方法の各ステップの少なくとも一部を実行するためのプログラム５００を示している。以降では、図４（方法のステップのブロックに関する）および図５（ソフトウェア・ブロックに関する）を詳細に参照して、この方法および関連するソフトウェアについて説明する。図５に示されているように、プログラム５００が記憶される物理的位置の一例は、ストレージ・ブロック６０ａ内である（図３を参照）。
【００５５】
処理はステップＳ４０２から開始され、ステップＳ４０２では、リソース・モジュール（「ｍｏｄ」）５０２がリソースを、ソフトウェアによって定義された環境内で処理されるワークロードのセキュリティ・コンテナに割り当てる。セキュリティ・コンテナは、自己記述コンテナである。自己記述コンテナの特徴については、この「発明を実施するための形態」の「その他のコメント」サブセクションまたは「実施形態」サブセクションあるいはその両方において、下で詳細に説明されている。セキュリティ・コンテナは、複数のサブコンテナで構成されており、各サブコンテナは、ワークロード、環境、またはインフラストラクチャ、あるいはこれらの組合せの分割可能な部分を表している。この説明を要約すると、セキュリティ・コンテナの例は、指定されたワークロードを完了するために選択されたさまざまなリソースを識別することによって、きめの細かいエンド・ツー・エンドのセキュリティを提供する。これらのリソースは、本明細書ではセキュリティ・コンテナ「内」に存在する「コンテンツ」と呼ばれる。リソースは、（ｉ）計算抽象化、（ｉｉ）ストレージ抽象化、（ｉｉｉ）ネットワーク抽象化、または（ｉｖ）ユーザ、あるいはこれらの組合せを含む。このようにして、エンド・ツー・エンドのランタイム環境の全体が、ソフトウェアによって定義されたセキュリティ・コンテナによって捉えられる。この例では、ランタイム環境ごとにセキュリティ・コンテナが確立され、ランタイム環境は、特定のワークロードに対応する抽象化されたインフラストラクチャおよびユーザを含む。
【００５６】
処理はステップＳ４０４に進み、ステップＳ４０４では、セキュリティ基準ｍｏｄ５０４が指定されたワークロードのセキュリティ基準を決定する。各セキュリティ・コンテナは、セキュリティ基準のセットに関連付けられる。例えば、ポリシーの仕様、監視、および実施は、指定されたワークロードおよび対応するセキュリティ・コンテナに従って決定される。本発明の一部の実施形態では、サービス水準合意がセキュリティ基準において考慮される。セキュリティ基準の詳細な説明は、（ｉ）コンテナ固有のポリシーの仕様、（ｉｉ）多面的な完全性の監視、および（ｉｉｉ）きめの細かい分離管理に関して、下で説明される。
【００５７】
処理はステップＳ４０６に進み、ステップＳ４０６では、モニタｍｏｄ５０６が、セキュリティ・イベントについて、セキュリティ・コンテナに割り当てられたリソースおよびワークロードを監視する。セキュリティ・イベントは、観察対象の挙動からの逸脱として事前に決定される、または認識される、あるいはその両方が行われる。セキュリティ・インテリジェンスは、（ｉ）深部探索（deep introspection）、（ｉｉ）条件に基づく監視、（ｉｉｉ）指定されたユーザに関する挙動モデル、（ｉｖ）指定されたプロセスに関する挙動モデル、（ｖ）指定されたワークロードに関する挙動モデル、または（ｖｉ）指定されたインフラストラクチャに関する挙動モデル、あるいはこれらの組合せを含むが、これらに限定されない、さまざまな手法に基づく。このステップでは、セキュリティ・イベントの監視は、識別されたセキュリティ・イベントの追跡またはレポートあるいはその両方を含む。次のステップで説明されるように、各セキュリティ・イベントは、独自の応答アクションを引き起こすことができる。この例では、セキュリティ・イベントは、（ｉ）信頼性、（ｉｉ）可用性、（ｉｉｉ）有用性、（ｉｖ）回復力、または（ｖ）脆弱性、あるいはこれらの組合せに関連付けられる。
【００５８】
処理はステップＳ４０８で終了し、ステップＳ４０８では、セキュリティ・メカニズムｍｏｄ５０８が、識別されたセキュリティ・イベントに従ってセキュリティ・メカニズムを管理する。セキュリティ・メカニズムは、（ｉ）隔離アクション（例えば、分離）、（ｉｉ）移行アクション（例えば、ワークロードの再生）、または（ｉｉｉ）アクティブな監視アクション、あるいはこれらの組合せを含むが、これらに限定されない。以下では、セキュリティ・メカニズムについて詳細に説明する。
【００５９】
本発明の一部の実施形態は、現在の技術に対して改善を行うために、次の要因、潜在的な問題、または潜在的領域、あるいはこれらの組合せを認識する。（ｉ）ソフトウェアによって定義された環境（ＳＤＥ）における実質的な仮想化により、マシンまたはネットワークあるいはその両方の同一性が信頼できないこと、（ｉｉ）専用または仮想あるいはその両方の機器（例えば、ファイアウォール、アクセラレータ、ＤＰＩ、ＩＤＳ／ＩＰＳ、ＤＬＰ、負荷平衡装置、およびゲートウェイ）の使用により、情報技術（ＩＴ：information technology）におけるマシンまたはネットワークあるいはその両方の同一性の重要性が低下すること、（ｉｉｉ）ＳＤＥのアジリティにより、プログラム可能な計算リソース、ストレージ・リソース、またはネットワーク・ストレージ、あるいはこれらの組合せの立ち上げが迅速に達成されること、（ｉｖ）ＳＤＥのアジリティにより、プログラム可能な計算リソース、ストレージ・リソース、またはネットワーク・ストレージ、あるいはこれらの組合せの解体が迅速に達成されること、（ｖ）ＳＤＥの迅速な立ち上げおよび解体が、セキュリティ・ポリシーと基盤になるハードウェア環境およびソフトウェア環境との間の長期間の関連性から離れること、（ｖｉ）ＳＤＥ環境が適切に実装され、ユーザ、ワークロード、またはソフトウェアによって定義されたインフラストラクチャ（ＳＤＩ：Software-Defined Infrastructure）、あるいはこれらの組合せを対象にするセキュリティ・ポリシーが迅速に確立されて継続的に進化すること、（ｖｉｉ）ＳＤＥのリソースの異質性の増大、リソースが能力に関して抽象化されること、（ｖｉｉｉ）ＳＤＥのリソースの異質性の増大、リソースが容量に関して抽象化されること、または（ｉｘ）複数の種類のリソースにまたがるリソースの能力の標準化が、リソースのさまざまな非機能的側面における違い（停電に対する脆弱性およびセキュリティ・リスクなど）を隠すことができること、あるいはこれらの組合せ
【００６０】
ＳＤＥセキュリティ・フレームワークの一部の実施形態は、（ｉ）コンテキストを認識したポリシーに基づく分離、および人、プロセス、またはデータあるいはこれらの組合せの完全性の概念を拡大する自己記述的なきめの細かいコンテナに基づくセキュリティ・モデル、（ｉｉ）共通のワークロードおよびリソースの抽象化に対するコンテナ固有のポリシーの仕様、監視、実施、（ｉｉｉ）深部探索、条件に基づく監視、人、プロセス、ワークロード、およびインフラストラクチャの挙動モデルなどの手法に基づくセキュリティ監視インテリジェンス、（ｉｖ）セキュリティを最適化してセキュリティ・メカニズム（例えば、新しい脆弱性の公開に応じた仮想パッチ、ネットワーク・セキュリティの再構成）を動的に挿入および削除するための、コンテキストおよびリスクを認識した積極的なオーケストレーション（自動化）メカニズム、または（ｖ）セキュリティの監視、分析およびオーケストレーションの実行が、同じソフトウェアによって定義された環境内で開発、配置、および運用され、したがって、同じ共通のワークロードおよびリソースの抽象化を活用すること、あるいはこれらの組合せを含む。
【００６１】
本発明の一部の実施形態は、ＳＤＥ内の要素の完全性または機密性あるいはその両方を維持する。本発明のさまざまな実施形態によって維持されるさまざまな種類の完全性が存在し、それらは、（ｉ）最下部から最上部までのインフラストラクチャの完全性、（ｉｉ）インフラストラクチャのアクセスの完全性（送信中のデータなど）、（ｉｉｉ）データ・アクセスの完全性（保存されたデータなど）、（ｉｖ）人の完全性（例えば、連携した同一性管理）、または（ｖ）ワークロードの完全性（静的および動的の両方）、あるいはこれらの組合せを含む。インフラストラクチャの完全性は、ハードウェア、ハイパーバイザ、オペレーティング・システム、またはクラウド管理、あるいはこれらの組合せを含むインフラストラクチャ・スタックが改ざんされないことを保証することを期待する。アクセスの完全性とは、アクセス制御のことであり、例えば、強制アクセス制御（ＭＡＣ）および役割ベース・アクセス制御（ＲＢＡＣ）によって提供される。また、法規制の順守およびデータ暗号化は、アクセス制御の一部である。静的ワークロードの完全性は、物理的分離、仮想的分離、ファイアウォールによる分離、および暗号による分離によって確立されたセキュリティ・グループまたはセキュリティ・ゾーンあるいはその両方に関連する。動的ワークロードの完全性は、例えばミドルボックスの挿入に関連する。
【００６２】
ＳＤＥで利用できるさまざまな種類の機密性も存在し、それらは、（ｉ）ＶＭ分離（例えば、しばしば同じハイパーバイザを共有する異なるアドレス空間によって生じた分離）、（ｉｉ）ネットワーク分離（例えば、異なるＶＬＡＮによって生じた分離）、（ｉｉｉ）物理的分離（例えば、エア・ギャップ（領域および利用可能なゾーンなど）によって生じた分離）、または（ｉｖ）（ｉＴＶＤｃ（integrated trusted virtual data center）に配置されるような）暗号による分離（例えば、異なる暗号鍵によって生じた分離）、あるいはこれらの組合せを含む。
【００６３】
ＳＤＥの保守は、周期的なワークロードの再生を提供することも含む。ワークロードの再生は、攻撃の可能性が特定のレベルに増大したときに、多くの場合は事前に決定された周期的サイクルで発生する。特定のレベルのリスクに応じて、既知の汚染されていないソースからイメージが再構築される。
【００６４】
図６は、セキュリティ・システム６００のさまざまな部分を示す機能ブロック図であり、ソフトウェアによって定義されたセキュリティ・オーケストレーション６０２、モニタ・モジュール（「ｍｏｄ」）６０４、作動／修正ｍｏｄ６０６、ソフトウェアによって定義された環境６０８、セキュリティ・インテリジェンス・プラットフォーム６１０、リソース抽象化６２０、計算リソース（例えば、Ｐｏｗｅｒ  ＶＭ、ｘ８６  ＫＶＭ、ハイ・メモリＢＷノード、シングル・スレッド高性能ノード（high single thread performance nodes）、ハイ・スレッド・カウント・ノード（high thread count nodes）、およびマイクロサーバ・ノード）６２２、計算抽象化６２３、６２４、６２５、６２６、計算コンテナ６２１、ネットワーク・リソース（例えば、ＲＤＭＡ、イーサネット（Ｒ））６２８、ネットワーク抽象化６２９、６３０、６３１、ネットワーク・コンテナ６２７、ストレージ・リソース（例えば、ＳＳＤ、ＨＤＤ、テープ、ファイル、およびブロック・ストレージ）６３２、ストレージ抽象化６３３、６３４、６３５、６３６、およびストレージ・コンテナ６３７を含んでいる。
【００６５】
この例では、計算６２２、ストレージ６３２、およびネットワーク６２８のリソース抽象化６２０は、それぞれ能力と容量の両方を捉えている。また、リソースがどのように相互接続されるかというトポロジーが、抽象化において捉えられる。機能と非機能の両方の側面が含まれるということに注意する必要がある。各側面は、（ｉ）信頼性、（ｉｉ）可用性、（ｉｉｉ）有用性、（ｉｖ）回復力、および（ｖ）脆弱性を含む。さらに、ワークロードの抽象化は、（ｉ）さまざまなワークロード・コンポーネント、（ｉｉ）機能的要件、（ｉｉｉ）非機能的要件、および（ｉｖ）コンテキスト情報の相互依存性を捉える。機能的要件または非機能的要件あるいはその両方は、回復力、セキュリティ、および適合性を含む。
【００６６】
サブコンテナ６２１、６２７、および６３７はそれぞれ、コンテキストを認識するポリシーに従って単一のエンド・ツー・エンド・コンテナ（end-to-end container）（図示せず）を構成する自己記述コンテナである。多くの自己記述コンテナの集合として示されているソフトウェアによって定義された環境６０８内のランタイムは、仮想マシン・コンテナ、ベアメタル・コンテナ、またはハイパーバイザ／ＯＳ固有のコンテナ、あるいはこれらの組合せを含む。この例では、エンド・ツー・エンド・コンテナは、３つのリソース抽象化（計算６２１、ネットワーク６２７、およびストレージ６３７）を含んでいる。このようにして、エンド・ツー・エンド・ランタイム環境の全体が、コンテナによって捉えられる。あるいは、３つのリソースの一部のサブセットが、エンド・ツー・エンド・コンテナにおいて考慮される。
【００６７】
各「ソフトウェアによって定義された」エンド・ツー・エンド・コンテナは、ＳＤＥの残りの部分に対する分離メカニズムを備える。ソフトウェアによって定義された計算サブコンテナ６２１は、例えば、サブコンテナがＶＭである場合は、ハイパーバイザによって分離される。その他のコンテナ構造は、（ｉ）Ｊａｖａ（Ｒ）コンテナ（メモリ空間を分けることによって分離される）、（ｉｉ）ＳＯＡコンテナ、（ｉｉｉ）Ｏｒａｃｌｅ／Ｓｕｎ  Ｓｏｌａｒｉｓコンテナ（Ｓｏｌａｒｉｓ  ＯＳ上のゾーンによって分離される）、（ｉｖ）Ｇｏｏｇｌｅ  ｃｈｒｏｍｅ／ｃｈｒｏｍｉｕｍ環境内のコンテナ、および（ｖ）新たに出現したＤｏｃｋｅｒコンテナを含む。データおよびソフトウェアによって定義された記憶領域内の分離は、パーティショニングおよび暗号化によって実現される。ソフトウェアによって定義されたネットワーク内の分離は、例えばＯｐｅｎＦｌｏｗ環境内の「フロー」の別々の定義によって実現される。（注意：「Ｊａｖａ（Ｒ）」、「Ｏｒａｃｌｅ」、「Ｓｕｎ」、「Ｓｏｌａｒｉｓ」、「Ｇｏｏｇｌｅ」、「ＯｐｅｎＦｌｏｗ」、または「Ｄｏｃｋｅｒ」という用語、あるいはこれらの組合せは、世界中のさまざまな管轄区域において商標権の対象になる可能性があり、本明細書では、そのような商標権が存在する可能性がある限り、それらの商標によって正しく示された製品またはサービスへの参照においてのみ使用される。）
【００６８】
自己記述コンテナは、コンテナ内の「コンテンツ」に関連するメタデータを含む。例えばメタデータは、コンテナ内に何があるか、コンテナが何を実行するか、コンテナに関連するセキュリティ、またはコンテナに関連する適合性ポリシー、あるいはこれらの組合せを説明する。エンド・ツー・エンド・コンテナの自己記述的側面は、コンテナの移植性に役立つ。移植性は、コンテナが時々、一次的停止、再開、または移行、あるいはこれらの組合せの対象になる場合に、重要になる。この例では、メタデータ自体のデータ・モデルは、メタデータがどの場所でも正しく理解または解釈され、あるいはその両方が行われるように、自己記述的になっている。
【００６９】
本発明の一部の実施形態は、（ｉ）共通のオントロジー・レジストリ（ontologyregistry）を共有すること、または（ｉｉ）（ａ）手動の関連付けもしく（ｂ）自動的／自律的学習による実行時のオントロジー間のマッピングを解決すること、あるいはその両方によって、ＳＤＥ内の意味的相互運用性を実現する。
【００７０】
図７は、ソフトウェアによって定義されたセキュリティ・オーケストレーション６０２およびＳＤＥ６０８内のコンテナベースのツールをさらに示す機能ブロック図である。セキュリティ・オーケストレーション６０２は、早期警告および遠距離場検出エンジン（far field detection and early warning engine）７０２、モデリング・モジュール７０４、保証エンジン７０６、およびオーケストレーション・エンジン７０８を含むようにさらに示されている。コンテナベースのツールは、深部探索プローブ７１０ａ、７１０ｂ、７１０ｃ、高速ワークロード移行モジュール７１２ａ、７１２ｂ、７１２ｃ、ならびに分離および隔離モジュール７１４ａ、７１４ｂ、７１４ｃを含んでいる。
【００７１】
図６および７に示されているように、ポリシーの仕様、ポリシーの監視、およびポリシーの実施は、それぞれコンテナベースである。つまり、ワークロード、インフラストラクチャ、および人のセキュリティ・ポリシーおよび適合性ポリシーは、コンテナごとに管理される。この例では、これらのポリシーの実施は次の３つのコンポーネントを含み、これらの各コンポーネントは、ソフトウェアによって定義された環境内のあらゆるコンテナにそれぞれ関連付けられる。（ｉ）コンテナ固有のポリシーの仕様、（ｉｉ）モニタｍｏｄ６０４による多面的な完全性の監視、および（ｉｉｉ）作動／修正ｍｏｄ６０６によるきめの細かい分離管理より具体的には、セキュリティ・ポリシーおよび適合性ポリシー（意味およびオントロジーを含む）は、仕様がソフトウェアによって定義された環境全体で完全に移植可能になるように、自己記述的方法でコンテナごとに指定される。各コンテナの完全性は、ワークロード、インフラストラクチャ、および人という「面」に関して継続的に監視される。深部探索プローブ７１０ａ、７１０ｂ、および７１０ｃとして示されたソフトウェアによって定義された「プローブ」は、ワークロードおよびソフトウェアによって定義されたインフラストラクチャ・コンポーネントの深部探索を実施するために使用される。最後に、分離および隔離モジュール７１４ａ、７１４ｂ、および７１４ｃによるきめの細かい分離管理は、計算リソース、データ／ストレージ・リソース、またはネットワーク・リソース、あるいはこれらの組合せを含む、コンテナごとのエンド・ツー・エンドの分離を保証する。
【００７２】
この例では、監視結果からの出力は、下で詳細に説明される、早期警告および遠距離場検出エンジン７０２に供給される。一部の実施形態では、これらの結果は、ポリシーの仕様からの逸脱の可能性を識別するために、ポリシーの仕様と継続的に比較される。保証エンジン７０６の出力は、可能性のある予防策または耐久手段あるいはその両方のための継続的かつ積極的なオーケストレーションを提供する。
【００７３】
一部の実施形態では、早期警告および遠距離場検出メカニズムは、（ｉ）ワークロード、（ｉｉ）アプリケーション、（ｉｉｉ）インフラストラクチャ、または（ｉｖ）人、あるいはこれらの組合せのモデルを含む挙動モデルを使用して一緒に結合するデータ（stitching together data）に基づく。ワークロードの挙動は、次の指標のうちの１つまたは複数によって捉えられる。（ｉ）インフラストラクチャの時空間占有範囲(spatio-temporal footprints)、（ｉｉ）リソース使用量の（時系列としての）時間的進行、（ｉｉｉ）特定のワークロード内のさまざまなコンポーネントのアクティブ化、および（ｉｖ）さまざまなサービスの起動ワークロードの挙動モデルは、（ｉ）アプリケーションのトポロジー、（ｉｉ）データ・ソースへの接続性、または（ｉｉｉ）データ・シンクへの接続性、あるいはこれらの組合せを含む、ＳＤＥのコンテキストの側面の上に構築される。
【００７４】
インフラストラクチャの挙動は、ソフトウェアによって定義されたシステムによって生じるイベントによって捉えられる。挙動モデルは、（ｉ）有限状態マシン、（ｉｉ）ペトリネット、および（ｉｉｉ）その他の種類の表現を含む、さまざまな決定論的モデルまたは確率的モデルのうちの１つに基づく。インフラストラクチャの挙動モデルは、（ｉ）物理的トポロジー、または（ｉｉ）物理的インフラストラクチャへのソフトウェアによって定義されたインフラストラクチャのマッピング、あるいはその両方を含む、ＳＤＥのコンテキストの側面の上に構築される。
【００７５】
人（例えば、ユーザ、システム管理者、およびサイバー防御者（cyberdefender））の挙動は、（ｉ）組織構造、（ｉｉ）ソーシャル・ネットワーク（組織内または組織外、あるいはその両方）、（ｉｉｉ）個人の役割、および（ｉｖ）個人の責任などの、挙動のコンテキストの側面を含む。人の挙動モデルは、多くの場合、確率的関数（probabilistic function）になる。この例では、侵入の挙動モデルは、侵入が検出された後に、特定の環境内の侵入の今後の動向の予測を容易にするように構築される。
【００７６】
本発明の一部の実施形態は、次の目的で挙動モデルを使用する。（ｉ）データの統合と連携、（ｉｉ）予測分析および条件に基づく監視、または（ｉｉｉ）仮定分析、あるいはこれらの組合せ挙動モデルの用途は、（ｉ）複数のチャネルの生のイベント・データ（およびその他のデータ）を一緒に結合すること、（ｉｉ）ノイズ、欠落データ、またはその他のデータの不確実性の問題に対処すること、および（ｉｉｉ）特定のワークロード、インフラストラクチャ、または人、あるいはこれらの組合せの将来の挙動が予測され、対応する実際のイベントと比較される、「条件に基づく監視」の一般的領域に関連する予測分析を含む。これによって、単純なしきい値またはその他のより影響を受けやすい従来手法を使用するよりも非常に早い段階での早期警告を提供する。仮定分析は、制御可能な変数のサブセットに対してアサートされた値を条件にして将来の経路を予測することによって、可能になる。仮定分析を適用することによって、最も良い推定結果につながる制御アクションが、先に進むために選択される。
【００７７】
本発明の一部の実施形態は、リスクの高い挙動または実際の悪意のある挙動のいずれかがワークロード、インフラストラクチャ、または人、あるいはこれらの組合せにおいて観察されたと決定された場合に、積極的なオーケストレーションを起動する。オーケストレーション・エンジン７０８（図７）による積極的なオーケストレーションは、（ｉ）隔離アクション、（ｉｉ）移行アクション、または（ｉｉｉ）アクティブな監視アクション、あるいはこれらの組合せを起動する。
【００７８】
ＳＤＥは、さまざまなメカニズムを使用して複数の粒度で個々の環境を分離（または隔離）する機能を提供する。インフラストラクチャおよびワークロードに適用する隔離メカニズムは、（ｉ）スタックのさまざまなレイヤでエンド・ツー・エンド・コンテナによって提供される分離メカニズム、（ｉｉ）ソフトウェアによって定義されたネットワークによって提供される分離メカニズム、および（ｉｉｉ）ソフトウェアによって定義されたストレージによって提供される分離メカニズムを含む。これらの分離メカニズムは、ポリシー、重複しないメモリ／ストレージ・アドレス空間（および共有メモリ空間のコピー・オン・ライト）による分離、および個々のドメイン内で異なる暗号鍵を強制することによる分離を含む。人に適用する分離メカニズムは、強制アクセス制御、役割ベース・アクセス制御、またはさまざまな種類のコンテンツ・リソースに対する権限管理メカニズム、あるいはこれらの組合せを含む。
【００７９】
ワークロードを実行するための現在の環境が何らかの理由で脆弱になったと決定された場合、一部の実施形態では、ワークロードが移行される。しばしば移行は、入力／出力環境の残りの部分に対する妨害を最小限に抑えた上で、新しい物理的位置でのアプリケーション環境の再生（再構築）を必要とする。最後に、ＳＤＥは、（環境の残りの部分からのハニーポットの非常に良好な分離を提供するので）インフラストラクチャ内のハニーポットの設定を提供する。本発明の一部の実施形態は、外部および内部の両方からの侵入を誘って捕らえるようにハニーポットを動的に設定し、侵入の挙動の観察を改善する。
【００８０】
セキュリティ・ポリシーおよびサービス水準合意（ＳＬＡ）がソフトウェアによって定義されたインフラストラクチャおよび使用可能な統合された制御プレーンによって推進される使用事例を以下に示す。引き続き図７を参照すると、ワークロードに対応するセキュリティ・ポリシーおよびＳＬＡは、早期警告および遠距離場検出エンジン７０２によって管理される。この例では、検出および警告エンジンが、（ｉ）通知、（ｉｉ）ＳＤＥセキュリティ分析、（ｉｉｉ）ワークロード・セキュリティ・プロファイル監視（workload security profile monitoring）、および（ｉｖ）修正を含むタスクを処理する。検出および警告エンジンは保証エンジン７０６と通信し、ワークロード定義に従って、配置時間セキュリティ（deployment-time security）が提供される。さらに、オーケストレーション・エンジン７０８が、ランタイム・セキュリティ構成のために、保証エンジンならびに検出および警告エンジンから入力を受信する。ワークロードのセキュリティ・ポリシーおよびＳＬＡは、例えば（ｉ）重要ファイルの完全性の監視、（ｉｉ）重要ファイルのパッチ、（ｉｉｉ）コンピュータ・リソースの配置、（ｉｖ）コンピュータ・リソースの証明書、（ｖ）管理されたスキャン、（ｖｉ）接続性、（ｖｉｉ）分離、（ｖｉｉｉ）負荷平衡、（ｉｘ）ファイル・レベルの機密性、および（ｘ）オブジェクト・レベルの機密性を含む。
【００８１】
ソフトウェアによって定義されたインフラストラクチャに対応するセキュリティ・ポリシーおよびＳＬＡは、モニタ・モジュール６０４および作動／修正モジュール６０６によって処理され、計算リソース抽象化、ストレージ・リソース抽象化、およびネットワーク・リソース抽象化は、ダッシュボードから管理されるか、物理的ハードウェアのアプリケーション・プログラム・インターフェイス（ＡＰＩ：application programming interface）を介して管理される。インフラストラクチャのセキュリティ・ポリシーおよびＳＬＡは、例えば（ｉ）ホストの完全性、（ｉｉ）セキュアな信頼性の高いブート、（ｉｉｉ）ハードウェア・セキュリティ・モジュール（ＨＳＭ：hardware security module）の可用性、（ｉｖ）ネットワークの可用性、（ｖ）ネットワークの機密性、（ｖｉ）ネットワーク・ロケーション、（ｖｉｉ）ストレージの機密性、（ｖｉｉｉ）ストレージ・アクセス制御、（ｉｘ）ストレージの暗号化、（ｘ）セキュアなストレージ削除、（ｘｉ）セキュアなストレージ消去、（ｘｉｉ）ストレージの物理的破壊、（ｘｉｉｉ）制御プレーンの完全性、および（ｘｉｖ）マルチテナント機能を含む。
【００８２】
動作中に、例えば、異常なトラフィックおよびアクションが検出された場合、ソフトウェアによって定義されたネットワークを使用して次のように修正される。ワークロードを定義し、インフラストラクチャ要件を識別した場合、監視活動中にＵＲＬ（uniform resource locator）ブラックリストが参照される。悪意のあるＵＲＬへのネットワーク・アクセスの検出時に、作動／修正モジュール６０６が動作してネットワークを再構成し、それと同時に、影響を受ける仮想マシンからのトラフィックが条件付きでブロックされる。
【００８３】
その他の使用事例および応答の例を次に示す。重要ファイル（例えば、Ｗｅｂサーバ）の完全性の違反が発生した場合、その違反が検出され、その後、警告またはブロックあるいはその両方が行われる。複数のサーバまたはワークロードあるいはその両方にまたがる重要ファイルの完全性の違反が発生した場合、その違反が検出され、その後、警告またはブロックあるいはその両方が行われる。複雑なワークロードの異常な（プロファイルの範囲外の）通信パターンの検出によって、挙動モデルで表された「望ましい状態」からの逸脱が得られる。複数のデータセンタにまたがるワークロードの配置によって、信頼仮定（trust assumptions）および対応する要件を表すリソース・モデルが得られる。最後に、本発明の一部の実施形態は、データ削除シナリオの構成可能な強度（configurable strength）を提供する。
【００８４】
本発明の一部の実施形態は、次の機能、特徴、または長所、あるいはこれらの組合せのうちの１つまたは複数を含む。（ｉ）インフラストラクチャ全体（計算、ストレージ、およびネットワーク）がプログラム可能である、ソフトウェアによって定義された環境（ＳＤＥ）内のアプリケーション、データ、またはインフラストラクチャ、あるいはこれらの組合せのセキュリティを保証すること、（ｉｉ）ストレージまたはネットワークあるいはその両方の制御プレーンがデータ・プレーンから分離されているＳＤＥ内のアプリケーション、データ、またはインフラストラクチャ、あるいはこれらの組合せのセキュリティを保証すること、（ｉｉｉ）イベントの来歴（例えば、誰が何をいつ誰に対してどのようなコンテキストにおいて行ったか）を捉えるためのオーバヘッドの少ないアプローチを提供すること、または（ｉｖ）急速に変化する仮想トポロジー内の疑わしいイベントを識別するためのオーバヘッドの少ないアプローチを提供すること、あるいはこれらの組合せ
【００８５】
本発明は、「本発明」という用語によって表された主題が、出願されたときの請求項によってカバーされる、または特許審査の後に最終的に発行される可能性のある請求項によってカバーされるということを、絶対的に示すものであると受け取られるべきではない。「本発明」という用語は、新規である可能性があると考えられている本明細書における開示に関する一般的な印象を読者が得るのを助けるために使用されるが、「本発明」という用語によって示されているような、この理解は、関連する情報が作成されるため、および請求項が修正される可能性があるため、一時的かつ暫定的であり、特許審査の過程で変更される場合がある。
【００８６】
実施形態は、上の「本発明」の定義を参照する。同様の注意が「実施形態」という用語に適用される。
【００８７】
「および／または（ａｎｄ／ｏｒ）」は、包含的ＯＲである。例えば、Ａ、Ｂ、「および／または」Ｃは、ＡまたはＢまたはＣのうちの少なくとも１つが真であり、適用可能であることを意味している。
【００８８】
ユーザ／加入者は、（ｉ）１人の人間、（ｉｉ）ユーザまたは加入者として機能するための十分な知性を持つ人工知能の実体、または（ｉｉｉ）関連するユーザまたは加入者のグループ、あるいはこれらの組合せを含むが、必ずしもこれらに限定されない。
【００８９】
受信／提供／送信／入力／出力：特に明示的に規定されない限り、これらの単語は、（ｉ）それらの物体および対象の間の関係に関する直接性の特定の程度、または（ｉｉ）それらの物体および対象の間に挿入された中間的なコンポーネント、アクション、もしくは物、またはこれらの組合せの不在、あるいはその両方を意味していると受け取られるべきではない。
【００９０】
モジュール／サブモジュールは、ハードウェア、ファームウェア、またはソフトウェア、あるいはこれらの組合せの任意のセットであり、モジュールが次のいずれの状態であるかにかかわらず、何らかの種類の機能を実行するように動作する。（ｉ）１つにまとまって局所的に近接している、（ｉｉ）広い領域にわたって分散している、（ｉｉｉ）大きい一群のソフトウェア・コード内で１つにまとまって近接している、（ｉｖ）一群のソフトウェア・コード内に存在する、（ｖ）１つのストレージ・デバイス、メモリ、または媒体内に存在する、（ｖｉ）機械的に接続されている、（ｖｉｉ）電気的に接続されている、または（ｖｉｉｉ）データ通信において接続されている、あるいはこれらの組合せの状態にある。
【００９１】
コンピュータは、大きいデータ処理能力またはマシン可読命令読み出し能力あるいはその両方を備えるデバイスであり、デスクトップ・コンピュータ、メインフレーム・コンピュータ、ラップトップ・コンピュータ、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ）ベース・デバイス、スマートフォン、ＰＤＡ（Personal Digital Assistant）、人体に装着または挿入されるコンピュータ、組み込みデバイス型コンピュータ、特定用途向け集積回路（ＡＳＩＣ：application-specific integrated circuit）ベース・デバイスを含むが、これらに限定されない。
【図１】
0006730997.tif 000002
【図２】
0006730997.tif 000003
【図３】
0006730997.tif 000004
【図４】
0006730997.tif 000005
【図５】
0006730997.tif 000006
【図６】
0006730997.tif 000007
【図７】
0006730997.tif 000008