Istruttore: In questa lezione
discuteremo degli attacchi alle macchine virtuali, tra cui
fughe di macchine virtuali, salto di macchine virtuali, fughe di sandbox e altri problemi
legati alle macchine virtuali.
Per prima cosa abbiamo gli escape delle macchine virtuali.
L'evasione di una macchina virtuale è un tipo di attacco
in cui l'attore della minaccia tenta
di uscire da una macchina virtuale isolata e quindi
di inviare comandi direttamente
all'hypervisor sottostante.
Poiché si suppone che ogni macchina virtuale sia isolata, l'esecuzione
di una fuga di macchine virtuali dovrebbe
essere molto difficile da realizzare.
Dopo tutto, ogni sistema operativo guest non
dovrebbe nemmeno sapere di far
parte di una macchina virtuale,
perché pensa di avere pieno accesso
alla macchina fisica emulata che
l'hypervisor sta fornendo.
Affinché una fuga da una macchina virtuale
sia efficace, l'attaccante deve trovare un modo per interfacciarsi
direttamente con le risorse fisiche sottostanti,
come la memoria, il disco rigido o l'elaborazione
del server fisico.
Questo avviene solitamente sfruttando una vulnerabilità
nel codice stesso dell'hypervisor.
Si sono verificati alcuni
casi di questo tipo e le patch sono state sviluppate
e rilasciate dai produttori non appena hanno scoperto
queste vulnerabilità.
L'escape delle macchine virtuali è più facile da eseguire su un hypervisor
di tipo due che su un hypervisor di tipo uno.
Se si utilizza un hypervisor di tipo due o post-it, l'aggressore
potrebbe essere in grado di accedere
al sistema operativo sottostante
che ospita le macchine virtuali.
Se ci riescono, possono essere in grado
di scalare i loro privilegi
e accedere ad altre macchine virtuali ospitate
sullo stesso dispositivo e, di fatto,
creare una fuga di macchine virtuali.
Per evitare la fuga di una macchina virtuale,
è sempre importante assicurarsi
che il sistema operativo guest, il sistema operativo host
e l'hypervisor siano tutti patchati e aggiornati.
In secondo luogo abbiamo il VM hopping o salto di macchina virtuale.
Il VM hopping è un tipo di attacco in cui l'attore
della minaccia tenta di spostarsi
da una macchina virtuale a un'altra sullo stesso host.
Un attacco di tipo VM hopping si concentrerà sullo sfruttamento
dell'hypervisor del software di virtualizzazione
o di una qualche funzione per spostarsi tra le due macchine
virtuali presumibilmente isolate.
Il VM hopping sembra simile alla fuga di una macchina virtuale,
ma c'è una differenza fondamentale:
il VM hopping si concentra sullo spostamento
da una macchina virtuale all'altra.
Mentre quando abbiamo parlato di VM
escape, ci siamo concentrati sul raggiungimento dell'hypervisor o
del sistema operativo host sottostante.
Per proteggersi dal VM hopping è necessario
assicurarsi che l'hypervisor sia sempre
aggiornato e correttamente patchato.
Inoltre, è necessario assicurarsi che i sistemi operativi
guest e l'hypervisor siano configurati in modo sicuro utilizzando una
guida alle migliori pratiche di configurazione per garantire
che non vi siano connessioni errate tra le macchine
virtuali che avrebbero dovuto essere isolate.
In terzo luogo, abbiamo una fuga dalla sandbox.
Una sandbox è un meccanismo di sicurezza utilizzato
per separare i processi e i programmi in
esecuzione nel tentativo di ridurre i guasti del sistema o la diffusione
di vulnerabilità del software.
Nella maggior parte dei casi, le sandbox vengono create con macchine virtuali
o con la containerizzazione.
I browser Web, ad esempio, utilizzano comunemente il concetto
di sandboxing per separare il codice Web in esecuzione
dal sistema operativo protetto o da
altro software sul sistema.
Ora una fuga dalla sandbox si verifica
quando un aggressore
è in grado di aggirare le protezioni della sandbox
per ottenere l'accesso al sistema operativo protetto
per altri processi privilegiati.
Per proteggere i sistemi da un'evasione da sandbox,
è importante assicurarsi che il software
e i sistemi operativi siano sempre patchati e aggiornati,
oltre a garantire l'installazione
di un solido software di protezione degli endpoint sul
client e a limitare le estensioni o i componenti aggiuntivi installati all'interno dei browser web nel caso di protezione da evasioni da sandbox
dei browser web.
In quarto luogo, abbiamo alcune preoccupazioni di cui dobbiamo
parlare quando pensiamo alle macchine virtuali
e agli ambienti virtualizzati.
Questo include cose come migrazioni e resti di dati.
Ora, uno dei principali vantaggi
dell'utilizzo di un ambiente virtuale
è la possibilità di migrare una macchina virtuale
da un host all'altro, anche mentre è in funzione.
Si tratta di una migrazione in tempo reale.
Ora questa migrazione avviene attraverso la rete.
È quindi importante assicurarsi
sempre che la migrazione avvenga solo su una rete
affidabile o che utilizzi una crittografia adeguata
tra il server che imposta la macchina virtuale
e il server che la riceve.
Tuttavia, se la migrazione live
avviene tramite una connessione non
crittografata, è possibile che i dati contenuti
nella macchina virtuale vengano esposti a occhi indiscreti o che
la loro integrità venga compromessa da un
aggressore che utilizza un attacco on path.
Per evitare questo problema, le immagini delle macchine
virtuali devono essere crittografate prima
di essere inviate da un server all'altro attraverso la rete.
Ricordate che i server non sono più solo dispositivi fisici situati
all'interno dei nostri data center, ma
sono anche macchine virtuali che sono semplicemente
un file situato in una sorta di file system.
E questi file possono essere rubati da un aggressore.
Un'altra preoccupazione importante quando si utilizzano macchine
virtuali in un ambiente cloud è rappresentata dai
resti di dati che potrebbero essere lasciati
in giro quando si spossessano i server virtuali in eccesso.
Molti fornitori di cloud utilizzano l'archiviazione
a blocchi che potrebbe consentire di lasciare
sui dispositivi di archiviazione i dati non più necessari.
Se non vengono cancellati correttamente, i dati possono
essere accessibili a utenti non autorizzati.
Per attenuare la minaccia di resti di dati, è necessario
criptare sempre le posizioni di archiviazione
delle macchine virtuali e assicurarsi
che la chiave di crittografia venga distrutta
ogni volta che la macchina virtuale non è più necessaria e viene
deprovisionata.
L'ultimo aspetto da trattare
in termini di sicurezza è lo sprawl delle macchine virtuali,
noto anche come sprawl delle macchine virtuali.
Lo sprawl di macchine virtuali è la distribuzione incontrollata
di una o più macchine virtuali.
Si tratta di un'enorme area di vulnerabilità
per l'azienda, in quanto le macchine
virtuali vengono installate senza
autorizzazione in tutta
la rete.
Ciò significa che la gestione del sistema non viene effettuata
per quelle macchine, perché non si sa che esistono.
E poiché non ne conoscete l'esistenza,
non state eseguendo le patch di sicurezza,
gli aggiornamenti e le soluzioni antimalware o antivirus
per proteggere queste macchine.
Per questo motivo, queste macchine virtuali diventano molto
suscettibili a un attacco.
Se un utente malintenzionato riesce a trovare una di
queste macchine virtuali anomale, causate
dalla dispersione delle macchine virtuali, sarà in grado di attaccarla
e di utilizzarla come punto di partenza per il resto della rete, per poi tentare la
fuga delle macchine virtuali o il salto delle macchine virtuali
in altre aree della rete.
Tenetelo presente, perché lo sprawl
di macchine virtuali è un grosso problema, soprattutto se avete
molti appaltatori e sviluppatori
che lavorano sulla vostra rete e non fanno parte del vostro
normale team, e non seguono i vostri
normali processi di controllo
delle modifiche.
Quindi, ancora una volta, in questa lezione abbiamo parlato di
alcuni requisiti di sicurezza a cui dovreste pensare
e di alcune vulnerabilità che possono
andare contro tali requisiti di sicurezza.
Questo include cose come le fughe di macchine virtuali, il salto di macchine
virtuali, le fughe di sandbox e lo sprawl di macchine virtuali.