La explotación de las vulnerabilidades detectadas en versiones anteriores de Log4j sigue siendo un problema severo, por lo que la comunidad de la ciberseguridad sigue buscando las mejores formas de prevenir un ciberataque. No obstante, algunos usuarios no saben cómo implementar las protecciones necesarias o incluso desconocen si la utilidad vulnerable existe en sus sistemas.
Para ello, especialistas en seguridad desarrollaron una herramienta capaz de detectar casi cualquier versión de Log4j en el sistema analizado, específicamente las versiones vulnerables a CVE-2021-44228 y CVE-2021-45046. Esta utilidad permite detectar instancias vulnerables presentes en las capas más profundas de los sistemas afectados y es funcional en implementaciones Linux, Windows, Mac y cualquier otra ejecución de Java.
La herramienta es de código abierto y está disponible a través de GitHub.
Uso de la herramienta
Probemos la herramienta utilizando los parámetros de ejemplo mostrados a continuación:
java -jar log4j-detector-2021.12.17.jar [path-to-scan] > hits.txt
Entre los posibles resultados del escaneo se encuentran:
java -jar log4j-detector-2021.12.17.jar ./samples
-- github.com/mergebase/log4j-detector v2021.12.17 (by mergebase.com) analyzing paths (could take a while).
-- Note: specify the '--verbose' flag to have every file examined printed to STDERR.
/opt/mergebase/log4j-detector/samples/clt-1.0-SNAPSHOT.jar contains Log4J-2.x >= 2.10.0 _VULNERABLE_ :-(
/opt/mergebase/log4j-detector/samples/infinispan-embedded-query-8.2.12.Final.jar contains Log4J-2.x >= 2.0-beta9 (< 2.10.0) _VULNERABLE_ :-(
/opt/mergebase/log4j-detector/samples/log4j-1.1.3.jar contains Log4J-1.x <= 1.2.17 _OLD_ :-|
/opt/mergebase/log4j-detector/samples/log4j-1.2.13.jar contains Log4J-1.x <= 1.2.17 _OLD_ :-|
/opt/mergebase/log4j-detector/samples/log4j-1.2.17.jar contains Log4J-1.x <= 1.2.17 _OLD_ :-|
/opt/mergebase/log4j-de tector/samples/log4j-core-2.0-beta2.jar contains Log4J-2.x <= 2.0-beta8 _POTENTIALLY_SAFE_ :-| (or did you already remove JndiLookup.class?)
/opt/mergebase/log4j-detector/samples/log4j-core-2.0-beta9.jar contains Log4J-2.x >= 2.0-beta9 (< 2.10.0) _VULNERABLE_ :-(
/opt/mergebase/log4j-detector/samples/log4j-core-2.0.2.jar contains Log4J-2.x >= 2.0-beta9 (< 2.10.0) _VULNERABLE_ :-(
/opt/mergebase/log4j-detector/samples/log4j-core-2.0.jar contains Log4J-2.x >= 2.0-beta9 (< 2.10.0) _VULNERABLE_ :-(
/opt/mergebase/log4j-detector/samples/log4j-core-2.10.0.jar contains Log4J-2.x >= 2.10.0 _VULNERABLE_ :-(
/opt/mergebase/log4j-detector/samples/log4j-core-2.12.2.jar contains Log4J-2.x >= 2.12.2 _SAFE_ :-)
/opt/mergebase/log4j-detector/samples/log4j-core-2.14.1.jar contains Log4J-2.x >= 2.10.0 _VULNERABLE_ :-(
/opt/mergebase/log4j-detector/samples/log4j-core-2.15.0.jar contains Log4J-2.x >= 2.15.0 _OKAY_ :-|
/op t/mergebase/log4j-detector/samples/log4j-core-2.16.0.jar contains Log4J-2.x >= 2.16.0 _OKAY_ :-)
/opt/mergebase/log4j-detector/samples/log4j-core-2.17.0.jar contains Log4J-2.x >= 2.16.0 _SAFE_ :-)
/opt/mergebase/log4j-detector/samples/log4j-core-2.4.1.jar contains Log4J-2.x >= 2.0-beta9 (< 2.10.0) _VULNERABLE_ :-(
/opt/mergebase/log4j-detector/samples/log4j-core-2.9.1.jar contains Log4J-2.x >= 2.0-beta9 (< 2.10.0) _VULNERABLE_ :-(
Interpretar los resultados obtenidos
A continuación se muestra una guía para que los administradores de sistemas sepan exactamente a qué se refieren los resultados arrojados por la herramienta:
- _VULNERABLE_: Necesita actualizar o eliminar el archivo
- _OKAY_: Este resultado aparece al encontrar versiones de Log4j como 2.15.0 y 2.16.0. En este caso, se recomienda actualizar a v2.17.0
- _SAFE_: Un resultado que solo aparece al encontrar Log4j v2.17.0 y v2.12.2
- _OLD_: Su implementación no es vulnerable a CVE-2021-44228, pero debe planificar la próxima actualización antes de que aparezcan nuevas fallas
- _POTENTIALLY_SAFE_: El archivo JndiLookup.class no está presente, ya sea porque el sistema ejecuta una versión de Log4J muy antigua o porque alguien ya eliminó este archivo anteriormente. Asegúrese de verificar que este elemento haya sido eliminado correctamente para descartar conductas maliciosas
Muchos escáneres disponibles actualmente informan que las bibliotecas “log4j-core” y “log4j-api” son vulnerables. Los escaneos son correctos ya que en este momento no existe una versión de la biblioteca “log4j-api” que pueda ser explotada por cualquiera de estas vulnerabilidades.
Los desarrolladores creen que elaborar reportes detallados es necesario para crear un entorno de seguridad completo, por lo que el escaneo no se limita solo a informar sobre la detección de una versión vulnerable. De cualquier forma, la principal recomendación de seguridad es actualizar Log4j a v2.17.0.
Por otra parte, sobre el resultado de análisis file1.war!/path/to/file2.zip!/path/to/file3.jar!/path/to/log4j.jar, los desarrolladores mencionan que “!” significa que el detector Log4j ingresó un archivo ZIP. Dado que estos archivos pueden contener archivos zip adicionales, un solo resultado puede contener más de un indicador “!” en su resultado.
La razón principal es que los sistemas Java a menudo están configurados para ejecutar jar dentro de jar, pero nunca están configurados para ejecutar otros formatos de archivo. Por lo tanto, una copia de Log4j dentro de un *.tar.gz probablemente no sea accesible para un sistema Java en ejecución y, por lo tanto, no sea una vulnerabilidad explotable.
Para conocer más sobre riesgos de seguridad informática, malware, vulnerabilidades y tecnologías de la información, no dude en ingresar al sitio web del Instituto Internacional de Seguridad Cibernética (IICS).
Trabajando como arquitecto de ciberseguridad, el se enfoca en protección de datos y la seguridad de datos empresariales. Antes de unirse a nosotros, ocupó varios puestos de investigador de ciberseguridad con diferentes empresas. También tiene experiencia en diferentes industrias como finanzas, salud medica y reconocimiento facial.