La vulnérabilité Log4j est l'un des problèmes de sécurité les plus meurtriers des systèmes modernes.
La journalisation est une fonctionnalité clé dans les applications modernes, et la bibliothèque de journalisation, Log4j, est un leader dans ce domaine.
Cette bibliothèque est utilisée dans la plupart des applications, services et systèmes. Par conséquent, toutes les applications utilisant Log4j sont toutes affectées par cette vulnérabilité Log4j découverte l'année dernière.
Avec les préoccupations croissantes en matière de cybersécurité dans le monde, les organisations et les individus prennent des mesures pour protéger leurs applications, leurs systèmes et leurs données.
Et lorsque cette vulnérabilité a été découverte, elle a encore plus stressé les professionnels et les entreprises.
Par conséquent, détecter la vulnérabilité Log4j et la corriger est essentiel si vous souhaitez protéger vos données, votre réseau, votre réputation et la confiance de vos clients.
Dans cet article, je vais discuter de la vulnérabilité Log4j, ainsi que des étapes pour la détecter et la corriger.
Commençons par comprendre Log4j et pourquoi vous en avez besoin.
What Is Log4j?
log4j est un utilitaire de journalisation open source écrit en Java qui est principalement utilisé pour stocker, formater et publier les enregistrements de journalisation générés par les applications et les systèmes, puis vérifier les erreurs. Les enregistrements peuvent être de différents types, allant d'une page Web et de données de navigateur aux détails techniques d'un système sur lequel Log4j s'exécute.
Au lieu d'écrire du code à partir de zéro, les développeurs peuvent utiliser la bibliothèque Log4j en intégrant son code dans leurs applications.
En utilisant Log4j, les développeurs peuvent suivre tous les événements associés à leurs applications avec des informations de journalisation précises. Il les aide à surveiller les applications, à repérer les problèmes à temps et à les résoudre avant qu'ils ne se transforment en un problème plus important en termes de performances et/ou de sécurité.

Cette bibliothèque basée sur Java a été écrite par Ceki Gülcü et a été publiée en 2001 sous la licence Apache 2.0. Il utilise les services de nommage Java et d'interface d'annuaire (JNDI) pour permettre aux applications d'interagir avec d'autres applications telles que LDAP, DNS, CORBA, etc., et d'obtenir une fonctionnalité de répertoire et de nommage pour les applications basées sur Java. Log4j a trois composants pour effectuer ses tâches :
- Enregistreurs pour capturer la journalisation Articles
- Dispositions pour formater les enregistrements de journalisation dans différents styles
- Appenders pour publier des enregistrements de journalisation vers différentes destinations
Log4j est, en fait, l'une des bibliothèques de journalisation les plus célèbres sur le Web et est utilisée par des organisations de plusieurs secteurs et pays. Ils ont intégré cette bibliothèque de journalisation dans de nombreuses applications, y compris les meilleurs services cloud de Google, Microsoft, Apple, Cloudflare, Twitter, etc.
Son développeur, Apache Software Foundation, a développé Log4j 2, une mise à niveau vers Log4j pour résoudre les problèmes rencontrés dans les versions précédentes. L'année dernière, une vulnérabilité a été découverte dans Log4j, qui, lorsqu'elle n'est pas traitée, peut permettre aux attaquants de s'introduire dans les applications et les systèmes, de voler des données, d'infecter un réseau et d'effectuer d'autres activités malveillantes.
Comprenons-le davantage.
What Is Log4Shell – the Log4j Vulnerability?
Log4Shell est une vulnérabilité de cybersécurité critique sur la bibliothèque Log4j, qui affecte le fonctionnement de base de la bibliothèque. Il permet une attaquant pour contrôler un appareil ou une application connecté à Internet en exécutant l'exécution de code à distance. Lorsqu'ils y parviennent, ils peuvent :
- Exécutez n'importe quel code sur l'appareil ou le système
- Accéder à tous les réseaux et données
- Modifier ou chiffrer tout fichier sur l'application ou l'appareil concerné
Cette vulnérabilité a été signalée pour la première fois le 24 novembre 2021 par Chen Zhaojun, chercheur en sécurité chez Alibaba (un géant chinois du commerce électronique). La vulnérabilité a affecté leur Serveurs Minecraft, que l'équipe de sécurité cloud d'Alibaba a découvert le 9 décembre.

