Creación de respuestas personalizadas a las conclusiones de GuardDuty con Amazon CloudWatch Events - Amazon GuardDuty

Creación de respuestas personalizadas a las conclusiones de GuardDuty con Amazon CloudWatch Events

GuardDuty crea un evento para Amazon CloudWatch Events cuando se produce algún cambio en los resultados. Al buscar cambios, se creará un nuevo evento de si se encuentran resultados que se han generado o agregado recientemente. Los eventos se emiten en la medida de lo posible.

A cada resultado de se le asigna un ID de resultado. crea un evento de CloudWatch por cada resultado con un ID de resultado único. Todas las ocurrencias posteriores de un resultado existente se agregarán al resultado original. Para obtener más información, consulte Agregación de búsquedas de GuardDuty .

nota

Si su cuenta es un administrador delegado de GuardDuty, los eventos de CloudWatch se publican en su cuenta y en la cuenta del miembro en la que se generó el hallazgo.

Si usa eventos de con , puede automatizar tareas que le ayuden a responder a los problemas de seguridad revelados en los resultados de .

Para recibir notificaciones acerca de resultados de basados en , debe crear una regla de y un destino para . Esta regla permite a CloudWatch enviar al destino especificado notificaciones de todos los resultados que genera. Para obtener más información, consulte Creación de una regla y un destino de CloudWatch Events para GuardDuty (CLI).

Frecuencia de notificación de CloudWatch Events para GuardDuty

Notificaciones de hallazgos recién generados con un identificador de hallazgo único

GuardDuty envía una notificación basada en su evento de CloudWatch a los 5 minutos de la detección. Este evento (y esta notificación) también contiene todos los casos posteriores de este resultado que se producen en los primeros 5 minutos desde que se generó este resultado con un ID único.

nota

NO PUEDE personalizar la frecuencia predeterminada (5 minutos) con la que se envían las notificaciones acerca de los resultados generados. Esta frecuencia no se puede cambiar.

Notificaciones de casos de hallazgo posteriores

A cada resultado con un ID de resultado único, le agrega todos los casos posteriores de un resultado concreto que se produzcan en intervalos de seis horas de un solo evento. A continuación, envía una notificación sobre estos casos posteriores basada en este evento. Dicho de otro modo, para los casos posteriores de resultados que ya se tienen, GuardDuty envía notificaciones basadas en eventos de CloudWatch cada 6 horas.

Los usuarios de una cuenta maestra son los únicos que pueden personalizar la frecuencia predeterminada de envío de notificaciones sobre casos de resultado posteriores a CloudWatch Events. Los usuarios de las cuentas miembro NO PUEDEN personalizar este valor de frecuencia. El valor de la frecuencia definido por la cuenta maestra en su propia cuenta se impone a la funcionalidad de de todas sus cuentas miembro. En otras palabras, si un usuario de una cuenta maestra establece este valor de frecuencia en 1 hora, en todas las cuentas miembro también se usará una frecuencia de 1 hora para las notificaciones sobre casos de resultado posteriores enviadas a CloudWatch Events. Para obtener más información, consulte Administración de varias cuentas de Amazon GuardDuty AWSintegraciones de servicios con GuardDuty.

nota

Puede personalizar la frecuencia predeterminada con la que se envían las notificaciones acerca de los casos de resultados posteriores. Los valores posibles son 15 minutos, una hora o seis horas, que es el valor predeterminado. Para obtener más información sobre configurar la frecuencia de estas notificaciones, consulteEstablecimiento de la frecuencia para la exportación de hallazgos activos actualizados.

Supervisión de los hallazgos archivados de GuardDuty con CloudWatch Events

El caso inicial y todos los casos posteriores de los resultados archivados manualmente (generados una vez que el archivado haya terminado) se envían a con la frecuencia descrita anteriormente.

El caso inicial y todos los casos posteriores de los resultados archivados automáticamente (generados una vez que el archivado haya terminado) no se envían a .

Formato de evento de CloudWatch para GuardDuty

El evento de CloudWatch para presenta el siguiente formato:

