Effettuare la live migration di macchine virtuali Hyper-V configurate con il virtual Trusted Platform Module (vTPM)

Abilitando il vTMP (Virtual Trusted Platform Module) sulle vostre macchine virtuali, garantite una maggiore sicurezza attraverso la crittografia e l’integrità dei dati sensibili e dei software che eseguite. Questo strumento simula le funzionalità di un TPM fisico in un ambiente virtuale, permettendovi di utilizzare funzionalità di sicurezza avanzate, come la crittografia del disco con BitLocker e il Windows Defender System Guard.

Oltre alla sicurezza, il vTMP vi aiuta a gestire le licenze software più efficacemente, specialmente quelle che richiedono un TPM per la loro funzionalità. L’abilitazione del vTMP può essere essenziale per eseguire alcuni sistemi operativi e applicazioni che necessitano di un ambiente di esecuzione sicuro e verificato.

Inoltre, il supporto per il vTMP vi permette di rispettare standard e normative di sicurezza più rigorosi, facilitando la conformità alle politiche di sicurezza aziendali e agli obblighi regolamentari. Questo può essere particolarmente importante se operate in settori dove la protezione dei dati è critica, come nel settore finanziario, sanitario o in qualsiasi area che gestisca informazioni sensibili.

Come ben sapete, Windows 11 richiede obbligatoriamente il TPM per la sua installazione quindi ormai da diverso tempo viene abilitato sulle macchine virtuali.

Figura 1: Macchina virtuale configurata per l’utilizzo del Virtual Platform Module (vTMP)

Hyper-V Guarded Host

Un Hyper-V Guarded Host è una funzionalità di sicurezza avanzata di Windows Server che permette di gestire macchine virtuali in modo più sicuro. Questo sistema è progettato per proteggere le macchine virtuali da accessi non autorizzati e da software malevolo, specialmente in ambienti cloud o in data center dove le macchine virtuali sono esposte a rischi più elevati.

L’elemento chiave di un Hyper-V Guarded Host è il Host Guardian Service (HGS), che verifica l’integrità degli host di Hyper-V prima di permettere loro di eseguire macchine virtuali protette. Questo processo si basa sull’utilizzo di attestation policies che possono essere configurate per assicurare che solo gli host verificati e considerati sicuri possano caricare certe macchine virtuali crittografate. Ne ho parlato già nella guida Creare un Guarded Fabric con l’Admin-trusted attestation e le Shielded VMs in Windows Server 2016 – ICT Power

Live migration di macchine virtuali Hyper-V con il vTPM

La migrazione in tempo reale (live migration) di macchine virtuali Hyper-V che utilizzano un chip vTPM (Virtual Trusted Platform Module) è una funzionalità avanzata che permette di spostare una VM da un host fisico all’altro senza interruzioni nel servizio, mantenendo al contempo un elevato livello di sicurezza dei dati. Questo processo è particolarmente utile in ambienti dinamici dove è necessaria la flessibilità per bilanciare carichi di lavoro o effettuare manutenzioni senza impattare l’operatività.

Prima di iniziare la migrazione, assicuratevi che entrambi gli host, quello di origine e quello di destinazione, siano approvati dall’Host Guardian Service. Se però avete letto la mia guida, vi sarete resi conto che implementare un Host Guardian Service (HGS) non è poi così semplice.

Figura 2: Live migration di una VM con vTPM configurato

Provando una migrazione live di una VM con vTPM senza l’utilizzo del Host Guardian Service (HGS) però si ottiene il seguente errore:

Live migration of ‘Virtual Machine VM02’ failed.
Virtual machine migration operation for ‘VM02’ failed at migration destination ‘HVCONV2’. (Virtual machine ID DCF784A7-69F3-455C-90DE-0D300F52EA62)
The version of the device ‘Microsoft Virtual TPM Device’ of the virtual machine ‘VM02’ is not compatible with device on physical computer ‘HVCONV2’. (Virtual machine ID DCF784A7-69F3-455C-90DE-0D300F52EA62)
The key protector for the virtual machine ” could not be unwrapped. HostGuardianService returned: The parameter is incorrect. (0x80070057) . Details are included in the HostGuardianService-Client event log. (Virtual machine ID )

Figura 3: LIve migration di una VM con vTMP in un cluster Hyper-V senza Host Guardian Service (HGS)

Migrazione live di una VM con vTPM SENZA l’utilizzo del Host Guardian Service (HGS)

La migrazione live di una macchina virtuale (VM) che utilizza un vTPM (Virtual Trusted Platform Module) senza l’uso del Host Guardian Service (HGS) presenta delle sfide significative, dato che l’HGS gioca un ruolo cruciale nella sicurezza delle operazioni di migrazione di VM protette. Tuttavia, esploriamo come potrebbe essere gestita questa situazione, anche se è importante notare che procedere senza HGS potrebbe non essere supportato in molti ambienti di produzione e potrebbe non garantire lo stesso livello di sicurezza.

Nel momento in cui assegnate per la prima VM un vTMP in un host Hyper-V, verranno generati due certificati digitali che si trovano nello store dei certificati macchina e precisamente nella cartella Shielded VM Local Certificates: Shielded VM Encryption Certificate e Shielded VM Signing Certificate.

Il Shielded VM Encryption Certificate è utilizzato per crittografare i dati sensibili all’interno della VM schermata, inclusi i dischi virtuali e gli stati di configurazione. Questo certificato assicura che solo gli host autorizzati possano decifrare e quindi avviare la VM. La crittografia serve a proteggere i dati della VM sia a riposo sia durante la migrazione da un host a un altro.

