Saltar al contenido

¿Cómo puedo recuperar los recursos de AWS afectados por el agente de CrowdStrike Falcon?

12 minutos de lectura
0

No puedo conectarme a los recursos de AWS en los que está instalado el agente de CrowdStrike Falcon. Quiero solucionar problemas relacionados con la recuperación de los recursos.

Descripción corta

El 19 de julio de 2024 a las 04:09 UTC, una actualización del agente de CrowdStrike Falcon (csagent.sys) provocó que los dispositivos basados en Windows sufrieran errores de parada no planificada o pantalla azul. Entre los dispositivos afectados se incluyen las instancias de Amazon Elastic Compute Cloud (Amazon EC2) y los escritorios virtuales personales de Amazon WorkSpaces. Este problema solo afecta a las instancias de Amazon EC2 de Windows y a los WorkSpaces personales con CrowdStrike instalado.

Para obtener más información, consulta Remediation and Guidance Hub: Channel File 291 Incident (Centro de corrección y orientación: incidente Channel File 291) en el sitio web de CrowdStrike.

Con frecuencia, un reinicio de la instancia o de WorkSpace permite actualizar el agente de CrowdStrike Falcon correctamente.

Nota: Si tu instancia usa volúmenes de almacén de instancias, los datos almacenados en esos volúmenes no se conservan cuando detienes, hibernas o terminas la instancia. Al detener, hibernar o terminar la instancia, el volumen del almacén de instancias se borra criptográficamente. Para obtener más información, consulta Almacenamiento en bloque temporal del almacén de instancias para instancias de EC2.

Resolución

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.

Si la instancia no recupera un estado correcto con el reinicio, utiliza el runbook de Automatización de AWS Systems Manager para restaurar las instancias. Como alternativa, restaura las instancias de forma manual.

Para usar el runbook, primero revisa los siguientes requisitos previos:

  • Si tu volumen raíz de Amazon Elastic Block Store (Amazon EBS) está cifrado, asegúrate de que la clave de cifrado exista en tu cuenta. Además, asegúrate de tener permiso para usarlo.
  • El runbook AWSSupport-StartEC2RescueWorkflow detiene la instancia. Si la instancia usa volúmenes de almacén de instancias, utiliza el método de recuperación manual para evitar que se pierdan datos.
  • Antes de iniciar el runbook AWSSupport-StartEC2RescueWorkflow, asegúrate de que tu usuario o rol de AWS Identity and Access Management (IAM) tenga los permisos necesarios. Para obtener más información, consulta la sección Permisos de IAM necesarios de AWSSupport-StartEC2RescueWorkflow. También debes agregar el permiso kms:CreateGrant al rol de IAM.

Identificación de las instancias con problemas

Para identificar las instancias con errores, ejecuta el comando describe-instance-status de la AWS CLI:

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

Nota: Sustituye your-region por tu región de AWS.

Utilización del runbook de Automatización de Systems Manager para restaurar una única instancia de EC2

Para usar AWSSupport-StartEC2RescueWorkflow para automatizar la recuperación, abre el runbook en la consola de Systems Manager. A continuación, selecciona la región y la instancia que deseas recuperar. Si el volumen raíz de Amazon EBS está cifrado, define AllowEncryptedVolume como True.

El flujo de trabajo del runbook lanza una instancia de EC2 temporal (instancia auxiliar) en una nube virtual privada (VPC). El flujo de trabajo asocia automáticamente la instancia auxiliar al grupo de seguridad predeterminado de la VPC. La instancia debe permitir la comunicación HTTPS de salida (puerto TCP 443) hacia los puntos de enlace de Amazon Simple Storage Service (Amazon S3) y de Systems Manager.

Debes lanzar la instancia en una de las siguientes subredes para que alcance los servicios de AWS necesarios para completar las tareas del flujo de trabajo:

  • Subred pública con el parámetro AssociatePublicIpAddress definido como True.
  • Subred privada con acceso a Internet mediante NAT.

La instancia auxiliar monta el volumen raíz de las instancias seleccionadas y luego ejecuta el siguiente comando para eliminar el archivo afectado:

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

Para verificar el contenido de la carga útil OfflineScript de Base64 del comando anterior, ejecuta el siguiente comando:

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

Utilización del runbook de Automatización de Systems Manager para restaurar varias instancias de EC2

Para usar el runbook en varias instancias de EC2, utiliza los ID de las instancias, etiquetas o grupos de recursos.

El runbook lanza una instancia auxiliar para cada instancia seleccionada. Asegúrate de tener suficientes direcciones IP en la subred seleccionada para tus instancias. Asegúrate de tener suficientes cuotas de instancias y cuotas de volúmenes de EBS.

Nota: El tiempo que tarda en completarse el runbook de automatización depende de la cantidad de simultaneidad que has seleccionado.

Uso de los ID de las instancias

