Aislar completamente una máquina VirtualBox


17

Me gustaría usar VirtualBox para instalar algún software que no debería tener acceso a mi computadora host (y viceversa). Sin embargo, también imagino la posibilidad de intentar cosas más "peligrosas", como intentar ejecutar exploits de día cero y ver qué pueden hacer.

¿Qué tan aislada se puede hacer una máquina virtual del host? ¿Debo (o puedo hacerlo) configurar un firewall entre el invitado y el host? ¿Son los complementos invitados un riesgo de seguridad? ¿Qué pasa con los directorios compartidos?

En este momento, la máquina invitada está ejecutando pruebas de Debian GNU / Linux.


77
Stack Exchange tiene un grupo de seguridad de la información si desea hacer preguntas de seguridad detalladas.
cybernard el

Secundando a @cybernard aquí. Después de un poco de desarrollo, esta sería una pregunta extremadamente apropiada para Security.SE, suponiendo que no sea un duplicado (lo que me temo que bien podría ser, dado el crecimiento de su comunidad).
0xdd

1
No debe usar VirtualBox, ya que interactúa con su sistema a través de un módulo de kernel que es un riesgo mucho mayor que las implementaciones de espacio de usuario puro. Y especialmente el módulo de kernel de caja virtual es considerado basura por los desarrolladores del kernel. Una mejor opción es algún emulador como qemu que se ejecuta como un usuario sin privilegios que no tiene acceso a nada interesante y reglas de firewall que impiden el acceso a la red para ese usuario. (Publicar como comentario, ya que no responde la pregunta sobre VirtualBox directamente)
allo

Respuestas:


36

Comenzaré diciendo que esta pregunta es muy amplia y muestra muy poca investigación original, y que esta respuesta no debe verse como un estímulo para ese tipo de pregunta. En cambio, esta respuesta espera proporcionar algunos consejos de seguridad extremadamente básicos para las personas que recién comienzan con el análisis de malware.

Trabajando bajo el supuesto de que está ejecutando malware conocido previamente investigado, cómo aislar su entorno depende en gran medida de lo que ese malware es capaz de hacer. Algunas reglas generales que se aplican a la mayoría del malware moderno podrían ser:

  • Aísle su VM de Internet. Esto puede ser tan simple como no configurar el reenvío de la interfaz a la máquina invitada, y evita que el malware se comunique con los posibles nodos de comando y control que podrían dirigirlo a actuar de manera impredecible.

  • Use un hipervisor apropiado. Hay algunos importantes en el mercado, incluidos VirtualBox, HyperV, QEMU y macOS Hypervisor.framework, por nombrar algunos; algunos de estos están activamente dirigidos por malware y, dependiendo de la versión, pueden ser vulnerables al malware que sale de la máquina invitada.

  • Definitivamente no instale adiciones de invitados , o el análogo de alguna otra plataforma. El objetivo literal de este tipo de software es establecer la integración entre el huésped y el host, debilitando efectivamente la separación entre ellos. No soy un investigador de malware, pero me sorprendería si no hubiera malware que se dirija específicamente a este tipo de superficie.

Para abordar algunos de sus puntos directamente:

¿Qué tan aislada se puede hacer una máquina virtual del host?

En este punto, una VM puede estar completamente aislada, pero algunas funciones aún deben pasar por el host más o menos directamente, con poca protección del hipervisor. De buenas a primeras, la mayoría de las máquinas virtuales no KVM (como VirtualBox) no compartirán un kernel con el sistema operativo host. Esto por sí solo sirve como un bloqueador contra numerosas clases de exploits, más notablemente bloqueando la capacidad de ejecutar syscalls arbitrarias contra su núcleo host (con el notable asterisco de que una implementación de capa de VM rota puede permitir que el malware evite esto de maneras menos obvias).

