JP2023500433A - ポリシ強制のための仮想環境タイプ検証 - Google Patents

ポリシ強制のための仮想環境タイプ検証 Download PDF

Info

Publication number
JP2023500433A
JP2023500433A JP2022520807A JP2022520807A JP2023500433A JP 2023500433 A JP2023500433 A JP 2023500433A JP 2022520807 A JP2022520807 A JP 2022520807A JP 2022520807 A JP2022520807 A JP 2022520807A JP 2023500433 A JP2023500433 A JP 2023500433A
Authority
JP
Japan
Prior art keywords
computing environment
environment
container
application
policy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022520807A
Other languages
English (en)
Other versions
JPWO2021086737A5 (ja
Inventor
スレーシュ スガンディ,トゥーシャー
ティアンキ グオ,アンバー
バラスブラマニアン,バラジ
シン,アブヒジャット
サルハン カラデミル,アーメド
エム. シュルツ,ベンジャミン
アール. プラパカ,ハリ
シュバム,グプタ
トーマス,チェイス
エルネスト ペザ ラミレス,カルロス
Original Assignee
マイクロソフト テクノロジー ライセンシング,エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by マイクロソフト テクノロジー ライセンシング,エルエルシー filed Critical マイクロソフト テクノロジー ライセンシング,エルエルシー
Publication of JP2023500433A publication Critical patent/JP2023500433A/ja
Publication of JPWO2021086737A5 publication Critical patent/JPWO2021086737A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]

Abstract

環境タイプ検証は、環境タイプ検証が行われている計算環境の耐タンパ検証を提供することができる。かかる情報はポリシ管理を行うためにその後利用することができ、ポリシ管理はホスト計算環境からコンテナ仮想計算環境内へのアプリケーションライセンス等のポリシの共有を促進するために確認を省くことを含み得る。環境タイプ検証は、計算環境の暗号化インフラの確認、その計算環境のコード整合性メカニズムの確認、ハイパーバイザを証明する機能が存在することの検査、所定のシステムドライバ又は他の同様のオペレーティングシステムのコンポーネント若しくは機能の有無の検査、資源管理スタックの活性化又は非活性化の検査、及びファームウェア内の所定値の有無の検査を含む複数の検査を行うことができる。

Description

