In che modo la virtualizzazione (IaaS) protegge dagli aggiornamenti del microcodice della CPU e dalle modifiche del firmware?

6

È lecito ritenere che sia impossibile per aggiornamenti del microcodice CPU e gli aggiornamenti del firmware da avviare da un guest VM?

Quali tecnologie software o hardware proteggono il mio SO guest da alterare o modificare questi o altri firmware che potrebbe esistere nel sistema?

    
posta random65537 30.11.2012 - 00:09
fonte

1 risposta

3

Sì, penso che sia sicuro assumere che una VM impedirà agli ospiti di aggiornare il microcodice della CPU della CPU fisica.

L'aggiornamento del microcodice su una CPU Intel implica l'esecuzione dell'istruzione WRMSR, con MSR 0x79. Questa è un'istruzione privilegiata e può essere eseguita solo quando la CPU è in modalità privilegiata (CPL = 0).

Il monitor della macchina virtuale (VMM) dovrebbe intercettare tutte le istruzioni privilegiate, inclusa questa, e prendere le misure appropriate per emularlo. Anche se non ho controllato il codice di alcun VMM, mi aspetterei che un VMM ragionevole possa rifiutare l'aggiornamento, o potrebbe ignorarlo, ma nessun VMM ragionevole dovrebbe consentire ad un guest di aggiornare il microcodice della CPU fisica su cui è in esecuzione l'host . Sarebbe piuttosto sorprendente per un VMM consentire a un guest di richiedere un aggiornamento del microcodice e di eseguire effettivamente tale richiesta sulla CPU dell'host.

Gli aggiornamenti al firmware di altre periferiche hardware sono una domanda complicata. La risposta dipenderà da come il VMM gestisce l'accesso a quel dispositivo hardware.

Se il dispositivo hardware è emulato o virtualizzato, un VMM ragionevole dovrebbe impedire a un guest di caricare gli aggiornamenti del firmware nel dispositivo (in modo simile: il caricamento di un aggiornamento del firmware richiede l'I / O per interagire con il dispositivo e un VMM dovrebbe limitare I / O con il dispositivo).

Tuttavia, se VMM fornisce al guest un accesso diretto senza restrizioni al dispositivo hardware (cioè l'assegnazione diretta del dispositivo a quel guest), allora sospetto che il guest possa essere in grado di caricare gli aggiornamenti del firmware, se il dispositivo lo consente esso.

La strategia di virtualizzazione per i dispositivi hardware dipenderà dalla specifica VM che utilizzi; alcune macchine virtuali usano l'emulazione o la virtualizzazione, ma alcuni possono anche utilizzare l'assegnazione diretta in alcuni casi. Non sono un esperto in materia e non posso parlarne in modo autoritario. Se sei preoccupato, scegli una VM che fornisce la virtualizzazione completa o l'emulazione di tutti i dispositivi, e non usa l'assegnazione diretta per dare a un ospite accesso illimitato diretto a qualsiasi periferica hardware.

References:

Vedere il Manuale per gli sviluppatori di architetture Intel® 64 e IA-32: Vol. 3A , Sezione 9.11.6, per una descrizione della procedura per caricare gli aggiornamenti del microcodice CPU e Sezione 9.11 per gli aggiornamenti CPUmicrocode in generale.

    
risposta data 30.11.2012 - 11:43
fonte

Leggi altre domande sui tag