Interception d’une menace d’APT41 ciblant une vulnérabilité zero-day

Résumé analytique
Darktrace a détecté plusieurs attaques ciblées au début du mois de mars, bien avant que des signatures associées ne soient disponibles. Deux semaines plus tard, ces attaques furent attribuées au groupe de hackers chinois APT41.
APT41 a exploité la vulnérabilité zero-day CVE-2020-10189 de Zoho ManageEngine. Darktrace a automatiquement détecté et signalé l’attaque dès ses premières manifestations, et les clients ont réussi à contenir la menace avant qu’elle ne puisse agir.
Les intrusions décrites ici s’inscrivaient dans une campagne de grande envergure menée par APT41 dans le but d’obtenir un accès initial à autant d’entreprises que possible durant la fenêtre d’opportunité offerte par la vulnérabilité CVE-2020-10189.
Les rapports générés par Darktrace ont mis en évidence les différentes étapes de l’incident et leur champ d’action sous forme d’un récit de sécurité instructif. Sur la base de ces rapports, même un membre peu expérimenté de l’équipe de sécurité aurait pu intervenir sur cette attaque APT zero-day en moins de 5 minutes.
Lutte contre l’attaque internationale d’APT41
Début mars, Darktrace a détecté plusieurs attaques sophistiquées visant des clients situés aux États-Unis et en Europe. La majeure partie de ces clients travaillaient dans le secteur juridique. Les attaques partageaient les mêmes techniques, outils et procédures (TTP) et ciblaient des serveurs accessibles au public en exploitant des vulnérabilités récentes à fort impact. La semaine dernière, FireEye a attribué cette activité suspecte au groupe de cyberespionnage chinois APT41.
Cette campagne utilisait la vulnérabilité zero-day CVE-2020-10189 de Zoho ManageEngine dans le but d’accéder à différentes entreprises, mais pratiquement aucune action ultérieure à l’intrusion initiale n’a été détectée. Cette activité indiquait la mise en œuvre d’une campagne de grande envergure visant à obtenir un accès initial à autant d’entreprises que possible durant la fenêtre d’opportunité offerte par la vulnérabilité zero-day.
L’activité malveillante observée par Darktrace s’est produite le soir du dimanche 8 mars 2020, et le matin du 9 mars 2020 (UTC). Ces horaires correspondent globalement aux heures d’activité attribuées au groupe chinois de cyberespionnage APT41.
L’illustration ci-dessous présente un exemple de chronologie fourni par l’un des clients ciblés par APT41. Les attaques observées dans l’environnement des autres clients étaient identiques.

Figure 1 : Chronologie de l’attaque
Analyse technique
L’attaque décrite ici s’articulait autour de la vulnérabilité zero-day CVE-2020-10189 de Zoho ManageEngine. La majeure partie de l’attaque a manifestement été automatisée.
Nous avons observé l’intrusion initiale, suivie de plusieurs téléchargements, ainsi qu’un trafic de commande et contrôle (C2). Dans tous les cas, l’activité a été contenue avant d’atteindre d’autres étapes dans le cycle de vie de l’attaque, comme le déplacement latéral ou l’exfiltration de données.
La capture d’écran ci-dessous présente une vue d’ensemble des principales détections signalée par l’AI Analyst. L’outil a non seulement signalé le trafic C2 SSL et HTTP, mais aussi les téléchargements malveillants :

Figure 2 : Détection de C3 SSL par le Cyber AI Analyst

Figure 3 : Détection de téléchargement par le Cyber AI Analyst
Faille initiale
La faille a commencé par l’exploitation de la vulnérabilité zero-day CVE-2020-10189 de Zoho ManageEngine. Suite à cette intrusion, l’outil de ligne de commande Microsoft BITSAdmin a été utilisé pour récupérer et installer un fichier Batch malveillant, décrit ci-dessous :
install.bat (MD5: 7966c2c546b71e800397a67f942858d0) provenant de l’infrastructure 66.42.98[.]220 sur le port 12345.
Source : 10.60.50.XX
Destination : 66.42.98[.]220
Port de destination : 12345
Type de contenu : application/x-msdownload
Protocole : HTTP
Hôte : 66.42.98[.]220
URI : /test/install.bat
Méthode : GET
Code d’état : 200

Figure 4 : Connexion sortante pour récupérer un fichier batch
Peu de temps après la faille initiale, la première phase de Cobalt Strike Beacon LOADER a été téléchargée.

Figure 5 : Détection de Cobalt Strike Beacon LOADER
Trafic de commande et contrôle
Storesyncsvc.dll était un implant de Cobalt Strike Beacon (en version d’essai) qui s’est connecté à exchange.dumb1[.]com. Une résolution DNS réussie vers 74.82.201[.]8 a été identifiée, que Darktrace a interprétée comme une connexion SSL réussie à un nom d’hôte aux caractéristiques de DNS dynamiques.
Plusieurs connexions à exchange.dumb1[.]com ont été identifiées comme émettant un signal vers un centre C2. Ce trafic C2 vers l’implant initial Cobalt Strike Beacon a alors été utilisé pour télécharger une charge de seconde phase.
Il est intéressant de remarquer que l’activité de Teamviewer et le téléchargement de Notepad++ se sont produits au moment où le trafic C2 commençait dans certaines des attaques. Cela indique qu’APT41 essayait d’utiliser des outils courants plutôt que d’utiliser exclusivement les logiciels présents sur la machine. Il est très probable que l’utilisation de ces deux outils puisse être attribuée à l’intrusion, plutôt qu’à une activité ordinaire. Notepad++ n’était généralement pas utilisé dans l’environnement des clients ciblés, et Teamviewer non plus. En réalité, l’utilisation de ces applications était 100 % inhabituelle pour les entreprises cibles.
Téléchargement des outils d’attaque
CertUtil.exe, programme de ligne de commande installé dans le cadre de la certification de services, a ensuite été utilisé pour se connecter à l’extérieur et télécharger la charge de seconde phase.

Figure 6 : Darktrace détecte l’utilisation de CertUtil
Quelques heures après le téléchargement de ce fichier exécutable, la machine infectée a établi une connexion HTTP sortante pour demander l’identifiant URI /TzGG. Darktrace a interprété cette action comme le téléchargement d’un nouveau shellcode par Meterpreter pour Cobalt Strike Beacon.

Figure 7 : Détection associée à une activité de Meterpreter
Aucun déplacement latéral ni aucune exfiltration de données n’ont été observés.
Rapport du Cyber AI Analyst sur la faille zero-day
Darktrace a non seulement détecté cette campagne d’attaque zero-day, mais le Cyber AI Analyst a également fait gagner du temps aux équipes de sécurité en analysant différents événements de sécurité disparates et en générant un rapport permettant d’intervenir immédiatement.
La capture d’écran ci-dessous montre les incidents signalés par l’AI Analyst dans l’un des environnements infectés au cours des huit jours de la période d’intrusion. Le premier incident à gauche représente l’activité APT décrite ici. Les cinq autres incidents sont indépendants de l’activité APT et sont moins graves.

Figure 8 : Incidents de sécurité signalés par l’AI Analyst
L’AI Analyst a signalé six incidents au total au cours de la période de huit jours. Chaque rapport inclut une chronologie détaillée et un résumé de l’incident, dans un format compact qui se lit en moyenne en deux minutes. Avec le Cyber AI Analyst, même un employé non technique aurait pu mettre en œuvre une réponse à cet incident zero-day sophistiqué en moins de cinq minutes.
Conclusion
En l’absence d’indicateurs de compromission (IoC) publics, ou d’informations open source, ces attaques ciblées auraient été incroyablement difficiles à détecter. De plus, les meilleures décisions restent inutiles si elles ne sont pas immédiatement converties en actions concrètes menées par un analyste de sécurité. Cette situation arrive trop souvent, à cause du nombre trop élevé d’alertes, ou simplement parce que les compétences requises pour catégoriser et analyser les incidents sont trop restrictives.
Cette attaque faisait manifestement partie d’une campagne de grande envergure menée par APT41 pour obtenir un accès initial à plusieurs entreprises différentes, appartenant à différents secteurs d’activité. Même si l’attaque était très sophistiquée, APT41 a misé sur la vitesse aux dépens de la discrétion, en ciblant plusieurs entreprises simultanément. APT41 voulait exploiter au maximum la petite fenêtre d’opportunité ouverte par la faille zero-day Zoho avant qu’un correctif ne soit mis en place par les équipes informatiques.
La cyber IA de Darktrace est spécifiquement conçue pour détecter les signaux subtils d’attaques ciblées et inconnues dès leurs premières manifestations, sans s’appuyer sur des connaissances préalables ni sur des IoC. Elle agit en apprenant continuellement le modèle comportemental normal de chaque utilisateur de chaque appareil et des groupes de pairs associés, en partant de zéro.
Face à la récente campagne d’attaque zero-day menée par APT41, la capacité de l’IA à détecter les menaces inconnues grâce à l’IA auto-apprenante, et à soutenir les intervenants débordés en fournissant des analyses et des rapports basés sur l’IA, s’est avérée cruciale. En effet, la solution s’est assurée que les attaques étaient rapidement contenues avant de passer aux étapes suivantes du cycle de vie de l’attaque.
Indicateurs de compromission
Exemples de violations de modèles Darktrace :
- Anomalous File / Script from Rare External
- Anomalous File / EXE from Rare External Location
- Compromise / SSL to DynDNS
- Compliance / CertUtil External Connection
- Anomalous Connection / CertUtil Requesting Non Certificate
- Anomalous Connection / CertUtil to Rare Destination
- Anomalous Connection / New User-Agent to IP Without Hostname
- Device / Initial Breach Chain Compromise
- Compromise / Slow Beaconing Activity To External Rare
- Compromise / Beaconing Activity To External Rare
- Anomalous File / Numeric Exe Download
- Device / Large Number of Model Breaches
- Anomalous Server Activity / Rare External from Server
- Compromise / Sustained TCP Beaconing Activity To Rare Endpoint
- Compliance / Remote Management Tool On Server
La capture d’écran ci-dessous montre les violations de modèles Darktrace constatées simultanément pendant l’infiltration d’un client :

Figure 9 : Violations de modèles Darktrace se produisant simultanément
IoC réseau :
IoC | Commentaire |
66.42.98[.]220 | Faille initiale et téléchargement de charge malveillante |
74.82.201[.]8 | Résolution de DNS pour un domaine C2 |
exchange.dumb1[.]com | Domaine C2 principal |
91.208.184[.]78 | Domaine C2 Cobalt Strike secondaire |
IoC hôte :
IoC | Commentaire |
Nom de fichier | Hachage MD5 |
install.bat | 7966c2c546b71e800397a67f942858d0 |
storesyncsvc.dll | 5909983db4d9023e4098e56361c96a6f |
2.exe | 3e856162c36b532925c8226b4ed3481c |
TzGG | 659bd19b562059f3f0cc978e15624fd9 |
Observation des techniques MITRE ATT&CK
Accès initial | T1190 – Faille dans une application en contact avec le public T1133 – Services à distance externes |
Exécution | T1064 — Scripts |
Persistance | T1050 – Nouveau service T1197 – Tâches BITS |
Élévation des privileges | T1068 — Exploitation de l’élévation des privileges |
Contournement des systèmes de défense | T1055 – Injection de processus T1197 – Tâches BITS |
Découverte | |
Exfiltration | |
Commande et contrôle | T1043 – Ports fréquemment utilisés T1071 – Protocole standard de couche applicative T1132 – Chiffrement de données T1008 – Canaux de secours |