Corrigée il y a deux ans, la vulnérabilité Log4Shell reste un vecteur d'attaque populaire, même pour les attaquants. C’est ce que montre une campagne récemment documentée contre des entreprises de plusieurs secteurs par le groupe APT Lazarus, dirigé par l'État nord-coréen. Les cybercriminels ont exploité la faille Log4Shell référencée CVE-2021-44228 dans des serveurs VMware Horizon publics et non corrigés, et ont utilisé leur accès pour déployer des trojans d'accès à distance (Remote Access Trojan, RAT) personnalisés écrits en DLang, un langage de programmation rarement utilisé dans le développement de logiciels malveillants. Baptisée Operation Blacksmith par les chercheurs de Cisco Talos, cette campagne, qui semble avoir débuté en mars, se poursuit à ce jour. Les attaques sont probablement plus opportunistes que ciblées et les victimes recensées se trouvent dans les secteurs de la fabrication, de l'agriculture et de la sécurité physique.

Soutenues par gouvernement nord-coréen, les offensives menées par les équipes de pirates du groupe Lazarus (APT38) ont généralement un but de cyberespionnage et de sabotage. Les activités malveillantes du groupe remontent à plusieurs années et il partage certains de ses outils et infrastructures avec d'autres groupes APT nord-coréens. En fait, les chercheurs de Talos pensent que Lazarus est très probablement composé de différents sous-groupes qui mènent leurs propres actions et développent des malwares sur mesure pour leurs cibles. Ces sous-groupes peuvent avoir des objectifs différents et ne se coordonnent pas toujours entre eux, malgré des chevauchements occasionnels. « Au cours de son analyse, Talos a constaté un certain chevauchement avec les attaques malveillantes divulguées par Microsoft en octobre 2023, attribuant l'activité à Onyx Sleet, également connu sous le nom de PLUTONIUM ou Andariel », ont déclaré les chercheurs de Talos dans leur rapport sur l'opération Blacksmith. La campagne Andariel documentée par Microsoft exploitait la faille référencée CVE-2023-42793, une vulnérabilité critique affectant le serveur JetBrains TeamCity, un outil CI/CD utilisé en DevOps. Le point commun avec l'opération Blacksmith de Lazarus est l'utilisation d'un outil proxy personnalisé appelé HazyLoad, qui n'a été observé que dans ces deux campagnes.

Une porte de sortie créée par les cyberpirates

Cependant, les autres implants de logiciels malveillants étaient différents. Dans Blacksmith, les attaquants ont déployé trois malwares différents écrits en DLang, un langage de programmation publié à l'origine en 2001 inspiré du C++, mais enrichi de nombreuses fonctionnalités et paradigmes empruntés à d'autres langages. DLang est un choix inhabituel pour le développement de logiciels malveillants, mais Lazarus est connu pour recourir à des technologies non traditionnelles, comme ce fut le cas précédemment avec QtFramework et PowerBasic. L'un des implants basés sur DLang déployés lors de la phase de post-exploitation est baptisé NineRAT. Ce Remote Access Trojan utilise Telegram comme canal de commande et de contrôle (C2). « Quand NineRAT est activé, le logiciel malveillant devient le principal moyen d'interaction avec l'hôte infecté », ont expliqué les chercheurs de Talos. « Cependant, les mécanismes de portes dérobées précédemment déployés, notamment l'outil de proxy inverse HazyLoad, restent en place. Les multiples outils fournissent au groupe Lazarus des entrées de porte dérobée qui se chevauchent, avec des redondances au cas où un outil serait découvert, ce qui permet un accès très persistant », ont-ils ajouté.

En utilisant les échantillons de NineRAT comme référence, les chercheurs de Talos ont réussi à localiser deux autres implants basés sur un code similaire. Le premier est un téléchargeur également écrit en DLang que les chercheurs ont baptisé BottomLoader. Son objectif est de télécharger une charge utile supplémentaire à partir d'une URL codée en dur à l'aide d'une commande PowerShell. Le second implant, plus sophistiqué, est à la fois un téléchargeur de charge utile et un cheval de Troie d'accès à distance, baptisé DLRAT. Contrairement à NineRAT, DLRAT n'utilise pas Telegram comme canal de commande et de contrôle (C2), mais il envoie des informations sur l'hôte infecté via HTTP à un serveur web C2. En retour, les attaquants peuvent lui demander de télécharger des fichiers locaux sur le serveur, de renommer des fichiers et de télécharger des charges utiles supplémentaires. « Les auteurs de la menace ont aussi créé un compte utilisateur supplémentaire sur le système, lui accordant des privilèges d’administration », ont déclaré les chercheurs. « Talos avait documenté ces Tactiques, techniques et procédures (TTP) plus tôt cette année, mais l'activité observée précédemment visait à créer des comptes utilisateurs non autorisés au niveau du domaine. Dans cette campagne, les opérateurs ont créé un compte local, qui correspond au compte utilisateur documenté par Microsoft : krtbgt ».

Log4j, une aubaine pour les pirates

Signalée pour la première fois le 9 décembre 2021, la faille Log4Shell se trouve dans une bibliothèque Java très populaire appelée Log4j. En raison de l'utilisation répandue de cette bibliothèque, la vulnérabilité a touché des millions d'applications Java, qu'il s'agisse d'applications développées en interne par des entreprises ou de produits commerciaux proposés par de nombreux développeurs de logiciels. Des correctifs ont été mis à disposition pour Log4j quelques jours après l'annonce de la vulnérabilité, mais il a fallu des mois pour que tous les fournisseurs concernés publient des correctifs et que les entreprises mettent à jour leurs applications internes. Malgré la grande publicité faite autour de cette faille, il semble que, deux ans plus tard, un nombre suffisamment important de systèmes sont toujours vulnérables pour que des groupes comme Lazarus continuent à utiliser l'exploit. Selon l'entreprise de gestion de la chaîne d'approvisionnement en logiciels Sonatype, qui gère également le dépôt central de composants Java, plus de 20 % des téléchargements de Log4j concernent toujours des versions vulnérables.

L’entreprise Veracode, spécialisée dans la sécurité des applications, signale que, d'après ses propres données télémétriques, seules 2,8 % des applications testées utilisent encore des versions de Log4j présentant les vulnérabilités Log4Shell. Cependant, 3,8 % supplémentaires utilisent une version de Log4j 2.x vulnérable à un autre problème de haute gravité référencé CVE-2021-44832 et un tiers de toutes les applications qui incluent Log4j continuent d'utiliser l'ancienne série 1.x de la bibliothèque qui a atteint sa fin de vie et n'a pas reçu de correctifs de sécurité depuis longtemps. Même si Log4j 1.x n’est pas affecté par la faille Log4Shell, il présente actuellement sept autres vulnérabilités importantes et critiques qui n'ont pas été corrigées. « Nos recherches ont également montré que lorsque les développeurs sont alertés par une analyse de la vulnérabilité d'une bibliothèque, ils la corrigent assez rapidement : 50 % des vulnérabilités sont corrigées en 89 jours au total, en 65 jours pour les vulnérabilités de gravité élevée et en 107 jours pour les vulnérabilités de gravité moyenne », a déclaré Chris Eng, responsable de la recherche chez Veracode, dans un billet de blog. « Cela contredit les données de Log4j ci-dessus, qui montrent que la correction n'est pas rapide pour cette bibliothèque open source, en particulier pour Log4j 1.2.x », a-t-il ajouté.