{ "version": "0", "id": "cd2d702e-ab31-411b-9344-793ce56b1bc7", "detail-type": "GuardDuty Finding", "source": "aws.guardduty", "account": "111122223333", "time": "1970-01-01T00:00:00Z", "region": "us-east-1", "resources": [], "detail": {GUARDDUTY_FINDING_JSON_OBJECT} }
nota

El valor de detalle devuelve los detalles en formato JSON de un único hallazgo en forma de objeto, en lugar de devolver el valor de «hallazgos», que puede respaldar varios hallazgos dentro de una matriz.

Para obtener una lista completa de todos los parámetros incluidos en la GUARDDUTY_FINDING_JSON_OBJECT, consulte GetFindings. El parámetro id que aparece en la GUARDDUTY_FINDING_JSON_OBJECT es el ID de resultado descrito anteriormente.

Crear una regla de para que envíe una notificación sobre los resultados de (consola)

Puede usar CloudWatch Events con GuardDuty para configurar alertas de búsqueda automatizadas enviando los eventos de búsqueda de GuardDuty a un centro de mensajería para aumentar la visibilidad de los hallazgos de GuardDuty. En este tema se muestra cómo enviar alertas de hallazgos al correo electrónico, a Slack o a Amazon Chime. Para ello, se configura un tema de SNS y, a continuación, se conecta ese tema a una regla de eventos de CloudWatch Events.

Configuración de un punto de enlace y un tema de

Para empezar, primero debe configurar un tema en Amazon Simple Notification Service y añadir un punto de enlace. Para obtener más información, consulte Introducción en la Guía para desarrolladores de Amazon Simple Notification Service.

Este procedimiento establece a dónde desea enviar los datos de búsqueda de GuardDuty. El tema de SNS se puede añadir a una regla de eventos de CloudWatch Events durante o después de la creación de la regla de eventos.

Email setup
Creación de un tema de SNS
  1. Inicie sesión en y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v3/home.

  2. Seleccione Temas en el panel de navegación y después Crear un tema.

  3. En la sección Crear tema, seleccione Estándar. Escriba un nombre para el tema (por ejemplo, GuardDuty_to_Email). Lo demás datos son opcionales.

  4. Elija Create Topic (Crear tema). Se abrirán los detalles del nuevo tema.

  5. En la sección «Suscripciones», elija Crear suscripción.

    1. En el menú Protocolo, seleccione Correo electrónico.

    2. En el campo Punto de enlace, agregue la dirección de correo electrónico en la que desea recibir las notificaciones.

      nota

      Una vez creada la suscripción, tendrá que confirmarla a través del cliente de correo electrónico.

    3. Elija Crear una suscripción.

  6. Busque el mensaje de suscripción en la bandeja de entrada y elija Confirmar suscripción.

Slack setup
Creación de un tema de SNS
  1. Inicie sesión en y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v3/home.

  2. Seleccione Temas en el panel de navegación y después Crear un tema.

  3. En la sección Crear tema, selecciona Estándar. Escriba un nombre para el tema (por ejemplo, GuardDuty_to_Slack). Lo demás datos son opcionales. Selecciona Crear tema para finalizar.

Configuración de un cliente de aplicación
  1. Vaya a la consola de AWS Chatbot.

  2. En el panel de clientes configurados, selecciona Configurar nuevo cliente.

  3. Elige Slack y confirma con «Configurar».

    nota

    Al elegir Slack, debes confirmar los permisos para acceder AWS Chatbot a tu canal seleccionando «permitir».

  4. Selecciona Configurar un nuevo canal para abrir el panel de detalles de configuración.

    1. Escriba un nombre para el canal.

    2. Para el canal de Slack, elija el canal que quiere usar. Para usar un canal privado de SlackAWS Chatbot, selecciona Canal privado.

    3. En Slack, copia el ID del canal privado haciendo clic con el botón derecho en el nombre del canal y seleccionando Copiar enlace.

    4. En la AWS Chatbot ventana de la consola de AWS administración, pega el ID que copiaste de Slack en el campo ID del canal privado.

    5. En Permisos, elige crear un rol de IAM mediante una plantilla, si aún no tienes uno.

    6. En Policy template (Plantillas de políticas), elija Notification permissions (Permisos de notificación). Esta es la plantilla de política de IAM para. AWS Chatbot Proporciona los permisos de lectura y lista necesarios para las alarmas, los eventos y los registros de CloudWatch, así como para los temas de Amazon SNS.

    7. Elige la región en la que creaste anteriormente tu tema de SNS y, a continuación, selecciona el tema de Amazon SNS que creaste para enviar notificaciones al canal de Slack.

  5. Seleccione Configure (Configurar).

