Evolución de las tácticas de evasión de malware de Sandbox: un estudio retrospectivo


Resumen ejecutivo

Las técnicas de evasión de malware se utilizan ampliamente para eludir la detección, así como el análisis y la comprensión. Una de las categorías dominantes de evasión es la detección anti-sandbox, simplemente porque los sandboxes de hoy se están convirtiendo en la forma más rápida y fácil de tener una visión general de la amenaza. Muchas compañías usan este tipo de sistemas para detonar archivos maliciosos y URL encontrados, para obtener más indicadores de compromiso para extender sus defensas y bloquear otras actividades maliciosas relacionadas. Hoy en día entendemos la seguridad como un proceso global, y los sistemas sandbox son parte de este ecosistema, y ​​es por eso que debemos tener cuidado con los métodos utilizados por el malware y cómo podemos vencerlo.

Históricamente, los sandboxes habían permitido a los investigadores visualizar con precisión el comportamiento del malware en un corto período de tiempo. A medida que la tecnología evolucionó en los últimos años, los autores de malware comenzaron a producir código malicioso que profundiza mucho en el sistema para detectar el entorno de sandboxing.

A medida que las cajas de arena se volvieron más sofisticadas y evolucionaron para derrotar las técnicas de evasión, observamos múltiples cepas de malware que cambiaron drásticamente sus tácticas para mantenerse un paso adelante. En las siguientes secciones, recordamos algunas de las técnicas de evasión de sandbox más frecuentes utilizadas por los autores de malware en los últimos años y validamos el hecho de que las familias de malware extendieron su código en paralelo para introducir técnicas más sigilosas.

El siguiente diagrama muestra uno de los trucos de evasión de sandbox más frecuentes que discutiremos en este blog, aunque existen muchos otros.

Retrasar la ejecución

Inicialmente, se observaron varias cepas de malware utilizando técnicas de evasión basadas en el tiempo (ejecución latente), que se redujeron principalmente a retrasar la ejecución del código malicioso durante un período utilizando las API de Windows conocidas como NtDelayExecution, CreateWaitTableTImer, SetTimer y otras. Estas técnicas siguieron siendo populares hasta que las cajas de arena comenzaron a identificarlas y mitigarlas.

GetTickCount

Cuando las cajas de arena identificaron malware e intentaron derrotarlo acelerando la ejecución del código, recurrieron al uso de comprobaciones de aceleración utilizando múltiples métodos. Uno de esos métodos, utilizado por varias familias de malware que incluye Win32 / Kovter, estaba usando Windows API GetTickCount seguido de un código para verificar si había transcurrido el tiempo esperado. Sin embargo, observamos varias variaciones de este método en las familias de malware.

Los vendedores de sandbox pueden pasar por alto esta técnica antievasión simplemente creando una instantánea con más de 20 minutos para que la máquina funcione durante más tiempo.

Inundación API

Otro enfoque que posteriormente se hizo más frecuente, observado con el malware Win32 / Cutwail, es llamar a la API de basura en el bucle para introducir el retraso, denominado inundación de API. A continuación se muestra el código del malware que muestra este método.

Código en línea

Observamos cómo este código resultó en una condición de DOS ya que los sandboxes no podían manejarlo lo suficientemente bien. Por otro lado, este tipo de comportamiento no es demasiado difícil de detectar por los sandboxes más involucrados. A medida que se volvieron más capaces de manejar el código de bloqueo basado en API, otra estrategia para lograr un objetivo similar fue introducir un código de ensamblaje en línea que esperó durante más de 5 minutos antes de ejecutar el código hostil. Encontramos esta técnica en uso también.

Las cajas de arena ahora son mucho más capaces y están equipadas con instrumentación de código y capacidades completas de emulación del sistema para identificar e informar el código de bloqueo. Esto resultó ser un enfoque simplista que podría evitar la mayoría de los sandboxes avanzados. En nuestra observación, lo siguiente describe el crecimiento de las técnicas populares de evasión basadas en el tiempo utilizadas por el malware en los últimos años.

Detección de hardware

Otra categoría de táctica de evasión ampliamente adoptada por el malware fue la toma de huellas digitales del hardware, específicamente una verificación del tamaño total de la memoria física, el tamaño / tipo de HD disponible y los núcleos de CPU disponibles.

