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