scieee AI-readable full text Open interactive document viewer

Método para Automatizar Clasificación de Malware PE32 mediante Técnicas de Procesamiento de Lenguaje Natural

Percílio Azevedo, Bruce W.; Martínez Hernández, Luis Alberto; Oliveira Albuquerque, Robson; García Villalba, Luis Javier

Abstract

El malware se define como un programa informático que causa daños a los activos de información una vez que se ejecuta. Existen varios tipos de malware, siendo los más comunes los descargadores, keyloggers, mineros, ransomware, rootkits y spyware, entre otros. Cada uno de ellos tiene su propio comportamiento y características y, en algunos casos, pueden clasificarse en más de un tipo debido a sus características. El malware se suele escribir en estructuras con un mayor número de funcionalidades, con el objetivo de afectar al mayor número de activos de información posible. Una de las estructuras más utilizadas es la PE32, que pertenece al estándar de objetos de la familia de sistemas operativos Microsoft Windows, donde han estado disponibles como ejecutables o binarios. Existen dos metodologías para analizar malware, estática y dinámica, cada una compuesta por técnicas como sandbox, que emula el binario y mapea puntos clave, como la memoria y el sistema de archivos, para identificar comportamientos maliciosos. Aunque estas técnicas son muy utilizadas por investigadores de malware, por defecto, debido a su complejidad, suelen consumir mucho tiempo. Con el fin de optimizar el análisis de los binarios, esta investigación propone identificar de manera oportuna un posible malware antes de enviarlo a técnicas que realizan una inspección de la muestra de manera más profunda. La metodología se elabora mediante el uso de técnicas de desensamblado para extraer funciones y archivos de sistemas operativos Microsoft Windows. Después, se estructura un conjunto de datos con los datos extraídos, y se realiza una interpretación léxica basada en word2vec, con el objetivo de identificar funciones y tipos de malware. A continuación, la idea es utilizar los resultados como entrada para un modelo de aprendizaje profundo con técnicas de memoria a largo plazo, que se utilizan ampliamente como sustitutas de las redes neuronales convolucionales. La memoria a largo plazo mapear´ a los patrones y crear´ a un modelo para identificar nuevas entradas (con la misma estructura) que los tipos de malware del entrenamiento original.

Full text