Estos métodos se hicieron prominentes en familias de malware como Win32 / Phorpiex, Win32 / Comrerop, Win32 / Simda y muchos otros más frecuentes. Según nuestro seguimiento de sus variantes, notamos que la API de Windows DeviceIoControl () se usaba principalmente con códigos de control específicos para recuperar la información sobre el tipo de almacenamiento y el tamaño de almacenamiento.

Se descubrió que el ransomware y el malware de minería de criptomonedas verificaban la memoria física total disponible usando un truco conocido de GlobalMemoryStatusEx (). Una verificación similar se muestra a continuación.

Verificación del tamaño de almacenamiento:

A continuación se ilustra un ejemplo de código de intercepción de API implementado en el entorno limitado que puede manipular el tamaño de almacenamiento devuelto.

Posteriormente, un enfoque basado en el Instrumental de administración de Windows (WMI) se hizo más favorable ya que estas llamadas no podían ser fácilmente interceptadas por los sandboxes existentes.

Aquí está nuestra ruta de crecimiento observada en las familias de malware rastreadas con respecto a las comprobaciones de tipo y tamaño de almacenamiento.

Control de temperatura de la CPU

Los autores de malware siempre agregan métodos nuevos e interesantes para evitar los sistemas de sandbox. Otra comprobación que es bastante interesante implica verificar la temperatura del procesador en ejecución.

Un ejemplo de código donde vimos esto en la naturaleza es:

La verificación se ejecuta a través de una llamada WMI en el sistema. Esto es interesante ya que los sistemas VM nunca devolverán un resultado después de esta llamada.

Cuenta de CPU

Las familias de malware populares como Win32 / Dyreza fueron vistas usando el núcleo de CPU como una estrategia de evasión. Inicialmente se encontraron varias familias de malware utilizando una ruta trivial basada en API, como se describió anteriormente. Sin embargo, la mayoría de las familias de malware más tarde recurrieron a WMI y a métodos más sigilosos basados ​​en el acceso PEB.

Cualquier código de evasión en el malware que no se base en API es difícil de identificar en el entorno de sandboxing y los autores de malware buscan usarlo con más frecuencia. A continuación se muestra una verificación similar introducida en las cepas anteriores de malware.

Hay varias formas de obtener el recuento de núcleos de la CPU, aunque la forma más sigilosa fue acceder al PEB, que se puede lograr mediante la introducción de código de ensamblaje en línea o mediante el uso de funciones intrínsecas.

En un blog, se describe una de las técnicas relativamente más recientes para obtener el recuento de núcleos de la CPU, aquí. Sin embargo, en nuestras observaciones del malware que utiliza el conteo de núcleos de CPU para evadir los sistemas de análisis automatizados, se adoptó lo siguiente en la secuencia descrita.

La interacción del usuario

Otra clase de técnicas infames que los autores de malware utilizaron ampliamente para eludir el entorno de sandboxing fue explotar el hecho de que los sistemas de análisis automatizados nunca interactúan manualmente con los humanos. Las cajas de arena convencionales nunca se diseñaron para emular el comportamiento del usuario y el malware se codificó con la capacidad de determinar la discrepancia entre los sistemas automatizados y los reales. Inicialmente, se descubrió que varias familias de malware monitorean los eventos de Windows y detienen la ejecución hasta que se generan.

A continuación se muestra una instantánea de una variante de Win32 / Gataka usando GetForeGroundWindow y comprobando si otra llamada a la misma API cambia el identificador de Windows. La misma técnica se encontró en las variantes de ransomware Locky.

A continuación se muestra otra instantánea del malware Win32 / Sazoora, que verifica los movimientos del mouse, que se convirtió en una técnica ampliamente utilizada por varias otras familias.

También se encontraron campañas de malware que implementaban una variedad de técnicas para verificar las interacciones históricas con el sistema infectado. Una de esas campañas, que entregaba el malware Dridex, usaba ampliamente la macro de ejecución automática que se activaba solo cuando se cerraba el documento. A continuación se muestra una instantánea del código VB de una de esas campañas.

La misma campaña de malware también se encontró al introducir comprobaciones de clave del Registro en el código de los archivos MRU (Usados ​​más recientemente) para validar las interacciones históricas con la máquina infectada. Se encontraron variaciones en este enfoque haciendo la misma verificación programáticamente también.

Verificación de MRU usando la clave de registro: HKEY_CURRENT_USER Software Microsoft Office 16.0 Word User MRU

Versión programática de la verificación anterior:

