Por msft-mmpc

Al investigar algunas muestras de malware nuevo esta semana, encontramos algunos archivos interesantes que utilizan un nuevo truco con una instrucción no documentada. Tuvimos que repasar un poco la lista de instrucciones de Intel para resolver este misterio. Aunque resultó que el propio truco no es eficaz en complicar la depuración y el desensamble, pensamos que vale la pena compartirlo, ya que estamos viendo tres variantes diferentes de malware que lo utilizan.

Una de las muestras marcadas por nuestros sistemas (SHA1:3d85cc93115c1ebfdeba17b54d6570e06c1bb2f5) no tenía nada fuera de lo común en un principio. Tenía el empacador personalizado habitual para impedir el análisis y la detección, y presentaba errores de formato para confundir a varias herramientas:

 

Sin embargo, la parte verdaderamente interesante estaba inmediatamente en el punto de entrada:

 De acuerdo con los manuales de Intel, las instrucciones marcadas son instrucciones inválidas, que podrían hacer que la aplicación se bloqueara si se ejecutara. En realidad, esto contradice nuestra experiencia; en nuestros sistemas, el archivo se ejecutó en una máquina virtual. Debido a esto, decidimos que debíamos analizarlo a profundidad y comprobar en dónde residía el problema.

Intentamos ver si otras herramientas que utilizamos comúnmente interpretaban y desensamblaban las instrucciones de forma correcta:

 

Todas las herramientas dieron resultados diferentes para las mismas instrucciones. En este punto,  sospechamos que se trataba de una instrucción no documentada no detectada por las herramientas.

Para continuar la investigación, decidimos utilizar una biblioteca de desensamblador de Intel, la cual nos proporcionó el siguiente desmontaje:

 

La búsqueda de estas instrucciones reveló que son instrucciones FPU no documentadas,  que dan lugar al desensamble incorrecto en diferentes herramientas de reversión.

Ya que esto despertó nuestra curiosidad, nos preguntamos quién emplea este truco y cuando apareció por primera vez.

La primera muestra en la que encontramos este truco llegó a nuestros sistemas el 10 de enero de 2013, de un envío de VirusTotal. La muestra (SHA1: 7403f5e5a88b26001295fd201d490fbb4854e061) es detectada como Backdoor:Win32/Farfli.AV. Esta muestra no estaba empacada o protegida en ninguna forma y sólo estaba utilizando este truco de instrucción.

Desde enero también hemos visto que la familia Trojan:Win32/Danglo y Backdoor:Win32/Zegost.B utilizan este truco.

La búsqueda de menciones de este truco en los foros clandestinos no arrojó ningún resultado. El número de familias que utilizan esta técnica es relativamente pequeño, por lo que plantea algunas preguntas interesantes: ¿estas familias están relacionadas? ¿cómo es que los autores, si son personas diferentes, comparten información?

Una cosa es segura, los autores de malware siguen esforzándose para intentar evadir la detección.

Daniel Radu
MMPC Múnich

Orígen:  http://blogs.technet.com/b/mmpc/archive/2013/06/24/investigation-of-a-new-undocumented-instruction-trick.aspx