Il Shielded VM Signing Certificate è usato per firmare i dati e garantire l’integrità del codice o della configurazione eseguiti sulla VM. Questo certificato contribuisce a proteggere le VM schermate da software malevolo e manomissioni, assicurando che solo codice verificato e firmato possa essere eseguito sulla VM.

Nella figura sotto sono mostrati i due certificati creato sull’host Hyper-V chiamato HVCONV1. Per poter effettuare la live migration, questi due certificati dovranno essere esportati (con chiave privata) per poter essere importati negli altri host di virtualizzazione del cluster Hyper-V dove volete muovere le VM.

Figura 4: Esportazione di Shielded VM Encryption Certificate e Shielded VM Signing Certificate

Dopo l’esportazione, importate i certificati negli altri host del cluster Hyper-V.

Figura 5: Importazione dei due certificati negli altri host del cluster Hyper-V

Nel mio cluster a due nodi, formato dagli host HVCONV1 e HVCONV2 sono presenti tutti i certificati (in totale 4).

I passaggi da seguire sono:

  1. Creare o attivare il TPM sulla VM

Prima di tutto, assicuratevi che ogni macchina virtuale nel cluster sia configurata con un vTPM attivo. Questo si può fare durante la creazione della VM oppure attivando il TPM su una VM già esistente. In ambienti Hyper-V, questo comporta l’aggiunta del componente hardware del TPM virtuale tramite le impostazioni della VM.

  1. Esportare i certificati da un host inclusa la chiave privata

Dopo aver attivato il vTPM, vengono generati automaticamente i certificati di crittografia e di firma necessari. Dovete esportare questi certificati dall’host su cui risiede la VM, assicurandovi di includere anche la chiave privata durante l’esportazione. Questo è fondamentale perché permetterà agli altri host nel cluster di decifrare e gestire correttamente la VM quando viene spostata o migrata. L’esportazione può essere fatta attraverso gli strumenti di gestione dei certificati disponibili nel sistema operativo.

  1. Importare i certificati mancanti su ciascun host

Infine, dovete importare i certificati esportati, compresa la chiave privata, su ogni host nel cluster che potrebbe aver bisogno di eseguire o migrare la VM. Questo assicura che tutti gli host abbiano le credenziali necessarie per gestire la sicurezza delle VM con vTMP.

Figura 6: Importazione dei certificati completata

A questo punto, come si può vedere dalle figure sotto, la live migration avviene senza problemi.

Figura 7: Live migration della VM da HVCONV1 a HVCONV2

Figura 8: Live migration della VM da HVCONV1 a HVCONV2 in corso

Figura 9: Live migration della VM da HVCONV1 a HVCONV2 completata con successo

Cosa succede alla scadenza dei certificati?

Se scade il Shielded VM Signing Certificate le VM protette non possono essere convalidate o avviate, causando interruzioni del servizio. Questo certificato è utilizzato per firmare i metadati delle VM schermate, garantendo che provengano da una fonte attendibile. È cruciale rinnovare questi certificati prima della scadenza per evitare downtime. Come avete visto dalle figure sopra, il certificato ha una durata di 10 anni.

Se il Shielded VM Encryption Certificate scade le macchine virtuali protette non possono essere decrittografate e quindi non si avviano, causando interruzioni del servizio. Anche in questo caso il certificato ha una durata di 10 anni.

NOTA: È essenziale monitorare e rinnovare questi certificati prima della scadenza per mantenere l’integrità e la disponibilità delle VM. Inoltre, è consigliabile implementare procedure di gestione dei certificati per garantire che siano sempre validi e aggiornati.

Per creare un certificato auto-firmato con tutti gli usi (all purposes) usando PowerShell, potete usare la cmdlet New-SelfSignedCertificate

Dettagli dei parametri:

  • DnsName: Specifica il nome DNS del certificato.
  • CertStoreLocation: La posizione di salvataggio del certificato.
  • KeyUsageProperty: Specifica l’uso della chiave (tutti gli usi).
  • KeyUsage: Specifica le operazioni consentite dalla chiave (firma del certificato, firma delle liste di revoca, firma digitale, cifratura chiavi, cifratura dati).
  • TextExtension: Aggiunge estensioni testuali per indicare gli scopi del certificato (autenticazione client e server).

Dopo aver rinnovato i certificati e averli scambiati tra i diversi host di virtualizzazione, dovete aggiornare le impostazioni del TPM virtuale per utilizzare il nuovo certificato, utilizzando il comando

Set-VMKeyProtector -VMName “NomeVM” -NewCertificateThumbprint “ThumbprintNuovoCertificato”.

Conclusioni

La live migration di macchine virtuali Hyper-V che utilizzano il Virtual Trusted Platform Module (vTPM) è un processo che richiede attenzione particolare alla sicurezza e alla configurazione corretta degli ambienti host. Assicurarsi che entrambi gli host, sia quello di origine che quello di destinazione, siano configurati adeguatamente e autorizzati dal Host Guardian Service (HGS) è fondamentale per garantire una migrazione sicura e senza interruzioni delle VM.

Durante il trasferimento, la gestione sicura delle chiavi del vTPM è essenziale per proteggere i dati sensibili e mantenere l’integrità della VM. Inoltre, è vitale che la migrazione venga eseguita in conformità con le politiche di sicurezza aziendali e gli standard normativi per evitare esposizioni a rischi e vulnerabilità.

Lo scambio dei certificati Shielded VM Encryption e Shielded VM Signing semplifica la gestione negli ambienti piccoli o negli ambienti di test.