FAQ und Script zur Secure Boot-Absicherung gegen CVE-2023-24932 (Black Lotus)

Windows[English]Microsoft versucht seit geraumer Zeit den Secure Boot in Windows gegen die Black Lotus-Boot-Kit-Schwachstelle CVE-2023-24932 abzusichern. Nachfolgend eine kurze Zusammenfassung bzw. FAQ, u.a. zum auszutauschenden Zertifikat in den Boot-Medien.  Und ein Leser hat mir sein Script zum Zertifikatsaustausch zukommen lassen.


Anzeige

Windows UEFI CA 2023 Zertifikat

Seit langer Zeit versucht Microsoft die Schwachstelle CVE-2023-24932 im Secure Boot von Windows 11 zu schließen, die durch das BlackLotus UEFI-Bootkit ausgenutzt wird (siehe  KB5025885: Secure Boot-Absicherung gegen Schwachstelle CVE-2023-24932 (Black Lotus)).

Aber es gibt noch ein Problem: Im Oktober 2026 läuft ein UEFI-Zertifikat ("Windows Production PCA 2011") Microsofts ab, welches beim Secure Boot benutzt wird. Das dürfte nicht nur Windows-Nutzer betreffen, sondern auch Linux-Administratoren sollten sich mit dem Thema befassen. Auch hier versucht Microsoft seit geraumer Zeit das Zertifikat zu erneuern (siehe auch Windows 10/11 KB5053484: Neues PS-Script für Zertifikate in Boot-Medien). Administratoren müssen reagieren und das neue Zertifikat bis Oktober 2026 im UEFI der Maschinen abgelegt haben.

Fragen und Antworten zum UEFI-Zertifikat

Bolko hatte in diesem Kommentar einige Fragen und Antworten rund um den Austausch des UEFI-Zertifikat für den Secure Boot eingestellt (danke dafür). Ich ziehe die Informationen mal als FAQ heraus.

Welches Update enthält das neue UEFI-Zertifikat?

Das kumulative Update KB5036210 vom 13. Februar 2024 brachte erstmals das Windows UEFI CA 2023-Zertifikat und die Funktionen mit, um die UEFI Secure Boot Allowed Signature Database (DB) mit dem neuen Schlüssel zu aktualisieren. Dieses und alle nachfolgenden Updates sollten das neue Bootloader-Zertifikat enthalten, was nach Oktober 2026 beim Secure Boot benötigt wird.


Anzeige

Wie erkenne ich, ob das neue Zertifikat vorhanden ist?

Ob Windows das neue Zertifikat integriert hat, sollte man (laut Supportseite) an folgendem Registry-Schlüssel herausfinden können:

HKEY_LOCAL_MACHINE\SYSTEM\\CurrentControlSet\Control\SecureBoot\Servicing

Ist dort der 32-Bit-DWORD-Wert WindowsUEFICA2023Capable auf 0x40 gesetzt, sollte Windows vorbereitet sein. Mit dem DWORD-Wert 0x0 ist das System nicht für das neue UEFI-Zertifikat bereit.

Sind UEFI-Signaturen integriert?

Die spannende Frage ist, ob ein OEM-Hersteller bereits die neuen Zertifikate im UEFI eines neuen Rechners integriert hat. Dann spart man sich das Patchen. Bolko schreibt, dass man im UEFI kann man selber nachschauen können. Dazu das UEFI beim Starten des Rechners (über eine Funktionstaste) öffnen und in folgenden Optionen schauen:

secure boot keys -> Authorized Signatures (db) -> search for "Windows UEFI CA 2023"

Detailliertere Informationen zu diesen UEFI-Signaturen findet man, inklusive Downloads für das neue Zertifikat,. bei Microsoft in diesem Dokument. Kurzfassung: Man braucht, je Mainboard-Hersteller, einen signierten KEK-Schlüssel, um diese neuen Signaturen ins UEFI integrieren zu dürfen.

Microsoft bezeichnet das neue Schlüsselaustausch-Zertifikat als "Microsoft Corporation KEK CA 2023-Zertifikat". Alle Mainboard-Hersteller müssen dieses Microsoft-Zertifikat runterladen, signieren und wieder zurück zu Microsoft hochladen, damit Microsoft dann per Update aus Windows heraus ab dem Jahr 2026 neue DB und DBX-Signaturen ins UEFI schreiben darf. Ohne dieses neue signierte KEK würden die UEFIs die Updates der erlaubten Bootloader-Signatur-Datenbanken verweigern.

Weitere Informationen

Ich finde aktuell die Stelle im Blog nicht mehr, wo ich es erwähnt habe. Meinen Kenntnissen nach will Microsoft das alte UEFI Secure-Boot-Zertifikat ("Windows Production PCA 2011") mit einem künftigen Update als ungültig erklären. Die sogenannte Erzwingungsphase beginnt aber nicht vor Januar 2026. Allen Lesern empfehle ich den Microsoft Support-Beitrag Verwalten der Windows-Start-Manager-Sperrungen für Änderungen des sicheren Starts im Zusammenhang mit CVE-2023-24932 von Mai 2023, da dort viele zusätzliche Informationen (u.a. die Zeitpläne für die Erzwingungsphade) zusammen getragen wurden.