Sin embargo, su VM todavía tiene un espacio de proceso dentro del hardware de su máquina host, y aunque esto generalmente no es un riesgo porque los sistemas operativos modernos proporcionan un aislamiento decente del espacio de proceso, todavía se puede usar para explotar ataques de nivel extremadamente bajo como un martillo de fila , donde un proceso escribe secuencialmente en la memoria de una manera específica hasta que puede leer bloques de memoria adyacentes que no posee, permitiendo de manera efectiva la pérdida de memoria entre procesos.

También vale la pena señalar que el aislamiento tiende a desaparecer un poco cuando se quiere hacer esencialmente cualquier tipo de E / S: la entrada y la salida necesariamente significan paso a través, lo que expone una superficie de ataque que se puede aprovechar para realizar acciones de host. Esto incluye el paso de HID como un mouse y un teclado, así como cosas como el paso de red, aunque esto generalmente depende de qué tan bien implementado esté el paso de E / S en su VM.

¿Debo (o puedo hacerlo) configurar un firewall entre el invitado y el host?

Depende, pero generalmente no es una mala idea . La mayoría de las plataformas principales admiten firewalls de nivel de hipervisor. Estos son a lo sumo tan permisiva como el firewall en su ordenador central, que es a su vez a lo sumo tan permisiva como el cortafuegos de la LAN o VLAN. Si desea aprovechar esto en lugar de cortar el acceso a la red por completo desconectando las interfaces de red virtuales, le recomiendo que investigue en qué puertos y hosts sus objetivos de malware seleccionados y vaya desde allí.

¿Son los complementos invitados un riesgo de seguridad?

. Permiten todo tipo de integraciones entre su máquina host y la máquina invitada, y no siempre cuentan con especificaciones abiertas donde puede ver lo que se está abriendo; véase más arriba.

¿Qué pasa con los directorios compartidos?

Eso depende de cómo lo estés haciendo, pero a menudo es una mala idea . Muchos hipervisores hacen esto creando una unidad virtual montada dentro de la máquina invitada cuya raíz está en ese directorio. Dependiendo de la implementación de ese mecanismo, que puede variar ligeramente entre los marcos, puede ser seguro o no, según el malware que intente probar.


Mi preocupación es que hayas realizado muy poca investigación sobre esto y que puedas terminar dañando tu máquina o tus datos. Antes de continuar, le aconsejo que examine los diferentes mecanismos de aislamiento en sistemas operativos comunes (KVM), cómo se integran con los marcos de virtualización de nivel superior ( ), contenedores ( ) y el chrootmecanismo ( ) para nombrar unos pocos), cuando cada uno es apropiado, y lo que pueden y no pueden hacer. En ese momento, podrá juzgar mejor si puede jugar con malware con seguridad en un entorno aislado adecuadamente.

Finalmente, no debe involucrarse en tratar de trabajar con malware nuevo o poco conocido (a menos que sea un investigador de seguridad experimentado, pero esta respuesta no está dirigida a investigadores de seguridad experimentados). Los actores maliciosos son extremadamente creativos cuando se trata de lo que explotan y cómo lo explotan. Para tener una idea de esto, eche un vistazo a las conversaciones recientes de DEFCON que no se centren en la ingeniería social o en el acceso físico a través de medios mecánicos.


3
No creo que haya mucha diferencia en términos de aislamiento, en principio, entre KVM y VirtualBox / VMWare / ... ya que todos requieren soporte de módulo de núcleo y usan virtualización asistida por hardware. ¿Quizás quiso decir contenedores / estibadores? Dicho esto, los exploits qemu posiblemente puros solo estarían en el espacio del usuario, pero hoy en día probablemente tenga mucho menos escrutinio que kvm (vea también el exploit de disquete), pero ni kvm ni qemu permiten llamadas directas al kernel, pero ambos permiten indirectos (a través de virtualización o para-virtualización) .
Maciej Piechotka

@MaciejPiechotka mi error, eso fue mal formulado. He actualizado la respuesta, pero gracias por mencionar esto.
0xdd
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.