Vous êtes sur la page 1sur 12

Algoritmos evolutivos y malware, evolucionan los "virus"?

(II)
En esta serie de artculos se realizar un repaso a la literatura acadmica en la que
se mezclan estos dos conceptos: malware y algoritmos evolutivos. Analizaremos de
forma crtica qu trabajos y artculos se han presentado en orden cronolgico
durante los ltimos aos, para comprobar si realmente tiene sentido utilizar
los algoritmos genticos para mejorar cualquier aspecto de la lucha contra el
malware, ya sea en deteccin, anlisis, prediccin Veremos un buen montn de
experimentos basado en la algoritmia evolutiva, que a su vez tambin resulta
apasionante.
Desde la dcada pasada, los algoritmos evolutivos y la programacin gentica han
irrumpido con fuerza en la ingeniera informtica. En una frase, los algoritmos
evolutivos pretenden encontrar soluciones aplicando tcnicas de cambio y mutacin
en una serie de planteamientos y comprobar si estos satisfacen mejor el problema.
Si es as, estos mejores candidatos siguen modificndose de forma inteligente o
aleatoria para dar con el candidato ideal que soluciona el problema. Pensemos en
candidatos como vectores, por ejemplo. Esto permitira solucionar problemas de
forma rpida en vez de tener que usar la fuerza bruta recorriendo todas las
posibilidades de un vector. Es una explicacin burda, pero lo cierto es que los
algoritmos genticos tienen gran potencial. Tanto, que cuando se popularizaron
hubo un momento de euforia en el que muchos pensaron que resolveran ciertos
problemas intratables hasta el momento, hasta que se demostr que al final no
haba "free lunch" y que realmente no podan llegar a batir en todas las
circunstancias a la bsqueda ciega.

Estructura
tpica
de
un
algoritmo
evolutivo.
Fuente:
http://www.scielo.org.ve/scielo.php?script=sci_arttext&pid=S131648212006000400002

Por su versatilidad son usados en un amplio rango de campos pero quizs el anlisis
del malware podra prestarse especialmente a ser mejorado con este tipo de
algoritmos, por varias razones:

Clasificar y detectar el malware de forma eficiente es un grave problema de


la informtica en general. Desde mediados de la dcada pasada, ya no solo
en entornos de escritorio sino tambin en dispositivos mviles, entornos
industriales y como arma de la llamada "ciberguerra" en el que instituciones
gubernamentales lo utilizan como mtodo de espionaje o control.
Los modelos tradicionalmente utilizados para detectar y catalogar malware
han sido las "firmas" creadas por motores antivirus. Aunque efectivas en
cierto grado con el malware comn, resultan hoy en da eludibles por los
atacantes desde el punto de vista tcnico. El malware con fines econmicos
o logsticos pasa fcilmente desapercibido para los motores, puesto que sus
creadores disponen de las herramientas necesarias (entre ellas el propio
antivirus) para modificarlos y realizar diferentes versiones que no sean
detectadas.
La creacin de malware ha crecido sustancialmente, tanto en nmero como
en sofisticacin y presencia, por lo que se manejan ya cientos millones de
registros y muestras que catalogar y detectar. Esto dificulta el trabajo de los
propios motores, que crean firmas ms genricas (y menos efectivas)
para poder abarcar el mximo malware comn.

En un principio, el malware (tradicionalmente denominado "virus"), parece


especialmente propenso a ser estudiado por algoritmos evolutivos, debido a
que tradicionalmente se ha mostrado como una especie de organismo
parasitario capaz de reproducirse y evolucionar, aunque ese modelo de malware
no se utilice desde mediados de la dcada pasada. Estos factores hacen pensar
que los algoritmos evolutivos en particular (especializados en resolver problemas
muy complejos, con gran cantidad de datos y caractersticas) y el "machine learning"
en general pueden dar la posibilidad de ofrecer una solucin interesante en el
campo del malware, bien detectando, evaluando, clasificando o incluso prediciendo
sus
capacidades
y
evoluciones.
Pero...
es
cierto?
Conceptos

previos

En el mundo del malware, el sistema de firmas tradicional se utiliza para la


clasificacin y deteccin en general, y se basa en caractersticas concretas del
binario que permitan identificarlo. Con ellas, si son extrapolables y significativas, se
podra detectar ms malware (y nuevas versiones) e intentar as clasificar muestras
previamente desconocidas de forma ms eficaz. El sistema de firmas se ve
lastrado por depender de los recursos del laboratorio responsable del motor

