Ir al contenido principal

Servicios online para análisis de Malware

El análisis de un nuevo malware es siempre una tarea que requiere muchos recursos, tanto en tiempo como en conocimiento, lo que al final se traduce en dinero. Además, los buenos analistas de malware son un bien escaso. Las Empresas desarrolladoras de antivirus hacen una inversión muy considerable cuando se enfrenta a nuevos espécimenes de virus, por lo que se está investigando bastante en el campo del análisis automático de programas maliciosos. Está lejos el día en que un programa pueda igualar a un buen profesional, y además, personalmente, me parece una pena dejarle a una máquina el placer de resolver un desafío tan gratificante como es comprender el funcionamiento de un malware a pesar de los obstáculos que pone el programador que lo ha ideado.
En cualquier caso, hay mucho malware nuevo cada día, y algunos son simplemente evoluciones de otros, así que vale la pena centrarse en los verdaderamente interesantes y usar analizadores automáticos para los demás. Existen diferentes alternativas de software, algunas gratuitas, para ayudarnos a destripar virus, y de ellas hablaremos otro día porque hoy quiero hablaros de los servicios de análisis online. Os presentaré algunos y veremos qué tal se comportan utilizando el virus win32.Alina.



Existen webs, como la conocida VirusTotal que son capaces de analizar archivos y cotejarlos con las bases de datos de diferentes antivirus para ver si el archivo es o no peligroso. Las webs que os presentaré a continuación van un paso más allá y realizan un verdadero análisis estático o dinámico del archivo. Como veremos, algunas profundizan más y otras realizan un trabajo más superficial.


ViCheck.ca
Además de ejecutables, ViCheck.ca puede examinar archivos en formato MS Office Word, Powerpoint, Excel, Access o Adobe PDF. Permite la carga de varios archivos a la vez. Lo único que tendremos que poner en el formulario, además del archivo que queremos examinar, es un correo electrónico donde se enviará el resultado del análisis. El resultado puede verse aquí. Como podemos observar, el análisis no es demasiado bueno en este caso. Habría que analizar cómo se comporta con otros espécimenes de malware.


Joe Security
Es una empresa suiza con bastante experiencia en este campo, y dispone de herramientas comerciales bastante interesantes. Además de un análisis dinámico, su software realiza análisis estático en busca de "códigos dormidos", es decir, partes del código que sólo se ejecutaran bajo ciertas condiciones (por ejemplo, malware dirigido a un objetivo concreto) y por lo tanto, son difíciles de detectar en un análisis dinámico normal. Además, es multiplataforma y es capaz de analizar incluso ficheros .apk de Android. Para este artículo he probado con analizador de ficheros genérico. Podemos ver aquí el resultado. La verdad es que el report generado es impresionante. Mucho detalle y bastante información. Obviamente, la versión de pago nos ofrece más datos.


Eureka!
Realiza análisis estadístico de bigramas para el desempaquetado del binario y trazado de ejecución. El resultado se puede ver aquí. Eureka! nos permite descargar el ejecutable desempaquetado por si queremos analizarlo, y nos permite examinar el desensamblado del ejecutable así como el diagrama de flujo de ejecución del mismo.


Anubis
Permite subir archivos ejecutables de Windows y .apk de Android. El resultado del análisis puede verse aquí. Tras finalizar, Anubis nos permite descargar el análisis en varios formatos, incluyendo HTML, XML o PDF, y además, podemos descargar el fichero .pcap con el tráfico generado por el malware. El informe es bastante completo y nos muestra gran cantidad de información sobre cómo interacciona el virus con el registro de Windows, el sistema de archivos, la red, llamadas al sistema, etc.


Hemos visto cuatro opciones para analizar malware online. Por supuesto hay otras, pero estas son una buena muestra de que podemos comenzar a analizar archivos maliciosos sin necesidad de montar complicados laboratorios o invertir en software especializado.
Si queremos hacer un trabajo más serio, será necesario montar un laboratorio propio y usar software más especifico, pero de eso ya os hablaré en otro artículo.

Comentarios

Entradas populares de este blog

Criptografía en Python con PyCrypto

A la hora de cifrar información con Python, tenemos algunas opciones, pero una de las más fiables es la librería criptográfica PyCrypto, que soporta funciones para cifrado por bloques, cifrado por flujo y cálculo de hash. Además incorpora sus propios generadores de números aleatorios. Seguidamente os presento algunas de sus características y también como se usa.


Regresión lineal y descenso de gradiente con Python

En machine learning, el objetivo principal es encontrar un modelo que explique el comportamiento de un sistema (en el amplio sentido de la palabra). A partir de unos datos de entrenamiento, un sistema de aprendizaje automático ha de ser capaz de inferir un modelo capaz de explicar, al menos en su mayoría, los efectos observados. Pero también aplicar ese aprendizaje. Por ejemplo, un sistema de machine learning muy lucrativo para las empresas anunciantes es aquél que dado un perfil de usuario (datos de entrada A), sea capaz de predecir si pinchará o no (salida B) sobre un anuncio publicitario de, por ejemplo, comida para gatos. No es sencillo crear un modelo capaz de predecir el comportamiento del usuario (o sí), pero en todo caso, existen diferentes técnicas que nos permiten abordar el problema. En el caso del ejemplo que acabamos de ver, el modelo debería ser capaz de clasificar a los usuarios en dos clases diferentes, los que pulsarán y los que no pulsarán el anuncio de comida de ga…

Desbordamiento de enteros (Integer Overflow)

Ya os he hablado en este blog de posibles problemas potenciales que se pueden dar en los programas y que son susceptibles de ser explotados para hacer que dichos programas se comporten de forma diferente a la que deberían. Uno de estos problemas es el del desbordamiento de la pila. Sin embargo, hay otros posibles errores de programación que, aunque menos obvios, son igual de peligrosos. Uno de ellos es el desbordamiento de enteros o integer overflow. Para entender cómo funciona os presento un ejemplo muy sencillo pero didáctico.