2024 年 7 月 19 日,全球各地网友突然发现他们的 Windows 电脑开始频繁出现蓝屏(BSOD)故障。当他们在社交媒体上吐槽时,更严重的危机也蔓延到了关键领域,包括但不限于零售、航空、金融、医疗等。比如,美国多家主要航空公司取消航班,银行和交易所停止服务。网络安全研究员 Troy Hunt 认为,这可能是史上最大规模的 IT 故障。
还记得上一次全球性 Windows 系统崩溃,还发生在震荡波/冲击波等蠕虫病毒肆虐的时代。在计算机网络安全已得到空前重视的今天,这次席卷全球的 Windows 蓝屏故障究竟是如何发生的呢?
尽管国内有些新闻媒体在事件刚开始的时候,将这次宕机事故简单描述为「Windows 系统蓝屏」,并将其归咎于使用了外国的 Windows 操作系统,但这种解释并不成立。经过简单分析,可以发现:
这些现象表明,导致这次全球 Windows 系统蓝屏宕机的罪魁祸首并非微软,而是另有其人。
随着网友、各个机构以及微软的介入,这场全球 Windows 系统宕机故障的原因逐渐清晰——宕机设备都安装了 CrowdStrike 公司的安全软件。CrowdStrike 的产品主要用于帮助企业防范勒索软件等黑客威胁,近年来业务扩展迅速,成为该领域的主要供应商。与传统防病毒软件相比,其产品属于「端点检测和响应」类软件,可以不断扫描设备上的可疑活动并自动做出响应。为了实现这种级别的防护,其组件需要作为驱动程序运行在内核级别,从而带来了造成操作系统故障的潜在风险。
那么你肯定会觉得疑惑,CrowdStrike 是如何让他们客户的 Windows 电脑全部蓝屏宕机的呢?
根据目前的最新情况来看,CrowdStrike 在安全配置文件上缺乏完善地测试,没有严格进行环境测试和代码审查,导致存在 Bug 的更新包未经过充分测试就被直接部署到生产环境;CrowdStrike 也缺乏应急回滚机制,在出现了蓝屏问题以后不能及时撤销新推送的安全配置文件;最后不少领域的机构用户没有冗余备份,单一节点故障就导致业务停摆。多个原因叠加就导致了这样不亚于蠕虫病毒攻击的大范围 IT 故障。
CrowdStrike 暴露的问题远不止 Windows 上的问题,今年四月 CrowdStrike 的一次安全更新导致部署其服务的 Debian Linux 和 Rocky Linux 服务器无法启动,经调查后发现是 CrowdStrike 与最新的 Debian 版本不兼容。
同时,CrowdStrike 在 Linux 事件故障响应上也备受批评,在故障发生一天后才承认故障本身,在后续更为漫长的调查后才发现问题在测试上——CrowdStrike 的测试系统矩阵中根本没有包含最新版 Debian Linux 的配置。
而在深入挖掘 CrowdStrike 的发展史后,其实也不难发现,安全软件导致系统崩溃这件事上,其创始人可能是个「惯犯」。
CrowdStrike 成立于 2011 年,其创始人 George Kurtz 此前是计算机安全软件 McAfee 的首席技术官。在他任上,McAfee 也出过类似的事故——杀毒软件将 svchost.exe 识别成恶意程序从而错将其删除,最终导致大量的 Windows XP SP3 循环重启并无法上网。正是因为那次事故,导致很多 PC 用户至今仍认为给系统安装安全软件反而会电脑「不稳定」。
George Kurtz 曾解释到,创建 CrowdStrike 的契机来源于一次坐航班时,隔壁乘客足足等了 15 分钟,才让 McAfee 软件在自己的笔记本电脑上完全启动。这让他觉得需要创办一家基于云的数据安全公司。
CrowdStrike 主要面向企业提供基于云的一揽子企业安全解决方案。这次导致大面积 Windows 蓝屏宕机的是旗下名为 Falcon 的工具,该工具通过识别异常行为和漏洞来保护计算机系统免受恶意软件等威胁。CrowdStrike 表示自 2011 年成立以来,CrowdStrike 已帮助调查了多起重大网络攻击,并称拥有「最快的平均时间」来检测威胁。
CrowdStrike 的服务范围不在国内,因此国内大部分的机构和个人电脑也并未受到本次 Windows 蓝屏宕机的影响。
2024 年 7 月 20 日,微软和 CrowdStrike 公布了最新的调查结果和解决方案。微软确定了一个影响 Windows 设备运行的 CrowdStrike Falcon 问题,包括蓝屏错误信息 0x50 和 0x7E,设备会处于反复重启状态。
想要解决这个问题,IT 工程师需要重启并进入安全模式,删除相关目录下名为 C-00000291*.sys 的文件,再次重启系统即可恢复正常。由于宕机导致设备无法远程访问,这样的恢复操作只能由 IT 工程师在线下手动进行。不过,云服务器中的 Windows 电脑没有安全模式,IT 工程师需要挨个手动连接到虚拟硬盘再删除。
与此同时,CrowdStrike 也将更新回滚,避免重现故障,至此这次事件暂时告一段落。微软提供了专门的修复工具,辅助 IT 工程师通过 Windows PE 环境,自动删除有问题的 CrowdStrike 文件来让机器正常启动;CrowdStrike 则提供了一份新的帮助文档,来辅助 IT 工程师修复电脑;CrowdStrike 还提醒道,有新的恶意程序在以「crowdstrike-hotfix.zip」(crowdstrike 问题修复补丁)的名义在互联网上传播。
虽然事件暂时告一段落,但我们需要客观和理性地看待这次事件。在事件刚发生时,很多媒体在没有彻底了解事情缘由的情况下,断然认为这是因为微软 Windows 操作系统本身存在问题,并借机无脑炒作,使得本来单纯的事件复杂化。
事实上,始作俑者 CrowdStrike 主要面向企业提供服务,因此受到影响的主要是企业用户,对于一般用户几乎没有影响。微软估计,受到此次蓝屏宕机事件影响的 Windows 电脑可能有 850 万台大概占总数的 1%。
由于受影响的主要是服务业等「窗口行业」,在舆论传播时,故障的严重程度被无形放大。国内大多数的 Windows 用户都平安无事,没有使用 CrowdStrike 的企业电脑也没有受到影响。因此,单就 Windows 操作系统本身而言,依旧是可靠且值得信赖的。
这次事件确实对安全厂商的形象造成了一定损害,CrowdStrike 在软件开发和测试过程中存在的重大漏洞是导致此次全球 Windows 蓝屏宕机的根源。提醒安全厂商需要在频繁的安全更新与充分的测试之间需要找到一个平衡点,在增强安全同时,减少风险和不确定性。
这次事件后,CrowdStrike 作为安全软件的侵入性也被不少人所诟病,突显了高权限防病毒和 EDR(端点检测与响应)解决方案的潜在风险和不足。有网友认为:「为了避免类似问题的再次发生,重新设计防病毒和 EDR 解决方案,降低其对高权限的依赖,显得尤为重要」。
当下,设计防病毒更成熟的解决方案则是采用 eBPF。eBPF 是一个内核里的虚拟机,允许开发者在不修改内核源代码或加载内核模块的情况下,在内核中安全地运行用户定义的代码。
这个特性使得 eBPF 成为一个强大的监控和过滤工具,基于 eBPF 的工具也不会让内核崩溃。目前微软正在全力开发 Windows 版本的 eBPF,相信未来 Windows 上安全软件也可以移植到 eBPF 上,更安全的同时也能显著减少这次蓝屏事件的发生。
当然,我们一般用户也不能因为此次事件就「一朝被蛇咬,十年怕井绳」,让自己的电脑「裸奔」。毕竟此次 Windows 大面积蓝屏宕机只是偶发事件,且主要影响的是企业客户。但如果因为没有安装安全软件或者关闭安全软件而导致个人资料被加密勒索或泄漏,得不偿失。