Guía básica de análisis de malware

20:45 0 Comments A+ a-


Si te interesa el análisis de malware y tienes algunos conocimientos básicos de informática, programación en Windows e ingeniería inversa, esta guía puede serte útil.

Voy a tratar de explicar los pasos que realizo al analizar un fichero  el cual podría ser malware. Voy a nombrar herramientas que pueden serte útiles, no estás limitado a usar las que yo nombro. Te recomiendo que pruebes herramientas similares para entenderlas y elegir las que más te gusten.

Vale aclarar que voy a hablar sobre un procedimiento de análisis básico de malware de 32 bits de Windows en Windows. Es conveniente, que practiques utilizando máquinas virtuales.


No hace falta aclarar que Windows es el sistema con más usuarios, los cuales se integra desde aquellos que no saben nada  hasta centrales nucleares y cajeros automáticos.

Pasemos a la teoría:

Estoy navegando en internet cuando sospechoso.exe aparece, dice ser algo que me gusta, algo que ejecutaría sin dudar. Pero no soy un usuario que clickea por vicio.

Antes que nada hay que calcular un hash MD5/SHA1 del fichero y buscarlo en Google para ver si el ejemplar ya fue analizado. Búscalo en VirusTotal, y si no está, puedes subirlo.

Luego podemos ver si está empaquetado con PEiD o un software similar, y, si está empaquetado, desempaquetarlo para facilitar el análisis.

Primero voy a darle una mirada rápida. A continuación procederé al análisis estático del ejecutable. Así, voy a abrir el malware con PEStudio.

PEStudio es un programa especialmente diseñado para el análisis estático de malware. Este programa va a realizar automáticamente cosas que son tediosas de hacer a mano.


Podemos ver que nos muestra el MD5 y SHA1 del fichero y mucha más información de la estructura Portable Executable del archivo, como las librerías y funciones que se importan y exportan, recursos, cadenas de texto, dumps de las secciones, etc, etc, etc.


También pueden usar PEInsider para obtener información de la estructura Portable Executable y HxD, un editor hexadecimal.

Tenemos que fijarnos principalmente que funciones son importadas. APIs utilizadas para modificar la memoria, acceder a la red y modificar el registro nos dan una pauta de que puede haber algo raro; pero no siempre encontramos la verdad acá, porque también pueden cargarse en ejecución, y de ser el caso, no vamos a encontrarlas.


Podemos revisar si las cadenas de texto (si no fueron cifradas) son sospechosas. Podemos encontrar cosas como HKCU\Software\Microsoft\CurrentVersion\Run, ya que permiten la persistencia tras el reinicio. Existen miles de palabras que nos pueden hacer dudar, como nombres de APIs.

Es cuestión que cada uno los descubra con la práctica. Si tienen suerte y están analizando un ejemplar programado por un scriptkiddie, tal vez hasta puedan sacar bastante información del creador.

Una vez exprimido el ejecutable, que ya sabemos que no hay más nada que ver, podemos pasar al análisis dinámico. Consiste en ejecutar el malware en una máquina virtual para ver su comportamiento. Esta máquina virtual puede ser una Sandbox online, como Malwr o Anubis, o una máquina virtual propia.

Si vas a usar tu propia máquina virtual vas a tener que usar herramientas de análisis de tráfico como Wireshark o socketsniff/smartsniff para malware de muy baja calidad, ya que la mayoría de las muestras de los últimos años suelen depender de Internet.

Es importante que veas bien a donde se conectan y que anotes todas las direcciones y las reportes como abusivas (también se pueden obtener en el análisis estático si es que no están cifradas).

Puedes tomar captura del registro y el sistema de archivos para ver si fueron modificados con programas como Regshot,  SpyMe tools o Systracer.

Mucho malware utiliza técnicas de defensa, como por ejemplo detectar si están siendo ejecutados en una máquina virtual. Es importante que tu máquina virtual se parezca a una computadora de un usuario común y tenga los mismos programas instalados que tu tía Flavia.

Puedes probar vmcloak para borrar fingerprints de la máquina virtual.
También pueden molestarnos algunas técnicas de rootkit, las cuales podemos detectar con gmer o algún anti-rootkit similar.

Para gente más avanzada, pueden usar un debugger para analizar el código del malware. Yo suelo utilizar OllyDbg. También pueden utilizar IDA pero desensamblar el binario y hacer un análisis estático.

Autor: OnTheCore