El auge del aprendizaje profundo para la detección y clasificación de malware


Co-escrito por Catherine Huang, Ph.D. y Abhishek Karnik

La inteligencia artificial (IA) continúa evolucionando y ha avanzado enormemente durante la última década. La IA da forma a nuestra vida diaria. El aprendizaje profundo es un subconjunto de técnicas en IA que extraen patrones de datos utilizando redes neuronales. El aprendizaje profundo se ha aplicado a la segmentación de imágenes, la estructura de proteínas, la traducción automática, el reconocimiento de voz y la robótica. Ha superado a los campeones humanos en el juego de Vamos. En los últimos años, el aprendizaje profundo se ha aplicado al análisis de malware. Se han aplicado diferentes tipos de algoritmos de aprendizaje profundo, como redes neuronales convolucionales (CNN), redes neuronales recurrentes y redes Feed-Forward, a una variedad de casos de uso en el análisis de malware utilizando secuencia de bytes, imagen en escala de grises, entropía estructural, API. secuencia de llamadas, tráfico HTTP y comportamiento de la red.

La mayoría de los enfoques tradicionales de detección y clasificación de malware de aprendizaje automático se basan en funciones hechas a mano. Estas características se seleccionan en base a expertos con conocimiento del dominio. La ingeniería de funciones puede ser un proceso que requiere mucho tiempo y las funciones hechas a mano pueden no generalizarse bien en el malware nuevo. En este blog, describimos brevemente cómo aplicamos CNN en bytes sin procesar para la detección y clasificación de malware en datos del mundo real.

  1. CNN en bytes sin formato

Figura 1: CNN en bytes sin procesar para la detección y clasificación de malware

La motivación para aplicar el aprendizaje profundo es identificar nuevos patrones en bytes sin procesar. La novedad de este trabajo es triple. Primero, no hay extracción ni preprocesamiento de características específicas del dominio. En segundo lugar, es un enfoque de aprendizaje profundo de extremo a extremo. También puede realizar una clasificación de un extremo a otro. Y puede ser un extractor de funciones para el aumento de funciones. En tercer lugar, la IA explicable (XAI) proporciona información sobre las decisiones de CNN y ayuda a los humanos a identificar patrones interesantes en las familias de malware. Como se muestra en la Figura 1, la entrada es solo bytes y etiquetas sin procesar. CNN realiza el aprendizaje de representación para aprender automáticamente las características y clasificar el malware.

2. Resultados experimentales

Para los propósitos de nuestros experimentos con la detección de malware, primero recopilamos 833,000 muestras binarias distintas (sucias y limpias) en múltiples familias, compiladores y diferentes períodos de tiempo "vistos por primera vez". Hubo grandes grupos de muestras de familias comunes, aunque utilizaron diferentes empaquetadores, ofuscadores. Se realizaron controles de cordura para descartar muestras que estaban dañadas, demasiado grandes o demasiado pequeñas, según nuestro experimento. De las muestras que cumplieron con nuestros criterios de verificación de cordura, extrajimos bytes sin procesar de estas muestras y los utilizamos para realizar múltiples experimentos. Los datos se dividieron aleatoriamente en un entrenamiento y un conjunto de prueba con una división del 80% / 20%. Utilizamos este conjunto de datos para ejecutar los tres experimentos.

En nuestro primer experimento, los bytes sin procesar de las 833.000 muestras se enviaron a la CNN y la precisión del rendimiento en términos de área bajo la curva de funcionamiento del receptor (ROC) fue de 0,9953.

Una observación con la ejecución inicial fue que, después de la extracción de bytes sin procesar de las 833.000 muestras únicas, encontramos entradas de bytes sin procesar duplicadas. Esto se debió principalmente a las familias de malware que utilizaron la eliminación de hash como enfoque del polimorfismo. Por lo tanto, en nuestro segundo experimento, deduplicamos las entradas de bytes sin procesar extraídas. Esto redujo el recuento de vectores de entrada de bytes sin procesar a 262.000 muestras. El área de prueba bajo ROC fue 0,9920.

En nuestro tercer experimento, intentamos clasificar el malware multifamiliar. Tomamos un subconjunto de 130.000 muestras del conjunto original y etiquetamos 11 categorías: el 0th se clasificaron como Limpios, de los cuales 1 a 9 eran familias de malware, y el 10th se clasificaron como Otros. Nuevamente, estos 11 cubos contienen muestras con diferentes empaquetadores y compiladores. Realizamos otra división aleatoria del 80/20% para el conjunto de entrenamiento y el conjunto de prueba. Para este experimento, logramos una precisión de prueba de 0.9700. El tiempo de entrenamiento y prueba en una GPU fue de 26 minutos.

3. Explicación visual

Figura 2: explicación visual usando T-SNE y PCA antes y después del entrenamiento de CNN
Figura 2: Una explicación visual usando T-SNE y PCA antes y después del entrenamiento de CNN

