作者:鲍凤其

爱可生 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

不推荐


爱可生开源社区
426 声望207 粉丝

成立于 2017 年,以开源高质量的运维工具、日常分享技术干货内容、持续的全国性的社区活动为社区己任;目前开源的产品有:SQL审核工具 SQLE,分布式中间件 DBLE、数据传输组件DTLE。