“蓝屏了,Windows崩溃了”,上周五下午到现在,国内外大多数用户度过了一个“冷飕飕”的周末。
需要注意:本次主要影响的客户为安装了CrowdStrike Falcon agent的用户【企业用户】
CrowdStrike 更新导致全球 Windows 电脑蓝屏,官方确认本次崩溃事件并未影响 GNU / Linux 发行版和苹果 macOS 系统设备。
科技媒体 NeoWin 7 月 19 日发布博文,尽管很多人认为本次全球蓝屏事件是一起孤立事件,但类似的问题几个月前就曾发生在 Debian 和 Rocky Linux 上,只是当时并未引起太多人的注意。
CrowdStrike 公司于今年 4 月发布更新,导致一家技术实验室的所有 Debian Linux 服务器同时崩溃并拒绝启动。
事后调查发现,这次崩溃是由于 CrowdStrike 更新不兼容最新 Debian 稳定版导致,该实验室的 IT 团队发现,移除 CrowdStrike 后,机器才得以启动,并报告了这一事件。
CrowdStrike也非常快的提供官方修复办法:
2024 年 7 月 18 日(美国太平洋时间)独立网络安全公司 CrowdStrike 的一次软件更新导致全球多个 IT 系统出现故障。虽然这并非微软自身的技术问题,但考虑到这次事件已经影响了公司的生态系统,Microsoft希望在此介绍一下过去一段时间内,微软与CrowdStrike以及其他公司一同采取了哪些措施进行及时修复以及为客户提供的支持服务。
自事件开始以来,我们一直与客户、CrowdStrike 和外部开发者保持着持续的沟通,以收集信息并尽快找到解决方案。我们深知此次事件给众多企业和个人的日常生活造成了负面的影响。我们希望能够通过为用户提供技术指导和支持的方式,尽快将中断的系统安全地恢复正常状态。具体采取的措施包括:
- 迅速与 CrowdStrike 合作,并通过自动化的方式开发解决方案。CrowdStrike 推荐了一个替代方案来解决此问题,同时发布公开声明。Windows 消息中心同步发布了在 Windows 终端上解决此问题的操作方式指南。
- 数百名微软工程师及技术专家直接与客户合作,以恢复服务。
- 与包括谷歌云平台(GCP)和亚马逊网络服务(AWS)在内的其他云计算供应商和相关方合作,分享各自在行业中看到的影响和情况,在及时告知 CrowdStrike 的同时,与客户们保持积极的沟通。
- 迅速发布手动修复文档和脚本,您可点击这里获取。
- 通过 Azure 状态仪表盘(Azure Status Dashboard)让用户及时了解事件的最新进展,您可点击此处查看。
微软正在夜以继日地工作,提供持续更新和支持。此外,CrowdStrike 还帮助Microsoft开发了一个可扩展的解决方案,帮助Microsoft Azure 基础架构加速修复 CrowdStrike 的错误更新。Microsoft还与 AWS 和 GCP 合作,共同研究更高效的解决方案。
软件更新偶尔会引发服务干扰,但像此次 CrowdStrike 更新引发的重大事件并不常见。根据目前的估算,CrowdStrike 更新事故影响了 850 万台 Windows 设备,该数字不到所有 Windows 设备总量的 1%。尽管比例很小,但对经济和社会运转带来了巨大影响。这反映出有许多关键服务的企业正在使用 CrowdStrike。
此次事件印证了在微软广泛的生态系统下,从全球云服务提供商、软件平台,到安全服务提供商供及其他软件供应商,再到Microsoft的客户,彼此之间相互关联。这也提醒着身处科技生态下的我们,利用现有机制、优先考虑安全部署和灾备是至关重要的。正如过去两天中我们所看到的,唯有紧密协作,齐心协力,才能更高效地吸取经验、恢复服务并继续前进。
以下是Microsoft工程师紧急开发的恢复工具用于快速解决修复办法:
新的恢复工具可帮助解决影响 Windows 终结点的 CrowdStrike 问题 – Microsoft 社区中心
作为影响 Windows 客户端和服务器的 CrowdStrike Falcon 代理问题的后续行动,Microsoft 发布了一个更新的恢复工具,其中包含两个修复选项,以帮助 IT 管理员加快修复过程。签名的 Microsoft 恢复工具可在 Microsoft 下载中心找到:https://go.microsoft.com/fwlink/?linkid=2280386。在这篇文章中,我们包括 Hyper-V 上托管的 Windows 客户端、服务器和操作系统的详细恢复步骤。两种修复选项如下:
- 从 WinPE 恢复 – 此选项会生成有助于促进设备修复的启动介质。
- 从安全模式恢复 – 此选项生成启动介质,以便受影响的设备可以启动到安全模式。然后,用户可以使用具有本地管理员权限的帐户登录并运行修正步骤。
确定要使用的选项
- 从 WinPE 恢复(推荐选项):此选项可快速直接恢复系统,不需要本地管理员权限。但是,可能需要手动输入 BitLocker 恢复密钥(如果在设备上使用 BitLocker),然后修复受影响的系统。如果使用第三方磁盘加密解决方案,请参阅供应商指南,以确定恢复驱动器的选项,以便可以从 WinPE 运行修正脚本。
- 从安全模式:恢复 此选项可以在启用了 BitLocker 的设备上启用恢复,而无需输入 BitLocker 恢复密钥。对于此选项,您必须有权访问在设备上具有本地管理员权限的帐户。对于使用仅 TPM 保护程序的设备、未加密的设备或 BitLocker 恢复密钥未知的情况,请使用此方法。但是,如果使用 TPM+PIN BitLocker 保护程序,则用户需要输入 PIN(如果已知),或者必须使用 BitLocker 恢复密钥。如果未启用 BitLocker,则用户只需使用具有本地管理员权限的帐户登录。如果使用第三方磁盘加密解决方案,请与这些供应商合作,确定恢复驱动器的选项,以便可以运行修正脚本。
- 其他注意事项:某些设备可能不允许连接到 USB 驱动器。在这种情况下,最好重新映像设备。
与任何恢复选项一样,在环境中广泛使用它之前,请先在多个设备上进行测试。
创建启动媒体的先决条件
- 具有至少 8GB 可用空间的 Windows 64 位客户端,可以从中运行该工具以创建可启动 USB 驱动器。
- 先决条件 #1 中对 Windows 客户端的管理权限。
- 最小 1GB 且最大 32GB 的 USB 驱动器。此 USB 上的所有现有数据都将被擦除,并自动格式化为 FAT32。
生成 WinPE 恢复媒体
的说明 若要创建恢复媒体,请在先决条件 #1 中提到的 64 位 Windows 客户端上执行以下步骤:
- 从 Microsoft 下载中心下载已签名的 Microsoft 恢复工具。
- 从下载的解决方案中提取 PowerShell 脚本。
- 从提升的 PowerShell 提示符运行 MsftRecoveryToolForCSv2.ps1。
- ADK 将下载并开始创建媒体。可能需要几分钟才能完成。
- 选择上述两个选项之一来恢复受影响的设备(请参阅下面的其他详细信息)。
- (可选)选择包含要导入到恢复映像中的驱动程序文件的目录。可能需要键盘和大容量存储驱动程序。不需要网络或其他驱动程序。我们建议您选择“N”以跳过此步骤。该工具将递归导入指定目录下的任何 SYS 和 INI。
- 选择生成 ISO 或 USB 驱动器并指定驱动器号的选项。
使用启动媒体
的先决条件 可能需要使用恢复媒体的每个启用了 BitLocker 的受影响设备的 BitLocker 恢复密钥。如果使用仅 TPM 保护程序并使用安全启动选项,则不需要恢复密钥。如果使用的是 TPM+PIN 保护程序,则在不知道设备的 PIN 时可能需要恢复密钥。
使用从 WinPE 媒体恢复
- 将 USB 闪存盘插入受影响的设备。
- 重新启动设备。
- 在重新启动期间,按 F12(或按照特定于制造商的说明启动到 BIOS)。
- 从 BIOS 启动菜单中,选择从 USB 启动并继续。
- 该工具将运行。
- 如果启用了 BitLocker,系统将提示用户输入 BitLocker 恢复密钥,包括破折号。此处提供了恢复密钥选项。对于第三方设备加密解决方案,请按照供应商提供的任何步骤访问驱动器。
- 该工具将按照 CrowdStrike 的建议运行问题修复脚本。
- 完成后,取出 USB 驱动器并正常重新启动设备。
使用安全启动媒体
若要在不使用 BitLocker 恢复密钥的情况下修复受影响的设备,并且你有权访问本地管理员帐户,请执行以下操作:
- 将 USB 闪存盘插入受影响的设备。
- 重新启动设备。
- 在重新启动期间,按 F12(或按照特定于制造商的说明启动到 BIOS)。
- 从 BIOS 启动菜单中,选择从 USB 启动并继续。
- 该工具将运行。
- 此时将显示以下消息:“此工具会将此计算机配置为在安全模式下启动。警告:在某些情况下,可能需要在运行后输入 BitLocker 恢复密钥。
- 按任意键继续。
- 此时将显示以下消息:“你的电脑已配置为立即启动到安全模式。
- 按任意键继续。
- 计算机将重新启动到安全模式。
- 用户从媒体/USB 驱动器的根目录运行repair.cmd。该脚本将按照 CrowdStrike 的建议运行修正步骤。
- 此时将显示以下消息:“此工具将删除受影响的文件并恢复正常的启动配置。警告:在某些情况下,可能需要 BitLocker 恢复密钥。警告:此脚本必须在提升的命令提示符下运行。
- 按任意键继续。
- 用户修复将运行,正常启动流将恢复。
- 成功后,用户将看到以下消息:“成功。系统现在将重新启动。
- 按任意键继续。设备将正常重启。
在 Hyper-V 虚拟机上使用恢复媒体 恢复媒体可用于修正受影响的 Hyper-V 虚拟机。
为此,请选择在使用上述步骤创建恢复介质时生成 ISO 的选项。对于非 Hyper-V 虚拟机,请按照虚拟机监控程序供应商提供的说明使用恢复媒体。
恢复 Hyper-V 虚拟机的步骤
- 在受影响的虚拟机上,在“SCSI 控制器”>“Hyper-V 设置”下添加 DVD 驱动器。
- 浏览到恢复 ISO 并将其添加为“Hyper-V 设置”下的“> SCSI 控制器> DVD 驱动器”下的映像文件。
- 记下当前的启动顺序,以便以后可以手动恢复。
- 更改启动顺序以将添加的 DVD 驱动器移动到第一个启动项。
- 启动虚拟机并选择键盘上的任意键以继续引导至 ISO 映像。
- 根据创建恢复介质时使用的是使用 WinPE 选项还是安全模式,请按照上述步骤修复系统。
- 从虚拟机的 Hyper-V 设置中将启动顺序设置回原始启动设置。
- 正常重启。
有关影响运行 CrowdStrike Falcon 代理的 Windows 客户端和服务器的问题的更多信息,请参阅:
- aka.ms/WRH 上提供了各种 Windows 信息
- 以下文章中介绍了其他恢复选项:
- KB5042421:影响 Windows 终结点的 CrowdStrike 问题导致 Windows 端点出现0x50或0x7E错误消息。
- KB5042426:影响 Windows 服务器的 CrowdStrike 问题0x7E 0x50导致 bl…
- KB:新的恢复工具可帮助解决影响 Windows 终结点的 CrowdStrike 问题 – Microsoft 支持
- Windows 365 云电脑,客户可能会尝试在更新发布之前将其云电脑还原到已知的良好状态(2024 年 7 月 19 日),如下所述:企业或企业
- 对于在 Azure 上运行的 Windows 虚拟机,请按照 Azure 状态中的缓解步骤操作
- 有关 CrowdStrike 的其他详细信息,请访问:关于 Windows 主机的 Falcon 内容更新的声明 – CrowdStrike 博客
CrowdStrike Falcon agent造成的Windows蓝屏问题,CrowdStrike 紧急更新了Agent,因此如果您是公有云平台用于,则需要通过平台更新Agent,本文以 Microsoft Azure中运行的VM为例:
受 CrowdStrike Falcon 代理影响的 Azure 虚拟机 (VM) 的恢复选项 – Microsoft 社区中心
在 Azure 中安装了 CrowdStrike Falcon 代理的 VM 的客户已通过 Azure 服务运行状况(跟踪 ID 1VT1-LX0)接收通信。Microsoft 与 CrowdStrike 合作调整了用于启动受影响虚拟机的启动配置,并成功下载了更正后的 CrowdStrike 签名文件。
客户可以通过在 Azure 门户中打开“支持+疑难解答”边栏选项卡来请求 Microsoft 应用启动配置,以获得进一步的帮助。
对于特定于 Azure 的环境,下面提供了进一步的说明:
在多次手动重启虚拟机后,某些 Azure VM 通过 CrowdStrike Falcon 代理成功更新,但是仍然无法修复问题的客户可以尝试按如下方式执行此操作:
- 使用 Azure 门户 – 尝试在受影响的 VM 上“重启”
- 使用 Azure CLI 或 Azure Shell (https://shell.azure.com)
其他恢复选项1: 可以从备份中还原,最好是在 2024 年 7 月 19 日 04:09UTC 之前开始推出此错误更新。 利用 Azure 备份的客户可以按照以下说明操作:https://learn.microsoft.com/en-us/azure/backup/backup-azure-arm-restore-vms
其他恢复选项2:客户可以尝试直接删除磁盘上的 C-00000291*.sys 文件,并且可能不需要执行拆卸和重新连接磁盘。 打开 Azure AZ CLI(所需的最低版本为 Powershell 5.1+)并运行以下步骤:
1.创建救援虚拟机
创建救援 VM,其大小与同一区域中的原始 VM 相同。要求输入用户名和密码。
创建问题 VM 的 OS 磁盘的副本
将 OS 磁盘作为数据磁盘附加到救援 VM
az vm repair create -g {your-resource-group} -n {vm-name} –verbose
az vm repair create -g RGNAME -n BROKENVMNAME –verbose
注意:对于加密的 VM,请运行以下命令:**
az vm repair create -g RGNAME -n BROKENVMNAME –unlock-encrypted-vm –verbose
2.然后运行:
在修复问题的救援 VM 上运行缓解脚本(在作为数据磁盘附加的 os-disk 副本上)
az vm repair run -g {your-resource-group} -n {vm-name} –run-id win-crowdstrike-fix-bootloop –run-on-repair –verbose
az vm repair run -g RGNAME -n BROKENVMNAME –run-id win-crowdstrike-fix-bootloop –run-on-repair –verbose
3.最后一步是运行:
从救援虚拟机中删除固定的操作系统磁盘副本
停止有问题的 VM,但未解除分配
将固定的 OS-Disk 附加到原始 VM
启动原始 VM
提示删除修复虚拟机
az vm repair restore -g {your-resource-group} -n {vmname} –verbose
az vm repair restore -g RGNAME -n BROKENVMNAME –verbose
注意:这些步骤适用于托管磁盘和非托管磁盘。如果遇到容量问题,请在一段时间后重试。
其他恢复选项3:客户可以按照以下说明尝试修复操作系统磁盘:
通过 Azure 门户将 OS 磁盘附加到修复 VM,对 Windows VM 进行故障排除
附加磁盘后,客户可以尝试删除以下文件:
Windows/System32/驱动程序/CrowdStrike/C-00000291*.sys
然后,可以将磁盘附加并重新附加到原始 VM。
最后如果您的设备设置了BitLocker,那么需要额外执行一些操作,拿到恢复密钥:
- 如果设备加入Microsoft Entra ID参考下图获取BitLocker恢复密钥
- 如果设备加入Microsoft Intune 参考下图获取BitLocker恢复密钥
- 如果设备使用的Microsoft BitLocker Administration and Monitoring (MBAM),参考下面获取BitLocker恢复密钥
或者使用如下PowerShell
Get-MbamBitLockerRecoveryKey
-KeyID <String> -Reason <String> [-UserDomain <String>] [-UserID <String>] -HelpDeskUrl <Uri> [<CommonParameters>] |
示例1:通过指定 8 位恢复密钥 ID 获取恢复密钥
Get-MbamBitLockerRecoveryKey -KeyID “4374f3b9” -Reason “Forgot PIN” -HelpDeskUrl https://helpdeskserver/HelpDesk -UserDomain “ContosoDomain” -UserID “ContosoUser” |
示例2:通过指定完整的恢复密钥 ID 获取恢复密钥
Get-MbamBitLockerRecoveryKey -KeyID “4374f3b9-58c7-4a41-87a5-0701d4fdbb86” -Reason “Forgot PIN” -HelpDeskUrl https://helpdeskserver/HelpDesk -UserDomain “ContosoDomain” -UserID “ContosoUser” |
- 如果设备使用的Microsoft BitLocker Administration and Monitoring (MBAM),参考下面获取BitLocker恢复密钥
最后,企业IT管理员还得需要防止不法分子借助此次Windows蓝屏事件做一些例如钓鱼攻击、勒索等非法的事情,而产生的次生IT灾害。