Ensuite, le NIST a publié cette vulnérabilité dans la base de données nationale des vulnérabilités et l'a nommée CVE-2021-44228. Apache Software Foundation a ensuite évalué cette vulnérabilité à 10 en gravité CVSS. Ceci est rarement attribué et est très grave car il a le potentiel d'être largement et facilement exploité, entraînant des dommages massifs pour les organisations et les individus.
Apache, en réponse, a publié un correctif pour cette vulnérabilité, mais certaines parties n'ont pas été résolues, ce qui a conduit à d'autres vulnérabilités :
- CVE-2021-45046 qui a facilité Attaques par déni de service (DoS) via les recherches JNDI
- CVE-2021-45105 pour permettre aux pirates de contrôler les informations de la carte de contexte de thread et de provoquer des attaques DoS en interprétant une chaîne spécialement conçue
- CVE-2021-44832 affecte toutes les versions de Log4j 2 via l'injection de code à distance (RCE)
How Does Log4Shell Work?
Pour comprendre sa gravité et les dommages que Log4Shell peut causer, il est pertinent d'apprendre comment fonctionne cette vulnérabilité Log4j.
La vulnérabilité Log4Shell permet à un attaquant d'injecter à distance n'importe quel code arbitraire dans un réseau et d'en prendre le contrôle complet.
Cette séquence de cyberattaque commence par la bibliothèque de journalisation, telle que Log4j, qui collecte et stocke les informations de journal. S'il n'y a pas de bibliothèque de journalisation, toutes les données du serveur seront archivées instantanément après la collecte des données.
Mais si vous souhaitez analyser ces données ou devez prendre des mesures en fonction d'informations de journal spécifiques, vous aurez besoin d'une bibliothèque de journalisation pour analyser les données de journal avant qu'elles ne soient archivées.

En raison de la vulnérabilité Log4j, tout système ou application utilisant Log4j devient vulnérable aux cyberattaques. La bibliothèque de journalisation exécute le code en fonction de l'entrée. Un pirate peut forcer la bibliothèque de journaux à exécuter du code nuisible puisque la vulnérabilité lui permettra de manipuler l'entrée.
Pendant ce temps, beaucoup de choses se passent en arrière-plan. Lorsque Log4j reçoit une chaîne spécialement conçue, il invoque un serveur LDP et télécharge ce code hébergé dans son répertoire afin d'exécuter le code. De cette façon, les attaquants peuvent créer un serveur LDAP pour stocker le code malveillant qui peut les aider à contrôler n'importe quel serveur sur lequel le code est exécuté. Il enverra ensuite une chaîne dirigeant son code malveillant vers une application ou un système ciblé et en prendra le contrôle total.
Voici donc comment la vulnérabilité Log4j peut être exploitée :
- Un attaquant trouve un serveur avec une version vulnérable de Log4j.
- Ils enverront au serveur ciblé une requête get avec le lien de leur serveur LDAP malveillant.
- Le serveur ciblé, au lieu de vérifier la requête, se connectera directement à ce serveur LDAP.
- Les attaquants vont maintenant envoyer au serveur ciblé une réponse du serveur LDAP contenant du code malveillant. En raison de la vulnérabilité de Log4j, qui permet de recevoir le code et de l'exécuter sans vérification, le pirate peut tirer parti de cette faiblesse pour pénétrer dans le serveur cible et exploiter les systèmes, réseaux et appareils connectés.
How Can Log4j Vulnerability Harm Users?
La vulnérabilité Log4j est préoccupante car elle est utilisée dans un large éventail d'applications logicielles et de systèmes.
Étant donné que la journalisation est une fonctionnalité essentielle dans la plupart des applications logicielles et que Log4j est une solution leader dans le domaine, Log4j trouve des applications dans une variété de systèmes logiciels.
Certains des services et applications populaires utilisant Log4j sont Minecraft, AWS, iCloud, Microsoft, Twitter, les routeurs Internet, les outils de développement de logiciels, les outils de sécurité, etc. Par conséquent, les attaquants peuvent cibler un grand nombre d'applications, de services et de systèmes d'utilisateurs à domicile, de développeurs de code, de fournisseurs de services et d'autres professionnels et particuliers concernés.

