点击上方"蓝字"
关注我们吧!
说明:针对CrowdStrike导致大规模Windows主机蓝屏事件,安天云安全中心、安天CERT、安天攻防实验室三部门于07月21日发布了长篇分析报告《CrowdStrike 导致大规模系统崩溃事件的技术分析 ——暨对“猎鹰折羽”的沉思》(后文简称“猎鹰折羽”报告)。同时也推进了多点的分析验证工作,本报告披露其中部分内容。
1.1 CrowdStrike C-*.sys 系列通道文件(规则升级文件)加载机制
我们在“猎鹰折羽”报告中已分析了C-*.sys系列文件的格式。指出符合相关文件名的文件虽为Windows驱动文件后缀“.sys”,实际并非Windows PE格式文件,而是CrowdStrike自定义格式文件,该类文件文件头结构如我们上篇报告内格式分析结果所示,文件头内容与文件名强相关,程序会根据文件头信息校验文件名,文件内另包含hash校验信息,进行二次校验,hash计算方式为调用Windows自带库函数计算。
C-*.sys系列文件由CrowdStrike主服务 “CrowdStrike Falcon Sensor Service”的CSFalconService.exe进程加载,该服务使用了微软向反病毒供应商开放的反病毒产品保护服务,使用SERVICE_LAUNCH_PROTECTED_ANTIMALWARE_LIGHT 保护类型启动,实现服务保护,服务启动后调用一系列内核函数进行目录遍历、文件读取,验证相关C-00000xxx-00000000-00000xxx.sys 文件有效性,随后通过IPC(进程间通信)将策略传递给驱动和引擎执行策略。
使用ZwQueryDirectoryFile函数遍历C:\Windows\System32\drivers\CrowdStrike目录中的 C-00000xxx-00000000-00000xxx.sys 文件,
使用 ZwCreateFile、ZwReadFile打开并读取文件内容,解析文件头对文件名进行验证。
调用Windows自带加密基元库bcrypt.dll中BCryptFinishHash函数对文件内容进行hash验证,该函数定义于 bcrypt.h,验证通过后进行进一步解析操作。
关于蓝屏的具体分析,微软已经给出了比较详尽的分析。我们验证是正确的。
微软在分析报告[1]中指出,由于WER(Windows Error Reporting,即Windows错误报告)数据只提供了当前状态的压缩版本,无法查看更大范围的反汇编指令。通过搜索指令特征“45 8B 08”,不难定位到下图的关键指令位置,进行更为深入的分析。
由上图可见,虽然程序在01400E14E8偏移处判断了r8寄存器是否为0(避免访问空指针),但其后并未进一步校验r8寄存器指向地址的合法性。随后程序在01400E14ED偏移访问了r8寄存器指向的非法地址,最终导致了蓝屏的发生。
针对此次蓝屏事件,CrowdStrike紧急生成了策略文件C-00000291-00000000-00000001.sys,在整个升级策略中,直接删除已有的C-00000291-*.sys,来进行启动化处置。前期已有的C-00000291-*.sys系列文件文件名中,没有C-00000291-00000000-00000001.sys文件,之前按照我们的猜测 C-*.sys系列文件,文件名最后一节为库版本(更新次数),根据初步规则判断当最后一节服务器文件重新回到标号1时,可能意味着基于删除策略清理对应类别的规则文件。
关于CrowdStrike Falcon Sensor,可以回看《猎鹰折羽》分析报告。CrowdStrike Falcon Sensor 在Windows启动内核加载阶段完成后,会话管理器启动阶段前期,在后台进行联网与远程服务端建立链接,进行策略文件更新和数据回传。具体过程为通过dns解析 ts01-gyr-maverick.cloudsink.net和 lfodown01-gyr-maverick.cloudsink.net域名获取云上服务器ip,建立ssl加密通信进行策略下发和信息上传。
网络通信行为在Windows内核加载阶段完成后,会话管理器启动阶段前期,用户登录前开始。
US-1 environments:
http://lfodown01-b.cloudsink.net
http://lfoup01-b.cloudsink.net
https://falcon.CrowdStrike.com
https://assets.falcon.CrowdStrike.com
https://assets-public.falcon.CrowdStrike.com
https://firehose.CrowdStrike.com
US-2 environments:
http://ts01-gyr-maverick.cloudsink.net
http://lfodown01-gyr-maverick.cloudsink.net
http://lfoup01-gyr-maverick.cloudsink.net
https://falcon.us-2.CrowdStrike.com
https://assets.falcon.us-2.CrowdStrike.com
https://assets-public.us-2.falcon.CrowdStrike.com
http://api.us-2.CrowdStrike.com
https://firehose.us-2.CrowdStrike.com
US-GOV-1 environments:
https://ts01-laggar-gcw.cloudsink.net
http://sensorproxy-laggar-g-524628337.us-gov-west-1.elb.amazonaws.com
https://lfodown01-laggar-gcw.cloudsink.net
http://ELB-Laggar-P-LFO-DOWNLOAD-1265997121.us-gov-west-1.elb.amazonaws.com
https://falcon.laggar.gcw.CrowdStrike.com
http://laggar-falconui01-g-245478519.us-gov-west-1.elb.amazonaws.com
http://api.laggar.gcw.CrowdStrike.com
https://firehose.laggar.gcw.CrowdStrike.com
http://falconhose-laggar01-g-720386815.us-gov-west-1.elb.amazonaws.com
US-GOV-2 environments:
http://ts01-us-gov-2.cloudsink.net
http://lfodown01-us-gov-2.cloudsink.net
http://api.us-gov-2.CrowdStrike.com
http://firehose.us-gov-2.CrowdStrike.com
EU-1 environments:
http://ts01-lanner-lion.cloudsink.net
http://lfodown01-lanner-lion.cloudsink.net
http://lfoup01-lanner-lion.cloudsink.net
https://assets.falcon.eu-1.CrowdStrike.com
https://assets-public.falcon.eu-1.CrowdStrike.com
http://api.eu-1.CrowdStrike.com
https://firehose.eu-1.CrowdStrike.com
CrowdStrike Falcon Sensor 内置了网络通信通道筛选机制,在Windows 系统内配置全局代理的前提下,CrowdStrike Falcon Sensor 解析域名获取其服务器ip后,对系统代理做内部逻辑验证,不符合内部逻辑时直接绕过Windows全局代理,仍旧通过Windows网络直连其服务器获取策略和上传数据。(下图192.168.43.73为Windows全局代理)
相关数据流如下:
CrowdStrike Falcon Sensor 内置证书验证机制,独立于Windows证书管理机制,不信任Windows已授信证书。与其服务器通信时,使用其内部证书验证机制,验证服务器证书。
小结:
CrowdStrike官网给出了如下信息:“Reboot the host to give it an opportunity to download the reverted channel file. We strongly recommend putting the host on a wired network (as opposed to WiFi) prior to rebooting as the host will acquire internet connectivity considerably faster via ethernet。(重启主机,让它有机会下载还原的频道文件。我们强烈建议在重新启动之前将主机置于有线网络(而不是WiFi)上,因为主机通过以太网获得互联网连接的速度要快得多)”
从分析来看,CrowdStrike存在快速升级机制,初步观测至少Windows启动内核加载阶段完成后,会话管理器启动阶段前期,会有一个无条件的升级机制。CrowdStrike有可能倾向认为,在网络速度足够快的情况下,强制升级会先于蓝屏完成。但也不排除,有更底层前置的通讯机制,但我们未能复现。
//BTW:
在初始事件验证中,安天攻防实验室发现了一个奇怪的现象,在公有云环境部署了一套早期版本的CrowdStrike 在部署了问题文件C-00000291-00000000-00000xxx.sys后,触发了蓝屏,但其重启后系统能够正常启动。但在单机采取同样的验证方式,则反复蓝屏。
我们关注到TK老师在微信群的讨论,他提出了应关注CrowdStrike快速升级机理,并建议我们复盘公有云下重启不蓝屏是否源于其快速升级机制。这个建议推进了本文相关分析工作,在此向TK老师表示感谢。关于CrowdStrike是否存在更为底层的快速升级机制,我们还在继续跟进分析。
参考资料:
附录:安天攻防实验室简介
安天攻防实验室隶属于安天安全服务中心,负责红蓝对抗和漏洞挖掘与应急分析工作,并通过安全研究和运营支撑安天产品安全能力提升。专注于攻防技战术研究、漏洞挖掘与应急分析、输出安全能力方案,实现攻防能力转化。部门图腾为被称为“森林医生”的啄木鸟,贴切安全服务中心的工作,为客户解决网络害虫。
往期回顾