如何缓解ApacheLog4j反序列化RCE(CVE-2019-17571)
我已将我的log4j-core依赖项升级到2.15.0,以防止任何潜在的Log4Shell攻击。也就是说,我无法将slf4j-log4j12的间接log4j依赖从1.2.17升级,因为slf4j-log4j12的最新稳定版本仍然依赖于log4j 1.2.17。如果我没有弄错的话,这仍然使我的Web应用程序容易受到CVE-2019-17571的攻击。因此,在阅读有关可能的缓解策略的文章时,我看到了article,它建议:
阻止Log4j中的SocketServer类启用的套接字端口 向公网开放
谁能向我解释一下如何实现这一点,以及此解决方法是否足够?
解决方案
只有从其他服务器接收消息的服务器才容易受到CVE-2019-17571
的攻击。基本上,触发该漏洞的唯一方法是运行:
java -jar log4j.jar org.apache.log4j.net.SocketServer <port> <config.properties> <log/directory>
或在代码中执行相同的操作。因此,大多数Log4j 1.2用户不会受到攻击。
不过,在您的情况下,您只需将slf4j-log4j12
绑定替换为其等价物Log4j 2.x(log4j-slf4j-impl
),即可完全删除Log4j 1.2。
编辑:不过,如果您想确保没有人会如上所述地使用库,您可以删除该类。还考虑到CVE-2021-4104
此金额为:
zip -d log4j.jar org/apache/log4j/net/SocketServer.class
zip -d log4j.jar org/apache/log4j/net/JMSAppender.class
相关文章