L'Unit 42 de Palo Alto Networks a récemment dénoncé une nouvelle plate-forme d'exploitation utilisée par le Sofacy Group (ou AKA APT28, Fancy Bear, STRONTIUM, Pawn Storm, Sednit), que nous avons baptisée « DealersChoice ». Comme nous l'avons expliqué dans notre premier article, la plate-forme d'exploitation DealersChoice génère des documents RTF malveillants qui utilisent des objets OLE intégrés aux documents Word. Ces documents contiennent des fichiers Adobe Flash (.SWF) conçus pour exploiter les vulnérabilités de ce programme.
À l'époque de notre premier rapport, nous avions trouvé deux variantes.
- Variante A : un programme autonome dans lequel le code d'exploitation Flash était associé à une charge utile.
- Variante B : une variante modulaire qui chargeait le code d'exploitation sur demande tout en apparaissant non opérationnel.
Depuis, nous avons réussi à réunir d'autres exemples de documents malveillants générés par la plate-forme DealersChoice. Ces échantillons récents appartiennent tous à la variante B. Nous avons découvert que deux d'entre eux étaient pourvus de serveurs de commande et de contrôle opérationnels, qui nous ont permis de collecter et d'analyser d'autres artefacts associés à l'attaque.
Fin octobre 2016, Adobe publiait le bulletin de sécurité APSB16-36 pour répondre au CVE-2016-7855. Début novembre 2016, Microsoft publiait à son tour le MS16-135 en réponse au CVE-2016-7255.
Ces deux bulletins dénonçaient l'exploitation active des vulnérabilités de type « zero-day » que les autres chercheurs pensaient associées au Sofacy Group. Un autre rapport indique, comme notre analyse, que le code d'exploitation correspondant à la faille CVE-2016-7855 d'Adobe Flash était bel et bien transmis par l'utilisation de DealersChoice. Des tests internes révèlent également que les clients de Palo Alto Networks équipés de l'agent de point de terminaison Traps sont protégés par le nouveau code d'exploitation.
Nouvelle donne : trouver des serveurs C2 en ligne
Au cours de notre précédente discussion à propos de DealersChoice, nous avions identifié les étapes que suivrait une variante B appliquée à un hôte victime, mais nous étions incapables d'interagir efficacement avec le serveur de commande et de contrôle (C2) détecté à l'époque.
Nous avons par la suite découvert deux serveurs C2 actifs et totalement opérationnels (versiontask[.]com and postlkwarn[.]com) qui suivent à la lettre les étapes décrites dans notre blog, en téléchargeant le code d'exploitation additionnel de Flash dans la mémoire avant d'y transférer la charge utile associée. La Figure 1 détaille les échanges entre la victime et le C2.
Figure 1 : fonctionnement de DealersChoice
L'ActionScript contenu dans la variante B interagit avec le serveur C2 pour obtenir un fichier SWF malveillant et une charge utile. Ce processus commence par l'envoi au serveur C2 d'une première balise contenant un système d'information et la version d'Adobe Flash Player de la victime. La Figure 2 représente la balise envoyée par l'ActionScript au serveur C2.
Figure 2 : première balise envoyée par DealersChoice vers son serveur C2
Le C2 répond à la première balise avec des chaînes que l'ActionScript de DealersChoice utilise comme variables au cours des actions suivantes telles que les autres demandes HTTP et le décryptage des réponses à ces demandes. La Figure 3 représente la réponse du serveur C2 à la balise, qui comprend notamment les valeurs k1, k2, k3 et k4.
Figure 3 : la réponse du C2 à la balise fournit à DealersChoice les tokens et les clés nécessaires au décryptage des données
L'ActionScript utilise ensuite la variable k1 tirée de la réponse du C2 comme un token intégré à la demande HTTP renvoyée au serveur C2 afin d'obtenir le fichier SWF malveillant, comme l'illustre la Figure 4.
Le serveur C2 répond à cette demande avec des données que l'ActionScript décrit grâce à la valeur de la variable k3.
Les serveurs C2 actifs fournissaient une variante B contenant un fichier SWF malveillant identique à celui trouvé dans les exemples de la variante A dénoncée dans le CVE-2015-7645 (paru en octobre 2016 dans l'Adobe Security Bulletin APSA15-05).
c42a0d50eac9399914090f1edc2bda9ac1079edff4528078549c824c4d023ff9
45a4a376cb7a36f8c7851713c7541cb7e347dafb08980509069a078d3bcb1405
Figure 4 : demande HTTP de DealersChoice pour obtenir un fichier SWF malveillant afin d'exploiter Adobe Flash Player
Après avoir reçu le ficher SWF malveillant, la variante B délivre une demande HTTP en utilisant la variable K2 comme un token pour obtenir sa charge utile, comme l'illustre la Figure 5. Le C2 répond à cette demande avec des données que la variante B décrypte en utilisant la valeur de la variable k4 comme clé. Les données décryptées contiennent une charge utile et un shellcode pour la déchiffrer et l'exécuter.
Figure 5 : demande HTTP de DealersChoice pour obtenir un shellcode et une charge utile afin de l'exécuter une fois l'exploitation réussie
Les serveurs C2 actifs, versiontask[.]com et postlkwarn[.]com, fournissent un shellcode pour déchiffrer et exécuter une charge utile qui, dans les deux cas, est un cheval de Troie destiné à extraire et à décrypter un DLL intégré qu'il sauvegarde dans le système.
5dd3066a8ee3ab5b380eb7781c85e4253683cd7e3eee1c29013a7a62cd9bef8c fa8b4f64bff799524f6059c3a4ed5d169e9e7ef730f946ac7ad8f173e8294ed8
Dans les deux cas, le DLL sauvegardé dans le système est une variante de l'outil de Sofacy qui utilise le code source Carberp.
82213713cf442716eac3f8c95da8d631aab2072ba44b17dda86873e462e10421 3ff1332a84d615a242a454e5b29f08143b1a89ac9bd7bfaa55ba0c546db10e4b
Les deux variantes de l'outil Seduploader partagent un domaine C2 commun sur apptaskserver[.]com avec différentes sauvegardes de domaines C2 sur appservicegroup[.]com and joshel[.]com.
Un atout en réserve : l'analyse de l'empreinte des victimes
Au cours de l'analyse de la variante B du serveur C2 actif, nous voulions vérifier notre hypothèse selon laquelle le serveur C2 chargerait un code d'exploitation différent en fonction de l'empreinte (fingerprinting) des victimes. Nous l'avons testée en envoyant différentes réponses au serveur C2.
Tout d'abord, nous avons émis des demandes au serveur C2 à partir d'un VPN situé en Californie, USA, auxquelles il n'a pas répondu. Nous nous sommes ensuite connectés à un autre VPN situé au Moyen-Orient et avons émis les mêmes demandes. À ce stade, le serveur C2 répondait par un SWF malveillant et une charge utile. Il semble donc que le Sofacy Group utilise la géolocalisation pour filtrer les demandes qui émanent d'endroits ne correspondant pas à l'emplacement de leur cible.
Nous avons renvoyé plusieurs demandes pour tester le C2, et à chaque fois, le serveur répondait avec différentes variables k1, k2, k3 et k4, ce qui indique que le serveur détermine ces valeurs aléatoirement pour chaque demande entrante.
Afin de tester la logique du serveur C2, nous avons ensuite élaboré des demandes contenant des valeurs différentes pour le système d'exploitation et la version de Flash Player. Lorsque nous avons envoyé les demandes HTTP aux serveurs C2 avec la version 23.0.0.185 d'Adobe Flash Player, la version la plus récente de Flash vulnérable au CVE-2016-7855, le serveur a répondu avec un fichier SWF compressé (SHA256 : c993c1e10299162357196de33e4953ab9ab9e9359fa1aea00d92e97e7d8c5f2c) qui exploitait ces failles.
Enfin, quand nous avons lui envoyé des demandes qui indiquaient que la victime était un système macOS, le serveur C2 a répondu par le même fichier SWF malveillant et la même charge utile Windows qu'auparavant, ce qui suppose que pour l'instant, le Sofacy Group n'utilise pas DealersChoice pour définir le type de système d'exploitation de ces victimes.
Dans tous les cas, la charge utile fournie par le serveur C2 est un cheval de Troie (SHA256 : 3bb47f37e16d09a7b9ba718d93cfe4d5ebbaecd254486d5192057c77c4a25363) qui installe une variante de Seduploader (SHA256 : 4cbb0e3601242732d3ea7c89b4c0fd1074fae4a6d20e5f3afc3bc153b6968d6e) qui utilise elle-même un serveur C2 sur akamaisoftupdate[.]com.
Abattez vos cartes : les leurres
Nous avons réuni six documents de cette série d'attaques lancées via DealersChoice en utilisant des leurres similaires à ceux que nous avions observés lors de la précédente vague. Ils semblent tous appartenir à la variante B. Les noms des six fichiers que nous avons découverts étaient :
- Operation_in_Mosul.rtf – un article sur les troupes turques à Mossoul
- NASAMS.doc – la copie d'un article sur l'achat d'un système de défense antimissiles norvégien par le ministre lituanien de la défense nationale
- Programm_Details.doc – la copie du programme d'une conférence londonienne sur la cyber threat intelligence, visant le ministre de la défense d'un pays européen
- DGI2017.doc – un document visant le ministre des affaires étrangères d'un pays d'Asie centrale, au sujet du programme de la conférence Defence Geospatial Intelligence qui se tenait à Londres
- Olympic-Agenda-2020-20-20-Recommendations.doc – un document contenant le détail des accords pour les Jeux Olympiques de 2020
- ARM-NATO_ENGLISH_30_NOV_2016.doc – un document présentant un accord entre la République d'Arménie et l'OTAN
Figure 6 : leurres réunis pour les vagues d'attaques actuelles
Contrairement à ceux des premières attaques de DealersChoice, ces documents utilisent des métadonnées supprimées ou falsifiées afin d'ajouter une couche d'obscurcissement supplémentaire. Deux des documents, NASAMS.doc et Programm_Details.doc, partagent un nom d'utilisateur commun et unique, « pain », visible dans le champ « Dernière sauvegarde par ». De plus, chaque document malveillant continue d'utiliser la technique OfficeTestSideloading sur laquelle nous avons déjà publié. Nous avions découvert que le Sofacy Group avait commencé à l'utiliser l'été dernier comme moyen de transfert des fichiers DLL par le biais d'un module de test de performance intégré dans la suite Microsoft Office, mais aussi pour assurer sa permanence sur l'hôte victime.
Nom de fichier | Auteur | Dernière sauvegarde par | Sujet | SHA256 |
Operation_in_Mosul.rtf | Robert Tasevski | —- | Troupes turques à Mossoul | f5d3e827… |
NASAMS.doc | Антон Гладнишки | pain | Système de défense antimissiles norvégien | 1f81609d… |
Programm_Details.doc | Laci Bonivart | pain | Programme de la conférence | 1579c7a1… |
DGI2017.doc | Невена Гамизов | Невена Гамизов | Programme de la conférence | c5a389fa… |
Olympic-Agenda-2020-20-20-Recommendations.doc | Admin | Utilisateur | Recommandations pour les Jeux Olympiques de 2020 | 13718586… |
ARM-NATO_ENGLISH_30_NOV_2016.doc | Utilisateur | Utilisateur | Accord de l'OTAN | 73ea2cce… |
Les premiers niveaux des six domaines C2 pour les documents malveillants ont tous été enregistrés par le même e-mail déclarant. Versiontask[.]com et Uniquecorpind[.]com semblent être des infrastructures complètement nouvelles, qui n'ont rien de commun avec les campagnes du Sofacy Group précédemment observées.
Type | Domaine | Date de l'enregistrement | E-mail déclarant |
Premier niveau C2 | Versiontask[.]com | 24/10/2016 | dalchi0@europe.com |
Premier niveau C2 | Uniquecorpind[.]com | 25/10/2016 | yasiner@myself.com |
Premier niveau C2 | Securityprotectingcorp[.]com | 19/08/2016 | ottis.davis@openmailbox.org |
Premier niveau C2 | Postlkwarn[.]com | 11/11/2016 | fradblec@centrum.cz |
Premier niveau C2 | adobeupgradeflash[.]com | 22/11/2016 | nuevomensaje@centrum.cz |
Premier niveau C2 | globalresearching[.]org | 18/11/2016 | carroz.g@mail.com |
Nous avons identifié six domaines C2 de niveau 2 pour les charges utiles de Seduploader fournies par DealersChoice.
Type | Domaine | Date de l'enregistrement | E-mail déclarant |
Seduploader C2 | Joshel[.]com | 11/11/2016 | germsuz86@centrum.cz |
Seduploader C2 | Appservicegroup[.]com | 19/10/2016 | olivier_servgr@mail.com |
Seduploader C2 | Apptaskserver[.]com | 22/10/2016 | partanencomp@mail.com |
Seduploader C2 | Akamaisoftupdate[.]com | 26/10/2016 | mahuudd@centrum.cz |
Seduploader C2 | globaltechresearch[.]org | 21/11/2016 | morata_al@mail.com |
Seduploader C2 | researchcontinental[.]org | 02/12/2016 | Sinkholed |
À l'instar du premier niveau, le deuxième niveau des cinq domaines C2 sans sinkhole a été enregistré récemment avec des adresses e-mail déclarantes uniques encore jamais utilisées par le Sofacy Group. Toutefois, tous ces domaines ont utilisé des noms de serveurs communément associés au Sofacy Group, ns*.carbon2u[.]com et ns*.ititch[.]com. Le domaine akamaisoftupdate[.]com a dévoilé d'autres artefacts le reliant aux précédentes campagnes du Sofacy Group. En nous basant sur des données DNS passives, nous avons découvert que la résolution de akamaisoftupdate[.]com était 89.45.67.20. Dans le même sous-réseau de classe C, nous avons découvert que 89.45.67.189, la résolution précédente d'updmanager[.]net, était un domaine effectivement utilisé par le Sofacy Group.
Nous avons aussi découvert que le domaine securityprotectingcorp[.]com était lié à la première infrastructure du Sofacy Group. Il avait été enregistré deux mois plus tôt, mais l'analyse des adresses e-mail déclarantes a révélé qu'il avait aussi été utilisé pour enregistrer microsoftsecurepolicy[.]org. Grâce à des données DNS passives, nous avons découvert la résolution 40.112.210.240, un sinkhole associé à plusieurs autres domaines du Sofacy Group. Au fil des ans, plusieurs de ces domaines détournés ont été utilisés à de multiples fins par le Sofacy Group, notamment en tant que C2 liés à plusieurs outils tels qu'Azzy ou XAgent, ou pour héberger les sites d'hameçonnage afin de récupérer les accréditations des cibles.
Figure 7 : schéma de l'infrastructure de DealersChoice
Conclusion
Il semble évident que le Sofacy Group utilise l'outil DealersChoice de manière active, en particulier la variante B, pour attaquer des cibles d'intérêt. Grâce à l'exécution du code d'exploitation d'une faille de Flash récemment réparée (utilisée au cours des attaques de type « zero-day »), nous sommes en mesure de comprendre la façon dont le programme malveillant, qui est lui-même une plateforme, profite d'une méthode d'exploitation flexible. Une nouvelle infrastructure semble avoir été créée pour DealersChoice, mais comme nous l'avons constaté par le passé, le Sofacy Group a tendance, sans exception, à réutiliser les artefacts des campagnes précédentes. Les clients de Palo Alto Networks seront ravis d'apprendre que leur protection se déroule de la façon suivante :
- Identifier correctement les exemples associés comme malveillants dans Wildfire
- Les domaines de DealersChoice et le trafic C2 sont répertoriés comme malveillants
- Traps identifie correctement le code d'exploitation et l'empêche de s'exécuter
- Une étiquette DealersChoice AutoFocus peut être utilisée pour identifier et traquer cette famille de logiciels malveillants
Veuillez noter que même si CVE-2016-7855 était une vulnérabilité de type « zero-day », les clients de Palo Alto Networks auraient été protégés par notre agent de point terminaison Traps, comme l'illustre la Figure 8.
Figure 8 : Traps de Palo Alto Networks bloquant l'exploitation de la faille CVE-2016-7855
Indicateurs de compromission
Hashs de document :
f5d3e827c3a312d018ef4fcbfc7cb5205c9e827391bfe6eab697cc96412d938e
1f81609d9bbdc7f1d2c8846dcfc4292b3e2642301d9c59130f58e21abb0001be
1579c7a1e42f9e1857a4d1ac966a195a010e1f3d714d68c598a64d1c83aa36e4
c5a389fa702a4223aa2c2318f38d5fe6eba68c645bc0c41c3d8b6f935eab3f64
137185866649888b7b5b6554d6d5789f7b510acd7aff3070ac55e2250eb88dab
73ea2ccec2cbf22d524f55b101d324d89077e5718922c6734fef95787121ff22
C2 de DealersChoice :
Versiontask[.]com
Uniquecorpind[.]com
Securityprotectingcorp[.]com
postlkwarn[.]com
adobeupgradeflash[.]com
researchcontinental[.]org
C2 de Seduploader :
Appservicegroup[.]com
Apptaskserver[.]com
Akamaisoftupdate[.]com
Joshel[.]com
globaltechresearch[.]org
researchcontinental[.]org