9a230866a2
- Invoke-SecureBootAudit.ps1: audit Secure Boot certifikátů (Fáze 1) - detekce prostředí (Physical/Hyper-V VM/VMware VM) - parsování EFI_SIGNATURE_LIST, detekce 2011/2023 certifikátů - registry stav, Event Log analýza, kategorizace, JSON výstup - Set-SecureBootCertificateUpdate.ps1: remediace dle KB5068202 - AvailableUpdates = 0x5944 - scheduled task s wait smyčkou (timeout 120s) - WhatIf, Force, VerifyOnly, WinRM - README.md: popis problému, detekce stavů, remediační postup
231 lines
11 KiB
Markdown
231 lines
11 KiB
Markdown
# Projekt: Audit a remediace Secure Boot certifikátů na Windows Serverech
|
||
|
||
## Kontext a popis problematiky
|
||
|
||
### Co se děje
|
||
|
||
Microsoft vydal v červnu 2025 upozornění (KB5062710), že původní Secure Boot certifikáty z roku 2011 expirují v průběhu roku 2026. Jde o certifikáty uložené v UEFI firmware (KEK a DB databázích), které zajišťují důvěryhodnost boot procesu.
|
||
|
||
**Expirující certifikáty a termíny:**
|
||
|
||
| Certifikát | Expirace | Náhrada |
|
||
|---|---|---|
|
||
| Microsoft Corporation KEK CA 2011 | **24. června 2026** | Microsoft Corporation KEK 2K CA 2023 |
|
||
| Microsoft UEFI CA 2011 | **27. června 2026** | Microsoft UEFI CA 2023 + Microsoft Option ROM UEFI CA 2023 |
|
||
| Microsoft Windows Production PCA 2011 | 19. října 2026 | Windows UEFI CA 2023 |
|
||
|
||
### Dopad na servery
|
||
|
||
Servery, které neobdrží nové 2023 certifikáty, budou dál fungovat a bootovat normálně, ale **přestanou být schopné přijímat nové bezpečnostní ochrany boot procesu** — včetně aktualizací Windows Boot Manageru, Secure Boot databází, revokačních seznamů a mitigací nově objevených boot-level zranitelností. Postupem času to omezí ochranu před hrozbami a může ovlivnit scénáře závislé na Secure Boot důvěře, jako je BitLocker hardening nebo third-party bootloadery.
|
||
|
||
### Specifika prostředí (MSP kontext)
|
||
|
||
- Windows Server 2016, 2019, 2022, 2025
|
||
- Fyzické servery různých výrobců (Dell, HP, Lenovo, Supermicro, ...)
|
||
- Virtuální stroje na **Hyper-V** (na Windows Server hostiteli)
|
||
- Virtuální stroje na **VMware ESXi**
|
||
- Prostředí spravovaná přes AD/GPO, bez Intune
|
||
- ~100–150 klientských prostředí různé velikosti
|
||
|
||
### Klíčové technické detaily
|
||
|
||
**Registry klíče relevantní pro stav:**
|
||
- `HKLM\SYSTEM\CurrentControlSet\Control\SecureBoot` — hlavní klíč (SecureBootEnabled, AvailableUpdates, HighConfidenceOptOut)
|
||
- `HKLM\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing` — stav aktualizace (UEFICA2023Status, UEFICA2023Error, WindowsUEFICA2023Capable)
|
||
- `HKLM\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing\DeviceAttributes` — atributy zařízení
|
||
|
||
**Relevantní Event IDs (System log):**
|
||
- **1801** — chybová událost, certifikáty NEBYLY aplikovány
|
||
- **1808** — informační událost, certifikáty BYLY úspěšně aplikovány
|
||
- **1795** — selhání aktualizace (známý problém zejména u Hyper-V VM)
|
||
- **1796**, **1800**, **1802**, **1803** — doplňkové události průběhu
|
||
|
||
**PowerShell cmdlet pro základní check:**
|
||
```powershell
|
||
Confirm-SecureBootUEFI
|
||
```
|
||
Vrací `True` (Secure Boot zapnutý), `False`, nebo exception pokud UEFI Secure Boot není podporován.
|
||
|
||
**Hyper-V specifikum:** U VM běžících na Hyper-V může selhávat aktualizace certifikátů s Event ID 1795. Tento known issue byl Microsoft řešen (resolved March 30, 2026) — ověřit verzi Hyper-V hostitele a aplikovat příslušné opravy.
|
||
|
||
**VMware ESXi specifikum:** Záleží, zda VM má Secure Boot vůbec povolený (nastavení VM hardware). U Generation 1 ekvivalentu (BIOS mode) Secure Boot neexistuje.
|
||
|
||
---
|
||
|
||
## Cíl projektu
|
||
|
||
### Fáze 1 — Detekce (inventář)
|
||
|
||
Vytvořit PowerShell detekční skript, který lze spustit vzdáleně přes `Invoke-Command` nebo lokálně na každém serveru a vrátit strukturovaný přehled stavu.
|
||
|
||
**Výstup skriptu musí obsahovat:**
|
||
|
||
1. Základní identifikace serveru (hostname, OS verze, architektura)
|
||
2. Typ prostředí (fyzický / Hyper-V VM / VMware VM / jiné)
|
||
3. Je Secure Boot podporováno? (UEFI vs. Legacy BIOS)
|
||
4. Je Secure Boot povoleno?
|
||
5. Aktuální stav certifikátů:
|
||
- Jsou přítomny expirující 2011 certifikáty? (KEK CA 2011, UEFI CA 2011, Windows PCA 2011)
|
||
- Jsou přítomny nové 2023 certifikáty?
|
||
- Stav z registry (`UEFICA2023Status`)
|
||
6. Confidence level (z event logu 1801/1808)
|
||
7. Poslední relevantní Event ID a čas
|
||
8. Hardware info (výrobce, model, firmware verze, datum firmware)
|
||
9. Dostupné aktualizace (`AvailableUpdates` registry hodnota)
|
||
10. Případné chyby (`UEFICA2023Error`)
|
||
|
||
**Formát výstupu:** JSON (pro snadné zpracování a agregaci) + human-readable summary
|
||
|
||
**Požadavky na skript:**
|
||
- Běží bez instalace dalších modulů (pure PowerShell 5.1+)
|
||
- Tolerantní vůči chybám — pokud Secure Boot není podporován/povolen, nezhavaruje
|
||
- Rozlišuje fyzický vs. VM (Hyper-V / VMware) přes WMI
|
||
- Exportuje výsledek lokálně i umožní vzdálené volání
|
||
- Wrapper skript pro hromadné spuštění přes seznam serverů z CSV/textového souboru
|
||
|
||
### Fáze 2 — Analýza a kategorizace
|
||
|
||
Na základě dat z detekce kategorizovat každý server do skupin:
|
||
|
||
| Kategorie | Popis | Doporučená akce |
|
||
|---|---|---|
|
||
| **✅ OK** | Má nové 2023 certifikáty, Secure Boot aktivní | Žádná akce |
|
||
| **⚠️ Nutná aktualizace** | Má staré 2011 certifikáty, Secure Boot aktivní, firmware OK | Naplánovat rollout |
|
||
| **🔧 Čeká na firmware** | Secure Boot aktivní, ale firmware nepodporuje update | Kontaktovat OEM / update firmware |
|
||
| **⏸️ Secure Boot vypnuto** | Secure Boot existuje ale není zapnuto | Rozhodnutí o enablementu |
|
||
| **❌ Secure Boot nepodporováno** | Legacy BIOS nebo VM bez vTPM | Dokumentovat jako výjimku |
|
||
| **🔴 Selhání aktualizace** | Event 1795/chyba v registry | Troubleshooting |
|
||
|
||
### Fáze 3 — Remediace
|
||
|
||
Navrhnout a implementovat remediační postup pro prostředí bez Intune:
|
||
|
||
**Metody rollout (zvážit dle prostředí klienta):**
|
||
|
||
1. **Registry key metoda** — přímé nastavení klíčů přes PowerShell/GPO (KB5068202)
|
||
2. **GPO metoda** — Group Policy Objects pro nastavení (KB5068198)
|
||
3. **WinCS CLI** — Windows Configuration System nástroj pro domain-joined stroje (KB5068197)
|
||
4. **Ruční / skriptovaný rollout** — pro izolovaná prostředí
|
||
|
||
**Postup rollout (staging):**
|
||
1. Test na 1–2 reprezentativních serverech každého typu (výrobce + firmware verze)
|
||
2. Ověření úspěchu přes Event ID 1808 a registry
|
||
3. Rozšíření na další skupinu
|
||
4. Monitoring (min. 48 hodin po aplikaci, čekat na restart)
|
||
|
||
**Remediační PowerShell** musí umět:
|
||
- Nastavit registry klíče pro zahájení aktualizace
|
||
- Spustit/zkontrolovat scheduled task pro Secure Boot update
|
||
- Ověřit výsledek po restartu
|
||
|
||
---
|
||
|
||
## Technické požadavky na kód
|
||
|
||
### Detekční skript
|
||
|
||
```
|
||
Soubor: Invoke-SecureBootAudit.ps1
|
||
```
|
||
|
||
**Logika detekce certifikátů** — kontrolovat přítomnost certifikátů přes `Get-SecureBootUEFI`:
|
||
- KEK databáze: hledat thumbprinty/subject odpovídající 2011 a 2023 certifikátům
|
||
- DB databáze: hledat Windows Production PCA 2011 / UEFI CA 2011 / jejich 2023 náhrady
|
||
|
||
**Detekce typu prostředí:**
|
||
```powershell
|
||
# Hyper-V VM
|
||
(Get-WmiObject Win32_ComputerSystem).Model -eq "Virtual Machine" -and
|
||
(Get-WmiObject Win32_ComputerSystem).Manufacturer -like "*Microsoft*"
|
||
|
||
# VMware VM
|
||
(Get-WmiObject Win32_ComputerSystem).Manufacturer -like "*VMware*"
|
||
```
|
||
|
||
**Ošetřit výjimky:**
|
||
- `Get-SecureBootUEFI` hodí exception pokud Secure Boot není podporováno nebo povoleno — zachytit a zalogovat
|
||
- Na Legacy BIOS strojích `Confirm-SecureBootUEFI` vrátí exception nebo False
|
||
|
||
### Wrapper pro hromadné spuštění
|
||
|
||
```
|
||
Soubor: Start-SecureBootFleetAudit.ps1
|
||
```
|
||
|
||
- Vstup: seznam serverů (parametr nebo CSV soubor s kolonkou `ServerName`)
|
||
- Výstup: agregovaný JSON + CSV soubor pro import do Excelu
|
||
- Paralelizace: `Invoke-Command` s `-ThrottleLimit` (doporučeno max 20 paralelně)
|
||
- Logování: výpis chyb nedostupných serverů do separátního souboru
|
||
|
||
### Remediační skript
|
||
|
||
```
|
||
Soubor: Set-SecureBootCertificateUpdate.ps1
|
||
```
|
||
|
||
- Parametry: `-ServerName`, `-WhatIf`, `-Force`
|
||
- WhatIf mode pro ověření před spuštěním
|
||
- Nastavit příslušné registry klíče dle KB5068202
|
||
- Spustit nebo počkat na scheduled task
|
||
- Zalogovat výsledek
|
||
|
||
---
|
||
|
||
## Omezení a rizika
|
||
|
||
### Hyper-V VM
|
||
- Aktualizace Secure Boot certifikátů ve VM závisí na tom, zda **hypervizor poskytuje virtualizovaný UEFI** podporující aktualizace
|
||
- Generation 1 VM (BIOS) — Secure Boot nepodporují vůbec
|
||
- Generation 2 VM — mají virtualizovaný UEFI, ale aktualizace certifikátů závisí na verzi hypervizoru
|
||
- Known issue s Event 1795 byl opraven (březen 2026) — ověřit verzi Windows Server hostitele
|
||
|
||
### VMware ESXi
|
||
- Secure Boot ve VMware VM závisí na konfiguraci VM (EFI firmware + Secure Boot v nastavení VM)
|
||
- VMware neposkytuje automatické předání nových certifikátů do VM — aktualizace musí proběhnout přes Windows jako na fyzickém stroji
|
||
- Na starších ESXi verzích může být virtualizovaný UEFI omezený
|
||
|
||
### Fyzické servery
|
||
- Starší servery (zejména pre-2018) mohou vyžadovat firmware update od OEM před aplikací nových Secure Boot certifikátů
|
||
- Servery end-of-life od výrobce mohou nemít dostupný firmware update — dokumentovat jako výjimku
|
||
|
||
### Obecná rizika
|
||
- Neúspěšná aktualizace certifikátů **NEOHROZÍ boot serveru** — server bude dál fungovat se starými certifikáty
|
||
- Aktualizace vyžaduje restart pro aplikaci Boot Manageru (ne jen certifikátů)
|
||
- Po aplikaci počítat s min. 48 hodinami a jedním nebo více restarty
|
||
|
||
---
|
||
|
||
## Reference dokumentace
|
||
|
||
- KB5062710 — [Přehled: Windows Secure Boot certificate expiration and CA updates](https://support.microsoft.com/en-us/topic/windows-secure-boot-certificate-expiration-and-ca-updates-7ff40d33-95dc-4c3c-8725-a9b95457578e)
|
||
- KB5062713 — [IT Pro guidance](https://support.microsoft.com/en-us/help/5062713)
|
||
- KB5068202 — [Registry key updates](https://support.microsoft.com/en-us/help/5068202)
|
||
- KB5068198 — [GPO metoda](https://support.microsoft.com/en-us/help/5068198)
|
||
- KB5068197 — [WinCS APIs](https://support.microsoft.com/en-us/help/5068197)
|
||
- KB5085046 — [Troubleshooting](https://support.microsoft.com/en-us/help/5085046)
|
||
- KB5085790 — [Known issues and resolutions](https://support.microsoft.com/en-us/help/5085790)
|
||
- KB5086397 — [Azure Local / HyperConverged Infrastructure](https://support.microsoft.com/en-us/help/5086397)
|
||
- [Secure Boot DB and DBX variable update events](https://support.microsoft.com/topic/37e47cf8-608b-4a87-8175-bdead630eb69)
|
||
|
||
---
|
||
|
||
## Výstupy projektu (deliverables)
|
||
|
||
1. **`Invoke-SecureBootAudit.ps1`** — detekční skript pro jednotlivý server
|
||
2. **`Start-SecureBootFleetAudit.ps1`** — wrapper pro hromadný audit celé sítě
|
||
3. **`Set-SecureBootCertificateUpdate.ps1`** — remediační skript s WhatIf podporou
|
||
4. **`README.md`** — dokumentace použití všech skriptů
|
||
5. **Vzorový výstup** — příklad JSON a CSV výstupu auditu
|
||
|
||
---
|
||
|
||
## Priorita a časový rámec
|
||
|
||
**Urgentní** — první dvě expirace jsou **24. a 27. června 2026** (týden od dnešního data). Audit je nutné provést okamžitě, aby bylo jasné, na kolika serverech je nutná akce.
|
||
|
||
**Doporučené pořadí práce:**
|
||
1. Detekční skript (Fáze 1) — okamžitě
|
||
2. Hromadný wrapper + export do CSV — obratem po detekci
|
||
3. Analýza výsledků a kategorizace
|
||
4. Remediační skript — po otestování na pilotních serverech
|