El siguiente post es una traducción y adaptación del realizado por nuestro compañero Robert Lipovsky en el blog We Live Security de ESET.
En nuestro post anterior, Todo sobre Filecoder/Cryptolocker, publicamos información sobre el resurgimiento desde julio de 2013 del ransomware que cifra archivos. A pesar de que la mayoría de estas familias de ransomware están más extendidas en Rusia, también hay variantes que apuntan a otros usuarios (especialmente a empresas) de forma global.
Cryptolocker, detectado por ESET como Win32/Filecoder.BQ, es uno de los más conocidos y ha recibido una amplia atención tanto por parte de los usuarios como de los medios de comunicación en los últimos dos meses. Tal y como se puede observar a continuación en el gráfico confeccionado con datos de ESET Livegrid®, el país más afectado son los Estados Unidos.
El mes pasado descubrimos una nueva variante de Filecoder que atrajo nuestra atención porque se llamaba a sí mismo “Cryptolocker 2.0”. Naturalmente, lo primero que nos preguntamos es si esta sería una nueva versión del extendido ransomware y si estaría desarrollado por la misma banda de ciberdelincuentes. En este post compararemos este «Cryptolocker 2.0”, detectado por las soluciones de seguridad de ESET como MSIL/Filecoder.D y MSIL/Filecoder.E, y el Cryptolocker “normal”.
Cryptolocker 2.0 vs. Cryptolocker
Ambas variantes del malware funcionan de forma similar. Tras la infección revisan la estructura de las carpetas de la víctima en busca de archivos que coincidan con diversas extensiones de ficheros, los cifra y muestra un mensaje en una ventana solicitando un rescate para poder descifrar los ficheros. Ambas variantes utilizan la llave criptográfica pública de RSA, pero hay diferencias en la implementación entre estas dos variantes.
Tal y como se observa en las imágenes anteriores, la interfaz gráfica de la nueva variante se parece mucho al anterior Cryptolocker, incluyendo el mensaje de texto que, muy probablemente, haya sido copiado y ligeramente modificado.
Existen tres diferencias visibles entre estas dos variantes. Cryptolocker utiliza (tal y como se menciona en el mensaje mostrado en pantalla) un cifrado RAS-2048, mientras que Cryptolocker 2.0 dice utilizar RSA-4096 (a pesar de que en realidad utiliza RSA-1024). Cryptolocker 2.0 muestra la fecha en la que la clave privada será supuestamente eliminada, pero no muestra una cuenta atrás como sí hacía Cryptolocker. Además, curiosamente, Cryptolocker 2.0 solo acepta pagos del rescate en Bitcoins, mientras que las diferentes variantes de Cryptolocker también han aceptado pagos por MoneyPak, Ukash o CashU.
Se observaron más diferencias tras analizar la muestra del malware. La primera y más obvia es el lenguaje de programación utilizado. Cryptolocker fue compilado utilizando Visual C++, mientras que Cryptolocker 2.0 ha sido escrito en C#. Los ficheros y llaves de registro utilizadas por el malware son diferentes y también lo es el listado de extensiones de archivos que el ransomware busca para cifrar. Cryptolocker parece estar centrado en infectar a usuarios corporativos y no cifra ficheros de imagen, vídeo o audio, mientras que Cryptolocker 2.0 sí que lo hace, incluyendo entre su lista de objetivos extensiones como .mp3, .mp4, .jpg, .png, .avi, .mpg y similares.
Cuando se ejecuta el malware, este contacta con el centro de mando y control para solicitar una clave pública RSA única. A continuación, cada fichero que cumpla con unos requisitos específicos (coincide la extensión, o la ruta del fichero no se encuentra en la lista de exclusión) se cifra usando una clave 3DES generada aleatoriamente cada vez y luego esta clave se cifra utilizando la clave pública RSA recibida desde el servidor.
La clave cifrada es después almacenada en un archivo auxiliar, con el mismo nombre del fichero y extensión que el fichero cifrado y una segunda extensión añadida “.k”:
%nombredelfichero%.%extensióndelfichero%.k
Debido a esto, el descifrado de los ficheros solo será posible si se conoce la clave privada RSA, lo que permitiría el descifrado de las claves 3DES.
El Cryptolocker original trabaja de forma similar aunque con algunas diferencias como, por ejemplo, utilizar AES en lugar de 3DES. Asimismo, la clave cifrada se guarda al final de cada fichero cifrado y no en un fichero por separado.
Cryptolocker (Win32/Filecoder.BQ) también contiene un algoritmo de generación de dominios para centros de mando y control (C&C) mientras que el nuevo Cryptolocker 2.0 no contiene esa característica. A continuación presentamos un resumen de las diferencias entre las dos familias de malware.
Adicionalmente, este troyano recientemente descubierto contiene algunas características sin relación con la funcionalidad del ransomware. La aplicación incluye ventanas que se asemejan a las de los “activadores” o cracks utilizados para registrar copias ilegítimas de software como Microsoft Windows, Microsoft Office, Team Viewer, Adobe Photoshop o incluso ESET Smart Security.
La aplicación decide qué ventana mostrar dependiendo del nombre del binario. Tras ejecutarse se instala en el sistema y, seguidamente, el malware comienza a funcionar en “modo ransomware” tal y como se ha descrito anteriormente. Esta técnica de ocultación haciéndose pasar por cracks de software sirve como otra vía más de propagación del troyano. Además de posibles problemas legales, casos como el que estamos comentando demuestran los riesgos que supone utilizar software pirata.
Cryptolocker 2.0 también es capaz de propagarse utilizando medios extraíbles al reemplazar el contenido de los posibles ficheros .exe con su propio código.
La lista de funcionalidades presentes en el código del troyano es bastante extenso y también incluye el robo de los archivos que hacen de monederos de Bitcoins, la ejecución de la aplicación legítima BFGMiner o la realización de ataques DDoS contra un servidor específico. No obstante, fuimos incapaces de establecer si esta funcionalidad está siendo utilizada actualmente.
Conclusión
Teniendo en cuenta todas las diferencias mencionadas, es poco probable que el malware que se llama a sí mismo “Cryptolocker 2.0” sea una nueva versión del ransomware conocido como Cryptolocker realizada por los mismos autores. El cambio desde C++ a C# puede considerarse como algo inesperado por decir algo y, en cualquier caso, ninguna de las diferencias clave puede ser considerada como una mejora importante.
Lo más probable es que alguien usara a Cryptolocker como inspiración para ganar dinero de forma rápida. Después de todo, este no es el único caso de copia entre diferentes familias de malware.
A pesar de todo, el ransomware detectado como MSIL/Filecoder.D o MSIL/Filecoder.E puede ser una causa de preocupación para las víctimas si estas no cuentan con copias de seguridad de sus ficheros. Por esa razón, no nos cansaremos de insistir en la necesidad de contar con una rutina de creación de copias de seguridad.
Adicionalmente, recomendamos que nuestros usuarios actualicen a la versión 7 de nuestras soluciones de seguridad (ESET Smart Security y ESET NOD32 Antivirus) para hacer uso del Análisis Avanzado de Memoria, que ha demostrado mejorar la detección de las nuevas variantes de malware, incluido el ransomware.