概要描述
Apache Log4j2是一个基于Java的日志记录工具。由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。漏洞利用无需特殊配置,由安全团队验证,Apache Struts2、Apache Solr、Apache Druid、Apache Flink等均受影响。
截至2021/12/20,已经披露漏洞包括:
· CVE-2021-44228 : 影响版本为 log4j2 <= 2.14.1
· CVE-2021-45046 : 影响版本为 log4j2 <= 2.15.0
· CVE-2021-45105 : 影响版本为 log4j2 <= 2.16.0
星环科技部分产品使用到了该组件,本文主要围绕 Sophon 组件 进行漏洞修复具体说明。
详细说明
一、影响范围
受影响的组件 | 受影响的组件的版本 |
---|---|
sophon | >=2.4.0 |
查看版本,使用具有root权限的用户执行 kubectl describe po $(kubectl get po -o wide | grep sophon-base | head -1 | awk '{print $1}') | grep "Image:"
获取
例如下面版本为 sophon 2.7.1 :
[root@ts-16-55 ~]# kubectl describe po $(kubectl get po -o wide | grep sophon-base | head -1 | awk '{print $1}') | grep "Image:"
Image: transwarp/sophon-base:sophon-2.7.1-final
具体影响的角色如下:
二、修复方案
通过升级Sophon相关镜像内的log4j2依赖版本至2.17.0可以解决该漏洞
1. 下载工具包
下载链接:sophon log4j2 漏洞自动 patch 工具
同时下载链接里的两个文件(跟aquila的修复脚本复用,执行命令不同)
2.将压缩包上传至 TOS Registry 节点服务器任意路径,需要 root 用户
TOS Registry 节点可以参考下图地方查看
3.对比工具 md5 值是否正确
执行下面命令,对比输出的 md5 值和链接里下载的 txt 文件里的 md5 值是否一致,不一致则需要重新获取
md5sum patchlog4j-tdh-aquila_V6.2.tar.gz
4.解压并执行命令对 Sophon 服务的角色进行 patch
tar -xvzf patchlog4j-tdh-aquila_V6.2.tar.gz #解压文件
bash ./patchlog4j/patchlog4j.sh sophon #对Sophon组件进行修复
5.重启 Sophon 服务
上述脚本成功执行成功后,需要到 manager 页面重启 Sophon相关 服务来使 patch 生效,
如果有使用datamart 和Sophon CV组件 需要将其一并重启,没有安装就只重启Sophon 即可
其他信息
执行命令进行 patch 前,建议先阅读 ./patchlog4j/README.md
里的说明
BTW, 如有任何相关或其他问题需要解决或需要进一步说明,请立即通过微信「星环科技服务号」公众号提交工单,我们将竭诚为您服务!