DEV Community

Cover image for Cómo visualizar los hallazgos de Amazon GuardDuty en MS Teams
Gerardo Castro Arica for AWS Community Builders

Posted on • Edited on

Cómo visualizar los hallazgos de Amazon GuardDuty en MS Teams

En este blog post te mostraré como enviar los hallazgos de Amazon GuardDuty a un canal de mensajería como Microsoft Teams en un formato de tarjeta que contenga información relevante del hallazgo para que el equipo de seguridad pueda tomar acción inmediata.

Puede usar esta integración para comprender mejor los hallazgos de Amazon GuardDuty.

Enfoque para visualizar los resultados de Amazon GuardDuty

Como se muestra en la Figura 1, hay cuatro pasos de alto nivel para entender como funciona la solución.

Figura 1: Pasos para visualizar hallazgos de Amazon GuardDuty

1. Centralizar los hallazgos de Amazon GuardDuty

Puede centralizar los hallazgos de Amazon GuardDuty en una única cuenta como Security Audit para que desde aquí se pueda implementar el resto de componentes de la solución. De esa manera, puedes usar esta solución para recibir todos los hallazgos detectados en tus cargas de trabajo, sin importar en que cuenta o región se haya detectado.

2. Recopilar los hallazgos con Amazon EventBridge

Amazon EventBridge es un servicio muy útil al momento de recopilar eventos de algún otro servicio y redireccionarlos hacia un target especifico como una función Lambda, un tópico SNS, un servicio ETL como Kinesis Data Firehose, entre otros.

3. Ejecución del código de una función Lambda

Cada vez que la función lambda reciba un hallazgo de Amazon GuardDuty invocara el código que tiene configurado para hacer el envío de este hallazgo a un canal de mensajería como MS Teams.

4. Visualizar el hallazgo

En la Figura 2, podemos ver un ejemplo de como el equipo de segurida recibirán los hallazgos de Amazon GuardDuty en su canal.

Figura 2: Visualización del hallazgo

Descripción general del diseño

Este diagrama de arquitectura representa a alto nivel los servicios a usar y la interacción entre ellos.

Figura 3: Descripción general del ddiseño

En el diagrama de la figura 3, vamos a explicar el paso a paso:

  1. Dentro de un esquema de múltiples cuentas AWS, conviene empezar a delegar la administración de algunos servicios por sobre el resto de cuentas, como es el caso de Amazon GuardDuty. Hacer esto te permite centralizar todos los hallazgos de Amazon GuarDuty de todas las cuentas donde tengas habilitado este servicio. Y delegar una única cuenta, en este caso la Security Audit para gestionar Los hallazgos desde un único punto.

  2. Cada hallazgo detectado por Amazon GuardDuty, es recopilado por una regla basada en eventos de Amazon EventBridge y redirigirá estos eventos (antes hallazgos) hacia una función lambda.

  3. La función lambda va a desencadenar la invocación del código por cada evento que reciba de la regla configurada en EventBridge.

  4. Recibirás una notificación en tu canal de MS Teams cada vez que se detecte un hallazgo, el cual se configura por medio de un incoming webhook.

Beneficios de la solución:

Al implementar esta solución, puede lograr los siguientes beneficios:

  • Ahorra tiempo al analizar un hallazgos de manera rápida y sencilla en lugar de hacerlo desde la misma consola de Amazon GuardDuty. En un esquema múltiples cuentas, no será efectivo hacer la búsqueda entre 1000 posibles.

  • Concentrarse en los hallazgos que generen mayor interés, por ejemplo, puedes solo recibir hallazgos de severidad HIGH, o de algún Treath Purpose como Cryptomining, o sobre algun recurso critico como una instancia EC2, un bucket S3, entre otros.

  • Obtener una vista rápida de los detalles del hallazgo, como saber cual es el indicador de compromiso del atacante o cual es el recursos afectado, incluso saber a que cuenta y región pertenece el hallazgo.

Pre-requisitos:

  • Instalar Git
  • Instalar Visual Studio Code, o algún otro de tu preferencia
  • Por si no lo tienes, instalar Zip
  • Instalar el cliente de MS Teams
  • Por ultimo, tener cuenta en Github y MS teams

Tutorial

Puedes hacer uso de esta solución tanto en un entorno de múltiples cuentas o una cuenta standalone. Es decir, si solamente tienes activado Amazon GuardDuty en una única cuenta, y quieres usar esta solución, puedes hacerlo, va a funcionar de todas maneras.

Lo primero que haremos, será crear o usar un canal de MS Teams para recibir los hallazgos, y configuraremos un incoming webhook.

Si vamos a crear un canal, estos son los pasos:

  • Elegir un nombre y descripción de tu preferencia.
  • La privacidad del canal, puede ser tanto pública o privada, va a depender de tus necesidades.
  • Dar clic en crear.

crear canal en ms teams

Una vez tengas el canal creado, ve a configuraciones del canal, y luego a conectores:

configurar un conector en ms teams

Acto seguido, donde dice "Webhook entrante" o "Incoming Webhook" dar clic en configurar:
configurar un iw

Luego, en los detalles de la configuración del Webhook, coloca un nombre, agrega un icono y finalmente da clic en "Crear"

