Ci sono due modi principali con cui una VM guest danneggiata / malvagia può danneggiare il suo host:
-
parlando con l'host sulla rete; questo è simile ad avere una macchina malvagia sulla stessa LAN dell'host, sebbene ci possano essere dei dettagli, a seconda di come funziona la rete nella tua VM particolare.
-
"sfuggendo" al livello di virtualizzazione, un accesso di lettura / scrittura con esito positivo (ad esempio) al processo VM sull'host, o dirottamento dell'hypervisor o qualcosa dello stesso livello.
Il secondo modo è ciò che sono "difetti di sicurezza del fornitore". Se l'implementazione VM è sicura, allora dovrebbe impedire tali occorrenze.
I firewall agiscono sul lato della rete delle cose, quindi è rilevante solo per il primo modo. Tuttavia, se si sta lavorando con macchine virtuali potenzialmente ostili, è necessario, in effetti, fare qualcosa sugli attacchi basati sulla rete e questo potrebbe comportare il firewall.
In una tipica macchina virtuale , l'host fornisce servizi di rete al guest. Questi servizi sono configurabili. Ad esempio, se si guarda a ciò che fornisce Virtualbox , l'ospite può:
- non ha alcuna rete (il motore VM non fornisce al guest un'interfaccia di rete virtuale);
- ha un'interfaccia di rete collegata ad altre macchine virtuali con lo stesso motore, ma separata dall'attuale Internet;
- hanno un'interfaccia di rete collegata con altre macchine virtuali e con l'host , ma altrimenti separate da Internet;
- ha un'interfaccia di rete che l'host vede e per la quale l'host fornisce il servizio NAT (ma questo non corrisponde a una scheda Ethernet effettiva sull'host).
- hanno un'interfaccia di rete a ponte, permettendo alla VM di inviare e ricevere frame ethernet come se fosse un'altra macchina fisica connessa alla LAN.
Nei primi due casi, la VM non può parlare con l'host e questo è definitivo. Nei casi 3 e 5, la VM può parlare con l'host tramite ciò che l'host vede come una scheda di rete (una nuova scheda basata sul software nel caso 3, la sua scheda fisica effettiva nel caso 5). Nel caso 4, il sistema operativo host non vede i pacchetti dal guest come pacchetti; sono array di byte nel processo del motore della macchina virtuale, ma tale processo li traduce come connessioni ad altre macchine, che possono essere l'host stesso.
I firewall non hanno nulla a che fare con i casi 1 e 2. Un firewall può funzionare con i casi 3 e 5, anche se su interfacce ethernet distinte; fai attenzione che in questi casi l'ospite ostile invia frame ethernet arbitrari, che potrebbero non essere necessariamente visualizzati sul link come rilevanti per l'indirizzo IP che ritieni debba essere utilizzato dall'ospite. Dovresti gestire queste situazioni nello stesso modo in cui faresti per una macchina ostile collegata alla LAN - se preferisci, supponi che il tuo host sia su un WiFi aperto in un fast food. Per il caso 4, i firewall sono irrilevanti, poiché qualsiasi connessione all'host o a qualsiasi altra macchina apparirà al sistema operativo host per venire dal processo stesso del motore della macchina virtuale.
Quanto sopra riguarda ciò che accade con Virtualbox; i dettagli possono variare con altre soluzioni di virtualizzazione.