背景
[0001] 一般に「仮想マシン」と呼ばれる従来の仮想計算環境は計算環境の殆どの又は全ての側面を仮想化し、それによりホスト計算装置のハードウェア及びオペレーティングシステムと非常に異なる計算環境を提示することができる。しかし、ホスト計算装置の殆どの又は全ての側面を仮想化しなければならないので、従来の仮想計算環境は大量のメモリを消費し、過度な処理資源を必要とする可能性があり、他の点で非効率であり得る。一部の例では、「コンテナ」としばしば呼ばれる軽量仮想計算環境が、ホスト計算装置のハードウェア及びオペレーティングシステムの側面を計算環境のそれらの側面を仮想化する代わりに利用すること等により、従来の仮想計算環境の隔離の利点の多くをより効率的なやり方で提供することができる。そのためコンテナは、潜在的に悪意ある命令の影響を限定する、試験又はトラブルシューティング等の目的で未使用の計算環境を提供する、及び他の同様の利益等のために、隔離された計算環境を提供するために利用され得る。
[0002] 例えば電子メールメッセージ内の添付ファイルとして文書処理ドキュメントを受信するユーザは、その文書処理ドキュメントを開くことがユーザのコンピュータに感染し、被害を与え、或いは悪影響を及ぼす可能性がある悪意あるコンピュータ実行可能命令の実行を引き起こし得ることを懸念する場合がある。そのような悪影響を防ぐために、コンテナ内で実行される適切な文書処理アプリケーションプログラムによってその文書処理ドキュメントを開くことができる。コンテナ内で実行される実行可能命令は、コンテナによって提示される仮想計算環境を越える如何なるものも認識しない可能性がある。従って文書処理ドキュメントが悪意あるコンピュータ実行可能命令を含んでいても、かかる命令はコンテナの仮想計算環境にしか感染することができず、ユーザの主たる計算環境に危害を加えることなしに容易に削除し或いは破壊することができる。
[0003] 不都合なことに、コンテナはユーザの主たる計算環境と異なり別個の計算環境としてコンテナ内で実行されているコンピュータ実行可能命令によって把握されるので、コンテナ内でアプリケーションプログラムを実行することは別のライセンスを必要とする場合があり、或いは主たる計算環境内でユーザによって確立されるライセンス又は他のポリシを利用できない可能性がある。かかる追加のライセンス付与の要件はユーザのコストを必要以上に増やす場合があり、或いはコンテナ環境内で自らのアプリケーションをユーザが利用することを妨げ得る。しかし、ユーザの主たる計算環境内の適切にライセンス付与されたアプリケーションに基づいてコンテナ内でアプリケーションプログラムが実行されることを単に認めることは容易に悪用され得るメカニズムを作り出す。例えばかかるメカニズムは、大量にホストされ、インターネット上で誰にでも提供され得るように、単一ユーザ単一インスタンスのアプリケーションプログラムライセンスを複数のユーザにわたって、並びに様々な物理的計算装置及び様々な仮想マシンを含む複数の異なる計算環境にわたって不正に共有するために利用され得る。
概要
[0004] 環境タイプ検証は、環境タイプ検証が行われている計算環境の耐タンパ検証を提供することができる。かかる情報はポリシ管理を行うためにその後利用することができ、ポリシ管理はホスト計算環境からコンテナ仮想計算環境内へのアプリケーションライセンス等のポリシの共有を促進するために確認を省くことを含み得る。環境タイプ検証は、環境タイプ検証が行われている計算環境の暗号化インフラの確認、その計算環境のコード整合性メカニズムの確認、ハイパーバイザを証明する機能が存在することの検査、所定のシステムドライバ又は他の同様のオペレーティングシステムのコンポーネント若しくは機能の有無の検査、資源管理スタックの活性化又は非活性化の検査、ファームウェア内の所定値の有無の検査、及びその環境のタイプが検証されている計算環境内で実行可能な他の同様の検査を含む複数の検査を行うことができる。そのようなやり方で、ポリシ管理は、ホスト計算環境とコンテナ仮想計算環境との間のアプリケーションライセンスを含むポリシの共有を可能にする一方、計算ハードウェアによって又は仮想マシンによって直接ホストされる計算環境をコンテナ仮想計算環境として見えるようにスプーフィングすることによる、アプリケーションプログラム又はアプリケーションプログラムによって提供される特定の機能へのアクセスを不正に得るため等の悪意ある目的についてかかるポリシ共有の利用を防ぐことができる。
[0005] この概要は、以下の詳細な説明の中で更に説明する一連の概念を単純化した形で紹介するために提供する。この概要は、特許請求の範囲に記載する内容の重要な特徴又は本質的な特徴を識別することも、特許請求の範囲に記載する内容の範囲を限定するために使用されることも意図しない。
[0006] 添付図面に関して進行する以下の詳細な説明から追加の特徴及び利点が明らかにされる。
図面の説明
[0007] 以下の詳細な説明は添付図面と併せて解釈するとき最もよく理解することができる。
[0008]ポリシ強制のための例示的システムのシステム図である。 [0009]コンテナ仮想計算環境を含む例示的システムのシステム図である。 [0010]仮想環境タイプ検証及びポリシ強制のための例示的システムのシステム図である。 [0011]仮想環境タイプの例示的検証の流れ図である。 [0012]仮想環境タイプ検証を利用する例示的ポリシ強制の流れ図である。 [0013]例示的計算装置のブロック図である。
詳細な説明
[0014] 以下の説明は、ホスト計算環境とコンテナ仮想計算環境との間のアプリケーションライセンスを含むポリシの共有を可能にする一方、計算ハードウェアによって又は仮想マシンによって直接ホストされる計算環境をコンテナ仮想計算環境として見えるようにスプーフィングすることによる、アプリケーションプログラム又はアプリケーションプログラムによって提供される特定の機能へのアクセスを不正に得るため等の悪意ある目的についてかかるポリシ共有の利用を防ぐための耐タンパ環境タイプ検出に関する。環境タイプ検証は、環境タイプ検証が行われている計算環境の耐タンパ検証を提供することができる。かかる情報はポリシ管理を行うためにその後利用することができ、ポリシ管理はホスト計算環境からコンテナ仮想計算環境内へのアプリケーションライセンス等のポリシの共有を促進するために確認を省くことを含み得る。環境タイプ検証は、環境タイプ検証が行われている計算環境の暗号化インフラの確認、その計算環境のコード整合性メカニズムの確認、ハイパーバイザを証明する機能が存在することの検査、所定のシステムドライバ又は他の同様のオペレーティングシステムのコンポーネント若しくは機能の有無の検査、資源管理スタックの活性化又は非活性化の検査、ファームウェア内の所定値の有無の検査、及びその環境のタイプが検証されている計算環境内で実行可能な他の同様の検査を含む複数の検査を行うことができる。
[0015] 必須ではないが、以下の説明は計算装置によって実行されるプログラムモジュール等のコンピュータ実行可能命令の一般的脈絡にある。より詳細には、この説明は別段の定めがない限り1つ又は複数の計算装置又はペリフェラルによって実行される動き、及び動作を記号で表したものを参照する。そのため、ときとしてコンピュータによって実行されるものとして言及されるそれらの動き及び動作は、構造化された形でデータを表す電気信号の処理単位ごとの操作を含むことが理解されよう。この操作はデータを変換し又はデータをメモリ内の位置に保ち、そのことは計算装置又はペリフェラルの動作を当業者によってよく知られているやり方で再構成し或いは変更する。データが保たれるデータ構造は、データの形式によって定められる特定の特性を有する物理位置である。
[0016] 概してプログラムモジュールは、特定のタスクを実行し又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。更に、計算装置は従来のパーソナルコンピュータに限定される必要はなく、サーバ、携帯装置、マルチプロセッサシステム、マイクロプロセッサベースの又はプログラム可能な消費者家電、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ等を含む他の計算構成を含むことを当業者なら理解されよう。同様に、計算装置は独立型の計算装置に限定される必要はなく、その理由は通信ネットワークによってリンクされる遠隔処理装置によってタスクが実行される分散計算環境内でメカニズムを実践することもできるからである。分散計算環境内では、プログラムモジュールがローカルメモリ記憶装置及び遠隔メモリ記憶装置の両方の中に位置し得る。
[0017] 図1を参照し、以下の説明に関する脈絡を与える例示的システム100が示されている。例示的システム100は例示的計算環境190を含み、例示的計算環境190は、以下の説明に関する脈絡を与える目的で、計算ハードウェア上で直接実行されるオペレーティングシステムによって作成される計算環境とすることができ、「ベアメタル」環境と呼ばれることがある。以下の説明は他の種類の計算環境、つまり仮想マシンプログラムによって作成される計算環境等及びコンテナプロセスによって作成される計算環境等の仮想計算環境を対象とする。
[0018] 典型的には、アプリケーションプログラムがインスタンス化されると、アプリケーションプログラムが実行するための能力が計算環境190内に存在する保護、例えばどのアプリケーションプログラムが計算環境内で実行可能かを線引きするコード整合性保護等の影響を受ける可能性がある。かかる保護はホワイトリストに基づくことができ、それにより明示的に列挙されていないアプリケーションプログラムは計算環境190内で実行することを妨げられ、又はかかる保護はブラックリストに基づくことができ、それによりブラックリスト内に明示的に列挙されていない限りアプリケーションプログラムは計算環境190内で実行することを許可される。
[0019] アプリケーションプログラムのその後の実行はポリシ管理の影響を更に受ける可能性があり、ポリシ管理は計算環境190内で実行するためにアプリケーションプログラムが適切にライセンス付与されていることを確認することを含み得る。例えば適切にライセンス付与されていないアプリケーションプログラムはその実行を終了することができ、又はユーザがアプリケーションプログラムを評価できるが適切なライセンスなしでは完全に利用することができないトライアル機能等の1組の限られた機能をユーザに提示することができる。
[0020] 図1の例示的システム100内で、アプリケーションプログラムがアプリケーションインスタンス110へとインスタンス化され得る。アプリケーションインスタンス110の実行が、例えば例示的コード整合性強制120によって与えられる承認121及び例示的ポリシ管理130によって強制される任意の制限を含む複数の要因を条件とし得ることを示すために、アプリケーションインスタンス110は破線を用いて図示している。最初に例示的コード整合性強制120を参照すると、アプリケーションインスタンス110へのアプリケーションプログラムのインスタンス化は、例示的コード整合性ポリシファイル140等の関連するコード整合性ポリシファイルが計算環境190内でのアプリケーションプログラムの実行を許可するかどうかの、例示的コード整合性強制120による判定124を伴い得る。先に示したように、コード整合性ポリシファイル140はブラックリスト又はホワイトリストの形を取り得る。
[0021] 一態様によれば、例示的コード整合性ポリシファイル140等のコード整合性ポリシファイルを参照することに加え、例示的コード整合性強制120は、アプリケーションの実行が許可されるべきだと不正に示すように参照されるコード整合性ポリシファイル140がタンパされていない確認を更に行うことができる。かかる確認は、コード整合性ポリシファイル140のハッシュをセキュリティカタログ160内に記憶され得るような既知の正常なポリシファイルのハッシュと比較することを伴い得る。例えばコード整合性ポリシファイル140のハッシュは計算環境190が最初に作成されるとき生成することができ、かかるハッシュは例示的セキュリティカタログ160内に記憶することができる。セキュリティカタログ160のタンパリングを防ぐために、セキュリティカタログ160は組織の信頼証明書又は他の同様の信頼された機関の暗号情報によって署名され得る。コード整合性強制120によって参照されるコード整合性ポリシファイル140はハッシュすることができ、結果として生じるハッシュはセキュリティカタログ160内に記憶される対応するハッシュと比較することができ、一致する比較は参照されているコード整合性ポリシファイル140が不正に修正され又はタンパされておらず、それにより正確な情報を含むことを示す。
[0022] アプリケーションプログラムのインスタンス化は、ライセンス、組織的ポリシ、又は他の同様のポリシベースの制限を強制し得る、例示的ポリシ管理130等のポリシ管理の影響を更に受ける可能性がある。例えばアプリケーションインスタンス110へとインスタンス化されているアプリケーションプログラムの開発者は、自らのアプリケーションプログラムの盗用を防ぐために及び自らのプログラミング成果の収益化をもたらすために、ユーザが開発者からライセンスを購入することによって等、適切にライセンス付与されていない限りアプリケーションプログラムの実行を防ぐことができる。かかる事例では、例示的アプリケーションポリシファイル150がライセンス形式にあり得る。例示的アプリケーションポリシファイル150は、アプリケーションの実行を知らせる又は制限するために、アプリケーションプログラムのインスタンス化時に参照され得る。例えばアプリケーションポリシファイル150が欠落している場合、アプリケーションプログラムは通知されることができ、実行を終了することができる。別の例として、適切にライセンス付与されていない場合又はライセンスを見つけることができない場合、アプリケーションプログラムが限られた機能を提示し得る。
[0023] ライセンス付与に加えて、他の形のポリシが例示的ポリシ管理130によって強制され得る。例えば或る組織は、自らの組織の計算装置上で特定のアプリケーションが実行されることを妨げようとする場合がある。かかる事例では、例示的アプリケーションポリシファイル150は組織によって監修され得るホワイトリスト又はブラックリストであり得る。アプリケーションポリシファイルの他の例はトランザクションポリシファイルを含むことができ、トランザクションポリシファイルはアプリ内の購入、特定のコンピュータ化された支払スキームを利用する支払い等の一定のトランザクション形式を妨げようとすることができる。アプリケーションポリシファイルの更に他の例は、展開ポリシファイル及び証明書を含み得る。
[0024] 例示的アプリケーションポリシファイル150等のポリシファイルは、アプリケーションプログラムの条件付き挙動を強制することができるメカニズムを提供することができる。示したように、そのような条件付き挙動はアプリケーションプログラムの開発者、計算環境190を提供する組織、又は他の同様の機関によって望まれる場合がある。かかる条件は、ユーザ識別子、計算装置識別子、又は他の環境要因に基づき得る。例えば例示的アプリケーションポリシファイル150は、特定の日にちに失効することを示し得るアプリケーションプログラムの開発者から有効に購入されたライセンスであり得る。その結果、例示的ポリシ管理130は、判定135によって示すように、例示的アプリケーションポリシファイル150がアプリケーションプログラムの実行に影響を及ぼす情報を含むかどうかを判定するための現在の日付情報を得ることができる。例えば現在の日付情報が、例示的アプリケーションポリシファイル150内で示される日にちを過ぎた場合、例示的ポリシ管理130はアプリケーションプログラムに対してそのアプリケーションプログラムがもはや適切にライセンス付与されていないことを示すことができる。別の例として、例示的アプリケーションポリシファイル150は、特定のユーザ又は特定の計算装置に限定され得る有効に購入されたライセンスであり得る。かかる事例では、例示的ポリシ管理130は、判定135によって示すように、例示的アプリケーションポリシファイル150がアプリケーションプログラムの実行に影響を及ぼす情報を含むかどうかを判定するためのユーザ識別子、計算装置識別子、又は他の同様の情報を得ることができる。この場合もやはり、先のように例えばアプリケーションプログラムをアプリケーションインスタンス110へとインスタンス化しようとしているユーザのユーザ識別子がアプリケーションポリシファイル150によって要求されるものと異なるとポリシ管理130が判定する場合、ポリシ管理130はそのようにアプリケーションプログラムに知らせることができ、アプリケーションプログラムはアプリケーションの実行を終了すること又は1組の限られた機能だけを提示すること等によって適切な是正措置を取ることができる。
[0025] 一態様によれば、例示的アプリケーションポリシファイル150等のアプリケーションポリシファイルが不正に修正されていないこと或いは不正にタンパされていないことを確認するために、アプリケーションポリシファイル150のハッシュを「既知の正常な」アプリケーションポリシファイルのハッシュと、又はファイルがその意図される状態から実際的にタンパされ或いは修正され得なかった時点にそのハッシュが取られたアプリケーションポリシファイルのハッシュと比較することができる。例えば例示的ポリシ管理サービス170等のポリシ管理サービスはポリシのためのクリアリングハウスとして働くことができ、「既知の正常な」ポリシのハッシュを保持することができる。例示的ポリシ管理サービス170は、1つ又は複数のサーバ計算装置上で実行され、かかる計算装置とのネットワーク通信によってアクセス可能であるような集中型サービスであり得る。或いは又は加えて、例示的ポリシ管理サービス170は、別個のプロセス又は他の同様のカプセル化を除き、計算環境190を実行している同じ計算装置上でローカルに実行され得る。一態様によれば、例示的ポリシ管理サービス170等のポリシ管理サービスは、例示的ポリシストア171等のポリシストア及び例示的ポリシデータベース172等のポリシデータベースを含み得る。例示的ポリシストア171は、組織の複数の計算装置、アプリケーションプログラムがアプリケーションの開発者又はアプリケーションプログラムストア等から過去にライセンス付与された複数の計算装置等に更新済みのポリシ情報をアクティブに分散可能なメカニズム、又は更新済みのポリシ情報の他の同様のアクティブ分散を提供することができる。直近のポリシが、それらの直近のポリシに対応するハッシュと共にポリシデータベース172内に記憶され得る。ポリシ管理サービス170はアクセス不能であるか又はアプリケーションポリシファイル150よりもアクセスが容易ではなく、追加の保護を提供することができ、その他の方法でタンパリングを防ぐことができるので、例示的アプリケーションポリシファイル150がタンパされていない或いは修正されていないことを確認する1つのメカニズムは、例示的アプリケーションポリシファイル150をハッシュし、得られたハッシュ値をポリシデータベース172内に記憶されている対応するハッシュ値と比較するか、または例示的ポリシ管理サービス170と通信することであり得る。そのような確認アクション137が行われると、上記で詳述したようなアプリケーションポリシファイル150の条件付き要件を検討することができ、例示的通知131によって示すように、対応するアプリケーションポリシファイル150の評価によって必要とされ得るアプリケーションの実行に対する任意の制限又は他の同様の影響をアプリケーションに通知することができる。
[0026] 別々のコンポーネントとして図示するが、一態様によれば、例示的ポリシ管理130は例示的アプリケーションインスタンス110の一部であり得る。換言すれば一部のアプリケーションは、独立に設けられた外部のポリシ管理機能を必要とすることなしに自らのアプリケーションポリシファイルを参照することができる。
[0027] 先に示したように、クラウド計算プロバイダによってしばしば提供されるように、ユーザが「ベアメタル」上又は本格的な仮想マシンによってホストされる計算環境内ではなく、コンテナ仮想計算環境内でアプリケーションプログラムを実行したい事例があり得る。例えば、アプリケーションプログラム又はアプリケーションプログラムが作用するファイルの実行に影響を及ぼすセキュリティ上の問題がある場合があり、かかる問題はアプリケーションプログラムを限られ保護された計算環境内で実行することによって改善することができ、かかる環境は必要が生じた場合に容易に削除し又は終了することができる。別の例として、アプリケーションプログラムをクリーンな計算環境内で実行することに利点があり得る。例えばウェブページはクッキー又は他のデータのリポジトリをしばしば利用して、訪問されたウェブページ、利用された検索語、及び他の同様の個人情報を記録すること等によってユーザを追跡する。従って、クッキー等の過去に記憶された情報へのウェブページによるアクセスを許可したくないユーザは、かかるクッキー又は他の同様のデータを含まないクリーンな計算環境であり得るコンテナ仮想計算環境内でウェブブラウザアプリケーションプログラムを実行することができる。
[0028] 本明細書で利用するとき、「コンテナ」という用語は、仮想マシンアプリケーションプログラムのやり方でソフトウェア及びハードウェアを仮想化せず、代わりにハードウェア並びにオペレーティングシステムのプロセス及び機能の定められたサブセットを含む自らのホスト計算環境の側面を利用して別個の計算環境を作成するプロセスを意味する。
[0029] 図2に移り、図示のシステムは、コンテナ仮想計算環境と、ユーザが自らのパーソナル計算装置によって提示され得るような確立された計算環境との間の様々な関連付けを示す。例えば例示的システム201は、パーソナル計算装置220を利用するユーザ210を含む。例示的パーソナル計算装置220は、パーソナル計算装置220上で実行されるオペレーティングシステム及び対応するコンピュータ実行可能命令によって生成され得るような確立された計算環境231をユーザ210に提示することができる。そのような確立されたパーソナル計算環境231は、コンテナ仮想計算環境を確立し、確立された計算環境231のオペレーティングシステム又は他の同様の資源の適切な側面を共有することができるコンテナマネージャ241を含み得る。例えば悪意があり得る電子メールの添付ファイルを開くために等、ユーザ210がかかるコンテナ仮想計算環境を必要とする場合、コンテナマネージャ241は、同じパーソナル計算装置220によってやはり実行され得る例示的コンテナインスタンス251等のコンテナインスタンスを作成することができる。
[0030] 別の例として、例示的システム202は、クラウドサービスによって提供されるサーバ等のサーバ計算装置260に接続するためにユーザ210が例示的パーソナル計算装置220等のパーソナル計算装置を利用することを示す。例示的サーバ計算装置260は、仮想マシンによってホストされる仮想計算環境であり得る確立された計算環境232を実行することができる。確立された計算環境232は、ユーザがパーソナル計算装置220上で利用しようとするアプリケーションプログラムを含み得る。ユーザ210が自らのパーソナル計算装置220上でかかるアプリケーションプログラムを利用することができる1つのメカニズムは、パーソナル計算装置220の他の側面をかかるアプリケーションから隔離することができるコンテナインスタンス内にあり得る。例示的システム202では、パーソナル計算装置220上で実行される例示的コンテナマネージャ242等のコンテナマネージャが、例示的コンテナインスタンス252等のコンテナインスタンスを起動することができる。クラウドサービス260上の確立された計算環境232は、コンテナインスタンス252がクラウドサービス260からリモートで実行されるコンテナマネージャ242によって管理可能であっても、コンテナインスタンス252のためのホスト計算環境として働くために適切な通信を確立することができる。
[0031] 同様のやり方で、例示的システム203によって示すように、例えば公衆キオスク等の公衆計算装置270を利用するユーザ210がユーザのパーソナル計算装置220内に安全なやり方で遠隔アクセスしようとする場合がある。かかる事例では、ユーザのパーソナル計算装置220上で実行される確立された計算環境233が、例示的コンテナマネージャ243等の公衆計算装置270上で実行されるコンテナマネージャと通信することができる。次いで例示的コンテナマネージャ243は、確立された計算環境233が遠隔パーソナル計算装置220上で実行され、コンテナインスタンス253のためのホスト環境として機能している状態で、公衆計算装置270上のコンテナインスタンス253を作成することができる。
[0032] 先に示したように、コンテナ仮想計算環境はコンテナ仮想計算環境内で実行されるコンピュータ実行可能命令によって別個の計算装置として把握され得るので、ライセンス及び他の同様のポリシの側面がコンテナ仮想計算環境に移動しない可能性がある。従って、例えば悪意があり得るとユーザが懸念する電子メールメッセージによって文書処理添付ファイルを受信するユーザは、コンテナ仮想計算環境内で実行される文書処理アプリケーションプログラムを利用してその添付ファイルを開くことができる。しかしユーザは文書処理アプリケーションプログラムを利用するための有効なライセンスを有し得るが、そのライセンスはホスト計算環境に限定される可能性があり、従ってユーザがコンテナ仮想計算環境内で実行される文書処理アプリケーションプログラムを利用して添付ファイルを開こうと試みる場合、コンテナ仮想計算環境内で実行されるコンピュータ実行可能命令の観点から、アプリケーションが異なるユーザによって異なる計算装置上で実行されているように見え得るので、ユーザは、自らの文書処理アプリケーションプログラムがライセンス付与されていないというインジケーションを受信する可能性がある。そのためユーザがアプリケーションプログラムの複数のライセンスを有する場合、コンテナ仮想計算環境内で実行される文書処理アプリケーションプログラムを利用して添付ファイルを開くことは、予め購入された1組のライセンスのうちの別のライセンスをユーザの同意なしに消費させ得る。しかし不都合なことに、コンテナ仮想計算環境内で実行されるアプリケーションプログラムのライセンス検査を単純に無効化することは、悪意あるユーザのパーソナル計算装置を承認されたユーザのコンテナ仮想計算環境として単に提示させ、それにより承認されたユーザの単一のライセンスを不正に多くの異なるユーザ間で共有すること及び多くの異なる計算装置間で利用することを可能にすることにより、悪意あるユーザがアプリケーションプログラムを容易に盗用し或いは不正に得ることを可能にし得る。
[0033] アプリケーションプログラムのそのような盗用及び他の不正な取得を防ぐのと同時に、コンテナ仮想計算環境内でアプリケーションプログラムを正当に使用することを助けるために、環境タイプ検証を行って計算環境が実際に適切なコンテナであること及びそうではなくライセンス又は他のポリシの制限をバイパスするために適切な環境であるように単に提示しているのではないことを検証することができる。次いでかかる環境タイプ検証は、アプリケーションプログラムが適切に応答することを可能にするように、適切なポリシ管理メカニズムに知らせることができる。
[0034] 図3に移り、図示の例示的システム300は、先に詳細に説明した例示的ポリシ管理サービス170及び例示的計算環境190を示す。加えて、例示的コンテナインスタンス390の形でコンテナプロセスによって作成される仮想計算環境も例示的システム300図3内に示す。例示的コンテナインスタンス390は図2に関して上記で詳述したようなコンテナ管理機能によって作成されている場合があり、例示的計算環境190は例示的コンテナインスタンス390のためのホストとして働き得る。以下で詳述するように、本明細書で図示し説明するメカニズムは、計算環境190内で実行されるアプリケーションインスタンス110と同じアプリケーションプログラムのコンテナアプリケーションインスタンス310が、ホスト計算環境190のアプリケーションポリシファイル150を利用しながらコンテナインスタンス390の仮想計算環境内で実行することを可能にし得る。
[0035] 一態様によれば、例示的セキュア通信メカニズム361及び362等により、ホスト計算環境190とコンテナインスタンス390との間でセキュア通信を確立することができる。例示的セキュア通信メカニズム361及び362は、非対称鍵暗号構造に基づき得る。例えば上記で詳述したようなやり方でコンテナインスタンス390が起動されると、コンテナインスタンス390は、例示的計算環境190等のホスト計算環境によって確立される非対称鍵アルゴリズムの公開鍵部分を提供され得る。別の例として、コンテナインスタンス390にはシードデータを与えることができ、そのシードデータから、知られている暗号メカニズムを利用し、コンテナインスタンス390内で実行されるセキュア通信メカニズム362がホスト計算環境190内で実行される例示的セキュア通信メカニズム361と同じ鍵を導出することができる。更に別の例として、ユーザは、セキュア通信メカニズム361及びセキュア通信メカニズム362の両方に所要の暗号情報を手入力することを要求される場合があり、又はセキュア通信接続を確立するために利用可能な暗号情報を安全に交換するために他の同様の帯域外通信を利用することができる。
[0036] 例示的ホスト計算環境190と例示的コンテナインスタンス390との間のセキュア通信が確立されると、図1に関して上記で詳細に説明したアプリケーションポリシファイル150が例示的ホスト計算環境190からコンテナインスタンス390と共有され得る。例えば、例示的ファイル共有363等のセキュアファイル共有を確立することができ、それによりコンテナインスタンス390内で実行されるプロセスは例示的ホスト計算環境190内のアプリケーションポリシ150にアクセスすることができる。コンテナインスタンス390内からのアプリケーションポリシファイル150のアクセスを視覚的に表すために、アプリケーションポリシファイル150は例示的ホスト計算環境190及び例示的コンテナインスタンス390の両方の中に示してある。
[0037] 一態様によれば、アプリケーションのコンテナインスタンス310のインスタンス化が試みられる場合、上記で詳細に説明した例示的コード整合性強制120と類似の例示的コード整合性強制320等のコード整合性強制が、コンテナインスタンス390内でアプリケーションを実行することが許可されることを確認し得る。例えばコンテナインスタンス390は、計算環境190の一部であり得る図1に示すコード整合性ポリシファイル140と異なり得るコード整合性ポリシファイル340を用いて作成されている場合がある。別の例として、計算環境190が図1に示すコード整合性強制120を実行しなくてもよく、例示的コンテナインスタンス390内で実行される例示的コード整合性強制320等、コード整合性強制がコンテナインスタンスに限定され得る。
[0038] 既に述べた通り、例示的コード整合性強制320等のコード整合性強制は、例示的コード整合性ポリシファイル340等の関連するコード整合性ポリシファイルが例示的コンテナインスタンス390内のコンテナアプリケーションインスタンス310の実行を提供することの検査324、及びコード整合性ポリシファイル340が修正され又はタンパされていないという、例示的セキュリティカタログ360を参照すること等による更なる確認326に基づいてコンテナアプリケーションインスタンス310のインスタンス化を承認することができる(321)。既に述べた通り、かかる確認はハッシュの比較に基づくことができる。
[0039] 加えて上記でも説明したように、例示的ポリシ管理330等のポリシ管理はコンテナアプリケーションインスタンス310のインスタンス化に更に影響を及ぼし得る。しかし一態様によれば、例示的コンテナインスタンス390等のコンテナインスタンス内で実行されるとき、例示的ポリシ管理330は、ポリシ管理330及び/又はコンテナアプリケーションインスタンス310が実行されている実行環境のタイプに関する情報を提供することができる例示的環境タイプ検証350等の環境タイプ検証によって通知され得る。例えば環境タイプ検証は、コンテナインスタンス390が実際に適切なコンテナかどうかのインジケーションを提供することができ、それによりライセンス付与の制限を悪用し、アプリケーションプログラム機能への不正なアクセスを得る目的でコンテナ実行環境として悪意を持って現れ得る他の種類の実行環境の検出を可能にすることができる。環境タイプ検証350の情報によって与えられる情報は、共有アプリケーションポリシファイル150に関連してポリシ管理330によって利用され得る。或いは又は加えて、環境タイプ検証350はファイル共有363の作成を第一に通知することができる。例えば以下で更に詳述するメカニズムに基づき、例えばコンテナインスタンス390が仮想マシンによってホストされる仮想計算環境であり又は別の計算装置の計算環境であり、アプリケーションプログラムに不正にアクセスするためにコンテナインスタンスとして現れるように悪意を持って単に修正されている等、コンテナインスタンス390が適切なコンテナではないと環境タイプ検証350が判定する場合、環境タイプ検証350は、必要な暗号情報等の関連情報を保留すること等によって、又はファイル共有363が作成されないことを明示的に指示すること等によってファイル共有363の作成を防ぐことができる。従ってかかる態様によれば、アプリケーションポリシファイル150はコンテナインスタンス390内からはアクセスできず、コンテナアプリケーションインスタンス310は適切にライセンス付与されず、それにより仮想環境タイプのスプーフィングによる盗用を示すことになる。
[0040] コンテナインスタンス390に関する情報を与える情報353を環境タイプ検証350が提供する上記で示した態様に戻り、かかる情報353は、計算環境190から共有されるアプリケーションポリシファイル150の検査335を行うためにポリシ管理330によって利用され得る。例えばアプリケーションポリシファイル150は、例示的コンテナインスタンス390等のコンテナインスタンス内で実行するためにアプリケーションプログラムに適切にライセンス付与できないことを示す情報を含み得る。かかる事例では、コンテナアプリケーションインスタンス310が有効なアプリケーションポリシファイル150に関連しないという通知331をポリシ管理330が生成し、それによりコンテナアプリケーションインスタンス310がその実行を終えること或いは1組の低減された機能を提示することを可能にし得る。別の例として、アプリケーションポリシ150は、例示的コンテナインスタンス390等のコンテナインスタンス内で実行するためにアプリケーションプログラムがライセンス付与されていることを示す情報を含み得る。その場合、アプリケーションポリシ150はコンテナインスタンス内で実行されるアプリケーションプログラムのライセンス付与を促進するための更なる情報を含むことができる。例えばコンテナインスタンス390が異なるマシン識別子を含み得る、又はユーザ識別子にアクセスできない可能性があるので、上記で詳述したものを含むユーザ識別子、マシン識別子等に基づく検査をコンテナインスタンス390内から実行できない場合がある。従って、アプリケーションポリシ150は、コンテナアプリケーションインスタンス310が適切なコンテナインスタンス内で実行されている場合はかかる確認の省略を可能にすることができる。そのため環境タイプ検証350によって与えられる情報は、アプリケーションプログラムへのアクセスを不正に得るため等の悪意ある目的のためにかかる確認の省略が利用されることを防ぐことができる。
[0041] 一態様によれば、ポリシ管理330は、上記で詳述したのと類似するやり方でポリシ管理サービス170に関して確認337を行うことができる。例えばポリシ管理330はアプリケーションポリシファイル150をハッシュすることができ、かかるハッシュを比較することができ、又はそのハッシュを既知の正常なアプリケーションポリシファイルのハッシュとポリシ管理サービス170が比較することを要求することができる。一態様によれば、ハッシュが既知の正常なアプリケーションポリシファイルのハッシュと一致する場合、ポリシ管理サービス170はかかるハッシュに対応するアプリケーションポリシが、例えば計算環境190内で実行されている可能性があるアプリケーションインスタンス110等に既に割り当てられているかどうかを更に検査することができる。アプリケーションポリシがまだ割り当てられていない場合、又は既に割り当てられているがポリシ管理330からのクエリが環境タイプ検証350によって決定されるような適切なコンテナインスタンスから生じる場合、ポリシ管理サービス170はクエリが検証されていると応答することができる。そのようなやり方で、アプリケーションポリシ150がタンパ或いは修正されていないこと、更に要求が適切なコンテナインスタンスから生じていることの両方の確認を行うことができる。次いで例示的ポリシ管理330はコンテナアプリケーションインスタンス310が実行を継続し、完全にライセンス付与された機能を提供することを可能にし得る。
[0042] 先に示したように、例示的ポリシ管理330等のポリシ管理は、例示的コンテナアプリケーションインスタンス310等のアプリケーションプログラムの一部であり得る。同様に、同じく先に示したように、例示的ポリシ管理サービス170等のポリシ管理サービスは、1つ又は複数の遠隔計算装置上で、同じ計算装置上だがコンテナインスタンス390の外部で、又はコンテナインスタンス390内で実行することができる。その操作を以下で更に詳述する環境タイプ検証はアプリケーションプログラムの一部とすることもでき、又は別個とし、図3の例示的システム300に示すようなやり方でポリシ管理330によって呼び出すことができ、又はアプリケーションプログラムによって直接呼び出すことができる。
[0043] 例示的環境タイプ検証350の操作351に移り、一態様によれば、例示的環境タイプ検証350はコンテナインスタンス390が「適切な」コンテナである又はそうではないかどうかだけを示すブール形式の情報353を提供することができ、コンテナインスタンス390の「適切性」は以下で更に詳述するように事前に決定し、一連の既定の検査に基づいて評価することができる。しかし別の態様によれば、例示的環境タイプ検証350は、仮想マシンアプリケーションプログラムによってホストされる計算環境とコンテナインスタンスによってホストされる計算環境との間の区別等、特定の種類の実行環境を識別可能な情報353を出力することができる。更に別の態様によれば、例示的環境タイプ検証350によって与えられる情報353は、アプリケーションポリシファイル150内で列挙される1つ又は複数の条件に関連し得る又はポリシ管理330の条件付き挙動を別様に知らせることができる、環境タイプに関する情報又は他の環境タイプメタデータを含むことができる。例えば情報353は、環境タイプ検証350が提供可能な検査の1つ又は複数に関する詳細を含み得る。
[0044] 例示的環境タイプ検証350等の環境タイプ検証の操作を説明するためにブール形式の出力353に言及する。但し上記で詳述したように、記載した操作351は範囲及び複雑さの点で異なり得る出力353を等しく作り出すことができる。例示的操作351に移り、図3に示すように、コンテナインスタンス390が適切なコンテナインスタンスであり、例えばより制限的でないアプリケーションポリシにつけ込むための、或いはアプリケーションプログラムへのアクセスを不正に得るためのコンテナインスタンスとして現れるようにスプーフィングされ或いは修正されている異なる仮想計算環境ではないことを検証するために複数の検査を行うことができる。
[0045] 一態様によれば、環境タイプ検証は、例えばセキュア通信メカニズム361及び362によって利用される暗号インフラを含む、環境タイプ検証が実行されている仮想計算環境の暗号インフラを確認することができる。例えば環境タイプ検証350は、コンテナインスタンス390内で証明書ストアが利用可能かどうかを検査することができる。かかる証明書ストア内で、環境タイプ検証350は証明書が、組織のルートオブトラスト又は別の既知の正常なルートオブトラストであり得る予期されたルートオブトラストを有するかどうか又はかかるルートオブトラストによって署名されているかどうかを検査することができる。別の例として、環境タイプ検証350はコンテナインスタンス390内の既存の構成証明技術を活用することができる。例えばコンテナインスタンス390によって提供される仮想計算環境内で実行されるオペレーティングシステムは、ブートシーケンスの一部としてオペレーティングシステムによってロードされるとき、ハッシング、モジュール、又はコンピュータ実行可能命令の他の同様の集合等によって「測定」することができる。この測定は、かかる測定を安全に記憶することができるトラステッドプラットフォームモジュール(TPM)の助けを借りて実行され得る。オペレーティングシステムのブートの完了時に、オペレーティングシステムのブートの一部としてロードされたモジュール及びコンピュータ実行可能命令の同様の集合の全てが未修正でありさもなければ適切である場合、結果として生じる測定が既知の正常な測定と一致すべきである。かかる事例では、環境タイプ検証350はブートされたオペレーティングシステムの測定を既知の正常な測定と比較して参照すること等により、かかる構成証明が行われたこと、及び正しく行われたことを確かめることができる。環境タイプ検証350は、コンテナインスタンス390のブートされたオペレーティングシステムの測定を既知の正常な測定と比較するために外部の構成証明サービスを利用することができる。測定が一致しない場合、環境タイプ検証350はコンテナインスタンス390が適切なコンテナインスタンスではないと結論付けることができる。オペレーティングシステムのコンポーネントに関して上記で説明したが、かかる構成証明はコンテナアプリケーションインスタンス310を作成するためにインスタンス化されるアプリケーションプログラムを含む特定のアプリケーションプログラムの起動に拡張することができる。
[0046] 別の態様によれば、環境タイプ検証はコンテナインスタンス390のコード整合性インフラを確認することができる。例えば環境タイプ検証350は、コード整合性ポリシファイル340のハッシュを確認する、先に示したように組織の信頼証明書又は他の同様のルートオブトラストによって署名され得るセキュリティカタログ360の署名を確認するためにコード整合性強制320とインタフェースすることができ、又はコード整合性強制320の他の確認を行うことができる。かかる確認の何れか1つ又は複数を失敗することは、自らがその中で実行されている仮想環境が適切なコンテナインスタンスではないと環境タイプ検証350が結論付けることをもたらし得る。盗用又は他の悪意ある挙動を更に減らすために、コード整合性インフラの確認はコンテナインスタンス内のより制限的なコード整合性強制と組み合わせて利用することができる。例えばコンテナインスタンスは、例示的コード整合性ポリシファイル340等の限られたホワイトリスト型のコード整合性ポリシファイルと共に作成することができる。コンテナインスタンス390は例えばコード整合性ポリシファイル340を含むことができ、コンテナアプリケーションインスタンス310又は別様に適切に限られたホワイトリストだけを許可することができる。異なるアプリケーションを実行するためにかかるコンテナインスタンス390を利用する如何なる試みもコード整合性強制320によって失敗する可能性があり、又は異なるアプリケーションの実行を可能にするようにコード整合性インフラが不正に修正される場合、かかる修正は環境タイプ検証350によって検出することができ、次いで環境タイプ検証350はその異なるアプリケーションを実行するためにコンテナインスタンス390を利用することをやはり防ぐ情報353を生成することができる。
[0047] 更に別の態様によれば、環境タイプ検証350は様々な機能又はかかる機能の欠如、特定のコードセグメント又はかかるコードセグメントの欠如、及び環境タイプの他の同様のインジケータに関する検査を行うことができる。例えば環境タイプ検証350は、ハイパーバイザが存在するかどうか又はアクセス可能かどうかを検査することができる。かかる検査は、1つ又は複数の中央処理装置の機能をクエリすることができるアプリケーションプログラムインタフェースによって行われ得る。より詳細には、ハイパーバイザの能力を有する中央処理装置はその機能又は能力をかかるアプリケーションプログラムインタフェースによって公開することができ、かかる機能又は能力の存在はハイパーバイザが存在することを示し得る。一態様によれば、環境タイプ検証350がハイパーバイザの存在を検出する場合、環境タイプ検証350は自らがその中で実行されている環境が適切なコンテナではないと結論付けることができ、或いはその環境がコンテナによってホストされる実行環境ではなく、代わりに仮想マシンによってホストされる実行環境であり得ると結論付けることができる。同様に、環境タイプ検証350は環境内に特定のシステムドライバが存在するかどうかを検査することができる。かかるシステムドライバの有無は、自らがその中で実行されている環境が適切なコンテナではないと環境タイプ検証350に結論付けさせることができる。例えば特定の機能がオフにされているかどうかに関して同様の検査を行うことができる。具体的には、環境タイプ検証350は資源管理スタックがオフにされているかどうかを検査することができ、かかる資源管理スタックがオフにされていない場合、コンテナインスタンス390が不正だと環境タイプ検証350は結論付けることができる。実行環境からアクセス可能なファームウェアに別の検査を行うことができる。例えば特定のファームウェア変数がコンテナマネージャ又は例示的ホスト計算環境190等のホスト計算環境等によって環境に追加されることが必要とされ得る。かかるファームウェア変数がないことは、コンテナインスタンス390が適切なコンテナではないと環境タイプ検証350に結論付けさせることができる。
[0048] 上記の操作351は例示に過ぎず、特定の攻撃ベクトル又は悪意ある若しくは不正な利用が実現され得る他の同様の手段を検出するために、行われる検査及びその順序は調整することができる。他の検査を同様に行うことができ、その場合もやはり、先に示したように環境タイプ検証350によって与えられる出力353は、特定の実行環境タイプを識別すること又は検査の1つ若しくは複数に関する情報を与えること等の更なる詳細を与えることができる。例えば例示的環境タイプ検証350は、コンテナインスタンス390がカーネル隔離されているかどうかを検査することができる。別の例として、環境タイプ検証350は、公開された特定のオペレーティングシステム機能を検査することができる。
[0049] 一態様によれば、環境タイプ検証350によって与えられる情報353は、(異なるSKU番号又は他の同様の製品識別子を有すること等によって)別個の製品として生成され、販売され、及び/又は扱われ得る異なるバージョンを含む、アプリケーションプログラムの複数の異なるバージョンの中からポリシ管理330及び/又はコンテナアプリケーションインスタンス310が選択することを可能にし得る。例えば検査351の特定のものを通過した場合、環境タイプ検証350は、先に示したようにコンテナアプリケーションインスタンス310の一部であり得るポリシ管理330にかかる検査に通過したことを示す出力353を与えることができる。ポリシ管理330は、アプリケーションポリシファイル150を参照すること等により、例えば環境タイプ検証350によって与えられる情報353に基づき、コンテナアプリケーションインスタンス310へとインスタンス化されているアプリケーションプログラムの1つのバージョンがコンテナインスタンス390内で実行することを許可され得るが、同じアプリケーションプログラムの別のバージョンは実行を許可されない可能性があると判定し得る。例えば、コンテナインスタンス390内に特定のシステムドライバがないことを環境タイプ検証350によって検出することは、例えばマイクロホン等の外部音源の入力を認めないより制限された音楽編集プログラムのバージョンが実行されることをポリシ管理330に許可させることができる。かかる例では、環境タイプ検証350による検出はコンテナアプリケーションインスタンス310に実行を終了させることはできないが、代わりにアプリケーションプログラム製品の異なるバージョンを実行させることができる。従ってかかる例を含め、アプリケーションインスタンス110が音楽編集プログラムの拡張版であり、ユーザが同じ音楽編集プログラムをコンテナインスタンス390内で実行する場合、環境タイプ検証350によって与えられる情報353に作用するポリシ管理330と組み合わせた環境タイプ検証350による検出は、コンテナアプリケーションインスタンス310としての同じ音楽編集プログラムのより制限されたバージョンにシームレスに移行し、それを実行することをアプリケーションプログラムに行わせることができる。
[0050] 図4に移り、図示の例示的流れ図400は、上記で詳述した例示的環境タイプ検証等の環境タイプ検証によって行われ得る一連の例示的ステップを示す。一態様によれば、かかるステップの1つ又は複数を予備ステップとして行うことができ、予備ステップによって到達される結論を更に検証するためにその後のステップが行われる。或いは又は加えて、実行環境が適切なコンテナではないという結論480はステップの何れか1つ又は複数が特定の判定を行う場合に到達し得る一方、実行環境が適切なコンテナだという結論470はステップのどれも反対に判定しない場合にのみ達し得る。加えて、行われるステップの順序は異なることができ、図4に示す順序は例示に過ぎない。最後に、先に示したように環境タイプ検証によって出力されるブール値である結論470及び480は一態様に過ぎず、他の態様では下される結論は予め定められた一連の可能性から選択されるような実行環境の特定の種類のインジケーション、並びにステップ420~460によって示すような行われる検査の何れか1つ又は複数の結果に関する情報を出力することを含む、情報又は他の同様のメタデータの提供であり得る。
[0051] 例示的流れ図400は、環境タイプ検証が要求され又は開始され得るステップ410で始まる。それに応答し、ステップ420で最初の判定、例えば暗号化インフラの確認等を行うことができる。先に示したように、暗号化インフラのかかる確認は、実行環境のブートされたオペレーティングシステムの適切な構成証明、又は実行された1つ又は複数のアプリケーションプログラムと組み合わせたブートされたオペレーティングシステムの適切な構成証明、又は他の同様の構成証明の確認であり得る。先に同様に示したように、ステップ420等の暗号化インフラの確認は、実行環境の証明書ストア内の証明書が予期されたルートオブトラストを有すること或いは適切に署名されていることの確認であり得る。実行環境がTPMを含む場合、ステップ420は、ホスト計算環境の構成証明中に得られている可能性があるようなホスト計算環境のTPMからの測定と、ステップ420に対応する命令がその中で実行されている検証済みのコンテナ環境等の実行環境からの測定とを比較することも含み得る。ステップ420で、上記で詳述したようなやり方で暗号化インフラが確認されない場合、実行環境が適切なコンテナではないという結論480に達し得る。或いはステップ420で暗号化インフラが確認される場合、ステップ430からステップ460にあるような1つ又は複数の他の検査を行うために処理を進めることができる。
[0052] 例示的流れ図400では後続のステップ430として示すが、一態様によればステップ420の代わりにステップ430を最初に行うことができる。上記で詳述したように、ステップ430でコード整合性メカニズムを確認することができる。例えばコード整合性ポリシファイルのハッシュが既知の正常なコード整合性ポリシファイルのハッシュと一致することを確かめること等により、コード整合性ポリシファイルを確認することができる。別の例として、既知の正常なコード整合性ポリシファイル及びその対応するハッシュを、セキュリティカタログ又はそれ自体保護することができる他の同様のデータ構造内に記憶することができる。そのためステップ430の別の態様は、かかるセキュリティカタログが組織の信頼証明書によって署名されていること、或いは別様に確認できることの確認であり得る。ステップ430で、コード整合性メカニズムが上記で詳述したようなやり方で確認されない場合、実行環境が適切なコンテナではないという結論480に達し得る。或いはステップ430でコード整合性メカニズムが確認される場合、ステップ440からステップ460にあるような1つ又は複数の他の検査を行うために処理を進めることができる。
[0053] 先に示したように、ステップ440から460は環境タイプを更に検証するために行われ得る代替的又は二次的な確認であり得る。例えばステップ440で、ハイパーバイザの存在等の特定の資源の有無又は利用の可否を検査することができる。上記で詳述したように、ハイパーバイザの存在は、実行環境内で利用可能なCPUがハイパーバイザによって提供される機能を公開すると判定することによって間接的に明らかにすることができ、かかる判定は適切なAPI呼び出しによって決定され得る。その存在を明らかにすることができる他の資源はコンテナ内でオフにされ得る資源管理スタックを含むことができ、その結果、資源管理スタックがオフにされていることを検出することは実行環境が適切なコンテナであることを示す指標となり得る。逆に、ハイパーバイザを検出すること又は資源管理スタックがオンにされていることを検出することは、環境が適切なコンテナではないという結論480をもたらし得る。
[0054] 別の例として、ステップ450で実行環境内に特定のシステムドライバが存在するかどうかの検査を行うことができる。関連するシステムドライバが実行環境内にない場合、又は所定の正しい構成と異なるやり方で構成される場合、環境が適切なコンテナではないという結論480に達し得る。更に別の例として、ステップ460で、実行環境からアクセス可能なファームウェアの検査を行うことができる。例えば特定のファームウェア変数がコンテナマネージャ又はホスト計算環境等によって環境に追加されることが必要とされ得る。かかるファームウェア変数がないことは、環境が適切なコンテナではないという結論480をもたらし得る。
[0055] 様々な検査を完了すると、環境が適切なコンテナではないという結論480にさもなければ達しない場合、環境が適切なコンテナだという逆の結論470に達し、環境タイプ検証を呼び出しているプロセスに結論470が伝達され得る。
[0056] 先に示したように、かかる環境タイプ検証は、ホスト実行環境とコンテナ実行環境との間のライセンス共有を可能にするためのより大きい検証メカニズムの一部であり得る。図5に移り、図示の例示的流れ図500は、かかる共有を促進し、アプリケーションプログラムがコンテナインスタンス内で実行されることを可能にするために行われ得る一連の例示的ステップを示す。最初にステップ510で、コンテナマネージャ等によってコンテナインスタンスを作成することができ、非対称セキュリティ鍵等の1つ又は複数の暗号データを用いてプロビジョンすることができ、かかる暗号データは、コンテナインスタンスと、ホスト計算環境として働くことができ、コンテナインスタンスの作成をステップ510でトリガしている可能性がある確立された計算環境との間のセキュア通信チャネルを確立するためにステップ515等において利用され得る。ステップ520で、ステップ515において確立されたセキュア通信チャネルを利用して、ホスト計算環境からコンテナインスタンスにアプリケーションポリシファイルを共有することができる。先に示したように、一態様によれば、セキュア通信チャネルを確立すること(515)は図4に示すようなやり方で適切なコンテナとして実行環境を検証することを条件とし、その実行を図5の例示的流れ図500の中でステップ545として概略的に示す。
[0057] ステップ525で、関連するアプリケーションプログラムが、ステップ510で作成されたコンテナインスタンス内でインスタンス化されることを試み得る。かかるインスタンス化の一部として処理はステップ530に進むことができ、ステップ530で、アプリケーションの実行が許可されていることを確認するためにコード整合性ポリシファイルを検査することができる。先に示したように、コード整合性保護はホワイトリスト、ブラックリスト、又はその組み合わせの形にあり得るポリシファイルによって強制することができる。ステップ535で、コード整合性ポリシをハッシュし、既知の正常なコード整合性ポリシのハッシュを含み得るセキュリティカタログに対してそのハッシュを確認すること等により、コード整合性ポリシを確認することができる。ステップ535における確認は、適切に署名されたことを確認すること等により、セキュリティカタログ自体を確認することを更に伴い得る。ステップ540で、コンテナインスタンス内のアプリケーションプログラムのインスタンス化をコード整合性が承認し得る。
[0058] ステップ520で共有されたアプリケーションポリシを参照する一部として、図4に関して上記で詳述したようなやり方で実行環境を適切なコンテナとして検証することができる。図5に示す例示的流れ図500の中で、かかる検証はステップ545において行われるものとして示してあるが、先に示したようにかかる検証は例示的流れ図500内の他の点において行われてもよく、例示的流れ図500の複数のステップへの入力として与えることができる。かかる1つのステップは、ステップ550における共有アプリケーションポリシの参照であり得る。先に示したように、ステップ545で実行環境が適切なコンテナとして検証される場合、共有アプリケーションポリシをステップ550で参照して、適切に検証されたコンテナによって作成された仮想計算環境内でアプリケーションプログラムを実行することをライセンス又は他のポリシ含意が許可するかどうかを判定することができる。ステップ550における参照は、コンテナ内のアプリケーションプログラムの実行を促進するために、関連するポリシファイルは、ユーザ識別、マシン識別、および実行環境の妥当性確認のために実行できないその他の同様の検査に基づく制限などの特定の検査を非活性化できると判定することができる。その後ステップ555で、アプリケーションポリシのハッシュを生成することができ、ステップ560で、遠隔ポリシ管理サービスを参照すること等により、ハッシュを既知の正常なポリシハッシュと比較することによって確認することができる。先に示したように、ポリシ管理サービスはコンテナインスタンス内で実行することができ、コンテナインスタンスと同じ計算装置上だがコンテナインスタンスの外部で実行することができ、又は1つ若しくは複数の遠隔計算装置上で実行することができる。ステップ560で共有アプリケーションポリシが確認される場合、処理はステップ565に進むことができ、ステップ545の検証によって情報提供される共有アプリケーションポリシ内の条件に基づく適切な制限を伴って実行するよう命令されること等により、アプリケーションが適切に通知され得る。より詳細には、ステップ545等において適切なコンテナとして実行環境を検証することによって一部の検査を非活性化することができるが、例えば時間ベースの検査等の他の検査は引き続きアプリケーションポリシの一部とすることができ、例えばライセンスの失効後にアプリケーションが実行を試みる場合、ステップ565でコンテナインスタンス内のアプリケーションの実行を依然として制限することができる。他の例では、ステップ565がアプリケーションの実行を制限しない場合があり、代わりにコンテナインスタンス内でアプリケーションが実行されること及び完全な機能を提供することを可能にし得る。ポリシ管理からの適切なフィードバックにより、コンテナインスタンス内のアプリケーションの実行をステップ570で進めることができる。
[0059] 図6に移り、上記のメカニズム及びアクションの一部又は全てを実行可能な例示的計算装置600を示す。例示的計算装置600は、これだけに限定されないが1つ又は複数の中央処理装置(CPU)620、システムメモリ630、及びシステムメモリを含む様々なシステムコンポーネントを処理装置620に結合するシステムバス621を含み得る。システムバス621は、様々なバスアーキテクチャの何れかを使用するメモリバス又はメモリコントローラ、ペリフェラルバス、及びローカルバスを含む数種類のバス構造の何れかであり得る。計算装置600は、タッチセンスディスプレイ装置又はマルチタッチ対応ディスプレイ装置等のタッチによるユーザ入力を受け付け可能なディスプレイ装置を含み得る、これだけに限定されないがグラフィックスハードウェアインタフェース660及びディスプレイ装置661を含む、グラフィックスハードウェアを任意選択的に含み得る。特定の物理的実装に応じて、CPU620、システムメモリ630、及び計算装置600の他のコンポーネントの1つ又は複数をシングルチップの上等で物理的に併設することができる。その場合、システムバス621の一部又は全てはシングルチップ構造内のシリコン経路でしかない可能性があり、図6におけるその図示は説明目的の表記法に過ぎない場合がある。
[0060] 計算装置600は、計算装置600によってアクセス可能であり、揮発性媒体及び不揮発性媒体並びに脱着可能媒体及び脱着不能媒体の両方を含む任意の可用媒体を含み得るコンピュータ可読媒体も典型的には含む。限定ではなく例として、コンピュータ可読媒体はコンピュータ記憶媒体及び通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータ等のコンテンツを記憶するための任意の方法又は技術によって実装される媒体を含む。コンピュータ記憶媒体は、これだけに限定されないがRAM、ROM、EEPROM、フラッシュメモリ若しくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)若しくは他の光ディスク記憶域、磁気カセット、磁気テープ、磁気ディスク記憶域若しくは他の磁気記憶装置、又は所望のコンテンツを記憶するために使用することができ、計算装置600によってアクセス可能な他の任意の媒体を含む。但し、コンピュータ記憶媒体は通信媒体を含まない。通信媒体は、典型的にはコンピュータ可読命令、データ構造、プログラムモジュール又は他のデータを搬送波又は他の移送メカニズム等の変調データ信号内に組み入れ、任意のコンテンツ配信媒体を含む。限定ではなく例として、通信媒体は有線ネットワーク又は直接配線接続等の有線媒体、並びに音響、RF、赤外線、及び他の無線媒体等の無線媒体を含む。上記のものの何れかの組み合わせもコンピュータ可読媒体の範囲に含まれるものとする。
[0061] システムメモリ630は、読取専用メモリ(ROM)631及びランダムアクセスメモリ(RAM)632等の揮発性及び/又は不揮発性メモリ形式のコンピュータ記憶媒体を含む。起動中等に計算装置600内の要素間のコンテンツの転送を助ける基本ルーチンを含む基本入出力システム633(BIOS)が典型的にはROM631内に記憶される。RAM632は、処理装置620にとって直ちにアクセス可能な及び/又は処理装置620によって現在操作されているデータ及び/又はプログラムモジュールを典型的には含む。限定ではなく例として、図6はオペレーティングシステム634、他のプログラムモジュール635、及びプログラムデータ636を示す。
[0062] 計算装置600は、他の脱着可能/脱着不能な揮発性/不揮発性コンピュータ記憶媒体も含み得る。専ら例として、図6は脱着不能な不揮発性磁気媒体との間で読み書きするハードディスクドライブ641を示す。例示的計算装置と共に使用可能な他の脱着可能/脱着不能な揮発性/不揮発性コンピュータ記憶媒体は、これだけに限定されないが磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROM、及び上記で定め詳細に叙述した他のコンピュータ記憶媒体を含む。ハードディスクドライブ641は、典型的にはインタフェース640等の不揮発性メモリインタフェースによってシステムバス621に接続される。
[0063] 上記で論じ、図6に示すドライブ及びその関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、及び計算装置600用の他のデータの記憶域を提供する。図6では、例えばオペレーティングシステム644、他のプログラムモジュール645、及びプログラムデータ646を記憶するものとしてハードディスクドライブ641が示されている。これらのコンポーネントはオペレーティングシステム634、他のプログラムモジュール635、及びプログラムデータ636と同じでも異なってもよいことに留意されたい。オペレーティングシステム644、他のプログラムモジュール645、及びプログラムデータ646には、少なくともそれらが異なるコピーであることを示すために異なる数字を与えている。
[0064] 計算装置600は、1つ又は複数の遠隔コンピュータへの論理接続を使用してネットワーク化された環境内で動作することができる。計算装置600はネットワークインタフェース又はアダプタ650によって(ネットワーク670への)一般ネットワーク接続651に接続されるものとして示し、ネットワークインタフェース又はアダプタ650はひいてはシステムバス621に接続される。ネットワーク化された環境では、計算装置600に関して示すプログラムモジュール又はその一部若しくはペリフェラルが、一般ネットワーク接続661によって計算装置600に通信可能に結合される1つ又は複数の他の計算装置のメモリ内に記憶され得る。図示のネットワーク接続は例示であり、計算装置間の通信リンクを確立する他の手段が使用され得ることが理解されよう。
[0065] 単一の物理的装置として記載するが、例示的計算装置600は仮想計算装置とすることができ、その場合CPU620、システムメモリ630、ネットワークインタフェース640等の上述の物理的コンポーネント、及び他の同様のコンポーネントの機能がコンピュータ実行可能命令によって提供され得る。かかるコンピュータ実行可能命令は単一の物理的計算装置上で実行することができ、又はかかるコンピュータ実行可能命令をホストする特定の物理的計算装置が需要及び可用性に応じて時間と共に動的に変化できるように複数の物理的計算装置にわたって動的に分散させることを含め、複数の物理的計算装置にわたって分散させることができる。例示的計算装置600が仮想化された装置である状況では、かかる仮想化された計算装置をホストする基礎を成す物理的計算装置自体が、上記のものと類似し同様に動作する物理的コンポーネントを含み得る。更に、或る仮想計算装置が別の仮想計算装置のコンストラクト内で実行される複数のレイヤ内で仮想計算装置を利用することができる。従って本明細書で利用するとき「計算装置」という用語は、物理的計算装置又は仮想計算装置を含む仮想化された計算環境を意味し、仮想化された計算環境の中ではコンピュータ実行可能命令を物理的計算装置によるその実行と一致したやり方で実行することができる。同様に、本明細書で利用するとき、計算装置の物理的コンポーネントを指す用語は、それらの物理的コンポーネント又は同じ若しくは等価の機能を実行するその仮想化を意味する。
[0066] 上記の説明は、第1の例として、第1の計算環境内のアプリケーションプログラムの実行に対してポリシ制限を強制する方法を含み、この方法は、第1の計算環境と異なる第2の計算環境からアプリケーションプログラムに対応するアプリケーションポリシデータを得ることであって、アプリケーションポリシデータは第1の計算環境がコンテナ仮想計算環境である場合にバイバスされるべき第1の事前条件を規定する、得ること、第1の計算環境の暗号化インフラを検査すること、第1の計算環境のコード整合性インフラを検査すること、又は第1の計算環境内のハイパーバイザ機能を検査することのうちの少なくとも1つを含む環境タイプ検証を行うこと、及び第1の計算環境がコンテナ仮想計算環境ではないと行われる環境タイプ検証が判定する場合に第1の事前条件に基づいてアプリケーションプログラムの実行を制限することを含む。
[0067] 第2の例は第1の例の方法であり、暗号化インフラを検査することが、第1の計算環境のオペレーティングシステムの適切な構成証明を確認することを含む。
[0068] 第3の例は第2の例の方法であり、暗号化インフラを検査することが、第1の計算環境のオペレーティングシステムとアプリケーションプログラムとの組み合わせの適切な構成証明を確認することを含む。
[0069] 第4の例は第2の例の方法であり、第1の計算環境のオペレーティングシステムの適切な構成証明を確認することが、第1の計算環境の外部の遠隔構成証明サービスと通信することを含む。
[0070] 第5の例は第2の例の方法であり、第1の計算環境のオペレーティングシステムの適切な構成証明を確認することが、第1の計算環境内の第1のトラステッドプラットフォームモジュール(TPM)からの構成証明測定を第2の計算環境内の第2のTPMからの構成証明測定と比較することを含む。
[0071] 第6の例は第1の例の方法であり、暗号化インフラを検査することが、第1の計算環境の第1の証明書ストア内の証明書が所定のルートオブトラストによって署名されていることを確認することを含む。
[0072] 第7の例は第1の例の方法であり、コード整合性インフラを検査することが、既知の正常なコード整合性ポリシファイルのハッシュを含むセキュリティカタログに対してアクティブなコード整合性ポリシファイルのハッシュを確認することを含む。
[0073] 第8の例は第7の例の方法であり、コード整合性インフラを検査することが、セキュリティカタログが所定の信頼された組織の証明書の1つによって署名されていることを確認することを含む。
[0074] 第9の例は第1の例の方法であり、ハイパーバイザ機能を検査することが、ハイパーバイザに見合ったプロセッサ機能が第1の計算環境の中央処理装置によって公開されているかどうかを検査することを含む。
[0075] 第10の例は第1の例の方法であり、環境タイプ検証を行うことが、第1の計算環境内に所定のシステムドライバコンポーネントが存在するかどうかを検査することを含む。
[0076] 第11の例は第1の例の方法であり、環境タイプ検証を行うことが、第1の計算環境内で資源管理スタックが非活性化されているかどうかを検査することを含む。
[0077] 第12の例は第1の例の方法であり、環境タイプ検証を行うことが、第1の計算環境のファームウェア内で所定のファームウェア変数が所定値に設定されているかどうかを検査することを含む。
[0078] 第13の例は第1の例の方法であり、第1の事前条件がアプリケーションプログラムの実行を特定の計算装置のハードウェアマシン識別子に制限する。
[0079] 第14の例は第1の例の方法であり、第1の事前条件がアプリケーションプログラムの実行を特定のユーザ識別子に制限する。
[0080] 第15の例は第1の例の方法であり、第1の計算環境の外部のポリシ管理サービスを参照することにより、得られたアプリケーションポリシデータを確認することを更に含む。
[0081] 第16の例は、1つ又は複数の処理装置と、処理装置の少なくとも一部によって実行されるとき、第1の計算環境と異なる第2の計算環境からアプリケーションプログラムに対応するアプリケーションポリシデータを得ることであって、アプリケーションポリシデータは第1の計算環境がコンテナ仮想計算環境である場合にバイバスされるべき第1の事前条件を規定する、得ること、第1の計算環境の暗号化インフラを検査すること、第1の計算環境のコード整合性インフラを検査すること、又は第1の計算環境内のハイパーバイザ機能を検査することのうちの少なくとも1つを含む環境タイプ検証を行うこと、及び第1の計算環境がコンテナ仮想計算環境ではないと行われる環境タイプ検証が判定する場合に第1の事前条件に基づいてアプリケーションプログラムの実行を制限することを計算装置に行わせるコンピュータ実行可能命令を含む1つ又は複数のコンピュータ可読記憶媒体とを含む計算装置である。
[0082] 第17の例は第16の例の計算装置であり、第1の計算環境及び第2の計算環境の両方が計算装置によってホストされる。
[0083] 第18の例は第16の例の計算装置であり、第1の計算環境が計算装置によってホストされ、第2の計算環境が第1の計算装置と異なる第2の計算装置によってホストされ、第2の計算装置が計算装置に通信可能に結合される。
[0084] 第19の例は、第1の計算環境内で実行されるとき、第1の計算環境のタイプを検証するための要求を受信すること、第1の計算環境の暗号化インフラを検査すること、第1の計算環境のコード整合性インフラを検査すること、又は第1の計算環境内のハイパーバイザ機能を検査することのうちの少なくとも1つを行うこと、及び暗号化インフラの検査又はコード整合性インフラの検査の少なくとも1つが失敗する場合、又はハイパーバイザ機能の検査が第1の計算環境内のハイパーバイザ機能を確かめる場合、第1の計算環境がコンテナ仮想計算環境ではないことを示す環境タイプ検証ブール出力値を生成することを含むステップを実行するコンピュータ実行可能命令を含む1つ又は複数のコンピュータ可読記憶媒体である。
[0085] 第20の例は第19の例の1つ又は複数のコンピュータ可読記憶媒体であり、コンピュータ実行可能命令は、実行されると、第1の計算環境内に所定のシステムドライバコンポーネントが存在するかどうかを検査すること、第1の計算環境内で資源管理スタックが非活性化されているかどうかを検査すること、又は第1の計算環境のファームウェア内で所定のファームウェア変数が所定値に設定されているかどうかを検査することのうちの少なくとも1つを行うことを含む更なるステップを実行する。
[0086] 上記の説明から見て取れるように、仮想環境タイプを確実に検証し、そのような確実な検証を利用して耐タンパポリシ強制を提供するためのメカニズムを提示してきた。本明細書に記載した内容の多くの可能な改変形態に照らし、添付の特許請求の範囲及びその等価物の範囲に含まれ得るものとしてそのような全ての実施形態を我々の発明として主張する。

