保護インスタンス

保護インスタンスは、ベア・メタル・ホストおよび仮想マシン(VM)のファームウェア・セキュリティを強化して、悪意のあるブート・レベルのソフトウェアから保護します。

保護インスタンスの仕組み

保護インスタンスは、セキュア・ブート測定ブートおよびTrusted Platform Moduleの組合せを使用して、インスタンスのファームウェア・セキュリティを強化します。

LinuxおよびUNIX系のオペレーティング・システム

  • セキュア・ブートおよびTrusted Platform Module (TPM)は、サポートされているすべてのベア・メタルおよびVMインスタンスで使用できます。
  • 測定ブートはVMインスタンスでのみ使用できます。ベア・メタル・インスタンスで測定ブートを使用する場合は、オープン・ソース・ソリューションを使用できます。
  • ベア・メタル・インスタンスでは、セキュア・ブートとTPMを一緒に、または個別に有効にできます。
  • VMインスタンスでは、次を有効にできます:
    • セキュア・ブートのみ。
    • TPMとMeasure Boot
    • TPMとMeasure Bootを併用したセキュア ブート。

Windowsオペレーティング・システム

  • VMシェイプの場合、セキュア・ブート、測定ブートおよびTPMを同時に使用する必要があります。したがって、3つの機能のいずれかを有効にした場合、他の2つの機能も有効になります。
  • 保護インスタンスでは、Windows Server 2016またはWindows Server 2019のいずれかのOSバージョンを実行する場合、Windows Defender Credential Guardがサポートされます。

セキュア・ブート

セキュア・ブートは、認可されていないブート・ローダーやオペレーティング・システムのブートを阻止するUnified Extensible Firmware Interface (UEFI)の機能です。セキュア・ブートでは、ブート前に署名済ファームウェアの署名が正しいことを検証して、オペレーティング・システムのロード前にルートキット、ブートキットおよび未承認ソフトウェアが実行されることを回避します。適切に署名されていないブート・コンポーネントは実行できません。

ルートキットは、カーネル・モードで実行される低レベルのマルウェアです。ブートキットは、システム・ブートローダーとシステム・ブートを、ブートローダーではなくブートキットに置き換えます。ルートキットおよびブートキットはオペレーティング・システムと同じ権限を持ち、キーストロークやローカル・サインインのような機能を取得できます。この情報を使用して、不正なファイル転送を行い、オペレーティング・システムを危険にさらすことができます。

測定ブート

測定ブートはセキュア・ブートを補完します。最も強力なセキュリティを実現するには、測定ブートとセキュア・ブートの両方を有効にします。

セキュア・ブートによって、ブート・プロセス内のすべてのコンポーネントに、有効な署名のリストにある署名が含まれていることが確認されます。署名されたコンポーネントは、信頼チェーンを提供するために追加の署名を埋め込むことができます。測定ブートを使用すると、どのようなファームウェアがあり、それがいつ変更されたかを把握する目的で、ブート測定を追跡できます。コンポーネントが更新または再構成されるとき(たとえば、オペレーティング・システムの更新中)、関連する測定が変更されます。さらに、これらの測定の一部はインスタンスのシェイプおよびサイズの影響を受けます。これらの測定を既知の測定のセットと比較することは可能ですが、OCIでは現在、既知の測定を生成または保存しません。ただし、測定を使用して、OVMF UEFIファームウェアがインスタンスのデプロイ後に変更されていないことを確認できます。UEFIセキュア・ブートの信頼のルートを作成する証明書がOVMF UEFIファームウェアに含まれているため、これは特に役立ちます。これらの測定は、現在シールド・カラー変更をトリガーする唯一のPCRであるPCR 0およびPCR 2に反映されます。

測定ブートは、ブートローダー、ドライバ、オペレーティング・システムなどのブート・コンポーネントの測定を格納することで、ブート・セキュリティを強化します。初めて保護インスタンスをブートすると、保護ブートでは初期測定を使用してベースラインが作成されます。ベースライン測定は、ゴールデン測定とも呼ばれます。

初期測定が取り込まれた後は、システムのブート時に新しいブート・データがベースライン測定と比較され、すべてのブートが同じであることが確認されます。測定比較によって、オペレーティング・システムがクリーンなブート前環境から起動することが保証されます。測定ブートでは、Trusted Platform Module (TPM)を使用して測定を安全に格納します。

Trusted Platform Module

Trusted Platform Module (TPM)は、測定ブートでブート測定を格納するために使用される特殊なセキュリティ・チップです。

測定ブートで取り込まれた測定は、TPM内のプラットフォーム構成レジスタ(PCR)に格納されます。PCRはTPM内のメモリー位置であり、提示された順序で提示されたすべての測定結果を集計した1つの値を保持するために使用されます。Windows Defender Credential Guardは、TPMを使用して仮想化ベースのセキュリティ(VBS)暗号化キーを保護します。

サポートされるシェイプおよびイメージ

