企业文化

大规模 CrowdStrike 中断是由于越界内存错误导致的 媒体

2025-05-13

CrowdStrike事件的根本原因分析

关键要点

CrowdStrike的根本原因分析报告指出,上个月发生的重大故障是由于调试过程中的编码错误导致的。故障导致全球多地机场延误,并影响了数百家企业。此次故障是由于与输入数据数组末尾不匹配的内存读取错误引起的。CrowdStrike承诺将改进质量保障流程,以提升软件的稳定性和安全性。

CrowdStrike在8月6日发布的根本原因分析报告中表示,上个月造成全球机场延误及数百家企业瘫痪的大规模故障,是由一个越界内存读取错误引起的,该错误位于输入数据数组的末尾之外。

简单来说,安全专家指出,此次导致众多Windows设备系统崩溃的故障,是由于CrowdStrike的Falcon软件更新中包含的一个故障传感器所致。

“本质上,这是一个编码错误在测试过程中未被捕获,导致了广泛的干扰。”Critical Start的网络威胁分析师Sarah Jones说。

越界内存错误在编程错误中并不罕见,这类错误通常应在质量保障QA阶段被发现,如果未能发现,可能导致系统崩溃,Viakoo Labs的副总裁John Gallagher解释道。

“这里的关键问题在于这是一种内核级的交互,因而导致了整个系统的崩溃,”Gallagher说。“如果这个问题仅限于用户空间,将只导致应用程序崩溃,对用户的损害有限。任何需要内核级访问的供应商都应被要求达到更高的质量保障标准,或者寻找不需要内核访问的功能实现方式。”

根据根本原因分析,快速响应内容行为启发式是通过通道文件交付的,并由传感器的内容解释器进行解析,使用基于常规表达式的引擎。每个快速响应内容通道文件与传感器版本中一个特定的模板类型关联。模板类型为内容解释器提供活动数据和图表上下文,以便与快速响应内容进行匹配。

CrowdStrike表示,通道文件291的新进程间通信IPC模板类型定义了21个输入参数字段,但调用通道文件291模板实例的集成代码仅提供了20个输入值用于匹配。

因此,CrowdStrike指出,导致故障的一个主要原因是内容验证器所验证的21个输入与提供给内容解释器的20个输入之间的不匹配,这引发了内容解释器中的潜在越界读取问题。CrowdStrike确认,导致故障的另一个因素是缺少对21个字段的“非通配符匹配标准”的特定测试。

“虽然通道文件291的场景现已无法重现,但这也为CrowdStrike在确保进一步增强系统韧性所采取的过程改进和缓解步骤提供了重要信息,根本原因分析报告中如是说。”

大规模 CrowdStrike 中断是由于越界内存错误导致的 媒体

Critical Start的Jones补充道,展望未来,合理的预期是CrowdStrike将实施更严格的测试程序。Jones表示,重大事件通常会成为质量保障过程显著改善的催化剂。此外,CrowdStrike可能已经投资或将投资于先进的软件开发方法和工具,以便在开发周期内更早地识别潜在问题。

“然而,需要指出的是,完全消除复杂软件系统中的错误几乎是不可能的。”Jones说。“我们的目标是通过强有力的测试和事件响应计划来最小化错误的发生及其影响。”

Sectigo的首席技术官Nick France表示,此次错误的规模和严重性因为CrowdStrike软件所赋予的“信任”程度而加剧。

“这不是用户像使用Excel或游戏那样运行的简单软件工具,而是系统级的软件内核驱动,这意味着它拥有更高的权限,因此,崩溃和错误的影响更加严重。”France说。

France补充道,尽管软件中错误是不可避免的,尤其是在特权软件中,但关键在于拥有稳固的开发和部署流程。

海鸥加速器6.6.2版本

“质量保障、测试、部分