(57)【特許請求の範囲】
【請求項１】
セキュリティが強化されたコンピューティングシステムであって、
前記コンピューティングシステム上のコンテナ化されたアプリケーションを起動する要求を受信する入力デバイスと、
セキュリティ装置であって、
前記コンピューティングシステムにおいて、ハードウェアベースのトラストチェーンを確立するトラストイニシャライザと、
前記トラストイニシャライザに通信可能に接続されているブートコントローラであって、前記ハードウェアベースのトラストチェーンを、前記コンピューティングシステム上のコンテナマネージャ及び前記コンテナ化されたアプリケーションへと拡張するブートコントローラと、
前記ブートコントローラに通信可能に接続されている起動コントローラであって、前記コンテナマネージャを介して、前記コンピューティングシステム上で、信頼できるセキュアなモードで、前記コンテナ化されたアプリケーションを起動する起動コントローラと、
前記コンテナマネージャ、前記コンテナ化されたアプリケーションに関連付けられている１以上のパッケージ、及びルートオブトラスト計測エージェントのブート前計測を行う計測コンポーネントと、
前記コンテナ化されたアプリケーションが起動されるのに先立って、前記ブート前計測を検証するトラストエージェントと、
を有するセキュリティ装置と、
前記コンテナ化されたアプリケーションに関連付けられているデータを視覚的に提示するディスプレイと、
を備えたコンピューティングシステム。
【請求項２】
前記計測コンポーネントは、前記ルートオブトラスト計測エージェントを介して、前記コンテナ化されたアプリケーションの起動時計測を行い、前記トラストエージェントは、前記コンテナ化されたアプリケーションが起動されるのに先立って、前記起動時計測を検証する、請求項１記載のコンピューティングシステム。
【請求項３】
前記セキュリティ装置は、
前記コンテナ化されたアプリケーションに関連付けられている起動時セキュリティポリシーを施行するポリシーエージェント
をさらに有する、請求項１記載のコンピューティングシステム。
【請求項４】
前記ポリシーエージェントは、
前記コンテナ化されたアプリケーションの起動時能力を制限すること、
前記コンテナ化されたアプリケーションに関連付けられているセキュリティ機能をアクティブ化すること、
前記コンテナ化されたアプリケーションを非ルート状態に置くこと、及び
前記コンテナ化されたアプリケーションに対する書き込みアクセスを制限すること
のうちの１以上を行う、請求項３記載のコンピューティングシステム。
【請求項５】
前記コンテナ化されたアプリケーションは、複数のレイヤとして構造化され、
前記セキュリティ装置は、
前記複数のレイヤのうちのサブセットのみを表す統合ビューを復号化するユニオンファイルシステム
をさらに有する、請求項１乃至４いずれか一項記載のコンピューティングシステム。
【請求項６】
コンピューティングシステムにおいて、ハードウェアベースのトラストチェーンを確立するトラストイニシャライザと、
前記トラストイニシャライザに通信可能に接続されているブートコントローラであって、前記ハードウェアベースのトラストチェーンを、前記コンピューティングシステム上のコンテナマネージャ及びコンテナ化されたアプリケーションへと拡張するブートコントローラと、
前記ブートコントローラに通信可能に接続されている起動コントローラであって、前記コンテナマネージャを介して、前記コンピューティングシステム上で、信頼できるセキュアなモードで、前記コンテナ化されたアプリケーションを起動する起動コントローラと、
前記コンテナマネージャ、前記コンテナ化されたアプリケーションに関連付けられている１以上のパッケージ、及びルートオブトラスト計測エージェントのブート前計測を行う計測コンポーネントと、
前記コンテナ化されたアプリケーションが起動されるのに先立って、前記ブート前計測を検証するトラストエージェントと、
を有するセキュリティ装置。
【請求項７】
前記計測コンポーネントは、前記ルートオブトラスト計測エージェントを介して、前記コンテナ化されたアプリケーションの起動時計測を行い、前記トラストエージェントは、前記コンテナ化されたアプリケーションが起動されるのに先立って、前記起動時計測を検証する、請求項６記載のセキュリティ装置。
【請求項８】
前記コンテナ化されたアプリケーションに関連付けられている起動時セキュリティポリシーを施行するポリシーエージェント
をさらに有する、請求項６記載のセキュリティ装置。
【請求項９】
前記ポリシーエージェントは、
前記コンテナ化されたアプリケーションの起動時能力を制限すること、
前記コンテナ化されたアプリケーションに関連付けられているセキュリティ機能をアクティブ化すること、
前記コンテナ化されたアプリケーションを非ルート状態に置くこと、及び
前記コンテナ化されたアプリケーションに対する書き込みアクセスを制限すること
のうちの１以上を行う、請求項８記載のセキュリティ装置。
【請求項１０】
前記コンテナ化されたアプリケーションは、複数のレイヤとして構造化され、
前記セキュリティ装置は、
前記複数のレイヤのうちのサブセットのみを表す統合ビューを復号化するユニオンファイルシステム
をさらに有する、請求項６乃至９いずれか一項記載のセキュリティ装置。
【請求項１１】
セキュリティ装置を動作させる方法であって、
コンピューティングシステムにおいて、ハードウェアベースのトラストチェーンを確立するステップと、
前記ハードウェアベースのトラストチェーンを、前記コンピューティングシステム上のコンテナマネージャ及びコンテナ化されたアプリケーションへと拡張する拡張ステップと、
前記コンテナマネージャを介して、前記コンピューティングシステム上で、信頼できるセキュアなモードで、前記コンテナ化されたアプリケーションを起動するステップと、
を含み、
前記拡張ステップは、
前記コンテナマネージャ、前記コンテナ化されたアプリケーションに関連付けられている１以上のパッケージ、及びルートオブトラスト計測エージェントのブート前計測を行うステップと、
前記コンテナ化されたアプリケーションが起動されるのに先立って、前記ブート前計測を検証するステップと、
を含む、方法。
【請求項１２】
前記ルートオブトラスト計測エージェントを介して、前記コンテナ化されたアプリケーションの起動時計測を行うステップと、
前記コンテナ化されたアプリケーションが起動されるのに先立って、前記起動時計測を検証するステップと、
をさらに含む、請求項１１記載の方法。
【請求項１３】
前記コンテナ化されたアプリケーションに関連付けられている起動時セキュリティポリシーを施行する施行ステップ
をさらに含む、請求項１１記載の方法。
【請求項１４】
前記施行ステップは、
前記コンテナ化されたアプリケーションの起動時能力を制限するステップ、
前記コンテナ化されたアプリケーションに関連付けられているセキュリティ機能をアクティブ化するステップ、
前記コンテナ化されたアプリケーションを非ルート状態に置くステップ、及び
前記コンテナ化されたアプリケーションに対する書き込みアクセスを制限するステップ
のうちの１以上を含む、請求項１３記載の方法。
【請求項１５】
前記コンテナ化されたアプリケーションは、複数のレイヤとして構造化され、
前記方法は、
前記複数のレイヤのうちのサブセットのみを表す統合ビューを復号化するステップ
をさらに含む、請求項１１乃至１４いずれか一項記載の方法。
【請求項１６】
コンピューティングシステムにおいて、ハードウェアベースのトラストチェーンを確立するステップと、
前記ハードウェアベースのトラストチェーンを、前記コンピューティングシステム上のコンテナマネージャ及びコンテナ化されたアプリケーションへと拡張するステップと、
前記コンテナマネージャを介して、前記コンピューティングシステム上で、信頼できるセキュアなモードで、前記コンテナ化されたアプリケーションを起動するステップと、
前記コンテナマネージャ、前記コンテナ化されたアプリケーションに関連付けられている１以上のパッケージ、及びルートオブトラスト計測エージェントのブート前計測を行うステップと、
前記コンテナ化されたアプリケーションが起動されるのに先立って、前記ブート前計測を検証するステップと、
をコンピューティングシステムに実行させるコンピュータプログラム。
【請求項１７】
前記コンピュータプログラムは、前記コンピューティングシステムに、
前記ルートオブトラスト計測エージェントを介して、前記コンテナ化されたアプリケーションの起動時計測を行うステップと、
前記コンテナ化されたアプリケーションが起動されるのに先立って、前記起動時計測を検証するステップと、
を実行させる、請求項１６記載のコンピュータプログラム。
【請求項１８】
前記コンピュータプログラムは、前記コンピューティングシステムに、
前記コンテナ化されたアプリケーションに関連付けられている起動時セキュリティポリシーを施行するステップ
を実行させる、請求項１６記載のコンピュータプログラム。
【請求項１９】
前記コンピュータプログラムは、前記コンピューティングシステムに、
前記コンテナ化されたアプリケーションの起動時能力を制限するステップ、
前記コンテナ化されたアプリケーションに関連付けられているセキュリティ機能をアクティブ化するステップ、
前記コンテナ化されたアプリケーションを非ルート状態に置くステップ、及び
前記コンテナ化されたアプリケーションに対する書き込みアクセスを制限するステップ
のうちの１以上を実行させる、請求項１８記載のコンピュータプログラム。
【請求項２０】
前記コンテナ化されたアプリケーションは、複数のレイヤとして構造化され、
前記コンピュータプログラムは、前記コンピューティングシステムに、
前記複数のレイヤのうちのサブセットのみを表す統合ビューを復号化するステップ
を実行させる、請求項１６乃至１９いずれか一項記載のコンピュータプログラム。
【請求項２１】
請求項１１乃至１４いずれか一項記載の方法を実行する手段を有するセキュリティ装置。
【請求項２２】
請求項１６乃至２０いずれか一項記載のコンピュータプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、一般に、アプリケーションコンテナに関する。より詳細には、実施形態は、クラウドデータセンターにおけるアプリケーションコンテナの信頼できるデプロイに関する。
【背景技術】
【０００２】
クラウドデータセンターにおいて、１以上のソフトウェアアプリケーションは、クラウドデータセンター内の仮想マシンに代替／補完を提供するために、当該アプリケーションの全ての依存関係の全てとともに、コンテナ（例えば、ＬＩＮＵＸ（登録商標）コンテナ）にパッケージ化され得る。例えば、最近のコンテナ管理の取り組みは、コンテナ化されたアプリケーションのイメージ（例えば、アプリケーションファイルスナップショット）をプライベートリポジトリ及び／又はパブリックリポジトリに格納し、既存のイメージからコンテナを起動し、新たなコンテナイメージを追加的に作成及び／又は格納する能力をもたらすことができている。しかしながら、これらの開発にもかかわらず、従来のコンテナ管理ソリューションは、攻撃の脆弱性に起因して信頼できない場合がある。したがって、クラウドデータセンターにおけるコンテナセキュリティは、（例えば、暗号化／復号化関連性能ペナルティに起因して）依然としてボトルネックであり得る。
【図面の簡単な説明】
【０００３】
本明細書及び特許請求の範囲を読み、図面を参照することにより、実施形態の様々な利点が、当業者に明らかになるであろう。
【図１】一実施形態に従ったトラストチェーンの一例のブロック図。
【図２】一実施形態に従った信頼できる起動アーキテクチャの一例のブロック図。
【図３Ａ】一実施形態に従った、セキュリティ装置を動作させる方法の一例のフローチャート。
【図３Ｂ】一実施形態に従った、ハードウェアベースのトラストチェーンを、コンテナマネージャ及びコンテナ化されたアプリケーションへと拡張する方法の一例のフローチャート。
【図４】一実施形態に従った信頼できる起動シーケンスの一例のブロック図。
【図５Ａ】一実施形態に従った、クライアント、デーモン、及び仮想ルートオブトラストフォーメジャーメント（ｖＲＴＭ）を動作させる一例のフローチャート。
【図５Ｂ】一実施形態に従った、クライアント、デーモン、及びｖＲＴＭを動作させる一例のフローチャート。
【図６】一実施形態に従ったセキュリティ装置の一例のブロック図。
【図７】一実施形態に従ったプロセッサの一例のブロック図。
【図８】一実施形態に従ったコンピューティングシステムの一例のブロック図。
【発明を実施するための形態】
【０００４】
図１を参照すると、トラストチェーン（chain  of  trust）１０が、例えば、コンテナ化されたアプリケーション１２（例えば、ＬＩＮＵＸ（登録商標）コンテナ）等のコンテナ化されたアプリケーションのセキュアな起動をサポートするコンピューティングシステム（例えば、クラウドデータセンター）について示されている。以下でより詳細に説明するように、コンテナ化されたアプリケーション１２は、一般に、複数のレイヤ１２ａ〜１２ｅとして構造化され得る。ここで、各レイヤは、１以上のアプリケーションファイルを含む。図示される例において、ハードウェアベースのレイヤ１４は、例えば、インテル（登録商標）のトラステッド・エグゼキューション・テクノロジー（ＴＸＴ：Trusted  Execution  Technology）等のセキュリティフレームワークに従ってチップセット製造業者によりデジタル署名されている認証コードモジュール（ＡＣＭ）を含む。コンピューティングシステムがパワーオンすると、ハードウェアは、ＡＣＭの実行に先立って、ＡＣＭの署名及び完全性（integrity）を検証することができる。ハードウェアベースのレイヤ１４におけるＡＣＭは、次いで、ＢＩＯＳ（基本入出力システム）レイヤ１６の完全性を検証することができ、ＢＩＯＳは、次いで、ブートローダ及びオペレーティングシステム（ＯＳ）カーネルレイヤ１８の完全性を検証することができる。
【０００５】
以下でより詳細に説明するように、トラストチェーン１０は、初期ファイルシステムコンポーネント２０（例えば、初期ランダムアクセスメモリ（ＲＡＭ）ディスクファイル／Ｉｎｉｔｒｄ＋＋）及びトラステッドコンテナプラットフォーム（trusted  container  platform）２２へと拡張され得る。図示される初期ファイルシステムコンポーネント２０は、トラステッドコンテナプラットフォーム２２の完全性を計測することができる（且つ、いくつかの場合においては、セキュアハッシュアルゴリズム（ＳＨＡ）２５６ハッシュ等の暗号化ハッシュに基づいて検証することができる）計測エージェントを含む。トラステッドコンテナプラットフォーム２２は、１以上のコンテナＯＳパッケージ（例えば、ネームスペース情報及び／又は制御グループ（ｃグループ）情報）、コンテナマネージャ（例えばＤＯＣＫＥＲデーモン、ＲＯＣＫＥＴデーモン等といった、例えばコンテナ管理デーモン及び／又はコンテナ管理エンジン）、ルートオブトラスト（root  of  trust）計測エージェント（例えば、仮想ルートオブトラストフォーメジャーメント（ｖＲＴＭ：virtual  root  of  trust  for  measurement））等を含み得る。したがって、コンテナ化されたアプリケーション１２の信頼できる起動２４は、攻撃に対する脆弱性についての懸念なく（例えば、クラウドデータセンターにおけるデプロイに関連するセキュリティボトルネックを排除すること等によって）行われ得る。１つのアプローチは、リモートに格納されている良好であるとして既知である計測値（good-known  measurements）に対する現在のシステム計測値の検証を介して、このシステムの信頼性をリモートで検証（及び証明）することを含む。
【０００６】
図２は、コンテナ化されたアプリケーションのイメージ（例えば、「コンテナイメージ」）に関する機密性のレベルを確立するために、（例えば、顧客データセンターにおいて動作する）トラストディレクタ（trust  director）２８が、キー管理サーバ（ＫＭＳ）３０ａ及び様々なその他のサーバ３０ｂを含むプラットフォーム３０（３０ａ、３０ｂ）と通信する、信頼できる起動アーキテクチャ２６を示している。ＫＭＳ３０ａは、コンテナイメージを暗号化及び復号化するために使用されるキーを提供、格納、及び管理することができる。トラストディレクタ２８は、コンテナイメージ、マニフェスト（manifest）（例えば、コンテナイメージにおけるファイルのリスト）、及びトラストポリシーを、ハブ３２（例えば、ＤＯＣＫＥＲハブ）に送信することができる。アプリケーションユーザは、起動要求をオーケストレータ（orchestrator）３４（例えば、クラウドサービスプロバイダ（ＣＳＰ）ポータル）に発することができ、オーケストレータ３４及び／又はハブ３２は、セキュリティスタック３８内のオーケストレータエージェント３６と通信することができる。セキュリティスタック３８はまた、ポリシーエージェント４０、トラストエージェント４２、及びｖＲＴＭ（例えば、ルートオブトラスト計測エージェント）４４を含み得る。
【０００７】
トラストエージェント４２は、トラストディレクタ２８、オーケストレータ３４、及び／又はハブ３２のアイデンティティを検証するために、証明局（attestation  authority）５８と通信することができ、ポリシーエージェント４０は、受信されたトラストポリシー情報を（例えば、１以上のキーを使用して）検証するために、プラットフォーム３０と通信することができる。図示されるｖＲＴＭ４４は、ハードウェア（ＨＷ）、ファームウェア（ＦＷ）、及びＢＩＯＳのレイヤ５２内のトラステッドプラットフォームモジュール（ＴＰＭ）５０を伴う初期ファイルシステムコンポーネント４６（例えば、Ｉｎｉｔｒｄ＋＋）及びトラステッドブート（ＴＢＯＯＴ）レイヤ４８を介するトラストチェーンの一部であるので、信頼できる。ＴＰＭ５０は、スプーフィングを防止するために保護された形で様々な計測値を保持するレジスタ（例えば、プラットフォーム設定レジスタ（ＰＣＲ））を含み得る。したがって、トラストエージェント４２は、１以上のアプリケーションコンテナ５６の信頼できる起動に先立って、ＴＰＭ５０から得られる計測値を使用して、コンテナマネージャ５４及びｖＲＴＭ４４を認証することができる。次いで、信頼できるｖＲＴＭ４４を使用して、コンテナ化されたイメージが起動されるときに、コンテナ化されたイメージを計測、検証、及び証明することができる。
【０００８】
図３Ａは、セキュリティ装置を動作させる方法６０を示している。方法６０は、概して、例えば、すでに説明しているコンテナ化されたアプリケーション１２（図１）及び／又はコンテナ５６等のコンテナを起動するために使用され得る。より詳細には、方法６０は、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、プログラム可能なＲＯＭ（ＰＲＯＭ）、ファームウェア、フラッシュメモリ等といった非一時的なマシン読み取り可能な又はコンピュータ読み取り可能な記憶媒体に記憶される論理命令のセット、例えば、プログラマブルロジックアレイ（ＰＬＡ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、コンプレックスプログラマブルロジックデバイス（ＣＰＬＤ）等の設定可能なロジック、例えば、特定用途向け集積回路（ＡＳＩＣ）、相補型金属酸化膜半導体（ＣＭＯＳ）、若しくはトランジスタ−トランジスタロジック（ＴＴＬ）技術等の回路技術を用いた固定機能ハードウェアロジック、又はこれらの任意の組合せにおける１以上のモジュールとして、実装され得る。
【０００９】
図示される処理ブロック６２は、コンピューティングシステムにおいて、ハードウェアベースのトラストチェーンを確立することを提供する。ブロック６２は、例えば、認証コードモジュール（ＡＣＭ）の署名を検証することを含み得る。ブロック６４において、ハードウェアベースのトラストチェーンは、コンピューティングシステム上のコンテナマネージャ及びコンテナ化されたアプリケーションへと拡張され得る。さらに、図示されるブロック６６は、コンテナ化されたアプリケーションに関連付けられている起動時セキュリティポリシー（launch-time  security  policy）を施行する。ブロック６６は、例えば、コンテナ化されたアプリケーションの起動時能力（capability）を制限すること、セキュリティ機能（Ｓｅｃｕｒｉｔｙ−Ｅｎｈａｎｃｅｄ  ＬＩＮＵＸ（登録商標）（ＳＥＬｉｎｕｘ））をアクティブ化すること、コンテナ化されたアプリケーションを非ルート状態に置くこと（例えば、システムレベル特権を除去すること）、コンテナ化されたアプリケーションに対する書き込みアクセスを制限すること等を含み得る。ブロック６８は、コンテナマネージャを介して、コンピューティングシステム上で、信頼できるセキュアなモードで、コンテナ化されたアプリケーションを起動することができる。信頼できるセキュアなモードは、コンテナ化されたアプリケーションの起動中に信頼性及びセキュリティを強化することにより実現され得る。一例において、コンテナ化されたアプリケーションは、複数のレイヤとして構造化され、ブロック６８は、さらに、複数のレイヤのうちのサブセットのみを表す統合ビュー（unified  view）を復号化することを提供する。
【００１０】
図３Ｂは、ハードウェアベースのトラストチェーンを、コンテナマネージャ及びコンテナ化されたアプリケーションへと拡張する方法７０を示している。すでに説明しているブロック６４（図３Ａ）のために容易に使用され得る方法７０は、ＲＡＭ、ＲＯＭ、ＰＲＯＭ、ファームウェア、フラッシュメモリ等といった非一時的なマシン読み取り可能な又はコンピュータ読み取り可能な記憶媒体に記憶される論理命令のセット、例えば、ＰＬＡ、ＦＰＧＡ、ＣＰＬＤ等の設定可能なロジック、例えば、ＡＳＩＣ、ＣＭＯＳ、若しくはＴＴＬ技術等の回路技術を用いた固定機能ハードウェアロジック、又はこれらの任意の組合せにおける１以上のモジュールとして、実装され得る。
【００１１】
図示される処理ブロック７２は、コンテナマネージャ、コンテナ化されたアプリケーションに関連付けられている１以上のパッケージ（例えば、ネームスペース、ｃグループ）、及びルートオブトラスト計測エージェントのブート前計測（pre-boot  measurement）を行う。ブロック７４は、コンテナ化されたアプリケーションが起動されるのに先立って、ブート前計測を検証することができる。さらに、図示されるブロック７６は、ルートオブトラスト計測エージェントを介して、コンテナ化されたアプリケーションの起動時計測を行うことを提供し、ブロック７８において、コンテナ化されたアプリケーションが起動されるのに先立って、起動時計測が検証され得る。
【００１２】
次に図４に移ると、顧客データセンター８２内のトラストディレクタ８０が、登録要求８４（例えば、イメージ識別子（ＩＤ）、ハッシュ）を証明局８６に送信し、登録応答８８を受信する、信頼できる起動シーケンスが示されている。登録応答８８は、例えば、顧客識別子とともに顧客識別子のデジタル署名されているコピーと、登録要求８４からの情報（例えば、顧客ＩＤ、｛顧客ＩＤ，イメージＩＤ，ハッシュ｝ＡＵＴＨＩＤ）と、を含み得る。図示されるトラストディレクタ８０は、次いで、格納要求９０をハブ９２に送信する。ここで、格納要求９０は、例えば、コンテナイメージ、マニフェスト、及びトラストポリシーを含み得る。
【００１３】
（例えば、任意のソース及び／又は入力デバイスから生じた）起動開始９４が、ポータル９６により検出され得、これが、次いで、証明局８６とのインタラクション１０８をトリガし得る。インタラクション１０８は、証明局８６に、コンピュートノード１００のトラステッドコンピューティングベース（ＴＣＢ）１０２内で動作するトラストエージェント１１２に対してクオート要求（quote  request）１１０を送信させる。ＴＣＢ１０２はまた、デーモン１１６（例えば、コンテナマネージャ）、ｖＲＴＭ１１８（例えば、ルートオブトラスト計測エージェント）、１以上のパッケージ（例えば、ネームスペース、ｃグループ）等のブート前計測を行う計測コンポーネントを有する初期ファイルシステムコンポーネント１０３（例えば、Ｉｎｉｔｒｄ＋＋）を含み得る。トラストエージェント１１２は、ブート前計測を検証し、クオート応答１１４を証明局８６に送信することができる。ここで、クオート応答１１４は、ＴＣＢ１０２内に維持される１以上のクレデンシャル（例えば、ブート前計測値）のデジタル署名されているアサーションを含み得る。
【００１４】
クオート応答１１４を受信すると、証明局８６は、デーモン１１６及びｖＲＴＭ１１８を含むコンテナプラットフォームの信頼性を示すトラストレポートを生成することができる。図示されるポータル９６は、次いで、起動要求９８をコンピュートノード１００に送信し、コンピュートノード１００は、起動要求９８に応じて、取得要求１０４を生成することができる。図示されるハブ９２は、取得要求１０４に基づいて取得応答１０６を生成する。ここで、取得応答１０６は、コンテナイメージ、マニフェスト、及びトラストポリシーを含み得る。一例において、トラストポリシーは、コンテナ化されたアプリケーションイメージに関する高品質な（golden）計測値（例えば、ホワイトリスト）を含む。トラストポリシーはまた、証明局８６により署名され得る。
【００１５】
デーモン１１６は、認可要求１２０をｖＲＴＭ１１８に発行することができ、ｖＲＴＭ１１８は、コンテナ化されたアプリケーション１２２の起動時計測を行うことができる。さらに、トラストエージェント１１２は、コンテナ化されたアプリケーション１２２が起動されるのに先立って、起動時計測を検証することができる。検証が成功した場合、図示されるｖＲＴＭ１１８は、認可１２４をデーモン１１６に送信し、認可１２４は、デーモン１１６が、コンテナ化されたアプリケーション１２２の信頼できる起動を行うことを可能にする。
【００１６】
図５Ａは、コンテナ化されたアプリケーションの信頼できる起動を行うために、クライアント、デーモン（例えば、コンテナマネージャ）、及びｖＲＴＭ（例えば、ルートオブトラスト計測エージェント）を動作させる方法１２６を示している。方法１２６は、ＲＡＭ、ＲＯＭ、ＰＲＯＭ、ファームウェア、フラッシュメモリ等といった非一時的なマシン読み取り可能な又はコンピュータ読み取り可能な記憶媒体に記憶される論理命令のセット、例えば、ＰＬＡ、ＦＰＧＡ、ＣＰＬＤ等の設定可能なロジック、例えば、ＡＳＩＣ、ＣＭＯＳ、若しくはＴＴＬ技術等の回路技術を用いた固定機能ハードウェアロジック、又はこれらの任意の組合せにおける１以上のモジュールとして、実装され得る。
【００１７】
図示されるクライアントブロック１２８は、ユーザコマンドの実行を検出することを提供し、クライアントブロック１３０において、コンテナ起動要求が、ユーザコマンドに応じて、デーモンに送信され得、デーモンブロック１３２において、コンテナ起動要求が受信される。デーモンブロック１３４において、コンテナ化されたアプリケーションのイメージが、コンテナ化されたアプリケーションの全ての依存レイヤ（例えば、子レイヤ）及び／又は親レイヤとともに、リポジトリから取得され得る。この点において、コンテナ化されたアプリケーションは、複数のレイヤとして構造化され得、ここで、１以上のレイヤは、異なるレイヤの１以上のファイルを参照する（例えば、異なるレイヤの１以上のファイルに依存する）ファイルを含み得る。例えば、図１を参照すると、ＡＰＡＣＨＥ（登録商標）パッチｖ２レイヤ１２ｅは、ＡＰＡＣＨＥ（登録商標）パッチｖ１レイヤ１２ｄに対する親レイヤであり得、ＡＰＡＣＨＥ（登録商標）パッチｖ１レイヤ１２ｄは、ベースＡＰＡＣＨＥ（登録商標）レイヤ１２ｃに対する親レイヤであり得る。実際には、ベースＡＰＡＣＨＥ（登録商標）レイヤ１２ｃは、今度は、ＵＢＵＮＴＵ（登録商標）１４．０４レイヤ１２ｂに対する親レイヤであり得、ＵＢＵＮＴＵ（登録商標）１４．０４レイヤ１２ｂは、ベースＵＢＵＮＴＵ（登録商標）レイヤ１２ａに対する親レイヤである、等である。特定のリポジトリが指定されていない場合には、複数のレイヤは、パブリックハブから取得され得る。
【００１８】
図５Ａに戻ると、デーモンブロック１３６は、イメージの完全性を検証するために、ｖＲＴＭを呼び出すことができる。デーモンブロック１３６はまた、依存レイヤ及びダウンロードされたイメージファイルへのディスクパスを渡すことができる。レイヤのうちのサブセット（例えば、依存／子レイヤのみ）を渡すことは、特に、渡されるレイヤが（例えば、ユニオンファイルシステム（union  file  system）を使用して）統合ビューから復号化される場合には、デーモンブロック１３６が、暗号化／復号化の複雑さを低減させること、及び、起動速度を速めることを可能にし得る。
【００１９】
ｖＲＴＭブロック１３８において、デーモンからの要求が受信され得、図示されるｖＲＴＭブロック１４０は、例えば、証明局の公開キーを使用して、トラストポリシーに関連付けられているデジタル署名を検証することにより、トラストポリシーの完全性をチェックする。さらに、図示されるｖＲＴＭブロック１４２は、コンテナイメージ及びコンテナイメージの全ての依存レイヤを計測し、（任意的に、）トラストポリシーに含まれるホワイトリスト／高品質な計測値に対して、これらを検証する。ｖＲＴＭブロック１４４において、トラストレポートが生成されてデーモンに送信され得る。デーモンブロック１４６において、トラストレポートから、トラストステータスが「通過（パス：pass）」であると判定された場合、図示されるデーモンブロック１４８は、コンテナを起動し、クライアントブロック１５２は、起動成功をレポートする。デーモンブロック１４６において、トラストレポートから、トラストステータスが「通過（パス：pass）」ではない（「失敗」である）と判定された場合、クライアントブロック１５０は、起動失敗をレポートし得る。代替的に、ｖＲＴＭは、単に計測を実行して計測値を格納し、プラットフォームの信頼性を証明するために使用されるものと類似するリモート証明機構を介して検証が実行されるようにしてもよい。
【００２０】
図５Ｂは、コンテナ化されたアプリケーションに関連付けられている起動時セキュリティポリシーを施行するために、クライアント、デーモン（例えば、コンテナマネージャ）、及びｖＲＴＭ（例えば、ルートオブトラスト計測エージェント）を動作させる方法１５６を示している。方法１５６は、ＲＡＭ、ＲＯＭ、ＰＲＯＭ、ファームウェア、フラッシュメモリ等といった非一時的なマシン読み取り可能な又はコンピュータ読み取り可能な記憶媒体に記憶される論理命令のセット、例えば、ＰＬＡ、ＦＰＧＡ、ＣＰＬＤ等の設定可能なロジック、例えば、ＡＳＩＣ、ＣＭＯＳ、若しくはＴＴＬ技術等の回路技術を用いた固定機能ハードウェアロジック、又はこれらの任意の組合せにおける１以上のモジュールとして、実装され得る。
【００２１】
図示されるクライアントブロック１５８は、ユーザコマンドの実行を検出することを提供し、クライアントブロック１６０において、コンテナ起動要求が、ユーザコマンドに応じて、デーモンに送信され得、デーモンブロック１６２において、コンテナ起動要求が受信される。デーモンブロック１６４において、コンテナ化されたアプリケーションのイメージが、コンテナ化されたアプリケーションの全ての依存レイヤ（例えば、子レイヤ）及び／又は親レイヤとともに、リポジトリから取得され得る。さらに、デーモンブロック１６６は、イメージの完全性を検証するために、ｖＲＴＭを呼び出すことができる。デーモンブロック１６６はまた、セキュリティポリシーパラメータを渡すことができる。
【００２２】
ｖＲＴＭブロック１６８において、デーモンからの要求が受信され得、図示されるｖＲＴＭブロック１７０は、コンテナの起動時能力及び非ルートステータスをチェックする。さらに、図示されるｖＲＴＭブロック１７２は、セキュリティポリシーに含まれる起動時パラメータの妥当性をチェックする（例えば、起動時パラメータに基づいてコンテナが悪意のあるものである可能性を検出することにより）。ｖＲＴＭブロック１７４において、トラストレポートが生成されてデーモンに送信され得る。デーモンブロック１７６において、トラストレポートから、トラストステータスが「通過」であると判定された場合、図示されるデーモンブロック１７８は、コンテナを起動し、クライアントブロック１８２は、起動成功をレポートする。デーモンブロック１７６において、トラストレポートから、トラストステータスが「通過」ではない（「失敗」である）と判定された場合、クライアントブロック１８０は、起動失敗をレポートし得る。
【００２３】
次に図６に移ると、セキュリティ装置１８２（互いに通信可能に接続されるコンポーネント１８２ａ〜１８２ｇ）が示されている。論理命令、設定可能なロジック、固定機能ロジックハードウェア等又はこれらの任意の組合せを含み得るセキュリティ装置は、概して、すでに説明している方法６０（図３Ａ）、方法７０（図３Ｂ）、方法１２６（図５Ａ）、及び／又は方法１５６（図５Ｂ）の１以上の態様を実施することができる。さらに、セキュリティ装置１８２は、例えば、すでに説明している信頼できる起動アーキテクチャ２６（図２）及び／又はＴＣＢ１０２（図４）等のアーキテクチャにおいて実装され得る。図示される例において、入力デバイス１８４（例えば、ネットワークコントローラ、ユーザインタフェース（ＵＩ）デバイス）は、クラウドデータセンター等のコンピューティングシステム上のコンテナ化されたアプリケーションを起動する要求を受信する。
【００２４】
セキュリティ装置１８２は、コンピューティングシステムにおいて、ハードウェアベースのトラストチェーンを確立するトラストイニシャライザ（initializer）１８２ａを含み得る。ブートコントローラ１８２ｂは、トラストイニシャライザ１８２ａに通信可能に接続され得、ブートコントローラ１８２ｂは、ハードウェアベースのトラストチェーンを、コンピューティングシステム上のコンテナマネージャ及びコンテナ化されたアプリケーションへと拡張するよう構成されている。さらに、セキュリティ装置１８２はまた、ブートコントローラ１８２ｂに通信可能に接続される起動コントローラ１８２ｃを含み得る。起動コントローラ１８２ｃは、コンテナマネージャを介して、コンピューティングシステム上で、コンテナ化されたアプリケーションを起動することができる。ディスプレイ１８６（例えば、有機発光ダイオード（ＯＬＥＤ）、液晶ディスプレイ（ＬＣＤ）、タッチスクリーン）は、コンテナ化されたアプリケーションに関連付けられているデータを視覚的に提示することができる。
【００２５】
図示されるセキュリティ装置１８２はまた、コンテナマネージャ、コンテナ化されたアプリケーションに関連付けられている１以上のパッケージ、及びルートオブトラスト計測エージェントのブート前計測を行う計測コンポーネント１８２ｄを含む。さらに、（例えば、ｖＲＴＭを含む）トラストエージェント１８２ｅは、コンテナ化されたアプリケーションが起動されるのに先立って、ブート前計測を検証することができる。一例において、計測コンポーネント１８２ｄは、ルートオブトラスト計測エージェントを介して、コンテナ化されたアプリケーションの起動時計測を行い、トラストエージェント１８２ｅは、コンテナ化されたアプリケーションが起動されるのに先立って、起動時計測を検証する。
【００２６】
セキュリティ装置１８２はまた、コンテナ化されたアプリケーションに関連付けられている起動時セキュリティポリシーを施行するポリシーエージェント１８２ｆを含み得る。例えば、ポリシーエージェント１８２ｆは、コンテナ化されたアプリケーションの起動時能力を制限すること、コンテナ化されたアプリケーションに関連付けられているセキュリティ機能をアクティブ化すること、コンテナ化されたアプリケーションを非ルート状態に置くこと、コンテナ化されたアプリケーションに対する書き込みアクセスを制限すること等、又は、これらの任意の組合せが可能である。すでに説明しているように、コンテナ化されたアプリケーションは、複数のレイヤとして構造化され得る。そのような場合、セキュリティ装置１８２は、複数のレイヤのうちのサブセットのみを表す統合ビューを復号化するユニオンファイルシステム１８２ｇを含み得る。
【００２７】
図７は、一実施形態に従ったプロセッサコア２００を示している。プロセッサコア２００は、マイクロプロセッサ、組み込みプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ、又はコードを実行する他のデバイス等の任意のタイプのプロセッサのコアであり得る。図７において、１つのプロセッサコア２００だけが示されているが、代替的に、処理要素は、図７に示されるプロセッサコア２００を２以上含んでもよい。プロセッサコア２００は、シングルスレッド型コアであってもよいが、少なくとも１つの実施形態において、プロセッサコア２００は、コア当たり２以上のハードウェアスレッドコンテキスト（すなわち、「論理プロセッサ」）を含み得るマルチスレッド型であってもよい。
【００２８】
図７はまた、プロセッサコア２００に接続されたメモリ２７０も示している。メモリ２７０は、当業者に知られている又は当業者に利用可能な多様なメモリ（メモリ階層の様々なレイヤを含む）のうちの任意のメモリであり得る。メモリ２７０は、プロセッサコア２００により実行される１以上のコード２１３命令を含み得、ここで、コード２１３は、すでに説明している方法６０（図３Ａ）、方法７０（図３Ｂ）、方法１２６（図５Ａ）、及び／又は方法１５６（図５Ｂ）を実装することができる。プロセッサコア２００は、コード２１３により指示される命令のプログラムシーケンスに従う。各命令は、フロントエンド部２１０に入力され、１以上のデコーダ２２０により処理され得る。デコーダは、その出力として、予め定められたフォーマットの固定幅のマイクロオペレーション等のマイクロオペレーションを発生させることができる、あるいは、元のコード命令を反映した他の命令、マイクロ命令、又は制御信号を生成することができる。図示されるフロントエンド部２１０はまた、概してリソースを割り当てて、実行される変換命令に対応するオペレーションを待ち行列に入れるレジスタ改名ロジック２２５及びスケジューリングロジック２３０も含む。
【００２９】
プロセッサコア２００は、実行ユニット２５５−１〜２５５−Ｎのセットを有する実行ロジック２５０を含むものとして図示されている。いくつかの実施形態は、特定の機能又は機能セットに専用の複数の実行ユニットを含み得る。他の実施形態は、特定の機能を実行することができる１つの実行ユニットのみ又は１つの実行ユニットを含み得る。図示される実行ロジック２５０は、コード命令により指定されるオペレーションを実行する。
【００３０】
コード命令により指定されるオペレーションの実行の完了後、バックエンドロジック２６０が、コード２１３の命令を回収する（retire）。一実施形態において、プロセッサコア２００は、命令のアウトオブオーダ実行（out  of  order  execution）を可能にするが、命令のインオーダ回収（in  order  retirement）を必要とする。回収ロジック２６５は、当業者に知られている様々な形態（例えば、リオーダバッファ（re-order  buffer）等）を取り得る。このようにして、プロセッサコア２００は、少なくとも、デコーダにより生成される出力、レジスタ改名ロジック２２５により使用されるハードウェアレジスタ及びテーブル、並びに実行ロジック２５０により変更されるレジスタ（図示せず）に関して、コード２１３の実行中に変換される。
【００３１】
図７には示されていないが、処理要素は、プロセッサコア２００を有するチップ上に他の要素を含んでもよい。例えば、処理要素は、プロセッサコア２００とともにメモリ制御ロジックを含んでもよい。処理要素は、Ｉ／Ｏ制御ロジックを含んでもよいし、且つ／又は、メモリ制御ロジックと統合されたＩ／Ｏ制御ロジックを含んでもよい。処理要素はまた、１以上のキャッシュを含んでもよい。
【００３２】
次に図８を参照すると、一実施形態に従ったコンピューティングシステム１０００のブロック図が示されている。図８において、第１の処理要素１０７０及び第２の処理要素１０８０を含むマルチプロセッサシステム１０００が示されている。２つの処理要素１０７０及び１０８０が図示されているが、システム１０００の実施形態は、そのような１つの処理要素だけを含んでもよいことを理解されたい。
【００３３】
システム１０００は、ポイントツーポイントインターコネクトシステムとして図示されており、第１の処理要素１０７０及び第２の処理要素１０８０は、ポイントツーポイントインターコネクト１０５０を介して接続される。図８に示されるインターコネクトのいずれか又は全ては、ポイントツーポイントインターコネクトではなく、マルチドロップバスとして実装されてもよいことを理解されたい。
【００３４】
図８に示されるように、処理要素１０７０及び１０８０の各々は、第１のプロセッサコア及び第２のプロセッサコア（すなわち、プロセッサコア１０７４ａ及び１０７４ｂと、プロセッサコア１０８４ａ及び１０８４ｂ）を含むマルチコアプロセッサであり得る。このようなコア１０７４ａ、１０７４ｂ、１０８４ａ、及び１０８４ｂは、図７に関連して上述したのと同様に命令コードを実行するよう構成され得る。
【００３５】
各処理要素１０７０及び１０８０は、少なくとも１つの共用キャッシュ１８９６ａ、１８９６ｂを含み得る。共用キャッシュ１８９６ａ、１８９６ｂは、コア１０７４ａ、１０７４ｂ、及び、１０８４ａ、１０８４ｂ等の、プロセッサの１以上のコンポーネントによりそれぞれ利用されるデータ（例えば、命令）を記憶することができる。例えば、共用キャッシュ１８９６ａ、１８９６ｂは、プロセッサのコンポーネントによるより高速なアクセスのために、メモリ１０３２、１０３４に記憶されているデータを局所的にキャッシュすることができる。１以上の実施形態において、共用キャッシュ１８９６ａ、１８９６ｂは、レベル２（Ｌ２）、レベル３（Ｌ３）、レベル４（Ｌ４）、若しくは他のレベルのキャッシュ等の１以上の中間レベルキャッシュ、最終レベルキャッシュ（ＬＬＣ）、及び／又はこれらの組合せを含み得る。
【００３６】
２つの処理要素１０７０、１０８０だけが図示されているが、実施形態の範囲は、このように限定されるものではないことを理解されたい。他の実施形態において、１以上の追加の処理要素が、所与のプロセッサにおいて存在してもよい。代替的に、処理要素１０７０、１０８０のうちの１以上は、アクセラレータ又はフィールドプログラマブルゲートアレイ等の、プロセッサ以外の要素であってもよい。例えば、１以上の追加の処理要素は、第１のプロセッサ１０７０と同じ１以上の追加のプロセッサ、第１のプロセッサ１０７と異種又は非対称の１以上の追加のプロセッサ、アクセラレータ（例えば、グラフィックスアクセラレータ又はデジタル信号処理（ＤＳＰ）装置等）、フィールドプログラマブルゲートアレイ、又は任意の他の処理要素を含み得る。アーキテクチャ特性、マイクロアーキテクチャ特性、熱特性、電力消費特性等を含むメリットの種々のメトリックの点で、処理要素１０７０と処理要素１０８０との間には多様な違いが存在し得る。これらの違いは、処理要素１０７０と処理要素１０８０との間の非対称性及び異種性として、それらを実効的に表し得る。少なくとも１つの実施形態に関して、様々な処理要素１０７０、１０８０は、同じダイパッケージに存在してもよい。
【００３７】
第１の処理要素１０７０は、メモリコントローラロジック（ＭＣ）１０７２とポイントツーポイント（Ｐ−Ｐ）インタフェース１０７６及び１０７８とをさらに含み得る。同様に、第２の処理要素１０８０は、ＭＣ１０８２とＰ−Ｐインタフェース１０８６及び１０８８とを含み得る。図８に示されるように、ＭＣ１０７２及び１０８２は、プロセッサを、それぞれのメモリ、すなわち、メモリ１０３２及びメモリ１０３４に接続する。これらのメモリは、それぞれのプロセッサに局所的に取り付けられるメインメモリの一部であり得る。ＭＣ１０７２及び１０８２が、処理要素１０７０及び１０８０に統合されたものとして図示されているが、代替実施形態では、ＭＣロジックは、処理要素１０７０及び１０８０に統合されるのではなく、処理要素１０７０及び１０８０の外部の個別のロジックであってもよい。
【００３８】
第１の処理要素１０７０及び第２の処理要素１０８０は、Ｐ−Ｐインターコネクト１０７６及び１０８６をそれぞれ介してＩ／Ｏサブシステム１０９０に接続され得る。図８に示されるように、Ｉ／Ｏサブシステム１０９０は、Ｐ−Ｐインタフェース１０９４及び１０９８を含む。さらに、Ｉ／Ｏサブシステム１０９０は、インタフェース１０９２を含み、インタフェース１０９２は、Ｉ／Ｏサブシステム１０９０を高性能グラフィックスエンジン１０３８に接続する。一実施形態において、バス１０４９が、グラフィックスエンジン１０３８をＩ／Ｏサブシステム１０９０に接続するために使用され得る。代替的に、ポイントツーポイントインターコネクトが、これらのコンポーネントを接続してもよい。
【００３９】
同様に、Ｉ／Ｏサブシステム１０９０は、インタフェース１０９６を介して第１のバス１０１６に接続され得る。一実施形態において、第１のバス１０１６は、周辺コンポーネントインターコネクト（ＰＣＩ）バス、若しくはＰＣＩエクスプレスバス等のバス、又は別の第３世代Ｉ／Ｏインターコネクトバスであり得るが、実施形態の範囲は、このように限定されるものではない。
【００４０】
図８に示されるように、様々なＩ／Ｏデバイス１０１４（例えば、スピーカ、カメラ、センサ）が、第１のバス１０１６とともに、第１のバス１０１６を第２のバス１０２０に接続し得るバスブリッジ１０１８に接続され得る。一実施形態において、第２のバスは、ローピンカウント（ＬＰＣ）バスであり得る。一実施形態において、例えば、キーボード／マウス１０１２、通信デバイス１０２６、及び、コード１０３０を含み得る、ディスクドライブ又は他の大容量記憶デバイス等のデータ記憶ユニット１０１９を含む様々なデバイスが、第２のバス１０２０に接続され得る。図示されるコード１０３０は、すでに説明している方法６０（図３Ａ）、方法７０（図３Ｂ）、方法１２６（図５Ａ）、及び／又は方法１５６（図５Ｂ）を実装することができる。さらに、オーディオＩ／Ｏ１０２４が、第２のバス１０２０に接続され得、バッテリ１０１０が、コンピューティングシステム１０００に電力を供給し得る。
【００４１】
他の実施形態も意図されていることに留意されたい。例えば、図８のポイントツーポイントアーキテクチャの代わりに、システムは、マルチドロップバス又は別のそのような通信トポロジを実装してもよい。また、図８の要素は、代替的に、図８に示されるより多くの又は少ない集積チップを使用して分割されてもよい。
【００４２】
さらなる留意事項及び例：
例１は、セキュリティが強化されたコンピューティングシステムであって、コンピューティングシステム上のコンテナ化されたアプリケーションを起動する要求を受信する入力デバイスと、セキュリティ装置であって、コンピューティングシステムにおいて、ハードウェアベースのトラストチェーンを確立するトラストイニシャライザと、トラストイニシャライザに通信可能に接続されているブートコントローラであって、ハードウェアベースのトラストチェーンを、コンピューティングシステム上のコンテナマネージャ及びコンテナ化されたアプリケーションへと拡張するブートコントローラと、ブートコントローラに通信可能に接続されている起動コントローラであって、コンテナマネージャを介して、コンピューティングシステム上で、信頼できるセキュアなモードで、コンテナ化されたアプリケーションを起動する起動コントローラと、を有するセキュリティ装置と、コンテナ化されたアプリケーションに関連付けられているデータを視覚的に提示するディスプレイと、を備えたコンピューティングシステムを含み得る。
【００４３】
例２は、セキュリティ装置が、コンテナマネージャ、コンテナ化されたアプリケーションに関連付けられている１以上のパッケージ、及びルートオブトラスト計測エージェントのブート前計測を行う計測コンポーネントと、コンテナ化されたアプリケーションが起動されるのに先立って、ブート前計測を検証するトラストエージェントと、をさらに有する、例１のコンピューティングシステムを含み得る。
【００４４】
例３は、計測コンポーネントが、ルートオブトラスト計測エージェントを介して、コンテナ化されたアプリケーションの起動時計測を行い、トラストエージェントが、コンテナ化されたアプリケーションが起動されるのに先立って、起動時計測を検証する、例２のコンピューティングシステムを含み得る。
【００４５】
例４は、セキュリティ装置が、コンテナ化されたアプリケーションに関連付けられている起動時セキュリティポリシーを施行するポリシーエージェントをさらに有する、例１のコンピューティングシステムを含み得る。
【００４６】
例５は、ポリシーエージェントが、コンテナ化されたアプリケーションの起動時能力を制限すること、コンテナ化されたアプリケーションに関連付けられているセキュリティ機能をアクティブ化すること、コンテナ化されたアプリケーションを非ルート状態に置くこと、及びコンテナ化されたアプリケーションに対する書き込みアクセスを制限することのうちの１以上を行う、例４のコンピューティングシステムを含み得る。
【００４７】
例６は、コンテナ化されたアプリケーションが、複数のレイヤとして構造化され、セキュリティ装置が、複数のレイヤのうちのサブセットのみを表す統合ビューを復号化するユニオンファイルシステムをさらに有する、例１乃至５のいずれかのコンピューティングシステムを含み得る。
【００４８】
例７は、コンピューティングシステムにおいて、ハードウェアベースのトラストチェーンを確立するトラストイニシャライザと、トラストイニシャライザに通信可能に接続されているブートコントローラであって、ハードウェアベースのトラストチェーンを、コンピューティングシステム上のコンテナマネージャ及びコンテナ化されたアプリケーションへと拡張するブートコントローラと、ブートコントローラに通信可能に接続されている起動コントローラであって、コンテナマネージャを介して、コンピューティングシステム上で、信頼できるセキュアなモードで、コンテナ化されたアプリケーションを起動する起動コントローラと、を有するセキュリティ装置を含み得る。
【００４９】
例８は、コンテナマネージャ、コンテナ化されたアプリケーションに関連付けられている１以上のパッケージ、及びルートオブトラスト計測エージェントのブート前計測を行う計測コンポーネントと、コンテナ化されたアプリケーションが起動されるのに先立って、ブート前計測を検証するトラストエージェントと、をさらに有する、例７のセキュリティ装置を含み得る。
【００５０】
例９は、計測コンポーネントが、ルートオブトラスト計測エージェントを介して、コンテナ化されたアプリケーションの起動時計測を行い、トラストエージェントが、コンテナ化されたアプリケーションが起動されるのに先立って、起動時計測を検証する、例８のセキュリティ装置を含み得る。
【００５１】
例１０は、コンテナ化されたアプリケーションに関連付けられている起動時セキュリティポリシーを施行するポリシーエージェントをさらに有する、例７のセキュリティ装置を含み得る。
【００５２】
例１１は、ポリシーエージェントが、コンテナ化されたアプリケーションの起動時能力を制限すること、コンテナ化されたアプリケーションに関連付けられているセキュリティ機能をアクティブ化すること、コンテナ化されたアプリケーションを非ルート状態に置くこと、及びコンテナ化されたアプリケーションに対する書き込みアクセスを制限することのうちの１以上を行う、例１０のセキュリティ装置を含み得る。
【００５３】
例１２は、コンテナ化されたアプリケーションが、複数のレイヤとして構造化され、セキュリティ装置が、複数のレイヤのうちのサブセットのみを表す統合ビューを復号化するユニオンファイルシステムをさらに有する、例７乃至１１のいずれかのセキュリティ装置を含み得る。
【００５４】
例１３は、セキュリティ装置を動作させる方法であって、コンピューティングシステムにおいて、ハードウェアベースのトラストチェーンを確立するステップと、ハードウェアベースのトラストチェーンを、コンピューティングシステム上のコンテナマネージャ及びコンテナ化されたアプリケーションへと拡張する拡張ステップと、コンテナマネージャを介して、コンピューティングシステム上で、信頼できるセキュアなモードで、コンテナ化されたアプリケーションを起動するステップと、を含む方法を含み得る。
【００５５】
例１４は、拡張ステップが、コンテナマネージャ、コンテナ化されたアプリケーションに関連付けられている１以上のパッケージ、及びルートオブトラスト計測エージェントのブート前計測を行うステップと、コンテナ化されたアプリケーションが起動されるのに先立って、ブート前計測を検証するステップと、を含む、例１３の方法を含み得る。
【００５６】
例１５は、ルートオブトラスト計測エージェントを介して、コンテナ化されたアプリケーションの起動時計測を行うステップと、コンテナ化されたアプリケーションが起動されるのに先立って、起動時計測を検証するステップと、をさらに含む、例１４の方法を含み得る。
【００５７】
例１６は、コンテナ化されたアプリケーションに関連付けられている起動時セキュリティポリシーを施行する施行ステップをさらに含む、例１３の方法を含み得る。
【００５８】
例１７は、施行ステップが、コンテナ化されたアプリケーションの起動時能力を制限するステップ、コンテナ化されたアプリケーションに関連付けられているセキュリティ機能をアクティブ化するステップ、コンテナ化されたアプリケーションを非ルート状態に置くステップ、及びコンテナ化されたアプリケーションに対する書き込みアクセスを制限するステップのうちの１以上を含む、例１６の方法を含み得る。
【００５９】
例１８は、コンテナ化されたアプリケーションが、複数のレイヤとして構造化され、方法が、複数のレイヤのうちのサブセットのみを表す統合ビューを復号化するステップをさらに含む、例１３乃至１７のいずれかの方法を含み得る。
【００６０】
例１９は、一連の命令を含む少なくとも１つのコンピュータ読み取り可能な記憶媒体であって、命令がコンピューティングシステムにより実行されたときに、命令が、コンピューティングシステムに、コンピューティングシステムにおいて、ハードウェアベースのトラストチェーンを確立するステップと、ハードウェアベースのトラストチェーンを、コンピューティングシステム上のコンテナマネージャ及びコンテナ化されたアプリケーションへと拡張するステップと、コンテナマネージャを介して、コンピューティングシステム上で、信頼できるセキュアなモードで、コンテナ化されたアプリケーションを起動するステップと、を実行させる、少なくとも１つのコンピュータ読み取り可能な記憶媒体を含み得る。
【００６１】
例２０は、命令がコンピューティングシステムにより実行されたときに、命令が、コンピューティングシステムに、コンテナマネージャ、コンテナ化されたアプリケーションに関連付けられている１以上のパッケージ、及びルートオブトラスト計測エージェントのブート前計測を行うステップと、コンテナ化されたアプリケーションが起動されるのに先立って、ブート前計測を検証するステップと、を実行させる、例１９の少なくとも１つのコンピュータ読み取り可能な記憶媒体を含み得る。
【００６２】
例２１は、命令がコンピューティングシステムにより実行されたときに、命令が、コンピューティングシステムに、ルートオブトラスト計測エージェントを介して、コンテナ化されたアプリケーションの起動時計測を行うステップと、コンテナ化されたアプリケーションが起動されるのに先立って、起動時計測を検証するステップと、を実行させる、例２０の少なくとも１つのコンピュータ読み取り可能な記憶媒体を含み得る。
【００６３】
例２２は、命令がコンピューティングシステムにより実行されたときに、命令が、コンピューティングシステムに、コンテナ化されたアプリケーションに関連付けられている起動時セキュリティポリシーを施行するステップを実行させる、例１９の少なくとも１つのコンピュータ読み取り可能な記憶媒体を含み得る。
【００６４】
例２３は、命令がコンピューティングシステムにより実行されたときに、命令が、コンピューティングシステムに、コンテナ化されたアプリケーションの起動時能力を制限するステップ、コンテナ化されたアプリケーションに関連付けられているセキュリティ機能をアクティブ化するステップ、コンテナ化されたアプリケーションを非ルート状態に置くステップ、及びコンテナ化されたアプリケーションに対する書き込みアクセスを制限するステップのうちの１以上を実行させる、例２２の少なくとも１つのコンピュータ読み取り可能な記憶媒体を含み得る。
【００６５】
例２４は、コンテナ化されたアプリケーションが、複数のレイヤとして構造化され、命令がコンピューティングシステムにより実行されたときに、命令が、コンピューティングシステムに、複数のレイヤのうちのサブセットのみを表す統合ビューを復号化するステップを実行させる、例１９乃至２３のいずれかの少なくとも１つのコンピュータ読み取り可能な記憶媒体を含み得る。
【００６６】
例２５は、コンピューティングシステムにおいて、ハードウェアベースのトラストチェーンを確立する手段と、ハードウェアベースのトラストチェーンを、コンピューティングシステム上のコンテナマネージャ及びコンテナ化されたアプリケーションへと拡張する拡張手段と、コンテナマネージャを介して、コンピューティングシステム上で、信頼できるセキュアなモードで、コンテナ化されたアプリケーションを起動する手段と、を有するセキュリティ装置を含み得る。
【００６７】
例２６は、拡張手段が、コンテナマネージャ、コンテナ化されたアプリケーションに関連付けられている１以上のパッケージ、及びルートオブトラスト計測エージェントのブート前計測を行う手段と、コンテナ化されたアプリケーションが起動されるのに先立って、ブート前計測を検証する手段と、を含む、例２５のセキュリティ装置を含み得る。
【００６８】
例２７は、ルートオブトラスト計測エージェントを介して、コンテナ化されたアプリケーションの起動時計測を行う手段と、コンテナ化されたアプリケーションが起動されるのに先立って、起動時計測を検証する手段と、をさらに有する、例２６のセキュリティ装置を含み得る。
【００６９】
例２８は、コンテナ化されたアプリケーションに関連付けられている起動時セキュリティポリシーを施行する施行手段をさらに有する、例２５のセキュリティ装置を含み得る。
【００７０】
例２９は、施行手段が、コンテナ化されたアプリケーションの起動時能力を制限する手段、コンテナ化されたアプリケーションに関連付けられているセキュリティ機能をアクティブ化する手段、コンテナ化されたアプリケーションを非ルート状態に置く手段、及びコンテナ化されたアプリケーションに対する書き込みアクセスを制限する手段のうちの１以上を含む、例２８のセキュリティ装置を含み得る。
【００７１】
例３０は、コンテナ化されたアプリケーションが、複数のレイヤとして構造化され、セキュリティ装置が、複数のレイヤのうちのサブセットのみを表す統合ビューを復号化する手段をさらに有する、例２５乃至２９のいずれかのセキュリティ装置を含み得る。
【００７２】
したがって、本明細書に記載の技術は、コンテナが、信頼できるプラットフォーム上で起動されること、及びコンテナ化されたアプリケーションが改ざんされていないこと、をクラウドデータセンタープロバイダーがユーザ／顧客に保証することを可能にし得る。さらに、技術は、コンテナ計算・管理エンジンプラットフォームのブート前セキュリティ侵害に対して保護することができる。コンテナマネージャ（例えば、ＤＯＣＫＥＲエンジン／マネージャ又はＲＯＣＫＥＴエンジン／マネージャ）が、サーバハードウェアにより保護されるトラストチェーンにおいて保護され得る。コンテナ管理エンジンのハードウェアベースの起動完全性も実現することができる。技術はまた、クラウドデータセンターにおけるコンテナ化されたアプリケーションイメージのセキュリティ侵害及び操作に対しても保護することができる（例えば、コンテナ機密性及びコンテナイメージ計測・暗号化を介して）。技術はまた、他のコンテナの実行時セキュリティを向上させるために、コンテナ起動中に信頼できる方式でオプションをチェック及び施行する能力を提供することもできる（例えば、可能性のある悪意があるアプリケーションコンテナの特権を制限することにより）。技術はまた、（例えば、より低い復号化オーバーヘッドのために）コンテナ起動オーバーヘッドを比較的小さく保ちながら、著しい性能ペナルティなく、コンテナ化されたイメージにおけるシークレットをクラウドに格納する能力を提供することもできる。
【００７３】
実施形態は、全てのタイプの半導体集積回路（「ＩＣ」）チップとともに使用するのに適用可能である。これらのＩＣチップの例は、プロセッサ、コントローラ、チップセットコンポーネント、プログラマブルロジックアレイ（ＰＬＡ）、メモリチップ、ネットワークチップ、システムオンチップ（ＳｏＣ）、ＳＳＤ／ＮＡＮＤコントローラＡＳＩＣ等を含むが、これらに限定されるものではない。さらに、図面のうちのいくつかにおいて、いくつかのものは、より多くの構成信号パスを示すために異なり、構成信号パスの数を示すために数ラベルを有し、且つ／又は、プライマリ情報のフロー方向を示すために１以上の端部に矢印を有する。しかしながら、これは、限定的に解釈されるべきではない。むしろ、そのような追加された詳細は、回路のより容易な理解を促進させるために、１以上の例示的な実施形態に関連して用いられ得る。表されているあらゆる信号線は、追加的な情報を有するか否かにかかわらず、実際には複数の方向に移動することができる１以上の信号を含み得、例えば、差動ペアとともに実装されるデジタル線又はアナログ線、光ファイバ線、及び／又はシングルエンド線といった任意の適切なタイプの信号スキームにより実装され得る。
【００７４】
サイズ／モデル／値／範囲の例が与えられているかもしれないが、実施形態は、そのような例に限定されるものではない。製造技術（例えば、フォトリソグラフィ）は時間とともに成熟するため、より小型サイズのデバイスが製造される可能性があることが予想される。さらに、ＩＣチップ及び他のコンポーネントへの周知の電源／接地接続は、図示及び説明の簡潔さのために、そして実施形態の所定の態様を曖昧にしないようにするために、図面内に示されていることもあるし示されていないこともある。さらに、実施形態を曖昧にするのを避けるために、そして、ブロック図の配置の実装に関する詳細が、実施形態がその内部に実装されることになるプラットフォームに高度に依存するという事実を考慮して、そのような配置は、ブロック図の形で示されることがある、すなわち、そのような詳細は、十分に当業者の視野内にあるものである。例示的な実施形態を説明するために具体的な詳細（例えば、回路）が記載されている場合、実施形態は、これらの具体的な詳細なく又はその変形をもって、実施できることが、当業者には明らかであろう。したがって、本説明は、限定ではなく例示と考えられるべきである。
【００７５】
「接続される、接続されている、接続された」という用語は、本明細書において、直接的であるか間接的であるかを問わず、当該のコンポーネントの間のあらゆるタイプの関係を指すために使用され得、電気的接続、機械的接続、流体接続、光接続、電磁接続、電気機械的接続、又は他の接続に適用され得る。さらに、「第１の」、「第２の」等といった用語は、本明細書において、説明を容易にするためのみに使用されており、別途明示されない限り、特定の時間的意義又は経時的意義を有していない。
【００７６】
本出願及び特許請求の範囲において使用される場合、「〜のうちの１以上」という語句によって結ばれている項目のリストは、リストされている項目の任意の組合せを意味し得る。例えば、「Ａ、Ｂ、又はＣのうちの１以上」という語句は、（Ａ）、（Ｂ）、（Ｃ）、（Ａ及びＢ）、（Ａ及びＣ）、（Ｂ及びＣ）、又は（Ａ、Ｂ、及びＣ）を意味し得る。
【００７７】
実施形態の広範な技術が様々な形態で実装され得ることを、当業者は上記説明から理解するであろう。したがって、実施形態が、その特定の例に関連して説明されたが、図面、本明細書、及び特許請求の範囲を検討すれば、他の変更が当業者に明らかとなるため、実施形態の真の範囲は、そのように限定されるべきではない。
【符号の説明】
【００７８】
４０：ポリシーエージェント
４２：トラストエージェント
４４：ｖＲＴＭ
５４：コンテナマネージャ
５６：コンテナ
１１２：トラストエージェント
１１６：デーモン
１１８：ｖＲＴＭ
１８２：セキュリティ装置
１８２ａ：トラストイニシャライザ
１８２ｂ：ブートコントローラ
１８２ｃ：起動コントローラ
１８２ｄ：計測コンポーネント
１８２ｅ：トラストエージェント
１８２ｆ：ポリシーエージェント
１８２ｇ：ユニオンファイルシステム
１８４：入力デバイス
１８６：ディスプレイ
【図１】
0006396395.tif 000002
【図２】
0006396395.tif 000003
【図３Ａ】
0006396395.tif 000004
【図３Ｂ】
0006396395.tif 000005
【図４】
0006396395.tif 000006
【図５Ａ】
0006396395.tif 000007
【図５Ｂ】
0006396395.tif 000008
【図６】
0006396395.tif 000009
【図７】
0006396395.tif 000010
【図８】
0006396395.tif 000011