Log4J-Detector es un escáner que detecta versiones vulnerables de Log4J para ayudar a los equipos a evaluar su exposición a CVE-2021-44228 (CRÍTICO)CVE-2021-45046, CVE-2021-45105 y CVE-2021-44832. Puede buscar instancias de Log4J examinando cuidadosamente el sistema de archivos completo, incluidas todas las aplicaciones instaladas. Es capaz de encontrar instancias de Log4J que están ocultas varias capas de profundidad Funciona en Linux, Windows y Mac, ¡y en cualquier otro lugar donde se ejecute Java también!
Introducción
Actualmente informa log4j-core versiones 2.3.2, 2.12.4 y 2.17.1 como _A SALVO_2.3.1, 2.12.2, 2.12.3, 2.15.0, 2.16.0 y 2.17.0 como _BUENO_ y todas las demás versiones como _VULNERABLE_ (aunque informa pre-2.0-beta9 como _POTENCIALMENTE_SEGURO_Informa versiones anteriores de log4j-1.x como _VIEJO_.
Puede detectar correctamente log4j dentro de jars/wars de arranque de resorte ejecutables, dependencias combinadas en uber jars, jars sombreados e incluso archivos jar explotados que simplemente se encuentran sin comprimir en el sistema de archivos (también conocido como *.class).
Actualmente mantenemos una colección de muestras de log4j que usamos para las pruebas.
Ejemplo de uso
java -jar log4j-detector-2021.12.29.jar ./muestras
— github.com/mergebase/log4j-detector v2021.12.29 (por mergebase.com) analizando rutas (podría tomar un tiempo).
— Nota: especifique el indicador ‘–verbose’ para que todos los archivos examinados se impriman en STDERR.
false-hits/log4j-core-2.12.2.jar contiene Log4J-2.x == 2.12.2 BUENO
false-hits/log4j-core-2.12.3.jar contiene Log4J-2.x == 2.12.3 BUENO
false-hits/log4j-core-2.12.4.jar contiene Log4J-2.x == 2.12.4 A SALVO
false-hits/log4j-core-2.15.0.jar contiene Log4J-2.x == 2.15.0 BUENO
false-hits/log4j-core-2.16.0.jar contiene Log4J-2.x == 2.16.0 BUENO
false-hits/log4j-core-2.17.0.jar contiene Log4J-2.x == 2.17.0 BUENO
false-hits/log4j-core-2.17.1.jar contiene Log4J-2.x >= 2.17.1 A SALVO
false-hits/log4j-core-2.3.1.jar contiene Log4J-2.x == 2.3.1 BUENO
false-hits/log4j-core-2.3.2.jar contiene Log4J-2.x == 2.3.2 A SALVO
true-hits/log4j-core-2.0-beta9.jar contiene Log4J-2.x >= 2.0-beta9 (< 2.10.0) VULNERABLE true-hits/log4j-core-2.10.0.jar contiene Log4J-2.x >= 2.10.0 VULNERABLE
true-hits/log4j-core-2.10.0.zip contiene Log4J-2.x >= 2.10.0 VULNERABLE
true-hits/log4j-core-2.11.0.jar contiene Log4J-2.x >= 2.10.0 VULNERABLE
true-hits/log4j-core-2.11.1.jar contiene Log4J-2.x >= 2.10.0 VULNERABLE
true-hits/log4j-core-2.11.2.jar contiene Log4J-2.x >= 2.10.0 VULNERABLE
true-hits/log4j-core-2.12.0.jar contiene Log4J-2.x >= 2.10.0 VULNERABLE
true-hits/log4j-core-2.12.1.jar contiene Log4J-2.x >= 2.10.0 VULNERABLE
true-hits/log4j-core-2.14.0.jar contiene Log4J-2.x >= 2.10.0 VULNERABLE
true-hits/log4j-core-2.14.1.jar contiene Log4J-2.x >= 2.10.0 VULNERABLE
true-hits/log4j-core-2.2.jar contiene Log4J-2.x >= 2.0-beta9 (< 2.10.0) VULNERABLE true-hits/log4j-core-2.3.jar contiene Log4J-2.x >= 2.0-beta9 (< 2.10.0) VULNERABLE true-hits/log4j-core-2.4.1.jar contiene Log4J-2.x >= 2.0-beta9 (< 2.10.0) VULNERABLE true-hits/log4j-core-2.4.jar contiene Log4J-2.x >= 2.0-beta9 (< 2.10.0) VULNERABLE true-hits/log4j-core-2.9.1.jar contiene Log4J-2.x >= 2.0-beta9 (< 2.10.0) VULNERABLE
old-hits/log4j-1.1.3.jar contiene Log4J-1.x <= 1.2.17 VIEJO
old-hits/log4j-1.2.17.jar contiene Log4J-1.x <= 1.2.17 VIEJO
old-hits/log4j-core-2.0-beta2.jar contiene Log4J-2.x <= 2.0-beta8 POTENCIALMENTE_SEGURO (¿Eliminó JndiLookup.class?)
Comprender los resultados
_VULNERABLE_ -> Debe actualizar o eliminar este archivo.
_BUENO_ -> Informamos esto para las versiones 2.3.1, 2.12.2, 2.12.3, 2.15.0, 2.16.0 y 2.17.0 de Log4J. Recomendamos actualizar a 2.17.1.
_A SALVO_ -> Actualmente solo informamos esto para las versiones de Log4J 2.3.2, 2.12.4 y 2.17.1 (y posteriores).
_VIEJO_ -> Está a salvo de CVE-2021-44228, pero debe planear actualizar porque Log4J 1.2.x ha estado en EOL durante 7 años y tiene varias vulnerabilidades conocidas.
_POTENCIALMENTE_SEGURO_ -> El archivo «JndiLookup.class» no está presente, ya sea porque su versión de Log4J es muy antigua (pre 2.0-beta9), o porque alguien ya eliminó este archivo. Asegúrese de que haya sido alguien de su equipo o empresa quien eliminó » JndiLookup.class” si ese es el caso, porque se sabe que los atacantes eliminan este archivo ellos mismos para evitar que competidores adicionales obtengan acceso a los sistemas comprometidos.
java -jar log4j-detector-2021.12.29.jar
Uso: java -jar log4j-detector-2021.12.29.jar [–verbose] [–json] [–stdin] [–exclude=X] [paths to scan…]
–json: la salida STDOUT da como resultado JSON (se siguen emitiendo errores/advertencias a STDERR)
–stdin — Leer STDIN para rutas a explorar (una ruta por línea)
–exclude=X: donde X es una lista JSON que contiene rutas completas para excluir. Debe ser JSON válido.
Ejemplo: –exclude=»[“/dev”, “/media”, “Z:\TEMP”]’
Códigos de salida: 0 = No se encontraron versiones vulnerables de Log4J.
1 = Se encontró al menos una versión heredada de Log4J 1.x.
2 = Se encontró al menos una versión vulnerable de Log4J.
Acerca de: detector MergeBase log4j (versión 2021.12.29)
Documentos: https://github.com/mergebase/log4j-detector
(C) Copyright 2021 Mergebase Software Inc. Con licencia para usted a través de GPLv3.
Construir desde la fuente
clon de git https://github.com/mergebase/log4j-detector.git
cd log4j-detector/
instalar mvn
java -jar target/log4j-detector-latest.jar