目次

AgentのLinuxセキュアブートの設定

一部のバージョンの Deep Security エージェント for Linux は Unified Extensible Firmware Interface (UEFI) Secure Boot互換性 があります。

Secure Boot が有効になっている場合、コンピュータの Linux カーネルは、カーネルモジュールがロードされる前に各カーネルモジュールの PKI 署名をチェックします。署名されていないカーネルモジュールや無効な署名のモジュールはロードされません。次の Deep Security エージェント機能はカーネルモジュールをインストールします:

  • 不正プログラム対策
  • Webレピュテーション
  • ファイアウォール
  • 変更監視
  • 侵入防御
  • アプリケーションコントロール

これらの機能をセキュアブートで使用するには、トレンドマイクロの公開鍵 をコンピュータのファームウェアに登録し、カーネルモジュール署名を検証できるようにする必要があります。

方法はプラットフォームによって異なります。

トレンドマイクロの公開鍵をダウンロードする

Secure Boot コンピュータに登録する前に、カーネルモジュール署名を検証するためのトレンドマイクロの公開鍵をダウンロードする必要があります。キー ファイルのダウンロードに問題が発生した場合は、右クリックして リンク先を名前を付けて保存 を選択してください。

公開鍵はDER形式でエンコードされます。

  • DS2022.der
    SHA-256証明書ハッシュ: BB FA 4A B8 3C 61 A0 3F 1D D0 4B A7 A4 51 75 E7 D7 EF D3 C8 4B F3 D9 FE A0 CE AB B9 2A F4 8E 92

  • DS20_V2.der
    SHA-256証明書ハッシュ: B3 36 43 7B 12 B3 EB 6A 4E 4A 44 62 40 4F 1F BD 21 32 70 77 4C 33 7D 1C 5A 58 7C 99 83 F7 30 C7

カーネル5.3.18-24.34-default以降のSuSE 15にエージェントを配備する場合、カーネルモジュールの署名の検証が変更されたため、 DS20_v2.der が必要です。

  • DS20.der
    SHA-256証明書ハッシュ: CB 44 47 C8 76 CF 28 79 2F 8E B6 76 F1 42 4B D4 93 82 70 0E 46 92 ED 69 83 0C C3 52 E9 E4 71 03
  • DS12.der
    SHA-256証明書ハッシュ: CB 44 47 C8 76 CF 28 79 2F 8E B6 76 F1 42 4B D4 93 82 70 0E 46 92 ED 69 83 0C C3 52 E9 E4 71 03
  • DS11_2022.der
    SHA-256証明書ハッシュ: BB FA 4A B8 3C 61 A0 3F 1D D0 4B A7 A4 51 75 E7 D7 EF D3 C8 4B F3 D9 FE A0 CE AB B9 2A F4 8E 92

エージェントバージョン11の古い公開鍵 (SHA-1ハッシュ 7D 96 56 5C 3A 77 B7 A7 24 49 D5 6A A5 0C 28 AA D7 3B 0B FBを使用したDS11.der ) の有効期限は2022年12月5日です。この日以降も引き続きAgentを使用するには、この新しい公開鍵を登録する必要があります。そうしないと、コンソールに「Engine Offline」エラーメッセージが表示され、コンピュータが保護されなくなります。

また、トレンドマイクロの公開鍵の署名チェーンを検証するために必要な中間認証局 (CA) 証明書をダウンロードする必要があります。 MicrosoftがこれらのCA証明書をアップデートする場合は、新しい証明書を使用する必要があります。 CA証明書は、DER形式でエンコードされたX.509 v3 CRTファイルです。

  • MicWinProPCA2011_2011-10-19.crt
    Microsoft Windows製品版PCA 2011
    SHA-256証明書ハッシュ: E8 E9 5F 07 33 A5 5E 8B AD 7B E0 A1 41 3E E2 3C 51 FC EA 64 B3 C8 FA 6A 78 69 35 FD DC C7 19 61
  • MicCorUEFCA2011_2011-06-27.crt
    Microsoft Corporation UEFI CA 2011
    SHA-256証明書ハッシュ: 48 E9 9B 99 1F 57 FC 52 F7 61 49 59 9B FF 0A 58 C4 71 54 22 9B 9F 8D 60 3A C4 0D 35 00 24 85 07
  • MicCorKEKCA2011_2011-06-24.crt
    Microsoft Corporation KEK CA 2011
    SHA-256証明書ハッシュ: A1 11 7F 51 6A 32 CE FC BA 3F 2D 1A CE 10 A8 79 72 FD 6B BE 8F E0 D0 B9 96 E0 9E 65 D8 02 A5 03

トレンドマイクロの公開鍵をアップデートする

次のいずれかに該当する場合は、署名済みのトレンドマイクロカーネルモジュールの登録済み公開鍵をアップデートする必要があります。

エージェントを新しいメジャーリリースにアップグレードする

Deep Security Agent のすべてのメジャーリリース (例えば、12.0 および 20.0) では、トレンドマイクロが Secure Boot カーネルモジュール署名の公開鍵を更新します。新しいカーネルモジュール署名は古い公開鍵では検証できません。そのため、エージェントをアップグレードする際には、新しい公開鍵も登録する必要があります。

公開鍵の有効期限が切れています
Agentバージョン Key 有効期限 コメント
20 DS2022.der 2031年11月24日 新しい交換用キーは、有効期限の1年前にリリースされる予定です。
DS20.der 2024年11月26日 DS20.derは、有効期限が終了するとDS2022.derに置き換えられます。 DS20.derの有効期限が切れる前にDS2022.derが登録されていることを確認します。
DS20_V2.der 2026年10月24日
  • 5.3.18-24.34-default以降のSUSE 15カーネルでは必須です。
  • DS20_V2.derは、有効期限が切れるとDS2022.derに置き換えられます。 DS20_V2.derの有効期限が切れる前にDS2022.derが登録されていることを確認します。
