Votre entreprise est la cible d'une compromission ?

EvilQuest rassemble ransomware, spyware et vol de données en un seul malware

L’annonce de l’émergence d’une nouvelle menace macOS dotée de fonctionnalités de ransomware a suscité un énorme intérêt. Et pour cause. Portée à l’attention de la communauté macOS par Dinesh Devadoss, un analyste en malwares, cette menace a fait l’objet d’un examen approfondi de la part des chercheurs en sécurité, notamment Scott Knight, Patrick Wardle et notre propre équipe SentinelLabs. Leur excellent travail a permis de découvrir que cette menace, qui continue d’être développée activement, est bien plus qu’un nouveau ransomware parmi d’autres. En effet, il s’agit d’une des menaces les plus complexes ciblant la plateforme Mac observées à ce jour. Dans cet article, nous allons récapituler toutes les informations connues et vous détailler les dernières itérations.

Les nombreux noms d’EvilQuest, ThiefQuest et MacRansom.K

La menace a d’abord été nommée « EvilQuest » par les chercheurs de Malwarebytes, qui l’ont ensuite rebaptisée « ThiefQuest » quelques jours plus tard. Outre les deux noms suggérés par ces chercheurs, de nombreux moteurs VirusTotal l’appellent aussi MacRansom.K.

Cela a malheureusement entraîné une certaine confusion, non seulement autour de la menace, mais également de ses fonctionnalités.

Bien que la dénomination Mac.Ransom.K soit conforme à une convention reconnue (plateforme/type/variante), elle est problématique parce que cette menace n’est pas seulement, et peut-être même pas principalement, un ransomware. Dans la mesure où les auteurs de malwares actifs sur toutes les plateformes recyclent de plus en plus leur code pour offrir diverses fonctionnalités, la classification par type de menace n’est peut-être pas très utile.

Une convention de dénomination des malwares appropriée regrouperait idéalement les échantillons de malwares par caractéristiques communes. À cet égard, la caractéristique la plus courante dans les échantillons observés jusqu’à présent est la chaîne littérale (__cstring) « toidievitceffe », qui, à l’instar d’autres chaînes telles que « rennur.c » (c.runner), est manifestement formée à partir de mots anglais inversés :

echo 'toidievitceffe' | rev
effectiveidiot

Par ailleurs, nous voyons que les développeurs ont clairement utilisé « toidievitceffe » comme nom de leur projet Xcode.

D’autres chaînes inversées méritent notre attention, telles que « naughtycuckoo », « keylogger » et « filewatcher », car elles peuvent donner une meilleure idée de la véritable motivation du cyberpirate, comme nous l’expliquerons plus loin.

Dans certains échantillons, la chaîne inversée « effectiveidiot » apparaît plus de 60 fois, ce qui pourrait suggérer que les auteurs du malware eux-mêmes aimaient l’idée que les chercheurs en sécurité se servent de cette chaîne pour nommer la menace. Nous utilisons ici l’excellent outil FLOSS pour extraire les chaînes, au lieu de l’utilitaire d’extraction de chaînes natif :

Par ailleurs, la dissimulation de chaînes dans les échantillons récents indique que les développeurs ont délibérément placé le nom d’utilisateur « drozdovsky » et le nom de build « toidievitceffe », sans doute pour tenter de brouiller les pistes.

S’il est vrai que les conventions de dénomination des malwares ne revêtent pas une importance cruciale, elles n’en sont pas moins utiles, notamment pour les chercheurs et toute personne suivant l’évolution des discussions publiques et de la recherche. Bien qu’il existe de très bonnes raisons pour appeler cette nouvelle menace « OSX.EffectiveIdiot », il est sans doute trop tard pour faire marche arrière et la confusion autour de son nom va probablement persister. Les noms « EvilQuest » ou « ThiefQuest » l’emporteront probablement, ne serait-ce qu’en raison de leur utilisation généralisée dans les médias. Il faut dire que ce genre de nom est plutôt vendeur…

Chiffrement craqué : des fonctionnalités de ransomware juste pour la forme ?

Comme l’intérêt initial pour « EvilQuest/ThiefQuest » provenait du fait qu’il s’agissait d’un nouveau ransomware ciblant MacOS, penchons-nous d’abord sur cette question. Si les ransomwares sévissent durement dans les environnements Windows depuis quelque temps, il ne s’agit que du troisième ransomware en circulation connu ciblant MacOS. Cela est étrange en soi, puisque les Mac sont aujourd’hui largement utilisés dans les environnements d’entreprise, en particulier par les cadres dirigeants et les développeurs, deux cibles de choix pour les cybercriminels. Par conséquent, si l’émergence de ce qui apparaît comme un ransomware Mac est inhabituelle, elle n’est, dans un sens, pas inattendue.