antivirus, que las genera de forma ms o menos automatizada (a veces con


intervencin humana) y de manera reactiva (ante nuevas muestras que las eluden,
se necesita estudiar cmo lo han conseguido para poder recrear las nuevas firmas).
Pero si se eligen los atributos correctos al margen de las firmas ms estticas (una
clasificacin atendiendo a caractersticas ms adecuadas), se podra realizar la
clasificacin de forma automtica y (en teora) ms eficaz que las firmas (que
habitualmente se restringen a cadenas concretas o combinacin de cdigo nico
encontrados en los binarios). Adems, si bien las firmas suelen ser eludidas por los
creadores de malware variando el cdigo concreto que detecta el motor antivirus
pero manteniendo la funcionalidad del malware, al tomar otras caractersticas
basadas en funcionalidad u otros parmetros como referencia, se hace ms
complejo para un atacante poder evitarlas y pasar as inadvertido.
En los artculos y experimentos que vamos a analizar se tratan varios casos de
clasificacin de binarios en malware o goodware. En ellos, el xito se suele medir
por el "accuracy" alcanzado en la clasificacin. Es un dato que refleja el xito de
la clasificacin (malware o goodware) pero que adems aglutina los falsos positivos
(goodware errneamente clasificado como malware), falsos negativos (malware
errneamente clasificado como goodware), verdaderos negativos (goodware
clasificado satisfactoriamente como goodware), y verdaderos positivos (malware
clasificado satisfactoriamente como malware). Habitualmente se comparan los
resultados contra la deteccin de motores antivirus u otros clasificadores para
comprobar
su
eficacia.
Debido a la existencia de un trabajo de recopilacin previo similar realizado en 2009
por Christie Williams (aunque no con carcter crtico), a partir del siguiente artculo
nos centraremos principalmente en cmo ha evolucionado el rea desde entonces,
con un exhaustivo repaso a la literatura acadmica.
En esta serie de artculos se realizar un repaso a la literatura acadmica en la que
se mezclan estos dos conceptos: malware y algoritmos evolutivos. Analizaremos
de forma crtica qu trabajos y artculos se han presentado en orden cronolgico
durante los ltimos aos, para comprobar si realmente tiene sentido utilizar los
algoritmos genticos para mejorar cualquier aspecto de la lucha contra el malware,
ya sea en deteccin, anlisis, prediccin Veremos un buen montn de
experimentos basado en la algoritmia evolutiva, que a su vez tambin resulta
apasionante.
A finales de 2009, se realiza un trabajo similar recopilando hasta esa fecha los
artculos presentados que reunan estas caractersticas. En l, se analizan
fundamentalmente cuatro trabajos que a su vez pasamos a describir brevemente,
enfoncndolos
con
un
carcter
ms
crtico.
A

retrovirus

inspired

algorithm

for

virus

detection

&

optimization

Este estudio de 2006 juega con la idea de hacer evolucionar las firmas del malware
para crear "anticuerpos". El concepto es el de usar algoritmos genticos no tanto

para afinar el clasificador (que como veremos ms adelante sera el uso habitual)
sino para hacer que el clasificador elija mejor las reglas que afinen su
funcionamiento.
Al margen de su utilidad real para detectar malware, lo interesante es cmo se evita
que el algoritmo gentico quede atascado en ptimos locales, aadiendo "memoria",
esto es, aadiendo a los registros del algoritmo cierta informacin previa. El fitness
se calcula midiendo la distancia entre las cadenas que representan las firmas,
lo que supone ser muy optimista con respecto la frmula con la que el malware
se clasifica con firmas en general... No se ofrecen estadsticas reales de mejora
o uso comparable con otros sistemas de firmas o sistemas de deteccin, lo que
ofrece
una
idea
de
su
utilidad
real.
De alguna manera, este artculo se complementara en 2012 con un estudio y un
programa creado por Carlos Nasillo especficamente para evolucionar firmas
concretas de malware a travs de algoritmos evolutivos y comparando
literalmente las cadenas binarias de firmas de malware. Por el tipo de muestras
utilizadas, los resultados obtenidos, el coste computacional, el enfoque utilizado y
como el propio autor reconoce en el artculo que acompaa al software, no se
obtiene mejora concreta o apreciable en la deteccin con este mtodo. Algo
que se intuye desde el planteamiento con el uso de firmas.
In-execution

Malware

Analysis

and

Detection

scheme

(IMAD)

