保護されたファブリックとシールドされた VM の概要
仮想化のセキュリティは、Hyper-V の主要な投資分野です。 悪意のあるソフトウェアを実行する仮想マシンからホストやその他の仮想マシンを保護するだけでなく、不正に使用されているホストから仮想マシンを保護する必要もあります。 これは、HYPER-V や VMware など現在のすべての仮想化プラットフォームにとっての基本的な危険要因です。 (故意または偶然に) 組織の外に出た仮想マシンは、他のどのシステムでも実行できます。 ドメイン コントローラー、機密性の高いファイル サーバー、人事システムなど、組織内で価値の高い資産を保護することは最優先事項です。
Windows Server 2016 Hyper-V には、不正に使用されている仮想化ファブリックからの保護を目的として、シールドされた VM が導入されています。 シールドされた VM は、仮想 TPM が搭載された第 2 世代の VM (Windows Server 2012 以降でサポート) であり、BitLocker で暗号化されます。シールドされた VM を実行できるのは、ファブリック内の正常で承認済みのホストに限られます。 シールドされた VM と保護されたファブリックの効果として、クラウド サービス プロバイダーやエンタープライズ プライベート クラウド管理者は、セキュリティのより高いテナント VM 環境を実現できます。
保護されたファブリックは次の要素で構成されます。
- 1 つのホスト ガーディアン サービス (HGS) (通常は 3 つのノードから成るクラスター)。
- 1 つまたは複数の保護されたホスト。
- シールドされた複数の仮想マシンのセット。 次の図は、ホスト ガーディアン サービスで使用される構成証明とキー保護の仕組みを示しています。構成証明は、既知の有効なホストのみが、シールドされた VM を起動できるようにするために使用されます。キー保護は、シールドされた VM 用のキーをセキュリティで保護してリリースするために使用されます。
保護されたファブリック上で実行されるシールドされた VM がテナントによって作成されると、HYPER-V ホストとシールドされた VM 自体が HGS によって保護されるようになります。 HGS には、構成証明とキー保護という 2 つの異なるサービスがあります。 構成証明サービスは、信頼された Hyper-V ホストのみが、シールドされた VM を実行できるようにします。キー保護サービスは、シールドされた VM をオンにするときや、他の保護されているホストにシールドされた VM をライブ マイグレートするときに必要なキーを提供します。
詳細については、「シールドされた仮想マシンの概要」のビデオをご覧ください。
保護されたファブリック ソリューションの構成証明モード
HGS では、保護されたファブリックのための異なる構成証明モードがサポートされています。
- TPM によって信頼された構成証明 (ハードウェアベース)
- ホスト キーの構成証明 (非対称キーのペアに基づく)
次の表で説明されているとおり、TPM によって信頼された構成証明の方が保証が強いため、こちらをお勧めしますが、使用するには、Hyper-V ホストに TPM 2.0 が実装されている必要があります。 TPM 2.0 または TPM が現在実装されていない場合は、ホスト キー構成証明を使用できます。 新しいハードウェアを購入するときに、TPM によって信頼された構成証明に移行する場合は、ファブリックをほとんどまたはまったく切断せずに、ホスト ガーディアン サービスで構成証明モードを切り替えることができます。
ホスト用に選択する構成証明モード | ホストの保証 |
---|---|
TPM によって信頼された構成証明: 最強の保護を実現しますが、必要な構成手順が多くなります。 ホストのハードウェアとファームウェアには、セキュア ブートが有効になっている TPM 2.0 と UEFI 2.3.1 が必要です。 | 保護されたホストは、TPM ID、測定されたブート シーケンス、およびコード整合性ポリシーに基づいて承認され、承認されたコードのみを実行します。 |
ホスト キー構成証明: TPM 2.0 を使用できない既存のホスト ハードウェアをサポートするためのものです。 必要な構成手順が少なく、一般的なサーバー ハードウェアに対応します。 | 保護されたホストは、キーの所有に基づいて承認されます。 |
管理者によって信頼された構成証明という名前のもう 1 つのモードは、Windows Server 2019 以降では非推奨とされます。 このモードは、指定された Active Directory Domain Services (AD DS) セキュリティ グループの保護されたホスト メンバーシップに基づいています。 ホスト キー構成証明では、同様のホスト ID が提供され、設定は簡単になります。
ホスト ガーディアン サービスによる保証
HGS は、シールドされた VM をシールドを作成する方法とともに、次の保証を提供します。
VM の保証の種類 | キー保護サービスによるシールドされた VM の保証、およびシールドされた VM の作成方法によるシールドされた VM の保証 |
---|---|
BitLocker で暗号化されたディスク (OS ディスクとデータ ディスク) | シールドされた VM は、BitLocker を使用して、それらのディスクを保護します。 VM の起動とディスクの暗号化の解除に必要な BitLocker キーは、セキュリティで保護されたメジャー ブートなど、業界で実証済みのテクノロジを使用して、シールドされた VM の仮想 TPM によって保護されます。 シールドされた VM はオペレーティング システム ディスクのみを自動的に暗号化して保護しますが、シールドされた VM にアタッチされた データ ドライブを暗号化することもできます。 |
"信頼された" テンプレート ディスク/イメージからのシールドされた VM の新規展開 | シールドされた VM を新規展開するときに、テナントはどのテンプレート ディスクを信頼しているのかを指定できます。 シールドされたテンプレート ディスクには、そのコンテンツが信頼できると判定された時点で計算される署名があります。 テナントは、シールドされた VM の作成時に、署名カタログをセキュリティで保護してファブリックに提供します。ディスク署名は、この署名カタログに格納されます。 シールドされた VM のプロビジョニング時に、ディスク署名が再計算されて、カタログ内にある信頼された署名と比較されます。 署名が一致した場合は、シールドされた VM が展開されます。 署名が一致しなかった場合は、シールドされたテンプレート ディスクは信頼できないと判定されて、デプロイが失敗します。 |
シールドされた VM を作成するときのパスワードやその他の秘密の保護 | VM を作成するときは、信頼されたディスク署名、RDP 証明書、VM のローカル管理者アカウントのパスワードなど、VM の秘密がファブリックに漏えいしないようにする必要があります。 これらの秘密はシールド データファイルと呼ばれる暗号化されたファイル (PDK ファイル) に格納されます。このファイルは、テナント キーで保護され、テナントによってファブリックにアップロードされます。 VM を作成するときに、テナントは保護されたファブリック内にある信頼されたコンポーネントのみにこれらの秘密をセキュリティで保護して提供するために使用するシールド データを選択します。 |
VM を起動できるテナントの制御 | シールド データには、特定のシールドされた VM の実行が許可されている保護されたファブリックの一覧も含まれます。 たとえば、通常はオンプレミスのプライベート クラウドに存在するシールドされた VM を災害復旧の目的で別の (パブリックまたはプライベート) クラウドに移行する必要がある場合に、これは便利です。 ターゲット クラウドまたはファブリックは、シールドされた VM をサポートしている必要があります。シールドされた VM は、そのファブリックがシールドされた VM を実行することを許可する必要があります。 |
シールド データの内容とその必要性
シールド データ ファイル (別名プロビジョニング データ ファイルまたは PDK ファイル) は、管理者のパスワード、RDP やその他の ID 関連証明書、ドメイン参加の資格情報など、重要な VM 構成情報を保護するために、テナントまたは VM 所有者が作成する暗号化されたファイルです。 ファブリック管理者は、シールドされた VM を作成するときにシールド データファイルを使用しますが、ファイルに含まれる情報を表示したり使用したりすることはできません。
シールド データファイルには、以下のような秘密が含まれます。
- 管理者の資格情報
- 応答ファイル (unattend.xml)
- このシールド データを使用して作成された VM が、シールドされた VM として構成されるか、または暗号化サポート VMとして構成されるかを決定するセキュリティ ポリシー
- シールド対象として構成されている VM はファブリック管理者から保護されますが、暗号化サポート VM はファブリック管理者から保護されないことを覚えておいてください。
- VM とリモート デスクトップの通信をセキュリティで保護するための RDP 証明書
- 新しい VM の作成の基にすることができる信頼された署名付きテンプレート ディスク署名の一覧を含むボリューム署名カタログ
- シールドされた VM の実行が許可されている保護されたファブリックを定義するキーの保護機能 (または KP)
シールド データファイル (PDK ファイル) により、テナントが意図した方法で VM が作成されることが保証されます。 たとえば、テナントが応答ファイル (unattend.xml) をシールド データファイルに配置して、ホスティング プロバイダーに配布すると、ホスティング プロバイダーはその応答ファイルの変更内容を表示したり、その応答ファイルを変更したりすることはできません。 同様に、シールド データファイルにはシールドされた VM の作成の基にすることができる信頼されたディスクの署名が含まれていることから、ホスティング プロバイダーはシールドされた VM の作成時に別の VHDX で代用することができません。
次の図は、シールド データファイルと関連構成要素を示しています。
保護されたファブリックが実行できる仮想マシンの種類とは
保護されたファブリックは、3 つの方法のいずれかで VM を実行できます。
- 以前の Hyper-V バージョンを上回る保護を提供しない標準の VM
- ファブリック管理者が保護を構成できる暗号化サポート VM
- 保護がすべて有効になっていて、ファブリック管理者が保護を無効にすることができないシールドされた VM
暗号化サポート VM は、ファブリック管理者が完全に信頼されている場合に使用するためのものです。 たとえば、企業はコンプライアンスのために VM ディスクが保存時に暗号化されるように、保護されたファブリックを展開することがあります。 ファブリック管理者は、VM コンソールの接続、PowerShell ダイレクト、その他の日常的な管理やトラブルシューティング ツールなど、便利な管理機能を引き続き使用できます。
シールドされた VM は、ファブリック管理者と、Hyper-V ホスト上で実行される可能性がある信頼されていないソフトウェアの両方から VM のデータと状態を保護する必要があるファブリックで使用するためのものです。 たとえば、シールドされた VM で VM コンソールの接続が許可されることはありませんが、暗号化サポート VM ではファブリック管理者がこの保護をオンまたはオフにすることができます。
暗号化サポート VM とシールドされた VM の違いを次の表にまとめます。
機能 | 第 2 世代の暗号化のサポート | 第 2 世代のシールド |
---|---|---|
セキュア ブート | はい、必須/構成可能 | はい、必須/強制 |
Vtpm | はい、必須/構成可能 | はい、必須/強制 |
VM の状態とライブ マイグレーション トラフィックの暗号化 | はい、必須/構成可能 | はい、必須/強制 |
統合コンポーネント | ファブリック管理者が構成可能 | 特定の統合コンポーネント (例: データ交換、PowerShell ダイレクト) はブロック |
仮想マシン接続 (コンソール)、HID デバイス (例: キーボード、マウス) | オン、無効にすることはできません | Windows Server バージョン 1803 以降のホストでは有効、それより前のホストでは無効 |
COM/シリアル ポート | サポートされています | 無効 (有効にすることはできません) |
(VM プロセスへの) のデバッガーのアタッチ1 | サポートされています | 無効 (有効にすることはできません) |
1 WinDbg.exe などのプロセスに直接接続する従来のデバッガーは、VM のワーカー プロセス (VMWP.exe) が保護されたプロセス ライト (PPL) なので、シールドされた VM ではブロックされます。 LiveKd.exe で使用されるような代替のデバッグの手法はブロックされません。 シールドされた VM とは異なり、暗号化がサポートされている VM のワーカー プロセスは PPL として実行されないため、WinDbg.exe などの従来のデバッガーは引き続き正常に機能します。
シールドされた VM と暗号化サポート VM の両方は、ライブ マイグレーション、Hyper-V レプリカ、VM チェックポイントといった一般的なファブリック管理機能を引き続きサポートします。
ホスト ガーディアン サービスが実行中: シールドされた VM をオンにする方法
VM01 をオンにするように要求されます。 保護されたホストがシールドされた VM をオンにするには、シールドされた VM が正常であることが肯定的に証明されている必要があります。 シールドされた VM が正常であることを証明するには、シールドされた VM が正常性証明書をキー保護サービス (KPS) に提示する必要があります。 正常性証明書は構成証明プロセスで取得されます。
ホストが構成証明を要求します。 保護されたホストが、構成証明を要求します。 構成証明モードは、ホスト ガーディアン サービスで指定されます。
TPM によって信頼された構成証明: 以下のような情報が Hyper-V ホストから送信されます。
TPM 識別情報 (その保証キー)
最新のブート シーケンスで起動されたプロセスに関する情報 (TCG ログ)
ホストに適用されたコードの整合性 (CI) ポリシーに関する情報
構成証明はホストの起動時とその後 8 時間ごとに実行されます。 VM が起動しようとするときに、何らかの理由でホストに構成証明書がない場合にも、構成証明がトリガ―されます。
ホスト キーの構成証明: Hyper-V ホストは、キー ペアの半分の公開部分を送信します。 HGS は、ホスト キーが登録されているのを検証します。
管理者によって信頼された構成証明: ホストが属するセキュリティ グループを識別する Kerberos チケットが Hyper-V ホストから送信されます。 信頼された HGS 管理者によって先に構成されたセキュリティ グループにそのホストが属していることを HGS が検証します。
構成証明が成功 (または失敗) します。 構成証明モードでは、ホストが正常であることとを証明するために必要な確認内容を決定します。 TPM によって信頼された構成証明の場合は、ホストの TPM ID、ブート測定値、およびコードの整合性が検証されます。 ホスト キーの構成証明では、ホスト キーの登録のみが検証されます。
構成証明書がホストに送信されます。 構成証明が成功した場合には、正常性証明書がホストに送信されて、そのホストは "保護されている" (シールドされた VM の実行が許可されている) と見なされます。 ホストは、正常性証明書を使用して、シールドされた VM の操作に必要なキーをキー保護サービスがセキュリティで保護してリリースすることを許可します。
ホストが VM キーを要求します。 保護されたホストには、シールドされた VM (この場合は VM01) をオンにするために必要なキーがありません。 保護されたホストは、必須キーを取得するために、次のものを KPS に提供する必要があります。
- 最新の正常性証明書
- VM01 をオンにするために必要なキーを含む暗号化された秘密 (キーの保護機能 (KP))。 KPS だけが認識している他のキーを使用して、秘密が暗号化されます。
キーのリリース。 KPS が、正常性証明書の有効性を調査します。 証明書は有効期限が切れていてはなりません。KPS は証明書を発行した構成証明サービスを信頼している必要があります。
キーがホストに返されます。 正常性証明書が有効である場合は、KPS は秘密の暗号化を解除して、VM をオンにするために必要なキーをセキュリティで保護して返そうと試みます。 キーは保護されたホストの VBS に暗号化されます。
ホストが VM01 をオンにします。
保護されたファブリックとシールドされた VM の用語集
項目 | 定義 |
---|---|
ホスト ガーディアン サービス (HGS) | セキュリティで保護されたベア メタル サーバー クラスターにインストールされている Windows Server の役割です。この役割では、Hyper-V ホストの正常性を測定できます。シールドされた VM をオンにするときや、シールドされた VM のライブ マイグレーションを実行するときに、正常な Hyper-V ホストにキーをリリースすることもできます。 これら 2 つの機能はシールドされた VM ソリューションに必須であり、それぞれ構成証明サービスとキー保護サービスと呼ばれます。 |
保護されたホスト | シールドされた VM を実行できる Hyper-V ホスト。 HGS の構成証明サービスによって正常であると判断されたホストのみが "保護されている" と見なされます。 Hyper-V ホストがまだ構成証明されていない場合や、構造証明に失敗した場合は、シールドされた VM をオンにしたり、シールドされた VM をそのようなホストにライブ マイグレートしたりすることはできません。 |
保護されたファブリック | これは、シールドされた VM を管理および実行できるHyper-V ホストのファブリックとそのホスト ガーディアン サービスを表すのに使用される総称です。 |
シールドされた仮想マシン (VM) | 保護されたホストのみで実行できる仮想マシンであり、悪意のあるファブリック管理者やホスト マルウェアによるのぞき見、改ざん、および盗難から守られています。 |
ファブリック管理者 | 仮想マシンを管理できるパブリックまたはプライベート クラウド管理者。 保護されたファブリックのコンテキストでは、ファブリック管理者にはシールドされた VM へのアクセス権や、シールドされた VM を実行できるホストを決定するポリシーへのアクセス権がありません。 |
HGS 管理者 | パブリックまたはプライベート クラウドで、保護されたホスト (すなわち、シールドされた VM を実行できるホスト) に関するポリシーおよび暗号化素材を管理する権限を持つ信頼された管理者。 |
プロビジョニング データファイルまたはシールド データファイル (PDK ファイル) | テナントまたはユーザーが、重要な VM 構成情報を保持してその情報を他のユーザーによるアクセスから保護するために作成する、暗号化されたファイル。 たとえば、シールド データファイルには、VM の作成時にローカル管理者アカウントに割り当てられるパスワードが含まれることがあります。 |
仮想化ベースのセキュリティ (VBS) | Hyper-V ベースの処理および格納のための環境であり、管理者から保護されています。 仮想保護モードのシステムでは、オペレーティング システムの管理者に表示されないオペレーティング システム キーを格納できます。 |
仮想 TPM | トラステッド プラットフォーム モジュール (TPM) の仮想化されたバージョン。 Windows Server 2016 の Hyper-V 以降、物理的な TPM で物理コンピューターを暗号化できるのと同じように、仮想 TPM 2.0 デバイスを提供して仮想マシンを暗号化することができます。 |
その他の参照情報
- 保護されたファブリックとシールドされた VM
- ブログ: データセンターとプライベート クラウドのセキュリティに関するブログ
- ビデオ: シールドされた仮想マシンの概要
- ビデオ: Windows Server 2016 Hyper-V でシールドされた VM の詳細を知る