12月9日,网上爆出Apache Log4j2 远程代码执行漏洞,目前漏洞PoC已在网上公开,由于Apache Log4j2广泛地应用在中间件、开发框架与Web应用中,该漏洞影响范围极广,建议广大用户尽快排查相关漏洞。
Log4j是一个基于Java的日志记录程序,Log4j2是Log4j的升级,重写了Log4j框架,并且引入了大量丰富的特性。该日志框架被大量用于业务系统开发,用来记录日志信息。大多数情况下,开发者可能会将用户输入导致的错误信息写入日志中。此次漏洞触发条件为只要外部用户输入的数据会被日志记录,即可造成远程代码执行。
复现结果如下:
严重
受影响版本:
Apache Log4j 2.x <= 2.14.1
已知受影响应用及组件:
Apache Solr
Apache Flink
Apache Druid
srping-boot-strater-log4j2
...
1.Java应用是否引入 log4j-api , log4j-core 两个jar
2.若使用Maven打包,查看项目的pom.xml文件中是否存在groupId为org.apache.logging.log4j
的依赖
3.若程序使用gradle打包,查看build.gradle编译配置文件,是否存在org.apache.logging.log4j
相关依赖
4.通过监测相关流量或者日志中是否存在“${jndi:”等字符来发现可能的攻击行为
1.目前官方已公开修复代码,但尚未正式发布(升级时请提前做好备份)
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2
2.可选择以下方案缓解:
a.设置 log4j2.formatMsgNoLookups=True
b.系统环境变量FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS设置为true
c.禁止 log4j2 所在服务器外连
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2