Claims (15)

  1. 第1の計算環境内のアプリケーションプログラムの実行に対してポリシ制限を強制する方法であって、
    前記第1の計算環境と異なる第2の計算環境から前記アプリケーションプログラムに対応するアプリケーションポリシデータを得ることであって、前記アプリケーションポリシデータは前記第1の計算環境がコンテナ仮想計算環境である場合にバイバスされるべき第1の事前条件を規定する、得ること、
    前記第1の計算環境の暗号化インフラを検査すること、
    前記第1の計算環境のコード整合性インフラを検査すること、又は
    前記第1の計算環境内のハイパーバイザ機能を検査すること
    のうちの少なくとも1つを含む環境タイプ検証を行うこと、及び
    前記第1の計算環境がコンテナ仮想計算環境ではないと前記行われる環境タイプ検証が判定する場合に前記第1の事前条件に基づいて前記アプリケーションプログラムの前記実行を制限すること
    を含む、方法。
  2. 前記暗号化インフラを前記検査することが、前記第1の計算環境のオペレーティングシステムの適切な構成証明を確認することを含む、請求項1に記載の方法。
  3. 前記暗号化インフラを前記検査することが、前記第1の計算環境の前記オペレーティングシステムと前記アプリケーションプログラムとの組み合わせの適切な構成証明を確認することを含む、請求項2に記載の方法。
  4. 前記第1の計算環境の前記オペレーティングシステムの前記適切な構成証明を前記確認することが、前記第1の計算環境の外部の遠隔構成証明サービスと通信することを含む、請求項2に記載の方法。
  5. 前記第1の計算環境の前記オペレーティングシステムの前記適切な構成証明を前記確認することが、前記第1の計算環境内の第1のトラステッドプラットフォームモジュール(TPM)からの構成証明測定を前記第2の計算環境内の第2のTPMからの構成証明測定と比較することを含む、請求項2に記載の方法。
  6. 前記暗号化インフラを前記検査することが、前記第1の計算環境の第1の証明書ストア内の証明書が所定のルートオブトラストによって署名されていることを確認することを含む、請求項1に記載の方法。
  7. 前記コード整合性インフラを前記検査することが、既知の正常なコード整合性ポリシファイルのハッシュを含むセキュリティカタログに対してアクティブなコード整合性ポリシファイルのハッシュを確認することを含む、請求項1に記載の方法。
  8. 前記コード整合性インフラを前記検査することが、前記セキュリティカタログが所定の信頼された組織の証明書の1つによって署名されていることを確認することを含む、請求項7に記載の方法。
  9. 前記ハイパーバイザ機能を前記検査することが、ハイパーバイザに見合ったプロセッサ機能が前記第1の計算環境の中央処理装置によって公開されているかどうかを検査することを含む、請求項1に記載の方法。
  10. 第1の計算環境内で実行されるとき、請求項1に記載のステップを実行するコンピュータ実行可能命令を含む、1つ又は複数のコンピュータ可読記憶媒体。
  11. 前記環境タイプ検証を前記行うことが、前記第1の計算環境内に所定のシステムドライバコンポーネントが存在するかどうかを検査することを含む、請求項1に記載の方法。
  12. 前記環境タイプ検証を前記行うことが、前記第1の計算環境内で資源管理スタックが非活性化されているかどうかを検査することを含む、請求項1に記載の方法。
  13. 前記環境タイプ検証を前記行うことが、前記第1の計算環境のファームウェア内で所定のファームウェア変数が所定値に設定されているかどうかを検査することを含む、請求項1に記載の方法。
  14. 前記第1の事前条件が前記アプリケーションプログラムの実行を特定の計算装置のハードウェアマシン識別子に制限する、請求項1に記載の方法。
  15. 前記第1の計算環境の外部のポリシ管理サービスを参照することにより、前記得られたアプリケーションポリシデータを確認することを更に含む、請求項1に記載の方法。
