¿Qué es y cómo funciona el malware basado en virtualización?

Introducción

El sandboxing es bien conocido por su capacidad para ejecutar código de forma segura sin posibles efectos maliciosos que afecten a un sistema.

Normalmente se usa para ver cómo se ejecutan los programas y las aplicaciones en un entorno. Asimismo, en cualquier otro momento que desees puedes probar la confiabilidad del código. Pero muchos pueden no saber que hay dos tipos diferentes de sandboxing y que no se crean de la misma manera.

En este artículo detallaremos el malware basado en virtualización y exploraremos las diferencias entre el malware virtualizado y el emulado. También veremos las diferencias entre el malware de sandbox basado en la virtualización en general y las tres técnicas diferentes que el malware utiliza para evadir la virtualización.

Te daremos un resumen de algunas de las diferentes familias de malware y malware que aprovechan las vulnerabilidades de sandbox basadas en virtualización.

Sandboxing basado en virtualización vs. emulado

Las sandboxes los usamos generalmente para detectar malware y la relativa seguridad del código. Sin embargo, el malware avanzado y las familias de malware pueden evadir tanto a los usuarios comunes como a los entornos aislados (sandbox) de próxima generación. Esto se aplica a los entornos aislados basados ​​en virtualización o entornos aislados que se ejecutan en máquinas virtuales.

Los entornos aislados emulados son donde se emula todo el sistema, desde la memoria hasta la CPU y los dispositivos de E/S. Ofrece la mayor visibilidad sigilosa de lo que ocurre dentro de los programas y aplicaciones.

El sandboxing basado en virtualización ofrece menos sigilo (ya que el malware puede detectar fácilmente el hipervisor y luego ocultar sus acciones maliciosas). También ofrece menos visibilidad dentro de los programas y aplicaciones. Esta es una deficiencia importante para el sandboxing basado en virtualización.

Malware de sandbox basado en virtualización

El malware avanzado puede detectar si se activa o se ejecuta dentro de una sandbox. Cuando detecta una sandbox, simplemente evitará realizar acciones maliciosas y evadirá con éxito la detección.

El sandbox entonces etiquetará erróneamente el archivo como benigno y se le permitirá ingresar a la red.

Sin detectar que está en un entorno aislado, el malware simplemente continuará normalmente y realizará acciones maliciosas. La clave aquí es no permitir la detección, por lo que, si se trata de malware, puedes ver lo que realmente es.

Los entornos aislados basados ​​en virtualización no pueden evadir la detección porque el malware puede detectar entornos de máquinas virtuales como VMware, Xen y KVM. Cuando este sistema operativo (SO) “invitado” se ejecuta sobre un SO “host”, inserta artefactos en el sistema host.

Algunos de estos artefactos incluyen archivos del sistema operativo, procesos, funciones adicionales de la CPU y otros elementos necesarios para la virtualización. Estos artefactos son los signos reveladores que busca el malware avanzado al detectar la presencia de sandbox o VM. Es una de las técnicas de exploración.

Técnicas para evadir sandboxes basados ​​en virtualización

Existen tres técnicas que utiliza el malware avanzado para evitar entornos aislados basados ​​en virtualización.

Descubrimiento de artefactos de máquinas virtuales

Como mencionamos anteriormente, las máquinas virtuales a menudo incluyen artefactos que dejan pistas sobre su presencia en un sistema. Puedes pensar en ellos como un rastro de migas de pan que el malware puede usar para detectar un entorno aislado basado en la virtualización. Hay varios senderos de migas de pan diferentes que los atacantes pueden usar, que incluyen:

  • La presencia de herramientas de VM (máquina virtual). Por ejemplo, si estás utilizando VMware, tu sistema puede tener más de 50 referencias a VMware en sus archivos de sistema
  • Parámetros de hardware específicos únicos para VM o entornos físicos reales. Se pueden encontrar consultando números de serie o valores atribuidos a procesadores, placas base, etc.
  • Las claves de registro pueden contener grandes volúmenes de valores que solo usan los sistemas virtuales. VMware puede almacenar más de 300 referencias a VMware
  • Las estructuras específicas de la memoria del sistema pueden ubicarse en diferentes áreas para entornos VM, incluida la Tabla de descriptores de interrupción (IDT)
  • Identificación de la dirección MAC del adaptador de red virtual o el número de serie del BIOS. VMware está asociado con direcciones MAC que comienzan con 00-05-69, 00-0c-29, 00-1c-14 o 00-50-56

Exploración de actividad del usuario

La actividad del usuario en el host, incluidos los marcadores del navegador, el historial, la caché, etc., puede ser indicativo de un entorno auténtico.

El malware también puede detectar la actividad del usuario haciendo referencia a la interacción del usuario y las firmas digitales. La actividad del usuario se puede determinar utilizando la frecuencia y la velocidad de los clics del mouse: los entornos aislados tendrán la misma cantidad.

Se puede obtener otra evidencia de la interacción específica del usuario, como la interacción con el sistema que precede a la activación del código malicioso. Un ejemplo de esto es el tiempo que le toma a un usuario activar código malicioso haciendo doble clic en una imagen incrustada.

Descubrimiento de fingerprinting de hardware virtual

Los atacantes pueden verificar la temperatura del sistema y el ventilador para determinar si el entorno es físico.

Se puede realizar una comprobación de CPU de un ventilador del sistema con una consulta WMI:  $q = “Select * from Win32_Fan” Get-WmiObject -Query $q. Si los resultados devuelven cero elementos, es probable que la máquina sea virtual.

Ejemplos de malware de sandbox basado en virtualización

Hay muchos ejemplos diferentes de malware que pueden evadir los entornos aislados basados ​​en virtualización. Los siguientes ejemplos de malware utilizan las técnicas enumeradas anteriormente.

  • BadPatch
  • CHOPSTICK
  • CozyCar
  • Dyre
  • EvilBunny
  • FIN7
  • FinFisher
  • GravityRAT
  • HAWKBALL
  • OopsIE
  • OSX_OCEANLOTUS.D
  • PlugX
  • Pupy
  • Remcos
  • RogueRobin
  • ROKRAT
  • Smoke Loader
  • SynAck
  • UBoatRAT
  • Ursnif
  • yty

Mitigación y detección

El malware de sandbox basado en virtualización no se puede mitigar fácilmente porque se aprovecha de las características del sistema. Para eliminar esta capacidad del malware, esencialmente sería necesario desactivar la capacidad del sistema para usar entornos virtuales.

Tampoco puedes detectar fácilmente este tipo de malware, pero puede ser útil monitorear tu sistema en busca de procesos sospechosos que recopilen información del sistema. Con esto puedes descubrirlo en un corto período de tiempo.

Conclusión

Los sandboxes o entornos aislados se usan normalmente en parte para verificar si una aplicación, programa, ejecutable o solo un fragmento de código es malicioso.

Los atacantes lo saben y pueden evadir eficazmente los entornos aislados basados ​​en la virtualización, lo que facilita la entrada en un sistema de destino. Al usar sandboxes emulados, puedes evitar esta vulnerabilidad y evadir mejor el malware mencionado anteriormente.