Sigue estos pasos:

  1. Abre el runbook AWSSupport-StartEC2RescueWorkflow en la consola de Systems Manager.
  2. En Ejecutar el runbook de automatización, selecciona Control de velocidad.
  3. En la sección Objetivos, en Parámetro, elige InstanceId. En Objetivos, elige Valores de parámetros.
  4. En Parámetros de entrada, selecciona las instancias que desees restaurar.
  5. En Control de velocidad, elige la opción de simultaneidad para definir la cantidad de recursos para los que se puede ejecutar la automatización simultáneamente. Para obtener más información, consulta Control de las automatizaciones a escala.
  6. Elige Ejecutar.

Uso de etiquetas

Sigue estos pasos:

  1. Crea una etiqueta nueva y única para usarla solo con las instancias que deseas restaurar. Todas las instancias con esta etiqueta están destinadas a la recuperación y pueden provocar la pérdida involuntaria de datos o afectar a la disponibilidad de las instancias. Para obtener más información, consulta Etiquetar los recursos de Amazon EC2 y ¿Qué es el editor de etiquetas?
  2. Para comprobar que solo las instancias afectadas compartan la nueva etiqueta, utiliza AWS Resource Explorer o el Editor de etiquetas.
  3. Abre el runbook AWSSupport-StartEC2RescueWorkflow en la consola de Systems Manager.
  4. En Ejecutar el runbook de automatización, selecciona Control de velocidad.
  5. En la sección Objetivos, en Parámetro, elige InstanceId. En Objetivos, elige Valores de parámetros.
  6. En Etiquetas, selecciona Editar. Introduce la clave y el valor de la etiqueta y, a continuación, selecciona Guardar.
  7. En Parámetros de entrada, selecciona las instancias que desees restaurar.
  8. En Control de velocidad, elige la opción de simultaneidad para definir la cantidad de recursos para los que se puede ejecutar la automatización simultáneamente. Para obtener más información, consulta Control de las automatizaciones a escala.
  9. Elige Ejecutar.

Uso de grupos de recursos

Sigue estos pasos:

  1. Crea un nuevo grupo de recursos para usarlo solo con las instancias que deseas restaurar. Todas las instancias en este grupo de recursos están destinadas a la recuperación y pueden provocar la pérdida involuntaria de datos o afectar a la disponibilidad de las instancias. Para obtener más información, consulta Creación de grupos basados en consultas en AWS Resource Groups.
  2. Para comprobar que solo las instancias afectadas pertenezcan al nuevo grupo de recursos, utiliza la consola de AWS Resource Groups.
  3. Abre el runbook AWSSupport-StartEC2RescueWorkflow en la consola de Systems Manager.
  4. En Ejecutar el runbook de automatización, selecciona Control de velocidad.
  5. En la sección Objetivos, en Parámetro, elige InstanceId. En Objetivos, elige Valores de parámetros.
  6. En Grupos de recursos, selecciona el nuevo grupo de recursos.
  7. En Parámetros de entrada, selecciona las instancias que desees restaurar.
  8. En Control de velocidad, elige la opción de simultaneidad para definir la cantidad de recursos para los que se puede ejecutar la automatización simultáneamente. Para obtener más información, consulta Control de las automatizaciones a escala.
  9. Elige Ejecutar.

Restauración manual de las instancias

Sigue estos pasos:

  1. Crea una instantánea del volumen raíz de EBS de la instancia.
  2. Crea un nuevo volumen de EBS a partir de la instantánea en la misma zona de disponibilidad.
  3. Lanza una nueva instancia de Windows en la misma zona de disponibilidad.
  4. Adjunta el nuevo volumen de EBS a la nueva instancia como un volumen de datos.
  5. Descarga la herramienta EC2Rescue para Windows Server en la instancia auxiliar.
  6. Haz clic con el botón derecho en EC2Rescue.exe y luego elige Ejecutar como administrador.
    Selecciona Acepto en el contrato de licencia.
    En la pantalla de bienvenida, elige Siguiente.
    En la pantalla Seleccionar modo, elige Sin conexión Instancia.
    Selecciona el disco sin conexión y, a continuación, elige Siguiente. Cuando se te pida, elige y, a continuación, selecciona Aceptar.
    Mantén EC2Rescue en ejecución.
    Nota: Si la instancia original usa BitLocker para cifrar el volumen raíz de EBS, proporciona la contraseña o la clave de recuperación de BitLocker cuando se te pida en pantalla. Como alternativa, utiliza manage-bde unlock en la línea de comandos. Para obtener más información, consulta manage-bde unlock en el sitio web de Microsoft. Después de desbloquear la unidad, repite el paso 6.
  7. Navega hasta la carpeta X:\Windows\System32\drivers\CrowdStrike\ del volumen asociado y, a continuación, elimina C-00000291*.sys.
    Nota: En este ejemplo, X: es la letra de la unidad asignada al volumen de EBS secundario de la instancia afectada. Puede que sea otra letra diferente en tu entorno.
  8. Vuelve a EC2 Rescue.
    Selecciona Diagnóstico y rescate, a continuación, elige Siguiente.
    Mantén todas las opciones predeterminadas.
    Selecciona Siguiente y, a continuación, vuelve a seleccionar Siguiente.
    Cuando se te pida, selecciona Rescate. Selecciona Aceptar y, a continuación, selecciona Siguiente.
    Selecciona Finalizar.
    En la ventana emergente, selecciona Corregir la firma del disco y, a continuación, selecciona Aceptar.
    Si la opción Corregir la firma del disco está atenuada, selecciona Aceptar.
  9. Desconecta el volumen de EBS de la nueva instancia.
  10. Crea una instantánea del volumen de EBS desconectado.
  11. Selecciona el mismo tipo de volumen (por ejemplo, gp2 o gp3) que la instancia afectada y, a continuación, crea una imagen de máquina de Amazon (AMI) a partir de la instantánea.
  12. Sustituye el volumen raíz en la instancia de EC2 original y especifica la AMI.