Chime setup
Creación de un tema de SNS
  1. Inicie sesión en y abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v3/home.

  2. Seleccione Temas en el panel de navegación y después Crear un tema.

  3. En la sección Crear tema, selecciona Estándar. Escriba un nombre para el tema (por ejemplo, GuardDuty_to_Chime). Lo demás datos son opcionales. Selecciona Crear tema para finalizar.

Configuración de clientes de AWS Chatbot
  1. Vaya a la consola de AWS Chatbot.

  2. En el panel de clientes configurados, selecciona Configurar nuevo cliente.

  3. Selecciona Chime y confirma con «Configurar».

  4. En el panel de detalles de configuración, introduzca un nombre para el canal.

  5. En Chime, abre la sala de chat deseada

    1. Elija el icono de engranaje en la esquina superior derecha y elija Manage webhooks and bots (Administrar webhooks y bots).

    2. Selecciona Copiar URL para copiar la URL del webhook a tu portapapeles.

  6. En la consola AWS de administración, en la AWS Chatbot ventana, pegue la URL que copió en el campo URL de Webhook.

  7. En Permisos, elija crear un rol de IAM mediante una plantilla, si aún no tiene uno.

  8. En Policy template (Plantillas de políticas), elija Notification permissions (Permisos de notificación). Esta es la plantilla de política de IAM para. AWS Chatbot Proporciona los permisos de lectura y lista necesarios para las alarmas, los eventos y los registros de CloudWatch, así como para los temas de Amazon SNS.

  9. Elija la región en la que creó anteriormente su tema de SNS y, a continuación, seleccione el tema de Amazon SNS que creó para enviar notificaciones a Chime Room.

  10. Seleccione Configure (Configurar).

Configure un evento de CloudWatch para conocer las conclusiones de GuardDuty

  1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.

  2. Seleccione Reglas en el panel de navegación y después Crear una regla.

  3. En el menú Nombre de servicio, elija GuardDuty.

  4. En el menú Tipo de evento, elija Resultado de GuardDuty.

  5. En Vista previa del patrón de eventos, elija Editar.

  6. Pegue el siguiente código JSON en Vista previa del patrón de eventos y elija Guardar.

    { "source": [ "aws.guardduty" ], "detail-type": [ "GuardDuty Finding" ], "detail": { "severity": [ 4, 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.0, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.0, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9 ] } }
    nota

    El código anterior alertará de cualquier hallazgo de gravedad media o alta.

  7. En la sección Destinos, haga clic en Agregar destino.

  8. En el menú Seleccionar destinos, elija Tema de SNS.

  9. En Seleccionar un tema, elija el nombre del tema de SNS que creó en el paso 1.

  10. Configure la entrada para el evento.

    • Si estás configurando las notificaciones para Chime o Slack, ve al paso 11, el tipo de entrada predeterminado es Evento coincidente.

    • Si estás configurando las notificaciones por correo electrónico a través de las redes sociales, sigue los pasos que se indican a continuación para personalizar el mensaje que se envía a tu bandeja de entrada mediante los siguientes pasos:

    1. Expanda Configurar entrada y elija Transformador de entrada.

    2. Copie el código siguiente y péguelo en el campo Ruta de entrada .

      { "severity": "$.detail.severity", "Account_ID": "$.detail.accountId", "Finding_ID": "$.detail.id", "Finding_Type": "$.detail.type", "region": "$.region", "Finding_description": "$.detail.description" }
    3. Copie el código siguiente y péguelo en el campo Plantilla de entrada para dar formato al correo electrónico.

      "AWS <Account_ID> has a severity <severity> GuardDuty finding type <Finding_Type> in the <region> region." "Finding Description:" "<Finding_description>. " "For more details open the GuardDuty console at https://console.aws.amazon.com/guardduty/home?region=<region>#/findings?search=id%3D<Finding_ID>"
  11. Haga clic en Configurar los detalles.

  12. En la página Configurar los detalles de la regla, escriba los valores que correspondan en los campos Nombre y Descripción de la regla y elija Crear una regla.

