Yara Rules Strings: estudio estadístico

Como todos los usuarios de Yara saben, las firmas de esta herramienta están basadas en “strings”; que son básicamente descripciones de familias de malware basadas en patrones. Es posible encontrarnos con firmas sencillas como por ejemplo:

rule LIGHTDART_APT1
{
    meta:
        author = "AlienVault Labs"
        info = "CommentCrew-threat-apt1"
        
    strings:
        $s1 = "ret.log" wide ascii
        $s2 = "Microsoft Internet Explorer 6.0" wide ascii
        $s3 = "szURL Fail" wide ascii
        $s4 = "szURL Successfully" wide ascii
        $s5 = "%s&sdate=%04ld-%02ld-%02ld" wide ascii

    condition:
        all of them
}

O firmas más complejas en las que se usan wild-cards, expresiones regulares, operadores especiales o cualquier otra de las funcionalidades que se pueden usar en Yara y que se pueden consultar en la documentación.

Partiendo del recopilatorio público de firmas de Yara de “Yara Rules Project” y con ayuda de YaGo, he decidido llevar a cabo el experimento de estudiar en conjunto todos los strings recopilados de las firmas de este repositorio y les quería mostrar los resultados. En el momento de hacer el experimento el ‘repo’ contaba con 11784 firmas con 15554 strings diferentes.

Top 15 referencias a funciones

He hecho una búsqueda de referencias a funciones y si nos quedamos con el top 15 y de mayor a menor ocurrencias, nos encontramos con esta clasificación:

Clasificación que se asemeja mucho a la de este estudio de Binary Networks, y que utiliza pestudio en una de sus listas de reputación (en concreto ver fichero functions.xml de pestudio).

Extensiones de ficheros referenciadas

Entre los strings de Yara analizados nos encontramos que se hacen referencia hasta 16 extensiones de ficheros diferentes, entre los que destacan los .exe, .dll, .txt .dat o .pdb como más significativos en cuanto a nivel de ocurrencias. A continuación por % un pequeño gráfico:

Analizando en profundidad qué ficheros dll y exe han sido más referenciados en nuestros strings, llegamos a las siguientes conclusiones (quedándonos simplemente con los 15 que más han sido referenciados y de mayor a menor número de ocurrencias):

Top 15 Ficheros DLL referenciados

Top 15 Ficheros EXE referenciados

Common folder variables

El malware, con frecuencia, usa una ‘variable folder’ cuando intenta acceder, cambiar o crear ficheros y carpetas en el equipo infectado así que también he incluido un estudio de las ocurrencias que hacían referencia a alguna de estas variables y el resultado obtenido es el siguiente:

 

 

User-Agents

Para finalizar, he recopilado los user-agents a los que se hacía referencia en nuestros strings, quedando el siguiente listado:

Mozilla/4.0 (compatible; MSIE 6.0;Windows NT 5.0; .NET CLR 1.1.4322)
Mozilla
Mozilla/4.0
Mozilla/4.0 (compatible; )
Mozilla/4.0 (compatible; MSI 6.0;
Mozilla/4.0 (compatible; MSIE 4.01; Windows NT)
Mozilla/4.0 (compatible; MSIE 5.00; Windows 98) KSMM
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Mozilla/4.0 (Compatible; MSIE 6.0;)
Mozilla/4.0 (compatible; MSIE 6.0; Win32)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SP Q%%d)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.; SV1)
Mozilla/4.0 (compatible; MSIE 6.1; Windows NT 5.1; SV1)
Mozilla/4.0 (compatible; MSIE 7.0;)
Mozilla/4.0 ( compatible; MSIE 7.0; AOL 8.0 )
Mozilla4.0 (compatible; MSIE 7.0; Win32)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; SV1)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3
Mozilla/4.0 (compatible; MSIE 8.0; Win32)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT
Mozilla/4.0 (compatible; MSIE8.0; Windows NT 5.1)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727.42)
Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/4.0;)
Mozilla/4.0 (compatible; MSIE %d.0;
Mozilla/4.0 (compatible; Windows NT 5.1; MSIE 7.0)
Mozilla/4.0 (compatible; Windows NT 5.1; MSIE 7.0; Trident/4.0)
Mozilla/4.0 (compatible; Windows NT 5.1; MSIE 7.0; Trident/4.0; %s.%s)
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; MALC)
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36
Mozilla/5.0 (Windows NT 6.2; WOW64; rv:20.0) Gecko/20100101 Firefox/
Mozilla/5.0 (Windows NT 6.3; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0
Mozilla/5.0 (Windows NT 6.; WOW64; rv:20.0) Gecko/20100101 Firefox/2
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.7.6)
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-EN; rv:1.7.12) Gecko/200
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-EN; rv:1.7.12) Gecko/20100719 Firefox/1.0.7
Mozilla/5.0 (Windows; Windows NT 5.1; en-US; rv:1.8.0.12) Firefox/1.5.0.12
Mozilla5.1 (compatible; MSIE 8.0; Win32)
Shockwave Flash
SJZJ (compatible; MSIE 6.0; Win32)
Netscape

Conclusión

Como conclusiones a estos resultados, comentar que una opción a tener en cuenta es hacer firmas de Yara con estos strings y aunque por separado hacer match con alguno de estos patrones no sea siempre indicativo de que el fichero bajo análisis sea malicioso, quizá sería interesante valorarlo en su conjunto y si se obtienen varias coincidencias sí que podría ser un indicativo de cierta reputación. Si a los lectores les parece útil tener estas listas actualizadas me comprometo a hacer este análisis periódicamente o a añadir una sección en www.yararules.com con los datos estadísticos de los strings para que se vayan actualizando en tiempo real o periódicamente. Espero vuestro feedback.

Comments

  1. Hᥱllo, after reading this remarkable post i am also cheerful to share
    mу knoԝ-hoѡ here wіtҺ colleagues.