configurar iw pasos finales

Inmediatamente el conector te va a brindar la url del webhook, cópiala en algún lugar, vamos a usar más tarde.

Lo segundo que haremos será crear una función lambda. Esta función debe ser creada en la misma cuenta donde residen los hallazgos de Amazon GuardDuty.

  • Elije un nombre, yo usare "alert-guardduty-teams"
  • Usa los mismos valores que muestro en la imagen.

Crear la función de lambda

Cambiemos los valores por defecto que usa lambda function a estos nuevos:

configuración de lambda

En la opción de Enviroment Variables (variables de entorno), agreguemos lo siguiente:

  • SEVERITY_THRESHOLD = coloca aquí el nivel de severidad de las amenazas que deben ser notificadas
  • TEAMS_WEBHOOK_URL = coloca aquí la url del incoming webhook que generaste en el primer paso.

Variables de entorno

Lo tercero que haremos será crear una regla en EventBridge, no te preocupes por el código ahora mismo, ya lo veremos.

Para crear una regla basada en eventos, ir a Amazon CloudWatch, y luego hacer clic en Rule:

Ir a CloudWatch Rule

Para crear y configurar una regla, consta de 3 pasos importantes:

Paso 1:

  • Elegir un nombre.
  • Agrega una descripción.
  • Todo lo demás por defecto, como en la imagen.

crear regla paso 1

Paso 2:

  • Las opciones de "Event Source" y "Sample Event" las dejaremos por defecto.
  • En la opción de "Creation Method" elegir "Use pattern form".
  • En la opción de "Event pattern".

crear regla paso 2a

crear regla 2b

Paso 3:

  • Target type: AWS Services
  • Select a target: Lambda function
  • En Function, elegir la función lambda creada en el segundo paso.
  • Todo lo demás por defecto

crear regla 3

Ahora si, vamos a por el código 💪

Deberás clonar en tu máquina local, este repositorio alojado en Github que contiene el código que usaremos.

No olvides dejar tu ⭐ al repositorio, también hazle fork 🔂 para que puedas customizarlo a tus necesidades y envíame un PR así contribuimos juntos a la comunidad Open Source.

GitHub logo gerardokaztro / guardduty-to-msteams

Cómo enviar los hallazgos de Amazon GuardDuty hacia MS Teams.

Cómo visualizar los hallazgos de Amazon GuardDuty en MS Teams

Visualización del hallazgo

En este blog post te mostraré como enviar los hallazgos de Amazon GuardDuty a un canal de mensajería como Microsoft Teams en un formato de tarjeta que contenga información relevante del hallazgo para que el equipo de seguridad pueda tomar acción inmediata.

Puede usar esta integración para comprender mejor los hallazgos de Amazon GuardDuty.

Enfoque para visualizar los resultados de Amazon GuardDuty

Como se muestra en la Figura 1, hay cuatro pasos de alto nivel para entender como funciona la solución.

Figura 1: Pasos para visualizar hallazgos de Amazon GuardDuty

1. Centralizar los hallazgos de Amazon GuardDuty

Puede centralizar los hallazgos de Amazon GuardDuty en una única cuenta como Security Audit para que desde aquí se pueda implementar el resto de componentes de la solución. De esa manera, puedes usar esta solución para recibir todos los hallazgos detectados en tus cargas de trabajo, sin importar en que cuenta o…

Una vez tengas el repositorio en tu local, busca el archivo alerts-guardduty-teams.zip y súbelo a tu función lambda.

cargar zip

Finalmente, modifica el lambda handler usando el nombre del archivo python comprimido

lambda handler

actualizar lambda handler

Si quieres hacer alguna modificación al código, te recomiendo hacerlo de manera local, luego comprimes el archivo python usando zip y lo subes a la función lambda.

Finalmente, empieza a recibir los hallazgos:

ms teams

Te invito a compartir este blog, reaccionar y dejar un comentario acerca de que tan útil encuentras contenido como este. y te dejamos todas nuestras redes para que puedas seguirnos 🤝

🌎 CONTACTO:

🌐 Website: https://bit.ly/awssecuritylatam
🤝 Meetup: https://bit.ly/comunidad-awsseclatam
🔗 LinkedIn: https://bit.ly/linkedin-awsseclatam
🗣️ Slack: https://bit.ly/slack-awsseclatam

🔥 MÁS CONTENIDO:

📺 Youtube: https://bit.ly/youtube-awsseclatam
📺 Twitch: https://bit.ly/twitch-awsseclatam
🤳 https://bit.ly/instagram-awsseclatam
https://bit.ly/blogs-awsseclatam
🚨 Si quieres estar enterado de todo nuestros contenidos, no olvides suscribirte, y ¡compartir!

⚠️ Si alguno de nuestros enlaces no funciona, no dudes en reportarlo.

Top comments (1)

Collapse
 
lbm profile image
Info Comment hidden by post author - thread only accessible via permalink
Lachlan Mitchell

The source code for the Lambda function you are passing off as your own was made by me (github.com/lbm/terraform-aws-guard...). It's a line-for-line clone. Not only did you not credit me, you went out of your way to relicense it 🤦‍♂️

That's very poor conduct for an AWS Community Builder.

Some comments have been hidden by the post's author - find out more