12 DS12.der 2024年11月26日 DS12.derは、有効期限が終了するとDS2022.derに置き換えられます。 DS12.derの有効期限が切れる前にDS2022.derが登録されていることを確認します。
11 DS11_2022.der 2031年11月24日
DS11.der 2022年12月5日

Deep Security Agent 20でセキュアブートを使用するには、DS2022.der、DS20_V2.der、およびDS20.derキーを登録する必要があります。

Linuxカーネルモジュールの署名検証の変更

Linuxカーネルをアップデートすると、カーネルモジュールの署名の検証方法が変わることがあります。登録済みの公開鍵を置き換える必要がある場合があります。

たとえば、SuSE 15では、カーネルバージョン5.3.18-24.34-defaultにEKUコード署名検証が追加されました。これには、新しい公開鍵バージョン DS20_v2.derが必要でした。

これらのいずれかの理由でセキュアブートの公開鍵が無効になり、その公開鍵を置き換えないと、コンソールに「エンジンがオフラインです」というエラーメッセージが表示され、コンピュータが保護されなくなる可能性があります。 {: .warning }

AWSのセキュアブートキーの登録

  1. 必要なものをダウンロードセキュアブート用の CA 証明書とトレンドマイクロの公開鍵.

  2. プラットフォームキーがない場合は、AWSのドキュメントを参照して、でセキュアブートプラットフォームキーを生成してください。

    起動時にロードされるすべてのデバイス (GPUなど) のファームウェアにアクセスできる場合にのみ、プラットフォームキーを置き換えます。新しいプラットフォームキーを使用するようにファームウェアの署名チェーンをアップデートできない場合、セキュアブートによってインスタンスが完全に起動できなくなる可能性があります。 {: .warning }

  3. セキュアブートをサポートするLinuxディストリビューションのAMIからEC2仮想マシンインスタンスを作成します。

  4. そのインスタンスのコンソールで、Machine Owner Key (MOK) コマンド mokutiluefivarsとPythonをインストールします。
    Red Hat Enterprise Linuxでは、次のコマンドを入力します。

    yum install mokutil
    yum install python3
    curl -L -o uefivars.zip https://github.com/awslabs/python-uefivars/archive/refs/heads/main.zip
    unzip uefivars.zip

    DebianまたはUbuntuでは、次のコマンドを入力します。

    sudo apt-get update
    sudo apt-get install efitools
    sudo apt-get install python3
    curl -L -o uefivars.zip https://github.com/awslabs/python-uefivars/archive/refs/heads/main.zip
    unzip uefivars.zip
  5. CA証明書とトレンドマイクロの公開鍵をインスタンスにアップロードします。

  6. UEFI署名リスト (.esl) ファイル内に、各プラットフォームキー、CA証明書、およびトレンドマイクロ公開キーを配置します。それらを1つのファイルに結合し、バイナリ (.bin) 形式に変換します。
    使用するトレンドマイクロの公開鍵に応じて、次のコマンドを入力します。

    # Convert your platform key into signatures list format
    cert-to-efi-sig-list YOUR_PLATFORM_KEY.crt YOUR_PLATFORM_KEY.esl
    # Convert CA certificates
    sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output MS_CA_KEK.esl MicCorKEKCA2011_2011-06-24.crt
    sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output MS_CA_PROD.esl MicWinProPCA2011_2011-10-19.crt
    sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output MS_CA_UEFI.esl MicCorUEFCA2011_2011-06-27.crt
    # Convert Trend Micro public keys
    sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output TREND_UEFI_db_DS11.esl DS11_2022.der
    sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output TREND_UEFI_db_DS12.esl DS12.der
    sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output TREND_UEFI_db_DS20.esl DS20.der
    sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output TREND_UEFI_db_DS20_v2.esl DS20_v2.der
    sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output TREND_UEFI_db_DS2022.esl DS2022.der
    # Combine CA and vendor public keys into one signatures list
    cat MS_CA_PROD.esl MS_CA_UEFI.esl TREND_UEFI_db_DS11.esl TREND_UEFI_db_DS12.esl TREND_UEFI_db_DS20.esl TREND_UEFI_db_DS20_v2.esl TREND_UEFI_db_DS2022.esl > ALL_SIGNATURES_db.esl
    cp *.esl /root/
    # Combine all and convert to binary
    ./python-uefivars-main/uefivars.py -i none -o aws -O YOUR_BINARY_SIGNING_CHAIN.bin -P ./YOUR_PLATFORM_KEY.esl -K ./MS_CA_KEK.esl --db ./ALL_SIGNATURES_db.esl

    ここで、 77fa9abd-0359-4d32-bd60-28f4e78f784b は、Microsoft CorporationのKEK CA 2011証明書の SignatureOwner フィールドのGUIDです。

  7. .bin ファイルをダウンロードします。

  8. インスタンスの新しいEC2スナップショットを作成します。

  9. [AWS Cloudshell] に移動し、[ Actions > Files > Upload file]を選択し、バイナリファイルを選択します。

  10. スナップショットIDとアップロードした .bin ファイルを使用して、新しいAMIを作成します。
    たとえば、以下のコマンドを入力します

    aws ec2 register-image --name LIFT-UBUNTU20SecureBootX64 --uefi-data $(cat YOUR_BINARY_SIGNING_CHAIN.bin) --block-device-mappings "DeviceName=/dev/sda1,Ebs= {SnapshotId={{YOUR-SNAPSHOT-ID}},DeleteOnTermination=true}" --architecture x86_64 --root-device-name /dev/sda1 --virtualization-type hvm --boot-mode uefi
  11. カスタマイズしたイメージを使用して、セキュアブートが有効な新しいインスタンスを作成します。

  12. 次のコマンドを実行して、鍵がMOKリストに正常に登録されたことを確認します。

    mokutil --db | grep Trend

    カーネルがトレンドマイクロの公開鍵を正常にロードしたことを確認します。

    dmesg | grep cert

