1.事件的基本情况和影响
全球多地用户反映使用微软系统的电脑出现蓝屏现象.
北京时间2024年7月19日中午开始,至少20多个国家的交通、金融、医疗、零售等行业或公共服务的业务系统受到影响。其原因是使用CrowdStrike公司终端安全产品的Windows操作系统的主机大面积发生系统崩溃故障,即“蓝屏死机”(Blue Screen of Death,BSOD),导致计算机系统无法正常运行。出现故障的终端并不止限于桌面终端,而是覆盖了大量的服务器和云节点,包括导致了多个重要的微软和AWS的云服务和租户服务中断。而且相关主机重新启动后依然会自动进入蓝屏状态,形成了反复崩溃闭环。此事件是今年以来全球波及范围最广的信息系统灾难性事件,也是由安全产品自身导致的最大规模的安全灾难事件,其事件带来的后果影响远远超过了2007年的赛门铁克误杀中文版Windows导致系统蓝屏事件等历史上由安全产品带来的安全事件。北京时间7月19日19时,安天由云安全中心、安全研究与应急处理中心、攻防实验室人员组成混合分析小组,进行了跟进分析,及时将分析研判进展上报管理和应急部门,开发了CrowdStrike_Crash_Fix应急处理小工具,协助求助用户处理威胁,并发布了本分析报告。
CrowdStrike是美国主要的云、终端安全厂商之一,成立于2011年。2024年6月其市值一度接近千亿美元,是全球市值最大的网络安全上市公司之一。其开发的云本地端点保护平台CrowdStrike Falcon,开启了多租户、云原生、智能安全解决方案的先河,结合了下一代杀毒软件、威胁情报、端点检测和响应(EDR)、设备控制、威胁情报搜索和IT安全运营、事件响应和主动服务。平台设置了独立模块用于管理系统漏洞和移动终端检测和响应,还通过跨越多个大型安全市场的SaaS模型提供19个云模块,包括企业端点安全、云安全、托管安全服务、安全和IT运营、威胁情报、身份保护和日志管理等。
就本次事件,CrowdStrike给出的解释是,该公司的终端安全软件“Falcon Sensor”推送的错误的配置更新与Windows系统发生了兼容性问题,导致安装了该安全软件的计算机出现蓝屏情况。后续该公司代表在其客户支持平台回复称公司工程部已确定该问题与其产品的“内容部署(Content deployment)”功能有关,后续撤销了错误更新,并积极调查事件。
这是一起因广泛使用的安全产品故障,导致大量主机系统崩溃,并连带导致大量基础设施系统无法提供服务导致了多米诺效应的事件。该事件造成了美国、英国、澳大利亚、加拿大、日本等至少20多个国家和地区的组织机构的业务系统服务中断,全球多地的航空运输、医疗服务、媒体、银行与金融服务、零售、餐饮等行业或公共服务受到了影响。
本次事件对国内政企机构影响较小
由于CrowdStrike是对中国大陆禁售产品,国内主要相关外资企业和部分使用微软数据中心的企业部分受到此次故障影响了相关业务。如国内希尔顿酒店集团旗下的上海康莱德酒店,其入住和退房服务受到了影响。
2.应急解决方案
手动删除带有问题的文件(原厂方案)
CrowdStrike公司的业务支撑体系是高度在线化的,其在仅由注册客户可见的网页发布了解决方案,非其客户无法访问,但有受影响的用户公开分享了该官方解决方案:
- 将Windows重启至安全模式或恢复模式,或用WinPE启动;
- 打开“%systemroot% \System32\drivers\CrowdStrike”文件夹;
- 删除其中文件名为“C-00000291.sys”(表示任意字符)的文件;
- 正常重启系统。
同时,对于使用了BitLocker卷加密的用户,需要准备好恢复密钥,再进入安全模式进行操作。
3 事件的技术分析
3.1 CrowdStrike 的工作机理解析
CrowdStrike Falcon Sensor 是非常典型的具有内核(驱动)级主防的EDR产品,其在Windows平台下安装/预装后,将对应程序文件安装到%ProgramFiles% \CrowdStrike指向的目录下,而将其驱动程序和重要的数据文件安装到%SystemRoot%\System32\ drivers\CrowdStrike 目录下。其主要的防御能力来自于多个系统内核驱动模块。其中CSBoot.sys是Windows 操作系统的提前启动反恶意软件(ELAM)功能模块(利用微软接口实现安全软件要比恶意代码先行加载以保证引导链安全的机制);CSFirmwareAnalysis.sys是固件安全模块;CSAgent.sys是主防护的核心功能模块;cspcm4.sys为策略解析模块。加载的先后顺序依次为CSBoot.sys、CSFirmwareAnalysis.sys、CSDeviceControl.sys、CSAgent.sys、cspcm4.sys。
发生蓝屏的模块CSAgent.sys是其主要的功能模块,该模块带有CrowdStrike和微软的双重数字签名。根据安天攻防实验室的初步分析,它包含文件监测、运行监测、网络过滤等功能,是其主动防御和主机防火墙的核心驱动。基本的运行原理是:驱动程序加载后首先读取策略配置,根据策略对文件读写、进程加载、内存执行、API调用、网络访问等动作,做出放行与阻止操作;优秀的主机安全软件为了快速敏捷的对抗威胁,即时更新防护能力,往往都支持在线分发、可动态接收、即时解析生效下发的策略,这样可以灵活变更配置处理突发事件而不用重启系统,CrowdStrike就使用了这种机制。但由于驱动程序直接调用系统内核接口,模块的稳定性对系统内核会有直接影响,可能是由于某个不当的策略配置,在解析执行策略时,未能正确处理好和系统间的同步机制或者是系统资源分配不当,造成系统死锁问题,引发蓝屏保护。
3.2 对相关文件格式和机理的分析猜测
该事件中“蓝屏”故障的错误代码为“PAGE_FAULT_IN_NONPAGED_AREA”,蓝屏信息中出现错误的驱动程序为“CSAgent.sys”。结合官方处置建议中删除“C-00000291.sys”文件的处置方案,可以明确判断本次事件直接原因是由于“CSAgent.sys”加载和解析使用存在错误设定的“C-00000291.sys”文件所致。
与CSAgent.sys 等驱动程序相同目录下(%Windows%\%System32%\drivers\CrowdStrike),存在多个文件名前两个字母为“C-”,且均以sys为拓展名的文件,我们需要严肃指出:这些C-*.sys命名的文件并不是驱动程序文件,网上对本事件一些分析中,将这些也称为系统文件或驱动程序文件,有望扩展名生义的错误。Windows中sys为扩展名的系统文件(或称为驱动文件),格式上是以|4D 5A|为文件头的PE可执行文件,例如发生崩溃的CSAgent.sys就是一个PE文件,而在对应目录下以“C-“为统一开头的“sys”为扩展名的文件,应是一类自定义格式的数据文件。这些文件均以|AA AA AA AA|为文件头,并不具备执行能力,或者至少不具备在系统下直接执行的能力。在CrowdStrike所公布的信息中,将这些文件称为“通道文件”(Channel Files),声明其是 Falcon Sensor的配置文件,用于CrowdStrike防御机制的日常更新。因此可以基本判断相关文件主要类似规则/策略/基线的数据文件。
这些“通道文件”以C-xxxxxxxx-00000000-xxxxxxxx.sys格式进行命名,其文件第一个字符C,含义推测为CrowdStrike的首字母。随后有三个阿拉伯数字节,每节长度均为8位,其中第一节数字为通道号,转换为16进制后与文件中的固定偏移0x6处数值对应;采集到的全部文件的第二节数字值都固定为0,故只能猜测其与固定偏移0xC处数值(所有数值亦均为零)对应;第三节数字值转换为16进制后与文件中固定偏移0x10处数值相对应。
由于相关产品机理复杂,尚未能判断这些通道文件具体的功能。对文件内容观测,判断文件经过了一定的编码变换,但似乎未使用分组算法进行加密。我们分析了文件的命名规律,含义猜测如下:第一节数字即通道号,是为其规则/配置库编号,而且设定了对应的值域范围对应的规则/配置分类,第二节为保留段,第三节为对用的规则/配置库更新的次数
3.3 CrowdStrike对于相关漏洞的官方解释为:
此次涉及到的 以“C-00000291”作为文件名开头、 “.sys”作为扩展名的文件属于配置文件,也被称作“Channel Files”。这些文件是Falcon Sensor行为防护机理的一部分。这些文件在日常运营中根据CrowdStrike 监测到的每日威胁技战术情况,一天会更新若干次。
文件以C开头,每个“通道文件”被分配了唯一的编号作为标识。此次造成影响的是291,相关文件以“C-00000291-”开头,用“.sys”作为扩展名。虽然使用驱动文件的扩展名,但这些文件不是驱动程序。
291通道文件,控制Falcon对Windows上的“命名管道(Named Pipe)”执行动作进行评估。“命名管道”是常用技术,通常在Windows环境中用于进程间通信或系统间通信。
该文件的更新发生在UTC 时间 04:09,由新监测到的网络攻击C2框架中使用的恶意命名管道触发。但由于更新中触发了一个逻辑错误,导致了操作系统崩溃。
该事件的直接原因已经比较清晰,是广泛安装于大量Windows主机的CrowdStrike产品的CSAgent.sys模块所加载利用数据配置文件C-00000291*.sys存在问题,导致的系统崩溃。
此前也有声音怀疑问题是否由微软的补丁发布导致,但根据目前的各方公开的信息梳理。CrowdStrike已经承认问题来自于UTC时间7月19日 04:09其发布了用于管控命名管道的配置更新即C-*291.sys,立即导致了,微软Azure云上的Windows虚拟机开始发生此类重启和崩溃问题。至UTC 时间 05:27 CrowdStrike撤销了此更新,此后启动的主机将不受影响。基于上述时间过程,整体可以认为CrowdStrike方面已经确认了事件来自自身。
技术判断
该事件的直接原因已经比较清晰,是广泛安装于大量Windows主机的CrowdStrike产品的CSAgent.sys模块所加载利用数据配置文件C-00000291.sys存在问题,导致的系统崩溃。
此前也有声音怀疑问题是否由微软的补丁发布导致,但根据目前的各方公开的信息梳理。CrowdStrike已经承认问题来自于UTC时间7月19日 04:09其发布了用于管控命名管道的配置更新即C-291.sys,立即导致了,微软Azure云上的Windows虚拟机开始发生此类重启和崩溃问题。至UTC 时间 05:27 CrowdStrike撤销了此更新,此后启动的主机将不受影响。基于上述时间过程,整体可以认为CrowdStrike方面已经确认了事件来自自身。
如您发现侵权内容,欢迎友好的反馈,站长必在24小时内妥善处理。站长邮箱:postmaster@cloud700.com