JP5905586B2 - 仮想マシンおよびネストにされた仮想マシンマネージャの認証されたランチ - Google Patents

仮想マシンおよびネストにされた仮想マシンマネージャの認証されたランチ Download PDF

Info

Publication number
JP5905586B2
JP5905586B2 JP2014533261A JP2014533261A JP5905586B2 JP 5905586 B2 JP5905586 B2 JP 5905586B2 JP 2014533261 A JP2014533261 A JP 2014533261A JP 2014533261 A JP2014533261 A JP 2014533261A JP 5905586 B2 JP5905586 B2 JP 5905586B2
Authority
JP
Japan
Prior art keywords
vmm
processor
lcpm
launch
lcp
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.)
Active
Application number
JP2014533261A
Other languages
English (en)
Other versions
JP2014528604A (ja
Inventor
エム. スミス、ネッド
エム. スミス、ネッド
エル. サヒタ、ラビ
エル. サヒタ、ラビ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2014528604A publication Critical patent/JP2014528604A/ja
Application granted granted Critical
Publication of JP5905586B2 publication Critical patent/JP5905586B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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
    • G06F21/575Secure boot
    • 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/45562Creating, deleting, cloning virtual machine instances
    • 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/45566Nested virtual machines
    • 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/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Description

「ランチコントロール」またはランチコントロールポリシー(LCP:launch control policy)は、総合的なエンドポイント保護ソルーションの一部である。従来のアンチウイルススキャンは、既知の「悪い」ソフトウェアを特定することを目的とする「ブラックリスト作成」技法を使用する。スキャンエンジンがプラットフォームリソースを検索する際には、攻撃シグネチャーがスキャンエンジンの指針となる。感染したリソースは修復のためにフラグを立てられる。「ホワイトリスト作成」は、既知の「善い」ソフトウェアのリストを作り出すことを含む。このリストはスキャンエンジンに供給され、スキャンエンジンはリストに載っていないリソースに修復のためのフラグを立てる。ブラックリスト作成およびホワイトリスト作成は、一緒に機能することでシステムのすべてのリソースを仕分けすることができる。ランチコントロールは、ホワイトリストスキャンエンジンをシステムランチ手順に統合して、マルウェアがシステムで実行される機会を獲得しないようにする。たとえば、ホワイトリストは、実行環境(たとえば動的にランチされる環境)をブートまたはランチするために用いられるコードおよびデータ(たとえばハッシュ)の参照測定を含んでよい。したがって、ランチコントロールは、「トラステッドブート」が行われることを確実にするために用いることができる。
トラステッドブート使用は、ブートフローのすべての段階に影響を及ぼしてよく、「ルートオブトラスト(roots−of−trust)」としても知られるトラステッドハードウェアにもとづいてよい。トラステッド実行テクノロジー(TXT:Trusted Execution Technology)は、仮想環境のためのトラステッドブート使用を実装するために用いることができるランチコントロールおよびルートオブトラストテクノロジーの一例である。ハードウェアルートオブトラストの助けにより、トラステッドブート使用がマルウェアが上のレイヤに対して正当なハードウェアを偽装する可能性を取り除くかまたは低くする。TXTは、ランチコントロールポリシーを使用してトラステッド環境だけがランチされることを確実にする動的な測定のためのルートオブトラスト(RTM:root of trust for measurement)を実装する。言い換えると、TXTは、プラットフォーム内のさまざまな実行環境について実行される一連の完全性チェックにおける出発点であってよい。従って、TXTは、マイクロコードにおけるセキュアな出発点を提供してよい。たとえば、さまざまなランチコントロール、たとえばTXTランチコントロールは、仮想マシンマネージャ(VMM:virtual machine manager)ランチャーが信頼に値することを確実にする。
VMMは、コンピュータが複数の実行環境をサポートすることを可能にするホストプログラムを含んでよい。たとえば、VMMは、単一の物理マシン(たとえばサーバ)を分割し、複数のオペレーティングシステムが同じCPU上でセキュアに実行され、CPU利用率を増加させることを可能にする手段をエミュレーションによって提供してよい。VMMは、VMを管理することができる。VMは、命令を物理マシンのように実行する、マシン(すなわちコンピュータ)のソフトウェア実装を含んでよい。
再びTXTランチコントロールに関して、そのようなランチコントロールは、後に続いてランチされるVMMインフラストラクチャ(たとえば仮想マシン(VM:virtual machine)、ネストにされたVMM、ネストにされたVM、およびオペレーティングシステム(OS:operating system)環境)も信頼に値することを確実にするわけではない。従って、ランチコントロールは、実際には単一のVMMをランチするために用いることができる。しかし、VMMが実行されると、TXTモデル固有レジスタ(MSR:model specific register)は、VMXルート(VMX−root)を用いるVMMがアクティブである間はTXTが呼び出されないように設定される。従って、ネストにされたVMMがランチされると、TXTは利用可能でなく(たとえばGETSEC(SENTER)コマンドは無効である)、ネストにされたVMMはセキュアにランチされない。このときVMおよびネストにされたVMMは、ランチコントロールポリシーを適用しないでロードされ、それによってセキュリティ侵害の機会の可能性が生まれる。
本発明の実施形態の特徴および利点は、添付の特許請求の範囲、以下の1つ以上の例示実施形態の詳細な記載、および対応する図面から自明となる。
本発明の実施形態の概略フローチャートを含む。 本発明の実施形態のさまざまな側面の組織を示すブロック図を含む。 本発明の実施形態で用いられるシステムを含む。
以下の記載においては、多数の特定の詳細が示されるが、本発明の実施形態はこれらの特定の詳細を用いずに実施されてよい。本記載の理解が不明瞭にならないように、周知の回路、構造物および技法は詳しくは示されない。「実施形態」、「さまざまな実施形態」などは、そう記載される実施形態が特定の特徴、構造物または特性を含んでよいことを示すが、必ずしもすべての実施形態が特定の特徴、構造物または特性を含むわけではない。いくつかの実施形態が他の実施形態について記載された特徴の一部、すべてを有してよく、あるいはまったくもたなくてよい。「第1の」、「第2の」、「第3の」などは共通のオブジェクトを記載し、同様なオブジェクトの異なるインスタンスが参照されることを示す。そのような形容詞はそう記載されるオブジェクトが、時間的に、空間的に、順位的に、または他の任意の様式的に所定のシークエンスでなければならないことを意味しない。「接続された」は、要素が互いに物理的または電気的に直接接触していることを示してよく、「結合された」は、要素が互いに協力するかまたは相互作用するが、要素は物理的または電気的に直接接触していてもいなくてもよいことを示してよい。また、異なる図の中で同じまたは類似の部品を示すために類似の数字または同じ数字が用いられてよいが、そうすることは類似の数字または同じ数を含むすべての図が単一の実施形態または同じ実施形態を構成することを意味するわけではない。
本発明の実施形態は、VMおよび/またはネストにされたVMMの認証されたランチを提供する。実施形態は、VMおよびネストにされたVMMのためのVMM保護されたランチコントロール機構を呼び出すインタフェースを用いてそのようにしてよい。インタフェースは、アーキテクチャとしてジェネリックであってよい。いくつかの実施形態は、VMおよびVMMを包含するように拡張されたTXTランチコントロールポリシーを用いてよい。
図1は、本発明の実施形態の概略フローチャートを含む。図2は、本発明の実施形態のさまざまな側面の組織を示すブロック図を含む。図1および図2は、互いに関連させられて下記で考察されるが、各図の実施形態は必ずしも互いに一緒に機能するようには限定されない。
図2は組織図200を含む。簡潔には、組織図200は、イメージ201と、イメージ201に対応する代表ホワイトリストを有するランチコントロールポリシー211と、候補コードイメージ201をホワイトリスト211中の測定と対比して認証するコードを含む検証コードモジュール(たとえばランチコントロールモジュール(LCPM:launch control module))221と、の集まりを含む。組織図200は、下記でもっと十分に説明される。実施形態において、LCPMは、ルートVMM特権で実行される動的なモジュール式コードオブジェクトである。プラットフォーム構成レジスタ(PCR:platform configuration register)231がイメージ測定を記憶する。
最初にルートVMM(VMM0)155がブートされる。このブートは、任意の数のセキュアなブート機構によって実装されたセキュアなブートであってよい。上記で取り上げられた1つのそのような機構はTXTランチコントロールを含む。TXTランチコントロールに関する情報は、http://software-intel-com/en-us/articles/intel-trusted-execution-technology-a-primer/, http://download-intel-com/technology/security/downloads/315168-pdfならびに他の一般に利用可能なロケーションにおいて最小限利用可能である。
ルートVMM(VMM0)をセキュアにランチすることは、いくつかのアクションを含んでよい。TXT 226は、特定のイメージ、たとえばSINIT ACM 206が真正であることを確実にするランチコントロールポリシーとして動作してよい。SINIT ACMは、セキュアなブートプロセスにおいて用いられる認証されたコードモジュールに関係する。SINIT ACM 206の測定は、PCR 17(236)に記憶される。PCRは、セキュリティ関連情報の暗号ハッシュ(たとえばVMMのようなトラステッド実行環境によって実行されるコードおよびそれをランチするために用いられるローダコードのハッシュ)を含むトラステッドプラットフォームモジュール(TPM:trusted platform module)レジスタである。
VMM0のセキュアなランチ時に、ブロック225においてSINIT ACMを用いてLCP0 215がルートVMM0 205イメージと比較されてよい。LCP0 215およびSINIT ACM 225は、LCPM1、LCPM2、LCPM3 205イメージを認証するためにも用いられてよい。これらのイメージの一部は、下記で考察される後の段階(たとえばネストにされたVMMブート)において用いられてよい。これらの測定は、VMM0についてはPCR18に、LCPM1、LCPM2、LCPM3についてはPCR19、20、21にそれぞれ記憶される。
少々横道に逸れると、ストレージのために用いられる正確なPCRが構成可能であり、他の実施形態においては変化してよい。たとえば、PCRアロケーション指針は、仕様に概略が記載されてよい。そのような仕様は、トラステッドコンピューティンググループ(TCG)PCクライアント仕様およびTPM仕様を含む。これらの仕様は、PCR17、18、19、20、および21を動的ルートオブトラスト(たとえばTXT)による使用のために予約する。PCR17は、SENTERによってACMを測定するために用いられてよい。ACMは、VMMランチャーを測定するためにPCR18を用いてよい。VMMランチャーは、VMMを測定するためにPCR18を用いてよく、任意選択としてPCR19を用いてよい。VMMはTPMを仮想化してよく、したがってVM(およびそれに関連付けられるLCPM)を測定するために他のPCRを用いてよい。VMMは、PCR20および21も利用可能であってよい。さらに、複数のLCPM測定が同じPCRに含まれてよい。したがって、PCRの使用は構成可能であり、実施形態の変化とともに変化してよい。
図1に戻り、ブートストラップされたローダ、たとえばVM0 105がブロック110によって仮想ブートされる。ブロック115は、仮想マシンVM1 104(図2の要素204にある)のような実体(Entity)をブートするプロセスを開始する。(「実体」は、ネストにされたVMMでもあってよいが、この例においては説明を目的としてVM1が用いられる。)VM1 104がランチされると、ブートストラップローダVM0 105は命令、たとえばVM1 104をランチするLCPM1 124(図2の224)に至るリーフを指定するVMFUNCインタフェース命令を呼び出す。VMFUNCインタフェースは、割り込みを防止するかまたはVMコントロールビットをセットしてよく、したがってLCPM1 224は、測定プロセスの割り込みをまったく受けずに実行することが許可される。このインタフェースは、システム上の他のプロセッサも静止させてよく、その結果、測定は他のプロセッサから干渉されずに行われることができる。さらに、VMFUNCは、たとえばTXTの使用にもとづいてマイクロコードが完全性チェックおよび完全性チェッキングコントロールを実行する安全な場所と既にみなされることを承認してよい。VMFUNCは下記でさらに考察される。
したがって、実行管理は、ブロック130によってLCPM1 124(図2の要素224)に渡される。実施形態において、LCPM1はVM1上で実行されるVMとして動作する。LCPM1 124は、メモリ中のVM1 104の位置を特定し、LCP1 114(図2の要素214)にもとづいてLCPM1のために意図される完全性測定を実行し、計算された測定がLCP1のポリシーの1つによって受け入れられることを検証する。LCPはホワイトリストを含んでよく、ホワイトリストはおそらくはトラステッドサーバに確保された、予測されるソフトウェアイメージを記載する。詳しくは、実施形態において、LCPM1はLCP1をメモリ、たとえば拡張ページテーブル(EPT:extended page table)に配置された保護メモリに読み込む。EPTは、下記でVMFUNCインタフェースに関してもっと詳しく考察される。
ブロック140において、VM1の測定はPCR(たとえばPCR8)234に拡張される。PCR234はTPM145または他のそのようなハードウェア証明モジュールに含まれる。TPMは、セキュアなストレージおよびセキュアなレポーティングに関連付けられるさまざまなセキュリティ機能を実装するセキュリティコプロセッサである。TPMのような暗号プロセッサに関する詳細は、少なくともサンディープ・バジカ(Sundeep Bajikar)による「ノートブックPCのトラステッドプラットフォームモジュール(TPM)利用セキュリティ 白書("Trusted Platform Module (TPM) based Security on Notebook PCs − White Paper")」、http://www-intel-com/design/mobile/platform/downloads/Trusted_Platform_Module_White_Paper-pdfにある。ブロック160において、PCRログが更新される。実施形態は、VMFUNC、TPM等を用いる動作に限定されないが、そのような要素は例を示す目的のため用いられているだけである。次に、ルートVMM 155(図2の要素205に含まれる)による実行のためにVM1がスケジュールされる。ブロック165においてVMFUNC(エグジット)が実行される。
上記のプロセス実施形態(図1および図2に関する)は、説明を目的として用いられたVM1の代わりに、ネストにされたVMMにも適用可能である。この趣旨に沿って、図2のブロック204にはVM(たとえばVM1)とネストにされたVMMとの両方が含まれる。言い換えると、図1は、VM1のセキュアなブートを記載しているが、ネストにされたVMMをセキュアにブートするために同じプロセスを用いることができるであろう。
図2に示されるように、追加の仮想化レイヤがセキュアにされてよい。たとえば、ネストにされたVM203がLCPM2 223によって測定され、LCP2 213に含まれる測定と比較されてよい。測定は、PCR233によって記憶されてよい。さらに、LCPM3 221によって、ドライバ、ライブラリおよび実行可能コード202が測定され、LCP3 212に含まれる測定と比較されてよい。測定は、PCR232によって記憶されてよい。
ネストにされたVMに関するより具体的な例として、ブートストラップされたローダVM0 105がブロック110によって仮想的にブートされる。ネストにされたVM2 203をブートするプロセスをブロック115が開始する。VM2 203がランチされると、ブートストラップローダVM0 105は、命令、たとえば、VM2 203をランチするLCPM2 223に至るリーフを指定するVMFUNCインタフェース命令を呼び出す。ブロック130によって、実行管理はLCPM2 223に渡される。LCPM2 223はメモリ内のVM2 203の位置を特定し、LCPM2のために意図されたLCP2 213にもとづいて完全性測定を実行し、計算された測定がLCP2内のポリシーの1つによって受け入れられることを検証する。ブロック140において、VM2の測定は、TPMに含まれるPCR233に拡張される。ブロック160において、PCRログが更新される。次に、ブロック155において、VM2の実行がルートVMM155によってスケジュールされる。ブロック165において、VMFUNC(エグジット)が実行される。
すぐ上で(図1および図2に関して)記載されたプロセス実施形態は、別の実体内にさらにネストにされた、ネストにされたVMMにも適用可能である。
したがって、ブロック110は、LCPM(225)をランチするルートVMM(105)に通じる。LCPMは、保護されたメモリにロードされるVMのためのイメージを用いてLCPを評価するためにある。同様に、ネストにされたVMMのためのLCPMも(これは図1には特に示されていないが)ロードされてよい。ルートVMM LCPは、LCPMの完全性を検証するために用いられる。さらに、VMまたはネストにされたVMMは、VMまたはネストにされたVMMが、セキュアにブートされたルートVMMであってもルートVMMからランチされるときより、セキュアにランチされる。その代わり、ルートVMMは直接依存されず(すなわちバイパスされ)、その代わり、VMまたはネストにされたVMMをブートするためにTXTハードウェア利用シークエンス(または他のハードウェア証明モジュール利用方法)が依存される。一実施形態において、通常はルートVMMとともに機能するように限定されるランチコントロール機構、ツールおよびインフラストラクチャがVMおよびVMMとともに働くように拡張される。たとえば、次に、ランチコントロールがTXTおよび同様なセキュリティ技法を超えて拡張される。実施形態は、たとえばTXTランチコントロールおよび/またはBIOSトラステッドブート機構によってキックオフされたホワイトリストチェッキングプロセスをネストにされたVMMおよびVM環境に続行する。トラステッドシステムブート、トラステッドルートVMMブート、およびネストにされたトラステッドVMMおよび/またはVMブートにもとづいて、実施形態は、さかのぼってルートオブトラストに達する途切れのないチェーンオブトラストを有するトラステッドブローカーサービスを提供してよい。このチェーンオブトラストは、たとえばPCRログの内容にもとづいて構築されてよい。
VMFUNC命令に関して、通常、VMおよびネストにされたVMMは、ランチコントロールポリシーを適用されずにロードされる。さらに、VMMベンダーは、ランチコントロールのための普通のアーキテクチャインタフェースに依存しない。しかし、本発明のさまざまな実施形態では、ルートVMMは、上記のように、ランチコントロールポリシーモジュールを呼び出すVMFUNCコール(またはその機能均等物)を用いることができる。LCPMは、LCPポリシーに含まれるホワイトリストをどのようにパースし、検証するかを理解している。LCPポリシーは、ロードされるイメージの種類(たとえばVMまたはネストにされたVMM)に固有であってよい。LCPMは、ルートVMMを適切に保護して実行される。VMFUNCコールは、VMおよびネストにされたVMMがベンダーに依存しない確実な方法によって呼び出されることを確実にし、これによって、LCPオーサーはVMMおよびVMのさまざまなベンダー実装を網羅するかまたはさまざまなベンダー実装にわたって確実に機能するLCPを構築することができる。したがって、VMMベンダーは、ルートVMMまたはネストにされたVMMのどちらかとして機能するVMMのために、顕著に異なる製品/装置の最小在庫管理単位(SKU:stock keeping unit)を維持しなくてよい。
さらに、VMFUNCに関して、VMFUNCは、EPTメモリ保護を用いるアーキテクチャインタフェースである。EPTは、メモリ管理ユニット(MMU:memory management unit)のための仮想化技術である。この特徴がアクティブであるとき、普通のIA−32ページテーブル(コントロールレジスタCR3によって参照される)は、線形アドレスからゲスト物理アドレスに翻訳される。別個の組のページテーブル(すなわちEPTテーブル)は、ゲスト物理アドレスからメモリにアクセスするために用いられるホスト物理アドレスに翻訳される。その結果、ゲストソフトウェアがそれ自体のIA−32ページテーブルを変更し、ページフォールトを直接取り扱うことが可能になり得る。これによって、EPTを用いない仮想化オーバーヘッドの主なソースであるページテーブル仮想化と関連付けられたVMエグジットをVMMが回避することが可能になる。VMFUNCは、たとえばEPTを用いてLCP1(114)およびLCPM1(124)を分離することによってEPTを利用する。その際に、LCPM1は、VMFUNCエントリポイントの外部に由来する書き込み動作から保護される。そのとき、測定は、TPM内に含まれるレジスタに記憶されることができる。さらに、EPTは、特定のハードウェアスレッド上だけでアクティブであってよく、したがって、他のハードウェアスレッド上で実行され得る他のソフトウェアがLCP1の測定を不正に変更するか又は妨げることを許さない。
実施形態において、EPTは、LCPMのためのメモリ内の境界を指定するために用いられてよい。VMがロードされるときにLCPMコードを再チェックする(すべてのVMMコードをチェックすることなく)と有利なことがある。たとえばLCPMコードはポリシーエンフォースメントルールを固有に実装するからである。このチェックは、VMMコードを再ロードしない。その代わりに、チェックはインメモリチェックである(たとえばEPT内のメモリページが再ハッシュされ、インメモリイメージに対応するホワイトリストと比較される)。これらの再測定のためにPCR19、20、21が用いられ得る。それらのPCRは(PCR18に含まれてよい)VMMの全測定を含まないからである。
より詳しくは、実施形態において、特別なプロパティおよび/または用途を有するメモリページの群を定義するためにEPTが用いられる。この実施形態は、LCPM(たとえばコード)およびLCP(たとえばデータ)機能を実装するVMMコードおよびデータページのサブセットを構築するためにEPTを用いる。VMFUNCが制御をVMMに向けると、LCPMを含むEPTを検証するためにVMFUNCの新しいリーフが用いられることができ、LCPページは最初にランチされてから変化していない。実施形態は、これをアドレス範囲に類似した方法で実装してよい。LCPMページは、それらが移動されず、長くされず、および/または短くされていないことを確実とするためにチェック/検証されてよい。完全性ポリシーを強制するためにVMFUNCが用いられると、予測されるLCPMおよびLCP測定は、新しいリーフへのパラメータとしてVMFUNCに渡されることができる。次に、VMFUNCは、LCPMコードに実行を渡す前にEPT測定を比較することができる。VMFUNCは、比較が一致しなければフォールトを示してよい。
実施形態において、ルートVMM機能は、VMFUNCの呼出しがRing0において行われ、LCPMの実行がRing1において行われるように、CPUリング構造にしたがって配分されてよい。VMM機能の残りは、Ring2およびRing3において実装されることができる。この実装によって、ハードウェア機構がLCPMおよびVMFUNC呼出しを保護/堅固化することが可能になる。LCPMをサポートするためのVMFUNCリーフは、この特定のリーフがring0においてゲストVMMによってだけ呼び出されることができるように強制してよい。実施形態において、ルートVMMはTXTを用いるであろう。たとえば、VMM/VMMランチャーをランチするためにTXTが用いられるであろう。ランチされたら、ゲストをランチするためにVMM内のLCPMが用いられるであろう。したがって、リングは、ランチ機能をVMMおよびVMMインフラストラクチャ内のセキュリティに関連しない他の機能からさらに分離し、孤立させるために用いられることができるであろう。
実施形態は、検証されたブート環境および測定されたブート環境を含むいくつかの環境に適している。
検証されたブートは、予測されるソフトウェアイメージを記載するホワイトリストをトラステッドサーバから受け取る。クライアントプラットフォームのトラステッドコンポーネントは、実行される前のソフトウェアイメージを検査し、ホワイトリストと比較する。一致すれば、コンポーネントは実行することを許可される。一致しなければ、修復アクションが実行される。この動作を行うコンポーネントは、ときに検証用ルートオブトラストと呼ばれる。これは、ハードウェア証明モジュール(たとえばTPM)を必要としないことがある。
しかし、測定されたブートは、実行される前のソフトウェアイメージを検査し、セキュアなストレージロケーションに保存する。測定されたブートは、ブートを制約するかまたは変化させるホワイトリストを有さなくてよい。その代わりに、ホワイトリストは、クライアントがアクセスすることを望むリソースをホストするサーバに保持される。サーバがアクセスを許可する前提条件として、ソフトウェアの完全性レポートがサーバに送達される。サーバへのレポートの提示は、ときに証明(Attestation)と呼ばれる。サーバは、クライアントが顕著なリスクをもたらすかを判断するために証明レポートをホワイトリストと比較する。クライアントがリスクをもたらすなら、ネットワーク接続は閉じられる。これは、ハードウェア証明モジュール(たとえばTPM)を利用してよい。
さらに詳しくは、さまざまな実施形態において、検証されたブートは完全性ポリシーを直接強制する(すなわち、完全性ポリシーを満たさないコードの実行を妨げてよい)。しかし、測定されたブートは完全性ポリシーを満たさないコードの実行を可能にしてよい。たとえば、完全性ポリシーは実際にはリモートサーバにあってよく、クライアントに知られていないことがあるからである。したがって、クライアントは測定をセキュアに記憶(たとえばTPM PCRに)してよく、測定は、後で「引用され」、「証明」の一部としてサーバに送達される。サーバは、証明において見いだされる測定をホワイトリストのそのローカルコピー上の測定と比較することができる。ネットワーク接続を切断することによって、または更新サービスがクライアント(たとえばPC)を再構成しようとする修復ネットワークにクライアントを配置することによって、エンフォースメントはサーバにより適用されることができる。
したがって、実施形態は、第1のVMMをランチし、第2のVMMのランチを認証し、第1のVMMの内部で第2のVMMをネストにする。ネストにされたVMMの認証されたブートの代わりに、またはネストにされたVMMの認証されたブートに加えて、実施形態は、第1のVMのランチを認証し、第1のVMM(たとえばルートVMM)またはネストにされたVMMを用いて第1のVMを管理してよい。直前のシナリオのうちのどちらかにおいて、ルートVMM、または別のVMMをホストするVMM、あるいはVM、そのルートVMMまたはホストVMMは、リエントラントでないセキュアなブートによって(たとえばTXTランチによって)ブートされてよい。
実施形態は、(a)第2のLCPMを呼び出すことと、(b)ハードウェアセキュリティ証明モジュール(例えばTPMであるがこれに限定されない)を用いることとの両方を行いながらルートVMMを迂回することによって第2のVMMのランチを認証してよい。
ルートVMMを「迂回する」ための例に関して、ルートVMMは、ネストにされたVMMをあたかもVMであるかのように処理してよい。したがって、VMとVMMとの両方のランチコントロールは、ルートVMMから見れば同様であろう。ネストにされたVMMに焦点を合わせる。ネストにされたVMMが実行されると、それはロードするVMを特定する。ネストにされたVMMを測定するためのLCPMコードは、ネストにされたVMMページ範囲に含まれる。したがって、VMFUNCは、ネストにされたVMMを記載するEPTがルートVMMを記載するEPTと異なることを確実にしてよい。従って、ルートVMMが受諾(opt−in)すれば、ルートVMMは、この動作についてはある程度迂回されることができる。これは、たとえばEPT使用ならびにVMFUNCおよびネストにされたVMMをブートするためのブートストラップされたVM0(図1参照)の使用にもとづいてよい。
実施形態は、ネストにされた第2のVMMと関連付けられる第2のLCPを第2のLCPMによって評価してよい。実施形態は、第2のLCPMによって第2のVMMの完全性測定を行い、第2のLCPによって測定を認証してよい。実施形態は、測定をTPMまたは他のハードウェア証明モジュールに含まれるPCRに拡張し、測定をPCRに拡張することにもとづいてログを更新してよい。
実施形態は、第2のLCPMを保護されたメモリ(たとえばEPT)にロードし、第2のLCPMを実行してよく、第2のLCPMはルートVMM特権を有する。実施形態は、システムが第2のLCPに含まれるホワイトリストを第2のLCPMによって認証することを可能にしてよく、第2のLCPはVMMに固有であるがVMに固有ではない。実施形態は、第1のVMMと関連付けられる第1のLCPにもとづいて第1のVMMをブートしながら第2のLCPも認証してよい。さらに、実施形態は、第2のVMMのために特に構成されたわけではなく(例えばアーキテクチャ的に中立またはベンダー中立)、VMMとネストにされたVMMとの両方とインタフェース接続するように構成されたセキュアなインタフェースによって、第2のVMMのランチを認証してよい。
実施形態は、多数の異なるシステム型において実装されてよい。次に図3を参照すると、本発明の実施形態によるシステムのブロック図が示される。マルチプロセッサシステム500は、ポイントツーポイント相互接続システムであり、ポイントツーポイント相互接続550によって結合された第1のプロセッサ570および第2のプロセッサ580を含む。プロセッサ570および580のそれぞれは、マルチコアプロセッサであってよい。用語「プロセッサ」は、レジスタおよび/またはメモリからの電子的なデータを処理してその電子的なデータをレジスタおよび/またはメモリに記憶されてよい他の電子的なデータに変換する任意のデバイスまたはデバイスの一部を指してよい。第1のプロセッサ570は、メモリコントローラハブ(MCH:memory controller hub)およびポイントツーポイント(P−P:point−to−point)インタフェースを含んでよい。同様に、第2のプロセッサ580は、MCHおよびP−Pインタフェースを含んでよい。MCHは、プロセッサをそれぞれのメモリ、すなわちメモリ532およびメモリ534と結合させてよい。メモリ532およびメモリ534は、それぞれのプロセッサに局所的に取り付けられたメインメモリ(たとえばダイナミックランダムアクセスメモリ(DRAM:dynamic random access memory))の一部であってよい。第1のプロセッサ570および第2のプロセッサ580は、P−P相互接続によってチップセット590にそれぞれ結合されてよい。チップセット590は、たとえばRSAアクセラレータ、乱数発生器、キー、証明書、PCR、スタティックRAM、フラッシュメモリ、モノトニックカウンタ、デジタルシグネチャーアルゴリズム等を含むTPMまたは暗号プロセッサを含んでよい。そのようなチップセットの一例に関する詳細は、少なくともhttp://www-intel-com/design/mobile/platform/downloads/Trusted_Platform_Module_White_Paper-pdfにおいて入手可能である。実施形態は、いずれか一種類のセキュリティエンジンまたは暗号プロセッサとともに機能することに限定されるわけではなく、その代わりに、さまざまなベンダーからのさまざまなアーキテクチャを有するさまざまな離散型および/または統合型セキュリティエンジンとともに機能してよい。チップセット590は、P−Pインタフェースを含んでよい。さらに、チップセット590は、インタフェースによって第1のバス516に結合されてよい。第1のバス516を第2のバス520に結合させるバスブリッジ518とともに、さまざまな入力/出力(I/O:input/output)デバイス514が第1のバス516に結合されてよい。たとえば一実施形態において、キーボード/マウス522、通信デバイス526、および、コード530を含んでよいディスクドライブまたは他のマスストレージデバイスのようなデータストレージユニット528、を含むさまざまなデバイスが第2のバス520に結合されてよい。さらに、オーディオI/O524が第2のバス520に結合されてよい。
実施形態は、コードに実装されてよく、命令を記憶してある非一時的ストレージ媒体に記憶されてよい。命令は、命令を実行するようにシステムをプログラムするために用いられることができる。ストレージ媒体は、フロッピー(登録商標)ディスク、光ディスク、ソリッドステートドライブ(SSD:solid state drive)、読み取り専用コンパクトディスク(CD−ROM:compact disk read−only memory)、繰り返し書き込み可能コンパクトディスク(CD−RW:compact disk rewritable)、および光磁気ディスクを含む任意の種類のディスク、半導体デバイス、たとえば読み取り専用メモリ(ROM:read−only memory)、ランダムアクセスメモリ(RAM:random access memory)、たとえばダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM:static random access memory)、消去可能なプログラマブル読み取り専用メモリ(EPROM:erasable programmable read−only memory)、フラッシュメモリ、電気的に消去可能なプログラマブル読み取り専用メモリ(EEPROM:electrically erasable programmable read−only memory)、磁気カードまたは光カード、あるいは電子的な命令を記憶するのに適している任意の他の種類の媒体を含んでよいが、これに限定されるものではない。本発明の実施形態は、データ、たとえば命令、ファンクション、手続き(procedure)、データ構造、アプリケーションプログラム、構成セッティング、コード等への参照とともに本明細書に記載されてよい。データがマシンによってアクセスされると、マシンは、本明細書により詳しく記載されるように、タスクを実行し、抽象データ型を定義し、低レベルハードウェアコンテキストを規定し、および/または他の動作を実行することによって応答してよい。データは、揮発性および/または不揮発性データストレージに記憶されてよい。用語「コード」または「プログラム」は、アプリケーション、ドライバ、プロセス、ルーチン、メソッド、モジュール、およびサブプログラムを含む広い範囲のコンポーネントおよびコンストラクトを包含し、処理システムによって実行されると所望の1または複数の動作を実行する命令のいずれかの集まりを指してよい。さらに、代替実施形態は、開示された動作のすべてより数の少ない動作を用いるプロセス、追加の動作を用いるプロセス、同じ動作群を異なる順番で用いるプロセス、および本明細書に開示される個々の動作が組み合わされるか、再分割されるか、または他の変化を施されるプロセスを含んでよい。コンポーネントまたはモジュールは、望みに応じて組み合わされるかまたは分離され、デバイスの1つ以上の部分に配置されてよい。
本発明を、限られた数の実施形態に関して記載してきたが、実施形態からの多数の変更形および変化形が当業者には自明である。添付の特許請求の範囲はそのようなすべての変更形および変化形を本発明の真の技術思想および適用範囲に属するとして包含するものとする。
本実施形態の例を下記の各項目として示す。
[項目1]
実行されるとシステムが、
第1の仮想マシンマネージャ(VMM)をランチすること、
第2のVMMのランチを認証すること、および、
前記第1のVMMの内部で前記第2のVMMをネストにすること、
ができるようにする命令を含むプログラム。
[項目2]
前記システムが、
第1の仮想マシン(VM)のランチを認証すること、および
前記第1のVMMおよび前記第2のVMMの1つを用いて前記第1のVMを管理すること、 ができるようにする命令を含む、項目1に記載のプログラム。
[項目3]
前記第1のVMMは、リエントラントでないセキュアなブートによってランチされるルートVMMである、項目1又は2に記載のプログラム。
[項目4]
前記第2のVMMの前記ランチを認証することは、(a)第2のランチコントロールポリシーモジュール(LCPM)を呼び出すことと、(b)ハードウェアセキュリティ証明モジュールを用いることとの両方を行いながら、前記第1のVMMを迂回することを含む、項目1から3のいずれか1項に記載のプログラム。
[項目5]
前記ハードウェアセキュリティ証明モジュールは、トラステッドプラットフォームモジュール(TPM)を含む、項目4に記載のプログラム。
[項目6]
前記システムが、前記第2のVMMと関連付けられる第2のランチコントロールポリシー(LCP)を第2のランチコントロールポリシーモジュール(LCPM)によって評価することができるようにする命令を含む、項目1から5のいずれか1項に記載のプログラム。
[項目7]
前記システムが、前記第2のLCPMによって前記第2のVMMの完全性測定を実行し、前記第2のLCPによって前記測定を認証することができるようにする命令を含む、項目6に記載のプログラム。
[項目8]
前記システムが、
前記測定をトラステッドプラットフォームモジュール(TPM)に含まれるプラットフォーム構成レジスタ(PCR)に拡張すること、および
前記測定を前記PCRに拡張することにもとづいてログを更新すること
ができるようにする命令を含む、項目7に記載のプログラム。
[項目9]
前記システムが、前記第2のLCPMを保護されたメモリにロードすること、および前記第2のLCPMを実行することができるようにする命令を含み、前記第2のLCPMはルートVMM特権を有する、項目6に記載のプログラム。
[項目10]
前記システムが、前記第2のLCPに含まれるホワイトリストを前記第2のLCPMによって認証することができるようにする命令を含み、前記第2のLCPはVMMに固有であるがVMに固有でない、項目6に記載のプログラム。
[項目11]
前記システムが、前記第1のVMMと関連付けられる第1のLCPにもとづいて前記第1のVMMをブートしながら、前記第2のLCPを認証することができるようにする命令を含む、項目6に記載のプログラム。
[項目12]
前記システムが、特に前記第2のVMMのために構成されてはおらずかつVMMとネストにされたVMMとの両方とインタフェース接続するように構成されたセキュアなインタフェースによって、前記第2のVMMの前記ランチを認証することができるようにする命令を含む、項目1から11のいずれか1項に記載のプログラム。
[項目13]
第1の仮想マシンマネージャ(VMM)をランチすること、
第2のVMMのランチを認証すること、および、
前記第1のVMMの内部で前記第2のVMMをネストにすること
を含む方法。
[項目14]
第1の仮想マシン(VM)のランチを認証すること、および
前記第1のVMMおよび前記第2のVMMの1つを用いて前記第1のVMを管理すること、
を含む、項目13に記載の方法。
[項目15]
前記第2のVMMの前記ランチを認証することは、(a)第2のランチコントロールポリシーモジュール(LCPM)を呼び出すことと、(b)ハードウェアセキュリティ証明モジュールを用いることとの両方を行いながら、前記第1のVMMを迂回することを含む、項目13又は14に記載の方法。
[項目16]
前記第2のVMMと関連付けられる第2のランチコントロールポリシー(LCP)を第2のランチコントロールポリシーモジュール(LCPM)によって評価することを含む、項目13から15のいずれか1項に記載の方法。
[項目17]
前記第2のLCPMによって前記第2のVMMの完全性測定を実行すること、および前記第2のLCPによって前記測定を認証することを含む、項目16に記載の方法。
[項目18]
メモリ、及び、
前記メモリに結合され、(a)第1の仮想マシンマネージャ(VMM)をランチし、(b)第2のVMMのランチを認証し、(c)前記第1のVMMの内部で前記第2のVMMをネストにするプロセッサ、
を含むシステム。
[項目19]
前記プロセッサは、
第1の仮想マシン(VM)のランチを認証し、
前記第1のVMMおよび前記第2のVMMの1つを用いて前記第1のVMを管理する、
項目18に記載のシステム。
[項目20]
前記プロセッサは、前記第2のVMMと関連付けられる前記第2のランチコントロールポリシー(LCP)を第2のランチコントロールポリシーモジュール(LCPM)によって評価する、項目18又は19に記載のシステム。
[項目21]
前記プロセッサは、前記第2のLCPMによって前記第2のVMMの完全性測定を実行し、前記第2のLCPによって前記測定を認証する、項目20に記載のシステム。

Claims (18)

  1. ステムにおいて実行されるプログラムであって、
    前記システムのプロセッサが、第1の仮想マシンマネージャ(VMM)をランチすること、
    前記プロセッサが、第2のVMMのランチを認証すること、
    前記プロセッサが、前記第1のVMMの内部で前記第2のVMMをネストにすること、
    前記プロセッサが、第1の仮想マシン(VM)のランチを認証すること、および
    前記プロセッサが、前記第1のVMMおよび前記第2のVMMの1つを用いて前記第1のVMを管理すること、
    を実行させるためのプログラム。
  2. 前記第1のVMMは、リエントラントでないセキュアなブートによってランチされるルートVMMである、請求項に記載のプログラム。
  3. 前記第2のVMMの前記ランチを認証することは、前記プロセッサが、(a)第2のランチコントロールポリシーモジュール(LCPM)を呼び出すことと、(b)ハードウェアセキュリティ証明モジュールを用いることとの両方を行いながら、前記第1のVMMを迂回することを含む、請求項1または2に記載のプログラム。
  4. 前記ハードウェアセキュリティ証明モジュールは、トラステッドプラットフォームモジュール(TPM)を含む、請求項に記載のプログラム。
  5. 前記プロセッサが、前記第2のVMMと関連付けられる第2のランチコントロールポリシー(LCP)を第2のランチコントロールポリシーモジュール(LCPM)によって評価することを実行させるための、請求項1からのいずれか1項に記載のプログラム。
  6. 前記プロセッサが、前記第2のLCPMによって前記第2のVMMの完全性測定を実行し、前記第2のLCPによって前記測定を認証することを実行させるための、請求項に記載のプログラム。
  7. 前記プロセッサが、
    前記測定をトラステッドプラットフォームモジュール(TPM)に含まれるプラットフォーム構成レジスタ(PCR)に拡張すること、および
    前記測定を前記PCRに拡張することにもとづいてログを更新すること
    を実行させるための、請求項に記載のプログラム。
  8. 前記プロセッサが、ルートVMM特権を有する前記第2のLCPMを保護されたメモリにロードすること、および前記第2のLCPMを実行することを実行させるための、請求項に記載のプログラム。
  9. 前記プロセッサが、VMMに固有であるがVMに固有でない前記第2のLCPに含まれるホワイトリストを前記第2のLCPMによって認証することを実行させるための、請求項に記載のプログラム。
  10. 前記プロセッサが、前記第1のVMMと関連付けられる第1のLCPにもとづいて前記第1のVMMをブートしながら、前記第2のLCPを認証することを実行させるための、請求項に記載のプログラム。
  11. 前記プロセッサが、特に前記第2のVMMのために構成されてはおらずかつVMMとネストにされたVMMとの両方とインタフェース接続するように構成されたセキュアなインタフェースによって、前記第2のVMMの前記ランチを認証することを実行させるための、請求項1から10のいずれか1項に記載のプログラム。
  12. プロセッサが、第1の仮想マシンマネージャ(VMM)をランチすること、
    前記プロセッサが、第2のVMMのランチを認証すること
    前記プロセッサが、前記第1のVMMの内部で前記第2のVMMをネストにすること
    前記プロセッサが、第1の仮想マシン(VM)のランチを認証すること、および
    前記プロセッサが、前記第1のVMMおよび前記第2のVMMの1つを用いて前記第1のVMを管理すること、
    を含む方法。
  13. 前記第2のVMMの前記ランチを認証することは、前記プロセッサが、(a)第2のランチコントロールポリシーモジュール(LCPM)を呼び出すことと、(b)ハードウェアセキュリティ証明モジュールを用いることとの両方を行いながら、前記第1のVMMを迂回することを含む、請求項12に記載の方法。
  14. 前記プロセッサが、前記第2のVMMと関連付けられる第2のランチコントロールポリシー(LCP)を第2のランチコントロールポリシーモジュール(LCPM)によって評価することを含む、請求項12または13に記載の方法。
  15. 前記プロセッサが、前記第2のLCPMによって前記第2のVMMの完全性測定を実行すること、および前記第2のLCPによって前記測定を認証することを含む、請求項14に記載の方法。
  16. メモリ、及び、
    前記メモリに結合され、(a)第1の仮想マシンマネージャ(VMM)をランチし、(b)第2のVMMのランチを認証し、(c)前記第1のVMMの内部で前記第2のVMMをネストにし、第1の仮想マシン(VM)のランチを認証し、前記第1のVMMおよび前記第2のVMMの1つを用いて前記第1のVMを管理するプロセッサ、
    を含むシステム。
  17. 前記プロセッサは、前記第2のVMMと関連付けられる2のランチコントロールポリシー(LCP)を第2のランチコントロールポリシーモジュール(LCPM)によって評価する、請求項16に記載のシステム。
  18. 前記プロセッサは、前記第2のLCPMによって前記第2のVMMの完全性測定を実行し、前記第2のLCPによって前記測定を認証する、請求項17に記載のシステム。