Ein Script zur Zertifikatinstallation

Es gab in diesem Kommentarthread einen Hinweis auf ein Script zur Zertifikatinstallation. Ich hatte angeboten, das Script zu veröffentlichen – hier die betreffenden Anweisungen. Ein Administrator hat mir folgenden Code zukommen lassen (danke dafür).

@ECHO OFF
@REM	Autor:RF
@REM	Datum:31.01.2025
@REM	KB5025885

REM TODO
REM reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot /v AvailableUpdates /t REG_DWORD /d 0x40 /f
REM 2x Reboot
REM
REM powershell -command "[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI db).bytes) -match 'Windows UEFI CA 2023'"
REM
REM reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot /v AvailableUpdates /t REG_DWORD /d 0x100 /f
REM 2x Reboot
REM
REM mountvol Q: /s && copy "Q:\EFI\Microsoft\Boot\bootmgfw.efi" "%TEMP%\bootmgfw.efi" && mountvol Q: /d
REM Signatur von %TEMP%\bootmgfw.efi prüfen
REM
REM reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot /v AvailableUpdates /t REG_DWORD /d 0x80 /f
REM 2x Reboot
REM
REM powershell -command "[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI dbx).bytes) -match 'Microsoft Windows Production PCA 2011'"
REM
REM reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot /v AvailableUpdates /t REG_DWORD /d 0x200 /f
REM 2x Reboot

@ECHO.
@ECHO %~nx0 %*

REM ****************************************************************************
REM Test Administator Berechtigung
"%windir%\System32\net.exe" session >nul 2>nul
"%windir%\System32\net.exe" session >nul 2>nul
REM ECHO ErrorLevel: %errorlevel%

IF ERRORLEVEL 1 (
  ECHO.
  ECHO Error: %~nx0
  ECHO Administator Berechtigung erforderlich
  ECHO.
  Pause
  Exit /b
)

REM ****************************************************************************
SETLOCAL
SET $CWD=%CD%
SET $CERT_OLD=Microsoft Windows Production PCA 2011
SET $CERT_NEW=Windows UEFI CA 2023
SET $OUT=%TEMP%\~%~n0.txt

CD /D "%~dp0"
REM CD /D "%~1"

REM ****************************************************************************
ECHO Check new Certificate installed in UEFI db (%$CERT_NEW%)
ECHO.

> "%$OUT%" powershell.exe -command "[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI db).bytes) -match '%$CERT_NEW%'"
> NUL "%windir%\System32\find.exe" /I "True" "%$OUT%"
REM ECHO %ERRORLEVEL%
IF "0"=="%ERRORLEVEL%"	GOTO :DB_OK

REM ****************************************************************************
ECHO.
ECHO ERROR: new Certificate is not installed in UEFI db.
ECHO.
SET /P $ANSWER="Do you want to install new Certificate in UEFI db? [Y/N] "
IF /I NOT "Y"=="%$ANSWER%"	GOTO :ENDE

REM ****************************************************************************
ECHO.
ECHO Add Reg Key
ECHO.
"%windir%\System32\REG.EXE" ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot" /v AvailableUpdates /t REG_DWORD /d 0x40 /f

ECHO.
ECHO Please reboot twice and run this script again
ECHO.
GOTO :ENDE

REM ****************************************************************************
:DB_OK
ECHO new Certificate is installed in UEFI db (%$CERT_NEW%).
ECHO.

REM ****************************************************************************
ECHO Check Signature of BootLoader (%$CERT_NEW%)
ECHO.
"%windir%\System32\mountvol.exe" Q: /S
> NUL COPY /Y "Q:\EFI\Microsoft\Boot\bootmgfw.efi" "%TEMP%\bootmgfw.efi"
"%windir%\System32\mountvol.exe" Q: /D

> NUL "%windir%\System32\find.exe" /I "%$CERT_NEW%" "%TEMP%\bootmgfw.efi"
REM ECHO %ERRORLEVEL%
IF "0"=="%ERRORLEVEL%"	GOTO :BOOT_OK

> NUL "%windir%\System32\find.exe" /I "%$CERT_OLD%" "%TEMP%\bootmgfw.efi"
IF "0"=="%ERRORLEVEL%"	ECHO BootLoader is signed with old Certificate "%$CERT_OLD%"

REM ****************************************************************************
ECHO.
ECHO ERROR: BootLoader is not signed with new Certificate.
ECHO.
SET /P $ANSWER="Do you want to update the BootLoader? [Y/N] "
IF /I NOT "Y"=="%$ANSWER%"	GOTO :ENDE

