本文来自微信公众号“GoUpSec”。
本周三,CrowdStrike发布了导致全球大规模系统崩溃的初步事件评估报告(PIR)。
此前业界传闻该公司潜入了类似SolarWinds供应链攻击的“特工”,但初步调查结果显示是CrowdStrike的更新工具和流程存在漏洞,但CrowdStrike否认自己在该事件中存在“不负责任”的行为。
CrowdStrike解释称,事件的导火索是一次为收集某C2框架新威胁技术遥测数据进行的内容配置更新。由于内容验证器的一个错误,未能检查出模版实例中包含有问题的内容数据。(虽然CrowdStrike没有具体说明是何种C2框架,但一些研究人员认为此更新试图检测的是Cobalt Strike的新Named Pipe功能。)
测试流程存在严重漏洞
CrowdStrike蓝屏事件内部调查受到业界的广泛关注,因为人们不明白CrowdStrike为何会犯下如此低级的测试流程错误。
报告指出,事件的根源是CrowdStrike内容更新器的漏洞,对快速响应内容的漏洞签名更新检测不太严格,导致错误配置通过了验证(同时又没有进行必要的稳定性测试),瘫痪了全球数百万台Windows系统。
CrowdStrike使用其传感器内容配置系统创建模板实例来描述要检测的威胁行为,并通过更新进程间通信(IPC)模板类型的配置数据(存储在通道文件中),使Falcon传感器能够检测到主机设备上的最新可疑行为。
这些IPC模板实例通过CrowdStrike称为“快速响应内容”的定期内容更新进行交付,以便在不需要完整更新传感器的情况下,通过简单更改配置数据来调整传感器的检测能力。
令人吃惊的是,虽然曝出测试工具和流程漏洞,但CrowdStrike辩称在灾难发生之前,该公司已经采取了“负责任”的行动。CrowdStrike的理由是该公司仅仅对一个已经测试并投入生产环境的组件进行了“小的”配置更新,但组件本身经过了充分严格的测试。
据CrowdStrike介绍,导致灾难性事件的错误配置所使用的IPC模板类型及其相应的模板实例通过了完整的压力测试,包括资源利用率、系统性能影响、事件量和对手系统交互等。内容验证器检查并批准了2024年3月5日、4月8日和4月24日推送的三个独立实例,未发现问题。
然而,7月19日部署的两个新IPC模板实例中包含一个错误配置,由于内容验证器的漏洞而未被发现。由于对之前测试和成功部署的(通道文件291的)IPC模板类型的信任,更新未经过额外验证,因此未在推送至运行Falcon 7.11及更高版本的在线主机之前被发现,导致全球大规模IT停机。
尽管CrowdStrike在发现错误后立即撤回了更新,但为时已晚。约850万台Windows系统在内容解释器处理新的配置更新时发生越界内存读取并崩溃。
整改:增加五种附加测试
为了防止类似事件再次发生,CrowdStrike正在更新流程中增加多个附加测试,具体包括:
●本地开发人员测试:确保每个更新在部署前都经过开发人员的本地测试。
●内容更新和回滚测试:在推出之前进行全面的内容更新和回滚测试。
●压力测试、模糊测试和故障注入:通过多种测试方法确保更新的稳定性。
●稳定性测试:评估更新对系统稳定性的影响。
●内容接口测试:验证内容接口的正确性和安全性。
此外,CrowdStrike还将对内容验证器增加额外的验证检查,并改进内容解释器中的错误处理机制,以避免类似错误导致Windows机器无法运行。
在快速响应内容部署方面,CrowdStrike计划进行以下更改(尤其值得注意的变化是将更新时间和地点的控制权交给客户):
●实施交错部署策略,从小型金丝雀部署开始,然后逐渐扩展。
●改进部署期间对传感器和系统性能的监控,使用反馈来指导分阶段推出。
●为客户提供对快速响应内容更新交付的更多控制权限,允许客户选择何时何地部署更新。
●通过发布说明提供内容更新详情,客户可以订阅以获取及时信息。
最后,CrowdStrike承诺将在未来发布更详细的事件原因分析报告,内部调查完成后将公布更多细节。