JP2014533261A 2011-09-30 2011-09-30 仮想マシンおよびネストにされた仮想マシンマネージャの認証されたランチ Active JP5905586B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/054126 WO2013048425A1 (en) 2011-09-30 2011-09-30 Authenticated launch of virtual machines and nested virtual machine managers

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2016052569A Division JP6304837B2 (ja) 2016-03-16 2016-03-16 仮想マシンおよびネストにされた仮想マシンマネージャの認証されたランチ

Publications (2)

Publication Number Publication Date
JP2014528604A JP2014528604A (ja) 2014-10-27
JP5905586B2 true JP5905586B2 (ja) 2016-04-20

Family

ID=47996166

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014533261A Active JP5905586B2 (ja) 2011-09-30 2011-09-30 仮想マシンおよびネストにされた仮想マシンマネージャの認証されたランチ

Country Status (6)

Country Link
US (1) US9372984B2 (ja)
EP (1) EP2761438A4 (ja)
JP (1) JP5905586B2 (ja)
KR (2) KR20160043134A (ja)
CN (1) CN103827824B (ja)
WO (1) WO2013048425A1 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9992024B2 (en) * 2012-01-25 2018-06-05 Fujitsu Limited Establishing a chain of trust within a virtual machine
US20140053272A1 (en) * 2012-08-20 2014-02-20 Sandor Lukacs Multilevel Introspection of Nested Virtual Machines
CN104782155A (zh) * 2012-11-08 2015-07-15 诺基亚技术有限公司 移动tpm中部分虚拟的pcr组
CN103488937B (zh) * 2013-09-16 2017-02-22 华为技术有限公司 一种度量方法、电子设备及度量系统
KR102277666B1 (ko) 2014-06-30 2021-07-15 삼성전자 주식회사 영상처리장치 및 그 제어방법
FR3024915B1 (fr) * 2014-08-18 2016-09-09 Proton World Int Nv Dispositif et procede pour assurer des services de module de plateforme securisee
US9921979B2 (en) * 2015-01-14 2018-03-20 Red Hat Israel, Ltd. Position dependent code in virtual machine functions
US9436495B2 (en) 2015-01-23 2016-09-06 Red Hat Israel, Ltd. Protection against interrupts in virtual machine functions
US9875128B2 (en) 2015-01-23 2018-01-23 Red Hat Israel, Ltd. Using hypervisor trapping for protection against interrupts in virtual machine functions
US9715410B2 (en) 2015-01-30 2017-07-25 Red Hat Israel, Ltd. Protected virtual machine function access
US9607165B2 (en) 2015-02-13 2017-03-28 Red Hat Israel, Ltd. Watchdog code for virtual machine functions
US9684605B2 (en) * 2015-02-23 2017-06-20 Intel Corporation Translation lookaside buffer for guest physical addresses in a virtual machine
US10127064B2 (en) 2015-02-24 2018-11-13 Red Hat Israel, Ltd. Read-only VM function chaining for secure hypervisor access
US9740519B2 (en) 2015-02-25 2017-08-22 Red Hat Israel, Ltd. Cross hypervisor migration of virtual machines with VM functions
US9483301B2 (en) 2015-02-26 2016-11-01 Red Hat Israel, Ltd. Dynamic virtual machine function enabling
US9600190B2 (en) 2015-02-27 2017-03-21 Red Hat Israel, Ltd. Virtual machine functions for multiple privileged pages
US10911371B1 (en) 2015-03-16 2021-02-02 Amazon Technologies, Inc. Policy-based allocation of provider network resources
US9569247B2 (en) 2015-03-31 2017-02-14 Red Hat Israel, Ltd. Range based virtual machine functions
JP5847345B1 (ja) * 2015-04-10 2016-01-20 さくら情報システム株式会社 情報処理装置、認証方法及びプログラム
US9824032B2 (en) 2015-04-16 2017-11-21 Red Hat Israel, Ltd. Guest page table validation by virtual machine functions
US10613888B1 (en) 2015-12-15 2020-04-07 Amazon Technologies, Inc. Custom placement policies for virtual machines
US9880871B2 (en) 2016-02-23 2018-01-30 Red Hat Israel, Ltd. Protection from guest interrupts in a virtual machine function
US10248785B2 (en) 2016-02-29 2019-04-02 Red Hat Israel, Ltd. Application memory protection using a host page table switching virtual machine function
US10515023B2 (en) * 2016-02-29 2019-12-24 Intel Corporation System for address mapping and translation protection
US20210026950A1 (en) * 2016-03-07 2021-01-28 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
US10402576B2 (en) 2016-08-30 2019-09-03 Red Hat Israel, Ltd. Safe physical function passthrough using virtual machine functions
US10176007B2 (en) 2016-08-30 2019-01-08 Red Hat Israel, Ltd. Guest code emulation by virtual machine function
US10785311B2 (en) 2016-11-08 2020-09-22 Pearson Education, Inc. Secure cloud-managed content delivery computer ecosystem
US10268595B1 (en) * 2017-10-24 2019-04-23 Red Hat, Inc. Emulating page modification logging for a nested hypervisor
US11250123B2 (en) 2018-02-28 2022-02-15 Red Hat, Inc. Labeled security for control flow inside executable program code
US10776021B2 (en) * 2018-11-27 2020-09-15 Red Hat, Inc. Exit-less host page table switching and virtual machine function detection with memory pages storing an identification value that are mapped at the same guest physical addresses
CN109922056B (zh) 2019-02-26 2021-09-10 创新先进技术有限公司 数据安全处理方法及其终端、服务器
US11805114B2 (en) * 2020-09-30 2023-10-31 Dell Products L.P. Enhanced N-layer SSO controlled authentication for enterprise devices
US20220100906A1 (en) * 2021-12-08 2022-03-31 Intel Corporation Software library integrity verification mechanism

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4291964B2 (ja) 2001-04-19 2009-07-08 株式会社日立製作所 仮想計算機システム
US9785485B2 (en) * 2005-07-27 2017-10-10 Intel Corporation Virtualization event processing in a layered virtualization architecture
US20070106986A1 (en) * 2005-10-25 2007-05-10 Worley William S Jr Secure virtual-machine monitor
US20080235754A1 (en) * 2007-03-19 2008-09-25 Wiseman Willard M Methods and apparatus for enforcing launch policies in processing systems
US20090204964A1 (en) * 2007-10-12 2009-08-13 Foley Peter F Distributed trusted virtualization platform
US8321931B2 (en) 2008-03-31 2012-11-27 Intel Corporation Method and apparatus for sequential hypervisor invocation
WO2009123640A1 (en) * 2008-04-04 2009-10-08 Hewlett-Packard Development Company, L.P. Virtual machine manager system and methods
KR101032386B1 (ko) 2008-07-16 2011-05-03 주식회사 마크애니 가상 머신을 이용한 응용 프로그램 제공 방법 및 시스템,가상 응용 프로그램 수행 방법, 가상 머신 모듈 및 온라인서비스 제공 방법
US8738932B2 (en) * 2009-01-16 2014-05-27 Teleputers, Llc System and method for processor-based security
US8495628B2 (en) * 2009-08-23 2013-07-23 International Business Machines Corporation Para-virtualization in a nested virtualization environment using reduced number of nested VM exits
US8621460B2 (en) * 2009-11-02 2013-12-31 International Business Machines Corporation Endpoint-hosted hypervisor management
US8510569B2 (en) * 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
US20110153909A1 (en) * 2009-12-22 2011-06-23 Yao Zu Dong Efficient Nested Virtualization
US8819677B2 (en) * 2010-11-23 2014-08-26 International Business Machines Corporation Virtual machine data structures corresponding to nested virtualization levels
US8782412B2 (en) * 2011-08-31 2014-07-15 AstherPal Inc. Secured privileged access to an embedded client on a mobile device
US20140053272A1 (en) * 2012-08-20 2014-02-20 Sandor Lukacs Multilevel Introspection of Nested Virtual Machines
US9176767B2 (en) * 2013-04-11 2015-11-03 Cisco Technology, Inc. Network interface card device pass-through with multiple nested hypervisors
WO2014209269A1 (en) * 2013-06-24 2014-12-31 Intel Corporation A protected memory view for nested page table access by virtual machine guests