Google Cloud Platformのセキュアブートキーを登録する

  1. 必要なものをダウンロードセキュアブート用の CA 証明書とトレンドマイクロの公開鍵.

  2. プラットフォームキーがない場合は、Google Cloud Platformのドキュメントを参照してセキュアブートプラットフォームキーを生成します

    起動時にロードされるすべてのデバイス (GPUなど) のファームウェアにアクセスできる場合にのみ、プラットフォームキーを置き換えます。新しいプラットフォームキーを使用するようにファームウェアの署名チェーンをアップデートできない場合、セキュアブートによってインスタンスが完全に起動できなくなる可能性があります。 {: .warning }

  3. セキュアブートで使用するCA証明書とトレンドマイクロの公開鍵を使用して、カスタマイズされた仮想マシンイメージを作成します。
    たとえば、以下のコマンドを入力します

    gcloud compute images create [IMAGE_NAME] \
     --source-image=[SOURCE_IMAGE] \
     --source-image-project=[SOURCE_PROJECT] \
     --platform-key-file=YOUR_PLATFORM_KEY.der \
     --signature-database-file=./MicCorUEFCA2011_2011-06-27.crt,./MicWinProPCA2011_2011-10-19.crt,./DS2022.der,./DS20_v2.der,./DS20.der,./DS12.der,./DS11_2022.der[,OTHER_EXISTING_KEYS] \
     --guest-os-features=UEFI_COMPATIBLE

    公開鍵はDERまたはBIN形式である必要があります。それぞれをカンマ ( , ) で区切ります。コマンドの使用方法とAPIの詳細については、Google Cloud Platformのドキュメントを参照してください。

    前述のコマンドを入力すると、既存のすべてのキーが上書きされるため、既存の有効なセキュアブートキーをすべて含める必要があります。これらを含めない場合、それらは削除され、カーネルモジュールはロードされません。

  4. カスタマイズしたイメージを使用して、セキュアブートが有効な新しいインスタンスを作成します。

  5. 次のコマンドを実行して、キーが正常に登録されたことを確認します。

    grep 'Trend' /proc/keys

VMware vSphereプラットフォームのセキュアブートキーの登録

コンピュータがUnbreakable Enterprise Kernel Release 6 Update 3 (UEK R6U3) for Oracle Linuxより前のリリースを使用している場合を除き、次の手順に従ってVMware vSphere仮想化プラットフォームのセキュアブートキーを登録します。

  1. 必要なものをダウンロードセキュアブート用の CA 証明書とトレンドマイクロの公開鍵.

  2. Secure Boot を有効にするコンピュータに、Machine Owner Key (MOK) コマンドmokutilをインストールします。
    Red Hat Enterprise Linuxでは、次のコマンドを入力します。

    yum install mokutil

    DebianまたはUbuntuでは、次のコマンドを入力します。

    sudo apt-get update
    sudo apt-get install efitools
  3. トレンドマイクロの公開鍵をMOKリストに追加します。複数の鍵がある場合はスペースで区切ります。 Deep Security Agentのバージョンが20.0.0.7119より前の場合は、次のコマンドを実行します。

    mokutil --import /opt/ds_agent/DS2022.der /opt/ds_agent/DS20_v2.der /opt/ds_agent/DS20.der

    Deep Security Agentバージョン20.0.0.7119以降の場合は、次のコマンドを実行します。

    mokutil --import /opt/ds_agent/secureboot/DS2022.der /opt/ds_agent/secureboot/DS20_v2.der /opt/ds_agent/DS20.der

    プロンプトが表示されたら、後で使用するパスワードを入力します。

  4. コンピュータを再起動します。

  5. Shim UEFIキー管理コンソールで、任意のキーを押して続行します。

  6. [Perform MOK Management] 画面で、[ Enroll MOK] を選択します。

  7. 公開鍵の証明書ハッシュを確認する必要がある場合は、[View Key X] を選択し、任意のキーを押して[ Enroll MOK ] 画面に戻ります。

  8. [Enroll the Key(s)?] 画面で [ Continue ]をクリックします。

  9. [Yes] をクリックし、前に入力したパスワードを入力します。

  10. [ The System Must Now Be Rebooted ] 画面で、[OK] をクリックして変更を確認し、再起動します。

  11. 次のコマンドを実行して、鍵がMOKリストに正常に登録されたことを確認します。

    ほとんどのオペレーティングシステムでは、次のコマンドを入力します。

    mokutil --test-key /opt/ds_agent/${certificate_file}.der

    Debian Linux 11またはDebian Linux 12では、次のコマンドを入力します。

    keyctl show %:.platform | grep 'Trend'

複数のコンピュータでセキュアブートを使用する必要がある場合は、仮想マシンまたはOSイメージファイルを作成する必要があります。そのファイルから新しいコンピュータをインストールできます。

