El nuevo ransomware, llamado CryCryptor, ha estado apuntando a usuarios de dispositivos Android en Canadá. El malware se ha estado distribuyendo a través de dos sitios web simulando ser una aplicación oficial para el rastreo de casos vinculados al COVID-19 proporcionada por Health Canada. Los investigadores de ESET analizaron el ransomware y crearon una herramienta de descifrado para las víctimas.
CryCryptor apareció solo unos días después de que el gobierno de Canadá anunciara oficialmente su intención de respaldar el desarrollo de una aplicación de rastreo (voluntaria) para todo el territorio nacional llamada “COVID Alert”. La aplicación oficial se lanzará bajo prueba en la provincia de Ontario el próximo mes.
ESET informó al Centro Canadiense para la Ciberseguridad sobre esta amenaza tan pronto como fue identificada.
Una vez que el usuario es víctima de CryCryptor, el ransomware cifra los archivos en el dispositivo (los tipos de archivos más comunes) pero en lugar de bloquear el equipo, deja un archivo "readme" que contiene la dirección de correo del atacante en cada directorio que contiene archivos cifrados.
Afortunadamente, pudimos crear una herramienta de descifrado para aquellos que son víctimas de este ransomware.
Después de detectar un tweet que trajo este ransomware a nuestro radar (el investigador que lo descubrió catalogó erróneamente el malware como un troyano bancario), analizamos la aplicación. Descubrimos un fallo del tipo "Exportación incorrecta de componentes de Android" que MITRE etiqueta como CWE-926.
Debido a este fallo, cualquier aplicación que esté instalada en el dispositivo afectado puede iniciar cualquier servicio exportado proporcionado por el ransomware. Esto nos permitió crear la herramienta de descifrado, una app que ejecuta la funcionalidad de descifrado incorporada por sus creadores en la app de ransomware.
Cifrado/funcionalidad
Luego de ser iniciado, el ransomware solicita acceder a los archivos en el dispositivo. Una vez que obtiene ese permiso, cifra archivos con determinadas extensiones, como las que se observan en la Figura 2.
Los archivos seleccionados por la amenaza son cifrados utilizando AES con una clave de 16 caracteres generada aleatoriamente. Después de que el ransomware CryCryptor cifra un archivo, se crean tres archivos nuevos y se elimina el archivo original. El archivo cifrado tiene la extensión ".enc", y el algoritmo genera una sal para cada archivo cifrado, el cual es almacenado con la extensión ".enc.salt" ; y un vector de inicialización, ".enc.iv".
Luego de cifrar los archivos, CryCryptor despliega una mensaje que dice "Archivos personales cifrados, consulte readme_now.txt". El archivo readme_now.txt es colocado en cada directorio que contiene archivos cifrados.
Descifrado
El servicio responsable del descifrado de archivos en CryCryptor tiene la clave de cifrado almacenada en las preferencias compartidas, lo que significa que no tiene que contactar a ningún C&C para recuperarla. Es importante destacar que el servicio se exporta sin restricciones en el Manifiesto de Android (CWE-926), lo que significa que es posible iniciarlo externamente.
Teniendo esto en cuenta, creamos una aplicación de descifrado para aquellos afectados por el ransomware CryCryptor en Android. Naturalmente, la aplicación de descifrado solo funciona en esta versión del ransomware CryCryptor.
Una nueva familia de ransomware
El ransomware CryCryptor se basa en código open source en GitHub. Lo descubrimos allí realizando una simple búsqueda basada en el nombre del paquete de la aplicación y en algunas strings que parecían ser únicas.
Los desarrolladores del ransomware open source, al cual llamaron CryDroid, deben haber sabido que el código se usaría con fines maliciosos. En un intento por hacer ver el proyecto en el repositorio como una investigación, afirman que subieron el código al servicio VirusTotal. Si bien no está claro quién subió la muestra, la realidad es que apareció en VirusTotal el mismo día en que se publicó el código en GitHub.
Igualmente, descartamos la afirmación de que el proyecto tiene fines de investigación: ningún investigador responsable lanzará públicamente una herramienta que sea fácil de usar con fines maliciosos.
Notificamos a GitHub sobre la naturaleza de este código.
Los productos ESET brindan protección contra el ransomware CryCryptor, el cual detectan como Trojan.Android/CryCryptor.A. Además de utilizar una solución de seguridad para dispositivos móviles de calidad, recomendamos a los usuarios de Android que instalen aplicaciones solo de fuentes confiables, como la tienda Google Play.
Cronología:
- 11 de junio de 2020: código fuente publicado - CryDroid v1.1
- 11 de junio de 2020: código cargado en VirusTotal
- 12 de junio de 2020: se registró el primer dominio malicioso utilizado para distribuir esta muestra
- 18 de junio de 2020: una aplicación maliciosa (este ransomware de Android) fue compilada (según su certificado)
- 21 de junio de 2020: se registró el segundo dominio malicioso utilizado para distribuir esta muestra
- 23 de junio de 2020: ESET informa al Centro Canadiense de Seguridad Cibernética
- 23 de junio de 2020: los dos dominios dejaron de responder
Preparamos un video que muestra el proceso de cifrado y descifrado, junto con nuestra explicación.
Indicadores de Compromiso (IoCs)
Package name | Hash | ESET detection name |
---|---|---|
com.crydroid | 322AAB72228B1A9C179696E600C1AF335B376655 | Trojan.Android/CryCryptor.A |
Enlaces de distribution
https://covid19tracer[.]ca/
https://tracershield[.]ca/
Técnicas de MITRE ATT&CK
Tactic | ID | Name | Description |
---|---|---|---|
Initial Access | T1476 | Deliver Malicious App via Other Means | The malware is downloaded from a fake website |
Initial Access | T1444 | Masquerade as Legitimate Application | It impersonates COVID-19 tracking app |
Persistence | T1402 | App Auto-Start at Device Boot | It listens for the BOOT_COMPLETED broadcast, ensuring that the app's functionality will be activated every time the device starts |
Impact | T1471 | Data Encrypted for Impact | Encrypts files with particular file extensions found on external media |