De plus, la vulnérabilité Log4j est extrêmement facile à exploiter pour un attaquant. Le processus global nécessite moins de compétences, pas de niveau expert, pour mener une attaque. C'est pourquoi le nombre d'attaques exploitant cette vulnérabilité est en augmentation.
L'impact de la vulnérabilité Log4j est :
- Attaques DoS
- Attaques de la chaîne d'approvisionnement
- Extraction de pièces
- Les injections de logiciels malveillants tels que ransomware et chevaux de Troie
- Injection de code arbitraire
- Exécution de code à distance
Et plus encore.
À la suite de ces attaques, vous pouvez perdre la main sur vos applications, systèmes et appareils, et vos données peuvent devenir la proie des attaquants qui pourraient vendez vos données, le manipuler ou l'exposer au monde extérieur. Par conséquent, votre entreprise peut être lésée en termes de clientèle confidentialité des données, la confiance, les secrets de l'organisation, et même vos ventes et vos revenus, sans parler des risques de conformité.
Selon un rapport, plus de 40 % des réseaux d'entreprise mondiaux ont subi des attaques en raison de cette vulnérabilité.
Ainsi, même si vous n'utilisez aucune version vulnérable de Log4j dans vos applications, vos intégrations tierces peuvent l'utiliser, ce qui rend votre application vulnérable aux attaques.
Notez que toutes les versions de Log4j antérieures à Log4j 2.17.0. sont impactés ; par conséquent, vous devez mettre à niveau l'enregistreur si vous l'utilisez. De plus, les fournisseurs célèbres qui sont touchés par cette vulnérabilité Log4j sont Adobe, AWS, IBM, Cisco, VMware, Okta, Fortinet, etc. Si vous en utilisez un, surveillez vos applications en permanence et utilisez des systèmes de sécurité pour résoudre les problèmes dès qu'ils surviennent.
How to Detect Log4j Affected Programs and Fix the Issues
La vulnérabilité Log4Shell a un 10 dans le score CVSS. Par conséquent, tous les problèmes de Log4j ne sont pas encore corrigés. Mais il est possible que vous ou votre fournisseur tiers utilisiez Log4j, que vous avez utilisé dans votre application.
Par conséquent, si vous souhaitez protéger vos données, vos systèmes et votre réseau, assurez-vous de suivre certaines étapes de correction.
# 1. Mettez à jour votre version de Log4j

