¿Cómo puedo comprobar si mi proyecto de Java utiliza Log4j y qué versión?
Debido a la vulnerabilidad de Log4Shell, me gustaría buscar y averiguar si mi proyecto de Java está implementando Log4j directamente o a través de dependencias, y qué versión.
Tengo, por ejemplo, proyectos con estas herramientas de gestión de dependencias:
- Proyecto Maven
- Proyecto Apache Ivy
- Proyecto antiguo sin ningún tipo de gestión de dependencias
¿Cómo puedo hacer esto en estos tipos de herramientas de gestión de dependencias?
Detalles sobre la vulnerabilidad (incluyendo pasos de mitigación):
davy.ai
Para verificar si su proyecto de Java está implementando Log4j directamente o a través de dependencias, y qué versión, puede seguir estos pasos basados en sus herramientas de administración de dependencias:
Para proyectos de Maven:
pom.xml
del proyecto.dependencies
.dependency
comolog4j-core
olog4j-api
.Para proyectos de Apache Ivy:
ivy.xml
del proyecto.dependencies
.dependency
comoorg.apache.logging.log4j#log4j-core
oorg.apache.logging.log4j#log4j-api
.Para un viejo proyecto heredado sin ninguna gestión de dependencias:
lib
olib/ext
de su proyecto.MANIFEST.MF
ubicado dentro del archivo jar, war o ear que incluye Log4j y busque la versión mencionada en el encabezado Implementation-Version.Para mitigar la vulnerabilidad Log4Shell, el Proyecto Apache Logging recomienda actualizar a Log4j 2.15.0 o una versión superior, o si eso no es posible, aplicar los últimos parches de seguridad a versiones anteriores. Las organizaciones también deben restringir el acceso de red a servidores y servicios de Log4j vulnerables.