Azure Confidential VM: protezione dei dati in uso

Azure Confidential Computing offre la possibilità di creare macchine virtuali basate sul processore  AMD processors with SEV-SNP technology che permettono di soddisfare i requisiti di sicurezza e di alta riservatezza necessari per alcune aziende. Questo livello di riservatezza è garantito da un supporto hardware pensato per proteggere le macchine virtuali da attacchi e modifiche, nell’ottica di aumentare la sicurezza e senza la necessità di apportare modifiche al codice contenuto nella VM. Infatti, sarà la piattaforma Azure a proteggere lo stato della VM e a garantire che non possa essere né letto né modificato.

Azure offre già molti strumenti per salvaguardare i dati inattivi tramite modelli come la crittografia lato client e lato server. Inoltre, Azure include meccanismi per crittografare i dati in transito tramite protocolli sicuri come TLS e HTTPS. Azure Confidential Computing introduce una terza parte della crittografia dei dati, ovvero la crittografia dei dati in uso.

Le macchine virtuali riservate (Confidential Virtual Machine) hanno i seguenti vantaggi:

  • Isolamento affidabile basato su hardware tra macchine virtuali, hypervisor e codice di gestione host.
  • Attestation policies personalizzabili per garantire la conformità dell’host prima della distribuzione.
  • Crittografia del disco del sistema operativo prima del primo avvio.
  • Chiavi di crittografia della macchina virtuale che la piattaforma o il cliente (facoltativamente) possiede e gestisce.
  • Rilascio della chiave protetto con l’associazione crittografica tra l’attestazione della piattaforma e le chiavi di crittografia della macchina virtuale.
  • Istanza TPM (Trusted Platform Module) dedicata per l’attestazione e la protezione di chiavi e segreti nella macchina virtuale.
  • Funzionalità di avvio sicuro simili alle Trusted Launch VM di cui ho parlato nell’articolo Creare una trusted launch VM in Microsoft Azure per abilitare il Secure Boot ed il vTPM (preview) – ICT Power

Le macchine virtuali riservate di Azure offrono uno schema di crittografia dei dischi nuovo e avanzato. Questo schema protegge tutte le partizioni critiche del disco. Associa anche le chiavi di crittografia del disco al TPM della macchina virtuale e rende il contenuto del disco protetto accessibile solo alla macchina virtuale. Queste chiavi di crittografia possono ignorare in modo sicuro i componenti di Azure, inclusi l’hypervisor e il sistema operativo host. Per ridurre al minimo il potenziale di attacco, un servizio cloud dedicato e separato crittografa anche il disco durante la creazione iniziale della macchina virtuale.

Qui si seguito sono riportate le famiglie di macchine virtuali che attualmente supportano l’Azure Confidential Computing

Figura 1: Famiglie di macchine virtuali che supportano l’Azure Confidential Computing

NOTA: una volta creata una Azure Confidential VM non è più possibile cambiare il tipo di famiglia, in quanto le VM vengono eseguite su hardware specializzato. Se quindi create una VM della famiglia DCasv5 potete effettuare il ridimensionamento della VM solo utilizzando un altro tipo di istanza DCasv5.

Non è possibile effettuare il ridimensionamento di una non-confidential VM ad una confidential VM.

Creazione di una Azure Confidential VM

Per creare una Azure Confidential VM è sufficiente collegarsi al portale di Azure e durante la creazione di una nuova VM selezionare come VM architecture la voce Confidential Virtual Machines.

Figura 2: Scelta del tipo di architettura della VM – Confidential Virtual Machines

Come immagine della VM potete scegliere tra le seguenti attualmente supportate:

  • Ubuntu 20.04 Gen 2
  • Windows Server 2019 Gen 2
  • Windows Server 2022 Gen 2

Figura 3: Scelta dell’immagine del sistema operativo supportata da Azure Confidential Computing VM

Figura 4: Scelta della dimensione della Confidential Computing VM

Come già scritto, le macchine virtuali riservate di Azure offrono uno nuovo schema di crittografia dei dischi. Questo schema protegge tutte le partizioni critiche del disco. Associa anche le chiavi di crittografia del disco al TPM della macchina virtuale e rende il contenuto del disco protetto accessibile solo alla macchina virtuale.

La crittografia del disco del sistema operativo riservato è facoltativa, perché questo processo può aumentare il tempo di creazione iniziale della macchina virtuale. È possibile scegliere tra:

  • Una macchina virtuale riservata con crittografia dischi riservati del sistema operativo prima della distribuzione di macchine virtuali che usa chiavi gestite dalla piattaforma (PMK) o una chiave gestita dal cliente.
  • Una macchina virtuale riservata senza crittografia del disco del sistema operativo riservato prima della distribuzione della macchina virtuale.

Selezionando la voce Confidential compute encryption è poi possibile scegliere se crittografare il disco utilizzando una chiave fornita da Azure oppure utilizzando una propria chiave conservata in un Azure Key Vault.

Figura 5: Scelta del Confidential Compute Encryption Type

