Avvio protetto
L'avvio protetto è una funzionalità dell'interfaccia UEFI ( Unified Extensible Firmware Interface ) che richiede la verifica di tutti i componenti software e firmware di basso livello prima del caricamento. Durante l'avvio, l'avvio protetto UEFI controlla la firma di ogni componente del software di avvio, inclusi i driver del firmware UEFI (noti anche come rom di opzione), le applicazioni EFI (Extensible Firmware Interface) e i driver e i file binari del sistema operativo. Se le firme sono valide o attendibili dall'OEM (Original Equipment Manufacturer), l'avvio del computer e il firmware fornisce il controllo al sistema operativo.
Componenti e processi
L'avvio protetto si basa su questi componenti critici:
- Chiave della piattaforma (PK) : stabilisce l'attendibilità tra il proprietario della piattaforma (Microsoft) e il firmware. La metà pubblica è PKpub e la metà privata è PKpriv.
- Key enrollment key database (KEK) : stabilisce un trust tra il sistema operativo e il firmware della piattaforma. La metà pubblica è KEKpub e la metà privata è KEKpriv.
- Database di firma (db): contiene i digest per i firmatari attendibili (chiavi pubbliche e certificati) dei moduli di codice firmware e software autorizzati a interagire con il firmware della piattaforma.
- Database delle firme revocate (dbx): contiene digest revocati dei moduli di codice identificati come dannosi, vulnerabili, compromessi o non attendibili. Se un hash si trova nel database della firma e nel database delle firme revocate, il database delle firme revocate ha un precedente.
La figura e il processo seguenti illustrano come questi componenti vengono aggiornati:
L'OEM archivia i digest di avvio protetto nella RAM non volatile (NV-RAM) del computer al momento della produzione.
- Il database di firma (db) viene popolato con i firmatari o gli hash delle immagini delle applicazioni UEFI, dei caricatori del sistema operativo (ad esempio Microsoft Operating System Loader o Boot Manager) e dei driver UEFI attendibili.
- Il database delle firme revocate (dbx) viene popolato con digest di moduli non più attendibili.
- Il database della chiave di registrazione della chiave (KEK) viene popolato con chiavi di firma che possono essere usate per aggiornare il database delle firme e revocare il database delle firme. I database possono essere modificati tramite aggiornamenti firmati con la chiave corretta o tramite aggiornamenti da un utente fisicamente autorizzato tramite menu del firmware.
- Dopo aver aggiunto i database db, dbx e KEK e aver completato la convalida e il test del firmware finale, l'OEM blocca il firmware dalla modifica e genera una chiave della piattaforma (PK). La chiave pubblica può essere usata per firmare gli aggiornamenti della chiave di crittografia della chiave o per disattivare l'avvio protetto.
Durante ogni fase del processo di avvio, i digest del firmware, del bootloader, del sistema operativo, dei driver del kernel e di altri artefatti della catena di avvio vengono calcolati e confrontati con i valori accettabili. Il firmware e il software individuati come non attendibili non possono essere caricati. Di conseguenza, gli attacchi malware di basso livello o preavvio possono essere bloccati.
Avvio protetto nella flotta di Azure
Oggi, ogni computer di cui è stato eseguito l'onboarding e la distribuzione nella flotta di calcolo di Azure per ospitare i carichi di lavoro dei clienti proviene dai piani di fabbrica con l'avvio protetto abilitato. Gli strumenti e i processi mirati vengono eseguiti in ogni fase della pipeline di integrazione e di compilazione dell'hardware per garantire che l'abilitazione dell'avvio protetto non venga ripristinata per errore o per finalità dannose.
Verificare che i digest db e dbx siano corretti garantisce:
- Bootloader è presente in una delle voci del database
- La firma di Bootloader è valida
- Avvio dell'host con software attendibile
Convalidando le firme di KEKpub e PKpub, è possibile verificare che solo le parti attendibili abbiano l'autorizzazione per modificare le definizioni del software considerato attendibile. Infine, assicurandosi che l'avvio protetto sia attivo, è possibile verificare che queste definizioni vengano applicate.
Passaggi successivi
Per altre informazioni sulle operazioni eseguite per promuovere l'integrità e la sicurezza della piattaforma, vedere: