Qu’est-ce que Log4Shell?
Vous avez très probablement entendu parler de Log4Shell (ou CVE-2021-44228), la faille critique qui a touché Log4js, une bibliothèque de logs populaire écrite en Java.
Ce qui a été mis en place chez Clever Cloud ?
Chez Clever Cloud, nous avons œuvré tout le week-end pour résoudre ce problème.
En clair, tous les add-ons Elasticsearch chez nous ont été sécurisés rapidement, et beaucoup de nos clients sont sécurisés par les versions les plus récentes de JDK. Edit (13/12 16h41) : Même les versions les plus récentes de Java sont à présent vulnérables à la RCE (Remote Code Execution) en raison d’un bypass. La seule solution viable est donc de patcher et mettre à jour log4j directement.
Veuillez noter également :
- Si vous êtes sur Java 8 (ou plus), vous devriez passer à la version 2.17.0.
- Si vous êtes sur Java 7 , vous devriez passer à la version 2.12.2.
- Sinon, vous pouvez supprimer la classe JndiLookup du classpath grâce à un hook après le build de votre application (vous devez exécuter le hook dans le dossier où se trouve le jar de log4j) :
CC_POST_BUILD_HOOK=zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class "
En ce qui concerne les autres, nous avons déclenché une politique de surveillance et d’analyse approfondie.
Nous sommes également en train de mettre en mettre à jour l’image Java avec la propriété de configuration de Log4j suivante : Edit (14/12 14h04) : L’image Java a bien été mise à jour et toutes les applications Java ont bien été redéployées avec la propriété de configuration suivante:
log4j2.formatMsgNoLookups=true
Il est important de noter que ce paramètre ne fonctionne qu’avec Log4j en version 2.10.0 minimum.
Nous avons mis à jour l’agent Java New Relic vers la version 7.4.1 et les applications sur lesquelles l’agent était déployé ont toutes été redéployées.
Nous avons également patché le cluster Pulsar.
Comment limiter les risques ?
Nous vous encourageons fortement à mettre à jour votre dépendance pour Log4j v2.17.0.
Ensuite, en fonction des environnements et add-ons avec lesquels vous travaillez, voilà ce que vous pouvez mettre en place également :
Pour Docker
Si vous utilisez Docker, vous devrez soit :
- Mettre à jour vers Log4j v2.17.0 (reccomandé)
-
Ou mettre en ligne Log4j (uniquement pour v2.10.0 minimum) avec la propriété de configuration suivante :
log4j2.formatMsgNoLookups=true
Pour Jenkins
L’équipe sécurité de Jenkins a confirmé que Log4j n’est pas utilisé dans le core de Jenkins. Par contre, elle peut être utilisée dans certains plugins Jenkins. Vous pouvez identifier si Log4j est incluse dans un plugin en utilisant la commande suivante dans la Script Console :
org.apache.logging.log4j.core.lookup.JndiLookup.class.protectionDomain.codeSource
Équipe support
Bien entendu, notre équipe support se tient à votre disposition pour toute question concernant la situation actuelle. Vous pouvez les contacter via le chat ou alors envoyer un e-mail à support@clever-cloud.com.