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).
Temas
- Frecuencia de notificación de CloudWatch Events para GuardDuty
- Formato de evento de CloudWatch para GuardDuty
- Crear una regla de para que envíe una notificación sobre los resultados de (consola)
- Creación de una regla y un destino de CloudWatch Events para GuardDuty (CLI)
- Eventos de CloudWatch para entornos de cuentas múltiples GuardDuty
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.
Configure un evento de CloudWatch para conocer las conclusiones de GuardDuty
-
Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/
. -
Seleccione Reglas en el panel de navegación y después Crear una regla.
-
En el menú Nombre de servicio, elija GuardDuty.
-
En el menú Tipo de evento, elija Resultado de GuardDuty.
-
En Vista previa del patrón de eventos, elija Editar.
-
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.
-
En la sección Destinos, haga clic en Agregar destino.
-
En el menú Seleccionar destinos, elija Tema de SNS.
-
En Seleccionar un tema, elija el nombre del tema de SNS que creó en el paso 1.
-
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:
-
Expanda Configurar entrada y elija Transformador de entrada.
-
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" }
-
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>"
-
-
Haga clic en Configurar los detalles.
-
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
-
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 .
-
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 .
-
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.