
Сканер файловой системы, который обнаруживает уязвимые версии Log4J (CVE-2021-44228, CVE-2021-45046) путем анализа скомпилированных Java-классов, включая вложенные архивы. Работает на Linux, Windows и Mac.

Сканер, который обнаруживает уязвимые версии Log4J, помогая командам оценить степень подверженности CVE-2021-44228 (КРИТИЧЕСКАЯ), CVE-2021-45046, CVE-2021-45105 и CVE-2021-44832. Может искать экземпляры Log4J, тщательно исследуя всю файловую систему, включая все установленные приложения. Он способен находить экземпляры Log4J, скрытые на нескольких уровнях вложенности. Работает в Linux, Windows, Mac и везде, где выполняется Java!
log4j-core. А как насчёт log4j-api?В настоящее время сообщает версии log4j-core 2.3.2, 2.12.4 и 2.17.1 как _SAFE_, 2.3.1, 2.12.2, 2.12.3, 2.15.0, 2.16.0 и 2.17.0 как _OKAY_ и все остальные версии как _VULNERABLE_ (хотя для версий до 2.0-beta9 сообщается _POTENTIALLY_SAFE_). Старые версии log4j-1.x помечает как _OLD_.
Корректно обнаруживает log4j внутри исполняемых spring-boot jar/war, зависимостей, смешанных в uber jars, затенённых (shaded) jar, и даже распакованных jar-файлов, просто лежащих на файловой системе (т.е. *.class).
Мы поддерживаем коллекцию log4j-samples, которую используем для тестирования.
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_ -> Вам необходимо обновить или удалить этот файл.
_OKAY_ -> Мы сообщаем это для версий Log4J 2.3.1, 2.12.2, 2.12.3, 2.15.0, 2.16.0 и 2.17.0. Рекомендуем обновиться до 2.17.1.
_SAFE_ -> В настоящее время мы сообщаем это только для версий Log4J 2.3.2, 2.12.4 и 2.17.1 (и выше).
_OLD_ -> Вы защищены от CVE-2021-44228, но следует запланировать обновление, так как Log4J 1.2.x находится в статусе EOL уже 7 лет и содержит несколько известных уязвимостей.
_POTENTIALLY_SAFE_ -> Файл "JndiLookup.class" отсутствует: либо из-за очень старой версии Log4J (до 2.0-beta9), либо кто-то уже удалил этот файл. Убедитесь, что это сделал кто-то из вашей команды или компании, если это так, поскольку злоумышленники, как известно, сами удаляют этот файл, чтобы предотвратить доступ других конкурирующих атакующих к скомпрометированным системам.
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
Мы поддерживаем коллекцию образцов log4j здесь: https://github.com/mergebase/log4j-samples
GPL версии 3.0
Компилятор Java сохраняет строковые литералы непосредственно в скомпилированных файлах *.class. Если log4j-detector обнаруживает файл с именем "JndiManager.class" в вашей файловой системе, он затем проверяет этот файл на наличие строки: "Invalid JNDI URI - {}". Оказывается, этот конкретный строковый литерал присутствует только в исправленной версии Log4J (версия 2.15.0). Любые версии Log4J без этой строки уязвимы.
Тот же метод анализа файлов *.class на предмет строковых литералов дополнительно расширен для точного обнаружения безопасных версий 2.3.2, 2.12.4 и 2.17.1.
log4j-core. А как насчёт log4j-api?