Cependant, en tant que ransomware, « EvilQuest/ThiefQuest » ne remplit pratiquement aucun des critères de réussite. Pour commencer, si vous voulez extorquer de l’argent en chiffrant les fichiers des gens, votre chiffrement doit être inviolable. La cryptographie est une discipline complexe, et tous ceux qui sont assez intelligents pour la pratiquer vous diront une chose : n’essayez pas de créer votre propre chiffrement, vous commettrez des erreurs à coup sûr. Les opérateurs de ransomware les plus prospères sont suffisamment avisés pour suivre ce conseil et utilisent des algorithmes de chiffrement éprouvés, dont au moins un élément est asymétrique, c’est-à-dire qu’ils nécessitent l’accès à une clé privée détenue uniquement par le cyberpirate.

Les développeurs de « EffectiveIdiot » ont choisi de renoncer à cette option et ont opté pour un chiffrement à clé symétrique, c’est-à-dire que la clé qui chiffre un fichier est également utilisée pour le déchiffrer. Mieux encore, comme l’a découvert Jason Reaves, notre responsable de la recherche à SentinelLabs :

« (…) la clé en texte clair utilisée pour coder la clé de chiffrement du fichier est ajoutée à la clé de chiffrement du fichier codé. L’examen d’un fichier entièrement chiffré montre qu’un bloc de données y a été ajouté. »

Cela a permis à Jason et à l’équipe SentinelLabs de créer un outil de déchiffrement public qui peut être utilisé par toute personne ayant eu la malchance d’être victime de ce malware. Cette vidéo explique comment l’utiliser :

Regardez le déchiffreur du ransomware EvilQuest en action

En plus de s’assurer de l’inviolabilité de leur chiffrement, les opérateurs de ransomware veulent être grassement récompensés pour leurs efforts. Dans le cas du malware « EvilQuest/ThiefQuest », le premier indice qui éveille les soupçons concerne la demande de rançon à proprement parler.

Deux choses attirent l’attention : le montant incroyablement bas de la rançon et le fait que le message ne mentionne aucune adresse e-mail ni aucun autre moyen de contact permettant à la victime de communiquer avec le cybercriminel. Là encore, si l’on se réfère aux attaques ciblant les systèmes Windows, les opérateurs de ransomware ont développé des tactiques habiles et efficaces pour pousser les gens à payer. Elles reposent sur un mélange de menaces et de propos rassurants, voire sur une certaine forme de support clients. Rien de tout cela en l’occurrence. La demande de rançon se résume à : « Envoyez-nous votre argent, nous vous recontacterons ». Mais vous n’avez aucun moyen d’annoncer aux cybercriminels que vous avez payé, de leur fournir votre adresse de contact, de leur demander un échantillon de fichier chiffré ou tout autre élément d’identification. L’équivalent du peu encourageant « Ne nous appelez pas, nous vous appellerons ».

Sans surprise, les cybercriminels n’ont pas fait fortune. À ce jour, la seule adresse BitCoin connue commune à tous les échantillons n’a enregistré aucune transaction.

Pour terminer sur le composant de ransomware, SentinelLabs a également remarqué que la routine de déchiffrement, uncarve_target, n’a pas d’appel dans le code, ce qui suggère soit que la fonctionnalité est incomplète, soit que les auteurs n’ont jamais eu l’intention de proposer le déchiffrement (auquel cas, on peut supposer que la présence de la routine de déchiffrement dans le code est un artefact de tests antérieurs).

Qui partage ? Un voleur de données dans le dossier Partagé

À mesure que des détails tels que ceux mentionnés ci-dessus ont émergé, l’attention s’est tournée vers les autres fonctionnalités du malware, en particulier le fait qu’il télécharge et exécute trois scripts Python à partir du dossier /Utilisateurs/Partagé. Ces scripts sont destinés à rechercher et exfiltrer les fichiers portant des extensions particulières :

Les scripts varient selon les échantillons, mais au départ, les noms courts suivants étaient utilisés :

/Users/Shared/.dr
/Users/Shared/.p
/Users/Shared/.gp

De plus, les fonctionnalités de vol de données du malware sont verrouillées dans les binaires Mach-O invisibles déposés dans le dossier Bibliothèque de l’utilisateur.

Notez les chaînes chiffrées suivantes :

Nous pouvons utiliser un outil développé par Scott Knight, un autre chercheur macOS, pour les déchiffrer, ce qui révèle ce qui suit en texte clair :

bytearray(b'*id_rsa*/ix00')
bytearray(b'*.pem/ix00')
bytearray(b'*.ppk/ix00')
bytearray(b'known_hosts/ix00')
bytearray(b'*.ca-bundle/ix00')

Il semblerait que le malware recherche les clés SSH et les certificats approuvés afin de permettre aux cyberpirates de se connecter à distance et de manipuler les navigateurs Web de sorte qu’ils fassent confiance aux sites sans lancer d’avertissements de sécurité.

Comme d’autres chercheurs l’ont constaté, des appels d’API ciblant les événements matériels de bas niveau tels que les frappes témoignent de l’existence de fonctionnalités d’enregistrement des frappes. Notez la première moitié du nom de fonction, inversé, avec une possible faute de frappe pour « file » comme dans « klgr_flie » :

