修复因 CrowdStrike 更新引起的 Windows 蓝屏死机 (使用恢复工具)

2024年7月19日将被铭记为全世界屏息以待看到 Windows 机器主屏幕的那一天。

两大技术巨头 CrowdStrike 和 Windows 之间的不幸技术冲突,无意中引发了全球范围的重启风暴,导致全球许多关键运营瘫痪。飞机停飞,企业瘫痪,市场冻结,前线任务中断。

从历史上看,只有针对性的网络攻击才有能力引发如此大规模的中断。这次停机事件独特之处在于,它不是源于恶意,而是由于一项善意的安全措施产生的。虽然我们希望 CrowdStrike 能够优雅地恢复,但值得注意的是,尽管数字基础设施无疑强大,但依然脆弱得足以因单个故障文件而崩溃。

造成停机的原因是什么?

CrowdStrike Falcon Sensor 的近期更新与 Microsoft Windows 发生冲突,导致机器出现“蓝屏死机”或无限重启。

最初怀疑是微软的问题,但根本原因被确定为 CrowdStrike Falcon Sensor 的配置文件损坏(04:09 UTC)。该问题包含三个关键部分。首先,Falcon Sensor 是安装在终端的核心代理,收集遥测数据并执行其他关键任务。其次,Falcon Driver 是运行在操作系统核心模式下的驱动程序,具有执行安全操作的高权限。它在预操作系统初始化阶段加载,确保成为最先初始化的程序之一,从而保障系统从启动之初就受到保护。第三,配置文件(CrowdStrike 称之为“通道文件”)充当传感器与驱动之间的数据交换中介。它定义了传感器用于监控系统活动的规则和操作。例如,当传感器识别到恶意活动时,会通过配置文件请求驱动进行深入调查。驱动截取必要的系统级操作并反馈给传感器,由传感器分析数据后做出相应处理。

现在,CrowdStrike 不再每次推送完整软件更新,而是每天多次更新该配置文件,以加入新出现的威胁标识。不幸的是,某次更新中,错误的文件触发了逻辑错误,导致内存分配失败和驱动程序崩溃,出现 PAGE_FAULT_IN_NONPAGED_AREA 错误。Windows 检测到该异常并启动蓝屏死机以防止系统进一步损坏。由于该更新通过 CrowdStrike 的云基础设施部署,因此在问题被发现前已自动安装到大量 Windows 机器中。 

我们对受影响的组织、其客户和员工表示同情。我们正在尽最大努力提供帮助。

蓝屏死机解决工具

考虑到 IT 团队的压力,我们创建了一款工具,可以自动应用 CrowdStrike 的绕过方案,移除问题更新,并重启您的系统。

谁可以使用?

任何人都可以使用!该工具适用于 Endpoint Central 的客户和非客户。

它将如何帮助您?

即使 Windows 恢复环境或安全模式无法使用时,该工具也能正常工作。支持启用和禁用 BitLocker 的机器。

注意:请放心,该工具经过广泛测试,我们已尽力不增加您的额外负担。

它如何工作?

第一步:创建恢复介质 

前提条件:确保 已在您的机器上安装 Windows ADK(生成恢复介质前)(已有 Endpoint Central OSD 用户则无需重复)

  1. 解压 bsod-resolver.zip 文件
  2. 以“管理员权限”运行 GeneratePEImage.bat 文件,该操作将在 images 文件夹内生成 ISO 和 USB 格式的恢复介质。
  3. 如需将 ISO 文件复制到 USB 驱动器,请进入 images\crowdstrike\media 并以管理员权限运行 USBCopy.bat。虚拟机中可直接使用 ISO。详见下方教学视频。

第二步:使用恢复介质修复蓝屏死机:

  1. 使用恢复介质启动您的机器。
  2. 如果操作系统分区启用了 BitLocker,请准备好恢复密钥。否则跳过此步骤。(更多内容请参见本文后续关于 Endpoint Central 直接恢复 BitLocker 密钥部分)
  3. 输入恢复密钥(如需要),点击“确认”以修复问题。
  4. 移除恢复介质,正常启动机器。

