Avvio misurato e attestazione host

Questo articolo descrive in che modo Microsoft garantisce l'integrità e la sicurezza degli host tramite l'attestazione di avvio e host misurata.

Avvio misurato

Trusted Platform Module (TPM) è un componente di controllo crittograficamente sicuro e a prova di manomissione con firmware fornito da terze parti attendibili. Il log di configurazione di avvio contiene misurazioni concatenati con hash registrate nei registri di configurazione della piattaforma (PCR) quando l'host ha subito l'ultima sequenza di bootstrap. La figura seguente illustra questo processo di registrazione. L'aggiunta incrementale di una misura con hash in precedenza all'hash della misurazione successiva e l'esecuzione dell'algoritmo hash nell'unione esegue il concatenamento hash.

Diagramma che mostra il concatenamento hash del servizio di attestazione host.

L'attestazione viene eseguita quando un host fornisce una prova dello stato di configurazione usando il log di configurazione di avvio (TCGLog). La falsificazione di un log di avvio è difficile perché il TPM non espone i valori PCR diversi dalle operazioni di lettura ed estensione. Inoltre, le credenziali fornite dal servizio di attestazione host sono sealed per valori PCR specifici. L'uso del concatenamento hash lo rende infeasible a livello di calcolo per spoofare o annullare le credenziali fuori banda.

Servizio di attestazione host

Il servizio di attestazione host è una misura preventiva che controlla se i computer host sono attendibili prima che siano autorizzati a interagire con i dati o i carichi di lavoro dei clienti. Il servizio di attestazione host verifica convalidando un'istruzione di conformità (prova verificabile della conformità dell'host) inviata da ogni host in base a un criterio di attestazione (definizione dello stato di sicurezza). L'integrità di questo sistema è garantita da una radice di trust fornita da un TPM.

Il servizio di attestazione host è presente in ogni cluster di Azure all'interno di un ambiente bloccato specializzato. L'ambiente bloccato include altri servizi gatekeeper che partecipano al protocollo di bootstrap del computer host. Un'infrastruttura a chiave pubblica (PKI) funge da intermediario per convalidare la provenienza delle richieste di attestazione e come emittente dell'identità (in base all'attestazione host riuscita). Le credenziali di post-attestazione rilasciate all'host di attestazione sono sealed per la relativa identità. Solo l'host richiedente può annullare le credenziali e usarle per ottenere autorizzazioni incrementali. Ciò impedisce attacchi man-in-the-middle e spoofing.

Se un host di Azure arriva dalla factory con una configurazione errata della sicurezza o viene manomesso nel data center, il TCGLog contiene indicatori di compromissione contrassegnati dal servizio di attestazione host alla successiva attestazione, causando un errore di attestazione. Gli errori di attestazione impediscono alla flotta di Azure di considerare attendibile l'host che causa l'errore. Questa prevenzione blocca efficacemente tutte le comunicazioni da e verso l'host e attiva un flusso di lavoro di eventi imprevisti. Le indagini e un'analisi post-mortem dettagliata vengono condotte per determinare le cause radice e le potenziali indicazioni di compromissione. Dopo aver completato l'analisi, un host viene risolto e ha la possibilità di partecipare alla flotta di Azure e di assumere carichi di lavoro dei clienti.

Di seguito è riportata un'architettura generale del servizio di attestazione host:

Diagramma che mostra l'architettura del servizio di attestazione host.

Misurazioni di attestazione

Di seguito sono riportati esempi delle numerose misurazioni acquisite oggi.

Proteggere le chiavi di avvio e avvio protetto

Convalidando che il database di firma e i digest del database delle firme revocati siano corretti, il servizio di attestazione host assicura che l'agente client consideri il software corretto come attendibile. Convalidando le firme del database della chiave di registrazione della chiave pubblica e della chiave della piattaforma pubblica, il servizio di attestazione host conferma che solo le parti attendibili hanno l'autorizzazione per modificare le definizioni del software considerato attendibile. Infine, verificando che l'avvio protetto sia attivo, il servizio di attestazione host convalida che queste definizioni vengono applicate.

Controlli di debug

I debugger sono strumenti potenti per gli sviluppatori. Tuttavia, l'accesso senza problemi alla memoria e ad altri comandi di debug potrebbe indebolire la protezione dei dati e l'integrità del sistema se assegnati a un'entità non attendibile. Il servizio di attestazione host garantisce che qualsiasi tipo di debug sia disabilitato all'avvio nei computer di produzione.

Integrità del codice

L'avvio protetto UEFI garantisce che solo il software di basso livello attendibile possa essere eseguito durante la sequenza di avvio. Gli stessi controlli, tuttavia, devono essere applicati anche nell'ambiente post-avvio ai driver e ad altri eseguibili con accesso in modalità kernel. A tale scopo, viene usato un criterio di integrità del codice per definire quali driver, file binari e altri file eseguibili sono considerati attendibili specificando firme valide e non valide. Questi criteri vengono applicati. Le violazioni dei criteri generano avvisi al team di risposta agli eventi imprevisti di sicurezza per l'analisi.

Passaggi successivi

Per altre informazioni sulle operazioni eseguite per promuovere l'integrità e la sicurezza della piattaforma, vedere: