CVE-2021-44228 : Vulnérabilité Critique dans Apache Log4j

En fin d’année 2021, une vulnérabilité assez problématique a fait son apparition, et mit le feu à l’internet. Vous en avez sûrement déjà entendu parler, nous parlons de la fameuse faiblesse impactant log4J. 

Nous vous proposons de revenir sur son origine, son impact et les moyens à notre disposition pour la mitiger.

LOG4J

Log4J est avant toute chose un module java créé par la fondation APACHE, organisme à but non-lucratif, auteur entre autres du célèbre serveur Web apache que l’on ne présente plus. Ce module est utilisé par les développeurs dans de nombreux logiciels et fournit des fonctions permettant de logger les événements d’une application. 

La génération de log étant une partie très importante pour le suivi d’un logiciel et son débuggage, il est possible de comprendre rapidement pourquoi cette bibliothèque est utilisée dans des milliers de logiciels aujourd’hui.

IMPACT

L’un des problèmes majeurs quand une technologie est largement répandue, c’est qu’au moment où une vulnérabilité est découverte, beaucoup d’équipements peuvent se trouver impactés. En l’occurrence la faille de sécurité que nous traitons, aussi appelée CVE-2021-44228 ou Log4Shell permet à un attaquant distant d’exécuter du code arbitraire sur la machine vulnérable. Celui-ci pourra de ce fait, accéder potentiellement aux données d’un ordinateur en lecture et écriture. 

Il pourrait aussi dans certains cas tenter de monter en privilège sur la machine affectée afin d’en pérenniser l’accès et de l’utiliser par exemple pour mener d’autres attaques.

Maintenant, imaginez que cela soit possible sur des centaines de logiciels disponibles sur des centaines de machines et ajoutez à cela la plaitore de preuve de concept disponibles publiquement sur Internet. Vous aurez alors une bonne vue d’ensemble de pourquoi cette vulnérabilité fait couler autant d’encre.

reponse-cert

Besoin de conseils pour sécuriser votre entreprise ?

LOGICIELS TOUCHÉS

Cette vulnérabilité est d’autant plus médiatisée car elle impacte un certain nombre de logiciels connus. On notera par exemple la preuve de concept sur le logiciel Minecraft réalisée par John Hammond qui a fait sensation à sa sortie et la vidéo qui en a découlée, montrant celui-ci exécutant du code sur un serveur Minecraft, à plus de 228 000 vues. 

Le jeux vidéo appartenant à microsoft et possédant environ 126 millions de joueurs à travers le monde, on comprend trés vite pourquoi cette vidéo a fait parler.

log4j_minecraft
Il reste important de noter que, si votre outil utilise log4j, celui-ci n’est pas forcément impacté par la vulnérabilité. En effet, certaines conditions doivent être respectées pour que les différents exploits fonctionnent. Les versions de log4J impactées sont toutes les versions `2.x < 2.17`.

POC

La vulnérabilité réside dans le fait que certaines fonctions de log4j utilisent une fonctionnalité appelée “message lookup substitution” permettant de remplacer certaines chaînes de caractères par des variables générées par Java. Un exemple simple en pseudocode :

`log(Start : ${java:runtime})`

Donnera :

`Start : Java version x.x.x`

Le problème ici, en utilisant des mots clef spéciaux, par exemple JNDI (Java Naming and Directory Interface), permettant d’utiliser des protocoles d’annuaires, combiné à LDAP (Lightweight Directory Access Protocol) permettant de communiquer avec différents services d’annuaires, un attaquant aillant la main mise sur le contenu des chaînes de caractères loggées peut entraîner l’exécution de code au travers de l’application utilisée.

Un exemple d’attaque pouvant être menée :

exemple d'attaque du log4j

L’attaque fonctionne, à partir du moment où un attaquant peut modifier la chaîne de caractères loggée par l’application, malheureusement cela arrive très souvent. 

Cela peut être par exemple un message envoyé par un utilisateur sur un jeu en ligne conservé et loggé à des fins de modération, l’user agent d’un navigateur qui se connecte à un serveur web, un nom d’utilisateur… Les possibilités sont nombreuses, ce qui rend la vulnérabilité très présente sur l’internet.

MITIGATION

Pour mitiger la vulnérabilité, le plus simple reste de mettre à jour le package log4j sur une version supérieure à la version 2.17. 

Cependant, si pour des raisons de rétrocompatibilité, il vous est impossible d’effectuer cette action, il est possible de mettre en place certaines actions pour mitiger celle-ci (nous vous conseillons cependant de mettre à jour vos outils afin de bénéficier de futurs patchs de sécurité.).

CONCLUSION

La facilité d’exploitation de cette vulnérabilité et son omniprésence sur différents outils, dont certains très utilisés confirment l’appellation que de nombreux médias lui donnent, en effet, décrite comme la “vulnérabilité de la décennie”, celle-ci promet d’avoir un impact fort sur la sécurité de nombreuses applications. 

Les équipes de réponse à incident du CERT Synetis (prévention ou remédiation) sont prêtes à intervenir. Un expert du CERT est disponible 24x7x365 sur la ligne d’urgence au 02 30 21 31 04, il sera en mesure de répondre à votre besoin.