物理コンピュータのセキュアブートキーを登録する

Oracle LinuxのUnbreakable Enterprise Kernel Release 6 Update 3 (UEK R6U3) より前のリリースを使用している場合を除き、物理コンピュータでセキュアブートキーを登録するには、次の手順に従います。

  1. 必要なセキュアブート用の CA 証明書とトレンドマイクロの公開鍵をダウンロードします。

  2. プラットフォームキーを持っていない場合は、Secure Bootプラットフォームキーを生成するためにLinuxディストリビューションのドキュメントを参照してください。

    すべてのデバイスのファームウェアにアクセスできる場合にのみ、プラットフォームキーを置き換えてください(例:GPU)。新しいプラットフォームキーを使用するようにファームウェアの署名チェーンを更新できない場合、Secure Boot によりインスタンスが永久に起動できなくなる可能性があります。{: .warning }

  3. Secure Boot を有効にするコンピュータに、Machine Owner Key (MOK) コマンドmokutilをインストールします。
    Red Hat Enterprise Linuxでは、次のコマンドを入力します。

    yum install mokutil

    DebianまたはUbuntuでは、次のコマンドを入力します。

    sudo apt-get update
    sudo apt-get install efitools
  4. トレンドマイクロの公開鍵をMOKリストに追加します。複数の鍵はスペースで区切ります (該当する場合)。 Deep Security Agentのバージョンが20.0.0.7119より前の場合は、次のコマンドを実行します。

    mokutil --import /opt/ds_agent/DS2022.der /opt/ds_agent/DS20_v2.der /opt/ds_agent/DS20.der

    Deep Security Agentバージョン20.0.0.7119以降の場合は、次のコマンドを実行します。

    mokutil --import /opt/ds_agent/secureboot/DS2022.der /opt/ds_agent/secureboot/DS20_v2.der /opt/ds_agent/DS20.der

    プロンプトが表示されたら、後で使用するパスワードを入力します。

  5. コンピュータを再起動します。

  6. Shim UEFIキー管理コンソールで、任意のキーを押して続行します。

  7. [MOK管理の実行] 画面で、[ MOKの登録] を選択します。

  8. 公開鍵の証明書ハッシュを確認する必要がある場合は、[ View Key X] を選択し、任意のキーを押して[ Enroll MOK ]画面に戻ります。

  9. [ Enroll the Key(s)?] の [ Continue ]をクリックします。 画面。

  10. [Yes] をクリックし、前に入力したパスワードを入力します。

  11. [The System Must Now Be Rebooted] 画面で、[OK] をクリックして変更を確認し、再起動します。

  12. 次のコマンドを実行して、鍵がMOKリストに正常に登録されたことを確認します。

    ほとんどのオペレーティングシステムでは、次のコマンドを入力します。

    mokutil --test-key /opt/ds_agent/${certificate_file}.der

    Debian Linux 11またはDebian Linux 12では、次のコマンドを入力します。

    keyctl show %:.platform | grep 'Trend'

複数のコンピュータでセキュアブートを使用する必要がある場合は、仮想マシンまたはOSイメージファイルを作成する必要があります。そのファイルから新しいコンピュータをインストールできます。

Oracle Linux用のセキュアブートキーの登録

Unbreakable Enterprise Kernel Release 6 Update 3 (UEK R6U3) for Oracle Linuxより前のリリースでは、セキュアブートに必要な手順が若干異なります。 Unbreakable Enterprise Kernel (UEK) を使用する場合、カーネルは組み込みのキーリングにあるキーのみを信頼します。したがって、トレンドマイクロの公開鍵を使用してカーネルを再コンパイルする必要があります。これによりカーネル自体が変更されるため、新しいカーネルブートイメージにも署名する必要があります。

  1. 必要なものをダウンロードセキュアブート用の CA 証明書とトレンドマイクロの公開鍵.
  2. Oracle Linux のドキュメントに従って、Secure Boot で使用するためのカーネルイメージおよびカーネルモジュールの署名 を行ってください。
  3. カーネルイメージにモジュール証明書を挿入する のステップに到達したら、pubkey.derをトレンドマイクロの公開鍵の名前に置き換えてください。例えば:

    sudo /usr/src/kernels/$(uname -r)/scripts/insert-sys-cert -s /boot/System.map$(uname -r) -z /boot/vmlinuz$(uname -r) -c ./DS20_v2.der
  4. 残りの手順を続行して、カーネルブートイメージに署名します。

  5. 次のコマンドを実行して、鍵が builtin_trusted_keys 鍵リングにリストされていることを確認します。

    sudo keyctl show %:.builtin_trusted_keys | grep 'Trend'

