Tecnicamente possono farlo, ma lo fanno solo in determinate circostanze.
Un hypervisor malintenzionato può manomettere l'ospite a piacimento. Un guest virtualizzato consente all'hypervisor di intercettare determinate istruzioni, rinviando l'azione all'hypervisor stesso. Se si centrifuga un sistema operativo guest su una macchina Windows compromessa, sarebbe in grado di compromettere l'ospite. Dal punto di vista dell'ospite, l'hypervisor funziona su quello che è stato soprannominato l'anello -1. L'implicazione è che è ancora più basso e più privilegiato rispetto all'anello 0, che è vero (sebbene non sia implementato come un anello di protezione effettivo, ma l'effetto è grosso modo lo stesso). Una tecnologia chiamata SGX sui nuovi processori può eseguire determinati aspetti di una macchina virtuale in modo tale che l'hypervisor non può interferire con essa, ma non credo che ci siano implementazioni sufficienti.
Quindi Windows ha questa capacità, ma in realtà fa questa raccolta per impostazione predefinita? Una specie di. Anche se non manometteranno il tuo ospite e caricheranno una serie di dettagli privati relativi ad esso, i dump di emergenza relativi alla virtualizzazione potrebbero essere caricati su Microsoft, e queste informazioni dettagliate potrebbero contenere dati sensibili dal guest in esecuzione. Puoi evitarlo disattivando la segnalazione degli errori .
Attenzione! Dettagli tecnici avanti!
Spiego come funziona la virtualizzazione in una risposta ad un'altra domanda . Potrebbe essere una buona idea leggere quella risposta per capire esattamente cosa può fare un hypervisor all'ospite e cosa non può fare. Una visualizzazione semplificata ma di facile comprensione è disponibile nelle diapositive per un documento di lezione sulla virtualizzazione:
In practice, most of the time the hypervisor simply lets the guest run on the real CPU and memory, not knowing what the guest is doing. [...] If the guest is executing an "interesting" assembly instruction then the hardware traps it, and the hypervisor emulates the instruction carefully.
Alcune istruzioni possono essere configurate per intercettare. Altri catturano incondizionatamente, come out
che viene usato per comunicare con altro hardware e fare cose come spegnere il sistema. Altri ancora, come mov
, normalmente non catturano e verranno eseguiti senza che l'host o l'hypervisor possano influenzarli direttamente. Quando un'istruzione intercetta, il controllo viene temporaneamente restituito all'hypervisor. Può scegliere di negare l'istruzione, eseguire direttamente l'istruzione o emularla. Dal punto di vista dell'ospite, un'istruzione che viene intrappolata richiede un po 'più di tempo per andare in pensione. Dal punto di vista dell'host, la VM è solo un'istruzione molto lenta che ritorna solo quando il codice nel guest è intrappolato e l'hypervisor deve prendere una decisione esecutiva, dopo di che la VM riprende.