Blog de Amazon Web Services (AWS)
Automatice la administración y corrección de vulnerabilidades en AWS mediante Amazon Inspector y AWS Systems Manager – Parte 1
Por Erik Weber,Worldwide Specialist Solutions Architect;
Priyank Ghedia, Solutions Architect y
Praveen Haranahalli, Solutions Architect
AWS lanzó recientemente el nuevo Amazon Inspector para realizar escaneos continuos de vulnerabilidades en instancias de Amazon Elastic Compute Cloud (Amazon EC2) e imágenes de contenedores almacenadas en Amazon Elastic Container Registry (Amazon ECR). Estos escaneos evalúan las vulnerabilidades de software y la exposición involuntaria de la red. El nuevo Amazon Inspector utiliza el agente de AWS Systems Manager (SSM) para recolectar el inventario de los componentes de software de las instancias EC2. Posteriormente, Inspector verifica estos datos e identifica las vulnerabilidades de software, siendo un paso crucial en la administración de vulnerabilidades.
Usted debe actualizar sus instancias con frecuencia para resolver las vulnerabilidades identificadas por Amazon Inspector en función de la gravedad de las vulnerabilidades. Puede utilizar AWS Systems Manager Patch Manager para automatizar el proceso de actualización de servidores administrados por Systems Manager mediante el agente de SSM. Puede haber vulnerabilidades de zero-day u otras vulnerabilidades de severidad alta y crítica para las que hay actualizaciones disponibles. Sin embargo, es posible que no quiera esperar a la siguiente actualización programada en su calendario para corregir las vulnerabilidades. En estos casos, deben existir mecanismos bajo demanda para poder aplicar actualizaciones.
Esta serie proporciona dos métodos para corregir bajo demanda las vulnerabilidades de software encontradas por Amazon Inspector, utilizando un runbook de Systems Manager Automation. Un runbook de Automation define las acciones de AWS Systems Manager sobre las instancias administradas y otros recursos de AWS cuando se ejecuta una automatización. Contiene uno o más pasos que se realizan en orden secuencial o ramas basadas en pasos anteriores. Usted puede preparar ambos métodos en su cuenta de AWS para que estén listos para su uso cuando la velocidad sea fundamental para corregir las vulnerabilidades en los paquetes de software identificadas por Inspector.
En la parte 1 de esta serie, aprenderá a corregir los hallazgos de Inspector de una vulnerabilidad específica que afecta a varias instancias EC2. Utilizará acciones personalizadas de AWS Security Hub para ejecutar un runbook de Systems Manager Automation para aplicar actualizaciones bajo demanda a las instancias EC2 seleccionadas.
En la Parte 2, aprenderá a ejecutar directamente un runbook de Systems Manager Automation para corregir todos los hallazgos de Amazon Inspector en instancias EC2 mediante el uso de etiquetas y la severidad del hallazgo de Amazon Inspector. Utilizará el método de la invocación directa del runbook de Systems Manager Automation si desea intentar corregir todas las vulnerabilidades de software identificadas por Inspector. Este enfoque administra eficazmente flotillas de instancias EC2 mediante filtros basados en etiquetas a lo largo de toda su AWS Organization.
Estos métodos funcionan en varias regiones y cuentas administradas por una AWS Organization. Pueden ayudarlo a reducir la complejidad operativa de las actualizaciones manuales, reducir los errores y aumentar la velocidad de las correcciones.
Descripción general de la solución
Corrección mediante la acción personalizada de AWS Security Hub
Este método le permite corregir las detecciones de Amazon Inspector que elija en Security Hub mediante acciones personalizadas. La acción personalizada ejecuta un runbook de Automation para los descubrimientos seleccionados. Posteriormente, el runbook de Automation utilizará la información de los paquetes afectados a partir de los detalles de los hallazgos de Amazon Inspector y utilizará Systems Manager Patch Manager para actualizar solo esos paquetes a la versión más reciente. Habilite Security Hub para usar este método.
Por ejemplo, hay paquetes afectados en la siguiente figura, curl
y libcurl
, para CVE 2017-8816. Cuando el usuario invoca la acción personalizada para este hallazgo, Systems Manager Patch Manager actualiza ambos paquetes en la instancia administrada elegida. Amazon Inspector cerrará automáticamente todos los descubrimientos asociados con estos paquetes afectados poco después de que se corrija la vulnerabilidad.
Figura 1: Detalles de hallazgo en la consola de Amazon Inspector.
La cuenta administradora delegada de Security Hub puede ejecutar el runbook de automatización en instancias EC2 de cuentas miembro en un escenario multi-cuenta y multi-región. En este artículo se proporcionan dos acciones personalizadas que actualizan los paquetes afectados y realizan un reinicio de la instancia o lo posponen. Puede optar por reiniciar la instancia EC2 después de instalar las actualizaciones para beneficiarse inmediatamente de ellas. Además, puede posponer el reinicio a una ventana de mantenimiento seleccionando la opción de no reinicio.
Con esta acción personalizada, recomendamos buscar los hallazgos de Amazon Inspector sobre un CVE específico. Puede usar el filtro Title (Título) en Security Hub, filtrar por el tipo de concordancia starts with (comienza por) y escribir el CVE como se muestra con las flechas en la siguiente figura. Utilice el filtro Resource type (Tipo de Recurso) con AwsEc2Instance para mostrar solo los hallazgos de las instancias EC2. Con estos filtros seleccionados, Security Hub mostrará todas las instancias EC2 afectadas por el CVE especificado. A continuación, puede elegir todos los hallazgos desplegados por este filtro, asociado a instancias EC2, y ejecutar la acción personalizada.
En la siguiente figura se muestra que puede ejecutar la acción personalizada en varios hallazgos asociados a diferentes instancias EC2. Sin embargo, no debe seleccionar múltiples hallazgos de Amazon Inspector para la misma instancia EC2. Para resolver varios hallazgos de Amazon Inspector para las mismas instancias Amazon EC2, consulte la Parte 2 de esta serie.
Figura 2: Selección de varios hallazgos de Amazon Inspector para su corrección en Security Hub.
Visión general de la arquitectura
El flujo de automatización habilita el runbook de Automation personalizado resolveInspectorFindingsRunbook
proporcionado en esta publicación. La acción personalizada de Security Hub ejecuta este runbook, así como se describe en la sección “descripción general de la solución”. Revisemos el proceso mostrado en la siguiente figura:
Figura 3: Proceso de automatización en varias cuentas.
- Cuando se utiliza la acción personalizada de Security Hub, se selecciona el hallazgo de Amazon Inspector en Security Hub y se invoca la acción personalizada. Se envía un evento a Amazon EventBridge con los detalles del hallazgo de Amazon Inspector. La regla de EventBridge
ResolveInspectorFindings
concuerda con este patrón de eventos. - La regla de EventBridge
ResolveInspectorFindings
envía como parámetros el ID de la instancia EC2 y el ID del hallazgo de Amazon Inspector para el runbook de Automation. La opción de reinicio se selecciona dependiendo de la acción personalizada que se está utilizando. ResolveInspectorFindingsRunbook
hace una llamada a la API StartAutomationExecution en varias cuentas y regiones para iniciar el flujo de actualización en la cuenta y región destino de la instancia EC2.- Un script de Python obtiene los paquetes afectados en el hallazgo de Amazon Inspector, como se muestra en la figura 1. Posteriormente, el script crea una Override List de los paquetes afectados. La cuenta administradora almacena la lista en un bucket de Amazon Simple Storage Service (Amazon S3). La plantilla de AWS CloudFormation proporcionada en este artículo crea este bucket.
- El documento AWS-RunPatchBaseline se ejecuta mediante una tarea Run Command en la instancia EC2 utilizando la override list creada en el paso 4. La opción de reinicio se pasa dependiendo de la acción personalizada seleccionada en Security Hub. Si ya se está ejecutando una operación de actualización en la instancia EC2, el runbook de Automation no continua. Si hay una actualización disponible, la operación de instalación de AWS-RunPatchBaseline actualiza los paquetes afectados identificados en la override list a la versión más reciente que esté disponible.
- Una vez completada la actualización, el runbook de Automation consulta a Systems Manager por la asociación de State Manager aplicada a la instancia EC2 para recopilar el inventario de software mediante el documento AWS-GatherSoftwareInventory.
- La asociación para AWS-GatherSoftwareInventory inicia inmediatamente para aplicarse en las instancias EC2 y actualizar el inventario.
- La instancia EC2 envía información de inventario actualizada a AWS Systems Manager.
Amazon Inspector cambia el estado de detección corregido a CLOSED (CERRADO) si las actualizaciones se instalan correctamente. El estado del hallazgo correspondiente en Security Hub cambia a ARCHIVED (ARCHIVADO).
Prerrequisitos
Los requisitos previos necesarios son los siguientes:
- Systems Manager debe administrar instancias EC2;
- Security Hub debe estar habilitado.
Paso a paso
Este tutorial incluye los siguientes pasos:
- Crear acciones personalizadas de Security Hub para resolver los hallazgos de Amazon Inspector.
- Desplegar la plantilla de CloudFormation para crear el runbook de Automation.
- Crear roles de ejecución para varias cuentas y regiones mediante StackSets.
- Actualizar los roles de las instancias EC2 en IAM con permisos para acceder a la override list en el bucket de S3.
- Corrección de vulnerabilidades utilizando la acción personalizada de Security Hub.
Paso 1: Crear acciones personalizadas de Security Hub para resolver los hallazgos de Amazon Inspector
- En la región y cuenta administradora delegada de Security Hub, vaya a la consola de Security Hub. En el panel de navegación izquierdo, elija Settings (Configuración) y seleccione la pestaña Custom actions (Acciones personalizadas).
- Elija Create custom action (Crear acción personalizada).
- Para corregir los hallazgos de Amazon Inspector sin reiniciar la instancia EC2, realice los siguientes pasos:
-
- En el Action name (Nombre de Acción) escriba
Rem-Inspector-NoRBT
. - Escriba la Description (Descripción) de la acción personalizada, por ejemplo: «Acción que corregirá los hallazgos de Amazon Inspector sin reiniciar la instancia».
- En el Custom action ID (ID de la acción personalizada) escriba
InspectorRemNoRBT
.
- En el Action name (Nombre de Acción) escriba
Figura 4: Crear una acción personalizada de Security Hub para corregir los hallazgos sin reiniciar instancias.
- Para crear una segunda acción personalizada para corregir los hallazgos de Inspector y reiniciar la instancia EC2, realice los siguientes pasos:
- En el Action name (Nombre de Acción) escriba
Rem-Inspector-RBT
. - Escriba la Description (Descripción) de la acción personalizada, por ejemplo: «Acción que corregirá los hallazgos de Amazon Inspector y reiniciará la instancia EC2».
- En el Custom action ID (ID de la acción personalizada) escriba
InspectorRemRBT
.
- En el Action name (Nombre de Acción) escriba
- Copie los ARN de las acciones personalizadas, se utilizarán en el siguiente paso.
Figura 5: ARN de las acciones personalizadas de Security Hub.
Paso 2: Desplegar la plantilla de CloudFormation para crear el runbook de Automation
La plantilla de AWS CloudFormation proporcionada en este blog implementa los recursos necesarios para permitir que Amazon Inspector encuentre la resolución en su cuenta de AWS. Debe desplegar estos recursos en su cuenta administradora delegada de Security Hub. CloudFormation solo debe desplegarse en la región de agregación si utiliza la agregación entre regiones de Security Hub.
Abra la siguiente página de GitHub y descargue el archivo ResolveInspectorFindingsCFN.yaml
:
GitHub: resolveInspectorFindingsCFN.yaml
- Vaya a la consola de AWS CloudFormation en la región y cuenta administradora delegadas de Security Hub. Cree una pila usando la plantilla de yaml.
- En la página Specify stack details (Especificar detalles de la pila), realice los siguientes pasos:
- Escriba el Stack name (Nombre de la Pila) con un nombre significativo.
- Pegue el ARN de la acción personalizada de Security Hub para corregir los hallazgos de Amazon Inspector sin reiniciar la instancia EC2 copiada en la sección anterior en RemediateInspectorFindingCustomActionNoRBTArn.
- Pegue el ARN de la acción personalizada de Security Hub para corregir los hallazgos de Amazon Inspector y reiniciar la instancia EC2 copiada en la sección anterior en RemediateInspectorFindingCustomActionRBTArn.
- Establezca el OrganizationId con el ID de la organización si va a desplegar esta plantilla en la cuenta administradora delegada o de management. Puede encontrar su ID de organización navegando en la consola de AWS Organizations, como se ilustra a continuación. Deje este campo vacío si despliega esta plantilla en una cuenta independiente.
Figura 6: Consola de AWS Organizations
e. De clic en Next (Siguiente):
Figura 7: Página de detalles de la pila.
- En la página Configure stack (Configurar opciones de pila), opcionalmente agregue las etiquetas necesarias y, a continuación, de clic en Next (Siguiente).
- Revise los parámetros. Seleccione I acknowledge that AWS CloudFormation might create IAM resources with custom name (Reconozco que AWS CloudFormation podría crear recursos de IAM con nombres personalizados). A continuación, de clic en Create Stack (Crear pila) para realizar la configuración de la pila.
- Después de actualizar la página, el estado de la pila debe ser CREATE_IN_PROGRESS (Crear en curso). Cuando el estado cambie a CREATE_COMPLETE (Creación completada), continúe con la siguiente sección. Puede ver los recursos creados en la pestaña Resources (Recursos) de la consola de CloudFormation.
- Copie los valores de AutomationRunbookName e InstallOverrideListS3BucketName de la pestaña Outputs (Salidas) de la consola de CloudFormation, como se ilustra a continuación. Los necesitará en los siguientes pasos.
Figura 8: Pestaña Outputs de CloudFormation.
Paso 3: Crear roles de ejecución para varias cuentas y regiones mediante StackSets
Debe crear el rol de ejecución de Automation entre las cuentas para realizar esta automatización (desplegada en el paso anterior) de la cuenta administradora delegada de Security Hub destinada a instancias EC2 en cuentas miembro.
Si desea utilizar esta automatización solo en una cuenta, debe crear este rol en la misma cuenta de AWS utilizada en el paso 1.
Abra la siguiente página de GitHub y descargue el archivo automationExecutionRole.yml
:
GitHub: automationExecutionRole.yaml
- Vaya a la consola de AWS CloudFormation en la cuenta de administración de la organización o en una cuenta administradora delegada de CloudFormation.
- En el panel de navegación, elija StackSets.
- En la parte superior de la página StackSets, elija Create StackSet (Crear StackSet).
- En Prerequisite – Prepare template (Requisito previo – Preparar plantilla) elija template is ready (plantilla está lista).
- En Specify template (Especificar plantilla), de clic en Upload a template file (Cargar un archivo de plantilla), elija archivo, seleccione yml y de clic en Next (Siguiente).
- En la página Specify stack details (Especificar detalles de la pila), realice los siguientes pasos:
- Escriba el Name (Nombre) y la Description (Descripción) de la pila.
- Pegue el valor del runbook que copió en el paso 2, punto 6 en AutomationRunPatchBaselineRunbook.
- Escriba en DelegatedAdministratorAccountId el valor del ID de cuenta administradora delegada de Security Hub. Si va a implementar en una cuenta independiente, especifique el ID de la cuenta de destino.
- Pegue el valor del nombre del bucket de S3 que copió en el elemento 6 del paso 2 en InstallOverrideListBucket.
Figura 9: Detalles de CloudFormation StackSet.
7. En la página Configure stack options (Configurar opciones de pila), opcionalmente agregue las etiquetas necesarias y, a continuación, de clic en Next (Siguiente).
8. En la página Set deployment options (Establecer opciones de implementación), seleccione la región deseada. Como está creando recursos en IAM, solo necesita especificar una región y, a continuación, de clic en Next (Siguiente).
9. Revise toda la información. Seleccione I acknowledge that AWS CloudFormation might create IAM resources with custom names (Reconozco que AWS CloudFormation podría crear recursos de IAM con nombres personalizados). A continuación, de clic en Submit (Enviar) para realizar la configuración de la pila.
10. Después de actualizar la página, el estado del StackSet debe ser Running (Ejecutando). Cuando el estado cambie a Succeeded (Exitoso), continúe con el siguiente paso. Puede ver el resultado de cada instancia de pila individual en la pestaña Stack Instances (Instancias de pila) de la consola de CloudFormation StackSet.
Paso 4: Actualizar los roles de las instancias EC2 en IAM con permisos para acceder a la override list en el bucket de S3
Las instancias EC2 de las cuentas destino deben tener el permiso de IAM para instalar override lists ubicadas en el bucket de S3 en la cuenta administradora delegada de Security Hub. La plantilla de CloudFormation del Paso 1 crea este bucket. La siguiente sección contiene un ejemplo de una política de IAM necesaria para la definición del EC2 Instance Profile (Perfil de la instancia EC2). Esta política es necesaria junto con las políticas de IAM para que Systems Manager administre el recurso.
Debe actualizar el nombre del bucket en la sección Resources (Recursos) de la política ejemplo con el nombre de la override list que copió anteriormente en el paso 2, punto 6. Debe agregar esta política de permisos a todos los roles de instancias EC2 en las que desee la capacidad de corregir los hallazgos de Amazon Inspector mediante la automatización.
Paso 5: Corrección de vulnerabilidades utilizando la acción personalizada de Security Hub
Vayamos paso a paso con el uso de la acción personalizada de Security Hub para corregir un hallazgo de Amazon Inspector asociada a una instancia EC2:
- En la cuenta administradora delegada de Security Hub, vaya a la consola de Security Hub en la región donde implementó el paso 1 y diríjase a la página de hallazgos.
- Use el filtro Title (Título) en Security Hub, filtre por el tipo de concordancia starts with (comienza por) y escribir el CVE que desea corregir.
- Utilice el filtro Resource Type (Tipo de Recurso) con AwsEc2Instance para mostrar solo los hallazgos asociados con las instancias Amazon EC2.
- Una vez seleccionados estos filtros, Security Hub mostrará todas las instancias EC2 afectadas por el CVE del elemento A.
- Seleccione los hallazgos que desea corregir y realice la acción personalizada de Security Hub.
- Seleccione
Rem-Inspector-RBT
si desea reiniciar la instancia EC2 después de instalar la actualización. Si no desea reiniciar la instancia EC2, elijaRem-Inspector-NoRBT
.
Figura 10: Página de hallazgos de Security Hub y acción personalizada.
- Después de seleccionar la acción personalizada, recibirá una notificación en un banner confirmando que EventBridge ha recibido los eventos.
- Puede supervisar el progreso del runbook de Automation para cada uno de los hallazgos seleccionados en la consola de Systems Manager Automation en la pestaña Executions (Ejecuciones), como se muestra en la siguiente figura.
Figura 11: Estado de ejecución de Systems Manager Automation
- Después de actualizar los paquetes, los hallazgos de Amazon Inspector se actualizan su estatus a Closed (Cerrado). Puede ver los hallazgos cerrados de Amazon Inspector en la página All findings (Todos los hallazgos) de la consola de Amazon Inspector. Seleccione Closed (Cerrado) del menú, como se muestra en la siguiente figura.
Figura 12: Consola de Amazon Inspector para descubrimientos CLOSED (CERRADOS).
Los hallazgos relacionados con el paquete vim y la dependencia de la instancia EC2 se actualizarán y cerrarán.
5. El estado de registro correspondiente al hallazgo de Security Hub se cambia a ARCHIVED (ARCHIVADO), como se muestra en la siguiente figura.
Figura 13: Estado del registro del hallazgo de Security Hub cambiado a ARCHIVED (ARCHIVADO).
Notes
- Este método solo corregirá los hallazgos de vulnerabilidad de los paquetes de Amazon Inspector para las instancias Amazon EC2. No corrige los hallazgos de accesibilidad de red de Amazon Inspector, ni los hallazgos de vulnerabilidad de los paquetes de Amazon Inspector relacionados con las imágenes de contenedores en Amazon ECR.
- Puede utilizar la acción personalizada para corregir un hallazgo de Amazon Inspector por instancia EC2 a la vez. Sin embargo, supongamos que el paquete afectado resultó en múltiples hallazgos con diferentes CVEs para la misma instancia EC2. En este caso, todos los hallazgos se corrigen después de una operación de actualización exitosa para el paquete afectado. Si desea corregir los hallazgos de Inspector a escala, consulte la parte 2 de esta serie de artículos.
- Puede activar simultáneamente la acción personalizada en varios hallazgos de Amazon Inspector asociados a diferentes instancias EC2. Recomendamos filtrar los hallazgos de Amazon Inspector con un CVE específico en Security Hub y posteriormente realizar la acción personalizada en todas las instancias EC2 con la vulnerabilidad, como se muestra en la figura 2.
- El runbook de Automation instala la versión más reciente de los paquetes afectados y está disponible en los repositorios del administrador de paquetes.
Conclusión
En esta publicación se explica cómo el nuevo Amazon Inspector puede ayudarle a detectar vulnerabilidades en las instancias Amazon EC2. Revisamos por qué se requieren métodos de actualización bajo demanda para corregir vulnerabilidades críticas y de zero-day. Finalmente, explicamos pasa a paso un método de automatización utilizando la acción personalizada de Security Hub para corregir los hallazgos de Inspector sobre vulnerabilidades de paquetes en instancias Amazon EC2 afectadas por un CVE específico. Esta automatización puede ayudarle a reducir la complejidad operativa de las actualizaciones manuales, reducir los errores y aumentar la velocidad de las correcciones.
Puede utilizar las acciones personalizadas Rem-Inspector-RBT
y Rem-Inspector-NoRBT
de Security Hub para corregir la misma vulnerabilidad en varias instancias Amazon EC2 de una organización de AWS.
En la Parte 2, le mostraremos cómo utilizar el runbook de Systems Manager Automation directamente desde la consola de Automation para corregir los hallazgos de Amazon Inspector para instancias Amazon EC2 a escala en una organización de AWS basándose en la etiqueta de recurso aplicada y la gravedad del hallazgo de Amazon Inspector.
Este artículo fue traducido del Blog da AWS en Inglés
Acerca de los autores