Shielded Virtual Machines

Una delle novità in ambito Security che verrà introdotta in Windows Server 2016 in ambito virtualizzazione sono le Shielded Virtual Machines che va a risolvere una problematica oggi comune a tutii gli hypervisor (Hyper-V, VMware, Xen, KVM, etc.) ovvero quella di evitare la copia non autorizzata delle Virtual Machine.

Come illustrato da Jeff Woolsey (Principal Program Manager, Windows Server) nel post A closer look at shielded VMs in Windows Server 2016 oggi vi sono di fatto due problematiche da considerare soprattutto quanto le VM di un’infrastruttura sono gestire da più amministratori o in hosting  presso terzi:

  1. La semplicità di Backup, Replica e Live Migration delle VM implica anche una semplicità di modifica o copia non autorizzata di interi workloads attraverso la rete o su USB Stick. Si pensi ad esempio a quanto sarebbe grave se venisse eseguita una compromissione o una copia non autorizzata di un Domain Controller virtuale oppure se se venisse manomessa la macchina virtuale su cui risiede un database aziendale.
  2. La sola cifratura della VM non è sufficiente a risolvere la problematica. Infatti anche nel caso in cui la VM abbia un virtual Trusted Platform Module (TPM) che ne permetta la  crittografatura, questo funzionalità da sola non fornirebbe una protezione adeguata contro rogue administrators che avendo il controllo sul sistema potrebbero ad esempio trovare le encryption keys in memoria e decifrare la VM

Di seguito i diritti che possono avere i vari amministrator da cui appare evidente come nelle infrastrutture virtualizzate gli amministratori della fabric (Sever, Network, Storage, Backup, Virtualization host e Virtual Machine) abbiano di fatto privilegi di accesso alle VM tali da consentire furti o compromissioni di quest’ultime quanto il loro ruolo non dovrebbe consentire tali privilegi.

image

Come si può notare le Shielded Virtual Machines invece permettono di ottenere una gestione dei privilegi dei vari amministratori della fabric congruente con i loro ruoli come accadeva nelle infrastrutture basate basate su macchine fisiche ospitate in sale server aziendali.

Scendendo più nel dettaglio le Shielded Virtual Machines in Windows Server 2016 Hyper-V sono in grado di proteggere lo stato e i dati delle VM da compromissioni  e da rogue administrators nella fabric.

Una Shielded Virtual Machines è una VM Generation 2 (supportata in Windows Server 2012R2 e successivi) con un virtual Trusted Platform Module (TPM), cifrata tramite Bitlocker che può solo essere eseguita su host di virtualizzazione della fabric approvati. In questo modo hosting service providers e private cloud operators sono in grado di offrire ai loro tenants un ambiente di hosting in grado di proteggere le tenant VM

L’architettura di una guarded fabric che utilizza le Shielded Virtual Machines si basa sull’impiego di guarded host ovvero Hyper-V host su cui è in esecuzione il nuovo Windows Server role introdotto in Windows Server 2016 Host Guardian Service (HGS) il cui compito è quello di rilasciare le chiavi che certificano che l’host è autorizzato ad eseguire le Shielded VM ed ad eseguire la live migrating delle stesse utilizzando il seguente processo di attestanzione. Questi due servizi assolti dall’HGS che permettono il funzionamento di una soluzione basata sulle Shielded VM sono rispettivamente l’Attestation Service e il Key Protection Service.

Di seguito il funzionamento del processo di Attestazione svolto dall’HGS nei confronti del guarded host:

image

Mentre di seguito lo schema delle operazioni svolte dai servizi Attestation Service e il Key Protection Service durante il processo di Attestazione:

image

L’architettura di una guarded fabric oltre ad utilizzare l’HSG per il processi di attestazione degli host Hyper-V e di key protection per l’esecuzione delle shielded Virtual Machines utilizza anche i seguenti componenti per gestire la sicurezza fin dall’avvio delle shielded Virtual Machines:

image

Il Code Integrity che utilizza la Virtualization based Security per garantire che solo i binari consentiti possano essere eseguiti sin dall’avvio della macchina virtuale

La Virtualization-based Security (VBS) che utilizza tecnologia di sicurezza hardware per creare un’area isolata dal kernel e dalle applicazioni al fine di prevenire attacchi esterni

Il Trusted Platform Module (TPM) è uno standard internazionale per processori criptografici sicuri. Windows Server 2016 Hyper-V è in grado di fornire un virtual TPM device alle VM in modo che queste possano utilizzare funzionalità come BitLocker. Il virtual TPM non richiede la presenza di un TPM fisico.

Per quanto riguarda i requisiti e limitazioni sull’implementazione di una guarded fabric occorre tenere presente quanto segue:

  • Il ruolo HGS non è supportato in Nano Server, ma è possibile eseguire shielded VMs su Nano Server creando il file VHDx della VM tramite il  cmdlet the New-NanoServerImage e modificando il the boot entry per impostare la default boot option del VHDx file (per i dettagli della procedura si veda Guarded Fabric Deployment Guide for Windows Server 2016 TP5).
  • Il ruolo HGS è supportato solo nell’edizione Datacenter di Windows Server 2016
  • Dal momento che l’Host Guardian Service richiede una  foresta Active Directory per scopi di sicurezza e gestione e che tale foresta è critica dal punto di vista della sicurezza in quanto i suoi administrators hanno cesso alle keys che controllano le shielded VM è consigliabile che l’HGS risieda in una foresta dedicata e non nella foresta AD della fabric o dell’azienda.

Di seguito l’architettura AD consigliata per una guarded fabric:

image

E’ possibile gestire il processo di attestazione in due modalità: Admin-trusted e Trusted Platform Module (TPM) trusted:

  • L’attestazione Admin-trusted richiede una configurazione più semplice e non richiede prerequistiti hardware specifici. Tramite questa modalità i guarded host possono decriptare e avviare le shielded VM. L’architettura di questa modalità si basa sul fatto che i guarded host appartengano ad un security group di Active Directory e che venga impostata una relazione di trust tra l’AD della fabric e la foresta AD in cui risiede l’Host Guardian Service.
  • L’attestazione TMP-trusted necessita di una configurazione più complessa e richiede che l’hardware dei guarded host supporti TPM 2.0 e UEFI 2.3.1 con secure boot abilitato. Questa modalità garantisce però una maggior sicurezza in quanto non solo viene controllato che gli host che possono decriptare e avviare le shielded VM siano tra quelli ritenuti affidabili, ma anche che tali host stiano eseguendo solo codice che è stato ritenuto sicuro.

Una Guarded fabric può eseguire VM in tre modalità:

  • VM normali senza offrire però protezioni, ma supportando versioni precedenti di Hyper-V
  • Encryption support VM la cui protezione è configurata da un amministratore della fabric, tale VM sono però da intendersi per utilizzo interno alla fabric per scopi di test in quanto i fabric administrators sono fully trusted verso queste VM
  • Shielded VM con le protezioni attivate e non disabilitabili da un fabric admin

Di seguito il confronto dettagliato tra encryption support VM e shielded VMs disponibile in Guarded Fabric Deployment Guide for Windows Server 2016 TP5:

image

Oltre a creare nuove shielded VM è anche possibile convertire VM Generation 2 in shielded VM tramite Windows Azure Pack o tramite il Remote Server Administrator Tools – Shielded VM Tools.

Per maggiori informazioni si vedano Shielded VMs infographic e Guarded Fabric Deployment Guide for Windows Server 2016 TP5 che oltre approfondire gli aspetti architetturali di una Guarded fabric basata sulle shielded VM fornisce anche gli step-by-step per le configurazioni necessarie.