Creación de una regla y un destino de CloudWatch Events para GuardDuty (CLI)

El siguiente procedimiento muestra cómo utilizar comandos de la para crear una regla y un destino de para . En concreto, el procedimiento muestra cómo crear una regla que permite a enviar eventos para todos los resultados generados por , así como añadir una función de como destino para dicha regla.

nota

Además de las funciones de AWS Step Functions, y admiten los siguientes tipos de destino: instancias de , flujos de , tareas de , máquinas de estado de , el comando y destinos integrados.

También puede crear una regla y un destino de CloudWatch Events para GuardDuty a través de la consola de CloudWatch Events. Para obtener más información y pasos detallados, consulte Creating a CloudWatch Events Rule That Triggers on an Event. En la sección Event Source (Origen de evento), seleccione GuardDuty para Service name (Nombre de servicio) y GuardDuty Finding para Event Type (Tipo de evento).

Para crear una regla y un destino
  1. Para crear una regla que permita a enviar eventos para todos los resultados generados por , ejecute el siguiente comando de la CLI de :

    AWS events put-rule --name Test --event-pattern "{\"source\":[\"aws.guardduty\"]}"

    importante

    Puede seguir personalizando la regla de modo que indique a que envíe eventos únicamente a un subconjunto de los resultados generados por . Este subconjunto se basa en los atributos de resultado o atributos especificados en la regla. Por ejemplo, utilice el siguiente comando de la CLI para crear una regla que permita a enviar eventos únicamente para los resultados de con una gravedad de 5 u 8:

    AWS events put-rule --name Test --event-pattern "{\"source\":[\"aws.guardduty\"],\"detail-type\":[\"GuardDuty Finding\"],\"detail\":{\"severity\":[5,8]}}"

    Para ello, puede utilizar cualquiera de los valores de propiedad que están disponibles en el archivo JSON para obtener resultados de .

  2. Para asociar una función de como un destino de la regla creada en el paso 1, ejecute el siguiente comando de la CLI de .

    AWS events put-targets --rule Test --targets Id=1,Arn=arn:aws:lambda:us-east-1:111122223333:function:<your_function>

    nota

    Asegúrese de reemplazar your_function> en el comando anterior por la función Lambda real de los eventos de .

  3. Para añadir los permisos necesarios para invocar el destino, ejecute el siguiente comando de la CLI de .

    AWS lambda add-permission --function-name <your_function> --statement-id 1 --action 'lambda:InvokeFunction' --principal events.amazonaws.com

    nota

    Asegúrese de reemplazar your_function> en el comando anterior por la función Lambda real de los eventos de .

    nota

    En el procedimiento anterior, utilizamos una función Lambda como destino de la regla que desencadena los eventos de CloudWatch. También puede configurar otros recursos de AWS como destinos para activar CloudWatch Events. Para obtener más información, consulte PutTargets.

Eventos de CloudWatch para entornos de cuentas múltiples GuardDuty

Como administrador de GuardDuty, las reglas de CloudWatch Event de su cuenta se activarán en función de las conclusiones aplicables de sus cuentas de miembros. Esto significa que si configura una notificación de búsqueda a través de CloudWatch Events en su cuenta de administrador, como se detalla en la sección anterior, se le notificarán los hallazgos de gravedad alta y media generados por sus cuentas de miembros, además de las suyas propias.

Puedes identificar la cuenta de miembro en la que se originó el hallazgo de GuardDuty con accountId el campo de los detalles JSON del hallazgo.

Para empezar a escribir una regla de evento personalizada para una cuenta de miembro específica de su entorno en la consola, cree una nueva regla y pegue la siguiente plantilla en la vista previa del patrón de eventos, añadiendo el ID de cuenta de la cuenta de miembro que desee activar el evento.

{ "source": [ "aws.guardduty" ], "detail-type": [ "GuardDuty Finding" ], "detail": { "accountId": [ "123456789012" ] } }
nota

Este ejemplo se activará cuando se encuentre el ID de cuenta que aparece en la lista. Se pueden añadir varios ID, separados por una coma siguiendo la sintaxis JSON.