La mise à jour de votre version actuelle de Log4j vers Log 4j 2.17.1 est la technique de correction la plus efficace si vous souhaitez protéger votre appareil et vos applications contre les attaques résultant de la vulnérabilité Log4j.
Log4Shell est un type d'attaque zero-day qui peut potentiellement affecter votre écosystème logiciel. Apache a corrigé certaines des vulnérabilités dans les versions récentes, mais si votre système a été compromis avant la mise à niveau, vous êtes toujours à risque.
Par conséquent, en supposant cela, vous devez non seulement mettre à niveau la version, mais également démarrer immédiatement vos procédures de réponse aux incidents pour vous assurer qu'aucune vulnérabilité n'est présente dans vos systèmes et applications et atténuer les attaques. Vous devez également consulter tous les journaux de votre serveur pour trouver des indicateurs de compromission (IOC) et surveiller en permanence vos systèmes et votre réseau.
# 2. Utilisez les derniers pare-feu et systèmes de sécurité
Les pare-feu tels que le pare-feu d'application Web (WAF) et les pare-feu de nouvelle génération peuvent aider à protéger votre périmètre réseau contre les attaquants en analysant les paquets de données entrants et sortants et en bloquant les suspects. Alors, utilisez le derniers pare-feux dans votre réseau et définissez des règles de sortie strictes sur vos serveurs pour aider à prévenir les attaques associées à la vulnérabilité Log4j.
Bien que les attaquants puissent contourner les pare-feu, vous obtiendrez toujours un certain degré de sécurité avec des pare-feu qui peuvent bloquer les demandes d'un attaquant.
De plus, mettez à jour tous vos systèmes de sécurité, tels que les systèmes de détection d'intrusion (IDS), les systèmes de prévention d'intrusion (IPS), etc., avec les dernières signatures et règles. Ces systèmes aideront à empêcher ou à filtrer le trafic RMI et LDAP de se connecter à un serveur LDAP malveillant.
# 3. Mettre en œuvre l'AMF

La configuration de l'authentification multifacteur (MFA) dans vos applications et votre système fournira une meilleure sécurité contre les attaquants. Il fournira une deuxième couche de sécurité même si un attaquant parvient à briser la première couche. Vous pouvez le faire via la biométrie comme les empreintes digitales, le balayage de l'iris, etc., en définissant une question de sécurité ou en activant un code PIN de sécurité.
L'utilisation de MFA augmentera la difficulté et le temps des attaquants pour effectuer une attaque à part entière. En attendant, il peut également vous informer immédiatement de l'incident afin que vous puissiez prendre les mesures correctives nécessaires lorsque vous en avez encore le temps.
De plus, vous devez également appliquer des règles strictes VPN politiques visant à réduire les violations de données. Cela permettra aux utilisateurs d'accéder à vos systèmes en toute sécurité depuis n'importe où sans craindre les attaquants.
# 4. Modifier les propriétés du système
Si vous ne pouvez pas mettre à niveau vers la dernière version de la bibliothèque Log4j, vous devez modifier immédiatement les propriétés de votre système Java si vous utilisez une version allant de Log4j 2.10 à Log4j 2.14.1.
Vous devez le configurer de manière à empêcher les recherches que les attaquants utilisent pour détecter les vulnérabilités, puis trouver des moyens de les exploiter.
# 5. Supprimer JNDI
La raison de cette faille de sécurité critique réside dans sa conception. Le plugin JNDI Lookup a un défaut de conception à travers lequel les attaquants peuvent effectuer une attaque.
JNDI est utilisé pour l'exécution de code en fonction des données d'entrée dans son journal, que n'importe qui peut manipuler facilement puisque le journal accepte toute demande sans vérification.
Les chercheurs en sécurité ont découvert que ce plugin a toujours autorisé les données non analysées depuis sa sortie en 2013 et les envoie à la bibliothèque Log4j.
Par conséquent, la vulnérabilité Log4j est susceptible d'être exploitée avec une simple injection de chaîne. Une fois que l'attaquant l'injecte, le logger acceptera l'opération demandée dans la chaîne et l'exécutera instantanément sans vérification.
Ainsi, si vous souhaitez sécuriser vos systèmes et votre application, vous devez désactiver la classe - JndiLookup. Cela empêchera l'enregistreur d'agir en fonction des données du journal.
En fait, la recherche JNDI est déjà désactivée dans Log4j 2.16.0 par défaut pour tenter de sécuriser vos applications et systèmes.
Donc, si vous utilisez une version de Log4j inférieure à 2.16.0, assurez-vous d'avoir désactivé la recherche JNDI.
# 6. Parlez à vos fournisseurs
Si tout est correct, vos pare-feux et systèmes de sécurité mis à jour, la version de Log4j mise à jour, la recherche JNDI désactivée, etc., ne vous détendez pas pour l'instant.
Même si vous n'utilisez pas une version vulnérable de Log4j dans vos applications, vos fournisseurs tiers peuvent l'utiliser. Ainsi, vous ne saurez jamais comment votre application ou votre système a été piraté, car le véritable problème était lié à votre intégration tierce.
Par conséquent, discutez avec vos fournisseurs et assurez-vous qu'ils ont également mis à niveau Log4j vers la dernière version et mis en œuvre les autres pratiques de sécurité décrites ci-dessus.
# 7. Utiliser un scanner de vulnérabilité Log4j
Il existe de nombreux outils d'analyse des vulnérabilités Log4j disponibles sur le marché pour vous permettre de détecter facilement les vulnérabilités Log4j dans vos systèmes et applications.
Ainsi, lorsque vous recherchez ces outils, vérifiez leurs taux de précision, car nombre d'entre eux génèrent des faux positifs. Trouvez également un outil qui peut répondre à vos besoins, car il peut se concentrer sur l'identification de la vulnérabilité Log4j, le signalement de l'exposition et la correction de la vulnérabilité.
Donc, si votre objectif est la détection, trouvez un scanner de vulnérabilité Log4j qui peut détecter le problème ou utilisez celui qui peut détecter et résoudre le problème.

