A continuación les presento un programa que he realizado para identificar y clasificar muestras de malware utilizando reglas Yara, ya que los antivirus tradicionales no suelen comprobar ciertos aspectos importantes que puede contener un fichero, dado que para conseguir una velocidad de análisis óptima utilizan hashes que cruzan contra una base de datos de hashes de archivos maliciosos.
Yara en este aspecto nos facilita mucho el trabajo, dado que principalmente analiza los strings de los ficheros, con lo que podemos detectar webshells, archivos utilizados en las APT, cryptomineros, macros de office maliciosas, exploits, troyanos, incluso el ransomware más actual como CobalStrike, Ryuk, etc.
En su forma mas básica, la estructura de una regla Yara es la siguiente:
rule Nombre_de_la_regla
{
strings:
$test_string1= ”Testing”
$test_string2= {E1 D2 C3 B4}
Conditions:
$test_string1 or $test_string2
}
La regla se activará si las condiciones anteriores se cumplen.
Con Yara también podemos parsear archivos
PE (Portable Executable), de la siguiente forma:
Import “
PE”
Rule PE_Parse_Check
{
Strings:
$ string_pe=”abc” nocase
Condition:
pe.imports (“Kernel32.dll”,”CreateProcess”) and
pe.imports (“wininet.dll”,”httpsendrequest”) and
$ string_pe
}
Esta regla buscará el string "abc" y se activará si existe una creación de un proceso y un "http send request"
En general las reglas son independientes de la extensión de los archivos a analizar, es decir si tenemos un documento
HTML con una webshell al que se le ha cambiado la extensión por PDF para ocultarlo o dificultar su análisis, al ser examinado por Yara se descubrirá la webshell maliciosa.
REQUISITOS PREVIOS
Descargar el archivo Yara64.exe desde
aquí.
Tienen que guardar las reglas yara, que no son más que archivos de texto con la extensión ".yar" en la carpeta "reglasyar".
Existen en la red multitud de sitios desde donde descargarlas, sólo tienen que buscar en Google por "Yara rules download", para mí uno de los mejores es
Yara Rules Project · GitHub
Los archivos que van a ser analizados hay que guardarlos en la carpeta "malware", aunque desde la red también se pueden descargar algunos archivos maliciosos de prueba desde
aquí.
Recomiendo ejecutar el programa como Administrador, para evitar problemas con los permisos en ficheros o carpetas.
Al iniciar el programa se hace lo siguiente:
- Se comprueba que existen las carpetas "reglasyara" y "malware".
- Se leen las reglas y se muestran en pantalla.
Después hay que pulsar el botón "Iniciar comprobación" y en caso de match con una regla se mostrará en la caja "Resultados", tal como muestro en la imagen:
En este caso ha detectado que varios emails tienen imágenes y un archivo adjunto y una webshell en el archivo JFolder.jsp
MEJORAS
Dentro del código fuente, en la línea:
linea := 'yara64.exe
-wf -p 20 ' + '.\reglasyar\' + regla + ' ' + DirSeleccionado;
se pueden añadir modificadores, p.ej.
-r (buscar recursivamente en todas las carpetas y subcarpetas)
-S (muestra estadísticas)
-m (muestra metadatos)
-w (ignora los warnings)
SOURCES
-
Programa.rar
ESTRUCTURA DEL PROGRAMA
- Project1.exe
-
Yara64.exe
- [CARPETA] reglasyar (carpeta donde se almacenan los ficheros *.yar)
- [CARPETA] malware (esta es la carpeta donde se guardan los fichero que serán analizados)
La carpeta "reglasyara" almacenará todas las reglas que hayamos descargado de la red.
Suscribirse :
Weiterlesen...