Le nouveau malware DazzleSpy cible les utilisateurs de macOS dans une attaque par point d’eau

Apple logo with red background

Une nouvelle attaque trou d’eau a été découverte ciblant les utilisateurs de macOS et les visiteurs d’un site Web de station de radio pro-démocratie à Hong Kong et les infectant avec le logiciel malveillant DazzleSpy.

Comme l’ont détaillé les chercheurs d’ESET qui ont enquêté sur la campagne, cela fait partie de la même opération que le Project Zero de Google a révélé il y a deux semaines, qui a exploité Chrome et Windows zero-days pour pirater les appareils Windows et Android.

Le rapport d’ESET se concentre plutôt sur l’exploitation d’une faille WebKit dans le navigateur Web Safari, ajoutant essentiellement la dernière pièce du puzzle et confirmant que la campagne ciblait toutes les principales plates-formes.

Les attaques par points d’eau impliquent l’infection d’un site Web légitime par des logiciels malveillants, ciblant la démographie de ce site et, dans certains cas, uniquement des adresses IP spécifiques.

Cibler les militants

Basée sur les sites Web utilisés pour propager les exploits, la campagne cible les défenseurs de la liberté d’expression, l’indépendance et les militants politiques.

L’administration centrale chinoise a été restreindre les droits politiques et privilèges spéciaux dont ont bénéficié les citoyens de Hong Kong ces dernières années, et allégations d’espionnage d’activistes ont été abondants.

Ce n’est pas la première fois que l’État chinois est accusé de mener une surveillance agressive contre les minorités en utilisant des logiciels malveillants déployés par le biais d’attaques de points d’eau.

Dans ce cas, l’un des sites Web qui a livré des exploits à des victimes sans méfiance est celui de la radio Internet D100, une station pro-démocratie qui entretient des sentiments anti-Pékin.

Site de la radio D100
Site de la radio D100

L’autre exemple est un faux site Web qui a tenté d’attirer les militants de la libération en utilisant le « fightforhk[.]com » qui n’a été enregistré qu’en octobre 2021.

Portail des faux activistes
Portail des faux activistes
Source : ESET

La chaîne d’exploitation macOS

Ces deux sites Web, et peut-être d’autres, comportent une iframe malveillante qui pointe vers un domaine qui vérifie la version de macOS et redirige vers l’étape suivante, qui charge le code JavaScript de l’exploit.

Iframe malveillant qui déclenche le début de l'exploit
Iframe malveillant qui déclenche le début de l’exploit
Source : ESET

Les cibles d’exploitation CVE-2021-1789une faille d’exécution de code arbitraire déclenchée lors du traitement de contenu Web et affectant les versions de Safari inférieures à 14.1.

« L’exploit repose sur un effet secondaire causé par la modification d’une propriété d’objet pour qu’elle soit accessible via une fonction « getter » tout en énumérant les propriétés de l’objet dans le code compilé par JIT », explique Le rapport d’ESET.

« Le moteur JavaScript spécule à tort que la valeur de la propriété est mise en cache dans un tableau et n’est pas le résultat de l’appel de la fonction getter. »

L’exploit implémente deux primitives (‘addrof’ et ‘fakeobj’) pour obtenir un accès en lecture et en écriture à la mémoire, tandis qu’il contient également du code qui aide à contourner les atténuations comme ‘Gigacage’ et charge l’étape suivante.

L’étape suivante est une élévation de privilèges vers root, qui s’effectue via un fichier Mach-O chargé en mémoire et exécuté.

La vulnérabilité exploitée pour obtenir une élévation de privilèges est CVE-2021-30869qui permet à une application d’exécuter du code arbitraire avec les privilèges du noyau.

En résumé, le Mach-O exécuté fait ce qui suit :

  • Télécharge un fichier à partir de l’URL fournie en argument
  • Déchiffre ce fichier en utilisant AES-128-EBC et TEA avec un delta personnalisé
  • Écrit le fichier résultant dans $TMPDIR/airportpaird et le rend exécutable
  • Utilise l’exploit d’escalade de privilèges pour supprimer l’attribut com.apple.quarantine du fichier afin d’éviter de demander à l’utilisateur de confirmer le lancement de l’exécutable non signé
  • Utilise la même élévation de privilèges pour lancer l’étape suivante avec les privilèges root

DazzleEspion

La dernière étape du processus consiste à supprimer DazzleSpy, une porte dérobée riche en fonctionnalités qui comprend un large éventail de fonctionnalités malveillantes.

DazzleSpy établit la persistance sur le système compromis en ajoutant un nouveau fichier de liste de propriétés au dossier ‘LaunchAgents’. Son exécutable se cache dans $HOME/.local/ sous le nom trompeur ‘softwareupdate’.

Nouvelle entrée de la liste des propriétés
Nouvelle entrée de la liste des propriétés
Source : ESET

Le logiciel malveillant dispose d’une adresse de serveur C2 codée en dur et peut en accepter plusieurs commandes, la plus importante étant :

  • info – Recueillir des informations système telles que l’adresse IP et le SSID Wi-Fi.
  • ScanFiles – Énumérer les fichiers dans les dossiers Bureau, Téléchargements et Documents
  • cmd – Exécute la commande shell
  • RDP – Démarrer une session d’écran à distance
  • downloadFile – Exfiltrer un fichier du système
  • processInfo – Énumérer les processus en cours d’exécution
  • acceptFile – Écrit un fichier sur le disque

ESET commente que le DazzleSpy contient plusieurs artefacts résultant d’une écriture de code bâclée et d’un mépris de la sécurité opérationnelle.

Il existe de nombreux indices qui indiquent l’origine de la porte dérobée, comme les messages d’erreur internes, qui sont écrits en chinois, et la conversion des horodatages exfiltrés vers le fuseau horaire chinois avant d’atteindre le C2.

Message d'erreur interne en chinois
Message d’erreur interne en chinois
Source : ESET

Enfin, DazzleSpy propose un cryptage de bout en bout dans ses communications, et si un intermédiaire insère un proxy d’inspection TLS entre les deux, il arrête d’envoyer des données au C2.