案例库 · 软件与 IT · 技术决策 · 2024
一次糟糕的 CrowdStrike 更新让 850 万台 Windows 电脑蓝屏——史上最大的 IT 故障
2024 年 7 月 19 日,一个有缺陷的 Falcon 传感器配置文件,让全球 850 万台 Windows 电脑崩溃,航班停飞,医院、银行和零售商被迫停摆。
CrowdStrike · 微软 · 2024-07-19
怎么回事
2024 年 7 月 19 日,网络安全公司 CrowdStrike 向它的 Falcon 传感器软件推送了一次例行配置更新,这款软件在企业电脑里深入 Windows 内核层运行。这次更新改了一个文件——负责筛查命名管道的 Channel File 291——它含有一个会导致越界内存读取的缺陷。传感器没有优雅地失败,而是触发了一个无效缺页错误,把 Windows 直接送进蓝屏死机和重启循环。
由于 Falcon 传感器以高权限运行在如此多的企业系统上,故障几乎瞬间扩散。微软后来估计,约 850 万台 Windows 设备受到影响——不到所有 Windows 电脑的百分之一,却占了运行企业的那些电脑的很大比例。航空公司停飞了数千个航班,医院退回到纸笔,银行、广播公司、零售商和政府服务在世界各地纷纷瘫痪。CrowdStrike 有逾 2.4 万家客户,其中包括约六成的财富 500 强企业。
CrowdStrike 在大约一小时内回滚了有缺陷的文件,CEO 乔治·库尔茨确认这是一次意外,而非攻击。但已经崩溃的电脑无法自动下载修复:IT 人员得把每一台重启进安全模式,手动删除那个坏文件,而在使用 BitLocker 磁盘加密的电脑上,这个过程还要更复杂。完全恢复花了好几天。全球经济损失估计达数十亿美元,使其成为信息技术史上最大的一次故障。
为什么会这样
- 这次内容更新在一次性推向全部装机量之前,没有得到充分验证,也没有分阶段或金丝雀发布。
- 传感器运行在内核层,所以它的一个 bug 会让整个操作系统崩溃,而不是被隔离。
- CrowdStrike 的软件没给客户推迟或分阶段接收内容更新的办法,所以每台电脑都立刻装上了那个坏文件。
- 恢复需要逐台手动干预,所以即便修复已经存在,故障还是持续了很久。
教训
运行在内核层的软件,能搞垮它本该保护的那台机器。先发给一小批金丝雀用户,把内容更新当代码一样验证,让一次糟糕的更新顶多是失败,而不是致命。
后来呢
CrowdStrike 道了歉,赔偿了受影响的客户,并彻底改革了测试和分阶段发布内容更新的方式,加入了金丝雀发布组,让客户掌控发布时机。这一事件重新引发了争论:让单一一款内核级安全产品运行在全球关键基础设施上有多脆弱,以及微软决定授予这类软件深入 Windows 内核的权限是否妥当。受创最重的达美航空报告了数亿美元的损失。“CrowdStrike 故障”成了一个代名词,形容一次糟糕的更新如何让世界停摆。
资料来源
- CrowdStrike — Channel File 291 Incident Root Cause Analysis (August 2024)
- 2024 CrowdStrike incident — Wikipedia
发现哪里写错了?告诉我们。
类似的案例
这家公司栽倒的地方,别处有人漂亮地解开过。 第二意见 →

Comments · 0
登录 后就能评论。