亚马逊AWS官方博客

如何恢复受 CrowdStrike Falcon 代理影响的亚马逊云科技资源?

简要描述

2024 年 7 月 18 日,CrowdStrike Falcon 代理(csagent.sys)的更新导致采用 Windows 操作系统的设备出现意外停止错误或蓝屏。这包括 Amazon Elastic Compute Cloud(Amazon EC2)实例和 Amazon WorkSpaces Personal 虚拟桌面。此问题仅影响到 Windows Amazon EC2 实例和安装了 CrowdStrike 的个人 WorkSpaces。

通常,重启实例或 WorkSpace 即可成功更新 CrowdStrike Falcon 代理。如果重启未能解决问题,请按照以下步骤操作来解决问题。

注意:如果您的实例使用实例存储卷,则当实例停止、休眠或终止后,存储在这些卷上的数据不会保留。在实例停止、休眠或终止时,实例存储卷将以加密方式擦除。有关更多信息,请参阅 Amazon EC2 实例存储

解决方法

恢复 Amazon EC2 实例

如果在重启后,实例仍未恢复到正常状态,请按照以下步骤操作来使用自动化的运行手册方法或手动方法。

注意:

  • 如果您在运行 AWS 命令行界面(AWS CLI)命令时收到错误,请参阅排除 AWS CLI 错误。另外,请确保使用最新版本的 AWS CLI
  • 如果您的 Amazon Elastic Block Store(Amazon EBS)根卷已加密,请确保您的账户中有加密密钥且您有权使用该密钥。

确定受损实例

要确定失败的实例,请运行 AWS CLI 命令 describe-instance-status,如下所示:

注意:请将 your-region 替换为您的 AWS 区域。

aws ec2 describe-instance-status --filters Name=instance-status.status,Values=impaired --query "InstanceStatuses[*].InstanceId" --region your-region

选项 1 – 使用 AWS Systems Manager Automation 运行手册

注意:AWSSupport-StartEC2RescueWorkflow Systems Manager Automation 运行手册会停止您的实例。如果您的实例使用实例存储卷,则使用手动恢复方法。

在启动 AWSSupport-StartEC2RescueWorkflow 运行手册之前,请确保您的 AWS Identify and Access Management(IAM)用户或角色具有所需的权限。有关更多信息,请参阅 AWSSupport-StartEC2RescueWorkflow 中的所需的 IAM 权限部分。您还必须向 IAM 角色添加 kms:CreateGrant 权限。

要使用 AWSSupport-StartEC2RescueWorkflow 来进行自动恢复,请在 Systems Manager 控制台上打开运行手册,然后选择需要恢复的 AWS 区域和实例。如果您的 EBS 根卷已加密,则将 AllowEncryptedVolume 设置为 True

此工作流程在虚拟私有云(VPC)中启动临时 EC2 实例(辅助实例)。启动的实例会自动关联到 VPC 的默认安全组。默认安全组必须允许流向 Amazon S3 和 Systems Manager 端点的出站 HTTPS(端口 443)通信。这确保了实例可以访问所需的 AWS 服务,以便完成配置的工作流任务。该实例装载所选实例的根卷,并运行以下命令来删除受影响的文件:

get-childitem -path "$env:EC2RESCUE_OFFLINE_DRIVE\Windows\System32\drivers\CrowdStrike\" -Include C-00000291*.sys -Recurse | foreach { $_.Delete()}

要验证前面命令中的 Base64 OfflineScript 有效负载的内容,请运行以下命令:

PS C:\Windows\system32> [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("REPLACE_WITH_BASE64_HERE"))

选项 2 – 使用手动恢复方法

请完成以下步骤:

  1. 为实例的 EBS 根卷创建快照
  2. 从相同可用区中的快照,创建新 EBS 卷
  3. 在相同的可用区中,启动新 Windows 实例
  4. 连接新 EBS 卷到新实例,将其作为数据源。
  5. 下载适用于 Windows Server 的 EC2Rescue 工具到辅助实例。
  6. 右键单击 EC2Rescue.exe,然后选择以管理员身份运行
    选择我同意许可协议。
    欢迎屏幕上,选择下一步
    选择模式屏幕上,选择离线实例
    选择离线磁盘,然后选择下一步。出现提示时,选择,然后选择确定
    保持 EC2 Rescue 运行。
    注意:如果原始实例使用 BitLocker 加密 EBS 根卷,请按照屏幕提示提供您的密码或 BitLocker 恢复密钥。或者,您可以从命令行使用 manage-bde unlock 来执行此操作。有关更多信息,请参阅 Microsoft 网站上的 manage-bde unlock。在驱动器解锁后,完成步骤 6。
  7. 导航到所连接卷上的 X:\Windows\System32\drivers\CrowdStrike\ 文件夹,然后删除 C-00000291*.sys
    注意:在本例中,X: 是分配给受影响实例的辅助 EBS 卷的驱动器盘符。在您的环境中,字母可能会不同。
  8. 返回 EC2 Rescue。
    选择诊断和补救,然后选择下一步
    将所有选项保留为默认值。
    选择下一步,然后再次选择下一步
    出现提示时,依次选择补救确定下一步
    选择完成
    在出现的弹出窗口中,选择修复磁盘签名,然后选择确定
    如果修复磁盘签名灰显,则选择确定
  9. 从新实例分离 EBS 卷
  10. 为分离的 EBS 卷创建快照
  11. 选择与受影响实例相同的卷类型(例如 gp2 或 gp3),然后从快照创建亚马逊机器映像(AMI)
  12. 在原始 EC2 实例上替换根卷并指定 AMI。

