Entre otros servicios dedicados a la seguridad, Amazon cuenta con GuardDuty, una solución bastante completa basada en inteligencia artificial para la detección y clasificación de amenazas. En esta entrada vamos a hacer una recopilación de las funcionalidades de este servicio y cómo pueden serte de ayuda para vivir más tranquilo sabiendo que tus cuentas están protegidas.

¿Qué es AWS GuardDuty?

Amazon GuardDuty es una solución de supervisión de seguridad en AWS que analiza y procesa orígenes de datos obtenidos por distintos servicios de AWS para detectar amenazas e identificar actividad inesperada y maliciosa en tus cuentas de AWS.

GuardDuty informa del estado de seguridad de la cuenta AWS catalogando las amenazas detectadas como hallazgos, que se pueden filtrar, suprimir, exportar o incluso gestionarse con respuestas personalizadas con Amazon CloudWatch Events o con Amazon EventBridge.

GuardDuty permite exportar también los hallazgos detectados a un bucket de S3 e integrarlos con otros servicios como AWS Security Hub.

Integración de servicios en el AWS Security Hub

¿Cómo obtiene la información?

Como hemos adelantado, AWS GuardDuty se apoya en la información proporcionada por servicios propios de Amazon. En este punto hay que diferenciar dos vertientes desde las que AWS GuardDuty obtiene información:

Revisión de logs y eventos con orígenes de datos fundamentales

Una vez que se activa GuardDuty, el servicio comienza a realizar análisis de datos proporcionados por distintos servicios que se consideran “fundamentales” y que son la base de cualquier arquitectura.

  • Eventos de AWS CloudTrail: CloudTrail es el servicio básico de registro de eventos y llamadas a la API realizadas a los servicios desplegados en la cuenta de AWS. CloudTrail registra eventos del tipo:
    • Llamadas a la API realizadas desde la cuenta de AWS, SDK, línea de comandos y ciertos servicios de AWS.
    • Datos de los usuarios y cuentas que hacen llamadas a la API.
    • La dirección IP de origen de las llamadas a la API así como el momento en que se hicieron.
    • Eventos de servicios globales (S3, CloudFront, Route53…). En este caso, GuardDuty procesa los eventos de cada Región, incluyendo los eventos globales, lo que le permite mantener una trazabilidad de los usuarios y permisos en cada región, y detectar credenciales que se usen de manera maliciosa entre distintas regiones. En este caso, Amazon recomienda habilitar GuardDuty en todas las regiones soportadas por AWS, para escanear cualquier actividad maliciosa proveniente de otras regiones, aparte de la región donde están desplegados los recursos.
  • Eventos de gestión de AWS CloudTrail: este tipo de eventos se diferencian de los eventos generales por estar referidos a las operaciones de administración de recursos de AWS. Ejemplo de ellos serían Configuración de seguridad (llamadas a la API del tipo AttachRolePolicy sobre IAM).
    • Configuración de reglas para el enrutamiento de datos (llamadas a la API del tipo CreateSubnet sobre EC2).
    • Configuración del registro (llamadas a la API del tipo CreateTrail sobre CloudTrail).
  • Logs de flujo de VPC: este tipo de logs capturan información sobre el tráfico entrante y saliente de la red con tu entorno. Al activar GuardDuty, el análisis de estos logs comienza de manera automática posibilitando también el análisis de flujo de red para servicios como Lambda y EKS.
  • Logs de DNS: al activar GuardDuty, el servicio comienza de manera automática a analizar los logs de DNS. En este caso, es importante recalcar que solo analiza este tipo de logs si se están usando DNS resolvers para las instancias de EC2. Si se usan otros DNS resolvers como GoogleDNS, OpenDNS o tienes los tuyos propios, el servicio no podrá acceder a los logs y, por tanto, no podrá analizarlos.

Revisión de logs y eventos de servicios adicionales

