“ 高效监控模式sensor竟成原罪,成也萧何败也萧何?”
内核级别的监控一直是crowdstrike这些年在端点网安这个赛道上所向披靡的致胜法宝之一。此次蓝屏事件显示了 CrowdStrike 在内核级别监控上的高效性也可能成为其弱点。当高效监控模式中的某些逻辑出现问题时,系统的稳定性和可靠性就会受到威胁。
周末全球最出圈的公司非crowdstrike莫属,伴随事件的发展,原因也基本上水落石出了!
公司声明:CrowdStrike 发布了一次针对 Windows 系统的传感器配置更新。此更新是 Falcon 平台保护机制的一部分,旨在增强系统的安全防护能力。然而,此次更新触发了一个逻辑错误,导致部分系统崩溃和蓝屏(BSOD)
三个关键问题:
1、 为什sensor更新会导致操作系统蓝屏?
2、crowdstrike的sensor为什么要加载到操作系统内核中?
3、crowdstrike的sensor更新流程是怎么样的?
01
—
crowdstrike的sensor更新导致微软全球蓝屏回顾
接下来深度展开一下:
引述公司的公告原文:“On July 19, 2024 at 04:09 UTC, as part of ongoing operations, CrowdStrike released a sensor configuration update to Windows systems. Sensor configuration updates are an ongoing part of the protection mechanisms of the Falcon platform. This configuration update triggered a logic error resulting in a system crash and blue screen (BSOD) on impacted systems.”
“CrowdStrike has identified the trigger for this issue as a Windows sensor related content deployment and we have reverted those changes. The content is a channel file located in the %WINDIR%\System32\drivers\CrowdStrike directory.”
关键原因出炉:公司的Falcon sensor在加载到操作系统内核的时候与Windows的sensor产生了不兼容的冲突。
CrowdStrike 识别出此次问题的触发因素是与 Windows sensor相关的内容部署,并已撤销这些更改。具体来说,该内容是位于 %WINDIR%\System32\drivers\CrowdStrike 目录中的一个通道文件。
这一问题与 Windows 传感器有关,原因有以下几点:
1. 内核级别监控的需求
CrowdStrike 的 Falcon 传感器需要在内核级别进行监控,以便实时捕捉和分析系统活动,如文件访问、进程启动和网络流量。这种深层次的监控要求传感器直接与操作系统内核交互,以便在事件发生时立即捕捉和处理。这也是为什么问题会涉及到 Windows 传感器。
2. 内容更新的敏感性
在安全监控软件中,内容更新通常包括新规则、威胁情报和策略,这些更新会影响传感器如何检测和响应潜在威胁。由于这些更新需要与操作系统内核紧密集成,一旦更新中包含错误或缺陷,可能会导致系统不稳定,甚至引发崩溃(如蓝屏错误)。
3. 系统兼容性和依赖性
操作系统的版本、更新和配置变化会影响传感器的运行。例如,Windows 操作系统的某些更新可能改变内核接口或行为,这些变化需要传感器的内容更新做出相应调整。如果内容更新未能正确适配这些变化,就可能引发问题。
4. 技术实现细节
传感器的内容更新通常包括特定的系统驱动文件(如 csagent.sys)。这些文件负责实现具体的监控功能。在此次事件中,触发问题的具体文件是位于 %WINDIR%\System32\drivers\CrowdStrike 目录中的通道文件“C-00000291*.sys”。不同时间戳的文件版本表明了更新过程中的不同版本,其中有问题的版本时间戳为 2024-07-19 0409 UTC,而良好的版本时间戳为 2024-07-19 0527 UTC 或之后。
5. 问题识别和修复过程
识别问题:通过监控和用户反馈,CrowdStrike 识别出在特定内容更新后,Windows 主机出现了蓝屏错误。
隔离和分析:技术团队进一步分析后,确认问题源自特定通道文件的更新。
撤销更新:为了立即缓解影响,CrowdStrike 撤销了导致问题的更新文件,并部署了修复版本。
由于 Falcon 传感器需要在内核级别运行,以实现实时、高效的安全监控功能,其内容更新直接涉及系统核心组件和驱动程序。因此,任何内容更新中的缺陷都可能导致系统稳定性问题。CrowdStrike 识别并撤销了导致问题的内容更新,以确保客户系统的正常运行和安全防护。
关键结果就来了,为了实现高效监控,crowdstrike是需要将其sensor加载到操作系统内核的。
CrowdStrike 的监控程序(Sensor)需要与操作系统内核紧密集成,这样才能提供其高效的安全监控功能。具体来说,它的核心驱动文件(例如 csagent.sys)会在系统启动时加载并作为内核模式驱动程序运行。内核模式驱动程序有更高的权限,可以直接与操作系统内核交互,这使它们能够执行诸如实时监控、威胁检测和防护等功能。
然而,这种高权限操作也意味着驱动程序与操作系统内核的兼容性和稳定性非常重要。更新后的 csagent.sys 文件与操作系统内核发生冲突,可能有以下几个原因:
操作系统更新或变更:操作系统本身的更新(如 Windows 更新)可能改变了内核结构或某些内核函数的实现,导致原本兼容的驱动程序变得不兼容。
驱动程序更新不当:驱动程序更新可能引入了新的功能或改变了现有的功能,这些变更可能在未充分测试的情况下发布,从而导致与操作系统内核的不兼容。
第三方软件冲突:其他内核模式驱动程序(如杀毒软件、其他安全软件或硬件驱动程序)可能与 csagent.sys 发生冲突,尤其是当多个程序试图修改或监控相同的内核资源时。
错误或漏洞:新的更新可能包含未发现的错误或漏洞,导致驱动程序在特定条件下与内核发生冲突。
02
—
CrowdStrike Sensor 更新导致蓝屏的原因深度分析
CrowdStrike 表明是公司发布了一次针对 Windows 系统的传感器配置更新,此更新触发了逻辑错误,导致部分系统崩溃和蓝屏(BSOD)。接下来,结合公司的官方说明,对导致蓝屏问题的详细原因进行简要分析:
1. 配置更新的具体内容
更新目的:该更新旨在增强 Falcon 传感器对新发现的恶意命名管道的检测和防护能力。这些恶意命名管道被常见的命令与控制(C2)框架在网络攻击中使用。
更新内容:涉及通道文件 291,用于控制 Falcon 传感器在 Windows 系统上评估命名管道的执行。更新添加了新的规则和逻辑,用于识别和阻止这些恶意命名管道。
2. 逻辑错误的引入
逻辑错误的表现:更新中的逻辑错误导致 Falcon 传感器在处理某些命名管道通信时未能正确执行,进而触发系统调用失败。这一逻辑错误在特定条件下触发了操作系统内核的异常处理路径,导致系统崩溃和蓝屏(BSOD)。
根本原因:
代码缺陷:新规则和逻辑在处理某些系统调用时未能正确处理异常情况,导致调用失败。
边缘情况未处理:更新逻辑未能覆盖所有可能的系统状态和异常情况,导致在特定条件下触发错误。
3. 内核模式驱动程序的复杂性
内核模式驱动程序:csagent.sys 是 CrowdStrike 的内核模式驱动程序,在操作系统启动时加载并运行,负责对系统底层活动进行监控和防护。内核模式驱动程序具有高权限,可以直接与操作系统内核交互,监控文件系统操作、进程和线程活动、网络流量等。
复杂性和风险:
由于内核模式驱动程序运行在操作系统的核心层,其任何错误都可能直接影响系统的稳定性,导致严重后果如系统崩溃和蓝屏。
内核模式下的任何逻辑错误或未处理的异常情况都可能触发操作系统的异常处理机制,导致系统停止响应(蓝屏)。
4. 更新和测试流程中的问题
测试覆盖不足:
更新发布前的内部测试可能未能覆盖所有可能的使用场景和系统配置,尤其是在高负载和复杂条件下的测试。
某些特定的命名管道通信模式和系统状态在测试中可能被忽略,导致逻辑错误未被及时发现。
更新流程中的漏洞:
更新管理和发布过程中可能缺乏足够的审核和验证步骤,导致有问题的更新被发布。
在更新发布到所有客户之前,可能缺乏逐步发布和多层次验证的机制,未能在小范围内发现和修复问题。
解决措施和预防策略
改进代码审查和测试:
提高代码审查的严格程度,确保每一行代码都经过仔细检查。
引入更多的自动化测试工具和流程,覆盖更多的使用场景和边缘情况。
优化更新流程:
采用渐进式发布策略,先在小范围内测试和验证,再逐步推广到所有客户。
增加更新前的多层次验证,包括内部测试、合作伙伴测试和客户测试。
增强用户反馈机制:
建立有效的用户反馈机制,及时收集和处理用户报告的问题。
在更新发布后,密切监控系统运行状态,及时发现和解决潜在问题。
此次 CrowdStrike 传感器更新导致蓝屏的根本原因在于更新内容中的逻辑错误、内核模式驱动程序的复杂性以及更新和测试流程中的不足。通过改进代码审查、优化更新流程和增强用户反馈机制,可以有效预防类似问题的再次发生,确保系统的稳定性和安全性。
03
—
为什么crowdstrike的sensor需要加载到内核中?
在网络安全领域,内核级别的监控是一种常见且重要的方法,但并不是所有公司都采用这种技术。CrowdStrike 采用内核模式驱动程序(如 csagent.sys)进行深层次系统监控,这是其产品高效检测和响应威胁的关键。然而,这种方法也带来了复杂性和潜在风险,如最近的蓝屏事件所示。
为什么内核级别监控很重要?
实时性:内核级别的监控能够实时捕捉系统的底层操作,如进程启动、文件访问和网络流量,提供及时的威胁检测。
高权限:运行在内核模式下的驱动程序可以访问操作系统的核心资源,检测到用户模式下无法捕捉的恶意行为。
强大防护:内核模式监控能够有效阻止高级持久威胁(APT)和内核级别的恶意软件,这些威胁通常能够绕过传统的用户模式防护措施。
我们来看看crowdstrike的架构与技术方案构成:
crowdstrike通过内核级别的监控来分析各种潜在的可疑网络安全活动→传回云端分析→云端分析后完,生成相应的安全策略和响应措施→更新分发到各个终端,本次的核心问题出在最后的更新分发环节。
CrowdStrike 的监控程序(Sensor)实现了高度集成的安全监控功能,其架构和技术方案主要包括以下几个关键部分:内核驱动程序、用户模式代理、云端分析平台,以及通过这些组件协同工作的业务流和数据流。
架构和技术方案
第一,内核驱动程序(Kernel Driver)
功能:负责低层次的系统活动监控,如文件系统操作、进程和线程活动、网络流量等。csagent.sys 是其中的核心组件。
技术实现:在操作系统启动时加载并作为内核模式驱动程序运行,通过钩子(hook)技术拦截并分析系统调用,实时监控系统活动并进行初步的威胁检测。
优势:由于在内核模式运行,驱动程序可以直接与操作系统内核交互,提供实时和高效的监控。
第二, 用户模式代理(User-mode Agent)
功能:负责更高层次的应用程序行为监控、数据处理和与云端平台的通信。
技术实现:运行在用户模式下,收集内核驱动程序传递的数据,进行进一步分析和处理,并将结果传输到云端。
优势:用户模式代理可以减少内核模式驱动的负载,提高系统的稳定性和响应速度。
第三,云端分析平台(Cloud-based Analysis Platform)
功能:负责集中化的数据分析、威胁情报处理、机器学习模型训练和更新、以及统一管理和配置策略。
技术实现:基于大数据和云计算技术,利用分布式架构处理来自各个终端的大量数据,通过高级分析和机器学习算法进行威胁检测和响应。
优势:强大的计算和存储能力,能够实时处理和分析海量数据,提供及时的安全防护。
工作过程中的业务流(Workflow)
数据采集:内核驱动程序实时拦截和监控系统活动,采集包括文件访问、进程启动、网络连接等安全相关事件。
初步分析:内核驱动对采集到的数据进行初步分析,识别可疑行为和潜在威胁,并将分析结果发送给用户模式代理。
进一步处理:用户模式代理接收内核驱动传递的数据,进行更高层次的分析和处理,包括上下文关联分析、行为模式识别等。
数据传输:处理后的数据和事件日志被加密并传输到云端分析平台。
集中分析:云端平台对来自所有终端的数据进行汇总分析,通过机器学习和威胁情报,识别复杂和高级的威胁。
响应和防护:基于分析结果,云端平台生成相应的安全策略和响应措施,下发到各终端实施,包括阻止恶意活动、隔离受感染的系统等。
流程就十分清楚了。
这种架构的优势十分明显:第一,实现实时监控:内核级别的监控提供了对系统活动的实时监控能力。第二,高效防护:通过云端大数据和机器学习技术,实现了高效的威胁检测和响应。第三,可扩展性增强:基于云计算的架构可以灵活扩展,适应不同规模的企业需求。
既然有优势那就有挑战,因为内核驱动与操作系统的兼容性要求较高,更新和维护较为复杂,这是最大的难点所在,这也是本次全球蓝屏宕机的直接体现。
通过以上的架构和技术方案,CrowdStrike 的监控程序能够提供强大的安全防护能力,及时检测和响应各种安全威胁,保障企业的网络安全。内核级别的强大监控能力与及时有效的更新发布,一直是crowdstrike这些年在端点网安这个赛道上所向披靡的致胜法宝之一。
所以,内核的监控驱动是要几乎每天更新的。核心驱动文件(例如 csagent.sys)会在系统启动时加载并作为内核模式驱动程序运行:
加载和初始化:在操作系统启动时,内核模式驱动程序(如 csagent.sys)会被加载到内存中。该驱动程序会注册一些回调函数,以便能够监控和拦截特定的系统事件和操作。
内核模式操作:内核模式驱动程序运行在操作系统内核级别,这意味着它拥有更高的权限,可以访问系统的所有资源和硬件。这种高权限允许驱动程序进行深度监控,包括文件系统操作、进程和线程管理、网络流量等。
实时监控和防护:通过钩子(hook)技术,内核模式驱动程序可以拦截和监控系统调用。例如,当某个进程尝试访问文件或进行网络连接时,驱动程序可以捕获这一行为并进行分析。如果检测到可疑行为或潜在威胁,驱动程序可以采取即时行动,如阻止操作、记录日志或通知用户模式代理进行进一步分析。
csagent.sys 的核心更新流程分析
CrowdStrike 的 csagent.sys 文件是 Falcon 传感器的一部分,作为内核模式驱动程序运行,以提供实时的安全监控功能。其更新流程涉及多个阶段,包括开发、测试、部署和监控,本次问题就出在更新发布的过程中:
1. 开发和测试阶段
需求分析:安全团队和开发团队识别需要更新或增强的功能,确定新的威胁情报和防护策略。 开发:开发团队编写和修改 csagent.sys 的代码,以实现新的功能或修复现有的问题。 内部测试:开发完成后,新的驱动程序版本在内部测试环境中进行广泛的功能测试和兼容性测试,以确保其在各种操作系统版本和配置下都能稳定运行。
2. 部署阶段
预发布验证:在有限的预发布环境中部署新的驱动程序版本,进行最终的验证测试,确保没有遗漏的重大问题。 发布计划:根据客户的使用情况和时间安排,制定驱动程序的发布计划,确保更新过程的顺利进行。 客户通知:通过邮件、支持门户和其他官方渠道通知客户即将进行的更新,提供更新的详细信息和注意事项。
更新包:新版本的 csagent.sys 文件打包成更新包,准备分发。 通知数据:将更新通知发送给所有客户,包括更新内容、时间和潜在影响。
3. 更新和分发阶段
自动更新:客户的 Falcon 传感器会自动检查和下载新的更新包,按照设定的策略进行更新,通常是通过云平台进行分发。 手动更新:对于特定的客户或环境,可能需要手动执行更新,确保关键系统的稳定性。 监控和反馈:在更新过程中和更新完成后,实时监控客户系统的状态,收集反馈以评估更新的效果和稳定性。
更新文件传输:新的 csagent.sys 文件通过安全通道传输到客户的系统中。 状态监控数据:监控更新过程中的系统状态数据,包括更新成功率、失败原因等。 客户反馈:收集客户的反馈数据,用于分析和改进未来的更新流程。
4. 后续监控和支持阶段
问题响应:如果在更新后发现问题,技术支持团队会迅速响应,提供解决方案或进一步的补丁。 持续改进:根据客户反馈和监控数据,持续改进驱动程序和更新流程,确保长期稳定性和安全性。
故障报告:收集和分析故障报告,找出根本原因并制定修复计划。 性能数据:持续监控 csagent.sys 的性能数据,确保其对系统资源的使用在合理范围内。 改进建议:从客户和内部团队收集改进建议,纳入下一个版本的开发计划中。
csagent.sys 的更新流程包括从需求分析到开发、测试、部署、监控的完整生命周期管理。每个阶段都有特定的业务流和数据流,确保更新的稳定性和有效性。通过严格的流程控制和持续的监控与反馈机制,CrowdStrike 确保 csagent.sys 的更新能够顺利进行,并为客户提供高效可靠的安全防护。如果出现问题,就是大问题,比如此次蓝屏。
蓝屏事件的启示
此次蓝屏事件显示了 CrowdStrike 在内核级别监控上的高效性也可能成为其弱点。当高效监控模式中的某些逻辑出现问题时,系统的稳定性和可靠性就会受到威胁,这一事件给出了几个重要启示:
加强测试和验证:内核级别监控的更新必须经过更严格和全面的测试,确保在各种条件下都能稳定运行。包括自动化测试、压力测试和多层次验证。
优化更新流程:更新应该采用渐进式发布策略,先在小范围内测试和验证,再逐步推广到所有客户。这样可以在早期阶段发现并修复潜在问题,降低风险。
增强用户反馈机制:建立快速响应的用户反馈机制,及时收集和处理客户报告的问题。在更新发布后,密切监控系统运行状态,及时发现和解决潜在问题。
内核级别的监控是 CrowdStrike 在端点网络安全领域取得成功的重要因素,但其高效性也伴随着高风险。此次蓝屏事件提醒我们,高效的安全防护需要在稳定性和兼容性上进行更严格的控制。通过加强测试、优化更新流程和增强用户反馈机制,CrowdStrike 可以继续发挥其内核级别监控的优势,同时降低潜在的风险和问题,确保为客户提供稳定可靠的安全防护。
全文完。
上一篇我们分析了网安的行业与未来趋势,参见:从Intel Inside 到 CrowdStrike Inside,借微软全球蓝屏事件谈谈网安的平台化
BayesCrest
* AI博士,资产管理人士,无所住而生其心,专注顶级公司投资!
* 最好的美股投资,把钱投给最牛逼的CEO,拥抱AGI,赚取时代康波!
贝叶斯之美