サポートされるシェイプ

次のシェイプを使用して、保護インスタンスを作成できます:

ノート

  • LinuxおよびUNIX系のオペレーティング・システムでは、測定ブートを使用できるのはVMインスタンスのみです。
  • Windows Server 2019を使用する保護インスタンスは、BM.Standard2.52およびBM.DenseIO2.52シェイプをサポートしていません。
  • Credential Guardは、ベア・メタル・シェイプではサポートされていません。
  • VM.Standard3.Flex
  • VM.Standard.E3.Flex
  • VM.Standard.E4.Flex
  • VM.Optimized3.Flex
  • BM.Standard2.52
  • BM.Standard.E3.128
  • BM.Standard.E4.128
  • BM.Standard.E5.192
  • BM.Dense.E4.128
  • BM.Dense.E5.128
  • BM.DenseIO2.52
サポートされているプラットフォーム・イメージ

保護インスタンスは、次のプラットフォーム・イメージでサポートされています:

  • Oracle Linux 8.x
  • Ubuntu 18.04
  • Ubuntu 20.04
  • Windows Server 2016 (VMのみ)
  • Windows Server 2019 (VMのみ)

制限事項および考慮事項

次の点に注意してください:

  • 保護インスタンスは、ライブ移行または再起動移行をサポートしていません。詳細は、保護インスタンスの移行を参照してください。
  • ハードウェアTPMは移行可能ではないため、ベア・メタル・インスタンスでハードウェアTPMを有効にした場合、インスタンスを移行できません。
  • カスタム・イメージはサポートされていません。
  • 機密コンピューティングはサポートされていません。
  • 保護VMインスタンスでのForbidden Signatures Database (DBX)の更新は、サポートされていません。DBXは、プラットフォームでの実行が許可されていない署名のセキュア・ブート・データベースを維持します。保護VMインスタンスにDBX更新を適用すると、インスタンスが起動されない場合があります。DBXを更新するには、DBX更新を含むイメージを使用して新しい保護VMインスタンスを作成します。
  • インスタンスを終了すると、Machine Owner Key (MOK)は削除されます。MOKによって署名されたカーネルを使用して起動した場合、インスタンスが終了されていると、セキュア・ブートを使用して新しいインスタンスを作成するときに、標準のUEFIセキュア・データベース・キーから起動するカーネルを使用する必要があります。インスタンスの起動後に、Machine Owner Keyを追加してから、MOK署名付きカーネルに再起動します。
  • Linux 7.xを使用して保護インスタンスを作成し、インスタンスを再起動すると、PCR値が変更され、そのために赤いシールドが表示されることがあります。Linux 7.xでのリブート後にPCR値が変化するを参照してください。
  • 保護インスタンスを編集する場合、インスタンスの名前のみ変更できます。インスタンスの起動後にシェイプを変更することはできず、移行設定を変更することもできません。

保護インスタンスの使用

インスタンスを作成する際に、そのインスタンスが保護インスタンスであるかどうかを指定します。

保護インスタンスを作成するには
Windows Defender Credential Guardを有効にするには
保護インスタンスを編集するには
保護インスタンスを停止するには

ゴールデン測定の作業

測定ブートは、ブートローダー、ドライバ、オペレーティング・システムなどのブート・コンポーネントの測定を格納することで、ブート・セキュリティを強化します。初期測定が取り込まれた後は、システムのブート時に新しいブート・データがベースライン測定と比較され、すべてのブートが同じであることが確認されます。ベースライン測定は、ゴールデン測定と呼ばれます。

PCR値のダウンロード

インスタンスのゴールデン測定およびプラットフォーム構成登録(PCR)の値をダウンロードできます。PCRは、ゴールデン測定を格納するTPM内のメモリー位置です。

PCR値をダウンロードするには
  1. ナビゲーション・メニューを開き、「コンピュート」をクリックします。「コンピュート」で、「インスタンス」をクリックします。
  2. 関心のあるインスタンスをクリックします。
  3. 「インスタンスの詳細」ページで、「保護インスタンス」タブを開きます。
  4. 「プラットフォーム構成登録(PCR)」で、「PCR値のコピー」をクリックします。PCR値がクリップボードにコピーされます。選択したファイルにそれを貼り付けます。

ゴールデン測定のリセット

オペレーティング・システムを更新する場合は、新しいゴールデン測定を作成する必要がある可能性があります。インスタンスのゴールデン測定をリセットするには、次のステップに従います。

ゴールデン測定をリセットするには
  1. ナビゲーション・メニューを開き、「コンピュート」をクリックします。「コンピュート」で、「インスタンス」をクリックします。
  2. 関心のあるインスタンスをクリックします。
  3. 「インスタンスの詳細」ページで、「保護インスタンス」タブを開きます。
  4. 「プラットフォーム構成登録(PCR)」で、「ゴールデン測定のリセット」をクリックします。プロンプトが表示されたら確認します。