Se scegliete di utilizzare una Customer-managed Key sarà necessario dichiarare anche il Disk Encryption Set da utilizzare. La maggior parte dei dischi gestiti di Azure viene crittografata con la Azure Storage encryption, che usa la crittografia lato server Server Side Encryption (SSE) per proteggere i dati e per soddisfare gli impegni di sicurezza e conformità dell’organizzazione. La Azure Storage encryption crittografa automaticamente i dati archiviati nei dischi gestiti di Azure (sistema operativo e dischi dati) inattivi per impostazione predefinita utilizzando in modo trasparente la crittografia AES a 256 bit, una delle crittografie a blocchi più solide disponibili, conforme a FIPS 140-2. La crittografia dell’archiviazione di Azure non influisce sulle prestazioni dei dischi gestiti e non è previsto alcun costo aggiuntivo.

Figura 6: Scelta dell’utilizzo di una Customer-managed Key per crittografare il disco della Confidential Computing VM

Se non avete un Disk Encryption Set sarà necessario creare uno. Potete aprire un nuovo tab nel vostro browser e nel portale di Azure cercare Disk Encryption Sets.

Figura 7: creazione di un Disk Encryption Set nel portale di Azure

Inserite le informazioni richieste dal wizard e scegliete come encryption type la voce Confidential Disk Encryption con la customer-managed key.

Figura 8: Scelta dell’encryption type del Disk Encryption Set

Selezionate l’Azure Key Vault in cui conservare la chiave di crittografia del Disk Encryption Set. Se non ne avete uno potete crearlo, ricordando che è necessario avere un Azure Key Vault di tipo Premium.

Figura 9: Scelta dell’Azure Key Vault in cui conservare la chiave di cifratura del Disk Encryption Set

Figura 10: Creazione di un nuovo Azure Key Vault di tipo Premium

Figura 11: Schermata di riepilogo della creazione del nuovo Azure Key Vault

Dopo aver creato il nuovo Azure Key Vault potete creare la nuova Encryption Key da utilizzare per crittografare il Disk Encryption Set.

Figura 12: Creazione di una nuova chiave di crittografia da utilizzare per il nuovo Azure Disk Encryption Set

Figura 13: Creazione dell’Azure Disk Encryption Set

Terminata la creazione dell’Azure Disk Encryption Set provvedete a dare i permessi corretti di accesso all’Azure Key Vault. Un banner vi avviserà che è necessario dare i permessi.

Potete aggiungere i permessi RBAC nel nodo Access control (IAM) dell’Azure Key Vault dando i ruoli di Key Vault AdministratorOwner oppure Contributor al disk encryption set.

Figura 14: Creazione dell’Azure Disk Encryption Set completata

In alternativa, se non usate il Robe-Base Access Control (RBAC) i privilegi possono essere dati selezionando la voce Access Policies dell’Azure Key Vault e concedendo al Disk Encryption Set i privilegi Get, Unwrap Key e Wrap Key.

Figura 15: Permessi necessari all’Azure Disk Encryption Set per accedere alla chiave nell’Azure Key Vault

A questo punto ritornate nel wizard di creazione della Azure Confidential VM e potrete selezionare il nuovo Disk Encryption Set che avete creato, scegliendolo dal menu a tendina nella scheda Disk della Azure Confidential VM.

Figura 16: Selezione del Confidential disk encryption set

Figura 17: Selezione del Confidential disk encryption set

Procedete con le configurazioni che ritenete necessarie per il Networking, il Management, ecc e create la macchina virtuale.

Figura 18: Schermata di riepilogo del wizard di creazione della Azure Confidential VM

Le macchine virtuali riservate di Azure usano sia il disco del sistema operativo che un piccolo disco con il guest state della macchina virtuale crittografata (VMGS) di diversi megabyte. Il disco VMGS contiene lo stato di sicurezza dei componenti della macchina virtuale. Alcuni componenti includono vTPM e bootloader UEFI. Il disco VMGS di piccole dimensioni potrebbe comportare un costo di archiviazione mensile.

A partire da luglio 2022, i dischi del sistema operativo crittografati comportano costi più elevati. Questa modifica è dovuta al fatto che i dischi del sistema operativo crittografati usano più spazio e la compressione non è possibile.

Dopo pochi minuti, la vostra Azure Confidential VM sarà creata.

Figura 19: Azure Confidential VM creata

Figura 20: Il disco della Azure Confidential VM è crittografato con la Customer-Managed key

Collegandovi in desktop remoto alla VM potrete verificare le configurazioni della VM. Nell’immagine sotto si può vedere che è stato abilitato il Secure Boot e il Bitlocker sul disco di sistema.

Figura 21: Abilitazione del Secure Boot e del Bitlocker

Conclusioni

Azure offre già molti strumenti per salvaguardare i dati inattivi tramite modelli come la crittografia lato client e lato server. Inoltre, Azure include meccanismi per crittografare i dati in transito tramite protocolli sicuri come TLS e HTTPS. Azure Confidential Computing introduce una terza parte della crittografia dei dati, ovvero la crittografia dei dati in uso. Con il confidential computing di Azure è più facile considerare attendibile il provider di servizi cloud per vari aspetti dell’infrastruttura di cloud computing. Il confidential computing di Azure riduce la necessità di considerare attendibili il kernel del sistema operativo host, l’hypervisor, l’amministratore delle VM e l’amministratore dell’host. In questo modo è possibile impedire l’accesso non autorizzato e gestire i dati sensibili nel cloud, soddisfare la conformità alle normative, garantire la collaborazione sicura e isolare l’elaborazione.

Per ulteriori informazioni potete leggere la pagina Azure DCasv5/ECasv5-series confidential virtual machines FAQ | Microsoft Learn