Aquí está nuestra descripción de cómo estos enfoques se adoptaron entre el malware evasivo.

Detección de ambiente

Otra técnica utilizada por el malware es la huella digital del entorno de destino, explotando así la configuración incorrecta de la caja de arena. Al principio, los trucos como las técnicas de Red Pill fueron suficientes para detectar el entorno virtual, hasta que los sandboxes comenzaron a endurecer su arquitectura. Los autores de malware utilizaron nuevas técnicas, como verificar el nombre de host con nombres comunes de sandbox o el registro para verificar los programas instalados; un número muy pequeño de programas puede indicar una máquina falsa. También se han implementado otras técnicas, como verificar el nombre de archivo para detectar si se usa un hash o una palabra clave (como malware), así como detectar procesos en ejecución para detectar posibles herramientas de monitoreo y verificar la dirección de red para detectar las listas negras, como Vendedores de AV.

Locky y Dridex estaban usando trucos como detectar la red.

Uso de técnicas de evasión en el proceso de entrega

En los últimos años, hemos observado cómo el uso de las técnicas de detección y evasión de sandbox se ha implementado cada vez más en el mecanismo de entrega para dificultar la detección y el análisis. Los atacantes tienen cada vez más probabilidades de agregar una capa de protección en sus vectores de infección para evitar quemar sus cargas útiles. Por lo tanto, es común encontrar técnicas de evasión en Word malicioso y otros documentos armados.

McAfee Advanced Threat Defense

McAfee Advanced Threat Defense (ATD) es una solución de sandboxing que replica la muestra bajo análisis en un entorno controlado, realizando detección de malware a través de análisis de comportamiento estático y dinámico avanzado. Como solución de sandboxing, derrota las técnicas de evasión que se ven en muchos de los adversarios. La tecnología de sandboxing de McAfee está armada con múltiples capacidades avanzadas que se complementan entre sí para evitar las técnicas de evasión que intentan verificar la presencia de infraestructura virtualizada e imita los entornos de sandbox para que se comporten como máquinas físicas reales. Las técnicas de evasión descritas en este documento, donde los adversarios emplean ampliamente el código o el comportamiento para evadir la detección, son ignoradas por McAfee Advanced Threat Defense caja de arena que incluye:

  • Uso de las API de Windows para retrasar la ejecución de la muestra, el tamaño del disco duro, los números centrales de la CPU y otra información del entorno.
  • Métodos para identificar la interacción humana a través de clics del mouse, golpes de teclado, cuadros de mensajes interactivos.
  • Recuperación de información de hardware como el tamaño del disco duro, números de CPU, verificación de proveedores de hardware a través de artefactos de registro.
  • Tiempo de actividad del sistema para identificar la duración del estado activo del sistema.
  • Verifique el bit de color y la resolución de Windows.
  • Documentos recientes y archivos utilizados.

Además de esto, McAfee Advanced Threat Defense está equipado con motores inteligentes de análisis estático, así como algoritmos basados ​​en aprendizaje automático que juegan un papel de detección significativo cuando las muestras detectan el entorno virtualizado y salen sin exhibir comportamiento de malware. Una de las capacidades emblemáticas de McAfee, el Family Classification Engine, funciona a nivel de ensamblaje y proporciona rastros significativos una vez que se carga una muestra en la memoria, a pesar de que la detonación de sandbox no se completa, lo que resulta en una detección mejorada para nuestros clientes.

Conclusión

Los entornos de sandboxing tradicionales se construyeron ejecutando máquinas virtuales sobre una de las soluciones de virtualización disponibles (VMware, VirtualBox, KVM, Xen), lo que deja enormes brechas para que el malware evasivo explote.

Los autores de malware continúan mejorando sus creaciones al agregar nuevas técnicas para evitar las soluciones de seguridad y las técnicas de evasión siguen siendo un medio poderoso para detectar un entorno limitado. A medida que las tecnologías mejoran, también lo hacen las técnicas de malware.

Los sistemas de sandboxing ahora están equipados con capacidades avanzadas de instrumentación y emulación que pueden detectar la mayoría de estas técnicas. Sin embargo, creemos que el próximo paso en la tecnología de sandboxing será el entorno de análisis de metal desnudo que ciertamente puede vencer cualquier forma de comportamiento evasivo, aunque las debilidades comunes aún serán fáciles de detectar.





Enlace a la noticia original