JP2022520807A 2019-11-01 2020-10-23 ポリシ強制のための仮想環境タイプ検証 Pending JP2023500433A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/672,429 US11354402B2 (en) 2019-11-01 2019-11-01 Virtual environment type validation for policy enforcement
US16/672,429 2019-11-01
PCT/US2020/056955 WO2021086737A1 (en) 2019-11-01 2020-10-23 Virtual environment type validation for policy enforcement

Publications (2)

Publication Number Publication Date
JP2023500433A true JP2023500433A (ja) 2023-01-06
JPWO2021086737A5 JPWO2021086737A5 (ja) 2023-09-20

Family

ID=73449210

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022520807A Pending JP2023500433A (ja) 2019-11-01 2020-10-23 ポリシ強制のための仮想環境タイプ検証

Country Status (11)

Country Link
US (1) US11354402B2 (ja)
EP (2) EP4283498A3 (ja)
JP (1) JP2023500433A (ja)
KR (1) KR20220090537A (ja)
CN (1) CN114651253A (ja)
AU (1) AU2020372995A1 (ja)
CA (1) CA3157071A1 (ja)
IL (1) IL292470A (ja)
MX (1) MX2022005046A (ja)
WO (1) WO2021086737A1 (ja)
ZA (1) ZA202203870B (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220413883A1 (en) * 2021-06-25 2022-12-29 Microsoft Technology Licensing, Llc Secure computing mechanism
US20230131132A1 (en) * 2021-10-21 2023-04-27 Nokia Solutions And Networks Oy Securing containerized applications
EP4250149A1 (de) * 2022-03-21 2023-09-27 Siemens Aktiengesellschaft Dynamischen integritätsüberwachung einer auf einem gastrechner ausgeführten container-laufzeitumgebung

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7181017B1 (en) * 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US8205241B2 (en) * 2008-01-30 2012-06-19 Microsoft Corporation Detection of hardware-based virtual machine environment
US20130144725A1 (en) * 2011-12-02 2013-06-06 General Instrument Corporation Presenting content to a user in accordance with an agreed upon content-presentation policy
US8763159B1 (en) * 2012-12-05 2014-06-24 Parallels IP Holdings GmbH System and method for application license management in virtual environments
US9276963B2 (en) * 2012-12-28 2016-03-01 Intel Corporation Policy-based secure containers for multiple enterprise applications
US9652631B2 (en) * 2014-05-05 2017-05-16 Microsoft Technology Licensing, Llc Secure transport of encrypted virtual machines with continuous owner access
WO2016081867A1 (en) * 2014-11-20 2016-05-26 Interdigital Patent Holdings, Inc. Providing security to computing systems
US10127030B1 (en) * 2016-03-04 2018-11-13 Quest Software Inc. Systems and methods for controlled container execution
US10333985B2 (en) * 2017-01-09 2019-06-25 Microsoft Technology Licensing, Llc Distribution and management of services in virtual environments
US10587411B2 (en) * 2017-04-11 2020-03-10 International Business Machines Corporation Zero-knowledge verifiably attestable transaction containers using secure processors
US11394691B2 (en) * 2018-06-05 2022-07-19 Acreto Cloud Corporation Ecosystem per distributed element security through virtual isolation networks
US11106789B2 (en) * 2019-03-05 2021-08-31 Microsoft Technology Licensing, Llc Dynamic cybersecurity detection of sequence anomalies

Also Published As

Publication number Publication date
CN114651253A (zh) 2022-06-21
IL292470A (en) 2022-06-01
AU2020372995A1 (en) 2022-06-16
EP4052155A1 (en) 2022-09-07
EP4052155B1 (en) 2023-11-29
KR20220090537A (ko) 2022-06-29
US20220405382A1 (en) 2022-12-22
EP4283498A2 (en) 2023-11-29
CA3157071A1 (en) 2021-05-06
US11354402B2 (en) 2022-06-07
EP4283498A3 (en) 2024-03-13
ZA202203870B (en) 2024-01-31
MX2022005046A (es) 2022-05-16
US20210133312A1 (en) 2021-05-06
WO2021086737A1 (en) 2021-05-06

Similar Documents

Publication Publication Date Title
US8213618B2 (en) Protecting content on client platforms
JP5992457B2 (ja) オペレーティングシステムのコンフィグレーション値の保護
US8938618B2 (en) Device booting with an initial protection component
US7139915B2 (en) Method and apparatus for authenticating an open system application to a portable IC device
US6609199B1 (en) Method and apparatus for authenticating an open system application to a portable IC device
US8549313B2 (en) Method and system for integrated securing and managing of virtual machines and virtual appliances
JP5455318B2 (ja) 動的信頼管理
EP4052155B1 (en) Virtual environment type validation for policy enforcement
Martin The ten-page introduction to Trusted Computing
KR20090043530A (ko) 소프트웨어 레퓨테이션을 이용한 소프트웨어 인가 방법 및 시스템, 및 그를 위한 컴퓨터-판독가능 매체
US20060294355A1 (en) Secure variable/image storage and access
US10592661B2 (en) Package processing
US8656190B2 (en) One time settable tamper resistant software repository
EP3338214B1 (en) Secure computation environment
US11966461B2 (en) Virtual environment type validation for policy enforcement
Akram et al. An introduction to the trusted platform module and mobile trusted module
RU2812867C1 (ru) Защита двоичных файлов типовых коммерческих программ от пиратства с использованием аппаратных анклавов
Umar et al. Trusted Execution Environment and Host Card Emulation
Yadav SECURE BOOTLOADER IN EMBEDDED SYSTEM USING MISRA-C

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230911

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230911