¿El arranque dual de un sistema operativo es más o menos seguro que ejecutar una máquina virtual?

8

Ejecuto dos sistemas operativos en dos particiones de disco separadas en la misma máquina física (una MacBook Pro moderna). Para aislarlos unos de otros, he seguido los siguientes pasos:

  1. Configurado / etc / fstab con ro, noauto (solo lectura, no auto-mount)

  2. Encriptado completamente cada partición con una clave de cifrado separada     (comprometido con la memoria)

Supongamos que un virus infecta mi primera partición sin que yo lo sepa. Me desconecto de la primera partición (que cifra el volumen) y luego apago la máquina para borrar la memoria RAM. Luego desincrino y arranco en la segunda partición. ¿Puedo estar razonablemente seguro de que el virus no ha / no puede infectar ambas particiones, o estoy jugando con fuego aquí? Me doy cuenta de que los MBP no se envían con un TPM, por lo que una infección del cargador de arranque que pasa inadvertida sigue siendo una posibilidad teórica. Sin embargo, este riesgo parece ser igual al riesgo de que VMWare / VirtualBox Hypervisor sea explotado cuando se ejecuta un sistema operativo invitado, especialmente porque la línea MBP usa UEFI en lugar de BIOS.

Esto lleva a mi pregunta: ¿es el enfoque de partición doble descrito anteriormente más o menos seguro que el uso de una máquina virtual para el aislamiento de servicios? ¿Cambiaría eso si mi computadora tuviera un TPM instalado?

Fondo:

Tenga en cuenta que, por supuesto, tomo todas las precauciones adicionales habituales, como comprobar diariamente las actualizaciones de software del sistema operativo, no iniciar sesión como usuario administrador a menos que sea absolutamente necesario, ejecutar programas antivirus en tiempo real en ambas particiones, ejecutar un host firewall basado, monitoreo de conexiones de red salientes, etc. Mi pregunta es realmente una comprobación pública para ver si estoy pasando por alto algo aquí y tratar de averiguar si mi esquema de inicio dual es más seguro que la ruta de la Máquina Virtual. Lo más importante es que solo busco aprender más sobre temas de seguridad.

EDITAR # 1:

Como se señaló en los comentarios, el escenario es un poco en el lado paranoico para mi caso de uso particular. Pero piense en las personas que pueden estar en la configuración corporativa o gubernamental y están considerando usar una máquina virtual para ejecutar servicios o aplicaciones que se consideran de "alto riesgo". ¿Están mejor usando una VM o un escenario de arranque dual como lo describí? Lo que realmente busco en una respuesta a esta publicación es una respuesta que pesa de manera efectiva las ventajas y desventajas de esa compensación.

EDIT # 2:

Esta pregunta fue parcialmente alimentada por el debate acerca de si una Máquina Virtual realmente protege un sistema operativo host. Personalmente, creo que sí, pero considere esta cita de Theo de Raadt en la lista de correo de OpenBSD:

  

La virtualización x86 consiste básicamente en colocar otra casi llena.   kernel, lleno de nuevos errores, encima de una desagradable arquitectura x86 que   Apenas tiene la protección de página correcta. Luego ejecuta tu sistema operativo   Al otro lado de este nuevo montón de mierda. Usted es absolutamente   engañado, si no estúpido, si crees que una colección mundial de   Ingenieros de software que no pueden escribir sistemas operativos o aplicaciones.   Sin agujeros de seguridad, puede girar y escribir de repente.   Capas de virtualización sin agujeros de seguridad.

-http: //kerneltrap.org/OpenBSD/Virtualization_Security

Al citar el argumento de Theo, no lo estoy respaldando. Simplemente estoy señalando que hay múltiples perspectivas aquí, así que estoy tratando de averiguar más sobre el problema.

    
pregunta Mark 27.06.2012 - 23:22
fuente

4 respuestas

10

Responda primero, luego por qué: una máquina virtual puede ser más segura.

Desde un punto de vista práctico, existe un código y malware que puede infectar tanto las particiones de arranque, BIOS como los dispositivos de hardware. Por lo tanto, una VM tiene ventajas un poco más en una superficie de ataque reducida desde un punto de vista genérico: el código potencial de salto de VM es el más grande específico para la VM. Es probable que este código sea específico para el tipo de máquina virtual que se está utilizando, como el reciente problema enlace . Tenga en cuenta que se requiere una máquina virtual específica (kvm o xen), anillo, etc.

