Algoritmos evolutivos y malware, ¿evolucionan los "virus"? (IV)

lunes, 12 de diciembre de 2016

En esta serie de artículos se realizará un repaso a la literatura académica en la que se mezclan estos dos conceptos: malware y algoritmos evolutivos. Analizaremos de forma crítica qué trabajos y artículos se han presentado en orden cronológico durante los últimos años, para comprobar si realmente tiene sentido utilizar los algoritmos genéticos para mejorar cualquier aspecto de la lucha contra el malware, ya sea en detección, análisis, predicción… Veremos un buen montón de experimentos basado en la algoritmia evolutiva, que a su vez también resulta apasionante.

Continuamos mostrando un resumen con espíritu crítico de nueve artículos académicos relativos a la materia, publicados todos de 2010 en adelante y en orden cronológico.

Specialized Genetic Algorithm Based Simulation Tool Designed For Malware Evolution Forecasting

En este artículo se modela un hipotético malware para Android basado en sus estrategias de difusión y otras características. Se utiliza un algoritmo genético para evolucionar las estrategias y se concluye que el cromosoma con mejor fitness (mejor capacidad de transmisión) podría ser el siguiente:



El estudio resulta confuso, puesto que está basado en un estudio supuestamente anterior al que no se ha tenido acceso y muestran una herramienta con la que se han realizado experimentos y que no parece pública. En cualquier caso, teorizar sobre la evolución del malware puede resultar complicado. Actualmente, y con la perspectiva del tiempo, se puede comprobar que los métodos de difusión del malware móvil no están asociados al correo, BlueTooth o MMS, como predecía el estudio.

Información codificada como gen en el estudio
Support Vector Machine Integrated with Game-Theoretic Approach and Genetic Algorithm for the Detection and Classification of Malware

En esta investigación se utilizan opcodes, bytes y n-grams para representar binarios. Los opcodes son la representación nemotécnica del lenguaje máquina (en este caso sin sus parámetros). Estos opcodes se representan como n-grams. Para construir los n-grams, se extraen los opcodes únicos y se estudia su frecuencia para construir un vector. Así, cada binario queda traducido en dos vectores con sus bytes y n-grams únicos.

De estos vectores se extrae la funcionalidad esencial y se construye un clasificador usando Support Vector Machines como algoritmo. La combinación del clasificador se aborda como una tarea de toma de decisión que se resuelve con teoría de juegos para predecir la clase o sus probabilidades. En resumen, el algoritmo genético se utiliza para seleccionar las funcionalidades esenciales debido a la alta dimensionalidad del problema (los vectores, que son binarios según contengan una característica o no, son muy extensos), SVM como clasificador y finalmente una solución a la teoría de "Zero-sum game" para combinar los clasificadores.

Para este estudio, la función de fitness se toma como la precisión de clasificación. Así, tras seleccionar la característica más esencial gracias al algoritmo genético (que maximiza la clasificación), se convierte el vector en un problema de juegos (zero-sum game), convirtiéndolo en una competición de clases. En este experimento se introduce una variación en el algoritmo para el caso de que no haya solución al juego.

Resultados de la comparativa de clasificación del estudio

Se utilizan modelos de 1-gram y 2-gram. En los casos de 2-gram, es cuando se usa algoritmia genética para reducir la dimensionalidad a menos de 1000. Finalmente se compara el propio algoritmo construido (llamado ZSGSVM) con otros que han usado otras técnicas de reducción de dimensionalidad. Los porcentajes de clasificación encontrados, tanto con opcodes como con bytes son muy similares, y funciona, como mucho, igual que otras combinaciones. Los propios autores reconocen que el cálculo por algoritmo genético lleva bastante tiempo. Por tanto, aunque no se menciona, parece que su uso no aporta nada relevante, puesto que como se muestra en la tabla, se obtienen resultados similares sin necesidad de usar algoritmos genéticos.

Evolving Computational Intelligence System for Malware Detection

Este estudio pretende detectar, con los mínimos recursos, si un archivo ha sido empaquetado para su ejecución. Esta es una técnica habitual entre los creadores de malware, con la ´única intención de dificultar su análisis manual o dinámico. Desarrollan un sistema llamado Evolving Computational Intelligence System for Malware Detection (ECISMD), que en realidad se trata de un sistema de clasificaci´on utilizando Evolving Spiking Neural Networks (eSNN) para detectar si está empaquetado por un lado, y por el otro un sistema llamado Evolving Classification Function (ECF basado en “fuzzy clustering") optimizado a través de algoritmos genéticos.


Esquema general del estudio

En este caso, tanto el modelo ECF como el algoritmo evolutivo forman parte de un software desarrollado por los propios investigadores. Los genes se van convirtiendo en la entrada al ECF, y este da salida a diferentes clases. Tras entrenarlo, se dispondría de las reglas necesarias para diferenciar entre empaquetado y no. La funcionalidad que se extrae de los candidatos se consigue con un análisis estático: número y nombre de secciones, entropía del código, etc. En este caso, solo se utiliza para, de forma muy rápida, detectar si se trata de un fichero empaquetado y sobre ellos, si es malware. Una vez desempaquetado se usa el ECF mejorado con algoritmos genéticos para detectar si es malware o no. El tiempo de clasificación se reduce considerablemente hasta los 0.00016 segundos por ejecutable.

En la próxima entrega, estudiaremos las últimas tres investigaciones analizadas, antes de pasar a las conclusiones generales.

* Algoritmos evolutivos y malware, ¿evolucionan los "virus"? (I)
* Algoritmos evolutivos y malware, ¿evolucionan los "virus"? (II)
* Algoritmos evolutivos y malware, ¿evolucionan los "virus"? (III) 
* Algoritmos evolutivos y malware, ¿evolucionan los "virus"? (IV) 




Sergio de los Santos
ssantos@11paths.com

No hay comentarios:

Publicar un comentario