¿Cómo se protege la virtualización (IaaS) de las actualizaciones de microcódigo de la CPU y los cambios de firmware?

6

¿Es seguro asumir que es imposible que Actualizaciones de microcódigo de la CPU y las actualizaciones de firmware se inicien desde un invitado? VM?

¿Qué tecnologías de software o hardware protegen a mi SO huésped de alterar o editar estos u otros otro firmware que puede existir en el sistema?

    
pregunta random65537 30.11.2012 - 00:09
fuente

1 respuesta

3

Sí, creo que es seguro asumir que una VM evitará que los invitados actualicen el microcódigo de la CPU de la CPU física.

La actualización del microcódigo en una CPU Intel implica ejecutar la instrucción WRMSR, con MSR 0x79. Esta es una instrucción privilegiada, y solo puede ejecutarse cuando la CPU está en modo privilegiado (CPL = 0).

El monitor de máquina virtual (VMM) debe interceptarse en todas las instrucciones privilegiadas, incluida esta, y tomar las medidas adecuadas para emularlo. Si bien no he comprobado el código de ningún VMM, esperaría que un VMM razonable rechazara la actualización, o podría ignorarlo, pero ningún VMM razonable debería permitir que un invitado actualice el microcódigo de la CPU física en la que se ejecuta el host . Sería bastante sorprendente para un VMM permitir que un invitado solicite una actualización de microcódigo y realmente ejecute esa solicitud en la CPU del host.

Las actualizaciones del firmware de otros periféricos de hardware es una pregunta difícil. La respuesta dependerá de cómo VMM administra el acceso a ese dispositivo de hardware.

Si el dispositivo de hardware está emulado o virtualizado, entonces un VMM razonable debería evitar que un invitado cargue actualizaciones de firmware en el dispositivo (de manera similar: cargar una actualización de firmware requiere I / O para interactuar con el dispositivo y un VMM). debe restringir la E / S con el dispositivo).

Sin embargo, si el VMM proporciona al invitado acceso directo sin restricciones al dispositivo de hardware (es decir, la asignación directa del dispositivo a ese invitado), sospecho que el invitado podrá cargar actualizaciones de firmware, si el dispositivo lo permite. it.

La estrategia de virtualización para dispositivos de hardware dependerá de la VM específica que utilice; algunas máquinas virtuales utilizan emulación o virtualización, pero algunas también pueden usar asignación directa en algunos casos. No soy un experto en este tema y no puedo hablar con autoridad al respecto. Si le preocupa, elija una máquina virtual que ofrezca virtualización completa o emulación de todos los dispositivos, y no utilice la asignación directa para otorgar a un invitado acceso directo sin restricciones a cualquier periférico de hardware.

Referencias:

Consulte el Manual para desarrolladores de arquitecturas Intel® 64 e IA-32: vol. 3A , Sección 9.11.6, para obtener una descripción del procedimiento para cargar actualizaciones de microcódigo de la CPU, y la Sección 9.11 para las actualizaciones de CPUmicrocode en general.

    
respondido por el D.W. 30.11.2012 - 11:43
fuente

Lea otras preguntas en las etiquetas