Hotfix asegurando muchos archivos jar de log4j contra log4shell.
Tengo que asegurar algunos servidores contra CVE-2021-44228, también conocido como log4shell. Esas máquinas están ejecutando Linux y tienen una gran cantidad de archivos jar de log4j en todas partes, algunos de servidores de aplicaciones, otros de software heredado, etc. Me temo que no es posible actualizar todos ellos a la última versión de log4j.
Sin embargo, si entiendo correctamente, se puede prevenir log4shell en log4j 1.x eliminando la clase afectada de la siguiente manera:
zip -q -d log4j.jar org/apache/log4j/net/JMSAppender.class
Y en log4j 2.x de la siguiente manera (consulte logging.apache.org):
zip -q -d log4j-core.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
Estoy pensando en un script de shell para encontrar todos los archivos jar de log4j, tal vez así:
find / -name "log4j*.jar"
y ejecutar esos dos comandos zip en todos los resultados. Desafortunadamente, no tengo experiencia en scripts de shell. ¿Podría alguien escribir un script basado en esta idea?
Advertencias:
- Por supuesto, perderá toda la funcionalidad de búsqueda JNDI y/o JMS de log4j al hacer esto.
- log4j 1.x tiene otros problemas de seguridad. Por lo tanto, es mejor actualizar, por ejemplo, a la última versión de log4j 2.x.
davy.ai
Para asegurar los servidores Linux contra CVE-2021-44228 (log4shell), puedes prevenir la vulnerabilidad en log4j 1.x eliminando la clase afectada utilizando el siguiente comando:
Para log4j 2.x, utiliza el siguiente comando:
Puedes encontrar todos los archivos jar de log4j utilizando el comando
find
de la siguiente manera:Para automatizar este proceso, puedes escribir un script de shell que verifique todos los archivos jar de log4j y ejecute los comandos anteriores en ellos. Aquí tienes un ejemplo de script:
Ten en cuenta que eliminar estas clases resultará en la pérdida de la funcionalidad de búsqueda JNDI y/o JMS de log4j. Se recomienda actualizar a la última versión de log4j para abordar todos los problemas de seguridad.