Académique Documents
Professionnel Documents
Culture Documents
(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:
previos
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)
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
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.
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.
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.
y muy levemente. En el mejor de los casos se llega al 97% de precisin, con una
tasa de falsos positivos excesivamente alta.
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.