Análisis de malware mediante herramientas Perl

Si bien es cierto que la mejor manera de analizar el comportamiento de un troyano o muestra cualquiera de malware es ejecutarlo en un entorno virtualizado y ver qué hace el especimen, hay otras maneras de analizar malware.

La primera solución es bien sencilla. Te bajas un VMware, instalas un sistema operativo (Windows, ya que es la plataforma para la que se genera el 99% del malware), te infectas (abriendo ese adjunto al correo que nunca sueles abrir) y observas qué acciones realiza el bicho, especialmente, controlando tu tráfico, para ver si el especimen trata de bajarse algún componente de un FTP o similar. Es frecuente cargar páginas de bancos online con y sin infectarse, para ver si el troyano inserta campos adicionales que no debieran ser requeridos a los clientes.

Existen muchas herramientas para analizar muestras y ninguna de ellas proporciona toda la información deseable al hilo de una pieza de malware en particular. Se trata de someter a la muestra a diferentes análisis, y con todas esas pruebas, emitir un informe consistente. La gran mayoría de las veces bastará con reproducir la muestra en un entorno virtual, pero muchas veces, hay que profundizar más.

Una de esas muchas herramientas complementarias es el SYS Analysis Toolkit. Este sencillo conjunto de herramientas contienen un módulo base Perl llamado SisDump, que está acompañado de tres scripts en Perl que pueden ser útiles para analizar muestras:

* DumpSIS , para la obtención de información y el volcado de cabeceras.
* SIShash, para mostrar hashes MD5 y SHA1 de todos los ficheros del fichero SIS.
* SISscan, un escáner de malware basado en hashes.

Como complemento, no está mal, aunque los analistas frecuentemente prefieren investigar muestras con herramientas del tipo Sysinternals e IDA Pro, programas que, todo sea dicho, ofrecen un rendimiento muy interesante para el análisis de procesos en sistemas Windows.

Lo vi en el blog de José Nazario, donde también hay un interesante paper que habla de la respuesta ante gusanos 0day, mediante sistemas distribuídos actuando cooperativamente. Un planteamiento realmente interesante, que podéis ojear en Robust Reactions to Potential Day-Zero Worms through Cooperation and Validation. Cito un fragmento:

In this paper we begin a preliminary investigation into the complex tradeoffs in such systems between communication costs, computation overhead, accuracy of the local tests, estimation of viral virulence, and the fraction of the network infected before the attack crests. We evaluate the effectiveness of different system configurations in various simulations. Our experiments show that distributed algorithms are better able to balance effectiveness against viruses with reduced cost in computation and communication when faced with false alarms. Furthermore, cooperative, distributed systems seem more robust against malicious participants in the immunization system than earlier cooperative but non-distributed approaches.

Saludos :)