En este estudio de 2009 se presenta la herramienta In-execution Malware Analysis


and Detection scheme (IMAD). Se trata de una herramienta que pretende clasificar
si un archivo binario para sistemas UNIX es malware o no. Las caractersticas de
cada fichero se calculan extrayendo las llamadas a funciones de los binarios y
agrupndolos en "n-grams". En resumen, los n-grams (que se usarn en estudios
sucesivos) son subsecuencias de n "tems" (en este caso conjuntos de llamadas a
sistema) que se sobreponen unos a otros. Esta tcnica es habitual en el estudio del
malware, pues permite conocer qu conjunto de cadenas es lo suficientemente
representativo como para suponer una marca" que defina otros archivos similares
y
por
tanto,
permite
clasificar.
El papel de los algoritmos evolutivos aqu es de apoyo cuando el resto de
clasificadores no se pronuncia, y conocer as qu "peso" tiene cada parmetro
(n-gram) para definir el malware y "detectar" as el conjunto de llamadas que
lo
hace
sospechoso.
En los experimentos, se utilizan 100 muestras de malware y 180 de "goodware".
A todas luces, una muestra insuficiente que invalidara las conclusiones de
cualquier anlisis. La clasificacin se compara con algoritmos de clasificacin
como Support Vector Machine, C4.5, Bayesianos y RIPPER. IMAD, apoyndose en
algoritmos genticos, obtiene unos resultados de xito interesantes (no llegan al
90% de "accuracy"), aunque llama la atencin que la optimizacin introducida con
los algoritmos genticos permite reducir la tasa de falsos positivos al 0% en algunos

casos frente al resto. Aunque reducir los falsos positivos resulta especialmente
atractivo, como se ha mencionado, con 100 muestras de malware los resultados
de este informe en concreto no son relevantes.

Evolvable

malware

En este artculo se utilizan algoritmos genticos para "evolucionar el malware",


representado como una serie de caractersticas de comportamiento. Una vez
"evolucionado" (modificando o alterando parmetros, como por ejemplo el
conjunto de acciones maliciosas que realiza) se genera el cdigo mquina que
lo representa y se comprueba de nuevo contra los motores antivirus. Durante la
evolucin (intercambiando funcionalidades), cuanto ms se parecan los hijos al
conjunto
de
malware
test,
mejor
era
su
fitness.
Dadas las restricciones intrnsecas del experimento (que busca funcionalidades
concretas dentro del malware), se redujo al uso de una variante de Beagle. Se
trata de un malware de 2004 muy polifactico (realizaba muchas acciones nocivas
diferentes sobre el sistema) y del que se produjeron infinidad de variantes. Se
convirti en paradigma de la nueva ola de malware con fines econmicos nacida en
2004, creada de forma profesional y muy modular. En este estudio se utilizan los
algoritmos genticos para generar de una manera controlada nuevos individuos,
representados como un conjunto de funcionalidades. El concepto resulta
interesante.
On the Appropriateness of Evolutionary Rule Learning Algorithms for Malware

