乐趣区

关于log4j:分布式-log4j2-漏洞修复方案

作者:鲍凤其

爱可生 dble 团队开发成员,次要负责 dble 需要开发,故障排查和社区问题解答。少说废话,放码过去。

本文起源:原创投稿

* 爱可生开源社区出品,原创内容未经受权不得随便应用,转载请分割小编并注明起源。


dble 运行依赖许多组件的 jar 包,当遇到某个组件有破绽时,须要紧急修复。

Apache Log4j2

安全漏洞阐明:https://nosec.org/home/detail…

修复计划

⚠️:计划 1 可施行,截止至北京工夫 2021 年 12 月 14 日 11 时,log4j 官网曾经公布 2.16.0 版本,相干 release notes:https://github.com/apache/log…

⚠️:上面介绍的 2,3 步骤是长期缓解步骤,不排除有其余问题

1. 降级 log4j2 组件

dble 版本:2.19.07.x – 3.21.10.x 版本,2.19.07.x 之前的版本须要自行尝试替换计划,官网不再提供反对

影响:须要重启 dble

步骤:

1.1 进行 dble

1.2 将 dble 服务器上 log4j 的 jar 包进行备份并 mv 至 /tmp/ 目录下

/path/to/dble/lib 下有四个 jar 包别离是:(操作前须要确认一下)

  • log4j-1.2-api-2.13.1.jar
  • log4j-api-2.13.1.jar
  • log4j-core-2.13.1.jar
  • log4j-slf4j-impl-2.13.1.jar

执行上面的操作:

mv log4j-1.2-api-2.13.1.jar log4j-1.2-api-2.13.1.jar.bak
mv log4j-1.2-api-2.13.1.jar.bak /tmp/

1.3 将 log4j 2.16.0 版本的相干 jar 包,上传到该门路下 /path/to/dble/lib,并变更权限
参考链接:https://repo1.maven.org/maven…,其余 jar 在此网站上查找

1.4 反复 1.2,1.3 步骤降级其余三个 jar 包

1.5 启动 dble

2. 增加配置

dble 版本:实践上全版本 dble 适配

影响:须要重启 dble

步骤:

在 dble 配置文件 /path/to/dble/conf 下增加配置文件 log4j2.component.properties

批改文件权限:

增加如下配置:

log4j2.formatMsgNoLookups=True

验证形式:

开发环境验证该变量重启后被加载,不重启状况下,不会被加载。

3. 批改 jvm 参数

dble 版本:实用于 dble 版本 < 3.20.07.0

3.20.07.0 及之后的 dble 版本因为对 JVM 参数进行了限度,因而不反对此种形式,会在近期修复。

影响:须要重启 dble

步骤:

在 dble 配置文件 /path/to/dble/conf/wrapper.cof 中增加如下配置,并重启 dble。

配置:

原环境中是否存在 wrapper.java.additional 的参数,上面配置中的 14 在原环境中按需替换

wrapper.java.additional.14=-Dlog4j2.formatMsgNoLookups=true

执行以下命令判断是否应用该参数启动:

ps aux|grep dble|grep 'formatMsgNoLookups'

4. 设置零碎环境变量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置 为 true

不举荐

退出移动版