CrowdStrike 聘请了两家外部安全公司对代码进行审查

CrowdStrike已经聘请了两家外部安全公司来审查其威胁检测套件Falcon,该套件上个月引发了全球IT中断 – 尽管它可能没有太多可发现的东西,因为CrowdStrike已经确定了导致崩溃的简单错误。

外部审查的消息出现在信息安全供应商周二发布的根本原因分析[PDF]中。

正如我们从 CrowdStrike 早些时候关于有缺陷的 Falcon 更新的事后文章中了解到的那样,该更新在全球数百万台 Windows 机器上启动循环,问题始于 2 月份。

就在那时,开发人员向 Falcon 添加了发现和阻止命名管道和其他 Windows 进程间通信 (IPC) 机制的新颖利用的能力;在野外看到此类攻击发生强烈表明一个盒子已被破坏,这是一件好事,标记并停止。

在CrowdStrike将其作为新的“模板类型”推送到客户的Falcon传感器版本7.11之前,这种新的检测功能经过了通常的开发和测试。

顾名思义,这些模板类型是:模板。它们是通用的软件例程,每个例程都会在系统上捕获不同类型的潜在不良活动。为了让 Falcon 使用它们来检测特定威胁,CrowdStrike 定义并发布了所谓的“模板实例”,这些实例自定义模板代码以识别特定形式的利用、入侵和其他不良内容。

CrowdStrike 这样解释这种架构:“模板类型代表一种传感器功能,它支持新的遥测和检测,它们的运行时行为由模板实例动态配置。

自 3 月以来,CrowdStrike 已从其云端推送到远程 Falcon 部署,这些模板实例利用 IPC 模板类型代码来检测特定威胁。这些更新作为所谓的“快速响应内容”提供,存储在编号为 291 的频道文件中。Falcon 将在可用时下载更新的 channel 291 文件,并解析其数据。

该数据中的模板实例将告诉 Falcon 如何使用相关的模板类型来检测特定威胁。实例通过将正则表达式格式的参数传递给其模板类型来实现此目的。在基于 C++ 的内容解释器的帮助下,模板类型使用这些正则表达式(是的,正则表达式)参数来对抗类型正在监视的任何资源,以确定是否成功进行了检测。

通过根本原因分析,可以更深入地了解接下来出了什么问题:

新的 IPC 模板类型定义了 21 个输入参数字段,但使用通道文件 291 的模板实例调用内容解释器的集成代码仅提供 20 个输入值进行匹配。

这种参数计数不匹配避免了多层构建验证和测试,因为在传感器发布测试过程、模板类型(使用测试模板实例)压力测试或现场成功部署IPC模板实例的前几次过程中都没有发现。

在某种程度上,这是由于在测试期间和初始IPC模板实例中对第21个输入使用了通配符匹配标准。

据我们所知,这意味着:检测恶意 IPC 使用的模板类型有 21 个可能的输入值来自定义其操作,尽管将通道文件的实例参数插入解释器以与该模板类型一起使用的代码仅提供了 20 个。对于初始实例,这不是问题,因为实例不会导致解释器使用缺少的第 21 个参数。一切似乎都很好。早期的测试和验证也忽略了这一点。

然后,正如 CrowdStrike 之前解释的那样,在 7 月 19 日那次命运多舛的频道 291 文件更新中,另外两个 IPC 模板实例自动部署到 Falcon 用户。

其中一个实例首次指示解释器使用第 21 个参数,但只向该代码提供了 20 个参数。不幸的是,这导致在 Windows 内核模式下运行的内容解释器使用未初始化的字段(缺少第 21 个参数)作为指针,这导致它接触未分配的内存并最终导致操作系统崩溃。

“尝试访问第 21 个值会产生超出输入数据数组末端的越界内存读取,并导致系统崩溃,”安全商店在其分析中总结道。

CrowdStrike 更新了其传感器内容编译器,以确保将来的模板类型从实例获取正确数量的输入,并于 7 月 27 日投入生产。

CrowdStrike 还写道,它已经向内容解释器添加了运行时边界检查,用于快速响应更新,以确保它不会再次读取其输入数组的末尾。此修复程序和另一项检查数组大小是否正确的检查正在使用传感器软件修补程序向后移植到所有 Windows 传感器版本 7.11 及更高版本。该版本将于 8 月 9 日正式发布。

此外,受到惩罚的安全供应商正在进行更多的内部测试,以确保将来不会将有缺陷的文件推送给 Falcon 客户。尽管参数不匹配,但 CrowdStrike 的验证引擎错过了这个错误,并允许将错误的频道文件泄露给用户。

此外,正如 CrowdStrike 在其早期的分析中指出的那样,每个模板实例都将以分阶段的方式部署到客户手中,而不是一次性推送给所有人。这将减少任何更多中断更新的爆炸半径。

值得注意的是,该公司被投资者起诉,因为他们一开始就没有使用这种分阶段的方法。

“展望未来,CrowdStrike专注于利用从这一事件中吸取的教训来更好地为我们的客户服务,”一位发言人宣称。“CrowdStrike 始终坚定不移地履行我们保护客户和阻止违规行为的使命。”

但还没有那么坚定,以至于它点名了它雇佣来审查其节目的合作伙伴。这些审查已经开始,重点是导致7月19日惨败的代码和流程。

“我们没有提供有关为我们工作的供应商的信息,这些信息超出了根本原因分析中提到的内容,”CrowdStrike发言人告诉The Register

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。查看原文

为您推荐