36kr-科技 2024年07月22日
全球850万台PC惨遭蓝屏,元凶是代码逻辑错误,安全巨头遭质疑:软件推送更新前没测试?
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

上周五,全球范围内爆发了由网络安全公司CrowdStrike发布的软件更新引发的“蓝屏”事件,影响了约850万台Windows PC。事件起因是CrowdStrike在更新中发布了一个包含逻辑错误的配置更新文件,导致操作系统崩溃。该事件波及范围广泛,影响了银行、航空公司、零售商等关键基础设施企业,甚至引发了医疗延误等问题。CrowdStrike已发布公告承认错误并道歉,并表示已修复了问题,但事件带来的影响仍在持续,预计将持续数周。

👨‍💻 **事件起因:** CrowdStrike发布的软件更新中包含逻辑错误的配置更新文件,导致操作系统崩溃。该文件名为“Channel File 291”,其作用是控制Falcon传感器如何评估Windows系统上命名管道的执行。该更新旨在针对网络攻击中常见的C2框架新发现的恶意命名管道,但由于逻辑错误,导致操作系统崩溃。

🚨 **影响范围:** 该事件影响了约850万台Windows PC,波及范围广泛,包括银行、航空公司、零售商等关键基础设施企业,以及普通用户。事件甚至引发了医疗延误等问题,对用户生活和工作造成了严重影响。

🤔 **问题根源:** 这次事件暴露出CrowdStrike在软件更新测试环节存在漏洞,没有充分测试就将错误的配置推送给了用户。此外,事件也引发了对安全软件设计和开发的反思,安全软件在实施安全策略的同时,也应严守边界,做好测试,避免侵入式技术截获系统函数以实现相关功能。

💻 **改进建议:** 针对这次事件,业界专家建议在生产环境下的关键业务系统中,对操作系统和软件的升级进行严格测试和验证,确保其稳定性和兼容性。同时,安全软件的设计和开发也应更加注重边界安全和测试,避免类似事件再次发生。

😔 **启示:** 这场全球性软件瘫痪事件提醒我们,任何软件系统都存在风险,即使是像CrowdStrike这样知名的安全公司也无法避免错误。因此,企业和开发者应加强对软件系统的测试和监控,并建立完善的应急预案,以应对类似事件的发生。

上周五一场“微软蓝屏”事件席卷全球,事后据微软初步估计,大约有 850 万台 Windows PC 受到波及。虽然这一数字只占到全球 Windows 机器的不到 1%,但随着对该事件的深入调查,众人也发现所谓的“微软蓝屏”事件实则由独立网络安全公司 CrowdStrike 发布的软件更新导致的“灾难”,考虑到由于很多关键基础设施企业使用网络安全巨头 CrowdStrike 的安全软件,实际的影响范围、带来的损失远比我们看到得要多得多。

不止我们看到的银行、航空公司、零售商等企业受到冲击,也有网友反馈称:

我的一个朋友被困在医院一整天。他们的电脑系统出了故障,导致治疗延误。医疗延误会害死人。

同时这场堪比史诗级别的技术危机其实早有先兆,只是没爆发之前也没有太多的人在意。

逻辑错误是根源

在本次蓝屏事件发生的不久后,便有不少工程师逐层排查,直接将问题归咎在了CrowdStrike 发布软件更新中的 csagent.sys 文件上。

基于此,Objective-See 基金会创始人 Patrick Wardle 初探 csagent.sys 文件之所以能引起系统崩溃的原因,其发推说,这个文件中包含了错误的指令:

其中,R8 是未映射地址。它取自指针数组(保存在 RAX 中),索引 RDX(0x14 * 0x8)保存了一个无效的内存地址。

其他“驱动程序”(例如 “C-00000291-...32.sys”)似乎是混淆数据……

