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.

  1. Variante A : un programme autonome dans lequel le code d'exploitation Flash était associé à une charge utile.
  2. 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.

dealerschoice2_1

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.

dealerschoice2_2

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.

dealerschoice2_3

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

dealerschoice2_4

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.

dealerschoice2_5

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

dealerschoice_figure_6

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.

dealerschoice2_7

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 :

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.

dealerschoice2_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