Por lo tanto, desde la perspectiva del código hostil, la virtualización es más segura.

Al acercarse desde el ángulo de la red, muchos usuarios de soluciones de virtualización tienen más flexibilidad a nivel de red a través de NAT dentro de NAT, PAT u otras características que un sistema operativo no admita de forma nativa, o que implementen su propia seguridad mejorada mediante el uso de máquinas virtuales. Es bastante trivial mejorar una postura segura mediante el uso de una máquina virtual específica para inspeccionar todo el tráfico i / o con la virtualización.

Por lo tanto, desde la perspectiva de la seguridad de la red, lo virtualizado es más seguro.

En operaciones de invitado. La belleza de los sistemas operativos de clonación en segundo lugar ... Dependiendo del tipo de solución de virtualización que se emplee, una máquina virtual apagada puede parchearse de forma transparente sin que el usuario tome medidas. Es trivial tomar una máquina virtual de propósito general, y bloquearla usando varias guías de fortalecimiento donde exista una funcionalidad mínima, excepto de aplicaciones específicas. Las máquinas virtuales facilitan la realización de niveles extremos de endurecimiento, como la realización de privilegios mínimos en los almacenes de confianza de certificados (por ejemplo, elimino la mayoría de los certificados de las CA comerciales, excepto las que estoy usando). Este tipo de actividades puede ser mucho más rápido con una máquina virtual debido a la capacidad. para tomar instantáneas y recuperarse de los cambios catastróficos. Además, una VM en su totalidad puede empaquetarse fácilmente en un archivo y guardarse en algún lugar, en un USB, etc. Además, cuando piensa en compromisos, tenga en cuenta que en la virtualización, un compromiso puede ser mucho menos privilegiado que en forma regular. En un hipervisor de tipo 1, por ejemplo, el hipervisor en sí mismo es la instancia más privilegiada en la computadora. Aumento de los niveles de aros para un atacante. También se puede utilizar para otorgar a los desarrolladores acceso administrativo / raíz, sin otorgar dichos administradores de dominio de desarrollador, o privilegios en el LDAP corporativo.

Por lo tanto, desde la perspectiva de las operaciones de los huéspedes, la virtualización es más segura.

Sin embargo, me centraré en la premisa por un segundo: los sistemas operativos de tipo nativo virtualizados e iniciados son opciones o opciones. No lo son, ya que puede iniciar un sistema operativo virtualizado utilizando soluciones de terceros como si fuera una opción de inicio dual. El software como vboot permite el arranque en formato VHD / VMDK / VDI / Raw.

En cuanto a los tipos de virtualización, hay algunos que son aplicables a este caso. Aquellos que son virtualización tipo 1 (simple), virtualización tipo 2 (sistema operativo alojado) y considero parcial, sistema operativo & Paravirtualización fuera de alcance. La solución de virtualización x86 tipo 1 líder, el hipervisor VMware vsphere, utiliza un enfoque de microkernel con una superficie de ataque mínima. La virtualización de tipo 2 tiene mayores superficies de ataque, ya que se basan en un sistema operativo subyacente completo. Por lo tanto, los comentarios de Theo sobre sistemas operativos completos son incorrectos cuando se aplican a VMware.

Aquí hay una propaganda de VMware sobre el tema

enlace

Por supuesto, la seguridad es a menudo una compensación entre usabilidad y seguridad. Es importante considerar una situación de amenaza con la que es probable que se encuentre un usuario y quién desplegará recursos en su contra para atacarlo. Si usted es un estado-nación o un banco, necesita protecciones extensivas. Empresas, más. Usuarios individuales de poca notoriedad - protecciones suficientemente buenas. Tenga en cuenta que una buena solución de seguridad lo protege lo suficiente, pero no afecta negativamente a la facilidad de uso hasta el punto de ser un obstáculo. La gestión general del riesgo es un tema diferente, que merece ser revisado en otra parte.

