À la fin de l'année dernière, nous avons découvert des attaques ciblées contre des entreprises aérospatiales et militaires en Europe et au Moyen-Orient, actives de septembre à décembre 2019. Une enquête menée en collaboration avec deux des entreprises européennes concernées nous a permis de mieux comprendre l'opération et de découvrir des logiciels malveillants jusqu'alors inconnus.

Cet article fera la lumière sur le déroulement des attaques. Vous trouverez l'intégralité de la recherche dans notre white paper Opération In(ter)ception : Attaques ciblées contre les entreprises européennes de l'industrie aérospatiale et militaire [en anglais].

Les attaques, que nous avons baptisées Opération In(ter)ception sur la base d'un échantillon de logiciel malveillant connexe nommé Inception.dll, étaient très ciblées et visaient clairement à rester sous le radar.

Pour compromettre leurs cibles, les attaquants ont eu recours à l'ingénierie sociale via LinkedIn, se cachant derrière la ruse des offres d'emploi attrayantes, mais fausses. Après avoir pris pied, les attaquants ont déployé leurs logiciels malveillants personnalisés à plusieurs niveaux, ainsi que des outils à code source ouvert modifiés. Outre les logiciels malveillants, les adversaires ont utilisé diverses tactiques, abusant d'outils légitimes et des fonctions du système d'exploitation. Plusieurs techniques ont été utilisées pour éviter la détection, notamment la signature de code, la recompilation régulière de logiciels malveillants et l'usurpation d'identité de logiciels et d'entreprises légitimes.

Selon notre enquête, le but premier de l'opération était l'espionnage. Cependant, dans l'un des cas sur lesquels nous avons enquêté, les attaquants ont tenté de monétiser l'accès au compte de messagerie d'une victime par une attaque de compromission de messagerie d'entreprise (BEC) comme étape finale de l'opération.

Bien que nous n'ayons pas trouvé de preuves solides reliant les attaques à un acteur connu de la menace, nous avons découvert plusieurs indices suggérant un lien possible avec le groupe Lazarus, y compris des similitudes dans le ciblage, l'environnement de développement et les techniques anti-analyse utilisées.

Compromission initiale

Dans le cadre de la phase initiale de compromission, les attaquants de l'opération In(ter)ception avaient créé de faux comptes LinkedIn en se faisant passer pour des représentants en ressources humaines de sociétés bien connues dans les secteurs de l'aérospatiale et de la défense. Dans le cadre de notre enquête, nous avons vu des profils se faisant passer pour Collins Aerospace (anciennement Rockwell Collins) et General Dynamics, deux grandes entreprises américaines dans ce domaine.

Une fois les profils établis, les attaquants ont recherché les employés des entreprises ciblées et leur ont envoyé des offres d'emploi fictives en utilisant la fonction de messagerie de LinkedIn, comme le montre la figure 1. (Notez que les faux comptes LinkedIn n'existent plus).

Figure 1. Une fausse offre d'emploi envoyée via LinkedIn aux employés d'une des entreprises ciblées

Une fois que les attaquants ont eu l'attention des cibles, ils ont introduit en douce des fichiers malveillants dans la conversation, déguisés en documents liés à l'offre d'emploi en question. La figure 2 montre un exemple d'une telle communication.

Figure 2. Communication entre les agresseurs et un employé de l'une des entreprises visées

Pour envoyer les fichiers malveillants, les attaquants ont utilisé soit directement LinkedIn, soit une combinaison de courrier électronique et de OneDrive. Pour cette dernière option, les attaquants ont utilisé de faux comptes de courrier électronique correspondant à leurs fausses personnalités LinkedIn, et ont inclus des liens OneDrive hébergeant les fichiers.

Le fichier partagé était une archive RAR protégée par un mot de passe et contenant un fichier LNK. Lorsqu'il est ouvert, le fichier LNK lance une invite de commande qui ouvre un fichier PDF distant dans le navigateur par défaut de la cible.

Ce PDF, qui semblait contenir des informations salariales pour les postes réputés, a en réalité servi de leurre; en arrière-plan, l'invite de commande a créé un nouveau dossier et a copié l'utilitaire de ligne de commande WMI (WMIC.exe) dans ce dossier, en renommant l'utilitaire au passage. Enfin, il a créé une tâche planifiée, définie pour exécuter périodiquement un script XSL distant via le fichier WMIC.exe copié.

Cela a permis aux attaquants de prendre pied dans l'entreprise ciblée et de s'imposer sur l'ordinateur compromis. La figure 3 illustre les étapes menant au compromis.

Figure 3. Scénario d'attaque, du premier contact au compromis

Outils et techniques utilisés par les attaquants

Les attaquants de l'opération In(ter)ception ont utilisé un certain nombre d'outils malveillants, notamment des logiciels malveillants personnalisés et à plusieurs niveaux, ainsi que des versions modifiées d'outils à code source ouvert.

