Log4Shell (CVE-2021-44228, CVE-2021-45046 et CVE-2021-45105) est une vulnérabilité d’exécution de code à distance (RCE, remote code execution) qui permet à des acteurs malveillants d’exécuter un code Java arbitraire, en prenant le contrôle d’un serveur cible.
2021 a été une année bien remplie en termes de vulnérabilités zero-day, à commencer par Log4Shell. Cette faille critique se trouve dans Apache Log4j, une bibliothèque de consignation basée sur Java et utilisée à grande échelle. Officiellement identifiée sous le nom CVE-2021-44228, le Common Vulnerability Scoring System (CVSS) lui a attribué un score de gravité de 10 sur 10 (CVSS v3.1).
Cette vulnérabilité a tout d'abord été signalée de manière privée à Apache le 24 novembre 2021. Le 9 décembre 2021, Log4Shell a été publiquement divulgué et a reçu un correctif initial avec la version 2.15.0 d’Apache Log4j.
Les informations suivantes relatant des attaques observées dans l’environnement ont poussé plusieurs agences de cybersécurité nationales à émettre des avertissements, notamment la Cybersecurity and Infrastructure Security Agency (CISA) aux États-Unis, le National Cyber Security Center (NCSC) au Royaume-Uni, et le Canadian Center for Cyber Security. En raison de la popularité d’Apache Log4j, des centaines de millions d'appareils ont pu être impactés.
Log4Shell est une vulnérabilité d’injection Java Naming and Directory Interface™ (JNDI) qui peut permettre l’exécution de code à distance (RCE, remote code execution). En incluant des données non fiables (comme des charges utiles malveillantes) dans le message consigné dans une version Apache Log4j affectée, un attaquant peut établir une connexion à un serveur malveillant via une recherche JNDI. Il bénéficie ainsi d’un accès complet à votre système, où qu'il soit dans le monde.
La recherche JNDI prend en charge différents types de répertoires, comme Domain Name Service (DNS), Lightweight Directory Access Protocol (LDAP) qui fournissent de précieuses informations comme les appareils réseau de l’organisation, Remote Method Invocation (RMI), et Inter-ORB Protocol (IIOP). Log4Shell peut mener à d'autres menaces, telles que :
Voici une chaîne d’infection possible :
Essentiellement tout appareil connecté à Internet exécutant Apache Log4j versions 2.0 à 2.14.1. Les versions concernées sont incluses dans Apache Struts, Apache Solr, Apache Druid, Elasticsearch, Apache Dubbo et VMware vCenter.
Apache a publié Apache Log4j version 2.15.0 pour corriger la vulnérabilité. Cependant, cette version ne fonctionnait qu’avec Java 8. Les utilisateurs de versions antérieures ont dû appliquer des atténuations temporaires, encore et encore. Au moment de la publication, Apache a publié la version 2.16.0 et a conseillé aux utilisateurs de mettre à jour aussi rapidement que possible leur bibliothèque potentiellement affectée.
D'autres stratégies d'atténuation, comme l’application de correctifs virtuelle et l’utilisation d’un système de détection/prévention des intrusions (IDS/IPS), sont fortement encouragées. L’application de correctifs virtuelle évite toute exploitation ultérieure de la vulnérabilité, tandis que l’IDS/IPS inspecte les comportements suspects dans le trafic entrant et sortant.
Recherches associées
Articles associés