Herramienta para el análisis automático del comportamiento de malware.

Share this…

Malheur es una herramienta para el análisis automático del comportamiento de malware, en un entorno de sandbox. Ha sido diseñado para apoyar el análisis regular de software malicioso y el desarrollo de medidas de detección y defensa. Malheur permite identificar nuevas clases de malware con un comportamiento similar y asignar el malware desconocido a las clases descubiertas.

mal_proto_toy2

Malheur se basa en el concepto de análisis dinámico: los binarios del malware se ejecutan en un entorno limitado, donde se controla su comportamiento durante el tiempo de ejecución. La ejecución de cada binario de malware, devuelve como resultado un informe del comportamiento registrado. Malheur utiliza estos informes para el descubrimiento y la discriminación de las clases de malware utilizando su motor de aprendizaje.

Malheur se puede aplicar a los informes de conducta registrada de malware en varios formatos, siempre y cuando los sucesos supervisados están separados por símbolos delimitadores, por ejemplo como en los informes generados por las sandbox de malware populares CWSandbox , Anubis , Norman SandBox y Joebox .

Realiza cuatro acciones básicas para el análisis, que se pueden aplicar a los informes de comportamiento registrado:

  • La extracción de prototipos: A partir de un determinado conjunto de informes, malheur identifica un subconjunto representante de prototipos para el conjunto de datos completo. Los prototipos proporcionan una visión general rápida del comportamiento registrado y pueden usarse para guiar la inspección manual.
  • La agrupación de comportamiento: Malheur identifica automáticamente los grupos (clusters) de informes que contienen un comportamiento similar. La agrupación permite descubrir nuevas clases de malware y proporciona la base para crear mecanismos específicos de detección y defensa, como las firmas antivirus.
  • La clasificación de la conducta: Sobre la base de un conjunto de informes previamente agrupados, Malheur es capaz de asignar un comportamiento desconocido para grupos conocidos de malware. La clasificación permite identificar variantes nuevas y desconocidas de malware y puede usarse para filtrar el comportamiento antes de la inspección manual.
  • Análisis elemental: Malheur se puede aplicar de forma incremental para el análisis de grandes conjuntos de datos. Mediante el procesamiento de informes en trozos, el tiempo de ejecución, así como los requisitos de memoria, se puede reducir significativamente. Esto hace viable la aplicación a largo plazo de Malheur, por ejemplo, para el análisis diario de software malicioso.

Ejemplos de funcionamiento:

Distancias del comportamiento del malware. 

El primer ejemplo demuestra cómo se calcula una matriz de distancia para el archivo “dataset.zip” que contiene informes del comportamiento del malware. La matriz se escribe en el archivo “out.txt”.

malheur -o out.txt -v distance dataset.zip

La matriz de distancia refleja la disimilitud del comportamiento de cada informe en el archivo. Las entradas de la matriz van de 0 a raíz cuadrada de 2, donde los valores pequeños indican comportamientos similares y los valores mayores indican comportamientos de desviación. La matriz puede utilizarse como base para varias técnicas de análisis y de minería de datos como: la agrupación jerárquica, la clasificación de vecinos más cercanos o  el escalamiento multidimensional. Es un punto de partida genérico para la investigación sobre el análisis del comportamiento del malware.

Extracción de prototipos.

La inspección manual de varios informes de comportamiento es tediosa y molesta. Este ejemplo ilustra cómo se extraen informes de prototipos del conjunto de datos “dataset.zip”. Los prototipos se escriben en el archivo “out.txt”.

malheur -o out.txt -v prototype dataset.zip

De todos los informes de comportamiento del programa, se selecciona un pequeño subconjunto que es representativo para el conjunto de datos completo. Los elementos de este subconjunto se denominan prototipos. Antes de analizar más a fondo un conjunto grande de datos, una inspección rápida de prototipos permite una visión general del comportamiento y muestra patrones típicos para el conjunto de datos.

Agrupación y clasificación.

Este ejemplo demuestra cómo se aplican el agrupamiento y la clasificación para el análisis de dos conjuntos de datos, “dataset1.zip” y “dataset2.zip”. Los resultados de clasificación se escriben en “out1.txt” y “out2.txt”, respectivamente.

malheur -o out1.txt -v cluster dataset1.zip
malheur -o out2.txt -v classify dataset2.zip

En primer lugar, los informes en el archivo “dataset1.zip” se agrupan en grupos de comportamiento similar. Los grupos pueden utilizarse para descubrir nuevas clases de malware o identificar patrones de comportamiento compartidos por varias instancias de malware. Cada clúster está representado por un pequeño conjunto de informes de prototipos, de tal manera que la inspección manual normalmente puede estar restringida a prototipos. En segundo lugar, los informes en “dataset2.zip” se asignan a los grupos descubiertos. Esta clasificación puede usarse para filtrar variantes de clases contenidas en “dataset1.zip”, de manera que se pueda identificar un nuevo malware en “dataset2.zip”.

Análisis incremental.

En el último ejemplo, Malheur se aplica para el análisis incremental de un conjunto de datos más grande dividido en tres archivos, a saber “dataset1.zip”, “dataset2.zip” y “dataset3.zip”. Los resultados de este análisis se escriben en los archivos “out1.txt”, “out2.txt” y “out3.txt”.

malheur -o out1.txt -v -r increment dataset1.zip
malheur -o out2.txt -v increment dataset2.zip
malheur -o out3.txt -v increment dataset2.zip

En primer lugar, el archivo “dataset1.zip” se procesa mediante el análisis incremental. La opción adicional “-r” se utiliza para restablecer el estado interno de Malheur, de modo que los resultados de las ejecuciones incrementales anteriores se descartan. A continuación, se analizan los archivos “dataset2.zip” y “dataset3.zip” donde para cada archivo se identifica el primer comportamiento conocido mediante la clasificación y se descubren nuevos grupos de malware utilizando técnicas de clustering. Los resultados intermedios para cada archivo se almacenan en el directorio inicial Malheur, por defecto “~/.malheur”. El análisis incremental permite procesar eficientemente grandes conjuntos de datos, donde los requisitos de tiempo de ejecución y memoria se reducen significativamente en comparación con el análisis por lotes.

Depuración.

Los informes de comportamiento de malware están incrustados en un espacio vectorial donde cada informe está representado por un vector de determinadas características. Para entender esta representación y rastrear problemas, se puede activar una tabla de búsqueda en la configuración de características de “malheur.cfg”.

malheur -o /dev/null -vvv prototype dataset.zip

El comando anterior extrae prototipos del conjunto de datos proporcionado. Sin embargo, también presenta mucha información detallada sobre los informes y los prototipos extraídos. En particular, para cada prototipo se muestra el vector de características correspondiente. Si se habilita la tabla de búsqueda, las dimensiones de este vector se imprimen con la instrucción n -grams(subseries compuestas de n).

Fuente:https://www.gurudelainformatica.es/