REM ****************************************************************************
ECHO.
ECHO Add Reg Key
ECHO.
"%windir%\System32\REG.EXE" ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot" /v AvailableUpdates /t REG_DWORD /d 0x100 /f

ECHO.
ECHO Please reboot twice and run this script again
ECHO.
GOTO :ENDE

REM ****************************************************************************
:BOOT_OK
ECHO BootLoader is signed with new Certificate (%$CERT_NEW%).
ECHO.

REM ****************************************************************************
ECHO Check old Certificate blocked in UEFI dbx (%$CERT_OLD%)
ECHO.

> "%$OUT%" powershell.exe -command "[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI dbx).bytes) -match '%$CERT_OLD%'"
> NUL "%windir%\System32\find.exe" /I "True" "%$OUT%"
REM ECHO %ERRORLEVEL%
IF "0"=="%ERRORLEVEL%"	GOTO :DBX_OK

REM ****************************************************************************
ECHO.
ECHO ERROR: old Certificate is not blocked in UEFI dbx.
ECHO.
SET /P $ANSWER="Do you want to blocked old Certificate in UEFI dbx? [Y/N] "
IF /I NOT "Y"=="%$ANSWER%"	GOTO :ENDE

REM ****************************************************************************
ECHO.
ECHO Add Reg Key
ECHO.
"%windir%\System32\REG.EXE" ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot" /v AvailableUpdates /t REG_DWORD /d 0x80 /f

ECHO.
ECHO Please reboot twice and run this script again
ECHO.
GOTO :ENDE

REM ****************************************************************************
:DBX_OK
ECHO old Certificate is blocked in UEFI dbx.
ECHO.

REM ****************************************************************************
REM TODO
REM "%windir%\System32\REG.EXE" ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot" /v AvailableUpdates /t REG_DWORD /d 0x200 /f

REM ****************************************************************************
:ENDE
ECHO bye
PAUSE
CD /D "%$CWD%"
ENDLOCAL
GOTO :EOF

Der Administrator hat mir mitgeteilt, dass er ca. 50 Rechner mit dem Script umgestellt habe. Natürlich gilt, dass der Code auf Basis As-Is bereitgestellt wird und die Nutzung auf eigene Gefahr erfolgt.

Ähnliche Artikel:
Windows 10/11 KB5053484: Neues PS-Script für Zertifikate in Boot-Medien
KB5025885: Secure Boot-Absicherung gegen Schwachstelle CVE-2023-24932 (Black Lotus)
Frage: BlackLotus-Schwachstelle und ablaufendes UEFI-Zertifikat – was droht uns?
Windows und das (BlackLotus) Secure Boot-Desaster: Wie ist bei euch der Status?


Anzeige

Dieser Beitrag wurde unter Sicherheit, Update, Windows Server abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

5 Antworten zu FAQ und Script zur Secure Boot-Absicherung gegen CVE-2023-24932 (Black Lotus)

  1. Jens sagt:

    Also mein Thinkpad T14 G4 hat das aktuellste BIOS welches auch laut Changelog schon das neue MS Zertifikat haben soll. W11 24H2 Februar Update ist ebenfalls installiert.

    WindowsUEFICA2023Capable steht auf 0 und AvailableUpdates steht ebenfalls auf 0

    Muss man da dann irgendwann manuell eingreifen oder wird das "irgendwann" automatisch von Windows geupdated?

    • Günter Born sagt:

      Ich habe es in der FAQ nicht angegeben – hatte es vor einigen Wochen mal im Blog erwähnt (finde die Stelle nicht mehr): Laut Microsoft will man das alte UEFI-Zertifikat mit einem zukünftigen Update revoken – also als ungültig erklären, so dass das neue Zertifikat dann ausschließlich für den Secure Boot gilt.

  2. Carsten sagt:

    Also bei meinem Laptop klappt das Script nicht. Es gibt mir immer wieder die Meldung der Bootloader müsste aktualisiert werden. Wenn ich das machen und 2-mal reboote, kommt anschließend immer noch die selbe Meldung und das Zertifikat ist immer noch das Alte. Wenn ich die Registryeinträge manuell setze, wie im MS Artikel beschrieben, geht es. Vielleicht haben Andere andere Erfahrungen?

  3. jup sagt:

    Frage: Hat sich schon mal jemand das in Hinblick bei einem Server mit WDS angesehen ?
    Das müßte dort doch auch "gefixt" werden , oder ?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Bitte beachtet die Regeln zum Kommentieren im Blog (Erstkommentare und Verlinktes landet in der Moderation, gebe ich alle paar Stunden frei, SEO-Posts/SPAM lösche ich rigoros). Kommentare abseits des Themas bitte unter Diskussion.

Du findest den Blog gut, hast aber Werbung geblockt? Du kannst diesen Blog auch durch eine Spende unterstützen.