Log4j 那一周,我们把线上 Java 服务全查了一遍

技术 429 字

十二月九号晚上,朋友圈里开始传一个编号:CVE-2021-44228,Log4j 2 的远程代码执行漏洞,CVSS 评分 10 分。满分。

第二天早上到公司,我做的第一件事不是打补丁,是摸家底。因为我们自己也不知道到底有多少服务在用它。系统是这些年一点点堆起来的,有人用 logback,有人用 log4j 1.x,还有人直接引的 spring-boot-starter-logging,间接把 log4j2 带了进来。

办法很土但有效:把所有构建产物解出来,按包名搜。搜出来三十多个服务命中,其中七个在核心链路上。

然后是排序。不可能一次全改完,就按两条线排——对外暴露的优先,日志里会打印用户输入内容的优先。先改网关和三个对外接口服务,其余的排到后面的窗口。

升级当天还踩了一个坑:官方第一版修复不完整,后面又连着出了两个版本,一周之内升了三次。最后我们停在 2.17.0。

复盘下来最该记住的是第一条——出事的时候,先摸清家底比先动手更重要。连自己用了什么都不知道,补丁打在哪都是运气。

返回首页