Analisis estático del Ransomware Wannacry usando SSMA

Primero vamos a descargar el ransomware WannaCry desde algun repositorio de malware y validamos con un algoritmo HASH tipo MD5 o SHA1 para validar que el archivo sea el correcto y no haya sido modificado:

Luego vamos usar una herramienta llamada SSMA (Simple Static Malware Analyzer) que ha sido desarrollada por un colega de Seguridad del CERT de Georgia, llamado: Lasha Khasaia, Malware Researcher / Reverse Engineer, Tbilisi.

Instalando SSMA sobre una maquina con Linux, debemos tener Python para poder correr sin problemas::

  • Installar: #git clone https://github.com/secrary/SSMA
  • # sudo pip3 install -r requirements.txt
  • You are using pip version 9.0.1, however version 10.0.1 is available.
  • You should consider upgrading via the ‘pip install — upgrade pip’ command.
  • # pip install — upgrade pip

Para poder usarlo desde Kali:

  • #sudo apt install pyhton3-pip ( Desde KALI)
  • # sudo pip3 install -r requirements.txt

Para ejecutarlo desde línea de comando:

# python3 ssma.py -h

Como pre-requisito se necesita tener instalado: Python, PIP3, https://www.python.org/

Ahora vamos a ejecutar en análisis del ransomware utilizando SSMA, primero se valida el archivo, tipo, MD5 y SHA de acuerdo al archivo descargado luego las secciones y tiene un nivel alto de Entropia PE File: 7.995470941164686. Entropia se podría definir como una medida de la “aleatoriedad” de los datos en un archivo, medida en una escala de 1 a 8 (8 bits en un byte), donde los archivos de texto típicos tendrán un valor bajo y los archivos cifrados o comprimidos tendrá una gran medida.

Funciones, llamadas y DLLs del sistemas Operativo Windows, que frecuentemente son usadas por código malicioso:

  • CreateFileA — Creates a new file or opens an existing file.
  • GetTempPathW — Returns the temporary file path.
  • LoadResource — Loads a resource from a PE file into memory
  • LoadLibraryA — Loads a DLL into a process that may not have been loaded when the program started.
  • GetProcAddress — Retrieves the address of a function in a DLL loaded into memory.
  • CreateProcessA — Creates and launches a new process. If malware creates a new process, you will need to analyze the new process as well.
  • FindResourceA — Used to find a resource in an executable or loaded DLL.
  • CreateServiceA — Creates a service that can be started at boot time

Reglas Yara que tienen como objetivo detectar técnicas anti-depuración y anti-virtualización utilizadas por el malware para evadir el análisis automatizado.

  • win_registry — Affect system registries
  • win_files_operation — Affect private profile

Reglas Yara tienen como objetivo detectar empaquetadores de sofware bien conocidos, que el malware puede usar para ocultarse:

  • IsPE32
  • IsWindowsGUI
  • IsPacked — Entropy Check
  • HasRichSignature — Rich Signature Check

Dominios y correos electrónicos usados:

Reglas de Yara apuntan a detectar la existencia de algoritmos criptográficos usados por el ransomware para encriptar los archivos locales:

  • CRC32, Codigo de redundancia ciclica, frecuentemente usado para validar la no alteración de los datos.
  • AES Advanced Encryption Standard, algoritmo simetrico que se usa frecuentemente para encriptar.