即使 Windows 恢复环境或安全模式不可用,上述步骤也能生效。 如果您已进入 Windows 恢复环境:

  1. 将恢复工具复制到 USB 驱动器。
  2. 在 USB 驱动器上解压工具包。
  3. 连接 USB 驱动器至您的电脑。
  4. 在恢复环境中打开命令提示符。
  5. 导航至 USB 驱动器上的 bsod-resolver.zip 文件夹。
  6. 运行 'recoveryEnv.bat' 文件开始修复。

请参考以下教学视频:

 

如对该工具有任何疑问,请联系 endpointcentral-support@manageengine.com。

CrowdStrike 官方绕过方案

  • 将 Windows 启动至安全模式或 Windows 恢复环境
  • 进入 C:\Windows\System32\drivers\CrowdStrike 目录
  • 找到名称符合 “C-00000291*.sys” 的文件并删除。
  • 正常启动主机。

挑战: BitLocker 加密设备需有恢复密钥才能进入安全模式。该恢复密钥仅在本地已存储时可取回。没有密钥,无法使用 CrowdStrike 绕过方案。鉴于我们与 CrowdStrike 共享客户,以下是您可通过 Endpoint Central 控制台采取的补救措施。

直接从 Endpoint Central 获取恢复密钥

Endpoint Central 允许您直接从控制台检索密钥,之后即可按照 CrowdStrike 绕过方案操作。

  1. 登录 Endpoint Central 控制台。
  2. 进入 Inventory > Computers > 选择所需机器 > Security 选项卡 > BitLocker。
  3. 在“恢复密钥状态”标签下,点击 C 驱动器下的“可用”以获取恢复密钥。
获取恢复密钥

通过 Endpoint Central 部署 PowerShell 脚本

脚本将实现进入安全模式、修改注册表键值并重启至正常模式。但由于启用了 BitLocker,需确保您拥有恢复密钥。

# CrowdStrikeFix.ps1
# 此脚本删除导致蓝屏死机的 CrowdStrike 问题驱动文件并恢复安全模式启动
$filePath = "C:\Windows\System32\drivers\CrowdStrike\C-00000291*.sys"
$files = Get-ChildItem -Path $filePath -ErrorAction SilentlyContinue
foreach ($file in $files) {
  try {
      Remove-Item -Path $file.FullName -Force
      Write-Output "已删除: $($file.FullName)"
  } catch {
      Write-Output "删除失败: $($file.FullName)"
  }
}
#修复后恢复安全模式启动
bcdedit /deletevalue {current} safeboot
Restart-Computer -Force

*脚本由 CrowdStrike 提供.

如何预防蓝屏死机?

任何人都无法完全避免技术故障,因为只要技术存在,故障就会继续存在。但可以在问题升级为蓝屏死机事件前,识别并解决潜在问题。

  1. 持续地 监控硬件性能指标峰值、应用程序崩溃和不同元素之间潜在冲突。 密切地
  2. 审查操作系统、驱动程序及第三方应用的补丁。发布前进行数周测试。 执行 部署前检查
  3. 以分析每次更新前的兼容性及稳定性问题。 配置 自动恢复
  4. 以防发生关键故障。 设置 异常活动或系统故障征兆警报。
  5. 在网络中 多样化操作系统 以防单一操作系统故障影响。
  6. 安排 定期维护
  7. 任务,如磁盘碎片整理、系统清理和注册表检查。 您可通过 Endpoint Central 实现上述目标,该平台集成了端点生命周期管理、AI辅助威胁检测与响应及体验监控,促进数据流通、问题快速识别与协同解决——一处搞定。 谨防钓鱼攻击

不幸的是,网络犯罪分子正在利用此事件,发送假冒电子邮件或消息以进行社会工程学和钓鱼攻击,假称提供支持或有关停机更新信息。请保持警惕。

经验教训是,正如网络安全一样,组织也必须为生产力中断做好准备。拥有切实可行且稳健的事件响应计划有助于最大限度减少意外停机的影响。

受信赖的

统一端点管理与安全解决方案

补丁管理