En raison de l'amélioration de la sécurité des systèmes d'exploitation, l'utilisation des rootkits est en baisse constante depuis plusieurs années. En tant que tels, les développeurs de logiciels malveillants - en particulier ceux qui travaillent dans des groupes d'espionnage - ont été occupés à développer de nouveaux logiciels malveillants furtifs pour les utilisateurs.
Récemment, des chercheurs de l'ESET ont enquêté sur une backdoor (ou porte dérobée) sophistiquée utilisée par le fameux groupe d'espionnage Turla, également connu sous le nom de Snake. Cette porte dérobée, baptisée LightNeuron, cible spécifiquement les serveurs de messagerie Microsoft Exchange depuis au moins 2014. Bien qu'aucun échantillon n'ait été disponible pour analyse, les artefacts de code dans la version Windows nous portent à croire qu'il existe une variante Linux.
Victimologie
Au cours de notre enquête, nous avons pu identifier au moins trois organisations de victimes différentes, comme on peut le voir à la figure 1.
Deux des victimes - un ministère des Affaires étrangères et une organisation diplomatique régionale - s'inscrivent dans la lignée des récentes campagnes Turla que nous avons analysées.
Bien que nous ayons pu détecter une victime au Brésil grâce à un échantillon téléchargé sur le populaire multi-scanner VirusTotal, nous n'avons pas été en mesure de déterminer la nature de l'organisation victime.
Attribution à Turla
Nous croyons avec une grande confiance que Turla exploite LightNeuron. Les artefacts suivants, recueillis au cours de notre enquête, étayent cette affirmation :
- Sur un serveur Exchange compromis :
- un script PowerShell contenant un logiciel malveillant précédemment attribué à Turla a été abandonné 44 minutes avant un script PowerShell utilisé pour installer LightNeuron, et
- les deux scripts étaient situés dans C:\windowssystem32.
- Le script utilisé pour installer LightNeuron a un nom de fichier - msinp.ps1 - qui ressemble aux noms de fichiers typiques utilisés par Turla.
- Sur un autre serveur compromis, IntelliAdmin - un outil d'administration à distance, rempli d'un packer utilisé uniquement par Turla - a été abandonné par LightNeuron.
- Pour chaque attaque LightNeuron, il y avait plusieurs autres cas de logiciel malveillant Turla sur le même réseau.
- L'adresse électronique utilisée par les attaquants était enregistrée chez GMX et se faisait passer pour un employé de l'organisation ciblée. Le même fournisseur a été utilisé pour la porte dérobée Outlook et pour une porte dérobée PowerShell non documentée que nous avons appelée PowerStallion.
De plus, dans un précédent rapport sur les tendances des APT, les chercheurs de Kaspersky Labs ont attribué LightNeuron avec une confiance moyenne à Turla.
Activité de l'opérateur
En analysant un bien compromis, nous avons pu retracer une partie des activités des attaquants. En particulier, nous avons pu cartographier les heures de travail des opérateurs, en utilisant l'heure à laquelle le serveur Exchange compromis recevait les courriels contenant les commandes pour la porte dérobée.
Notre première observation est que les horaires d'activité correspond bien à une journée de travail typique de 9 h à 17 h dans le fuseau horaire UTC+3, comme le montre la figure 2.
Notre deuxième observation est qu'aucune activité n'a été observée entre le 28 décembre 2018 et le 14 janvier 2019. Pourtant, dans les semaines précédentes et suivantes, les attaquants envoyaient plusieurs courriels par semaine. Cette pause dans les activités correspond aux vacances autour du Noël orthodoxe oriental.
Même si ce n'est pas suffisant pour une attribution forte, vous pouvez corréler ces deux observations avec d'autres éléments que vous pourriez avoir à votre disposition.
Principales caractéristiques
LightNeuron est, à notre connaissance, le premier logiciel malveillant ciblant spécifiquement les serveurs de messagerie Microsoft Exchange. Il utilise une technique de persistance jamais vue auparavant : un Transport Agent. Dans l'architecture du serveur de messagerie, il fonctionne au même niveau de confiance que les produits de sécurité tels que les filtres anti-spam. La figure 3 résume le fonctionnement de LightNeuron.
En exploitant les accès de l'agent de transport, LightNeuron est en mesure de :
- Lire et modifier tout courrier électronique passant par le serveur de messagerie.
- Composer et envoyer de nouveaux emails.
- Bloquer n'importe quel message de courrier électronique. Le destinataire d'origine ne recevra pas le courriel.
Un ensemble flexible de règles XML pilote ces fonctions, comme le montre la figure 4.
<class name="zip" metric="30" id="1" dllName="ZipMe" type="dll" include="1">
<rule metric="10" id="1" include="1">
<and>
<or>
<To condition="cnt" value="email1@[redacted]" />
<From condition="cnt" value="email1@[redacted]" />
<To condition="cnt" value="email2@[redacted]" />
<From condition="cnt" value="email2@[redacted]" />
[...]
</or>
<and>
<To condition="!cnt" value="email3@[redacted]" />
<From condition="!cnt" value="email3@[redacted]" />
[...]
</and>
</and>
</rule>
</class>
<class name="command" metric="40" id="1" dllName="ZipMe" type="dll" include="1">
<rule metric="10" id="1" include="1">
<attachment_Content-Type condition="cnt" value="image/jpeg" />
</rule>
</class>
log:logHandler
zip:zipHandler
changeSubject:changeSubjectHandler
changeBody:changeBodyHandler
create:createHandler
command:commandHandler
block:blockHandler
replace:replaceHandler
stat:statHandler
Figure 4 - Exemple expurgé d'un fichier de règles
Les adresses e-mail utilisées dans ces règles sont personnalisées pour chaque victime afin de cibler les plus intéressantes.
A la fin des règles, il y a la liste des gestionnaires implémentés par LightNeuron. Ces fonctions sont utilisées dans les règles pour traiter les e-mails. Le tableau 1 décrit les onze manipulateurs différents.
Handler name | Description |
---|---|
block | Block the email |
changeBody | Change the body of the email |
changeTo | Change the recipient of the email |
changeSubject | Change the subject of the email |
command | Parse the jpg/pdf attachment, decrypt and execute the commands. |
create | Create a new email |
log | Log email attachment in LOG_OUTPUT |
replace | Replace the attachment |
spam | Re-create and re-send the email from the exchange server to bypass the spam filter |
stat | Log the From, Date, To, and Subject headers in CSV format in STAT_PATH |
zip | Encrypt the email with RSA and store it in the path specified by ZIP_FILE_NAME. |
Tableau 1 - Description des gestionnaires implémentés dans la DLL
Backdoor
Le gestionnaire de commandes (command) est différent des autres qui effectuent des modifications sur les emails. C'est en fait une porte dérobée contrôlée par les courriels. Les commandes sont cachées dans les pièces jointes PDF ou JPG en utilisant la stéganographie.
Les attaquants n'ont qu'à envoyer un courriel contenant un document PDF ou une image JPG spécialement conçu à n'importe quelle adresse courriel de l'organisation compromise. Il permet un contrôle total sur le serveur Exchange en utilisant les commandes indiquées dans le Tableau 2.
Instruction Code | Description | Argument 1 | Argument 2 | Argument 3 |
---|---|---|---|---|
0x01 | Write an executable. Execute it if it is an executable. | Exe path | N/A | File data |
0x02 | Delete a file | File path | N/A | N/A |
0x03 | Exfiltrate a file | File path | Set to “1” to delete the file | N/A |
0x04 | Execute a process (CreateProcess) | Command line | N/A | N/A |
0x05 | Execute a command line (cmd.exe /c) | Command line | N/A | N/A |
0x06 | Return 0 | N/A | N/A | N/A |
0x07 | Disable backdoor for x minutes. | Minutes | N/A | N/A |
0x09 | Exfiltrate a file | File path | Set to “1” to delete the file | N/A |
0x65 | Return 0 | N/A | N/A | N/A |
Tableau 2 - Liste des codes d'instruction
Une fois qu'un courriel est reconnu comme un courriel de commande, la commande est exécutée et le courriel est bloqué directement sur le serveur Exchange. Ainsi, ce dernier est très furtif et le destinataire d'origine ne sera pas en mesure de le voir.
Stéganographie
LightNeuron utilise la stéganographie pour cacher ses commandes dans un document PDF ou une image JPG. Ainsi, même si le courriel est intercepté, il peut sembler légitime, car il contient une pièce jointe valide.
Dans le cas d'un PDF, les données de commande peuvent se trouver n'importe où dans le document. Les opérateurs LightNeuron ajoutent simplement un en-tête au début du PDF pour spécifier le décalage auquel les données sont situées, comme on peut le voir à la figure 5.
Une fois que ce bloc de données a été décrypté avec AES-256, il révèle une structure personnalisée illustrée à la Figure 6.
Les domaines les plus intéressants sont :
- Offset 0x08, l'adresse de courrier électronique à laquelle le résultat de la commande est envoyé.
- Offs
- et 0x1D, le code d'instruction. Il correspond à l'une des fonctions décrites ci-dessus.
- Offset 0x25, le premier argument. Elle sera passée à la fonction représentée par le code de l'instruction.
Si un courriel contenant un tel conteneur de commande, intégré dans un JPG ou un PDF, est envoyé à un serveur compromis par LightNeuron, une calculatrice sera exécutée sur le serveur Microsoft Exchange.
Nettoyage
Le nettoyage de LightNeuron n'est pas une tâche facile. Supprimer simplement les deux fichiers malveillants brisera Microsoft Exchange, empêchant tous les membres de l'organisation d'envoyer et de recevoir des courriels. Avant de supprimer les fichiers, l'agent de transport malveillant doit être désactivé. Nous vous encourageons à lire l’intégralité du white paper avant de mettre en place un mécanisme de nettoyage.
En conclusion
Au cours des dernières années, nous avons publié de nombreux blogs et livres blancs détaillant les activités du groupe Turla, y compris des attaques d'homme du milieu (MITM) contre adobe.com et des logiciels malveillants sophistiqués. Cependant, pour l'instant, il semble que LightNeuron ait repris le flambeau des logiciels malveillants connus les plus avancés de l'arsenal de Turla.
En s'appuyant sur un mécanisme de persistance inédit, un agent de transport Microsoft Exchange, LightNeuron permet à ses opérateurs de passer sous le radar pendant des mois ou des années. Il leur permet d'exfiltrer des documents sensibles et de contrôler d'autres machines locales via un mécanisme C&C qui est très difficile à détecter et à bloquer.
Une liste complète et complète d'indicateurs de compromis (IoCs) et d'échantillons peut être trouvée dans le white paper intégral et sur GitHub.
Pour une analyse détaillée de la porte dérobée, reportez-vous à notre white paper Turla LightNeuron: One email away from remote code execution. Pour toute demande de renseignements ou pour soumettre des exemples d'articles sur le sujet, communiquez avec nous à l'adresse threatintel@eset.com.