Para comprender el proceso de capacitación de CNN, realizamos un análisis visual para la capacitación de CNN. La Figura 2 muestra la incrustación de vecinos estocásticos distribuidos en t (t-SNE) y el análisis de componentes principales (PCA) antes y después del entrenamiento de CNN. Podemos ver que después del entrenamiento, CNN puede extraer representaciones útiles para capturar características de diferentes tipos de malware como se muestra en diferentes clústeres. Hubo una buena separación para la mayoría de las categorías, lo que nos hizo creer que el algoritmo era útil como clasificador de varias clases.

Luego realizamos XAI para comprender las decisiones de CNN. La Figura 3 muestra mapas de calor XAI para una muestra de Fareit y una muestra de Emotet. Cuanto más brillante es el color, más importantes son los bytes que contribuyen a la activación del gradiente en las redes neuronales. Por lo tanto, esos bytes son importantes para las decisiones de CNN. Estábamos interesados ​​en comprender los bytes que influían mucho en la toma de decisiones y revisamos algunas muestras manualmente.

Figura 3: mapas de calor XAI en Fareit (izquierda) y Emotet (derecha)
Figura 3: mapas de calor XAI en Fareit (izquierda) y Emotet (derecha)

4. Análisis humano para comprender la decisión de ML y XAI

Figura 4: Análisis humano sobre las predicciones de CNN
Figura 4: Análisis humano sobre las predicciones de CNN

Para verificar si la CNN puede aprender nuevos patrones, alimentamos a un pocos nunca visto antes muestras a la CNN, y solicitó un experto humano para verificar el La decisión de CNN en algunos aleatorio muestras. El humano análisis verificado ese la CNN fue capaz de correctamente identificar muchos familias de malware. En algunos casos, identificó muestras con precisión antes depág.15 AV proveedores basados ​​en nuestras pruebas internas. La Figura 4 muestra un subconjunto de muestras que pertenecen a la Nabucur familia que estaban correctamente categorizado por la CNN a pesar de no tener detección de proveedores en ese momento. Eso's además interesante notar que otus resultados demostró que la CNN fue capaz de actualmente clasificar por categorías malware muestras en familias que utilizan empacadores comunes en una familia precisa balde.

Figura 5: análisis de dominio en el compilador de muestra
Figura 5: análisis de dominio en el compilador de muestra

Realizamos un análisis de dominio en los mismos archivos VB de compiladores de muestra. Como se muestra en la Figura 5, CNN pudo identificar dos muestras de una familia de amenazas antes que otros proveedores. CNN estuvo de acuerdo con MSMP / otros proveedores en dos muestras. En este experimento, la CNN identificó incorrectamente una muestra como limpia.

Figura 6: Análisis humano en un mapa de calor XAI. Arriba está el desmontaje resultante de parte del algoritmo del té de descifrado de la herramienta Hiew.
Figura 6: Análisis humano en un mapa de calor XAI. Arriba está el desmontaje resultante de parte del algoritmo del té de descifrado de la herramienta Hiew.
Arriba está el mapa de calor XAI para una muestra.
Arriba está el mapa de calor XAI para una muestra.

Le pedimos a un experto humano que inspeccionara un mapa de calor XAI y verificara si esos bytes en colores brillantes están asociados con la clasificación de la familia de malware. La Figura 6 muestra una muestra que pertenece a la familia Sodinokibi. Los bytes identificados por el XAI (c3 8b 4d 08 03 d1 66 c1) son interesantes porque la secuencia de bytes pertenece a parte del algoritmo de descifrado de Tea. Esto indica que estos bytes están asociados con la clasificación de malware, lo que confirma que la CNN puede aprender y ayudar a identificar patrones útiles que los humanos u otra automatización pueden haber pasado por alto. Aunque estos experimentos fueron rudimentarios, fueron indicativos de la efectividad de la CNN para identificar patrones de interés desconocidos.

En resumen, los resultados experimentales y las explicaciones visuales demuestran que CNN puede aprender automáticamente las representaciones de bytes sin procesar de PE. El modelo de bytes sin procesar de CNN puede realizar una clasificación de malware de un extremo a otro. CNN puede ser un extractor de funciones para el aumento de funciones. El modelo de bytes sin procesar de CNN tiene el potencial de identificar familias de amenazas antes que otros proveedores e identificar nuevas amenazas. Estos resultados iniciales indican que las CNN pueden ser una herramienta muy útil para ayudar a la automatización y al investigador humano en el análisis y la clasificación. Aunque todavía necesitamos realizar una gama más amplia de experimentos, es alentador saber que nuestros hallazgos ya se pueden aplicar para la clasificación, identificación y categorización tempranas de amenazas, lo que puede ser muy útil para la priorización de amenazas.

Creemos que la investigación de IA en curso de McAfee, como los enfoques basados ​​en el aprendizaje profundo, lleva a la industria de la seguridad a abordar el panorama de amenazas en evolución, y esperamos seguir compartiendo nuestros hallazgos en este espacio con la comunidad de seguridad.





Enlace a la noticia original