保護インスタンスの移行

インスタンスの移行に関する一般情報は、ライブ、再起動および手動移行: コンピュート・インスタンスの新規ホストへの移動を参照してください。インスタンスを新しいハードウェアに移行すると、セキュア・ブート・キーとブート測定が新しいインスタンスで再取得されます。

ノート

非保護インスタンスを保護インスタンスに移行することはできません。

保護インスタンスでは、インスタンスの移行に関する次の制限があります。

VMインスタンス

  • 保護インスタンスは、ライブ移行または再起動移行をサポートしていません。保護インスタンスを移行する必要がある場合は、インスタンスを手動で移行する必要があります。
  • UEFIセキュア・ブート変数を変更した場合、移行中に変更は保持されないため、移行ができない可能性があります。
  • TPMを使用するVMインスタンスがある場合に、インスタンスを移行すると、移行中にTPMデータは保持されません。新しいインスタンスには新しいPCR値が設定されます。
  • Windows Defender Credential Guardが有効になっている場合、インスタンスの移行はサポートされていません。

ベア・メタル・インスタンス

  • 保護インスタンスは、ライブ移行または再起動移行をサポートしていません。保護インスタンスを移行する必要がある場合は、インスタンスを手動で移行する必要があります。
  • UEFIセキュア・ブート変数を変更した場合、移行中に変更は保持されないため、移行ができない可能性があります。
  • ハードウェアTPMは移行可能ではないため、ベア・メタル・インスタンスでハードウェアTPMを有効にした場合、インスタンスを移行できません。
  • ベア・メタル・インスタンスで独自のシークレットを物理TPMに格納した場合、Oracle Cloud InfrastructureはTPM内のデータのコピーを持ちません。インスタンスを移行し、停止した状態から再起動した後で、新しい物理TPMを使用するようにソフトウェアを再設定する必要があります。

検証失敗のトラブルシューティング

セキュア・ブートの検証に失敗した場合、インスタンスにSSHで接続できないか、インスタンスが起動しません。測定ブートの検証に失敗すると、「インスタンスの詳細」ページに赤いシールドが表示されます。

セキュア・ブートが失敗した場合、シリアル・コンソール・データに失敗の原因に関する詳細が見つかる場合があります。失敗をトラブルシューティングする場合は、インスタンスを終了しないでください。インスタンスのOCIDを書き留め、シリアル・コンソール・ログ・ファイルを取得します。

ブートが成功すると、コンソール履歴データに次のようなメッセージが表示されます:

SB_EVENT: { "Secure_Boot_Overall_Status" : 0, "status" : "Pass", "msg" : "SB_Event on Exit Boot Services" }

セキュア・ブートが有効になっている場合、署名されたファームウェアの署名が正しくないと、インスタンスは起動しません。イメージが署名されていないか無効であるためにセキュア・ブートが失敗した場合は、コンソール履歴データに次のようなメッセージが表示されます:

SB_EVENT: { "status": "Fail", "msg": "The EFI executable failed to load.
It's not signed, or the signature (or hash) did not match entries in DB", "EFI_Image_Type" : "FromOpROM", "EFI_Image_Path":
 
"PciRoot(0x0)/Pci(0x2,0x0)/Offset(0x10A00,0x245FF)",
 
"SB_Variable_Match" : "NO_CERT_MATCH" }

サポートされていないカーネルがロードされたためにセキュア・ブートに失敗した場合は、サポートされているカーネルを選択して再試行してください。サポートされていないカーネルがロードされた場合、インスタンスにSSHで接続できず、コンソール履歴データに次のようなメッセージが表示されます:

SB_EVENT: { "status": "Pass", "msg": "The EFI executable loaded successfully", "EFI_Image_Type" : "FromFixedMedia", "EFI_Image_Path" : "PciRoot(0x0)/Pci(0x12,0x7)/Pci(0x0 ... 2000)//EFI/redhat/shimx64.efi", "SB_Variable_Match" : "DB_CERT_MATCH", "CertSubject" : "Microsoft Corporation UEFI CA 2011", "ImageDigest" : "DD35B574D149AA48E3611FFCC336ACD76FDE79AD817B081FE5CC093789B92E90" }
error:
../../grub-core/loader/i386/efi/linux.c:215:(hd0,gpt2)/vmlinuz-5.14.0-1.el8uek.
rc2.x86_64 has invalid signature.
error: ../../grub-core/loader/i386/efi/linux.c:94:you need to load the kernel
first.

測定ブートが有効になっている場合、ブート順序が正しくないと、インスタンスは起動しますが、「インスタンスの詳細」ページに赤いシールドが表示されます。測定ブートが有効になっている場合、新しいPCR値が追加されると、インスタンスが起動し、「インスタンスの詳細」ページに黄色のシールドが表示されます。測定ブートが失敗したがPCR値が正しい場合、または新しい値が追加された場合は、ゴールデン測定をリセットできます。