No hablé de enfoques de seguridad más exóticos, como los thin clients que podrían usarse para expandir la seguridad de la virtualización al reducir aún más las superficies de ataque, o el bloqueo de TPM junto con un hipervisor de tipo 1.

    
respondido por el Brennan 28.06.2012 - 00:07
fuente
6

Cada uno es más seguro en lo que se refiere.

Si desea crear un entorno de "zona de pruebas" en el que pueda experimentar con códigos peligrosos, hacerlo en una máquina virtual es más seguro que con un entorno de arranque dual. De su pregunta, esto parece ser lo que está pidiendo. La razón por la cual una máquina virtual no tiene acceso directo a su hardware, se ejecuta como un programa emulado dentro de un programa de tal manera que todo el entorno de ejecución solo existe en la medida en que el sistema de virtualización lo permita (suponiendo que no haya errores de seguridad en su hipervisor). Si el sistema de su máquina virtual declara que el acceso al disco duro es imposible, entonces el programa que se ejecuta dentro no puede acceder al disco duro.

Si, por otro lado, desea "escapar" de su entorno estándar y crear un entorno seguro conocido, entonces el arranque dual es la única manera de llegar allí. La razón es que debido a que existe una VM como un programa dentro de su escritorio estándar, entonces cualquier falla de seguridad en su escritorio estándar también puede extenderse a la propia VM: el escritorio puede interceptar tráfico, pulsaciones de teclas, acceso a discos, etc., realizado por VM Entonces, si su escritorio no es seguro, entonces su máquina virtual no puede estar segura. Esto parece no ser lo que necesitabas, pero puede ser útil entenderlo para un uso futuro.

    
respondido por el tylerl 29.06.2012 - 08:27
fuente
4

Personalmente, esto suena como si estuviera al borde de la paranoia para las personas que no están investigando el malware.

Si está ejecutando 2 sistemas operativos diferentes, necesitará un malware que sepa leer los dos sistemas de archivos diferentes.

Si se está ejecutando en una VM, necesitaría que el malware se dirija específicamente al hipervisor para que pueda salir de la caja de arena.

Ya estás mitigando algunas de las formas obvias de que algo te infecte ejecutando con privilegios más bajos y demás. De lo contrario, sus mejores tareas de mitigación serían copias de seguridad regulares, análisis de malware, o para mí, cuando ejecute un sistema basado en UNIX, puede ejecutar verificadores de archivos que usan sumas de comprobación para monitorear los cambios en los archivos y luego enviarle un correo electrónico cuando se encuentran archivos / cambios sospechosos.

También con una VM, puede crear una carpeta compartida en la que guardar datos permanentes, luego tomar una instantánea de su VM, hacer el trabajo del curso y luego revertir la instantánea para que cualquier cosa que le haya pasado a su VM se borre . El software malicioso debería conocer específicamente su recurso compartido para copiarse a un recurso compartido, y aún así no se puede ejecutar.

Si bien la seguridad debe tener varias capas para que sea efectiva, no se necesita mucho para hacer un poco de cuidado básico para su uso promedio. Personalmente, si tiene miedo de que alguna actividad en particular cause problemas, simplemente tomo una instantánea y retrocedo durante ese trabajo. El uso de un sistema operativo diferente y la supervisión de la suma de comprobación de archivos debe indicarle si ha ocurrido algo, entonces la restauración de las copias de seguridad probablemente sería más que suficiente, ya que cualquier cosa para romper la VM y afectar a diferentes sistemas operativos debería ser muy específica solo para usted.

    
respondido por el Bart Silverstrim 27.06.2012 - 23:36
fuente
0

Hay algunos riesgos teóricos (que aún no se han probado) que harían que el enfoque de arranque dual sea menos seguro. Esto implica descargar un troyano en una pieza de hardware no estándar. Por ejemplo, infectar el firmware de la batería con algo que luego desbordará el administrador de energía del núcleo. Eso podría cruzar los límites de reinicio y realmente no tienes nada que decir al respecto. El enfoque de VM no sufriría esta debilidad.

Por lo que yo sé, estos son, en el mejor de los casos, una prueba de concepto, pero, de nuevo, eso está en el mundo de White Hat. No me sorprendería si la NSA tiene este trabajo funcionando.

    
respondido por el Bill McGonigle 29.03.2014 - 04:47
fuente

Lea otras preguntas en las etiquetas