Azure のセキュア ブート キーを登録する

  1. 必要なCA証明書とトレンドマイクロの公開鍵をダウンロード してください。

  2. Linuxディストリビューションイメージから作成されたSecure Bootをサポートする第2世代のAzure VMがある場合、このVMが次の条件を満たしていることを確認してください:

    • セキュリティタイプは信頼された起動仮想マシンとして指定されています。

    • セキュアブートを有効にするセキュリティ機能が選択されています。

    第2世代のAzure VMをお持ちでない場合は、次のようにSecure BootをサポートするLinuxディストリビューションイメージから作成してください

    1. 世代 2 に対応した VM イメージを選択してください。
    2. Azure ポータルで 仮想マシンの作成 ページに移動します。
    3. セキュリティの種類 リストから、Trusted launch 仮想マシン を選択します。
    4. セキュリティ機能の構成で、セキュア ブートを有効にするを選択します。
  3. Azure VM が停止していることを確認し、VM ディスク名をメモしてください。

  4. az loginコマンドをローカルまたは Azure の Cloud Shell 経由で実行します。

  5. 次のスクリプトを一行ずつ実行して、共有アクセス署名 (SAS) URL を生成します:

    read -p 'Your Subscription ID: ' subscriptionId
    read -p 'Your Resource Group Name: ' resourceGroupName
    read -p 'Your Disk Name for Exporting: ' diskName
    read -p 'Input the Expiry Duration for SAS URL in seconds (for example, 3600): ' sasExpiryDuration
    read -p 'Your Storage Account Name to Hold this VHD file: ' storageAccountName
    read -p 'Your Storage Container Name: ' storageContainerName
    read -p 'Your Storage Account Key: ' storageAccountKey
    read -p 'Your Destination VHD File Name: ' destinationVHDFileName
    az account set --subscription $subscriptionId
    sas=$(az disk grant-access --resource-group $resourceGroupName --name $diskName --duration-in-seconds $sasExpiryDuration --query [accessSas] -o tsv)
    az storage blob copy start --destination-blob $destinationVHDFileName --destination-container $storageContainerName --account-name $storageAccountName --account-key $storageAccountKey --source-uri $sas
  6. 次のファイルの内容をコピーして、CreateSIGFromOSvhdWithCustomUEFIKey.jsonとして保存してください:

    {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "galleryName": {
                "defaultValue": "{{ change to custom gallary name for the deployed template }}",
                "type": "String",
                "metadata": {
                    "description": "Name of the gallery"
                }
            },
            "imageDefinitionName": {
                "defaultValue": "{{ change to custom image definition name }}",
                "type": "String",
                "metadata": {
                    "description": "Name of the image definition"
                }
            },
            "versionName": {
                "defaultValue": "{{ change to custom image version }}",
                "type": "String",
                "metadata": {
                    "description": "Name of the image version"
                }
            },
            "storageAccountName": {
                "defaultValue": "{{ change to custom storage account name contains the exported OS vhd }}",
                "type": "string",
                "metadata": {
                    "description": "Storage account name containing the OS vhd"
                }
            },
            "vhdURI": {
                "defaultValue": "{{ change to custom vhd URL of the exported OS vhd }}",
                "type": "String",
                "metadata": {
                    "description": "OS vhd URL"
                }
            },
            "imagePublisher": {
                "defaultValue": "{{ change to custom image publisher name }}",
                "type": "String",
                "metadata": {
                    "description": "Publisher name of the image"
                }
            },
            "offer": {
                "defaultValue": "{{ change to custom image offer name }}",
                "type": "String",
                "metadata": {
                    "description": "Offer of the image"
                }
            },
            "sku": {
                "defaultValue": "{{ change to custom image sku name }}",
                "type": "String",
                "metadata": {
                    "description": "Sku of the image"
                }
            },
            "osType": {
                "defaultValue": "Linux",
                "allowedValues": [
                    "Windows",
                    "Linux"
                ],
                "type": "String",
                "metadata": {
                    "description": "Operating system type"
                }
            },
            "gallerySecurityType": {
                "defaultValue": "TrustedLaunchSupported",
                "type": "String",
                "allowedValues": [
                    "TrustedLaunchSupported",
                    "TrustedLaunchAndConfidentialVMSupported"
                ],
                "metadata": {
                    "description": "Gallery Image security type"
                }
            },
            "customDBKeyDS20": {
                "defaultValue": "MIIFtjCCA56gAwIBAgIJAMeeWqgc+/HdMA0GCSqGSIb3DQEBCwUAMGsxGjAYBgNVBAoMEVRyZW5kIE1pY3JvLCBJbmMuMSUwIwYDVQQDDBxUcmVuZCBNaWNybyBEZWVwIFNlY3VyaXR5IDEyMSYwJAYJKoZIhvcNAQkBFhdjc3VwcG9ydEB0cmVuZG1pY3JvLmNvbTAeFw0xODExMjgwNzE5NTBaFw0yNDExMjYwNzE5NTBaMGsxGjAYBgNVBAoMEVRyZW5kIE1pY3JvLCBJbmMuMSUwIwYDVQQDDBxUcmVuZCBNaWNybyBEZWVwIFNlY3VyaXR5IDEyMSYwJAYJKoZIhvcNAQkBFhdjc3VwcG9ydEB0cmVuZG1pY3JvLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANwAWo6ZMy6uJOY7J0rpKjTaaN/C5iJA3Aotgw/CtZj5rOVzYQat3cpnOjTdJzemD/LAvzclzmYR3CP+3xkZ/nOH3W8QDEYBXvjYcBhwdwsttSkBdA1oQb97kBXJwV3izHwGucIYnDQNCwxXZ8dts/YqdNjlqp1Dih/89pVTsu0t+rLx7kM6f3jFCh3D9mLuPXNBb6kTdSRyipJ7KZqHJp0bRRwgm/RC70z7M+rC9n2AJAgVb3qUFwe54G1GfbqKOsrJpnJdHdUIZtggNYMMjZWxA6vwhsbcKC4t5mTkn9nmL6lBcTWO7dEJe58ireScTv8PbuZ/KFu7oAYqaeAICmiDFc2P2qrqkDxNjDkYOvV3RjPpygoxf5KDyYzIisz2CHco6kyXStlIQSWUUnj4FAABTE5702rIMt8hF/EoPk1jFFVNUMVFEzygLob3eNOS2xZgVgCTDx8JqLzIn92BHCVhXQz4aLX4xjIjTrZGe7FLwhbVc3jVBGuT4RTU9LoXS482oDICPGoitMqlMBTNQG3Ktwk2ExFDJ09vU94snMNlwBmQPyr/G5Zz+Fn+XRg7BzqdiIKkekCtGPzeyxrFs3eBByFYflPbQXRfqZjAyLGpSzHHV/hCYIUmJjI/IeZ9tP9zf7eHEhhE435lJGvxD1n3y2Fh3a05tKB64EcBq+DRAgMBAAGjXTBbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgeAMB0GA1UdDgQWBBRXOdWLbdwOa9iq0lvno8i2r3vcIzAfBgNVHSMEGDAWgBRXOdWLbdwOa9iq0lvno8i2r3vcIzANBgkqhkiG9w0BAQsFAAOCAgEAGxCfUzZIDwQAZppQ0/6rjS5K/S5PUHf7n2fQq+/c52SV3G7mwNdEODWAodDqzoqlKaJMUuyOlYxAX0J/EC8BB+OatDJDiu5pwA0p8JuJrt6+CJOIIraVwRmcRCmVEz4VZhtrTx9KpJFW5ryoFX21Nc4M8HCu6jxN++D8hhd/xQG2CHVr9jr0w7dl+BoYdguB6urfAtHxh+t+iSer+BhEDeu6hLLV+yLM7xpRMr3c+So5/drFwXAdMvKYs4w+zPOZOox7EQ1x6qwepH1vvv4yP0c7uRVnty+o/Uh3/NDz9x5y+5NBVHELWbThX1hMUX/PfJ6ZLm/FB+wnUt1E3fj4t9/W9yVD8NfOAlsedl/FaJ0NrTGUAJPGAyT7NLp73D4Yge3A9Y2cebuFDhxy7ilQxnrIRbn4IpArE/pl8jP7f+QswPrbmXL5Be7oLIiCY6O3kT2EV+kaY5dcKcGiS2CSwoJYMudwDm4KU10XY7qYftGONn0uZ018iC2OBoAjFKyk1QMyWRMcA3CyxOFGkFIpzM5jhjqMdQTurBvGRY8mqYsD3j+17AV/HfJ92x5K3L0x0wttiO9Z90Z5Mz3Z0QtsNk/VlZH80Fl2byLMt+O6dnsh+0tAXiga5cT7V2opq1HFHD3vc3n644wrt7bsR9Ns+uWL3VqD8rN3VOCN+ehgInU=",
                "type": "String",
                "metadata": {
                    "description": "Custom UEFI DB DS20.der in base64 format"
                }
            },
            "customDBKeyDS20V2": {
                "defaultValue": "MIIFyzCCA7OgAwIBAgIJAOqCjczOdriRMA0GCSqGSIb3DQEBCwUAMGsxGjAYBgNVBAoMEVRyZW5kIE1pY3JvLCBJbmMuMSUwIwYDVQQDDBxUcmVuZCBNaWNybyBEZWVwIFNlY3VyaXR5IDIwMSYwJAYJKoZIhvcNAQkBFhdjc3VwcG9ydEB0cmVuZG1pY3JvLmNvbTAeFw0yMDExMjQwOTIzNTFaFw0yNjEwMjQwOTIzNTFaMGsxGjAYBgNVBAoMEVRyZW5kIE1pY3JvLCBJbmMuMSUwIwYDVQQDDBxUcmVuZCBNaWNybyBEZWVwIFNlY3VyaXR5IDIwMSYwJAYJKoZIhvcNAQkBFhdjc3VwcG9ydEB0cmVuZG1pY3JvLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK5e7V+I80gksQSQR74uxAZylIdKaLVqBob/J6Fbca8zt7pdxCLeebu6S3yT0DRiaS5UslWO21v9q09cuqd0GoDCCaImNdMpCfTB91OZf9t3gHili0cTUyzkktT8n4g2/xw2mzoXBrm5PvX2psCFwBFh3FE7Mb5VgeA/Bh8uz7jpV9+7+TjouHQ9DXgV2dIDD2QacvtvaGyFqssNLKoKOnEm6+7o0/Cl/9eIzJT0YKzqS2BFY13ANHVTJieNVrfl9dIu1XxU7ABQ8LOVI835CAIJGJyYtIhnu2bCei7AGZzPYP7Way7djOvmG+2t+NopIE/RMTknsn3NQMJtrUi4oJOAwI36z8dMDBASUUCpglK12C9z6vHelNrE4z/tiUFYei2OBsLB/yNP9HloVDq4CMvcrZzwWbUtxmtcbTIW/uU1LOsqV92aHIMA3ZivLvvAPvlr4/8NltTvEy5N/CsxUxAeC21AbE9OXDyyE/9C+VB16YvrqQIEm5IW1Q0/fmmO6rBwy3Uu+4vZcUkq0QbOji/XcNbu17Cfg5fMuuLKu7kwqtl0JZxhZ0XBNdmhOL+XfwrZbZvCqXIKFZo1QsXsbFIoiOWVakXDonUTLPLJX5n5/7iIrw7hiUViPvTrkAUSjUm5OIu1p+hkKjGDHehdU4XX2bv9rrLAh3vIKxQSCTdlAgMBAAGjcjBwMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMB0GA1UdDgQWBBQ50RP6qbc9bEOp0jufVa+TgZWLlzAfBgNVHSMEGDAWgBQ50RP6qbc9bEOp0jufVa+TgZWLlzANBgkqhkiG9w0BAQsFAAOCAgEAXBhNUgJeKlB/ZwwsIjJsGXa9IPczWfTklg85hZILCT5Khcxl36zs6AEdtbW5pjV/hN+bV5LD84ZHoAa76ib4iHdU5nK4Q35AhWFdXMTCjg5bm78lESkyC7vLIjj1ITy2K3k+CgZosDXSe9V77AIN43+R4wwqbsI/FEuXmLw8UHW1DSQphjzcNGXAdbJVXhGoYLLBpyZ/OSFqhcqWwTtHZukrivtfix8fAQZ1GvfPZA0NlseXbSh883aERqwgP/etvdkUFuby0P66YTSaGZ4Dc9Q5NB4sJ+W/GcSz7Tnn2cF/hZor9ErjC+AUD0nvhn0IaJxzcCpz53XjFD8K/XeHVpBP8FqHFCoh7Ro4WcYBFR+DfoCc9Xq6tovWFZlcokybM7AmYw3DDisclkfMZFmhxi+yZQ6fmN9evVp2g7X/+w+hHrV38pnpz323186ALqSXShBPqG3HcQRvjdnS1Ve1nS8UKvy+ae+0+TKR9KTD+jQsL9daW4NfaSaBetFmdnbuNRIlKXscgoSne+Qi3YhtI93BoOnfpxEbWB4sWnSHkDO9iekSa42tabtCaY1d1MHxdYtdEBb1Gx5aWl8CmsZoWB0xRrk1NG7S8Mi+ux/2LiOfECkm1mpzaUY0w4dKfTT7/YeVAm1zgumWX+T0dsDc5Sc3t7AxiLHSmTxtYphFT4c=",
                "type": "String",
                "metadata": {
                    "description": "Custom UEFI DB DS20_V2.der in base64 format"
                }
            },
            "customDBKeyDS2022": {
                "defaultValue": "MIIFzzCCA7egAwIBAgIJAIfzdTk2xdt2MA0GCSqGSIb3DQEBCwUAMG0xGjAYBgNVBAoMEVRyZW5kIE1pY3JvLCBJbmMuMScwJQYDVQQDDB5UcmVuZCBNaWNybyBEZWVwIFNlY3VyaXR5IDIwMjIxJjAkBgkqhkiG9w0BCQEWF2NzdXBwb3J0QHRyZW5kbWljcm8uY29tMB4XDTIxMTEyNjA2MzI0OVoXDTMxMTEyNDA2MzI0OVowbTEaMBgGA1UECgwRVHJlbmQgTWljcm8sIEluYy4xJzAlBgNVBAMMHlRyZW5kIE1pY3JvIERlZXAgU2VjdXJpdHkgMjAyMjEmMCQGCSqGSIb3DQEJARYXY3N1cHBvcnRAdHJlbmRtaWNyby5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCWb6JAyvw0PoMfHEMoBtj3hsRS8q5TPFoa6vDrAOcJZf0MTw3NZjlbnNzVP/Ri4J5DGpOWDXLte0ngugtdAG+w3y8UY8K2agEq1ehGIB3iUz45zPqDiQWs/huafj96q9FzNlWkLJT+M0E2l0qpNJ9NlyphbQ+cnccm1fHrNOMNtEbm31nW4DVD9VyB7BFf4NRS2h4FiDjRqUTAREMfk84MReQNEP98kPZLXR3ajE4MTZztYF6INR68nK9Jzig/vJjMRpMwFp+VkQaFnbiti6hbfRjS/GbCW62aJJCTHEavbyJKKY1+MRG406lYVlpH632iyvHfj2ni+B7lLvfi5qag+27mX+rBxlqLGuiwNu0geGv5GTlmDyx2onNWRz1akk5GJUloY2xG9ak92o6WsnDdJCXlFHytPc0R+FleZ/nNNpyzPYr1V8pqWenk+wpVcA7BsuRHofWYzut98GkjGYWXXjsipaDt1V2tTKNexFgzMCUIi/tJGmUe3U6czS4zk3tXiTq2Z3kZvrV59nRWJ+QEdax0ICNZH6AEqNNajgvcvP9WcZmOtgozNxoJuQrCETMKcPQ+JgLbSAiZU7zLIp1z7XF358G7Azu/AGFpJ0orSpZ9f2J7f1WQ8CsHUgz9KISw6P7b8j160CCEbLBxcRnORCGSeVpO5tdKt4a7oil5wwIDAQABo3IwcDAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUnbil6RHtl1sidPNZk/35mq9EaWAwHwYDVR0jBBgwFoAUnbil6RHtl1sidPNZk/35mq9EaWAwDQYJKoZIhvcNAQELBQADggIBADsauvVNB9jPnlkOJY48eayLDfDN6JMriDA8Q0s0X9EZtTBMcRSNGIQjtyr4LOCOMNrUGMG2XFKHa8S17QYtcFM/2Y+t7aOilSTokWTkwC9jU1XBESH7fV44d/fYEO5yD3LBYw5BIEgSqJg39rdWWWOD6N1CGRwH3SZwT1aeDj7+YqCYXIUFR/jUm6SXyenoxIlSkn6Ymf3Pil3GtnqqxW1+VfkL6YOa715/3ZxqdWfvf1ArUL0spEtQEm4yHwdCuhPWbIG1RKejSFSLk92B/RdxqvYXiCxZ5SLziOLslvW0s48LrQ0TEr/HWhiuJ2Q//NSSCllUYy9f6CwXnW38xml+zZu/I8qJ5smI19JfO77HeRGACNSp2GC/C2mamLb1dSXSDKG6YomcrEFSO9oll/gfi6hwCw5Lx21/dD2SBjKMnwBYGRvDsovE2BQ26GnzvKQbJZW+kN6s5Gi3L0C56kSLLZUFJUxkKFN2//Qyu0cMC0oeecr+CYDxAHD2FMf4HGJAAScnk9mcEhxYs+B2IW/nCaRjbYvUg1LdaOR9oCXH14rh+FJ9DZmR84ia/YArHOJXSX/ziy0ftePgAGqQBmHNIPDA0TSGUYg/P5fcfYTT2bKO6lV/uXiqmDQuuCm1ietUpaTAJ0kWdDxhDzJem+N1qABRpuT93xbaapiX3199",
                "type": "String",
                "metadata": {
                    "description": "Custom UEFI DB DS2022.der in base64 format"
                }
            }
        },
        "variables": {
            "linuxSignatureTemplate": "MicrosoftUefiCertificateAuthorityTemplate",
            "windowsSignatureTemplate": "MicrosoftWindowsTemplate"
        },
        "resources": [
            {
                "type": "Microsoft.Compute/galleries",
                "apiVersion": "2022-01-03",
                "name": "[parameters('galleryName')]",
                "location": "[resourceGroup().location]",
                "tags": {
                    "AzSecPackAutoConfigReady": "true"
                },
                "properties": {
                    "identifier": {}
                }
            },
            {
                "type": "Microsoft.Compute/galleries/images",
                "apiVersion": "2022-08-03",
                "name": "[concat(parameters('galleryName'), '/', parameters('imageDefinitionName'))]",
                "location": "[resourceGroup().location]",
                "dependsOn": [
                   "[resourceId('Microsoft.Compute/galleries', parameters('galleryName'))]"
                ],
                "tags": {
                    "AzSecPackAutoConfigReady": "true"
                },
                "properties": {
                    "hyperVGeneration": "V2",
                    "architecture": "x64",
                    "osType": "[parameters('osType')]",
                    "osState": "Generalized",
                    "identifier": {
                        "publisher": "[parameters('imagePublisher')]",
                        "offer": "[parameters('offer')]",
                        "sku": "[parameters('sku')]"
                    },
                    "features": [
                        {
                            "name": "SecurityType",
                            "value": "TrustedLaunchSupported"
                        }
                    ],
                    "recommended": {
                        "vCPUs": {
                            "min": 1,
                            "max": 16
                        },
                        "memory": {
                            "min": 1,
                            "max": 32
                        }
                    }
                }
            },
            {
                "type": "Microsoft.Compute/galleries/images/versions",
                "apiVersion": "2022-08-03",
                "name": "[concat(parameters('galleryName'), '/',parameters('imageDefinitionName'),'/', parameters('versionName'))]",
                "location": "[resourceGroup().location]",
                "dependsOn": [
                   "[resourceId('Microsoft.Compute/galleries/images', parameters('galleryName'), parameters('imageDefinitionName'))]",
                   "[resourceId('Microsoft.Compute/galleries', parameters('galleryName'))]"
                ],
                "properties": {
                    "publishingProfile": {
                        "targetRegions": [
                            {
                                "name": "[resourceGroup().location]",
                                "regionalReplicaCount": 1
                            }
                        ]
                    },
                    "storageProfile": {
                        "osDiskImage": {
                            "hostCaching": "ReadOnly",
                            "source": {
                                "uri": "[parameters('vhdURI')]",
                                "storageAccountId": "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
                            }
                        }
                    },
                    "securityProfile": {
                        "uefiSettings": {
                            "signatureTemplateNames": [
                               "[if(equals(parameters('osType'),'Linux'), variables('linuxSignatureTemplate'), variables('windowsSignatureTemplate'))]"
                            ],
                            "additionalSignatures": {
                                "db": [
                                    {
                                        "type": "x509",
                                        "value": [
                                            "[parameters('customDBKeyDS20')]"
                                        ]
                                    },
                                    {
                                        "type": "x509",
                                        "value": [
                                            "[parameters('customDBKeyDS20V2')]"
                                        ]
                                    },
                                    {
                                        "type": "x509",
                                        "value": [
                                            "[parameters('customDBKeyDS2022')]"
                                        ]
                                     }
                                ]
                            }
                        }
                    }
                }
            }
        ]
    }
  7. 次の点に留意して、CreateSIGFromOSvhdWithCustomUEFIKey.jsonファイルの"parameters"セクション内の{{ }}の値を置き換えてください

    1. 前述のCreateSIGFromOSvhdWithCustomUEFIKey.jsonファイルはカスタムデプロイメントの例です。DS20.derDS20_v2.der、およびDS2022.derはすでにBase64形式で入力されています。

    2. 別の公開鍵をテンプレートに登録するには、次のコマンドを使用して鍵をBase64形式に変換し、その後JSONファイルに鍵を追加します

      openssl base64 -in <Trend_Micro_public_key> -A
  8. Azure CLI を使用してテンプレートデプロイメントによって共有イメージ ギャラリー (SIG) イメージを作成するには、次のようにします:

    az deployment group create --resource-group <resource-group-name> --template-file CreateSIGFromOSvhdWithCustomUEFIKey.json
  9. カスタムデプロイメントイメージで Azure VM を作成する。

  10. 次のコマンドを実行して、キーがMachine Owner Key (MOK) リストに正常に登録されていることを確認してください:

    mokutil --db | grep Trend
  11. 次のコマンドを実行して、カーネルがトレンドマイクロの公開鍵を読み込んだことを確認してください:

    dmesg | grep cert

詳細については、セキュアブート UEFI キー を参照してください。