Il est également intéressant de noter que contrairement aux malwares d’effacement et à d’autres variantes de ransomware agressives conçues pour d’autres plateformes, le composant de ransomware n’interfère pas vraiment avec l’utilisation continue de l’équipement par l’utilisateur. Une simple boîte de dialogue d’alerte générée par osascript informe l’utilisateur de la situation :

L’utilisateur peut appuyer sur « OK » pour fermer la boîte de dialogue et continuer d’utiliser la machine, ce qui est très pratique pour les composants de spyware !

Une nouvelle variante interpelle un chercheur macOS

Une bonne partie des premiers détails techniques ont été publiés par Patrick Wardle,un chercheur macOS, et plutôt que de répéter tous ces détails ici, nous vous renvoyons via ce lien à ses excellentes publications sur le premier échantillon « AppQuest » identifié la semaine dernière. Patrick Wardle affirme que le malware possède des fonctionnalités virales et d’autres éléments semblent indiquer que le malware tente d’infecter les exécutables existants dans le dossier personnel de l’utilisateur, bien que ce comportement n’ait pas été observé dans nos tests.

Depuis les premières recherches, de nouvelles variantes sont apparues avec des chaînes et des chemins d’accès actualisés et codés de manière irréversible. En particulier, la méthode « react_ping » contient un clin d’œil aux recherches de Patrick Wardle sous la forme de la chaîne chiffrée « Hello Patrick ».

La version récente met également à jour l’adresse C2 codée de manière irréversible (167.71.237.219 dans la version précédente modifié en 159.65.147.28), et inclut l’outil de reporting « Knock Knock » de Patrick Wardle dans sa liste de logiciels à vérifier :

Parmi les autres nouveaux changements, citons l’utilisation de « abtpd » pour le libellé de l’exécutable. Le code suggère que « .ab**d » peut être une variante utilisée dans différentes installations, mais nous n’avons pas pu confirmer cela à l’heure de la rédaction de cet article. Au lieu d’utiliser le nom de dossier « AppQuest », l’agent de persistance pointe désormais vers un dossier créé par le cybercriminel et nommé « PrivateSync ».

De même, dans les premiers échantillons, un fichier invisible en texte clair contenant une chaîne de 43 octets a été déposé dans les dossiers/var/root/ et /Users/User1/ avec le nom « .ncspot ». Dans le dernier échantillon que nous avons testé, le fichier spot a été déposé aux mêmes endroits, mais cette fois avec le nom « .aespot ».

Compte tenu de la rapidité des itérations jusqu’à présent, nous nous attendons à ce que tous ces détails changent dans les prochains jours, voire les prochaines heures.

Protection contre le malware macOS EvilQuest/ThiefQuest

La plateforme SentinelOne protège efficacement votre entreprise contre EvilQuest/ThiefQuest.

Comment SentinelOne vous protège contre le ransomware macOS EvilQuest

Pour ceux d’entre vous qui ne sont pas protégés par SentinelOne, si vous avez été victime de ce malware, nous recommandons une restauration complète à partir d’une sauvegarde saine connue. Par ailleurs, en raison de l’enregistrement des frappes et d’autres fonctionnalités de spyware, il serait souhaitable de modifier tous les mots de passe et de réinitialiser les identifiants SSH et d’approbation des certificats.

Si certains de vos fichiers ont été chiffrés par EvilQuest, notre outil de déchiffrement public est disponible ici.

Conclusion

Qu’on l’appelle « EffectiveIdiot », « ThiefQuest » ou « EvilQuest », l’apparition de ce malware hybride alliant des fonctionnalités de ransomware, spyware et vol de données constitue un événement important. Elle a non seulement pris de nombreux outils de sécurité au dépourvu, mais elle a peut-être aussi poussé les victimes à continuer d’utiliser leurs machines infectées et à divulguer des données critiques tandis qu’elles cherchaient une solution au problème apparent des fichiers chiffrés. Comme toujours, nous invitons les utilisateurs macOS à prendre conscience du danger dès lors que les malwares ne sont plus l’apanage des environnements Windows et à s’assurer qu’ils bénéficient d’une protection adéquate.

Exemples de hachages

06974e23a3bf303f75c754156f36f57b960f0df79a38407dfdef9a1c55bf8bff Mach-O
d18daea336889f5d7c8bd16a4d6358ddb315766fa21751db7d41f0839081aee2 Mach-O
c5a77de3f55cacc3dc412e2325637ca7a2c36b1f4d75324be8833465fd1383d3 Mach-O

Indicateurs de compromission

/var/root/.aespot
~/.aespot
~/Library/LaunchAgents/com.apple.abtpd.plist
~/Library/PrivateSync/com.abtpd.questd
/Library/LaunchDaemons/com.apple.abtpd.plist
/Library/PrivateSync/com.abtpd.questd