M´ etodo para Automatizar Clasificaci´ on de Malware PE32 mediante T´ ecnicas de Procesamiento de Lenguaje Natural Bruce W. Perc´ ılio Azevedo12, Luis Alberto Mart´ ınez Hern´ andez1, Robson de Oliveira Albuquerque13, Luis Javier Garc´ ıa Villalba1 1Grupo de An´ alisis, Seguridad y Sistemas (GASS) Departamento de Ingenier´ ıa del Software e Inteligencia Artificial (DISIA) Facultad de Inform´ atica, Despacho 431, Universidad Complutense de Madrid (UCM) Calle Profesor Jos´ e Garc´ ıa Santesmases, 9, Ciudad Universitaria, 28040 Madrid Email: {luisal11, robsonde, javierv}@ucm.es 2Universidad Polit´ ecnica de Madrid (UPM), Madrid, Espa˜ na Email: [email protected] 3Universidad de Brasilia (UnB), Brasil Email: [email protected].br Resumen—El malware se define como un programa inform´ atico que causa da˜ nos a los activos de informaci´ on una vez que se ejecuta. Existen varios tipos de malware, siendo los m´ as comunes los descargadores, keyloggers, mineros, ransomware, rootkits y spyware, entre otros. Cada uno de ellos tiene su propio comportamiento y caracter´ ısticas y, en algunos casos, pueden clasificarse en m´ as de un tipo debido a sus caracter´ ısticas. El malware se suele escribir en estructuras con un mayor n´ umero de funcionaldades, con el objetivo de afectar al mayor n´ umero de activos de informaci´ on posible. Una de las estructuras m´ as utilizadas es la PE32, que pertenece al est´ andar de objetos de la familia de sistemas operativos Microsoft Windows, donde han estado disponibles como ejecutables o binarios. Existen dos metodolog´ ıas para analizar malware, est´ atica y din´ amica, cada una compuesta por t´ ecnicas como sandbox, que emula el binario y mapea puntos clave, como la memoria y el sistema de archivos, para identificar comportamientos maliciosos. Aunque estas t´ ecnicas son muy utilizadas por investigadores de malware, por defecto, debido a su complejidad, suelen consumir mucho tiempo. Con el fin de optimizar el an´ alisis de los binarios, esta investigaci´ on propone identificar de manea oportuna un posible malware antes de enviarlo a t´ ecnicas que realizan una inspecci´ on de la muestra de manera m´ as profunda. La metodolog´ ıa se elabora mediante el uso de t´ ecnicas de desensamblado para extraer funciones y archivos de sistemas operativos Microsoft Windows. Despu´ es, se estructura un conjunto de datos con los datos extra´ ıdos, y se realiza una interpretaci´ on l´ exica basada en word2vec, con el objetivo de identificar funciones y tipos de malware. A continuaci´ on, la idea es utilizar los resultados como entrada para un modelo de aprendizaje profundo con t´ ecnicas de memoria a largo plazo, que se utilizan ampliamente como sustitutas de las redes neuronales convolucionales. La memoria a largo plazo mapear´ a los patrones y crear´ a un modelo para identificar nuevas entradas (con la misma estructura) que los tipos de malware del entrenamiento original. Index Terms—Deep Learning, Lexical Analysis, Malware, PE32. Tipo de contribuci´ on: Investigaci´ on en desarrollo I. INTRODUCCI´ ON Los ordenadores se han convertido en parte importante de nuestras vidas, utilizados por particulares, empresas e incluso naciones. Aunque mejoran significativamente la eficiencia y la velocidad, las personas tambi´ en se han vuelto dependientes de ellos. El coste de no tener acceso a sistemas de infraestructuras cr´ ıticas o de no poder realizar transacciones financieras durante periodos prolongados es incalculable. Podr´ ıa incluso provocar la p´ erdida de vidas. El software es un elemento crucial de los productos inform´ aticos y los sistemas de informaci´ on. Sin embargo, el software malicioso o malware se ha convertido en una amenaza importante para la seguridad de estos sistemas. En los ´ ultimos a˜ nos, los atacantes han recurrido cada vez m´ as a este tipo de software para llevar a cabo sus ataques. En el desarrollo de malware se utilizan varias estructuras, uno de los mejores ejemplos es la estructura Ejecutable Portable (PE, del ingl´ es Portable Executable), que ocupa la primera posici´ on en el ranking de software analizado por virustotal [1]. En la actualidad existen dos categor´ ıas de analizadores de malware en archivos binarios, est´ atico y din´ amico [2]. En el m´ etodo est´ atico se realiza sin la ejecuci´ on del archivo, las t´ ecnicas m´ as utilizadas son por an´ alisis de hashing [3] y el an´ alisis manual [4] mediante m´ etodos de desensamblaje. Mientras que el an´ alisis din´ amico se realiza ejecutando el archivo, mediante el uso de sandbox [5] y el monitoreo de paquetes IP para identificar anomal´ ıas en el comportamiento [6]. Desafortunadamente, a la complejidad dada la naturaleza del an´ alisis, las t´ ecnicas actuales, a pesar de ser efectivas, son consideradas lentas, consumiendo un tiempo considerable para concluir con lo que hace el ejecutable o el binario. El objetivo de esta investigaci´ on es proponer una estrategia de an´ alisis para binarios que est´ en construidos sobre la estructura PE32. Este an´ alisis no reemplaza las t´ ecnicas existentes, es una forma de verificar qu´ e binario vale la pena pasar por un proceso de an´ alisis m´ as detallado, complementando el an´ alisis de un perfil de devsecops que se espera sea m´ as r´ apido en la validaci´ on. Para ello se utilizar´ an t´ ecnicas de desensamblado, an´ alisis l´ exico con Word2vec y modelos de aprendizaje JNIC 2024 ISBN:978-84-09-62140-8 492 profundo como redes neuronales de memoria larga a corto plazo (LSTM, del ingl´ es Long Short-Term Memory). Esto se implementar´ a dentro de una estructura automatizada y f´ acil de usar construida sobre Docker. Los resultados obtenidos de esta estrategia se comparar´ an con los hallazgos de investigaciones anteriores y se discutir´ an para obtener una comprensi´ on m´ as profunda de la evoluci´ on de la clasificaci´ on e identificaci´ on de malware. Este documento est´ a organizado en las siguientes en secciones. La Secci´ on II presenta los antecedentes te´ oricos, que abarcan la estructura de archivo PE32, los tipos de malware, el an´ alisis l´ exico y el aprendizaje profundo. La Secci´ on III describe trabajos relacionados con la investigaci´ on. La Secci´ on III presenta el m´ etodo propuesto, que abarca la construcci´ on de conjuntos de datos, el an´ alisis l´ exico y la memoria a largo y corto plazo. En la Secci´ on V se presentan y discuten los resultados, y finalmente, la Secci´ on VI presenta con la conclusi´ on y los trabajos futuros. II. ESTADO DEL ARTE PE32 es una estructura muy utilizada por los ciberdelincuentes para la creaci´ on de malware. Sin embargo, las t´ ecnicas actuales para analizar este tipo de estructura, dado la complejidad requerida, consumen mucho tiempo o requieren intervenci´ on manual. Este art´ ıculo presenta una propuesta de an´ alisis que utiliza word2vec y LSTM. Debido a la profundidad de la propuesta y a las tecnolog´ ıas actuales que considera, es necesario comprender con m´ as detalle los componentes que la rodean. II-A. Ejecutable Port´ atil En 1993, Microsoft lanz´ o Windows NT e introdujo el concepto de ejecutable portable, que formaba parte de las especificaciones originales de las aplicaciones Win32. El t´ ermino se acu˜ n´ o para disponer de una estructura ´ unica que pudiera ejecutarse en todas las versiones de Windows y fuera compatible con todos los modelos de CPU. Este objetivo se cumpli´ o en general, y la misma estructura se convirti´ o en el est´ andar para Windows en formato servidor y versiones posteriores, y Windows 95 y sus sucesores [7]. PE32 es una estructura de archivo que un sistema operativo utiliza para ejecutar programas. Estos programas vienen en varias extensiones de archivo, siendo .exe y .dll las m´ as comunes. Todos siguen la misma estructura, con algunas diferencias que indican c´ omo debe tratarse el archivo. La mayor´ ıa del software en la estructura PE depende en gran medida de funciones de otras DLL, que es necesario importar. Durante el proceso de inicio, Windows Loader localiza e importa estas funciones, haci´ endolas accesibles en memoria [7]. Cuando Windows Loader crea un enlace a las funciones de otra DLL, tambi´ en crea un enlace a la propia DLL. Estas funciones se cargan en memoria y se vinculan al programa PE32 mediante llamadas a la API. Con la introducci´ on de Windows de 64 bits, fue necesario hacer algunos cambios en la estructura PE. Esto dio lugar al estructura actualizado denominado PE32+. No se a˜ nadieron nuevos campos, pero se elimin´ o uno. Los campos restantes se ampliaron de la estructura de 32 bits al de 64 bits. En la mayor´ ıa de los casos, los archivos escritos en la estructura de 32 bits se reconocen autom´ aticamente en los sistemas operativos con una estructura construida sobre la de 64 bits. II-B. Tipos de Malware El malware es un software dise˜ nado para da˜ nar los ordenadores o a sus usuarios de diversas formas, como robar informaci´ on, corromper archivos, conceder acceso no autorizado a recursos o simplemente molestar a los usuarios [8]. Los creadores de malware buscan constantemente nuevos m´ etodos para lograr sus objetivos. Mejoran sus t´ ecnicas utilizando la ofuscaci´ on y la exfiltraci´ on e intentando infectar al mayor n´ umero posible de v´ ıctimas. ´ Ultimamente, el n´ umero de incidentes de seguridad causados por programas maliciosos ha aumentado considerablemente. El malware suele dividirse en tipos seg´ un su objetivo. La comunidad de investigadores de malware tiende a etiquetar el malware en categor´ ıas espec´ ıficas seg´ un su comportamiento, funciones y otros criterios. Como no se puede calcular con precisi´ on la cantidad de malware, estas categor´ ıas ayudan a identificar y diferenciar entre los distintos tipos de programas maliciosos que se encuentran en la estructura PE32. A continuaci´ on se listan los principales tipos de malware que existen en la actualidad. Downloader: Un downloader es un tipo de malware dise˜ nado para descargar e instalar otros programas maliciosos en los ordenadores infectados [9]. Los downloaders utilizan t´ ecnicas avanzadas para ocultar su verdadero prop´ osito y camuflar el tr´ afico de fuentes externas, lo que dificulta su detecci´ on y eliminaci´ on. Keylogger: Los keyloggers son programas dise˜ nados para robar informaci´ on confidencial [10] mediante el control de las pulsaciones de teclado en los ordenadores infectados. Buscan PIN, n´ umeros de tarjetas de cr´ edito, textos confidenciales y otros datos valiosos. Miner: Miner es un malware dise˜ nado espec´ ıficamente para apoderarse de los recursos inform´ aticos de la v´ ıctima y utilizarlos para minar criptomonedas para los atacantes [11]. El objetivo principal de esta herramienta es generar ganancias financieras para los atacantes. Ransomware: El ransomware es un tipo de software malicioso que, cuando se ejecuta, desactiva de alguna manera las funciones del ordenador [8]. El ransomware funciona normalmente cifrando los archivos del ordenador y exigiendo despu´ es el cumplimiento de unas demandas espec´ ıficas para restaurar el acceso a los archivos. Se trata de una forma de chantaje, y puede ser muy perjudicial para particulares y organizaciones. RootKit: El rootkit es un tipo de software dise˜ nado para ocultar la existencia de otros programas en dispositivos que llevan a cabo an´ alisis de software conservando un acceso privilegiado [12]. Es una pr´ actica habitual que el malware utilice este tipo de programas para permitir su propia instalaci´ on y activaci´ on en entornos ya infectados. Una vez instalados, estos programas pueden modificar el sistema operativo y el sistema que detecta el malware. Spyware: El spyware es un tipo de software malicioso que se instala secretamente en el ordenador de la v´ ıctima sin su conocimiento o consentimiento [13]. Una vez activado, vigila el comportamiento, los archivos y las M´etodo para automatizar la clasificaci´on de malware PE32 usando Word2vec y LSTM 493 actividades del usuario y puede llegar a robar las credenciales de inicio de sesi´ on y otra informaci´ on confidencial. Los datos recopilados por el spyware son enviados a los creadores del malware. Los desarrolladores de software utilizan ampliamente la estructura PE32. Sin embargo, su uso extensivo se ha convertido en la estructura preferido por los ciberdelincuentes que tienen como objetivo el mayor n´ umero posible de v´ ıctimas. Est´ a clasificado como la estructura m´ as analizada por Virustotal [1]. II-C. An´ alisis l´ exico La similitud sem´ antica es un tema crucial en ling¨ u´ ıstica, sobre todo a la hora de entender el significado de las palabras. En t´ erminos ling¨ u´ ısticos, dos palabras diferentes pueden compartir el mismo significado. El proceso de c´ alculo del grado de similitud entre ellas se ha basado tradicionalmente en el pensamiento humano. Sin embargo, este c´ alculo ha servido de base para desarrollar t´ ecnicas dentro del campo de la inform´ atica, como el Procesamiento del Lenguaje Natural (NLP, del ingl´ es Natural Language Processing) y la Miner´ ıa de Textos. Una de las ramas de la inteligencia artificial es la NLP, que se ocupa de la interacci´ on entre los sistemas inform´ aticos y el lenguaje humano [14]. Para identificar el contexto de la frase, los sistemas inform´ aticos deben procesar primero el lenguaje humano entrante y hacer alg´ un razonamiento sobre los datos de entrada y lo que se espera de ellos. Word2vec se desarroll´ o en 2013 [15] y actualmente es una de las t´ ecnicas m´ as populares para calcular la similitud y relevancia de las palabras. Proporciona una representaci´ on vectorial ´ unica para cada palabra, teniendo en cuenta la sem´ antica mediante la asignaci´ on de tokens similares con el objeto de ofrecer representaciones similares. Word2vec no se considera el mejor ni el ´ unico modelo de NLP basado en la incrustaci´ on de palabras, analog´ ıas y similitudes [16]. Sin embargo, es sencillo y accesible; cualquiera puede descargar y utilizar su c´ odigo. II-D. Deep Learning Aprendizaje Autom´ atico (ML, del ingl´ es Machine Learning) es un t´ ermino utilizado para describir algoritmos computacionales que permiten a los sistemas resolver problemas sin estar expl´ ıcitamente programados para ello. Introduce t´ ecnicas que permiten aprender de la experiencia, desarrollar conceptos a partir de ejemplos y extraer patrones de datos brutos [17]. Han surgido nuevos enfoques para problemas que requieren m´ as complejidad. Estos enfoques no pretenden sustituir al ML, sino complementarlo, especialmente cuando se trata de funciones o dominios espec´ ıficos. Uno de estos enfoques es el Aprendizaje Profundo (DL, del ingl´ es Deep Learning). Permite a los sistemas inform´ aticos aprender conceptos complejos descomponi´ endolos en otros m´ as simples y creando una jerarqu´ ıa de capas. Esto se consigue creando una red neuronal para lograr este objetivo. Una red neuronal es un sistema complejo compuesto por muchas partes interconectadas llamadas neuronas, similar en estructura al cerebro humano. Estas neuronas est´ an dispuestas en capas y el DL se refiere al aprendizaje logrado a trav´ es de redes neuronales con m´ ultiples capas de neuronas. Como se Figura 1. Red Neural observa en la Figura 1, las capas de una red neuronal incluyen la capa de entrada, las capas ocultas y la capa de salida. Cada neurona de una red neuronal recibe varios n´ umeros como entrada y produce un ´ unico valor de salida denominado activaci´ on neuronal. Este proceso ocurre una sola vez y los datos nunca vuelven a pasar por la neurona. El procesamiento de datos en una neurona depende ´ unicamente de la entrada que recibe y no tiene relaci´ on con ning´ un dato procesado anteriormente. Las redes neuronales pueden estructurarse como Redes Neuronales Recurrentes (RNN, del ingl´ es Recurrent Neural Network) para tratar el flujo de datos que pasan a las neuronas, formando un ciclo dentro de la red. Las RNN utilizan un estado interno que puede guardarse durante largos periodos y al que se puede acceder desde otras neuronas. Durante el entrenamiento, la red neuronal utiliza la retropropagaci´ on para calcular los gradientes, que parten de las capas m´ as profundas y fluyen de vuelta a la inicial. Sin embargo, al entrenar una RNN, los gradientes procedentes de las capas m´ as profundas deben pasar por operaciones continuas de este tipo. El algoritmo de retropropagaci´ on utiliza la regla de la cadena para calcular los gradientes, y cuanto m´ as alejados est´ an de las capas anteriores, m´ as multiplicaciones con n´ umeros peque˜ nos se producen. Esto conduce a un gradiente exponencialmente decreciente, lo que significa que la informaci´ on se pierde, y el modelo ya no puede aprender de las entradas iniciales. II-D1. Long-Short Term Network: Sepp Hochreiter y J¨ urgen Schmidthuber introdujeron el concepto LSTM en 1997 [18]. La LSTM es una arquitectura de red neuronal que aborda el problema del gradiente descendiente imponiendo un flujo de error constante a trav´ es de los estados internos. Esto se consigue mediante un algoritmo basado en gradientes que evita tanto la explosi´ on como la fuga. La LSTM es una red neuronal que utiliza una c´ elula de memoria para almacenar informaci´ on relevante. El contenido de la memoria puede modificarse mediante tres capas sigmoidales de la red neuronal denominadas “puertas”: la puerta de entrada, la puerta de olvido y la puerta de salida. Cada puerta devuelve un valor entre 0 y 1, donde 0 significa que no pasa ninguna informaci´ on y 1 que pasa toda la informaci´ on [19]. Las tres puertas se entrenan para influir en el contenido de la celda de memoria y en la salida final. As´ ı es como las LSTM pueden evitar el problema de la desaparici´ on o explosi´ on de gradientes aprendiendo qu´ e informaci´ on es necesario conservar y cu´ al debe olvidarse. B. Azevedo, R. Albuquerque, L. Villalba and L. Hernandez 494 III. TRABAJOS RELACIONADOS Dai et al. [20] propusieron utilizar redes neuronales para clasificar el malware analizando los volcados de memoria tomados de los programas durante su ejecuci´ on. Ejecutaron programas maliciosos en un sandbox y capturaron la memoria mientras los programas se ejecutaban para crear un conjunto de datos. Utilizaron este conjunto de datos para entrenar un modelo basado en redes neuronales. Inicialmente, utilizaron una Red Neuronal Convolucional (CNN, del ingl´ es Convolutional Neural Network) para construir el primer modelo, que m´ as tarde actualizaron a una red LSTM. El modelo actualizado dio mejores resultados, principalmente gracias a la mejora del manejo del gradiente. Young Jun Lee et al. [21] han propuesto una estructura propia de an´ alisis l´ exico para analizar c´ odigo ensamblador con el fin de encontrar vulnerabilidades en formas similares de c´ odigo expuesto. Para mapear similitudes en el c´ odigo, emplearon CNN. El procedimiento demostr´ o su eficacia, con una tasa de validaci´ on del 94 %, lo que indica el ´ exito del uso combinado de an´ alisis l´ exico y aprendizaje profundo. El uso del an´ alisis l´ exico fue fundamental para el ´ exito de la comparaci´ on y valid´ o la eficacia del uso conjunto de estas tecnolog´ ıas. Wartschinski [22] cre´ o una herramienta de an´ alisis de vulnerabilidades para su tesis de maestr´ ıa utilizando Python y recursos de c´ odigo abierto. Comenz´ o mapeando el repositorio primario de Python en GitHub y descargando los datos comprometidos. A continuaci´ on, utiliz´ o Word2Vec para mapear los patrones de tokens dentro del lenguaje y cre´ o una estructura num´ erica para alimentar un modelo de red neuronal basado en LSTM. Este modelo utiliza la clasificaci´ on binaria para comprobar si el c´ odigo es vulnerable. Al convertir los scripts generados en una herramienta de c´ odigo abierto, pudo reproducir todo el proceso con los modelos Word2Vec y LSTM. Visweswaran et al. [23] analizaron archivos en la estructura PE32. Extrajeron funciones de llamada a la API de un conjunto de datos de malware utilizando t´ ecnicas de desmontaje y tokenizaci´ on para convertir su base en una num´ erica. A continuaci´ on, introdujeron esta nueva base num´ erica en un algoritmo de red neuronal CNN, cuyo objetivo era mapear los patrones de los tipos de malware. Sin embargo, la soluci´ on no puede recrearse porque la t´ ecnica utilizada para crear la estructura que convierte los datos en n´ umeros no puede guardarse. Cada vez que se utiliza el modelo, hay que volver a crearlo. Incluso con el mismo conjunto de datos, diferir´ a del original, aunque s´ olo sea por unos pocos detalles. IV. M´ ETODO PROPUESTO Se pueden utilizar tres m´ etodos para analizar archivos en la estructura PE32: t´ ecnicas de desensamblado, an´ alisis heur´ ıstico y sandboxing. Herramientas como PE Explorer han sido desarrolladas espec´ ıficamente para manipular las caracter´ ısticas de la estructura PE32, utilizando t´ ecnicas de desensamblaje para obtener una comprensi´ on m´ as profunda de c´ omo se comportan los programas. El an´ alisis heur´ ıstico es un m´ etodo que utiliza t´ ecnicas de descompilaci´ on para extraer tokens espec´ ıficos del c´ odigo de programas sospechosos, que luego se comparan con programas maliciosos conocidos para identificar similitudes que puedan utilizarse para encontrar amenazas potenciales. El sandboxing consiste en emular el entorno especificado para la aplicaci´ on sospechosa y mapear puntos clave de su comportamiento, como el uso de RAM, disco y CPU. Esto se hace para identificar las caracter´ ısticas que se asemejan al comportamiento de los programas maliciosos. Los procesos de an´ alisis de archivos en la estructura PE32 pueden llevar mucho tiempo y a menudo requieren la intervenci´ on de un especialista. Para solucionarlo, este trabajo propone utilizar t´ ecnicas de desensamblaje en un conjunto de datos de malware para extraer funciones de los binarios y crear un conjunto de datos en formato CSV. Este conjunto de datos entrenar´ a un modelo de an´ alisis l´ exico que utiliza el algoritmo word2vec, que luego se alimentar´ a como entrada a un modelo de aprendizaje profundo que utiliza LSTM. En la Figura 2 se muestra la representaci´ on visual del m´ etodo propuesto. Figura 2. Propuesta de m´ etodo Utilizando modelos word2vec y LSTM, esta propuesta crea una estructura docker capaz de recibir binarios de malware e identificar su tipo. Para completar cada tarea planificada es necesario seguir una serie de pasos. IV-A. Construcci´ on de conjuntos de datos El primer paso para construir la soluci´ on propuesta fue reunir un conjunto de datos compuesto por distintos tipos de malware. Con el objetivo de desarrollar una propuesta lo m´ as parecida posible a un entorno real, en este trabajo se utilizaron tipos reales de malware a partir de informaci´ on, fechas y detalles ampliamente difundidos. Para construir el conjunto de datos, se hace uso del repositorio de intercambio de malware Virus Share [24], un framework de intercambio abierto y gratuito destinado exclusivamente al almacenamiento de malware, en diferentes formatos y estructuras. Fue necesario filtrar las muestras para obtener ´ unicamente binarios en la estructura PE32. Se eligieron seis tipos de malware, cuyas muestras se descargaron y almacenaron localmente para componer el conjunto de datos de origen. La Tabla I especifica la cantidad y el nombre de cada tipo de malware adquirido de Virus Share y su valor total. Tabla I CANTIDAD DE MALWARE POR TIPOS Tipo Cantidad Malware 200 Downloader 200 Miner 200 Ransomware 200 RootKit 200 Spyware 200 Total 1200 IV-B. Desensamblaje de binarios para extraer funciones Tras crear el conjunto de datos de malware, se desarroll´ o un programa en C++ utilizando la biblioteca pibpe [25]. Esta M´etodo para automatizar la clasificaci´on de malware PE32 usando Word2vec y LSTM 495 biblioteca contiene t´ ecnicas de desensamblaje [26] que extraen puntos clave de muestras binarias en PE32 para analizarlas. El objetivo principal del programa C++ es extraer las funciones que utilizan los binarios PE32 de las DLL externas necesarias para la ejecuci´ on de los binarios. El programa C++ analiza un directorio completo pasado como argumento, extrae las funciones de todos los binarios dentro del directorio y exporta un archivo CSV con tres columnas: las funciones, el hash del binario y el tipo. IV-C. An´ alisis l´ exico Se ha desarrollado un algoritmo en Python para realizar el an´ alisis l´ exico. El primer paso del algoritmo consiste en importar el archivo CSV generado en la secci´ on anterior. Filtra las funciones y los tipos y divide las funciones en una lista de cadenas. Para el an´ alisis l´ exico se utiliz´ o el algoritmo word2vec, cuya implementaci´ on se import´ o de la biblioteca gensim [27], escrita en Python. Se pas´ o una lista de cadenas para crear una instancia del modelo con los argumentos enumerados en la Tabla II. Tabla II DESCRIPCI´ ON DE LOS ARGUMENTOS DE WORD2VEC Par´ ametro Descripci´ on Valor vector size Dimensionalidad de los vectores de palabras 400 window Distancia m´ axima entre la palabra actual y la prevista dentro de una frase. 100 min count Ignora todas las palabras cuya frecuencia total sea inferior a este valor. 10 workers Utiliza estos hilos de trabajo para entrenar el modelo. 8 El resultado del modelo word2vec es similar a un diccionario, formado por claves y valores. Adem´ as se agrega un m´ etodo que devuelve el valor num´ erico correspondiente para cualquier par´ ametro de la cadena dada. Para convertir cadenas en valores num´ ericos, se cre´ o la siguiente funci´ on para iterar a trav´ es de las cadenas y llamar a una funci´ on que realiza la conversi´ on utilizando el modelo word2vec. def word2token ( word ) r e t u r n model . wv . key to indx [ word ] for wd in data : wd tokken = np . ar ra y ( [ word2token (w) f or w in wd i f w != ” ” ] ) Tras convertir la matriz de cadenas en una matriz de n´ umeros, el modelo word2vec se guard´ o localmente. IV-D. Creaci´ on y utilizaci´ on de modelos LSTM El programa LSTM fue desarrollado utilizando el lenguaje Python, con la ayuda de la librer´ ıa Keras creada en 2015 y adoptada como interfaz por el equipo Tensorflow de Google [28]. Keras necesita un conjunto estructurado de datos en un array de 2 dimensiones. La primera dimensi´ on de la matriz contiene una lista de n´ umeros de la secci´ on IV-C, denominada X. La segunda dimensi´ on representa el tipo de malware con valores que van de 0 a 5, como se define en la Tabla III. Esta dimensi´ on se denomina Y. Para el entrenamiento y la validaci´ on, el conjunto de datos se dividi´ o en matrices bidimensionales X e Y con un 90 % Tabla III LISTA DE TIPOS DE MALWARE EN FORMA DE N ´ UMEROS Id Malware 0 Downloader 1 keylogger 2 Miner 3 Ransomware 4 RootKit 5 Spyware utilizado para el entrenamiento y un 10 % para la prueba, insertados en dos nuevas variables, X prueba yY prueba. Para utilizar el modelo LSTM en Keras, se recomienda crear previamente una capa Embedding. Para ello, necesitamos extraer informaci´ on espec´ ıfica del modelo word2vec, como el tama˜ no del vocabulario (que se refiere al n´ umero de funciones diferentes extra´ ıdas del binario), la dimensi´ on de la capa densa (que se calcula multiplicando el n´ umero de binarios diferentes analizados por el n´ umero m´ aximo de funciones por binario) y la lista de pesos de todos los n´ umeros (que se genera en funci´ on de la frecuencia de cada funci´ on). Las entradas de Word2vec extra´ ıdas se pasaron a la capa Embedding, seguida de una capa LSTM con un dropout de 0,7 y un dropout recurrente de 0,2. Despu´ es de la capa LSTM, se a˜ nade una capa oculta con la funci´ on de penalizaci´ on “ReLU” seguida de otra capa oculta con funci´ on de penalizaci´ on regularizadora para ajustar la capa de salida. Se ha a˜ nadido al modelo una capa de salida que utiliza la funci´ on softmax. Los modelos de clasificaci´ on multiclase suelen utilizar esta funci´ on. La estructura completa se muestra en la Figura 3. Figura 3. Modelo LSTM Se utiliz´ o el an´ alisis de entrop´ ıa cruzada binaria como funci´ on de p´ erdida, ya que se suele emplear en problemas de multiclasificaci´ on. El optimizador seleccionado fue Adam, un m´ etodo de descenso de gradiente estoc´ astico basado en la estimaci´ on adaptativa, muy utilizado en este tipo de an´ alisis. Para medir la tasa de ´ exito del modelo se utiliz´ o la precisi´ on como m´ etrica. El modelo se entren´ o proporcionando datos de entrada como matrices XeY,´ epocas (interacci´ on sobre la totalidad de XeYproporcionadas) como 100, tama˜ no de lote (n´ umero de muestras por actualizaci´ on de gradiente) como 200, y Xtest e Ytest para la prueba y para calcular la precisi´ on del modelo. V. RESULTADOS Esta secci´ on se divide en tres partes para explicar con m´ as precisi´ on los resultados de la investigaci´ on: la lista de las herramientas utilizadas y sus versiones, los resultados del modelo entrenado, la estructura de automatizaci´ on del m´ etodo propuesto, una prueba pr´ actica con muestras reales como entrada al modelo y una comparaci´ on con trabajos relacionados. B. Azevedo, R. Albuquerque, L. Villalba and L. Hernandez 496 Figura 4. Precisi´ on de Entrenamiento y Validaci´ on V-A. Herramientas y versiones Las herramientas y versiones utilizadas para construir el modelo LSTM, la estructura de automatizaci´ on y la herramienta de desmontaje se enumeran en la Tabla IV. Tabla IV HERRAMIENTAS Y VERSIONES UTILIZADAS EN ESTE TRABAJO Modelo LSTM Estructura de automatizaci´ on Herramienta binaria de Desensamblaje Python 3.10+ Docker 20.10.21 VS 2019 TensorFlow 2.12.0+ Python 3.10 MSVC 14.38.33130 Keras 2.9.0+ Tensorflow 2.15 Gensim 4.1.2+ Keras 2.15.0 Jupyter notebook 6.4.12+ Django 5.0.3 Objdump 2.4 Gensim 4.3.2 V-B. Resultados del modelo entrenado La principal m´ etrica utilizada para medir el modelo entrenado fue la precisi´ on. El proceso de entrenamiento alcanz´ o una precisi´ on del 91 %, y la tasa de p´ erdida, obtenida a partir del c´ alculo de la entrop´ ıa cruzada binaria, de alrededor de 0,3. La Figura 4 muestra la tasa de precisi´ on por ´ epoca, mientras que la Figura 5 muestra la tasa de p´ erdida por ´ epoca. Los resultados obtenidos mediante el entrenamiento de los modelos se aproximaron mucho a los resultados esperados por los validadores como se puede observar en la Figura 4 y la comparaci´ on de p´ erdidas del modelo entrenado y su validaci´ on en la Figura 5. Para comprender mejor los resultados del modelo construido, la figura presenta la matriz de confusi´ on del modelo entrenado. Las clases se basan en la informaci´ on de la Tabla III, y muestra el n´ umero de aciertos y errores teniendo en cuenta el n´ umero de clases en que se bas´ o el conjunto de datos. El resultado que presenta la matriz de confusi´ on es una escala de 0 a 5 en los ejes XeY, que representa los valores de malware especificados en la Tabla III. El valor de los bloques var´ ıa de 0 a 30, lo que significa el n´ umero de veces que se predijo que un malware pertenec´ ıa a la clase corregida o a otra. Por ejemplo, con X=0 e Y=0, se predijo que el malware Figura 5. Perdida de Entrenamiento y Validaci´ on Figura 6. Matriz de confusi´ on era un Downloader, y de hecho, lo era. Seg´ un esta m´ etrica, cuanto mayor sea el valor, mayor ser´ a la posibilidad de una predicci´ on correcta utilizando un conjunto de datos similar. Tras analizar los datos, se puede concluir que los miners y los spyware tienen m´ as probabilidades de ser detectados en comparaci´ on con un conjunto de datos similar. Por el contrario, el ransomware y los rootkits tienen la tasa de acierto m´ as baja. V-C. Estructura de automatizaci´ on Para automatizar el an´ alisis proporcionado por los modelos creados, incluyendo word2vec y LSTM, se cre´ o una estructura de contenedores en Docker. Se utiliz´ o el servidor web Django para crear un endpoint de API REST. La estructura se presenta en la Figura 7. Esta automatizaci´ on considera que la API desarrollada puede tomar un archivo binario en la estructura PE32 y someterlo a un proceso de desensamblado, utilizando objdump, para M´etodo para automatizar la clasificaci´on de malware PE32 usando Word2vec y LSTM 497 Figura 7. Estructura de automatizaci´ on extraer las funciones utilizadas para comunicarse con las DLL. A continuaci´ on, estas funciones se estructuran en un formato de matriz de cadenas y se traducen utilizando el mismo modelo word2vec utilizado para crear el modelo primario. A continuaci´ on, el framework carga el modelo LSTM creado, junto con su funci´ on de predicci´ on, que recibe la matriz num´ erica para comprobar con qu´ e estructura de malware se clasifica la matriz. Tras el an´ alisis, la aplicaci´ on responder´ a a la llamada a la API REST en formato JSON con el tipo de malware resultante. Figura 8. Ejemplo de solicitud de Postman a la API La estructura se puede levantar f´ acilmente con un comando Docker, y es posible categorizar los binarios al instante. La figura 8 muestra el uso de Postman para enviar un binario para su an´ alisis adjunt´ andolo al cuerpo de la petici´ on. Una vez validado el binario, la aplicaci´ on responde con la categor´ ıa m´ as adecuada. La Figura 9 muestra un ejemplo de la respuesta, que fue Ransomware. Figura 9. Ejemplo de respuesta a solicitud de postman desde la API V-D. Prueba pr´ actica con muestras reales Se envi´ o un conjunto de muestras de malware no utilizadas en el entrenamiento ni en las pruebas a trav´ es de la API REST para probar el proceso de categorizaci´ on automatizado. Los detalles del malware como hash, resultado esperado y resultado obtenido se pueden encontrar en la Tabla V. La herramienta acert´ o 3 de 6, con ocho opciones posibles. El porcentaje medio de aciertos fue del 50 % en esta peque˜ na prueba con datos precisos. Este resultado se considera bajo en t´ erminos de precisi´ on, pero es esencial tener en cuenta que la herramienta est´ a en fase de desarrollo y a´ un no est´ a lista para la producci´ on. Pero tambi´ en es importante que la herramienta se someta a una prueba pr´ actica en escenarios reales. Esta estructura f´ acil de usar viene con categorizaci´ on automatizada y se puede integrar perfectamente con la estructura Tabla V PRUEBAS REALIZADAS CON MALWARE REAL Hash Esperado Obtenido fe93d59439b3ac1df36215872d6daf16c6 8a38eba8bb05b892108d0a13ac4d7b downloader miner c199782b8aa80fa9f4bed0d2fa0b5befdf 8df070feb2acf2b967ae8752e04cab keylogger spyware ff6b9d9786c4505bd80d5156a083648e16 ec4a821d89d0fe1687080f3bed60be miner miner ffc338c0c7be278245747c53266b86517c 3fd3ccff8a243d9537ffc0afeb9d2c ransomware ransomware 000b2d3b52831632a410ec905de2e97499 f4f0fa867efdcab31194f3952b1d6f rootkit rootkit f43a19ef1e0e2d0b727f34629140e50f35 522269e8e094729a65a15c6188965f spyware downloader de verificaci´ on de pipelines a trav´ es de APIs bien conocidas. Puede ser un componente crucial de una soluci´ on de problemas del mundo real mediante el an´ alisis de archivos en estructura PE32 antes de ponerlos a disposici´ on [29] de los usuarios y para hacer pruebas din´ amicas de seguridad de aplicaciones (DAST) [30] an´ alisis. V-E. Comparaci´ on de trabajos relacionados Visweswaran et al. [23] analizaron archivos PE32 mediante aprendizaje profundo, que es el trabajo que m´ as se acerca a los resultados de esta investigaci´ on. Su modelo alcanz´ o una tasa de precisi´ on del 96%, mientras que nuestro modelo alcanz´ o el 91% en las primeras pruebas. Ellos utilizaron CNN, mientras que este trabajo utiliz´ o LSTM (una versi´ on mejorada), y su conjunto de datos era m´ as significativo que el incorporado en este trabajo, lo que repercuti´ o en el mapeo de patrones. Sin embargo, este trabajo utiliz´ o word2vec, lo que significa que tiene el mismo diccionario que el utilizado para crear el modelo. Esto permite a cualquier interesado utilizar el mismo proceso para verificar patrones de un nuevo binario analizado, mientras que el trabajo de Visweswaran et al. necesita reconstruir todo el proceso para verificar un patr´ on binario. Por lo tanto, es dif´ ıcil hacer posible un proceso espont´ aneo y automatizado. Consulte la Tabla VI para obtener una visi´ on general. Tabla VI PROPUESTA ACTUAL VS. TRABAJO DE VISWESWARAN Propuesta actual Trabajo de Visweswaran Algoritmo LSTM CNN Clasificaci´ on Multi-class Multi-class Precisi´ on 91 % 96 % Recuento de datos 1200 10000 Epoch 100 100 String para n´ umero Word2vec Tokenizer Reproducible Yes No VI. CONCLUSIONES Y TRABAJO FUTURO Bas´ andose en las caracter´ ısticas del m´ etodo propuesto, que tiene como objetivo acelerar la detecci´ on de malware en estructura PE32, es posible: a) automatizar las t´ ecnicas de desensamblado y utilizar su salida como entrada para automatizar el an´ alisis de malware; b) considerar el an´ alisis l´ exico con word2vec como una t´ ecnica prometedora con sus par´ ametros para realizar an´ alisis de malware ML; c) entender que el an´ alisis de aprendizaje profundo con LSTM ha logrado resultados significativos en la categorizaci´ on de malware. B. Azevedo, R. Albuquerque, L. Villalba and L. Hernandez 498 Como los resultados de la aplicaci´ on consideran pipelines seguras, la estructura de an´ alisis automatizado reci´ en construida funciona como un framework. Permite la combinaci´ on e integraci´ on con soluciones de categorizaci´ on de malware. Dispone de un formato de API bien conocido que permite una comunicaci´ on e integraci´ on accesibles con otras soluciones. La infraestructura desarrollada tambi´ en tiene el potencial de apoyar el an´ alisis en tiempo real de archivos en estructura PE32 en escenarios del mundo real, ayudar en pipelines complejos destinados a automatizar el proceso de despliegue, y puede ser muy bien utilizada en DevSecOps. Los resultados primarios tuvieron un bajo ´ ındice de ´ exito. Sin embargo, la propuesta de an´ alisis es prometedora. Como trabajo futuro, el siguiente paso ser´ ıa ampliar el conjunto de datos existente para mejorar la precisi´ on del modelo. Adem´ as, es necesario crear una nueva rama que primero categorice los binarios PE32 como maliciosos o no maliciosos utilizando un clasificador binario y, a continuaci´ on, se utilice el modelo actual para categorizar su tipo. Otra posible v´ ıa es construir una estructura de an´ alisis automatizado a partir del nuevo modelo de categorizaci´ on y aplicarlo en situaciones del mundo real, como pipelines de verificaci´ on, para integrarlo con el an´ alisis DAST y sandbox. VII. AGRADECIMIENTOS Este trabajo se ha realizado con los fondos del Plan de Recuperaci´ on, Transformaci´ on y Resiliencia, financiados por la Uni´ on Europea (Next Generation), a trav´ es de la C´ atedra “Ciberseguridad para la Innovaci´ on y la Protecci´ on Digital” INCIBE-UCM. This work was also supported by Horizon Europe Programme, as part of the project LAZARUS (https://lazarus-he.eu/) (Grant Agreement no. 101070303). The content of this article does not reflect the official opinion of the European Union. Responsibility for the information and views expressed therein lies entirely with the authors. REFERENCIAS [1] Virustotal, “Virus total statistics. available on: https://www.virustotal.com/gui/stats,” 2024. [2] M. Egele, T. Scholte, E. Kirda, and C. Kruegel, “A survey on automated dynamic malware-analysis techniques and tools,” ACM computing surveys (CSUR), vol. 44, no. 2, pp. 1–42, 2008. [3] F. Pagani, M. Dell’Amico, and D. Balzarotti, “Beyond precision and recall: understanding uses (and misuses) of similarity hashes in binary analysis,” in Proceedings of the Eighth ACM Conference on Data and Application Security and Privacy, 2018, pp. 354–365. [4] K. Yakdan, S. Dechand, E. Gerhards-Padilla, and M. Smith, “Helping johnny to analyze malware: A usability-optimized decompiler and malware analysis user study,” in 2016 IEEE Symposium on Security and Privacy (SP). IEEE, 2016, pp. 158–177. [5] S. Iqbal, A. Ullah, S. Adlan, and A. R. Soobhany, “Malware prediction using lstm networks,” in Proceedings of International Conference on Information Technology and Applications: ICITA 2021. Springer, 2022, pp. 583–604. [6] J. A. Morales, A. Al-Bataineh, S. Xu, and R. Sandhu, “Analyzing and exploiting network behaviors of malware,” in Security and Privacy in Communication Networks: 6th Iternational ICST Conference, Secure- Comm 2010, Singapore, September 7-9, 2010. Proceedings 6. Springer, 2010, pp. 20–34. [7] M. Pietrek, “An in-depth look into the win32 portable executable file format, part 2,” MSDN Magazine, March, 2002. [8] R. Tahir, “A study on malware and malware detection techniques,” International Journal of Education and Management Engineering, vol. 8, no. 2, p. 20, 2018. [9] C. Rossow, C. Dietrich, and H. Bos, “Large-scale analysis of malware downloaders,” in Detection of Intrusions and Malware, and Vulnerability Assessment: 9th International Conference, DIMVA 2012, Heraklion, Crete, Greece, July 26-27, 2012, Revised Selected Papers 9. Springer, 2013, pp. 42–61. [10] A. Singh, P. Choudhary et al., “Keylogger detection and prevention,” in Journal of Physics: Conference Series, vol. 2007, no. 1. IOP Publishing, 2021, p. 012005. [11] Z. Salehi, M. Ghiasi, and A. Sami, “A miner for malware detection based on api function calls and their arguments,” in The 16th CSI international symposium on artificial intelligence and signal processing (AISP 2012). IEEE, 2012, pp. 563–568. [12] S. Kim, J. Park, K. Lee, I. You, and K. Yim, “A brief survey on rootkit techniques in malicious codes.” J. Internet Serv. Inf. Secur., vol. 2, no. 3/4, pp. 134–147, 2012. [13] M. Egele, C. Kruegel, E. Kirda, H. Yin, and D. Song, “Dynamic spyware analysis,” in Proceedings of the 2007 USENIX Annual Technical Conference. Carnegie Mellon University, 2007. [14] A. Handler, An empirical study of semantic similarity in WordNet and Word2Vec. Columbia University, 2014. [15] T. Mikolov, I. Sutskever, K. Chen, G. S. Corrado, and J. Dean, “Distributed representations of words and phrases and their compositionality,” Advances in neural information processing systems, vol. 26, 2013. [16] X. Rong, “word2vec parameter learning explained,” arXiv preprint arXiv:1411.2738, 2014. [17] J. Heaton, “Ian goodfellow, yoshua bengio, and aaron courville: Deep learning: The mit press, 2016, 800 pp, isbn: 0262035618,” Genetic programming and evolvable machines, vol. 19, no. 1-2, pp. 305–307, 2018. [18] S. Hochreiter and J. Schmidhuber, “Long short-term memory,” Neural computation, vol. 9, no. 8, pp. 1735–1780, 1997. [19] F. A. Gers, J. Schmidhuber, and F. Cummins, “Learning to forget: Continual prediction with lstm,” Neural computation, vol. 12, no. 10, pp. 2451–2471, 2000. [20] Y. Dai, H. Li, Y. Qian, and X. Lu, “A malware classification method based on memory dump grayscale image,” Digital Investigation, vol. 27, pp. 30–37, 2018. [21] Y. J. Lee, S.-H. Choi, C. Kim, S.-H. Lim, and K.-W. Park, “Learning binary code with deep learning to detect software weakness,” in KSII the 9th international conference on internet (ICONI) 2017 symposium, 2017. [22] L. Wartschinski, “Detecting software vulnerabilities with deep learning,” Ph.D. dissertation, Master’s thesis, Humboldt University, Berlin, 2014. [23] N. Visweswaran, M. Jeevanantham, C. T. Kani, P. Deepalakshmi, and S. Sathiyandrakumar, “Automated pe32 threat classification using import table and deep neural networks,” in 2019 IEEE International Conference on Clean Energy and Energy Efficient Electronics Circuit for Sustainable Development (INCCES). IEEE, 2019, pp. 1–5. [24] Virushare, “virushare: opened malware share repository. available on: https://virusshare.com,” 2024. [25] Jovibor, “libpe: github library created by jovibor/libpe. available on: https://github.com/jovibor/libpe,” 2024. [26] K. Hahn and I. Register, “Robust static analysis of portable executable malware,” HTWK Leipzig, vol. 134, 2014. [27] R. Rehurek and P. Sojka, “Gensim – statistical semantics in python,” in NLP Centre, Faculty of Informatics, Masaryk University, Brno, Czech Republic, 2011. [Online]. Available: https://www.fi.muni.cz/usr/ sojka/posters/rehurek-sojka-scipy2011.pdf [28] F. Chollet, Deep learning with Python. Simon and Schuster, 2021. [29] N. Loi, C. Borile, and D. Ucci, “Towards an automated pipeline for detecting and classifying malware through machine learning,” arXiv preprint arXiv:2106.05625, 2021. [30] Y. Pan, “Interactive application security testing,” in 2019 International Conference on Smart Grid and Electrical Automation (ICSGEA). IEEE, 2019, pp. 558–561. M´etodo para automatizar la clasificaci´on de malware PE32 usando Word2vec y LSTM 499