openLooKeng 开源社区 Apache Log4j2 高危安全漏洞居然还未修复,建议用户不要升级

​近日,openLooKeng注意到Apache Log4j2反序列化远程代码执行漏洞(CVE ID为CVE-…

​近日,openLooKeng注意到Apache Log4j2反序列化远程代码执行漏洞(CVE ID为CVE-2021-44228),并修复失败。详细方案如下,建议所有用户不要升级。

Apache Log4j2远程代码执行漏洞修复解决方案

【漏洞描述】

Apache Log4j2是一个基于Java的日志记录工具。该工具重写了Log4j框架,并引入了大量丰富的特性。该日志框架被广泛地用于中间件、开发框架与Web应用中,用来记录日志信息。

由于组件存在 Java JNDI 注入漏洞,当程序将用户输入的数据记入日志时,攻击者通过构造特殊请求,来触发 Apache Log4j2 中的远程代码执行漏洞,从而利用此漏洞在目标服务器上执行任意代码。目前POC已公开,风险较高。

【漏洞等级】

高危,该漏洞影响范围极广,危害极大。 CVSS评分:9.8

【受影响版本】

Apache log4j 2 在 2.0 至 2.14.1 (均含)版本均受影响。

【openLooKeng漏洞排查】

问题排查一: ESconnector在运行时依赖log4j

继续排查openLooKeng最终打包server时的jar包,当前使用的是JDK自己的logging框架,没有使用log4j。 在这里插入图片描述

在对应的ES connector模块下,对lib库的分析,发现的确使用了log4j相关的库。 在这里插入图片描述

问题排查二:openLooKeng使用的是airlift,封装的JDK本身的log框架

在这里插入图片描述

同样对打包后的openLooKeng server lib库下所有的jar包进行梳理,可以看到没有log4j-api以及log4j-core。

在这里插入图片描述

问题排查三 :openLooKeng仓库ranger plugin代码

通过排查仓库的内容,并未发现相关log4j相关代码的依赖。 在ranger中的POM文件中,发现了部分关于log4j的版本声明,但是并未在后续的构建中使用。 在这里插入图片描述

在这里插入图片描述

当前openLooKeng ranger plugin依赖于apache ranger 2.1.0组件,而ranger 2.1.0组件依赖log4j2 2.13X版本,为间接依赖关系。

并且,当前ranger中,对于log4j有依赖的模块是agents-audit

在这里插入图片描述

openLooKeng的ranger plugin并不依赖log4j

【openLooKeng社区修复方案】

升级至最新组件:log4j-2.15.0,其中2.15.0的发布时间应该为2021-12-09 23:46的版本!

◎ 方案1 – 修改代码

针对ES connector 和Ranger plugin,更新代码,移除log4j的依赖。关联PR如下 :

备注:由于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

欢迎使用openLooKeng,如果您有任何疑问与建议,请在社区代码仓中提Issue,或加小助手进入专属交流群。

openLooKeng, Make Big Data Simplified

关于作者: qwephp

.

为您推荐