Ultimamente si discute molto dei rischi della virtualizzazione. La cosa curiosa è che la virtualizzazione viene presentata come una novità. Di fatto, dopo i primi calcolatori, la virtualizzazione era una funzionalità normale dei mainframe. È stata la diffusione dei pc a metterla in discussione, seguita da quella dei server dipartimentali, con un periodo in cui si è cercato di trasferire la maggior capacità di calcolo possibile in periferia. Poi, ci si è resi conto che si stava perdendo il controllo; anche grazie alle migliorate tecnologie di rete, si è riportato il più possibile al centro (consolidamento) per poi tornare nuovamente alla virtualizzazione. Quando uno dice i cicli…
Comunque sia, si discute dei rischi introdotti dalla virtualizzazione. È bene che se ne discuta, perché troppo spesso le “nuove” tecnologie sono state introdotte senza che se ne discutesse, salvo doversi rammaricare in seguito: pochi miglioramenti all’inizio avrebbero evitato molti problemi nel seguito. Oltre ai problemi più comunemente discussi, credo che valga la pena di sottolineare due ulteriori problemi che, se non trascurati, certamente sono trattati con minore attenzione o enfasi. Il primo riguarda i dati. I dati critici alla fine si troveranno su una qualche macchina virtuale; la compromissione di quella macchina virtuale dà accesso ai dati. Non è di grande consolazione sapere che non si è riuscita a compromettere la macchina reale: se quello che interessa sono i dati, la macchina virtuale è più che sufficiente. Quindi, benché la virtualizzazione rappresenti un meccanismo di segregazione accettabile (per alcuni aspetti può addirittura essere migliore di una separazione fra macchine fisiche), la messa in sicurezza delle singole macchine virtuali non deve per questo essere trascurata.
Il secondo problema è che la compromissione di una macchina reale comporta la compromissione di molte macchine virtuali. Questo rientra maggiormente nei canoni di quanto generalmente discusso (vulnerabilità dell’hypervisor e del sistema di amministrazione), ma vale la pena di sottolineare un punto in particolare: alcuni tipi di vulnerabilità dei processori, che possono essere sfruttate da processi utente, potrebbero essere sfruttabili anche da processi della macchina virtuale. Questo permetterebbe di aggirare completamente i controlli dell’hypervisor. Con l’introduzione di un supporto specifico per la virtualizzazione nei processori, ci possiamo aspettare un’ulteriore aumento nella complessità dei processori, e quindi un possibile aumento dei difetti e delle vulnerabilità. Si tratta di un problema ben diverso da quello più ampiamente pubblicizzato relativo a Blue Pill e simili: questi sono rootkit che partono dalla macchina reale e sfruttano le funzionalità di virtualizzazione per nascondersi. Ben diverso è partire da una macchina virtuale e sfruttare difetti del processore per aggirare protezioni e hypervisor, per assumere il controllo della macchina reale.