Log4j漏洞原理和修复

https://zhuanlan.zhihu.com/p/443667244 

https://baijiahao.baidu.com/s?id=1719021490573494135&wfr=spider&for=pc 

https://view.inews.qq.com/a/20211210A01JXN00

漏洞原理

官方表述是:Apache Log4j2 中存在JNDI注入漏洞,当程序将用户输入的数据进行日志记录时,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。

通俗简单的说就是:在打印日志的时候,如果你的日志内容中包含关键词 ${,攻击者就能将关键字所包含的内容当作变量来替换成任何攻击命令,并且执行。

修复:

其实如果你了解了这个原理那么解决方式也就一目了然了,

  • 禁用lookup或JNDI服务

罪魁祸首就是lookup和JNDI,那么直接修改配置文件log4j2.formatMsgNoLookups=True或禁用JNDI服务,不过一般产生问题的服务都是线上已经在跑的服务,禁用的时候要注意评估一下是否允许。

  • 升级Apache Log4j

这次产生的影响范围主要是在Apache Log4j 2.x <= 2.14.1,所以直接把Log4j升级即可解决。

 
地址:https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2
供应链影响范围:
已知受影响应用及组件:
Apache Solr
Apache Flink
Apache Druid
srping-boot-strater-log4j2
不受影响版本:
Apache log4j-2.15.0-rc2
05
人工检测
1、相关用户可根据Java jar解压后是否存在org/apache/logging/log4j相关路径结构,判断是否使用了存在漏洞的组件,若存在相关Java程序包,则很可能存在该漏洞。
图片
 
2、若程序使用Maven打包,查看项目的pom.xml文件中是否存在下图所示的相关字段,若版本号为小于2.15.0,则存在该漏洞。
图片
 
06
posted @ 2021-12-23 08:51  安小白learning  阅读(2389)  评论(0编辑  收藏  举报