Ansichten:

Bereiten Sie Ihre AWS-Umgebung vor, damit Server & Workload Protection Secure Boot unterstützen kann.

Wichtig
Wichtig
  • Sie müssen über einen Plattformschlüssel verfügen, um Secure Boot-Schlüssel zu registrieren. Wenn Sie keinen Plattformschlüssel haben, lesen Sie die AWS-Dokumentation, um einen Secure Boot-Plattformschlüssel zu generieren.
  • Ersetzen Sie den Plattform-Schlüssel nicht, wenn Sie nicht auf die Firmware aller Geräte zugreifen können, die während des Bootvorgangs geladen werden, wie z. B. die GPU. Wenn Sie die Firmware-Signaturkette nicht aktualisieren können, um Ihren neuen Plattform-Schlüssel zu verwenden, könnte Secure Boot dazu führen, dass die Instanz dauerhaft nicht mehr booten kann.
Bevor Sie beginnen, stellen Sie sicher, dass Sie die Trend Micro öffentlichen Schlüssel und die erforderlichen CA-Zertifikate herunterladen.

Prozedur

  1. Erstellen Sie eine EC2-Instanz einer virtuellen Maschine aus einem Linux-Distributions-AMI, das Secure Boot unterstützt.
  2. Installieren Sie in der Konsole für diese Instanz die Machine Owner Key (MOK)-Befehle mokutil, uefivars und Python.
    Geben Sie beispielsweise auf Red Hat Enterprise Linux die folgenden Befehle ein:
    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
    Für Debian oder Ubuntu verwenden Sie die Befehle:
    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
  3. Laden Sie die CA-Zertifikate und die öffentlichen Schlüssel von Trend Micro auf die Instanz hoch.
  4. Kombinieren Sie den Plattformschlüssel, die CA-Zertifikate und den öffentlichen Schlüssel von Trend Micro in eine einzelne Binärdatei (.bin)
    Der folgende Beispielcode konvertiert jedes Element in .esl-Dateien, kombiniert sie dann und konvertiert das Set in .bin, wobei 77fa9abd-0359-4d32-bd60-28f4e78f784b die GUID im SignatureOwner-Feld des Microsoft Corporation KEK CA 2011 Zertifikats ist.
    # 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_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_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
  5. Laden Sie die Binärdatei herunter.
  6. Erstellen Sie einen neuen EC2-Snapshot der Instanz.
  7. Zugriff auf AWS Cloudshell.
  8. Gehen Sie zu AktionenDateienDatei hochladen und wählen Sie die Binärdatei aus.
  9. Erstellen Sie ein neues AMI mit der Snapshot-ID und der .bin-Datei, die Sie hochgeladen haben.
    Beispiel:
    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
  10. Verwenden Sie das angepasste Image, um eine neue Instanz mit aktiviertem Secure Boot zu erstellen.
  11. Überprüfen Sie, ob die Schlüssel erfolgreich in die MOK-Liste aufgenommen wurden.
    Verwenden Sie den Befehl mokutil --db | grep Trend.
  12. Überprüfen Sie, ob der Kernel die Trend Micro Public Keys erfolgreich geladen hat.
    Verwenden Sie den Befehl dmesg | grep cert.