Le spectre d’un scénario rappelant Heartbleed fait surface
Une vulnérabilité dans Log4J permet à un attaquant de provoquer une exécution de code arbitraire à distance s’il a la capacité de soumettre une donnée à une application qui utilise la bibliothèque log4j pour journaliser l’évènement. Cette attaque peut être réalisée sans être authentifié, par exemple en tirant parti d’une page d’authentification qui journalise les erreurs d’authentification. Les entreprises spécialisées en cybersécurité indiquent que le nombre d’attaques profitant de cette faille se multiplient. Les membres de l’Apache Software Fondation ont développé un patch en catastrophe pour corriger la vulnérabilité, la version 2.15.0. Des contournements sont également possibles pour réduire les risques.
Apache Log4j, qu’est-ce que c’est ? Quelle est la sévérité de la faille ?
Le 9 décembre, une vulnérabilité a été découverte dans la bibliothèque de journalisation Apache log4j. Cette bibliothèque est très souvent utilisée dans les projets de développement d’application Java/J2EE ainsi que par les éditeurs de solutions logicielles sur étagère basées sur Java/J2EE.
Log4j inclut un mécanisme de recherche qui pourrait être utilisé pour effectuer des requêtes via une syntaxe spéciale dans une chaîne de format. Par exemple, il peut être utilisé pour demander divers paramètres comme la version de l’environnement Java via ${java:version}, etc. Ensuite, en spécifiant la clé jndi dans la chaîne, le mécanisme de recherche utilise l’API JNDI. Par défaut, toutes les requêtes sont effectuées en utilisant le préfixe java:comp/env/*; cependant, les auteurs ont implémenté l’option d’utiliser un préfixe personnalisé au moyen d’un symbole deux-points dans la clé. C’est là que réside la vulnérabilité : si jndi:ldap:// est utilisé comme clé, la requête va au serveur LDAP spécifié. D’autres protocoles de communication, tels que LDAPS, DNS et RMI, peuvent également être utilisés.
Ainsi, un serveur distant contrôlé par un attaquant pourrait renvoyer un objet à un serveur vulnérable, entraînant potentiellement l’exécution de code arbitraire dans le système ou la fuite de données confidentielles. Tout ce qu’un attaquant doit faire est d’envoyer une chaîne spéciale via le mécanisme qui écrit cette chaîne dans un fichier journal et est donc gérée par la bibliothèque Log4j. Cela peut être fait avec de simples requêtes HTTP, par exemple, celles envoyées via des formulaires Web, des champs de données, etc., ou avec tout autre type d’interactions utilisant la journalisation côté serveur.
La vulnérabilité a été caractérisé par Tenable comme «*la vulnérabilité la plus importante et la plus critique de la dernière décennie*».
Des preuves de concept ont déjà été publiées. Cette vulnérabilité fait désormais l’objet d’une exploitation active.
La sévérité de la brèche est maximale 10 sur l’échelle CVSS.
Voici la liste des systèmes affectés :
- Apache Log4j versions 2.0 à 2.14.1
- Apache Log4j versions 1.x (versions obsolètes) sous réserve d’une configuration particulière.
- Les produits utilisant une version vulnérable de Apache Log4j : les CERT nationaux européens tiennent à jour une liste complète des produits et de leur statut vis-à-vis de la vulnérabilité
Le CERT-FR recommande de réaliser une analyse approfondie des journaux réseau. Les motifs suivants permettent d’identifier une tentative d’exploitation de cette vulnérabilité lorsqu’ils sont utilisés dans les URLs ou certaines en-têtes HTTP comme user-agent :
1. ${jndi:
2. $%7Bjndi: (prend en compte un obscurcissement simple)
Cependant, les attaquants peuvent utiliser des moyens d’obscurcissement pour contourner les motifs de détection précédents. Les motifs suivants permettent de prendre en compte certaines méthodes d’obscurcissement mais peuvent provoquer des faux positifs :
${${
${::-
%24%7B%3A%3A-
${env:
${date:
${lower:
${upper:
hostName}
}${
${ (génère beaucoup de faux positifs, mais très exhaustif)
Afin de déterminer si une tentative d’exploitation a réussi, et dans le cas où vous disposeriez de journaux contenant des requêtes DNS, il est recommandé de les corréler aux résultats des motifs précédemment énoncés. En effet, si l’exécution d’une requête de type ${jndi:xxx://nom.domaine.com} a fonctionné, une résolution DNS sera alors effectuée pour résoudre le nom de domaine externe nom.domaine.com. L’émission d’une requête DNS peut également faire l’objet d’une trace dans les journaux du serveur applicatif. Ainsi, il peut être utile de chercher le motif com.sun.jndi.dns.DnsContext@ dans ces journaux. Une résolution de domaine externe ne signifie pas qu’une exécution de code a réussi mais permet de confirmer que l’application est vulnérable. Il sera donc nécessaire de poursuivre l’analyse des journaux pour détecter une compromission.
Il est fortement recommandé d’utiliser la version 2.15.0 de log4j dès que possible. Cependant, en cas de difficulté de migration vers cette version, les contournements ci-dessous peuvent être appliqués temporairement :
- Pour les applications utilisant les versions 2.7.0 et ultérieures de la bibliothèque log4j, il est possible de se prémunir contre toute attaque en modifiant le format des évènements à journaliser avec la syntaxe %m{nolookups} pour les données qui seraient fournies par l’utilisateur. Cette modification impose de modifier le fichier de configuration de log4j pour produire une nouvelle version de l’application. Cela requiert donc d’effectuer de nouveau les étapes de validation technique et fonctionnelle avant le déploiement de cette nouvelle version.
- Pour les applications utilisant les versions 2.10.0 et ultérieures de la bibliothèque log4j, il est également possible de se prémunir contre toute attaque en modifiant le paramètre de configuration log4j2.formatMsgNoLookups à la valeur true, par exemple lors du lancement de la machine virtuelle Java avec l’option -Dlog4j2.formatMsgNoLookups=true. Une autre alternative consiste à supprimer la classe JndiLookup dans le paramètre classpath pour éliminer le vecteur principal d’attaque (les chercheurs n’excluent pas l’existence d’un autre vecteur d’attaque).
Plus de 840 000 attaques ont été lancées
Selon des chercheurs, des pirates, dont des groupes soutenus par l’État chinois mais aussi par la Russie, ont lancé plus de 840 000 attaques contre des entreprises dans le monde depuis vendredi dernier via cette vulnérabilité.
Le groupe de cybersécurité Check Point a déclaré que les attaques liées à la vulnérabilité s’étaient accélérées au cours des 72 heures depuis vendredi et qu’à certains moments, ses chercheurs voyaient plus de 100 attaques par minute. L’éditeur a également observé une forte créativité dans l’adaptation de l’attaque. Parfois, plus de 60 nouvelles variations apparaissent en moins de 24 heures, introduisant de nouvelles techniques d’obfuscation ou de codage.
Les auteurs incluent des « attaquants du gouvernement chinois », selon Charles Carmakal, directeur de la technologie de la cyber-entreprise Mandiant.
La faille de Log4J permet aux attaquants de prendre le contrôle à distance des ordinateurs exécutant des applications en Java.
Jen Easterly, directrice de l’Agence américaine de cybersécurité et de sécurité des infrastructures (CISA), a déclaré aux dirigeants de l’industrie que la vulnérabilité était « l’une des plus graves que j’ai vues de toute ma carrière, sinon la plus grave », selon les médias américains. Des centaines de millions d’appareils sont susceptibles d’être touchés, a-t-elle déclaré.
Check Point a déclaré que dans de nombreux cas, les pirates prenaient le contrôle d’ordinateurs pour les utiliser pour miner de la crypto-monnaie ou pour faire partie de botnets, de vastes réseaux d’ordinateurs pouvant être utilisés pour submerger les sites Web de trafic, pour envoyer du spam ou pour d’autres fins illégales.
Pour Kaspersky, la plupart des attaques proviennent de la Russie.
La CISA et le National Cyber Security Center du Royaume-Uni ont maintenant émis des alertes exhortant les organisations à effectuer des mises à niveau liées à la vulnérabilité Log4J, alors que les experts tentent d’évaluer les retombées. Amazon, Apple, IBM, Microsoft et Cisco font partie de ceux qui se sont précipités pour publier des correctifs, mais aucune violation grave n’a été signalée publiquement jusqu’à présent.
La vulnérabilité est la dernière à toucher les réseaux d’entreprise, après l’émergence de failles au cours de la dernière année dans les logiciels couramment utilisés de Microsoft et de la société informatique SolarWinds. Ces deux vulnérabilités auraient été initialement exploitées par des groupes d’espionnage soutenus par l’État de Chine et de Russie respectivement.
Carmakal de Mandiant a déclaré que les acteurs soutenus par l’État chinois tentaient également d’exploiter le bogue Log4J mais ont refusé de partager plus de détails. Des chercheurs de SentinelOne ont également déclaré aux médias qu’ils avaient observé des pirates informatiques chinois tirer parti de la vulnérabilité.
Selon Check Point, près de la moitié de toutes les attaques ont été menées par des cyber-attaquants connus. Ceux-ci comprenaient des groupes utilisant Tsunami et Mirai, des logiciels malveillants qui transforment les appareils en botnets, ou des réseaux utilisés pour lancer des piratages contrôlés à distance tels que des attaques par déni de service. Il comprenait également des groupes utilisant XMRig, un logiciel qui exploite la monnaie numérique Monero.
« Avec cette vulnérabilité, les attaquants obtiennent une puissance presque illimitée – ils peuvent extraire des données sensibles, télécharger des fichiers sur le serveur, supprimer des données, installer un ransomware ou pivoter vers d’autres serveurs », a déclaré Nicholas Sciberras, responsable de l’ingénierie chez Acunetix, scanner de vulnérabilités. Il a été « étonnamment facile » de déployer une attaque, a-t-il déclaré, ajoutant que la faille serait « exploitée pendant des mois à venir ».
La source de la vulnérabilité est un code défectueux développé par des bénévoles de l’association à but non lucratif Apache Software Foundation, qui gère plusieurs projets open source, soulevant des questions sur la sécurité des parties vitales de l’infrastructure informatique. Log4J a été téléchargé des millions de fois.
La faille est passée inaperçue depuis 2013, estiment les experts. Matthew Prince, directeur général du cybergroupe Cloudflare, a déclaré qu’elle avait commencé à être activement exploité à partir du 1er décembre, bien qu’il n’y ait eu aucune « preuve d’exploitation de masse avant la divulgation publique » d’Apache la semaine suivante.
Pour sa part, Bitdefender a vu des tentatives d’installations d’un ransomware baptisé Khonsari et d’une porte dérobée appelée Orcus, réalisées grâce à Log4Shell :
« Alors que la plupart des attaques observées jusqu’à présent semblent cibler des serveurs Linux, nous avons également vu des attaques contre des systèmes exécutant le système d’exploitation Windows. Pour ces attaques, nous avons détecté la tentative de déploiement d’une famille de ransomwares appelée Khonsari.
« Cette tentative d’exploitation de la vulnérabilité Log4j utilise la classe malveillante hxxp://3.145.115[.]94/Main.class pour télécharger une charge utile supplémentaire. Le dimanche 11 décembre, Bitdefender a observé cette charge utile comme un téléchargement de fichier binaire .NET malveillant depuis hxxp://3.145.115[.]94/zambo/groenhuyzen.exe. Il s’agit d’une nouvelle famille de ransomwares, appelée Khonsari d’après l’extension utilisée sur les fichiers cryptés.
« Une fois exécuté, le fichier malveillant listera tous les lecteurs et les chiffrera entièrement, à l’exception du lecteur C:\. Sur le lecteur C:\, Khonsari chiffrera uniquement les dossiers suivants*:
- C:\Utilisateurs\<utilisateur>\Documents
- C:\Utilisateurs\<utilisateur>\Vidéos
- C:\Utilisateurs\<utilisateur>\Images
- C:\Utilisateurs\<utilisateur>\Téléchargements
- C:\Utilisateurs\<utilisateur>\Bureau
« Les fichiers avec les extensions .ini et .lnk sont ignorés. L’algorithme utilisé pour le cryptage est AES 128 CBC utilisant PaddingMode.Zeros. Après chiffrement, l’extension .khonsari est ajoutée à chaque fichier ».
source : developpez