Malware : infections via le Dynamic Data Exchange (DDE) de Microsoft Office

Contexte

Les cybercriminels sont toujours à la recherche de nouvelles méthodes pour parvenir à déployer du code malveillant chez leurs victimes. Si les groupes sophistiqués se permettent d’utiliser des failles 0-day du lecteur Flash pour des attaques ciblées, il n’est pas rare de voir certains acteurs adopter des méthodes moins avancées mais facilement applicables dans le cadre de campagnes de diffusion massives de malware.

C’est le cas de DDE (pour Dynamic Data Exchange), une fonctionnalité Windows utilisée dans Word et les autres produits Office pour intégrer du contenu externe dynamique au sein d’un document. Depuis quelques semaines, des articles fleurissent sur le Web décrivant comment exécuter des commandes arbitraires sur un système en exploitant DDE. Aujourd’hui, nous avons pu constater que l’opportunité n’a pas échappé aux acteurs de la criminalité numérique.

Retour sur un cas concret que nous avons pu observer et les contre-mesures envisageables.

En pratique

Nous avons obtenu un échantillon d’e-mails issus d’une campagne de diffusion du ransomware Locky suivant un format classique : une pièce jointe au format .doc, accompagné d’un message succinct laissant penser qu’il s’agit d’une facture.

Par défaut, lors de l’ouverture d’un document intégrant des champs DDE, Word (par exemple) cherchera à mettre à jour automatiquement le contenu associé à ces ressources. Ouvrir le document fait donc apparaître une boîte de dialogue :

Choisir « Oui » affiche une nouvelle boîte de dialogue, qui contient des éléments du code qui sera exécuté et peut indiquer à l’utilisateur averti que quelque chose de louche est en train de se tramer :

Sélectionner « Oui » à ce moment déclenche l’exécution du code. Un « Non » à l’une ou l’autre des propositions suffit à désamorcer le piège.

Afficher les champs du document permet de visualiser le code associé à la fonctionnalité DDE. Dans notre cas, il s’agit d’une simple ligne de commande PowerShell allant télécharger un script avant de l’exécuter :

Après plusieurs charges intermédiaires, le malware final est déployé. Il s’agissait ici d’une variante de Locky :

Prévention

Cette analyse montre que le vecteur d’infection DDE est en pratique très simple à mettre en oeuvre. Heureusement pour les victimes potentielles, il est nécessaire de valider deux boîtes de dialogue avant d’arriver à l’exécution de la charge, et une partie du texte de ces fenêtres peut alerter l’utilisateur sur l’aspect malveillant de la situation. Ces aspects peuvent limiter l’efficacité de la technique, mais l’analyse montre également que les cybercriminels ne s’arrêtent pas à ce genre de considérations et sont prêts à tout essayer pour surprendre leurs cibles.

Il reste possible d’éliminer complètement l’apparition des boîtes de dialogue en désactivant la fonctionnalité de mise à jour des liaisons DDE à l’ouverture d’un document.

Les particuliers peuvent se protéger en décochant la case Mettre à jour les liaisons à l’ouverture des options avancées des programmes Office :

Ce paramètre est contrôlable par stratégie de groupe (GPO) pour les déploiements à plus grande échelle. Il est dans un premier temps nécessaire d’installer les modèles d’administration Office (la démarche est décrite dans notre guide de lutte anti-ransomwares, §3.1). Il faut ensuite créer un objet stratégie de groupe, et suivre l’arborescence Configuration utilisateur > Modèles d’administration. A partir de là, sélectionner les produits à configurer et paramétrer l’option de mise à jour des liaisons sur Désactiver.

Cas d’Outlook

Ce n’était pas le cas dans la campagne observée, mais un champ DDE peut également être inclus directement dans le corps d’un e-mail, sans passer par une pièce jointe. Un nouveau facteur limitant apparaît alors pour l’exploitation : la mise à jour des liaisons s’effectue uniquement lorsque l’e-mail est ouvert en mode éditable, c’est-à-dire pour y répondre ou le transférer.

Il n’existe pas d’option directement intégrée dans Outlook ou au niveau des modèles d’administration pour bloquer ce comportement, il est nécessaire de passer par une modification de la base de registre. Il reste possible de déployer ce changement par stratégie de groupe, en passant par l’arborescence Configuration utilisateur > Préférences > Paramètres Windows > Registre de l’éditeur d’objets GPO. Il faut ensuite créer un nouvel élément Registre avec les paramètres suivants :

  • Action : Mettre à jour
  • Ruche : HKEY_CURRENT_USER
  • Chemin d’accès : SOFTWARE\Microsoft\Office\16.0\Word\Options\WordMail
  • Nom de valeur : DontUpdateLinks
  • Type de valeur : REG_DWORD
  • Données de valeur : 1

Le nombre dans le chemin d’accès est lié à la version d’Office, en l’occurrence 16.0 correspond à Office 2016. 15.0 est utilisé pour Office 2013 et ainsi de suite ; il est nécessaire d’adapter cette valeur à l’environnement en place.

Indicateurs de compromission

Domaines utilisés pour le téléchargement des charges intermédiaires et finales :

  • alexandradickman[.]com|98.124.251.65
  • shamanic-extracts[.]biz|62.212.154.98
  • conxibit[.]com|175.107.146.17
  • centralbaptistchurchnj[.]org
  • gdiscoun[.]org

Empreintes SHA-256 des composants :

  • Fichier .doc original : ea132c34ebbc591eda78531e2bfb9a4cb40e55a245191f54e82df25be9b58db2
  • Dropper intermédiaire : d2cca5f6109ec060596d7ea29a13328bd0133ced126ab70974936521db64b4f4
  • Exécutable Locky : 4c054127056fb400acbab7825aa2754942121e6c49b0f82ae20e65422abdee4f

Références & remerciements