Amazon WorkSpaces

如果多次重启后,WorkSpace 仍未恢复到正常状态,则将 WorkSpace 还原到以前的快照。如果在还原 WorkSpace 之后,WorkSpace 仍未能恢复正常状态,则重建 WorkSpace

故障排除

如果前面的步骤无法解决连接到 EC2 实例的问题,请按照以下故障排除步骤进行恢复。

恢复选项 1 – Systems Manager Automation 运行手册

问题:辅助实例无法连接到 SSM 端点。这可能会导致 AWSSupport-StartEC2RescueWorkflow 运行手册的自动化工作流 waitForEc2RescueInstanceToBeManaged 步骤中出现故障。
解决方案:确保默认安全组允许出站流量(TCP 端口 443)访问 Systems Manager 和 S3 端点,并且所选子网具有与这些端点的连接。此外,如果您选择公有子网,请确保将 AssociatePublicIpAddress 参数设置为 True。或者,将参数 SubnetId 设置为 CreateNewVPC,让自动化工作流创建具有所需连接的新 VPC。

问题:由于启用了停止保护功能,受影响实例无法停止。
解决方案:对于受影响实例,关闭停止保护功能,然后重新运行自动化工作流。

注意:如果您的实例使用实例存储卷,则当实例停止后,存储在这些卷上的数据不会保留。

问题:辅助实例无法启动。
解决方案:在辅助实例所在可用区的子网中,为 EC2Rescue 实例选择的实例类型可能不可用。使用辅助实例所在的相同可用区中支持的实例类型。

问题:自动化工作流在验证 AWS CloudFormation 堆栈创建是否完成时失败,出现错误“堆栈 AWSSupport-EC2Rescue-{UUID} 进入意外状态:DELETE_IN_PROGRESS”
解决方案:获取 UUID 并打开 CloudFormation 控制台,验证堆栈创建失败的原因。如果您没有创建堆栈资源的权限,则可能会发生此故障。有关更多信息,请参阅 AWSSupport-StartEC2RescueWorkflow所需的 IAM 权限部分,以及如何排除 IAM 策略中的拒绝访问或者未授权操作错误?

问题:由于 EBS 卷经过加密,运行手册在自动化工作流 assertInstanceRootVolumeIsNotEncrypted 步骤中失败。
解决方案:如果卷使用 EBS 加密,则将 SSM 文档参数 AllowEncryptedVolume 设置为 True

问题:默认 VPC 已删除。
解决方法 :将 SSM 文档参数 SubnetId 设置为 CreateNewVPC。这将创建一个新 VPC,以便让实例成功恢复。

问题:自动化工作流 detachInstanceRootVolume 步骤失败,并显示错误消息“调用 DetachVolume 操作时出现错误(IncorrectState):无法分离根卷”。
解决方案:运行自动化工作流时,确保实例仍保持停止状态。

恢复选项 2 – 手动恢复方法

问题:实例无法启动,出现错误“无法加载应用程序或操作系统,因为注册的文件丢失或包含错误”
解决方案:如果在前面的选项 2 – 使用手动恢复方法部分中,您没有选择修复磁盘签名,则可能遇到了磁盘签名冲突。

要解决此问题,请按照选项 2 – 使用手动恢复方法部分中的步骤 8 进行操作,或者如果您执行恢复而没有使用 EC2 Rescue,请按照 EC2 Windows 故障排除指南中的指导操作。

注意:如果前面的故障排除步骤无法解决连接到 EC2 实例的问题,请联系 AWS Support。确保您已捕获无法访问的实例的屏幕截图


Original URL: https://repost.aws/en/knowledge-center/ec2-instance-crowdstrike-agent