Aparte de la revisión de los datos de los servicios básicos, es recomendable completar el análisis de los logs con la revisión y detección de amenazas en otros servicios que pueden gestionar información sensible. Para ello tenemos las siguientes funcionalidades de GuardDuty.

  • EKS Protection: permite detectar amenazas para proteger los clusters de EKS que tengas desplegados en tu entorno. Para ello se vale de dos funcionalidades:
    • EKS Audit log Monitoring: detección de actividad potencialmente maliciosa en los clusters de EKS auditando los audit logs de Kubernetes para detectar las llamadas que hacen los distintos usuarios y aplicaciones a la API de Kubernetes así como el control plane.
    • EKS Runtime Monitoring: detección de riesgos potenciales en los nodos y contenedores de tus clusters de EKS a través del análisis de eventos a nivel de sistema operativo.
  • Protection: identificación de amenazas de seguridad en las funciones lambda invocadas en la infraestructura. GuardDuty monitoriza los logs de actividad en la red que genera cada Lambda al ser invocada.
  • RDS Protection: análisis y perfilado de la actividad de inicio de sesión en RDS para detectar posibles amenazas de acceso a las bases de datos Amazon Aurora.
  • S3 Protection: procesamiento las peticiones y actividad sobre los objetos almacenados en S3 ayudándose de los registros de actividad CloudTrail, salvo los objetos que se almacenen en buckets que sean de acceso público, en cuyo caso el servicio únicamente avisa de que el bucket tiene acceso público.
  • Malware Protection: detección de actividad sospechosa en las instancias EC2 o en cargas de trabajo de contenedores. Malware Protection crea snapshots de los volúmenes EBS asociados a las instancias donde se ha detectado la actividad maliciosa y las comparte con la cuenta de servicio de GuardDuty. A continuación, el propio servicio Malware Protection crea réplicas cifradas de los volúmenes EBS de los snapshots anteriores sobre las que se ejecuta un escaneo de malware. En caso de que se encuentre malware durante el escaneo, la réplica del disco quedará almacenada en la cuenta de AWS para realizar más comprobaciones, en caso contrario, se eliminará el snapshot de manera automática.
Malware protection

Vale, me has convencido, pero ¿cuánto cuesta?

Los precios de GuardDuty se basan en el volumen de los registros de servicio analizados y los datos analizados en busca de malware. Los cargos por el servicio, se pueden dividir en estos puntos:

  • Análisis de eventos de administración de AWS CloudTrail: se cobra cada 1 millón de eventos al mes y está prorrateado.

  • Análisis de registros de flujo de la nube virtual privada (VPC) de Amazon y de registros de consultas de DNS: se cobra por gigabyte (GB) al mes y tiene descuentos por volumen.

  • Análisis de eventos de datos de Amazon S3 en AWS CloudTrail: se cobra cada millón de eventos al mes, está prorrateado y tiene descuentos por volumen.

  • Análisis de registros de auditoría de Amazon EKS: se cobra cada millón de registros de auditoría al mes, está prorrateado y tiene descuentos por volumen.

  • Monitoreo de la versión ejecutable de Amazon EKS: se cobra en función de la cantidad y el tamaño de las cargas de trabajo de EKS protegidas, medidas en vCPU. Si la monitorización de EKS mediante GuardDuty está activada en la cuenta, no se cobrará por analizar los registros de flujo de VPC de las instancias en las que el agente de GuardDuty esté desplegado y activo.

  • Datos analizados en busca de malware: el coste se basa en el volumen total y prorrateado de GB de datos de Amazon EBS analizados cada mes. Los volúmenes de EBS adjuntos de más de 1 TB (1024 GB) no se analizan.

  • Análisis de eventos de Amazon RDS: la tarifa de GuardDuty RDS Protection se basa en el número de CPU virtuales (vCPU) de instancias RDS protegidas por mes. En el caso de las instancias Aurora sin servidor v2, el cargo se basará en el número de unidades de capacidad Aurora (ACU) mensuales protegidas de la instancia Aurora sin servidor v2.

