Creare una trusted launch VM in Microsoft Azure per abilitare il Secure Boot ed il vTPM (preview)

È attualmente in preview una funzionalità molto interessante delle Azure VM che permette di aumentare notevolmente il livello di sicurezza delle macchine generazione 2. Questa funzionalità si chiama Trusted Launch e implementa una serie di tecnologie che consentono di:

  • Distribuire in modo sicuro le macchine virtuali con boot loaders, kernel del sistema operativo e driver verificati.
  • Proteggere in modo sicuro chiavi, certificati e segreti nelle macchine virtuali.
  • Ottenere informazioni dettagliate e attendibilità sull’integrità dell’intera boot chain.
  • Assicurarsi che i workload siano attendibili e verificabili.

Attualmente la funzionalità in preview ha i seguenti limiti:

Dimensioni delle VM supportate

  • Serie B
  • Serie Dav4, serie Dasv4
  • Serie DCsv2
  • Serie Dv4, serie Dsv4, serie Dsv3, serie Dsv2
  • Serie Ddv4, serie Ddsv4
  • Serie Fsv2
  • Serie Eav4, serie Easv4
  • Serie Ev4, serie Esv4, serie Esv3
  • Serie Edv4, serie Edsv4
  • Serie Lsv2

Sistemi operativi supportati

  • Redhat Enterprise Linux 8.3
  • SUSE 15 SP2
  • Ubuntu 20.04 LTS
  • Ubuntu 18.04 LTS
  • Debian 11
  • CentOS 8.4
  • Oracle Linux 8.3
  • Windows Server 2019
  • Windows Server 2016
  • Windows 11 Pro
  • Windows 11 Enterprise
  • Windows 11 Enterprise multi-sessione
  • Windows 10 Pro
  • Windows 10 Enterprise
  • Windows 10 Enterprise multisessione

In questa anteprima non sono supportate le seguenti funzionalità:

  • Backup
  • Azure Site Recovery
  • Shared Image Gallery
  • Ephemeral OS disk
  • Disco condiviso
  • Immagine gestita
  • Host dedicato di Azure

Alla base del Trusted Launch c’è l’avvio protetto (Secure Boot). L’avvio protetto funziona per garantire l’avvio solo dei sistemi operativi e dei driver firmati e questa modalità è implementata nel firmware della piattaforma per proteggere il cliente dall’installazione di rootkit e kit di avvio basati su malware.

In più è stato anche aggiunto il Virtual Trusted Platform Module (vTPM). Si tratta di una versione virtualizzata di un hardware Trusted Platform Module, conforme alla specifica TPM2.0, che funge da insieme di credenziali (vault) sicuro dedicato per le chiavi di crittografia.

La sicurezza basata sulla virtualizzazione (Virtualization-based security o VBS) usa l’hypervisor per creare un’area di memoria sicura e isolata. Windows usa queste aree per eseguire varie soluzioni di sicurezza con maggiore protezione da vulnerabilità e exploit dannosi. Il Trusted Launch consente di abilitare Hypervisor Code Integrity (HVCI) e Windows Defender Credential Guard. HVCI è una potente mitigazione del sistema che protegge i processi di Windows in modalità kernel dall’inserimento e dall’esecuzione di codice dannoso o non verificato. Controlla i driver e i file binari in modalità kernel prima dell’esecuzione, impedendo il caricamento in memoria dei file non firmati. In questo modo si garantisce che tale codice eseguibile non possa essere modificato dopo il caricamento.

Introdotto in Windows 10 Enterprise e Windows Server 2016, lo strumento Windows Defender Credential Guard usa la sicurezza basata su virtualizzazione per isolare i segreti, in modo che siano accessibili solo dal software di sistema con privilegi. L’accesso non autorizzato a questi segreti può produrre attacchi di furto delle credenziali come attacchi di tipo Pass-the-Hash o Pass-The-Ticket. Windows Defender Credential Guard impedisce questi attacchi proteggendo gli hash delle password NTLM, i ticket di autorizzazione Kerberos e le credenziali archiviate dalle applicazioni come credenziali di dominio.

 

Creazione di una VM con Trusted Launch

Per distribuire una macchina virtuale con il trusted launch abilitato è sufficiente utilizzare il portale di Azure e scegliere di distribuire un’immagine supportata in una VM generazione 2.

NOTA: è possibile abilitare il trusted launch solo per le nuove macchine virtuali e non per quelle esistenti. La funzionalità sarà disponibile per le VM esistenti quando il Trusted launch verrà rilasciato in General Availability (GA).

Nella sezione Security Type del wizard di creazione di una nuova Azure VM, dopo aver scelto una VM di generazione2, è possibile abilitare il Trusted launch virtual machines, come mostrato in figura:

Figura 1: Scelta del Trusted Launch nel Security Type della Azure VM

Scegliete quindi se volete abilitare sia il Secure Boot che il vTPM.

Figura 2: Abilitazione del Secure Boot e del VTPM

Dopo la creazione, a macchina spenta, è anche possibile disattivare sia la funzionalità di Secure Boot che di vTPM.

,

Figura 3: Verifica delle funzionalità e possibilità di aggiornamento della trusted launch configuration

Collegandovi in desktop remoto alla VM potrete verificare tramite il comando msinfo32.exe che il Secure Boot è abilitato e tramite Gestione dispositivi che la VM è dotata di un chipset TPM.

Figura 4: Verifica dell’abilitazione di Secure Boot e vTPM all’interno della VM

A questo punto, grazie alla presenza del vTPM, all’interno della VM sarà possibile utilizzare la funzionalità di crittografia Bitlocker, per la protezione dei dischi della Azure VM.

Figura 5: Abilitazione della funzionalità Bitlocker nella Trusted Launch VM

Figura 6: Cifratura del disco in corso

Conclusioni

L’avvio attendibile (secure boot) protegge da kit di avvio (boot kit), rootkit e malware a livello di kernel. Questi sofisticati tipi di malware vengono eseguiti in modalità kernel e rimangono nascosti agli utenti. Con il trusted launch abbiamo finalmente la possibilità di aumentare il livello di sicurezza delle macchine virtuali di generazione 2 in Azure. Quando la funzionalità sarà disponibile in disponibilità generale (GA) allora potremo anche convertire la VM di generazione 2 già esistenti.

Se siete interessati alla stessa funzionalità on-premises vi rimando alla lettura dell’articolo Utilizzare il virtual Trusted Platform Module (vTPM) per abilitare BitLocker e il VM Shielding in Hyper-V – ICT Power