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.
Hᥱllo, after reading this remarkable post i am also cheerful to share
mу knoԝ-hoѡ here wіtҺ colleagues.