Nous avons observé les éléments suivants :

  • Téléchargeur personnalisé (étape 1)
  • Porte dérobée personnalisée (étape 2)
  • Une version modifiée de PowerShdll - un outil permettant d'exécuter le code PowerShell sans l'utilisation de powershell.exe
  • Chargeurs de DLL personnalisés utilisés pour exécuter le logiciel malveillant personnalisé
  • DLL Beacon, probablement utilisée pour vérifier les connexions aux serveurs distants
  • Une version personnalisée de dbxcli- un client de ligne de commande à code source ouvert pour Dropbox; utilisé pour l'exfiltration des données

Dans un scénario typique, la première phase du logiciel malveillant- soit le téléchargeur personnalisé - a été téléchargé par le script XSL distant (décrit dans la section Compromission initiale) et exécuté à l'aide de l'utilitaire rundll32. Cependant, nous avons également vu des cas où les attaquants ont utilisé un de leurs chargeurs DLL personnalisés pour exécuter la phase 1 du logiciel malveillant. L'objectif principal du téléchargeur personnalisé est de télécharger la charge utile de la phase 2 et de l'exécuter dans sa mémoire.

La charge utile de la phase 2 est une porte dérobée modulaire sous la forme d'une DLL écrite en C++. Il envoie périodiquement des requêtes au serveur et effectue des actions définies en fonction des commandes reçues, comme envoyer des informations de base sur l'ordinateur, charger un module ou modifier la configuration. Bien que nous n'ayons pas récupéré de modules reçus par la porte dérobée de son serveur C&C, nous avons trouvé des indications qu'un module a été utilisé pour télécharger le PowerShdll.

Outre les logiciels malveillants, les adversaires ont utilisé des tactiques de survie à l'extérieur, abusant d'outils légitimes et des fonctions du système d'exploitation pour effectuer diverses opérations malveillantes, dans une tentative de passer inaperçues. Quant aux techniques spécifiques, nous avons constaté que les attaquants utilisaient WMIC pour interpréter les scripts XSL distants, certutil pour décoder les charges utiles téléchargées codées en base64, ainsi que rundll32 et regsvr32, pour exécuter leurs logiciels malveillants personnalisés.

La figure 4 montre comment les différents composants ont interagi pendant l'exécution du logiciel malveillant.

Figure 4. Flux d'exécution du logiciel malveillant

En plus des techniques de vie à terre, nous avons constaté que les attaquants faisaient un effort particulier pour ne pas être détectés.

Tout d'abord, les attaquants ont déguisé leurs fichiers et dossiers en leur donnant des noms à consonance légitime. À cette fin, les attaquants ont utilisé abusivement les noms de logiciels et de sociétés connus, tels que Intel, NVidia, Skype, OneDrive et Mozilla. Par exemple, nous avons trouvé des fichiers malveillants avec les chemins d'accès suivants :

  • C:\ProgramData\DellTPad\DellTPadRepair.exe
  • C:\Intel\IntelV.cgi

Il est intéressant de noter que ce ne sont pas seulement les fichiers malveillants qui ont été renommés - les attaquants ont également manipulé les utilitaires Windows dont ils ont abusé. Ils ont copié les utilitaires dans un nouveau dossier (par exemple. C:\NVIDIA) et les ont renommés (par exemple, regsvr32.exe a été renommé NvDaemon.exe).

Deuxièmement, les attaquants ont signé numériquement certains composants de leurs logiciels malveillants, à savoir le téléchargeur personnalisé et la porte dérobée, ainsi que l'outil dbxcli. Le certificat a été délivré en octobre 2019 - alors que les attaques étaient actives - à 16:20 Software, LLC. Selon nos recherches, 16:20 Software, LLC est une société existante basée en Pennsylvanie, aux États-Unis, constituée en mai 2010.

Troisièmement, nous avons constaté que la phase 1 du logiciel malveillant a été recompilée plusieurs fois pendant l'opération.

Enfin, les attaquants ont également mis en œuvre des techniques anti-analyse dans leurs logiciels malveillants personnalisés, comme l'aplatissement du flux de contrôle et le chargement dynamique des API.

Collecte de données et exfiltration

D'après nos recherches, les attaquants ont utilisé une construction personnalisée de dbxcli, un client de ligne de commande open-source pour Dropbox, pour exfiltrer les données recueillies auprès de leurs cibles. Malheureusement, ni l'analyse des logiciels malveillants ni l'enquête ne nous ont permis de savoir quels fichiers les attaquants de l'opération In(ter)ception recherchaient. Cependant, les titres de postes des employés ciblés via LinkedIn suggèrent que les attaquants étaient intéressés par des informations techniques et commerciales.

Arnaque au président (BEC)

Dans l'un des cas étudiés, les attaquants ne se sont pas arrêtés à l'exfiltration des données - comme étape finale de l'opération, ils ont tenté de monétiser l'accès au compte de courrier électronique d'une victime par une attaque BEC.

Tout d'abord, en tirant parti des communications existantes dans les courriels de la victime, les attaquants ont tenté de manipuler un client de l'entreprise ciblée pour qu'il paie une facture en suspens sur son compte bancaire, comme le montre la figure 5. Pour la communication avec le client, ils ont utilisé leur propre adresse électronique en imitant celle de la victime.