某些数据或文件(比如日志条目、网络活动记录等)被 CSAgent.sys 系统地收集(ingested),并且与其它数据进行交叉比对(x-ref'd),以帮助 CrowdStrike Falcon Sensor 识别和响应潜在的安全威胁

...所以也许无效的(配置/签名)数据触发了 CSAgent.sys 中的故障。

通过调试可以更容易地判断/确认。

图源:https://x.com/patrickwardle/status/1814363400253698219

也有开发者 Kevin Beaumont 发现,“导致问题的 .sys 文件是通道更新文件(channel update files),由于格式无效,它们导致顶级 CS 驱动程序崩溃。”

当前,CrowdStrike 在调查之后,紧急发布了公告,揭晓了根本原因。

在公告中,CrowdStrike 表示,「2024 年 7 月 19 日 04:09 UTC,作为持续运营的一部分,CrowdStrike 向 Windows 系统发布了传感器配置更新。传感器配置更新是 Falcon 平台保护机制的持续组成部分。此配置更新触发了逻辑错误,导致受影响的系统崩溃和蓝屏 (BSOD)」

这里提到的配置文件被称为“通道文件”(Channel Files),它们是 Falcon 传感器所使用的用于行为保护机制的一部分。对 Channel File 的更新是传感器运行中的正常部分,并且每天会根据 CrowdStrike 发现的新策略、技术和程序进行多次更新。这并非是一个新流程,实则自 Falcon 创建以来,该架构就已经存在。

那要问为什么之前没有出现过问题,这次一出问题就这么大。CrowdStrike 透露相关的技术细节内容时表示,在 Windows 系统上,Channel File 位于以下目录中:

且文件名以“C-”开头。每个 Channel File 都有一个编号作为唯一标识符。本次事件中受影响的 Channel File 是 291,其文件名以 “C-00000291-”开头,以 .sys 扩展名结尾。

虽然 Channel File 以 SYS 扩展名结尾,但它们不是内核驱动程序。

Channel File 291 控制 Falcon 如何评估 Windows 系统上命名管道的执行。命名管道用于 Windows 系统中的正常、进程间或系统间通信。

UTC 时间 04:09 的更新是针对网络攻击中常见的 C2 框架新发现的恶意命名管道而设计的。配置更新引发了逻辑错误,导致操作系统崩溃。

这一逻辑性错误导致运行适用于 Windows 7.11 及更高版本的 Falcon 传感器的用户可能会受到影响,这些客户在 2024 年 7 月 19 日星期五 04:09 UTC 至 2024 年 7 月 19 日星期五 05:27 UTC 期间在线。

此外,运行适用于 Windows 7.11 及更高版本的 Falcon 传感器的系统,如果在 UTC 时间 04:09 至 UTC 时间 05:27 之间下载了更新的配置,则容易发生系统崩溃。

CrowdStrike 进一步称,“已通过更新 Channel File 291 中的内容纠正了逻辑错误。除了更新后的逻辑之外,不会对 Channel File 291 进行任何其他更改。Falcon 仍在评估和防止滥用命名管道。 这与 Channel File 291 或任何其他通道文件中包含的空字节无关。 ”

14 年前 Windows XP 大规模自动关机、重启背后,同一位技术负责人?

CrowdStrike 官方及其联合创始人兼首席执行官 George Kurtz 随即对自己公司软件问题带来的影响进行了道歉:

我要就今天的中断问题向大家诚挚地道歉。CrowdStrike 的所有人都了解情况的严重性和影响。我们迅速确定了问题并部署了修复程序,使我们能够全心全意地将恢复客户系统作为我们的首要任务。

此次中断是由 Windows 主机的 Falcon 内容更新中发现的缺陷引起的。Mac 和 Linux 主机不受影响。这不是网络攻击。

我们正在与受影响的客户和合作伙伴密切合作,以确保所有系统恢复,以便您可以提供客户所依赖的服务。

然而不少用户显然对这封道歉声明不买账,毕竟全球性大规模的中断带来的损失是无法预估的。

随着这一事件的发酵,据 Forbes 报道,CrowdStrike 市值及 George Kurtz 的身价随之缩水。截至美国东部时间周五下午 3:30,George Kurtz 的身家已减少约 3 亿美元,George Kurtz 上周四的身价超过 32 亿美元,周五的身家约为 29 亿美元,CrowdStrike 的股价自周四收盘以来已暴跌 11%。

同时,也有人剑指 George Kurtz。来自科技行业分析师 Anshel Sag 指出,这并不是 George Kurtz 第一次在历史性的 IT 灾难中扮演重要角色。

回顾历史,2010 年 4 月 21 日,杀毒软件公司 McAfee 发布了针对其企业客户所用软件的更新。该更新删除了一个关键的 Windows 文件,导致全球数百万台 Windows XP 计算机崩溃并自动关机或者反复重启。

与 CrowdStrike 这次的错误非常相似,当时 McAfee 问题也需要手动修复。

Anshel Sag 表示,George Kurtz 当时就是 McAfee 的 CTO。几个月后,英特尔收购了 McAfee。没过多久,George Kurtz 离开了公司,并在 2012 年创立了如今成为网络安全巨头的 CrowdStrike 公司,并一直担任 CEO。

“对于那些不记得的人来说,2010 年,McAfee 导致 Windows XP 出现了巨大故障,造成互联网瘫痪,”Sag 在 X 上写道,“当时担任 McAfee 首席技术官的人现在是 CrowdStrike 的首席执行官。”

早有预兆,稍加注意是否本可避免这次”大规模蓝屏“?

如果说一次两次是偶然事件,那多次发生,人们不禁会质疑这家安全公司带来软件的安全性究竟如何了。

在 HN 评论区中,一位名为 JackC 的用户表示:

早在今年 4 月 19 日,CrowdStrike 就对我们的生产环境中的 Linux 集群做了这样的事情,我对此一直非常不满。

简而言之,我们是一家民用技术实验室,我们在不同的基础设施上在不同时间创建了一堆不同的网站。我们运行企业提供的 CrowdStrike 软件。CrowdStrike 在当时的周五晚上发布了一个更新,该更新与最新的 Debian 稳定版不兼容。起初,我们没有发现这一点,像往常一样修补了 Debian,一周内一切都很顺利,然后突然某一天,我们多个网站和云主机上的所有服务器同时严重崩溃并拒绝启动。

当我们将其中一个磁盘连接到新机器并检查日志时,Crowdstrike 看起来像是罪魁祸首,因此我们手动将其删除,机器启动后,尝试重新安装它,机器立即再次崩溃。

接下来,我们开始提交支持工单并打电话给 CrowdStrike 的工程师。

Crowdstrike 花了一天时间才做出回应,然后要求提供更多证据(除上述内容外)来证明这是他们的错。他们在一天后承认了这个 Bug,并用了几周时间进行了根本原因分析,最终发现他们的测试方案中未能囊括我们的具体环境(我们使用的是 Debian 稳定版的前一版本,理论上是受支持的)。

在我们自己的事后分析中,没有真正的能力阻止同样的事情再次发生——“我们随时将软件推送到您的机器上,无论是否紧急,都不会进行测试”似乎是这家公司商业模式的核心,特别是针对大型企业内的小型 IT 团队。而这恰恰是他们向企业客户兜售的服务理念。

https://news.ycombinator.com/item?id=41005936

无独有偶。今年 5 月,也有用户在 Rocky Linux 社区论坛上指出自己升级到 RockyLinux 9.4 后也遇到了类似的问题,他们的服务器因内核错误而崩溃。Crowdstrike 支持人员承认了这个问题,并强调了测试不足和对不同操作系统之间的兼容性问题关注不足的现象。

启示录

虽然针对这一事件,CrowdStrike 表明导致系统崩溃的传感器配置更新已于 2024 年 7 月 19 日星期五 05:27 UTC 修复,并说道,「我们了解此问题是如何发生的,并且正在进行彻底的根本原因分析,以确定此逻辑缺陷是如何发生的。这项工作将持续进行。我们致力于确定我们可以进行的任何基础或工作流程改进,以加强我们的流程。随着调查的进展,我们将在根本原因分析中更新我们的发现」,但是外媒报道称,许多行业仍在努力摆脱这场灾难,预计影响将持续数周。

纵然谁也未曾预料到全球性软件的瘫痪,有时只是某家公司的疏忽,而我们身处互联网的浪潮之中,作为企业、开发者又该如何减少此类事件的发生?

CSDN 就此事咨询了国内操作系统厂商骨干企业统信软件相关负责人,其表示:

回顾整个事件,最直接的原因是 CrowdStrike 未经充分测试就将错误的配置推送给了用户,但是对于整个软件系统来说,健壮性不能依赖某个组件不出问题。

在这次事件中,有三个方面是值得改进的:

参考

https://www.crowdstrike.com/blog/to-our-customers-and-partners/

https://forums.rockylinux.org/t/crowdstrike-freezing-rockylinux-after-9-4-upgrade/14041

https://www.crowdstrike.com/blog/falcon-update-for-windows-hosts-technical-details/

本文来自微信公众号“CSDN”,作者:苏宓,36氪经授权发布。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

CrowdStrike 蓝屏 软件更新 网络安全 系统崩溃
相关文章