1.背景
最近一个老系统被检查出有Apache Log4j 远程代码执行漏洞,需要解决此问题,基于此,写此文章记录一下
2.问题分析
老生常谈了,之前发现此漏洞,处理方案都是升级jar包
但是,漏洞随着时间一直有出现,如果一直升级jar包,麻烦不说,治标不治本,开发运维疲于奔命
3.终极解决方案
不升级版本,直接删除jar包中的JndiLookup.class,一劳永逸
具体操作如下:
# (1)使用root用户访问机器,输入下面命令,查找低版本log4j-core位置
find / -name log4j-core-*
# (2)通过(1)步查找结果,可以知道哪些WEB程序使用了
# 使用WEB程序部署的用户如test登录服务器,输入下面命令,查看是否存在JndiLookup.class
# 指令:jar -tf [第(1)步查找到的文件全路径] |grep 'log4j'|grep 'Jndi'
jar -tf /home/test/tomcat/webapps/test/WEB-INF/lib/log4j-core-2.5.jar |grep