Apache Log4j2是一个基于Java的日志记录工具。该工具重写了Log4j框架,并引入了大量丰富的特性。该日志框架被广泛地用于中间件、开发框架与Web应用中,用来记录日志信息。
由于组件存在 Java JNDI 注入漏洞,当程序将用户输入的数据记入日志时,攻击者通过构造特殊请求,来触发 Apache Log4j2 中的远程代码执行漏洞,从而利用此漏洞在目标服务器上执行任意代码。目前POC已公开,风险较高。
【openLooKeng社区修复方案】
升级至最新组件:log4j-2.15.0,其中2.15.0的发布时间应该为2021-12-09 23:46的版本!
方案1 - 修改代码
针对ES connector 和Ranger plugin,更新代码,移除log4j的依赖。关联PR如下 :
https://gitee.com/openlookeng/hetu-core/pulls/1312
https://gitee.com/openlookeng/openlookeng-ranger-plugin/pulls/10
备注:由于Ranger社区尚未修复log4j问题,因此建议用户在使用ranger plugin时,按照方案2的建议配置openLooKeng参数。openLooKeng社区会在ranger社区修复log4j2问题之后更新ranger到最新版本。
方案2 - 修改配置规避问题
针对无法做代码改动的环境,如已在生产环境部署openLooKeng 1.4.0之前的版本。建议在JVM.config文件中,添加如下配置:
-Dlog4j2.formatMsgNoLookups=true
上述便是openLooKeng针对Apache Log4j2反序列化远程代码执行漏洞(CVE ID为CVE-2021-44228)所提供的修复方案,当前漏洞状态已修复。
详细文档可参考: https://openlookeng.io/zh-cn/security/2021-1213/sa-v2.html
社区官网 https://openlookeng.io
代码仓地址 https://gitee.com/openlookeng
https://github.com/openlookeng