
Dateisystem-Scanner, der anfällige Log4J-Versionen (CVE-2021-44228, CVE-2021-45046) durch Analyse kompilierter Java-Klassen, einschließlich verschachtelter Archive, erkennt. Funktioniert unter Linux, Windows und Mac.

Scanner, der verwundbare Log4J-Versionen erkennt, um Teams bei der Bewertung ihrer Gefährdung durch CVE-2021-44228 (KRITISCH), CVE-2021-45046, CVE-2021-45105 und CVE-2021-44832 zu helfen. Kann nach Log4J-Instanzen suchen, indem das gesamte Dateisystem einschließlich aller installierten Anwendungen sorgfältig untersucht wird. Es ist in der Lage, Log4J-Instanzen zu finden, die mehrere Ebenen tief versteckt sind. Funktioniert unter Linux, Windows, Mac und überall sonst, wo Java läuft!
log4j-core-Bibliothek. Was ist mit log4j-api?Meldet derzeit log4j-core-Versionen 2.3.2, 2.12.4 und 2.17.1 als _SAFE_, 2.3.1, 2.12.2, 2.12.3, 2.15.0, 2.16.0 und 2.17.0 als _OKAY_ und alle anderen Versionen als _VULNERABLE_ (obwohl es Versionen vor 2.0-beta9 als _POTENTIALLY_SAFE_ meldet). Es meldet ältere log4j-1.x-Versionen als _OLD_.
Kann log4j in ausführbaren Spring-Boot-Jars/Wars, Abhängigkeiten, die in Uber-Jars vermischt sind, Shaded-Jars und sogar entpackte Jar-Dateien, die einfach unkomprimiert auf dem Dateisystem liegen (auch *.class), korrekt erkennen.
Wir pflegen derzeit eine Sammlung von log4j-Samples, die wir zum Testen verwenden.
java -jar log4j-detector-2021.12.29.jar ./samples
-- github.com/mergebase/log4j-detector v2021.12.29 (by mergebase.com) analyzing paths (could take a while).
-- Note: specify the '--verbose' flag to have every file examined printed to STDERR.
false-hits/log4j-core-2.12.2.jar contains Log4J-2.x == 2.12.2 _OKAY_
false-hits/log4j-core-2.12.3.jar contains Log4J-2.x == 2.12.3 _OKAY_
false-hits/log4j-core-2.12.4.jar contains Log4J-2.x == 2.12.4 _SAFE_
false-hits/log4j-core-2.15.0.jar contains Log4J-2.x == 2.15.0 _OKAY_
false-hits/log4j-core-2.16.0.jar contains Log4J-2.x == 2.16.0 _OKAY_
false-hits/log4j-core-2.17.0.jar contains Log4J-2.x == 2.17.0 _OKAY_
false-hits/log4j-core-2.17.1.jar contains Log4J-2.x >= 2.17.1 _SAFE_
false-hits/log4j-core-2.3.1.jar contains Log4J-2.x == 2.3.1 _OKAY_
false-hits/log4j-core-2.3.2.jar contains Log4J-2.x == 2.3.2 _SAFE_
true-hits/log4j-core-2.0-beta9.jar contains Log4J-2.x >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
true-hits/log4j-core-2.10.0.jar contains Log4J-2.x >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.10.0.zip contains Log4J-2.x >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.11.0.jar contains Log4J-2.x >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.11.1.jar contains Log4J-2.x >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.11.2.jar contains Log4J-2.x >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.12.0.jar contains Log4J-2.x >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.12.1.jar contains Log4J-2.x >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.14.0.jar contains Log4J-2.x >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.14.1.jar contains Log4J-2.x >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.2.jar contains Log4J-2.x >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
true-hits/log4j-core-2.3.jar contains Log4J-2.x >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
true-hits/log4j-core-2.4.1.jar contains Log4J-2.x >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
true-hits/log4j-core-2.4.jar contains Log4J-2.x >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
true-hits/log4j-core-2.9.1.jar contains Log4J-2.x >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
old-hits/log4j-1.1.3.jar contains Log4J-1.x <= 1.2.17 _OLD_
old-hits/log4j-1.2.17.jar contains Log4J-1.x <= 1.2.17 _OLD_
old-hits/log4j-core-2.0-beta2.jar contains Log4J-2.x <= 2.0-beta8 _POTENTIALLY_SAFE_ (Did you remove JndiLookup.class?)
_VULNERABLE_ -> Sie müssen diese Datei aktualisieren oder entfernen.
_OKAY_ -> Wir melden dies für Log4J-Versionen 2.3.1, 2.12.2, 2.12.3, 2.15.0, 2.16.0 und 2.17.0. Wir empfehlen ein Upgrade auf 2.17.1.
_SAFE_ -> Wir melden dies derzeit nur für Log4J-Versionen 2.3.2, 2.12.4 und 2.17.1 (und höher).
_OLD_ -> Sie sind vor CVE-2021-44228 sicher, sollten aber ein Upgrade planen, da Log4J 1.2.x seit 7 Jahren EOL ist und mehrere bekannte Schwachstellen aufweist.
_POTENTIALLY_SAFE_ -> Die Datei "JndiLookup.class" ist nicht vorhanden, entweder weil Ihre Log4J-Version sehr alt ist (vor 2.0-beta9) oder weil jemand diese Datei bereits entfernt hat. Stellen Sie sicher, dass es sich um jemanden aus Ihrem Team oder Unternehmen handelte, der "JndiLookup.class" entfernt hat, wenn dies der Fall ist, da Angreifer dafür bekannt sind, diese Datei selbst zu entfernen, um zu verhindern, dass zusätzliche konkurrierende Angreifer Zugriff auf kompromittierte Systeme erhalten.
java -jar log4j-detector-2021.12.29.jar
Usage: java -jar log4j-detector-2021.12.29.jar [--verbose] [--json] [--stdin] [--exclude=X] [paths to scan...]
--json - Output STDOUT results in JSON. (Errors/warning still emitted to STDERR)
--stdin - Read STDIN for paths to explore (one path per line)
--exclude=X - Where X is a JSON list containing full paths to exclude. Must be valid JSON.
Example: --exclude='["/dev", "/media", "Z:\TEMP"]'
Exit codes: 0 = No vulnerable Log4J versions found.
1 = At least one legacy Log4J 1.x version found.
2 = At least one vulnerable Log4J version found.
About - MergeBase log4j detector (version 2021.12.29)
Docs - https://github.com/mergebase/log4j-detector
(C) Copyright 2021 Mergebase Software Inc. Licensed to you via GPLv3.
git clone https://github.com/mergebase/log4j-detector.git
cd log4j-detector/
mvn install
java -jar target/log4j-detector-latest.jar
Wir pflegen eine Sammlung von log4j-Beispielen hier: https://github.com/mergebase/log4j-samples
GPL Version 3.0
Der Java-Compiler speichert String-Literale direkt in den kompilierten *.class-Dateien. Wenn log4j-detector eine Datei namens "JndiManager.class" auf Ihrem Dateisystem erkennt, untersucht es diese Datei auf den String: "Invalid JNDI URI - {}". Es stellt sich heraus, dass dieses spezifische String-Literal nur in der gepatchten Version von Log4J (Version 2.15.0) vorhanden ist. Alle Versionen von Log4J ohne diesen String sind verwundbar.