Le nouveau rançongiciel CryCryptor cible les utilisateurs d'Android au Canada. Il est distribué sur deux sites web sous le couvert d'une application officielle de traçage COVID-19 fournie par Santé Canada. Les chercheurs d'ESET ont analysé le rançongiciel et ont créé un outil de déchiffrement pour les victimes.
CryCryptor a fait surface quelques jours seulement après que le gouvernement canadien ait officiellement annoncé son intention de soutenir le développement d'une application de traçage volontaire à l'échelle nationale appelée COVID Alert. L'application officielle doit être déployée pour être testée en Ontario dès le mois prochain.
ESET a informé le Centre canadien pour la cybersécurité de cette menace dès qu'elle a été identifiée.
Une fois que l'utilisateur est victime de CryCryptor, le rançongiciel chiffre les fichiers sur l'appareil – plus précisément les types de fichiers les plus courants. Au lieu de verrouiller l'appareil, il laisse cependant un fichier « readme » avec le courrier électronique de l'attaquant dans chaque répertoire contenant des fichiers chiffrés.Heureusement, nous avons pu créer un outil de déchiffrement pour les victimes de ce rançongiciel.
Une fois que ce tweet nous a fait prendre conscience de l’existence de ce rançongiciel (le chercheur qui l'a découvert a par erreur étiqueté ce logiciel malveillant comme un cheval de Troie bancaire), nous avons analysé l'application. Nous avons découvert un bug du type « Improper Export of Android Components » (ou « exportation illégitime des composantes Android ») que MITRE désigne sous CWE-926.
En raison de ce bogue, toute application installée sur l'appareil concerné peut lancer n'importe quel service exporté fourni par le rançongiciel. Cela nous a permis de créer l'outil de déchiffrement - une application qui lance la fonctionnalité de déchiffrement intégrée dans l'application du rançongiciel par ses créateurs.
Chiffrement/fonctionnalité
Après le lancement, le rançongiciel demande à accéder aux fichiers sur l'appareil. Après avoir obtenu cette autorisation, il chiffre les fichiers sur des supports externes avec certaines extensions, qui sont indiquées dans la figure 2.
Les fichiers sélectionnés sont chiffrés par un AES avec une clé de 16 caractères générés de manière aléatoire. Après que CryCryptor a chiffré un fichier, trois nouveaux fichiers sont créés, et le fichier original est supprimé. Le fichier chiffré porte l'extension ".enc" et l'algorithme génère un sel unique pour chaque fichier chiffré, stocké avec l'extension ".enc.salt"; et un vecteur d'initialisation, ".enc.iv".
Une fois que tous les fichiers cibles sont chiffrés, CryCryptor affiche le message suivant : « Personal files encrypted, see readme_now.txt » (qui signifie : « Fichiers personnels chiffrés, voir readme_now.txt". Le fichier readme_now.txt est placé dans chaque répertoire contenant des fichiers chiffrés.
Déchiffrement
Le service responsable du déchiffrement des fichiers dans CryCryptor a la clé de chiffrement stockée dans les préférences partagées, ce qui signifie qu'il n'a pas besoin de contacter un C&C pour la récupérer. Il est important de noter que le service est exporté sans aucune restriction dans le Manifeste Android (faiblesse de sécurité CWE-926), ce qui signifie qu'il est possible de le lancer de l’extérieur.
Sur cette base, nous avons créé une application de déchiffrement Android pour les personnes concernées par le rançongiciel CryCryptor. Naturellement, l'application de déchiffrement ne fonctionne que sur cette version de CryCryptor.
Une nouvelle famille de rançongiciel
Le rançongiciel CryCryptor est basé sur le code source ouvert de GitHub. Nous l'y avons découvert grâce à une simple recherche basée sur le nom du paquet de l'application et quelques chaînes de caractères qui semblaient uniques.
Les développeurs de ce logiciel, qui l'ont nommé CryDroid, devaient savoir que le code serait utilisé à des fins malveillantes. Afin de déguiser le projet en recherche, ils prétendent avoir téléchargé le code sur le service VirusTotal. Bien que l'on ne sache pas exactement qui a téléchargé l'échantillon, il est effectivement apparu sur VirusTotal le jour même où le code a été publié sur GitHub.
Nous rejetons l'affirmation selon laquelle le projet a des objectifs de recherche - aucun chercheur responsable ne rendrait public un outil facile à utiliser à des fins malveillantes.
Nous avons informé GitHub de la nature de ce code.
Les produits ESET offrent une protection contre le rançongiciel CryCryptor, en le détectant comme Trojan.Android/CryCryptor.A. En plus d'utiliser une solution de sécurité mobile de qualité, nous conseillons aux utilisateurs d'Android d'installer des applications provenant uniquement de sources réputées telles que la boutique Google Play.
Chronologie :
- 11 juin 2020 : publication du code source de CryDroid v1.1
- 11 juin 2020 : code téléchargé sur VirusTotal
- 12 juin 2020 : le premier domaine malveillant qui a distribué cet échantillon a été enregistré
- 18 juin 2020 : une application malveillante (ce logiciel Android) a été compilée (sur la base de son certificat)
- 21 juin 2020 : enregistrement du deuxième domaine malveillant qui a distribué cet échantillon
- 23 juin 2020 : ESET informe le Centre canadien pour la cybersécurité
- 23 juin 2020 : les deux domaines ont cessé de répondre
Nous avons préparé une vidéo [en anglais] qui montre le processus de chiffrement et de déchiffrement, ainsi que notre explication.
Indicateurs de compromission (IoCs)
Package name | Hash | ESET detection name |
---|---|---|
com.crydroid | 322AAB72228B1A9C179696E600C1AF335B376655 | Trojan.Android/CryCryptor.A |
Liens de distribution
https://covid19tracer[.]ca/
https://tracershield[.]ca/
Techniques 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 |