Log4Shell-Schwachstellen in nicht verwalteten und abgeschatteten JAR-Dateien mit der Snyk CLI finden
Michal Brutvan
18. Dezember 2021
0 Min. LesezeitWie Sie vielleicht wissen, wurde die Log4Shell-Schwachstelle, identifiziert als CVE-2021-44228 und CVE-2021-45046, am Freitag, dem 10. Dezember 2021, im Apache-Log4j-Logging-Framework bekannt gegeben. Die Snyk CLI ist bereits ein leistungsstarkes Tool, mit dem Sie Log4j-CVEs finden können, wenn die Bibliothek direkt oder transitiv in Ihrer Anwendung enthalten ist. Wenn die Log4j-Bibliothek jedoch nicht in der Manifestdatei deklariert, geforkt oder neu verpackt wurde, konnten Sie solche Vorkommen bisher möglicherweise nicht finden – bis jetzt.
Heute erweitern wir die Leistungsfähigkeit der Snyk CLI um den neuen Befehl snyk log4shell. Damit erhalten Sie einen besseren Einblick in Ihre Anwendung und können sogar Spuren der verwundbaren Bibliothek finden, wenn diese nicht in der Manifestdatei deklariert ist. Der neue Befehl durchsucht .jar- und .war-Dateien nach Log4j oder seinen Bestandteilen. Auch „Fat JARs“ werden unterstützt.
Der Befehl ist ab Snyk CLI Version 1.796 verfügbar und nutzt die bahnbrechende Analyse- und Erkennungstechnologie, die durch die Übernahme von FossID Anfang dieses Jahres ermöglicht wurde.
Snyk Open Source
Diese Befehle sind bereits in der Snyk Open Source CLI verfügbar und ermöglichen Ihnen, Java-Projekte zu testen:
snyk testanalysiert Projektmanifeste und ermittelt Abhängigkeiten sowie bekannte Schwachstellen. Weitere Informationen zur Verwendung finden Sie in der Snyk-Dokumentation für Java.snyk test --scan-all-unmanagedvergleicht die Signaturen der JAR-Dateien im Zielordner mit Signaturen im Maven-Repository, um einzelne Pakete und deren Schwachstellen zu erkennen. Weitere Informationen zur Verwendung finden Sie in der CLI-Referenzdokumentation.
Snyk Log4Shell (Neu )
Das vorhandene Argument –scan-all-unmanaged öffnet keine JAR-Dateien, sondern vergleicht lediglich Dateisignaturen. Um .jar-Dateien zu durchsuchen und nicht deklarierte Inhalte zu finden – etwa geforkte Projekte, umbenannte Dateien oder neu verpackte JAR-Dateien (z. B. Fat JARs) –, haben wir einen neuen Snyk-CLI-Befehl eingeführt. Er sucht gezielt nach Log4j-Versionen, die von der CVE-2021-44228-Schwachstelle (Log4Shell) betroffen sind.
snyk log4shell ergänzt die Scans von Snyk Open Source, mit denen sich verwundbare Pakete anhand von Manifestdateien finden lassen. Dazu werden integrierte Java-Binärdateien rekursiv auf Spuren des Log4j-Quellcodes untersucht.
Mit snyk log4shell können Sie:
Ein Java-Projekt daraufhin scannen, ob es .jar-Dateien mit einer verwundbaren Log4j-Version enthält.
Ein Java-Projekt daraufhin scannen, ob es Dateien enthält, die bekanntermaßen zur verwundbaren Log4j-Bibliothek gehören. Solche Ergebnisse weisen darauf hin, dass möglicherweise die gesamte Log4j-Bibliothek enthalten ist.
So verwenden Sie snyk log4shell
Stellen Sie sicher, dass das Projekt erstellt wurde.
Führen Sie
snyk log4shellim Verzeichnis des Projekts aus, das Sie scannen möchten:
Hinweis: Der neue Befehl benötigt und unterstützt keine zusätzlichen Befehlszeilenargumente.
Weitere Ressourcen
Neben der Entwicklung dieser zusätzlichen Funktionen mit Snyk haben wir auch eine umfangreiche Informationssammlung zur Snyk4Shell-Schwachstelle zusammengestellt. Wir empfehlen Ihnen, diese Ressourcen durchzusehen – darunter unseren Log4Shell-Leitfaden zur Behebung und unseren Leitfaden zum Finden und Beheben von Log4Shell –, damit Sie sich schützen können.