WorkSpaces

Si WorkSpace no vuelve a un estado correcto después de varios reinicios, restaura una instantánea anterior de WorkSpace. Si la restauración de WorkSpace no lo devuelve a un estado correcto, reconstruye WorkSpace.

Solución de problemas

Si los pasos anteriores no resuelven tus problemas de conectividad, sigue los siguientes pasos de solución de problemas:

Runbook de Automatización de Systems Manager

Problema: La instancia auxiliar no puede conectarse a los puntos de enlace del servicio de AWS. Este problema puede provocar un error en el paso del flujo de trabajo de automatización waitForEc2RescueInstanceToBeManaged.

Solución: Confirma si el grupo de seguridad predeterminado permite que el tráfico de salida (puerto TCP 443) alcance los puntos de enlace de S3 y de Systems Manager. Además, asegúrate de que la subred seleccionada pueda conectarse a estos puntos de enlace. Para usar un grupo de seguridad personalizado, actualiza el valor del parámetro HelperInstanceSecurityGroupId con el ID de tu grupo de seguridad. Si eliges una subred pública, define el parámetro AssociatePublicIpAddress como True. También puedes definir el parámetro SubnetId como CreateNewVPC para que la automatización cree una nueva VPC con la conectividad necesaria.

Problema: La instancia afectada no se detiene porque la protección contra paradas está activada.

Solución: Desactiva la protección contra paradas en el caso de la instancia afectada y luego vuelve a ejecutar la automatización.

Nota: Si tu instancia usa volúmenes de almacén de instancias, los datos almacenados en esos volúmenes no se conservan cuando detienes la instancia.

Problema: La instancia auxiliar no se lanza.

Solución: Es posible que el tipo de instancia seleccionado para la instancia de EC2Rescue no esté disponible en la zona de disponibilidad de la subred de la instancia auxiliar. Usa un tipo de instancia compatible en la misma zona de disponibilidad que la instancia auxiliar.

Problema: La automatización falla cuando verifica si la creación de la pila de AWS CloudFormation se ha completado y aparece el error "Stack AWSSupport-EC2Rescue-{UUID} entered unexpected state: DELETE_IN_PROGRESS".

Solución: Para determinar la causa del error de la pila, obtén el UUID y utiliza la consola de CloudFormation. Este error de pila puede producirse si no tienes permisos para crear los recursos de la pila. Para obtener más información, consulta la sección Permisos de IAM necesarios de AWSSupport-StartEC2RescueWorkflow y ¿Cómo puedo solucionar los problemas de acceso denegado o de operación no autorizada con una política de IAM?

Problema: El runbook da error en el paso assertInstanceRootVolumeIsNotEncrypted del flujo de trabajo de automatización porque hay un volumen de EBS cifrado.

Solución: Si el volumen usa cifrado de EBS, define el parámetro AllowEncryptedVolume como True.

Problema: Se ha eliminado la VPC predeterminada.

Solución: Define el parámetro SubnetId como CreateNewVPC para crear una nueva VPC que permita que la instancia se recupere correctamente.

Problema: El paso detachInstanceRootVolume del flujo de trabajo de automatización falla y aparece el mensaje de error "error occurred (IncorrectState) when calling the DetachVolume operation: Unable to detach root volume".

Solución: Cuando ejecutes la automatización, mantén la instancia en el estado Detenida.

Restauración manual de instancias

Problema: La instancia no arranca y aparece el error "The application or operating system couldn't be loaded because a registered file is missing or contains errors".

Solución: Si no seleccionaste Corregir firma de disco, es posible que se produzca una colisión de firmas de disco. Para solucionar este problema, sigue el paso 8 para la restauración manual. Si restauraste la instancia sin EC2Rescue, consulta Problemas comunes con las instancias de Windows de Amazon EC2.

Nota: Si no puedes solucionar la conectividad con tu instancia de EC2 mediante los pasos anteriores de la solución de problemas, ponte en contacto con AWS Support. Asegúrate de hacer una captura de pantalla de la instancia inaccesible.

Información relacionada

Ejecutar la herramienta EC2Rescue en instancias inaccesibles