Ici, les agresseurs n'ont pas réussi - au lieu de payer la facture, le client a répondu par des demandes de renseignements sur la somme demandée. Comme les agresseurs ont poussé le client à payer, celui-ci a fini par contacter l'adresse électronique correcte de la victime à ce sujet, ce qui a déclenché une alarme du côté de la victime.

Figure 5. Courriel frauduleux envoyé depuis le compte de messagerie électronique compromis d'une victime

Indices pour l’attribution

Bien que notre enquête n'ait pas révélé de preuves irréfutables liant les attaques à un acteur connu de la menace, nous avons identifié plusieurs indices suggérant un lien possible avec le groupe Lazarus. Nous avons notamment constaté des similitudes dans le ciblage, l'utilisation de faux comptes LinkedIn, l'environnement de développement et les techniques d'anti-analyse utilisées. En outre, nous avons vu une variante de la phase 1 du logiciel malveillant, qui transportait un échantillon de Win32/NukeSped.FX, qui appartient à un ensemble d'outils malveillants qu'ESET attribue au groupe Lazarus.

Conclusion

Notre enquête a mis au jour une opération très ciblée, remarquable par son schéma d'ingénierie sociale convaincant, basé sur LinkedIn, ses logiciels malveillants modulaires personnalisés et ses astuces d'évasion pour la détection. Il est intéressant de noter que si l'opération In(ter)ception a montré tous les signes du cyberespionnage, les attaquants avaient apparemment aussi pour objectif le gain financier, comme le montre la tentative d'attaque BEC.

Nous remercions tout particulièrement Michal Cebák pour son travail dans le cadre de cette enquête.

Pour la description complète des attaques, ainsi que l'analyse technique des logiciels malveillants et des indicateurs de compromission (IoC) jusqu'alors non documentés, nous vous invitons à consulter notre white paper : Opération In(ter)ception : Attaques ciblées contre les entreprises européennes de l'industrie aérospatiale et militaire.

Les IoC collectées lors des attaques peuvent également être trouvées dans le répertoire GitHub d'ESET.

Techniques MITRE ATT&CK

Tactic ID Name Description
Initial Access T1194 Spearphishing via Service LinkedIn is used to contact the target and provide a malicious attachment.
Execution T1059 Command-Line Interface cmd.exe used to create a scheduled task to interpret a malicious XSL script via WMIC.
T1106 Execution through API Malware uses CreateProcessA API to run another executable.
T1086 PowerShell A customized .NET DLL is used to interpret PowerShell commands.
T1117 Regsvr32 The regsvr32 utility is used to execute malware components.
T1085 Rundll32 The rundll32 utility is used to execute malware components.
T1053 Scheduled Task WMIC is scheduled to interpret remote XSL scripts.
T1047 Windows Management Instrumentation WMIC is abused to interpret remote XSL scripts.
T1035 Service Execution A service is created to execute the malware.
T1204 User Execution The attacker relies on the victim to extract and execute a LNK file from a RAR archive received in an email attachment.
T1220 XSL Script Processing WMIC is used to interpret remote XSL scripts.
Persistence T1050 New Service A service is created to ensure persistence for the malware.
T1053 Scheduled Task Upon execution of the LNK file, a scheduled task is created that periodically executes WMIC.
Defense Evasion T1116 Code Signing Malware signed with a certificate issued for “16:20 Software, LLC”.
T1140 Deobfuscate/Decode Files or Information certutil.exe is used to decode base64-encoded malware binaries.
T1070 Indicator Removal on Host Attackers attempt to remove generated artifacts.
T1036 Masquerading Malware directories and files are named as, or similar to, legitimate software or companies.
T1027 Obfuscated Files or Information Malware is heavily obfuscated and delivered in base64-encoded form.
T1117 Regsvr32 The regsvr32 utility is used to execute malware components.
T1085 Rundll32 The rundll32 utility is used to execute malware components.
T1078 Valid Accounts Adversary uses compromised credentials to log into other systems.
T1220 XSL Script Processing WMIC is used to interpret remote XSL scripts.
Credential Access T1110 Brute Force Adversary attempts to brute-force system accounts.
Discovery T1087 Account Discovery Adversary queries AD server to obtain system accounts.
T1012 Query Registry Malware has ability to query registry to obtain information such as Windows product name and CPU name.
T1018 Remote System Discovery Adversary scans IP subnets to obtain list of other machines.
T1082 System Information Discovery Malware has ability to gather information such as Windows product name, CPU name, username, etc.
Collection T1005 Data from Local System Adversary collects sensitive data and attempts to upload it using the Dropbox CLI client.
T1114 Email Collection Adversary has access to a victim’s email and may utilize it for a business email compromise attack
Command and Control T1071 Standard Application Layer Protocol Malware uses HTTPS protocol.
Exfiltration T1002 Data Compressed Exfiltrated data is compressed by RAR.
T1048 Exfiltration Over Alternative Protocol Exfiltrated data is uploaded to Dropbox using its CLI client.
T1537 Transfer Data to Cloud Account Exfiltrated data is uploaded to Dropbox.