Después de dos años de declive del ransomware para Android, ha surgido una nueva familia. Se trata de un ransomware (detectado por ESET Mobile Security como Android / Filecoder.C) que hemos visto distribuirse a través de varios foros en línea. Usando la lista de contactos de sus víctimas, se propaga aún más por SMS con enlaces maliciosos. Debido a los objetivos limitados y las fallas tanto en la ejecución de la campaña como en la implementación de su cifrado, el impacto de este nuevo ransomware es limitado. Sin embargo, si los desarrolladores corrigen las fallas y los operadores comienzan a apuntar a grupos más amplios de usuarios, el ransomware Android / Filecoder.C podría convertirse en una seria amenaza.

Android/Filecoder.C ha estado activo al menos desde el 12 de julio de 2019. Al analizar la campaña descubrimos que Android/Filecoder.C ha sido distribuido a través de publicaciones maliciosas en Reddit y en “XDA Developers”; un foro para desarrolladores de Android, por lo que reportamos tanto a XDA Developers como a Reddit acerca de esta actividad maliciosa. Las publicaciones en XDA Developers fueron eliminadas rápidamente; mientras que el perfil malicioso de Reddit todavía estaba activo al momento de la publicación de este artículo.

Android/Filecoder.C se propaga vía SMS mediante un enlaces maliciosos. Estos SMS maliciosos son enviados a todos los contactos de la lista de contactos del dispositivo de la víctima.

Después de que el ransomware envía esta batería de mensajes SMS maliciosos, cifra la mayoría de los archivos en el dispositivo del usuario y solicita un rescate.

Los usuarios que utilicen ESET Mobile Security reciben una advertencia al intentar abrir el enlace malicioso. En caso de ignorar la advertencia y descargan la aplicación, la solución de seguridad la bloqueará.

Distribución

La campaña que descubrimos está basada en dos dominios controlados por los atacantes (ver la sección de IoC al final del artículo) que contienen archivos maliciosos de Android para descargar. Los atacantes atraen a las potenciales víctimas hacia estos dominios por medio de publicaciones o comentarios en Reddit (Figura 1) o en el foro XDA Developers (Figura 2).

La mayoría de los temas de las publicaciones estaban relacionados con la pornografía, aunque también hemos visto que realizaron publicaciones en temas técnicos a modo de señuelo. En todos los comentarios o publicaciones, los atacantes incluyeron enlaces o códigos QR que apuntaban a las aplicaciones maliciosas.

Figura 1. Perfil en Reddit del atacante con publicaciones y comentarios maliciosos

Figura 2. Algunas de las publicaciones maliciosas de los atacantes en el foro XDA Developers

En un enlace que se compartió en Reddit, los atacantes utilizaron el acortador de URL bit.ly. Esta URL de bit.ly se creó el 11 de junio de 2019 y, tal como se puede observar en la Figura 3, sus estadísticas muestran que, al momento de escribir este artículo, había alcanzado 59 clics provenientes de diferentes fuentes y países.

Figura 3. Estadísticas del enlace de bit.ly compartido en Reddit durante la campaña de ransomware

Propagación

Como se mencionó anteriormente, el ransomware Android/Filecoder.C distrbuye enlaces sobre sí mismo a través de mensajes SMS a todos los contactos en el equipo de la víctima.

Estos mensajes incluyen enlaces al ransomware. Para aumentar el interés de las potenciales víctimas, el enlace se presenta como si perteneciera a una aplicación que supuestamente usa las fotos de la potencial víctima, tal como se puede observar en la Figura 4.

Para maximizar su alcance, el ransomware cuenta con una plantilla del mismo mensaje que se ve en la Figura 5 en 42 versiones de idioma diferentes. Antes de enviar los mensajes, elige la versión que se ajuste a la configuración de idioma del dispositivo víctima. Para personalizar estos mensajes, el malware incluye el nombre del contacto en el mensaje.

Figura 4. Un SMS con un enlace al ransomware. Esta variante de idioma se envía si el dispositivo desde el cual se emite el mensaje utiliza como idioma establecido el inglés

Figura 5. Un total de 42 versiones del mensaje en distintos idiomas están hardcodeadas en el ransomware

Funcionalidad

Una vez que las posibles víctimas reciben un mensaje SMS con el enlace a la aplicación maliciosa, necesitan instalarla manualmente. Después de que se inicia la aplicación, se muestra lo que se promete en las publicaciones que lo distribuyen; lo cual con frecuencia es un juego en línea de simulación de sexo. Sin embargo, sus propósitos principales son la comunicación con el C&C, difundir mensajes maliciosos e implementar el mecanismo de cifrado/descifrado.