Detection
Uno de los trabajos ms representativos quizs, se encuentra en este documento
donde se experimenta con el uso de algoritmos evolutivos y no evolutivos de
aprendizaje de reglas para la deteccin de malware. Se comparan los clasificadores
evolutivos XCS, UCS, GAssist-ADI, GAssist-Intervalar y SLAVE contra los no
evolutivos RIPPER, SLIPPER, PART, C4.5 y RIONA (todos presentes en el
software
KEEL.
No solo se evala su "accuracy", sino tambin el nmero de reglas generadas, la
comprensibilidad de las reglas (aunque resulte subjetivo, se pretende evaluar qu
reglas resultaran tiles para un humano) y sobre todo, el tiempo necesario para los
clculos. La conclusin es muy interesante. Si bien todos los algoritmos se
mueven en entornos aceptables por encima del 99% de precisin, es clara la
diferencia: los no evolutivos son ms precisos. De entre los evolutivos, GAssistADI y SLAVE tienen la mejor puntuacin (que no supera a los no evolutivos), pero
su tiempo de proceso los hace inutilizables para ofrecer una respuesta en tiempo
real. UCS es el nico que funciona con mejores tiempos, pero a costa de una
precisin menor. En este estudio destaca el uso de 11.786 ejecutables para las
pruebas de los que se extraen estticamente 189 funcionalidades propias de
los ejecutables (desde la versin del compilador, pasando por su timestamp
a su tamao). La conclusin final es que los algoritmos de aprendizaje evolutivos
no mejoran la deteccin ni son usables en tiempo real.

Veremos en la siguiente entrega, qu ha ocurrido desde 2009 en este campo, y qu


otras investigaciones se han publicado en la literatura acadmica.

En esta serie de artculos se realizar un repaso a la literatura acadmica en la que


se mezclan estos dos conceptos: malware y algoritmos evolutivos. Analizaremos de
forma crtica qu trabajos y artculos se han presentado en orden cronolgico

durante los ltimos aos, para comprobar si realmente tiene sentido utilizar los
algoritmos genticos para mejorar cualquier aspecto de la lucha contra el malware,
ya sea en deteccin, anlisis, prediccin Veremos un buen montn de
experimentos basado en la algoritmia evolutiva, que a su vez tambin resulta
apasionante.

Desde la ltima recopilacin de 2009, se han vuelto a realizar diferentes


experimentos que mezclan algoritmos evolutivos como herramienta para mejorar de
algn modo la deteccin y clasificacin de malware. Mostramos a continuacin un
resumen con espritu crtico de nueve artculos acadmicos relativos a la materia,
publicados todos de 2010 en adelante y en orden cronolgico.

Malware Detection based on Dependency Graph using Hybrid Genetic Algorithm

Keehyung Kim y Byung-Ro Moon presentan en 2010 un mecanismo de deteccin


de malware de script analizando los grafos de dependencia. La idea es modelizar el
grafo de dependencia del malware (fundamentalmente creado en Visual Basic
Script), y transformar el problema de deteccin en el de encontrar isomorfismos
entre subgrafos de distintas variantes. As, aunque el malware mute (modifique
cdigo con el fin especfico de eludir una firma concreta), si mantiene la esencia de
su estructura (algo necesario para garantizar su funcionalidad), podra ser detectado
aunque el creador se esfuerce en eliminar su "firma".

Lo interesante del experimento es resolver el problema de mximo isomorfismo


entre grafos. Dos grafos lo son si se encuentra una biyeccin entre vrtices que
preserva la adyacencia entre nodos. Se desconoce un algoritmo ptimo (sin recurrir
a la fuerza bruta de comprobar las n! biyecciones de nodos). As que se recurre a
algoritmos genticos para solucionarlo en tiempo razonable.

La eleccin de malware de script permite disponer de su cdigo tal y como fue


escrito por el atacante. En el estudio se trata, calcula y reduce el grafo de cada script
(en el que cada nodo es una lnea de cdigo). Este se compara entre un candidato
a malware, calculando su mximo isomorfismo. Si sobrepasa un umbral, se pasa a
un algoritmo gentico que intentar clasificarlo como malware o no. El algoritmo
utiliza una representacin lineal de los vrtices para trabajar. Como funcin de
fitness, se evala la diferencia entre aristas. Una diferencia de cero, denotara
que un grafo es un completo subgrafo de otro, y por tanto a menor diferencia,
mejor fitness (se ha encontrado un programa que, aunque "disfrazado" sigue el
mismo flujo). Para elegir a candidatos se utiliza la ruleta y para la mutacin, se muta
con probabilidad 0.2 el intercambiando genes (que representan la posicin de la
arista en la disposicin). Al margen del algoritmo gentico, se utilizan dos
aproximaciones heursticas para optimizacin local. La primera intercambia aristas
al azar. La segunda simplemente reorganiza un vrtice insertndolo en otra
posicin.
En los experimentos usan la heurstica (ms rpida) como parapeto antes del

algoritmo gentico, obteniendo un buen resultado con ella simplemente. Para


contrastar la eficacia de su sistema, la habitual comparacin contra los antivirus
sugiere que el algoritmo mejora el ratio de deteccin con respecto a la mayora
de
motores.
El estudio no resulta demasiado interesante desde el punto de vista de la
deteccin del malware en s, tal y como est enfocado. Por diversas razones:

Para que los resultados de uso de simple heurstica sean alcanzados por el
algoritmo gentico, se utilizan 2000 generaciones como criterio de
parada, lo que supone un coste computacional mucho mayor. No se ofrecen
comparativas de tiempo al respecto en el artculo, pero se menciona que el
coste de GA puede ser prohibitivo para sistemas que demanden una rpida
respuesta. De hecho, en las propias conclusiones menciona que quizs
podra utilizarse este mecanismo ms lento para situaciones que no
demanden una respuesta tan rpida, como la deteccin de copia de software
en general.
El uso en malware de script resulta en cierta manera ingenuo. Las muestras
recogidas son muy simples (5 muestras), con cambios muy sencillos
en su poliformismo (18 variantes en total). Ms all de los resultados, lo
ms interesante del estudio resulta la adaptacin del software de script a
grafos, el trabajo de su reduccin y comparacin buscando el isomorfismo.

Optimizing Decision Tree in Malware Classification System by using Genetic


Algorithm
En este artculo, se utiliza un algoritmo gentico como sistema de aprendizaje. En
el estudio se intenta no tanto detectar malware, sino clasificar dentro de cuatro
clases: Si la muestra estudiada ataca a los datos, aplicaciones, sistema o red. Lo
llaman
"Anti-Malware
System
Classifier".
Se utilizan tanto rboles de decisin como un algoritmo gentico para comparar
resultados. La metodologa consiste en clasificar las muestras aleatoriamente
dentro de los cuatro grupos y calcular el fitness con la media de los pesos de cada
individuo en el grupo. Se usan tcnicas estndar para la mutacin y cruce. De un
total de mil ejemplos, se intentan clasificar 200, tomando 20 comportamientos
sospechosos (analizados tras la ejecucin en una mquina virtual) como base
de caractersticas para su clasificacin. Los resultados globales mejoran (tras
pasar por el algoritmo gentico de clasificacin) los resultados del rbol de decisin.
Este documento se complementa con la descripcin del framework creado para
poner en prctica los experimentos, y descrito (aunque de manera muy somera) en
"A Framework for Optimizing Malware Classification by Using Genetic Algorithm" de
2011. El artculo resulta pobre en la descripcin de detalles. La clasificacin
mejora con respecto a los rboles de decisin, pero solo para cuatro grupos

y muy levemente. En el mejor de los casos se llega al 97% de precisin, con una
tasa de falsos positivos excesivamente alta.

Adems, la clasificacin del malware de esta forma (basada en qu ataca) no resulta


tan
interesante
como
la
deteccin
en
s
misma.
Adaptive rule-based malware detection employing learning classifier systems
Se trata de una tesis en la que se analizan y experimenta con diferentes tcnicas
para la deteccin de malware basadas en rboles de decisin (usando el algoritmo
C4.5) y LCS (Learning classifiying system) basados en algoritmos evolutivos
(usando a su vez una variante de XCS para definir su fitness). En los algoritmos
LCS las reglas son la poblacin del algoritmo, y se centra en definir el mejor
clasificador en ese conjunto de reglas. En cierta manera, un trabajo mucho ms
elaborado que los anteriores por su extensin, complejidad, minuciosidad,

nmero de muestras empelados e intencin especfica de mejora. Compara el


rendimiento del LCS (una adaptacin propia de XCS) con diferentes mtodos de
inicializacin, poblacin, etc. La caracterizacin de las muestras (como es habitual)
viene del estudio esttico de funcionalidades propias de los archivos ejecutables.
Aqu, son interesantes las siguientes conclusiones:

LCS mejora la generalizacin con respecto a C4.5, y detecta mejor


malware previamente no visto.
LCS no sufre tanto del problema de lmite de dimensionalidad que afecta a
C4.5

Para los diferentes experimentos, LCS se inicializa con tres mtodos diferentes:
aleatorio, "covering" (se van creando reglas por cada fichero que llega y no queda
clasificado) y la inicializacin con C4.5, que parte de un conjunto de reglas ya
generadas con ese algoritmo y mejoradas usando la funcin especfica. Luego se

usa

C4.5

de

nuevo

como

base

comparativa.

Sin embargo, el estudio parece basarse en unos datos muy pobres y por tanto
no puede tomarse como representativo: todo el malware usado proviene de la
familia Poison Ivy. Esto es el cliente de un conocido troyano y por tanto sin
diversidad. Sera comparable a crear distinto malware (en el sentido de un fichero
con hash diferente) desde un mismo programa. Posee la capacidad de mutar, pero
su funcionalidad es fundamentalmente la misma con unas caractersticas concretas
que lo definen y que por tanto, ya usan los motores antivirus como firmas de los
antivirus para detectarlo eficazmente. Aunque no se compara especficamente
contra sistemas antivirus, es ms que probable que los motores consiguieran
resultados ms que aceptables ya con sus sistemas de firmas. Adems, en el
estudio no se habla del tiempo necesario para la creacin de reglas, que puede ser
de nuevo un impedimento para su uso en tiempo real.

Vous aimerez peut-être aussi