内容纲要
概要描述
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
星环科技部分产品使用到了该组件,本文主要围绕 search 组件 进行漏洞修复具体说明。
详细说明
一、影响范围
受影响的组件 | 受影响的组件的版本 |
---|---|
search | >=5.1.0 |
二、漏洞信息收集
参考如下命令,获取 search server的log4j版本信息。
# search server
[root@mll01 ~]# kubectl exec -it $(kubectl get pods -o wide |grep -i search-server |grep Running|head -1|awk '{print $1}') -- find /usr/lib/elasticsearch/elasticsearch-5.4.1-transwarp/lib/ -name 'log4j*'
/usr/lib/elasticsearch/elasticsearch-5.4.1-transwarp/lib/log4j-1.2-api-2.17.0.jar
/usr/lib/elasticsearch/elasticsearch-5.4.1-transwarp/lib/log4j-api-2.17.0.jar
/usr/lib/elasticsearch/elasticsearch-5.4.1-transwarp/lib/log4j-core-2.17.0.jar
/usr/lib/elasticsearch/elasticsearch-5.4.1-transwarp/lib/log4j-slf4j-impl-2.17.0.jar
三、漏洞修复方案
通过升级 Search Server 内部 log4j2 包版本至 2.17.0 可以修复该漏洞。Search Server各版本均无兼容性问题,需同时更换以下Jar包:
/usr/lib/elasticsearch/elasticsearch-5.4.1-transwarp/lib/log4j-1.2-api-2.8.2.jar
/usr/lib/elasticsearch/elasticsearch-5.4.1-transwarp/lib/log4j-api-2.8.2.jar
/usr/lib/elasticsearch/elasticsearch-5.4.1-transwarp/lib/log4j-core-2.8.2.jar
/usr/lib/elasticsearch/elasticsearch-5.4.1-transwarp/lib/log4j-slf4j-impl-2.8.2.jar (部分版本可能无该包,直接跳过即可)
可以通过安装 Search Server 通用补丁包,实现一键修复,解压Patch包,按照 README.md
操作即可:
- 点击下载
Patch-search-log4j2-202112120210.tar.gz
包,md5值为c3b4b7cff2fcc15690736bc613835fc3
; - 将其上传到Search Server,并解压:
# tar -zxf Patch-search-log4j2-202112201110.tar.gz # cd Patch-search-log4j2-202112201110
- 进入解压后的
Patch-search-log4j2-202112201110
目录; - 配置并校验
image.conf
文件,确保配置与现场 Image 信息一致; - 执行 Image 更新脚本
buildImage.sh
,脚本执行完成后将完成image的更新并push仓库;./buildImage.sh
- 重启服务后即可应用更新后的image。
至此,更新成功,漏洞修复完成。
BTW, 如有任何相关或其他问题需要解决或需要进一步说明,请立即通过微信「星环科技服务号」公众号提交工单,我们将竭诚为您服务!