En un post anterior, Filecoder: Secuestro de datos y pedido de rescate, publicamos información sobre el resurgimiento del ransomware de cifrado de archivos a partir de julio de 2013. Mientras que la mayoría de estas familias de se propagaron mayormente en Rusia, algunas están atacando a usuarios (en especial del sector corporativo) en todo el mundo.

Cryptolocker, detectado por ESET como Win32/Filecoder.BQ, es uno de los ejemplos más infames y tuvo amplia repercusión en el público general y los medios en los últimos dos meses. Como demuestran las estadísticas de detección de ESET LiveGrid® presentadas abajo, el país que se vio más afectado por esta familia de malware el Estados Unidos:

detecciones_cryptolocker

El mes pasado, descubrimos otra familia de Filecoder que nos llamó la atención porque se hacía llamar “Cryptolocker 2.0”. Naturalmente, nos preguntamos si se trataba de una versión más nueva del extendido ransomware desarrollado por la misma banda criminal. En esta publicación, proporcionaremos una comparación entre este "Cryptolocker 2.0" (detectado por los productos de ESET como MSIL/Filecoder.D y MSIL/Filecoder.E) y el Cryptolocker "normal".

Cryptolocker 2.0 vs. Cryptolocker

Ambas familias de malware operan de manera similar. Tras la infección, exploran la estructura de carpetas de la víctima en busca de archivos que coincidan con un grupo predefinido de extensiones de archivos, los cifran y abren una ventana con un mensaje donde se exige el pago de un rescate para descifrar los archivos. Los dos usan el sistema criptográfico de clave pública RSA, pero hay algunas diferencias de implementación entre las dos familias.

cryptolocker_2

cryptolocker_nueva_version
Hay tres diferencias visibles entre las dos familias. Cryptolocker usa (como se menciona en el mensaje del rescate) la versión RSA-2048, mientras que Cryptolocker 2.0 dice usar RSA-4096 (aunque en realidad usa RSA-1024). Cryptolocker 2.0 muestra la fecha límite en que supuestamente se eliminará la clave privada, pero no incluye un cronómetro regresivo como Cryptolocker. Además, es interesante notar que Cryptolocker 2.0 solo acepta el rescate en Bitcoins, mientras que las diversas variantes de Cryptolocker también aceptan cupones de MoneyPak, Ukash o cashU.

Revelaremos más diferencias de implementación luego de analizar el malware. La primera y más evidente radica en el lenguaje de programación utilizado: Cryptolocker se compiló con Visual C++, mientras que Cryptolocker 2.0 se escibió en C#. Los archivos y las claves de registro utilizados por el malware son diferentes y, lo que es aún más interesante, ocurre lo mismo con la lista de extensiones que el ransomware busca para cifrar.

Cryptolocker parece estar más "orientado al sector corporativo" y no cifra archivos de imagen, vídeo y música, mientras que Cryptolocker 2.0 sí: en su lista de objetivos se incluyen extensiones de archivos como .MP3, .MP4, .JPG, .PNG, .AVI, .MPG, y así sucesivamente.

Cuando se ejecuta el malware, éste se contacta con el servidor de comando y control (C&C) para solicitar una clave pública RSA. Luego, cada archivo que coincide con el criterio específico (si la extensión del archivo concuerda y la ruta del archivo no se encuentra en la lista de archivos excluidos) se cifra mediante una clave 3DES generada en forma aleatoria, y dicha clave a su vez se cifra usando la clave pública RSA enviada por el servidor. A continuación, la clave cifrada se escribe en un archivo auxiliar, con el mismo nombre de archivo y extensión que el archivo cifrado y una segunda extensión añadida “.k”:

%nombredelarchivo%.%textodelarchivo%.k

Por lo tanto, el descifrado de los archivos solo sería posible si se conociera la clave privada RSA, lo que permitiría el descifrado de las claves 3DES.

El Cryptolockeer original funciona de manera similar, con algunas diferencias sutiles. Por ejemplo, utiliza AES en vez de 3DES. Además, la clave cifrada se guarda al final de cada archivo cifrado; no en un archivo aparte.

Cryptolocker (Win32/Filecoder.BQ) también contiene un algoritmo de generación de dominios para las direcciones del C&C, mientras que el nuevo Cryptolocker 2.0 no incluye esta funcionalidad. Abajo se muestra una tabla donde se resumen las diferencias generales entre las dos familias de malware:

Cryptolocker Cryptolocker 2.0
Nombres de detección de ESET Win32/Filecoder.BQ MSIL/Filecoder.D, MSIL/Filecoder.E
Lenguaje C++ C#
Métodos de pago Moneypak, Ukash, cashU, Bitcoin Bitcoin
Tipo de cifrado de los archivos AES 3DES
Tipo de cifrado para la clave simétrica RSA-2048 RSA-1024
Clave simétrica cifrada guardada en: El final del archivo cifrado En un archivo aparte: %nombredelarchivo%.%textodelarchivo%.k
Cifrado de la comunicación con el C&C RSA AES
Dirección del C&C Codificado de forma rígida, DGA Codificado de forma rígida

Además, el troyano descubierto recientemente contiene algunas características que no tienen relación con la funcionalidad del ransomware. La aplicación incluye ventanas que imitan los programas de activación o los "cracks" para software propietario, incluyendo Microsoft Windows, Microsoft Office, Team Viewer, Adobe Photoshop e incluso ESET Smart Security.

windows_activador

 

 

office_activador

La aplicación elige qué ventana mostrar de acuerdo al nombre del archivo binario. Luego de iniciarse, se instala en el sistema y, a continuación, el malware funciona en el "modo ransomware" explicado arriba. Esta técnica de hacerse pasar por el crack de un software le sirve al troyano como mecanismo de propagación adicional. Más allá de los problemas legales, esto demuestra los riesgos cada vez mayores de usar software pirata.

Cryptolocker 2.0 también es capaz de propagarse a través de medios extraíbles. Para ello, reemplaza por su propio cuerpo el contenido de los archivos .EXE almacenados en dichos medios.

La lista de funcionalidades presente en el código del troyano es bastante extensa y también puede robar archivos de billeteras bitcoin, iniciar la aplicación legítima BFGMiner o ejecutar ataques de DDoS contra un servidor especificado. No obstante, no pudimos establecer si se está usando esta funcionalidad en la actualidad.

Conclusión

Si tomamos en cuenta todas las diferencias mencionadas arriba, es poco probable que el malware que se hace llamar “Cryptolocker 2.0” sea realmente una nueva versión del ransomware Cryptolocker anterior y de los mismos creadores. Cambiar de C++ a C# de por sí ya sería, cuando menos, inesperado, y, en cualquier caso, ninguna de las diferencias principales pueden considerarse "mejoras" significativas.

Lo más probable es que algunas personas hayan usado Cryptolocker como inspiración para obtener ganancias en forma ilícita. Después de todo, ésta no sería la primera imitación.

De cualquier manera, el ransomware detectado como MSIL/Filecoder.D o MSIL/Filecoder.E todavía puede ser un motivo de preocupación para las víctimas si no guardan copias de seguridad de sus archivos. Por esta razón, nunca está de más resaltar la importancia de tener una rutina apropiada para la creación de copias de seguridad.

Adicionalmente, a nuestros usuarios les recomendamos utilizar las últimas versiones de ESET Smart Security y ESET NOD32 Antivirus para que puedan hacer uso de la funcionalidad Análisis Avanzado de Memoria, ya que se ha comprobado que mejora la detección de las nuevas incorporaciones de variantes de malware, incluyendo el ransomware.