Une vulnérabilité zero-day dans la bibliothèque Apache Log4j a été divulguée. Elle est activement exploitée et permettrait l’exécution de code à distance sur les systèmes vulnérables.

Apache Log4j est une bibliothèque open source développée en Java qui permet aux développeurs d’écrire des messages de journal. Il s’agit d’une bibliothèque largement utilisée dans les logiciels populaires de divers fournisseurs, notamment Amazon, Apple iCloud, Cisco, Cloudflare, ElasticSearch, Red Hat, Steam, Tesla, Twitter et même des jeux vidéo tels que Minecraft.

La vulnérabilité, identifiée sous le nom de CVE-2021-44228 et surnommée « Log4Shell » ou « LogJam », est due aux fonctionnalités JNDI (Java Naming and Directory Interface) utilisées dans la configuration, les messages de journal et les paramètres qui ne fournissent pas de protection contre l’accès aux services d’annuaire distants et autres points finaux.

Cette faille de sécurité pourrait permettre à un attaquant distant non authentifié d’exécuter du code arbitraire chargé depuis des serveurs distants. Cela peut se faire par l’intermédiaire d’une simple chaîne de texte, qui amène une application à communiquer avec un hôte externe malveillant, à partir duquel la charge utile est téléchargée et exécutée localement sur le système affecté. À titre d’exemple, la possibilité d’exécuter du code à distance sur les serveurs de jeu Minecraft en tapant simplement un message spécialement conçu dans la boîte de discussion a été démontrée.

La vulnérabilité, découverte par Chen Zhaojun de l’équipe de sécurité d’Alibaba Cloud, a reçu un score CVSS de 10 sur 10 en raison, notamment, de sa gravité et de sa facilité d’exploitation.

Les versions d’Apache Log4j comprises entre 2.0-beta9 et 2.14.1, toutes deux incluses, sont affectées. L’Apache Software Foundation a publié des correctifs pour contenir la vulnérabilité dans les versions 2.15.0 et ultérieures.

Selon les experts en sécurité, cette faille dans Apache Log4j pourrait probablement être considérée comme la vulnérabilité la plus critique découverte au cours de cette année 2021.

Actuellement, des Proof of Concept (PoC) ont été publiées et la vulnérabilité est activement exploitée. Des entreprises de cybersécurité telles que BitDefender, Cisco Talos, Huntress Labs et Sonatype confirment l’existence de scans massifs des applications concernées à la recherche de serveurs vulnérables et ont enregistré des attaques contre leurs pots de miel. Selon les déclarations de Cloudflare, ils ont été contraints de bloquer environ 20 000 requêtes par minute cherchant à exploiter la faille de sécurité ; ces attaques se sont produites vers 18 h UTC vendredi dernier et provenaient principalement du Canada, des États-Unis, des Pays-Bas, de la France et du Royaume-Uni.

Compte tenu de la facilité d’exploitation, les attaques visant les serveurs sensibles devraient continuer à se multiplier au cours des prochains jours. Il est donc fortement recommandé de s’attaquer immédiatement au problème.

La mise à niveau de la bibliothèque vers Apache Log4j 2.15.0 ou une version ultérieure corrige la faille de sécurité. Toutefois, s’il n’est pas possible d’appliquer les correctifs de sécurité, les contre-mesures suivantes sont recommandées pour atténuer le problème :

  • Dans les versions 2.10 à 2.14.1, il est recommandé de définir le paramètre log4j2.formatMsgNoLookups ou la variable d’environnement LOG4J_FORMAT_MSG_NO_LOOKUPS à true.
  • Dans les versions inférieures à 2.10 et jusqu’à 2.0-beta9, supprimez la classe JndiLookup du chemin des classes (en utilisant la commande zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class).

Il est également recommandé d’effectuer des contrôles pour déterminer si une application est potentiellement vulnérable à la vulnérabilité « Log4Shell » en recherchant les fichiers correspondant au motif : log4j-core-*.jar. L’emplacement de ces fichiers indique quelle application doit être vérifiée (par exemple, sous Windows, si le fichier se trouve dans C:\Program Files\ApplicationName\log4j-core-version.jar, cela indique que l’application potentiellement affectée est ApplicationName). Sur les systèmes GNU/Linux, la commande lsof peut également être utilisée pour déterminer quels processus ont ces fichiers en cours d’utilisation.

Enfin, une compilation des hachages des différentes versions de la bibliothèque vulnérable est fournie sur GitHub pour faciliter leur recherche sur les systèmes.

Plus d’information :
log4shell/README.md at main · NCSC-NL/log4shell · GitHub
https://logging.apache.org/log4j/2.x/security.html
https://github.com/mubix/CVE-2021-44228-Log4Shell-Hashes