"Camufladas, no ofuscadas": Malware de macro… ¿creado en España?

lunes, 23 de mayo de 2016

El malware de macro nos acompaña desde hace más de 15 años. En principio, dada su propia naturaleza, sería difícil que nos sorprendieran con grandes novedades. Las macros que hemos analizado en esta ocasión no son técnicamente novedosas, pero sí consideramos que plantean una novedad en su fórmula. El camuflaje frente a la clásica ofuscación. Y resulta de lo más efectivo.


El malware de macro está en plena forma. Si bien Microsoft ha mermado sus posibilidades cercando cada vez más la capacidad de que se ejecuten de forma automática (deshabilitándolas por defecto y dando la posibilidad a los administradores de bloquearlas por completo), los atacantes encuentran nuevas fórmulas para que las víctimas las lancen, principalmente a través de la ingeniería social. También podríamos pensar que después de 15 años, todo está inventado en el asunto de la detección por parte de los antivirus. En realidad, siguen teniendo problemas para discernir los documentos de Word o Excel que contienen malware malicioso, al menos (y sobre todo) en sus métodos "estáticos" (pasarelas de correo, que es por donde se difunden, normalmente). Para pasar desapercibidos, los atacantes suelen ofuscar su código. Ofuscar, en el sentido de que el código sea ilegible, puesto que las macros, escritas en VBA (Visual Basic Application), son "decompilables" (como ocurre con Java). Por tanto los analistas y programas pueden verlas y analizarlas a simple vista, cosa que los atacantes intentan dificultar con código ofuscado, imbricado, nombres de variables imposibles y bucles sin sentido.

Macro ofuscada "tradicional"

Microsoft detectó no hace mucho una fórmula interesante en unos creadores de macros maliciosas. Consideramos que estas macros camufladas, no ofuscadas, son también interesantes en sí mismas por varias razones.

Ofuscación… sí, pero no donde siempre

En realidad, estas nuevas macros maliciosas sí utilizan cierta ofuscación. En concreto, la URL de descarga del ejecutable que lanzarán (otras macros contienen el ejecutable en formato "plano" y lo construyen al vuelo). Esta URL es habitual ofuscarla lo máximo posible y situar la cadena resultante en algún punto del código. Pero este atacante lo ha alojado en un sitio que pocos esperan. El "caption" de un botón de un formulario. La macro no tiene por qué mostrar ese formulario en ningún momento (de hecho no lo hace) pero sin embargo es un lugar donde pocos antivirus mirarán. Un par de imágenes con dos ejemplos diferentes lo aclaran:



Ejemplos de cómo se almacena en el caption de un Label o botón, una cadena ofuscada que contiene ejecutables


Esta es la cadena y parte del código que la irá "desofuscando".




Tan bien escondido que se encuentra a simple vista

Otra fórmula interesante es que sería difícil que viendo el código, esta macro se tomara por malware. Cuando un analista observa código ofuscado, entiende directamente que es malware y su trabajo consistirá en desenredar la ofuscación e intentar entender qué hace el código. Lo interesante de este malware de macro es que, mirando el código, muy pocos lo tomarían como malicioso. El código es normal, simula un acceso a base de datos, una especie de sistema de contabilidad incrustado en un documento que accede a una base de datos por ODBC, con sus nombres de tablas, sus controles de calidad, sus comentarios en español, sus conversores. Todo tan normal, que nadie sospecharía. Sin embargo, las funciones con nombres inocentes esconden el comportamiento malicioso.

Algunos trozos de código. Solo en tiempo de ejecución se observa qué valor puede tomar cada variable
 
Poco a poco, pasa por algunas de estas funciones (no todas) y va desofuscando la cadena que almacenaba en el caption del botón, descarga el fichero, y lo ejecuta. Y así, curiosamente, el atacante consigue más que solo ofuscando, puesto que el analista ni siquiera cree que deba desofuscar el código, puesto que es tan "normal" que nadie sospecharía. Es como si en lugar de ofuscarla e intentar esconderse, se mostrara completamente normal y natural, actuando tan a la vista que sería difícil tomar su comportamiento como sospechoso.

¿Código "normal", robado, o creado para la ocasión?

Otra interesante curiosidad es el código usado. Podríamos pensar que para conseguir este camuflaje, bastaría con "robar" código legítimo de cualquier sitio de Internet y retocarlo. Pero el atacante no lo hace así siempre. Buena parte del código de varias muestras está en castellano, la mayoría. Las funciones no se encuentran en la red (Github o código de ejemplo). Caben dos posibilidades:
  • O bien el código ha sido creado para la ocasión; 
  • O bien el código ha sido robado de una empresa que no lo ha publicado en la red en ningún momento. 
Optamos por esto último, pero es complicado saberlo. Para otras muestras, por ejemplo, sí que ha tomado código prestado de repositorios github públicos creados por hispanohablantes.

Llama la atención igualmente los dominios usados para descargar los ejecutables. Muchos son españoles, probablemente comprometidos. ¿Se podría tratar de malware de macro "made in Spain"? Algunos dominios aparentemente españoles utilizados para su descarga son: navasdetolosa.com/, rproducciones.com, clickcomunicacion.es, centroinfantilelmolino.com, aunque también las hay polacas o inglesas como: www.paslanmazmobilya.org, isgim.com, love2design.co.uk, no-id.eu...

Tráfico tras abrir algunas de las muestras


Creemos, sin embargo que no son españoles. Veamos por qué.


Código que trata la cadena de ejecución, y otro para despistar abajo, que "carga imágenes de ayuda"

Pequeños errores

No olvidemos que el sistema de macros es una vía de difusión, no un fin en este caso. El malware sigue siendo un ejecutable alojado en un servidor. En este caso, y desde que lleva actuando (febrero de 2016) ha utilizado campañas de Dridex y Locky. Estos son malware típicamente rusos, y trabajados como para que no sean detectados a la primera. Puede que el creador de la macro poco tenga que ver con el ejecutable y se limite a ejecutar una parte de la pirámide profesional de distribución… pero apostaríamos a que están relacionados. En cualquier caso, las macros también han pasado bastante desapercibidas desde que salieron en marzo. De hecho, de tres detecciones en marzo, han pasado a 36, una vez dada la voz de alarma.

Un posible error que cometen los creadores es que la ventana de comandos en la que se lanza el ejecutable se ve por la víctima. Sería muy fácil ocultarla con un flag, y no lo ha hecho. Además muestra un humor un poco macabro. Las variables en las que va creando la llamada que ejecutará el malware, se llaman "problems".

Momento de la ejecución, "camuflado" en una función aparentemente normal

Otro error de lo más curioso y que nos lleva a pensar que a pesar de parecer españoles son rusos, es que no ha podido resistir dejar ciertas "singularidades" en el código. El más llamativo es el uso en el código de un nombre de un grupo de música nada popular y poco común llamado KABARE DUET AKADEMIA. Solo se les conoce una canción que aparece en un recopilatorio.

Parte del código que habla de un grupo de música ruso poco conocido


En otra muestra, utiliza una palabra poco común o escrita con errores (POLODSKA), que parece rusa igualmente, así como los nombres elegidos para algunos de los binarios descargados.

Sergio de los Santos
ssantos@11paths.com 

No hay comentarios:

Publicar un comentario