Log4j
Log4j est une bibliothèque logicielle utilitaire open source programmée en langage Java. Elle fait partie de Apache Logging Services, un projet de l'Apache Software Foundation. Elle fournit des fonctions permettant de gérer des traces et des historiques d'applications.
Développé par | Apache Software Foundation et Ceki Gülcü (d) |
---|---|
Dernière version | 2.20.0 ()[1] |
DĂ©pĂ´t | github.com/apache/logging-log4j2 |
Écrit en | Java |
Système d'exploitation | Multiplateforme |
Environnement | Machine virtuelle Java |
Type | Library for logging (d) |
Licence | Licence Apache version 2.0 |
Site web | logging.apache.org/log4j/2.x |
Elle est utilisée dans de très nombreuses applications web et services web programmés en langage Java[2].
Fonctionnalités
Niveaux de trace
La table ci-dessous décrit les niveaux de traces et de messages émis par Log4j, en ordre décroissant de sévérité.
Niveau | Description |
---|---|
OFF | Le niveau le plus élevé, destiné à désactiver les traces. |
FATAL | Les erreurs graves qui provoquent une fin de programme prématurée. |
ERROR | Autres erreurs ou conditions inattendues. |
WARN | Utilisation d'APIs obsolète, ou mauvais usage d'API. |
INFO | Evènements importants comme le démarrage ou la fin normale de programme. |
DEBUG | Informations très détaillées sur le déroulement du programme. |
TRACE | Informations de trace, supposées n'apparaitre que dans les fichiers logs, depuis la version 1.2.12[3]. |
Niveaux de trace personnalisés
Log4j 2 permet à l'utilisateur de définir ses propres niveaux de logs personnalisés[4].
Failles de sécurité
La version 1.2 comportait une faille de sécurité identifiée en 2019[5] (vulnérabilité logicielle)[6] qui permettait d'exécuter un code potentiellement malveillant.
Cette faille a été corrigée dans la version 2. Cependant une autre faille de sécurité intitulée "Log4Shell"[7] a aussi été détectée dans cette version le par le fournisseur de cloud chinois Alibaba[8]. La correction 2.15 était incomplète, et un nouveau patch 2.16 a été publié le [9].
Le ministère de la Défense Canadien a émis un avertissement concernant cette faille et ses conséquences potentielles[10], de même que le directeur de la Cybersecurity and Infrastructure Security Agency américaine[11].
Le 10 décembre 2021, le Centre gouvernemental de veille, d’alerte et de réponse aux attaques informatiques français émet un bulletin d'alerte concernant une vulnérabilité dans les versions 2.16.0 et 2.12.2 (entre autres) de Apache Log4j[12]. Cette vulnérabilité 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.
Notes et références
- « Release 2.20.0 », (consulté le )
- https://www.lemondeinformatique.fr/actualites/lire-faille-log4j-les-dsi-et-rssi-en-pleine-tempete-l-anssi-vigilante-85110.html
- « Level (Apache Log4j 1.2.17 API) », Logging.apache.org, (consulté le )
- « Custom Log Levels », Logging.apache.org, (consulté le )
- https://www.cvedetails.com/cve/CVE-2019-17571/
- https://logging.apache.org/log4j/1.2/index.html
- https://www.lawfareblog.com/whats-deal-log4shell-security-nightmare
- https://www.theguardian.com/technology/2021/dec/10/software-flaw-most-critical-vulnerability-log-4-shell
- https://www.zdnet.fr/actualites/une-deuxieme-vulnerabilite-de-log4j-decouverte-et-un-nouveau-patch-publie-39934151.htm
- https://cyber.gc.ca/en/news/statement-minister-national-defence-apache-vulnerability
- https://www.cisa.gov/news/2021/12/11/statement-cisa-director-easterly-log4j-vulnerability
- « [MaJ] Vulnérabilité dans Apache Log4j – CERT-FR », sur www.cert.ssi.gouv.fr (consulté le )