Como puedes ver, para lo que ofrece, no es una herramienta excesivamente cara para los beneficios que ofrece. Por poner un par de ejemplos:

  • Imaginemos que en un mes, GuardDuty procese 40.000.000 de eventos de administración de AWS CloudTrail en la región Este de EE. UU. (Norte de Virginia). El coste en este caso sería:
    40 eventos de administración × 4,00 USD (40 millones de eventos de administración, con precio por millón)
    Total = 160 USD al mes
  • En caso de tener EKS, pongamos que GuardDuty procesa 200.000.000 eventos de Amazon EKS en la región Este de EE. UU. (Norte de Virginia). El coste sería:
    100 eventos de Amazon EKS × 1,60 USD (primeros 100 millones de eventos, con precio por millón)
    + 100 eventos de Amazon EKS × 0,80 USD (siguientes 100 millones de eventos, con precio por millón)
    Total = 240 USD al mes

En la página de precios vienen más ejemplos de costes calculados según distintos casos de uso para que puedas hacerte una idea de cuánto podría salir tu servicio o si lo prefieres, puedes usar la calculadora de precios de AWS.

¿Existen servicios más económicos?

Si GuardDuty se te escapa un poco por coste o necesitas mantener la seguridad con una capacidad más básica, puedes optar por otros servicios proporcionados por Amazon. A continuación te dejamos algunos de ellos:

  • Amazon Inspector: servicio de análisis de vulnerabilidades automatizado y continuo para EC2, funciones lambda e imágenes de contenedores. Puedes consultar el precio aquí.

  • AWS Config: es un servicio que evalúa los recursos y cambios de configuración de los mismos basándose en una serie de reglas definidas por un administrador. Para lo que ofrece, el coste es bastante bajo, puedes consultar aquí el precio.

  • AWS Systems Manager Automation: es un servicio relativo a AWS Systems Manager, que permite desplegar soluciones y runbooks para gestionar ciertos eventos de mantenimiento en servicios como EC2, RDS y S3 entre otros. El coste del servicio va asociado a la cantidad y tiempo de los pasos (acciones iniciadas) realizadas sobre los distintos recursos. Puedes consultar el precio aquí.
    Si aun así, no te animas por precio y quieres algo gratis para ir probando, te dejamos a continuación algunos servicios gratuitos con los que ir dando tus primeros pasos en cuanto a la securización de tus cuentas:

  • AWS Application Manager: relativo a AWS Systems Manager, este servicio ayuda a la detección precoz de problemas en aplicaciones desplegadas en clusters de servicios de AWS (EKS y ECS). Entre las funcionalidades más importante que presenta, destacan las siguientes:

    • Información sobre el estado de salud de los clusters monitorizados.
    • Alarmas en Amazon CloudWatch.
    • Logs obtenidos desde CloudTrail y CloudWatch Logs.
  • AWS CloudTrail: es un servicio que registra automáticamente todos los eventos generados en la cuenta de AWS. Se pueden capturar los eventos de este servicio con Amazon Eventbridge e integrarlos con servicios como Lambda para generar una acción sobre un evento. En este enlace puedes encontrar un tutorial para realizar la integración de lambda con EventBridge.

  • AWS IAM Access Analyzer: este servicio te ayuda a identificar los recursos de tu organización y tus cuentas (como recursos de S3 y roles de IAM), que tengas compartidos de manera externa. Esto permite identificar acceso de origen malicioso que suponga un riesgo para la seguridad para tus datos. Por cada recurso que se comparta fuera de tu cuenta, IAM Access Analyzer genera un hallazgo donde recoge información sobre el acceso externo a dicho recurso. Un administrador puede revisar esta información para determinar si el acceso al recurso constituye un riesgo de seguridad.

Conclusiones

Si has llegado hasta aquí, seguro que se te han ocurrido un par de casos de uso en los que sería interesante usar GuardDuty en tus cuentas y estás deseando probarlo. Si no, siempre puedes empezar probando alguno de los servicios gratuitos que ofrece Amazon para definir la estrategia de seguridad de tus cuentas.

Si el tema te interesa, te recomendamos que eches un ojo al post ¿Es AWS seguro? de nuestro compañero Miguel Ángel Muñoz sin duda te va a resultar interesante.

Cuéntanos qué te parece.

Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.