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.

Figure 1. L'un des sites Web de distribution malveillante. L'autre a une conception identique et ne diffère que par son domaine, covid19tracer[.]ca.

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.

Figure 2. Extensions des fichiers à chiffrer

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".

Figure 3. Fichiers après le chiffrement

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.

Figure 4. Notification de chiffrement de fichiers (à gauche) et contenu du fichier readme_now.txt (à droite)

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.

Figure 5. Le rançongiciel open source

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