Also Published As

Publication number Publication date
US20130276057A1 (en) 2013-10-17
CN103827824B (zh) 2017-09-05
KR20140069065A (ko) 2014-06-09
EP2761438A1 (en) 2014-08-06
CN103827824A (zh) 2014-05-28
US9372984B2 (en) 2016-06-21
KR20160043134A (ko) 2016-04-20
WO2013048425A1 (en) 2013-04-04
EP2761438A4 (en) 2015-04-22
JP2014528604A (ja) 2014-10-27

Similar Documents

Publication Publication Date Title
JP5905586B2 (ja) 仮想マシンおよびネストにされた仮想マシンマネージャの認証されたランチ
EP2973179B1 (en) Dynamically loaded measured environment for secure code launch
US8321931B2 (en) Method and apparatus for sequential hypervisor invocation
US8516481B2 (en) Virtual machine manager system and methods
Ibrahim et al. Cloudsec: a security monitoring appliance for virtual machines in the iaas cloud model
JP5957004B2 (ja) 信頼できるホスト環境が仮想計算機(vm)の要件に準拠しているという妥当性確認を提供するためのシステム、方法、コンピュータ・プログラム製品、およびコンピュータ・プログラム
JP6218859B2 (ja) 仮想マシンの完全性保護のためのメモリイントロスペクションエンジン
US9202046B2 (en) Systems and methods for executing arbitrary applications in secure environments
JP5307196B2 (ja) シリコンに一体化されたコードのシステムへの提供
US20150135311A1 (en) Virtual machine validation
US11475131B2 (en) Hypervisor level signature checks for encrypted trusted execution environments
Ding et al. HyperVerify: A VM-assisted architecture for monitoring hypervisor non-control data
Kinebuchi et al. Monitoring integrity using limited local memory
JP6304837B2 (ja) 仮想マシンおよびネストにされた仮想マシンマネージャの認証されたランチ
Sahita et al. Security analysis of confidential-compute instruction set architecture for virtualized workloads
Gebhardt Towards trustworthy virtualisation: Improving the trusted virtual infrastructure
Schramm et al. The benefits of combining trusted computing with virtualization techniques
Vasudevan et al. Integrity-Protected Micro-Hypervisor on x86 and ARM Hardware Virtualized Platforms
Pop et al. Fast switch into a trustworthy virtual machine for running security-sensitive applications
dos Santos TrustFrame, a Software Development Framework for TrustZone-enabled Hardware
Parno et al. How Do We Make Sense of Platform State?
Wang et al. Trusted computing technology analyzing in NGSCB
Zimmer System Isolation Beyond BIOS using the Unified Extensible Firmware Interface.
Kinebuchi et al. Ensuring System Integrity using Limited Local Memory
Fang et al. TRIOB: A Trusted Virtual Computing Environment Based on Remote I/O Binding Mechanism

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150512

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150803

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160316

R150 Certificate of patent or registration of utility model

Ref document number: 5905586

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250