Certains des meilleurs outils d'analyse Log4j sont :
- Microsoft 365 défendrer : Microsoft propose une gamme de solutions et d'outils de sécurité pour vous aider à détecter et à prévenir les exploits Log4j sur votre réseau. Vous serez en mesure de repérer les tentatives d'exécution et d'exploitation de code à distance, vous protégeant des vulnérabilités Log4j dans les appareils Windows et Linux.
- Inspecteur Amazon et AWS : Amazon a créé un outil d'analyse pour trouver la vulnérabilité Log4j dans les instances Amazon EC2 et Amazon ECR.
- Outil d'analyse d'archives CloudStrike (CAST) : CloudStrike a également créé un excellent outil d'analyse pour détecter la vulnérabilité Log4j afin de vous aider à résoudre les problèmes à temps avant que les attaquants ne puissent l'exploiter.
- Détection Google Cloud Logging : La solution de détection de journalisation dans le cloud de Google vous permet de détecter les exploits Log4j à l'aide de l'explorateur de journaux. Vous pouvez créer une requête de journal dans cet outil et rechercher des chaînes d'exploitation potentielles.
- Google a également créé log4jscanner, un scanner de système de fichiers open source pour détecter la vulnérabilité Log4j.
- Analyseur BurpSuite Log4j : Il s'agit d'un plugin de sécurité destiné aux professionnels et aux entreprises pour les aider à détecter la vulnérabilité Log4j.
- Testeur de vulnérabilité Huntress Log4Shell : Cet outil génère un identifiant unique au hasard que vous pouvez utiliser lors du test de vos champs de saisie. En cas de détection d'une vulnérabilité dans l'application ou le champ de saisie, son serveur LDAP sécurisé mettra fin instantanément à la connexion malveillante et vous protégera.
- Détection de WhiteSource Log4j : WhiteSource a créé un outil CLI gratuit, WhiteSource Log4j Detect, hébergé sur GitHub pour vous aider à détecter et corriger les vulnérabilités Log4j - CVE-2021-445046 et CVE-2021-44228.
- Outils d'analyse open source JFrog pour Log4j : JFrog a créé diverses solutions et outils open source pour trouver les vulnérabilités Log4j dans vos binaires et votre code source.
Conclusion
La vulnérabilité Log4j est un problème de sécurité critique. Étant donné que cette bibliothèque de journalisation est largement utilisée dans diverses applications et systèmes, la vulnérabilité Log4j s'est généralisée, permettant aux attaquants d'exploiter un large éventail de systèmes et d'applications.
Donc, si vous souhaitez protéger vos systèmes et applications de cette vulnérabilité, assurez-vous de mettre à niveau la bibliothèque Log4j vers la dernière version et implémentez la meilleure pratiques de sécurité discuté ci-dessus.