En cuanto a la comunicación con el C&C, el malware contiene direcciones de Bitcoin y del C&C hardcodeadas en su código fuente. Sin embargo, también puede recuperarlas dinámicamente: el atacante puede cambiarlas en cualquier momento utilizando el servicio gratuito Pastebin.

Figura 6. Ejemplo de un conjunto de direcciones para que el ransomware recupere direcciones de C&C

El ransomware tiene la capacidad de enviar mensajes de texto debido a que tiene acceso a la lista de contactos del usuario. Antes de cifrar los archivos, envía un mensaje a cada uno de los contactos de la víctima utilizando la técnica descrita en la sección "Propagación".

A continuación, el ransomware pasa por los archivos ubicados en el almacenamiento accesible, es decir, todo espacio de almacenamiento del dispositivo, excepto donde residen los archivos del sistema, y cifra la mayoría de ellos (consulte la sección "Mecanismo de cifrado de archivos" en este artículo). Después de cifrar los archivos, el ransomware despliega su nota de rescate (en inglés), tal como se puede observar en la Figura 7.

Figura 7. Nota de rescate desplegada por Android/Filecoder.C

Es cierto que si la víctima elimina la aplicación, el ransomware no podrá descifrar los archivos, tal como se indica en la nota de rescate. Por otra parte, según nuestro análisis, no hay nada en el código del ransomware que respalde la afirmación de que los datos afectados se perderán después de 72 horas.

Como se observa en la Figura 8, el rescate solicitado es parcialmente dinámico. La primera parte de lo que será la cantidad de bitcoins que se solicitará está hardcodeada (el valor es 0.01), mientras que los seis dígitos restantes son el ID del usuario generado por el malware.

Esta práctica única puede servir para identificar los pagos entrantes. (En el ransomware para Android esto muchas veces se logra generando una billetera Bitcoin separada para cada dispositivo cifrado). Según el tipo de cambio reciente, de aproximadamente US$ 9,400 por bitcoin, los rescates derivados de esta amenaza estarán en el rango de los US$ 94 y los 188 (suponiendo que el ID único se genera al azar).

Figura 8. Cómo el malware calcula el monto del rescate

A diferencia del típico ransomware para Android, Android/Filecoder.C no impide el uso del dispositivo bloqueando la pantalla.

Como se puede observar en la Figura 9, al momento de escribir este artículo, la dirección de Bitcoin mencionada, que se puede cambiar dinámicamente pero era la misma en todos los casos que hemos visto, no ha registrado transacciones.

Figura 9. La dirección de Bitcoin utilizada por los atacantes

Mecanismo de cifrado de archivos

El ransomware utiliza cifrado asimétrico y simétrico. Primero, genera un par de claves pública y privada. Esta clave privada es cifrada utilizando el algoritmo RSA con un valor hardcodeado almacenado en el código y es enviada al servidor del atacante. El atacante puede descifrar esa clave privada y, después de que la víctima pague el rescate, enviar esa clave privada a la víctima para descifrar sus archivos.

Al cifrar los archivos, el ransomware genera una nueva clave AES para cada archivo que se cifrará. Esta clave AES se cifra utilizando la clave pública y se antepone a cada archivo cifrado, lo que da como resultado el siguiente patrón: ((AES) public_key + (File) AES) .seven.

La estructura del archivo se puede observar en la Figura 10.

Figura 10. Descripción general de la estructura de los archivos cifrados

El ransomware cifra los siguientes tipos de archivos ubicados en los directorios de almacenamiento accesibles:

“.doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pst", ".ost", ".msg", ".eml", ".vsd", ".vsdx", ".txt", ".csv", ".rtf", ".123", ".wks", ".wk1", ".pdf", ".dwg", ".onetoc2", ".snt", ".jpeg", ".jpg", ".docb", ".docm", ".dot", ".dotm", ".dotx", ".xlsm", ".xlsb", ".xlw", ".xlt", ".xlm", ".xlc", ".xltx", ".xltm", ".pptm", ".pot", ".pps", ".ppsm", ".ppsx", ".ppam", ".potx", ".potm", ".edb", ".hwp", ".602", ".sxi", ".sti", ".sldx", ".sldm", ".sldm", ".vdi", ".vmdk", ".vmx", ".gpg", ".aes", ".ARC", ".PAQ", ".bz2", ".tbk", ".bak", ".tar", ".tgz", ".gz", ".7z", ".rar", ".zip", ".backup", ".iso", ".vcd", ".bmp", ".png", ".gif", ".raw", ".cgm", ".tif", ".tiff", ".nef", ".psd", ".ai", ".svg", ".djvu", ".m4u", ".m3u", ".mid", ".wma", ".flv", ".3g2", ".mkv", ".3gp", ".mp4", ".mov", ".avi", ".asf", ".mpeg", ".vob", ".mpg", ".wmv", ".fla", ".swf", ".wav", ".mp3", ".sh", ".class", ".jar", ".java", ".rb", ".asp", ".php", ".jsp", ".brd", ".sch", ".dch", ".dip", ".pl", ".vb", ".vbs", ".ps1", ".bat", ".cmd", ".js", ".asm", ".h", ".pas", ".cpp", ".c", ".cs", ".suo", ".sln", ".ldf", ".mdf", ".ibd", ".myi", ".myd", ".frm", ".odb", ".dbf", ".db", ".mdb", ".accdb", ".sql", ".sqlitedb", ".sqlite3", ".asc", ".lay6", ".lay", ".mml", ".sxm", ".otg", ".odg", ".uop", ".std", ".sxd", ".otp", ".odp", ".wb2", ".slk", ".dif", ".stc", ".sxc", ".ots", ".ods", ".3dm", ".max", ".3ds", ".uot", ".stw", ".sxw", ".ott", ".odt", ".pem", ".p12", ".csr", ".crt", ".key", ".pfx", ".der"

Sin embargo, no cifra archivos en directorios que contienen el string “.cache”, “tmp”, o “temp”.

El ransomware también deja archivos sin cifrar si la extensión del archivo es ".zip" o ".rar" y si el tamaño del archivo es superior a 51,200 KB/50 MB. Lo mismo con los archivos ".jpeg", ".jpg" y ".png" con un tamaño de archivo inferior a los 150 KB.

La lista de los tipos de archivos contiene algunos elementos no relacionados con Android y al mismo tiempo faltan algunas típicas extensiones de Android, como: apk, .dex, .so. Aparentemente, la lista ha sido copiada del ransomware WannaCryptor, también conocido como WannaCry.

Una vez que los archivos son cifrados, la extensión del archivo “.seven” es añadida al nombre original del archivo, tal como se puede observar en la Figura 11.

Figura 11. Archivos cifrados con la extensión “.seven”.

Mecanismo de descifrado

El código para descifrar archivos cifrados está presente en el ransomware. Si la víctima paga el rescate, el operador del ransomware puede verificarlo a través del sitio web que se observa en la Figura 12 y enviar la clave privada para descifrar los archivos.

Figura 12. Página web de verificación de pago del rescate

Cómo estar protegido

  • En primer lugar, mantenga sus dispositivos actualizados, idealmente configúrelos para parchear y actualizar automáticamente, de modo que pueda permanecer protegido incluso si no se encuentra entre los usuarios más expertos en seguridad.
  • Si es posible, quédese con Google Play u otras tiendas de aplicaciones acreditadas. Es posible que estas tiendas no estén completamente libres de aplicaciones maliciosas, pero sin dudas tendrá más posibilidades de evitarlas.
  • Antes de instalar cualquier aplicación, verifique su calificación y los comentarios. Concéntrese en los negativos, ya que a menudo provienen de usuarios legítimos, mientras que los atacantes suelen elaborar comentarios positivos.
  • Concéntrese en los permisos solicitados por la aplicación. Si parecen inadecuados para las funciones de la aplicación, evite descargar la aplicación.
  • Use una solución de seguridad móvil acreditada para proteger su dispositivo.

Indicadores de Compromiso (IoCs)

Hash ESET detection name
B502874681A709E48F3D1DDFA6AE398499F4BD23 Android/Filecoder.C
D5EF600AA1C01FA200ED46140C8308637F09DFCD Android/Filecoder.C
B502874681A709E48F3D1DDFA6AE398499F4BD23 Android/Filecoder.C
F31C67CCC0D1867DB1FBC43762FCF83746A408C2 Android/Filecoder.C

Bitcoin address
16KQjht4ePZxxGPr3es24VQyMYgR9UEkFy

Servers
http://rich7[.]xyz
http://wevx[.]xyz
https://pastebin[.]com/raw/LQwGQ0RQ

Contact e-mail address
h3athledger@yandex[.]ru

Affected Android versions
Android 5.1 and above