1.1.1 通道文件格式回顾
我们在“猎鹰折羽”报告中已分析了C-*.sys系列文件的格式。指出符合相关文件名的文件虽为Windows驱动文件后缀“.sys”,实际并非Windows PE格式文件,而是CrowdStrike自定义格式文件,该类文件文件头结构如我们上篇报告内格式分析结果所示,文件头内容与文件名强相关,程序会根据文件头信息校验文件名,文件内另包含hash校验信息,进行二次校验,hash计算方式为调用Windows自带库函数计算。
1.1.2 通道文件验证加载方式
C-*.sys系列文件由CrowdStrike主服务 “CrowdStrike Falcon Sensor Service”的CSFalconService.exe进程加载,该服务使用了微软向反病毒供应商开放的反病毒产品保护服务,使用SERVICE_LAUNCH_PROTECTED_ANTIMALWARE_LIGHT 保护类型启动,实现服务保护,服务启动后调用一系列内核函数进行目录遍历、文件读取,验证相关C-00000xxx-00000000-00000xxx.sys 文件有效性,随后通过IPC(进程间通信)将策略传递给驱动和引擎执行策略。
使用ZwQueryDirectoryFile函数遍历C:WindowsSystem32driversCrowdStrike目录中的 C-00000xxx-00000000-00000xxx.sys 文件,
使用 ZwCreateFile、ZwReadFile打开并读取文件内容,解析文件头对文件名进行验证。
调用Windows自带加密基元库bcrypt.dll中BCryptFinishHash函数对文件内容进行hash验证,该函数定义于 bcrypt.h,验证通过后进行进一步解析操作。
1.1.3 蓝屏的原因
微软在分析报告[1]中指出,由于WER(Windows Error Reporting,即Windows错误报告)数据只提供了当前状态的压缩版本,无法查看更大范围的反汇编指令。通过搜索指令特征“45 8B 08”,不难定位到下图的关键指令位置,进行更为深入的分析。
1.1.4 补救蓝屏事件的新通道文件
针对此次蓝屏事件,CrowdStrike紧急生成了策略文件C-00000291-00000000-00000001.sys,在整个升级策略中,直接删除已有的C-00000291-*.sys,来进行启动化处置。前期已有的C-00000291-*.sys系列文件文件名中,没有C-00000291-00000000-00000001.sys文件,之前按照我们的猜测 C-*.sys系列文件,文件名最后一节为库版本(更新次数),根据初步规则判断当最后一节服务器文件重新回到标号1时,可能意味着基于删除策略清理对应类别的规则文件。
1.2 CrowdStrike agent 启动网络通信和升级机制
1.2.1 网络通信时机
关于CrowdStrike Falcon Sensor,可以回看《猎鹰折羽》分析报告。CrowdStrike Falcon Sensor 在Windows启动内核加载阶段完成后,会话管理器启动阶段前期,在后台进行联网与远程服务端建立链接,进行策略文件更新和数据回传。具体过程为通过dns解析 ts01-gyr-maverick.cloudsink.net和 lfodown01-gyr-maverick.cloudsink.net域名获取云上服务器ip,建立ssl加密通信进行策略下发和信息上传。
网络通信行为在Windows内核加载阶段完成后,会话管理器启动阶段前期,用户登录前开始。
1.2.2 CrowdStrike Falcon Sensor 回连地址
除上面两个cloudsink.net子域名为CrowdStrike Falcon Sensor 回连地址,不同地域回连地址有所差异,已知的回连地址如下:
US-1 environments: http://ts01-b.cloudsink.net 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://api.CrowdStrike.com https://firehose.CrowdStrike.com |
|
|
|
|
1.2.3 网络通信通道筛选
CrowdStrike Falcon Sensor 内置了网络通信通道筛选机制,在Windows 系统内配置全局代理的前提下,CrowdStrike Falcon Sensor 解析域名获取其服务器ip后,对系统代理做内部逻辑验证,不符合内部逻辑时直接绕过Windows全局代理,仍旧通过Windows网络直连其服务器获取策略和上传数据。(下图192.168.43.73为Windows全局代理)
相关数据流如下:
1.2.4 内部证书验证机制
CrowdStrike Falcon Sensor 内置证书验证机制,独立于Windows证书管理机制,不信任Windows已授信证书。与其服务器通信时,使用其内部证书验证机制,验证服务器证书。
在初始事件验证中,安天攻防实验室发现了一个奇怪的现象,在公有云环境部署了一套早期版本的CrowdStrike 在部署了问题文件C-00000291-00000000-00000xxx.sys后,触发了蓝屏,但其重启后系统能够正常启动。但在单机采取同样的验证方式,则反复蓝屏。
我们关注到TK老师在微信群的讨论,他提出了应关注CrowdStrike快速升级机理,并建议我们复盘公有云下重启不蓝屏是否源于其快速升级机制。这个建议推进了本文相关分析工作,在此向TK老师表示感谢。关于CrowdStrike是否存在更为底层的快速升级机制,我们还在继续跟进分析。
参考资料:
[1]https://www.microsoft.com/en-us/security/blog/2024/07/27/windows-security-best-practices-for-integrating-and-managing-security-tools/
安天攻防实验室隶属于安天安全服务中心,负责红蓝对抗和漏洞挖掘与应急分析工作,并通过安全研究和运营支撑安天产品安全能力提升。专注于攻防技战术研究、漏洞挖掘与应急分析、输出安全能力方案,实现攻防能力转化。部门图腾为被称为“森林医生”的啄木鸟,贴切安全服务中心的工作,为客户解决网络害虫。
原文始发于微信公众号(安天集团):CrowdStrike的库加载和快速升级机制的分析笔记
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论