Skip to main content

Détectez les vulnérabilités Log4Shell dans vos fichiers JAR non gérés et ombrés avec Snyk CLI

Écrit par
Headshot of Michal Brutvan

Michal Brutvan

blog feature log4j vulnerability green

18 décembre 2021

0 minutes de lecture

Comme vous le savez peut-être, la vulnérabilité Log4Shell, identifiée sous les références CVE-2021-44228 et CVE-2021-45046, a été divulguée le vendredi 10 décembre 2021 pour le framework de journalisation Log4j d’Apache. Snyk CLI est un outil puissant qui vous permet de détecter les CVE Log4j lorsque la bibliothèque est incluse directement ou indirectement dans votre application. Toutefois, si la bibliothèque Log4j n’est pas déclarée dans le fichier manifeste, qu’elle a été forkée ou reconditionnée, vous risquez de ne pas détecter ces instances — jusqu’à présent.

Aujourd’hui, nous renforçons les capacités de Snyk CLI avec une nouvelle commande snyk log4shell qui vous offre une meilleure visibilité sur votre application et vous permet notamment de détecter des traces de la bibliothèque vulnérable, même si elle n’est pas déclarée dans le fichier manifeste. Cette nouvelle commande inspecte les fichiers .jar et .war pour y rechercher Log4j ou ses composants. Les « Fat JAR » sont également pris en charge.

La commande est disponible à partir de la version 1.796 de Snyk CLI et s’appuie sur la technologie d’analyse et de détection révolutionnaire rendue possible par l’acquisition de FossID plus tôt cette année.

Snyk Open Source

Ces commandes sont déjà disponibles dans la CLI Snyk Open Source et vous permettent de tester des projets Java :

  • snyk test analyse les fichiers manifestes des projets et identifie leurs dépendances ainsi que les vulnérabilités connues. Consultez la documentation de Snyk pour Java pour en savoir plus sur son utilisation.

  • snyk test --scan-all-unmanaged compare les signatures des fichiers JAR dans le dossier cible à celles du dépôt Maven afin de détecter les packages individuels et leurs vulnérabilités. Consultez la documentation de référence de la CLI pour en savoir plus sur son utilisation.

Snyk Log4Shell (nouveau)

L’argument existant –scan-all-unmanaged n’ouvre pas les fichiers JAR : il compare uniquement leurs signatures. Pour inspecter les fichiers .jar et détecter les éléments non déclarés — par exemple, des projets forkés, des fichiers renommés ou des fichiers JAR reconditionnés (comme les Fat JAR) — nous avons créé une nouvelle commande Snyk CLI spécifiquement conçue pour détecter les versions de Log4j touchées par la vulnérabilité CVE-2021-44228 (Log4Shell).

snyk log4shell complète les analyses de Snyk Open Source, qui vous aident à détecter les packages vulnérables à partir des fichiers manifestes, en analysant récursivement les binaires Java compilés à la recherche de traces du code source de la bibliothèque Log4j.

Avec snyk log4shell, vous pouvez :

  • Analyser un projet Java pour vérifier s’il contient des fichiers .jar avec une version vulnérable de Log4j.

  • Analyser un projet Java pour vérifier s’il contient des fichiers connus comme faisant partie de la bibliothèque Log4j vulnérable. De tels résultats indiquent que la bibliothèque Log4j complète est peut-être incluse.

Comment utiliser snyk log4shell

  1. Installez la dernière version de Snyk CLI (1.796)

  2. Assurez-vous que le projet est compilé.

  3. Exécutez snyk log4shell depuis le répertoire du projet que vous souhaitez analyser :

$ snyk log4shell
Please note this command is for already built artifacts. To test source code please use snyk test.
Results:

A vulnerable version of log4j was detected:
demo-0.0.1-SNAPSHOT/WEB-INF/lib/log4j-core-2.14.1.jar
demo-0.0.1-SNAPSHOT.war/WEB-INF/lib/log4j-core-2.14.1.jar
demo-0.0.1-SNAPSHOT.war.original/WEB-INF/lib/log4j-core-2.14.1.jar

Remarque : cette nouvelle commande ne nécessite ni ne prend en charge d’autres arguments en ligne de commande.

Ressources supplémentaires

En plus de développer cette fonctionnalité avec Snyk, nous avons également créé une vaste bibliothèque d’informations sur la vulnérabilité Snyk4Shell. Nous vous invitons à consulter ces ressources — notamment notre antisèche de remédiation Log4Shell et notre guide pour détecter et corriger Log4Shell — afin de vous protéger.