How do I view CloudTrail logs?

Visualiza y Analiza Logs de CloudTrail

hace 6 años

Valoración: 4.73 (7645 votos)

Gestionar un entorno AWS seguro y eficiente requiere una supervisión constante de cómo se accede y se modifican tus recursos en la nube. AWS CloudTrail proporciona un registro detallado de las llamadas API realizadas dentro de tu cuenta, registrando las actividades de los usuarios y los cambios en los recursos. Revisar los logs de CloudTrail debería ser una rutina regular para cualquier administrador de AWS que busque monitorear la actividad de la cuenta y cumplir con las políticas de seguridad.

Índice de Contenido

Accediendo a tus Logs de CloudTrail en S3

El primer paso para visualizar y analizar tus logs de CloudTrail es acceder al bucket de Amazon S3 donde se almacenan. CloudTrail está configurado para entregar archivos de log a un bucket de S3 que especificas durante la configuración del servicio. Estos archivos de log están organizados de forma jerárquica, generalmente por región, cuenta de AWS y fecha.

What are events in CloudTrail?
An event in CloudTrail is the record of an activity in an AWS account. This activity can be an action taken by an IAM identity, or service that is monitorable by CloudTrail.

Para acceder a tus logs, sigue estos pasos:

  1. Inicia sesión en la Consola de Administración de AWS.
  2. Navega al servicio S3.
  3. Localiza el bucket de S3 que configuraste para CloudTrail. El nombre del bucket debería ser reconocible si seguiste las mejores prácticas de nomenclatura.
  4. Dentro del bucket, navega por la estructura de carpetas. Generalmente encontrarás carpetas organizadas por región (ej., 'us-east-1'), ID de cuenta de AWS y luego por fecha (año, mes, día).
  5. Dentro de las carpetas de fecha, encontrarás archivos .json.gz. Estos son los archivos de log comprimidos que contienen los eventos de API registrados por CloudTrail.

Los nombres de los archivos de log de CloudTrail incluyen la región de AWS y una marca de tiempo que indica cuándo se creó el log. Esta estructura facilita la búsqueda y descarga de logs para periodos de tiempo específicos o regiones.

Descargando los Archivos de Log para Análisis

Una vez que has localizado los archivos de log en S3, el siguiente paso es descargarlos para su análisis. Puedes descargar los archivos directamente desde la Consola de S3 o utilizando la AWS Command Line Interface (CLI). La descarga a través de la Consola es sencilla para análisis puntuales, mientras que la CLI es más eficiente para automatizar descargas o procesar grandes volúmenes de logs.

Descarga desde la Consola de S3:

  1. Navega hasta los archivos .json.gz que deseas analizar en la Consola de S3.
  2. Selecciona los archivos que necesitas. Puedes seleccionar múltiples archivos si deseas analizar un rango de tiempo más amplio.
  3. Haz clic en el botón 'Descargar'. Los archivos se descargarán a tu máquina local.

Descarga usando la AWS CLI:

La AWS CLI ofrece comandos potentes para interactuar con S3, incluyendo la descarga de archivos. El comando aws s3 cp es ideal para copiar archivos de S3 a tu sistema local.

aws s3 cp s3://nombre-de-tu-bucket/ruta/a/los/logs /ruta/local/donde/guardar --recursive 

Reemplaza s3://nombre-de-tu-bucket/ruta/a/los/logs con la ruta S3 completa a tus logs de CloudTrail y /ruta/local/donde/guardar con la ruta en tu sistema local donde deseas guardar los archivos descargados. La opción --recursive es útil para descargar directorios enteros de logs.

Es importante ser selectivo con los rangos de fechas al descargar logs para evitar descargar cantidades excesivamente grandes de datos, especialmente si estás trabajando con periodos extensos o cuentas con alta actividad.

Analizando el Contenido de los Logs de CloudTrail

Los archivos de log de CloudTrail están en formato JSON y comprimidos con gzip. Antes de poder analizarlos, necesitarás descomprimirlos y luego procesar el JSON. El contenido JSON puede ser complejo de leer directamente como texto sin formato, por lo que utilizar herramientas de formateo o procesamiento JSON facilita enormemente la tarea.

Descompresión de los archivos:

Puedes descomprimir los archivos .json.gz utilizando herramientas estándar de descompresión como gzip en Linux/macOS o 7-Zip en Windows. Por ejemplo, en Linux/macOS, puedes usar el comando:

gzip -d archivo.json.gz 

Esto creará un archivo archivo.json descomprimido.

Herramientas para el análisis JSON:

  • Editores de texto con formateo JSON: Editores de texto como Visual Studio Code, Sublime Text o Atom con extensiones de formateo JSON pueden hacer que los archivos JSON sean más legibles al aplicar sangría y resaltado de sintaxis.
  • Herramientas de línea de comandos JSON: Herramientas como jq (para línea de comandos en Linux/macOS) son extremadamente poderosas para filtrar, consultar y transformar datos JSON directamente desde la terminal.
  • Procesadores de logs centralizados: Para análisis más avanzados y a gran escala, considera cargar los logs en herramientas como Logstash, Amazon Athena o incluso servicios SIEM (Security Information and Event Management). Athena permite consultar los logs de S3 directamente usando SQL, lo que es muy eficiente para análisis ad-hoc y reportes.

Identificando Actividades Clave en los Logs

Dentro de cada evento de log en CloudTrail, hay campos clave que te proporcionarán información valiosa sobre las actividades en tu cuenta de AWS. Dos de los campos más importantes son `eventName` y `userIdentity`.

`eventName` (Nombre del Evento): Este campo registra la acción API que se realizó. Ejemplos comunes incluyen:

  • RunInstances: Lanzamiento de instancias EC2.
  • CreateBucket: Creación de buckets S3.
  • DeleteBucket: Eliminación de buckets S3.
  • AttachRolePolicy: Adición de políticas a roles IAM.
  • CreateUser: Creación de usuarios IAM.
  • ModifyNetworkInterfaceAttribute: Modificación de atributos de interfaces de red.

Al escanear el campo eventName, puedes identificar rápidamente qué tipos de acciones se están realizando en tu entorno de AWS. Filtrar los logs por nombres de eventos específicos te permite enfocarte en áreas particulares de interés, como cambios en la seguridad, creación de recursos o actividades de eliminación.

`userIdentity` (Identidad del Usuario): Este campo contiene información sobre la identidad que realizó la llamada API. Incluye el ARN (Amazon Resource Name) del usuario, rol o servicio que hizo la solicitud. El ARN es crucial para determinar qué cuenta de usuario o rol fue responsable de acciones específicas.

El campo userIdentity puede contener diferentes tipos de identidades, incluyendo:

  • Usuario IAM: Identifica a un usuario IAM específico dentro de tu cuenta.
  • Rol IAM: Indica que la acción fue realizada por un rol IAM asumido por un usuario o servicio.
  • Cuenta raíz de AWS: Se refiere a acciones realizadas utilizando las credenciales de la cuenta raíz (generalmente desaconsejado por motivos de seguridad).
  • Servicio de AWS: Indica que la acción fue realizada por un servicio de AWS en tu nombre.

Documentar los ARNs y cruzarlos con tus registros de usuarios y roles de IAM te permitirá traducir los ARNs a nombres de usuario reales y comprender mejor quién está haciendo qué en tu entorno.

Filtrado y Consulta Avanzada de Logs

Para un análisis más profundo, es fundamental filtrar y consultar los logs de CloudTrail para enfocarse en eventos, usuarios o recursos específicos. Puedes utilizar diversas herramientas y técnicas para lograr esto.

Filtrado con herramientas de línea de comandos:

Herramientas como grep (en Linux/macOS) o findstr (en Windows) son útiles para filtrar archivos de texto basados en patrones. Después de descomprimir los archivos JSON, puedes usarlas para buscar líneas que contengan información específica.

Ejemplo usando grep para buscar eventos DeleteBucket:

grep '"eventName": "DeleteBucket"' archivo.json 

Uso de `jq` para filtrado y consulta JSON:

jq es una herramienta de línea de comandos diseñada específicamente para procesar JSON. Permite realizar consultas complejas y filtrar datos JSON de manera eficiente. Por ejemplo, para extraer todos los nombres de eventos de un archivo JSON:

jq '.Records[].eventName' archivo.json 

Para filtrar eventos de un usuario específico (asumiendo que conoces el ARN del usuario):

jq '.Records[] | select(.userIdentity.arn == "arn:aws:iam::123456789012:user/NombreUsuario")' archivo.json 

Consultas con Amazon Athena:

Amazon Athena es un servicio de consultas interactivo que te permite analizar datos directamente en S3 usando SQL estándar. Puedes crear una tabla de Athena que apunte a tu bucket de logs de CloudTrail y luego ejecutar consultas SQL para analizar los datos.

Athena es ideal para análisis complejos, generar reportes y visualizar tendencias a partir de grandes volúmenes de logs. Puedes realizar consultas para identificar los eventos más frecuentes, la actividad por usuario, o buscar patrones específicos en un periodo de tiempo.

Visualización de Datos para Detectar Tendencias

La visualización de datos es una técnica poderosa para identificar tendencias y anomalías en los logs de CloudTrail. Transformar los datos de log en gráficos y dashboards facilita la detección de patrones inusuales que podrían pasar desapercibidos en el texto sin formato.

Tipos de visualizaciones útiles:

  • Gráficos de barras: Muestran la frecuencia de diferentes eventos API a lo largo del tiempo o por usuario. Pueden revelar picos repentinos en la actividad o comportamientos inusuales de usuarios específicos.
  • Gráficos de líneas: Útiles para visualizar la tendencia de un tipo de evento específico a lo largo del tiempo. Pueden mostrar aumentos o disminuciones graduales en ciertas actividades.
  • Dashboards: Paneles personalizados que combinan múltiples visualizaciones y métricas clave para ofrecer una vista consolidada del estado de la seguridad y actividad de tu cuenta.

Herramientas como Amazon QuickSight, Tableau o Grafana pueden conectarse a los datos de CloudTrail (ya sea directamente desde S3 mediante Athena, o después de procesarlos con otras herramientas) para crear visualizaciones interactivas y dashboards.

Identificando Actividades Sospechosas, Erróneas o Costosas

El objetivo final del análisis de logs de CloudTrail es identificar actividades que puedan ser problemáticas. Esto puede incluir:

  • Actividades sospechosas: Acciones no autorizadas, intentos de escalada de privilegios, acceso a recursos sensibles fuera de horario laboral, o patrones de actividad que se desvían del comportamiento normal.
  • Actividades erróneas: Eliminaciones accidentales de recursos importantes (buckets S3, instancias EC2), configuraciones incorrectas de políticas de IAM, o errores en llamadas API.
  • Actividades costosas: Lanzamiento excesivo de recursos costosos (instancias EC2 grandes, almacenamiento), o patrones de uso ineficientes que generan gastos innecesarios.

Al analizar los logs, busca patrones inusuales, errores frecuentes, o acciones que no se alineen con las políticas de seguridad y las prácticas recomendadas. Realiza un seguimiento con los usuarios involucrados para confirmar si las actividades fueron intencionales y legítimas. Investiga cualquier anomalía para determinar su causa raíz y tomar medidas correctivas.

Archivado y Rotación de Logs

Los logs de CloudTrail pueden acumularse rápidamente, especialmente en entornos con alta actividad. Es importante tener un plan para el archivado y la rotación de logs para facilitar el análisis continuo y gestionar los costos de almacenamiento.

Estrategias de archivado y rotación:

  • Rotación regular: Mantén un conjunto reciente de logs (ej., los últimos 30-90 días) disponibles para análisis más frecuente. Los logs más antiguos pueden ser archivados para cumplimiento normativo o análisis forense menos frecuente.
  • Archivado a S3 Glacier:Amazon S3 Glacier es un servicio de almacenamiento de bajo costo diseñado para el archivado a largo plazo. Puedes configurar políticas de ciclo de vida en S3 para mover automáticamente los logs de CloudTrail a Glacier después de un periodo de tiempo determinado.
  • Retención de logs: Define políticas de retención de logs basadas en tus requisitos de cumplimiento y seguridad. Algunas regulaciones pueden requerir retener los logs durante periodos específicos (ej., 1 año, 7 años).

Comandos AWS CLI Útiles para CloudTrail

La AWS CLI proporciona comandos poderosos para interactuar con CloudTrail y analizar logs. Aquí hay algunos ejemplos útiles:

Listar archivos de log de CloudTrail en un bucket S3:

aws s3 ls s3://nombre-de-tu-bucket/ruta/a/los/logs/ 

Copiar archivos de log de S3 a la máquina local:

aws s3 cp s3://nombre-de-tu-bucket/ruta/a/los/logs /ruta/local/donde/guardar --recursive 

Extraer el archivo de log descargado (descomprimir .gz):

gzip -d archivo.json.gz 

Filtrar logs para un nombre de evento específico (usando `jq`):

aws s3 cp s3://nombre-de-tu-bucket/ruta/a/un/log.json.gz - | gunzip | jq '.Records[] | select(.eventName == "RunInstances")' 

Filtrar logs para un ARN de usuario específico (usando `jq`):

aws s3 cp s3://nombre-de-tu-bucket/ruta/a/un/log.json.gz - | gunzip | jq '.Records[] | select(.userIdentity.arn == "arn:aws:iam::123456789012:user/NombreUsuario")' 

Obtener el recuento de eventos por usuario (usando `jq`):

aws s3 cp s3://nombre-de-tu-bucket/ruta/a/los/logs - | gunzip | jq -r '.Records[] | .userIdentity.arn' | sort | uniq -c | sort -nr 

Archivar logs de más de 60 días a Glacier (usando políticas de ciclo de vida de S3 - configuración en la Consola de S3):

La configuración del archivado a Glacier se realiza mediante las políticas de ciclo de vida de S3, que se configuran a través de la Consola de S3 o la AWS CLI. No hay un comando directo de la AWS CLI para archivar logs individuales a Glacier, sino que se configuran políticas que gestionan el ciclo de vida de los objetos en el bucket.

Conclusión: Convierte los Logs de CloudTrail en Inteligencia de Seguridad

Siguiendo las estrategias descritas en este artículo, ahora tienes un proceso sólido para auditar la actividad de los usuarios en tu cuenta de AWS utilizando los logs de CloudTrail. La capacidad de descargar archivos de log, analizar los datos JSON, filtrar por atributos clave y visualizar patrones de actividad te brinda una visibilidad significativa sobre el uso de la cuenta. Aplicar estas técnicas de forma regular aporta un valor tremendo a la seguridad de tu entorno de AWS.

Con un análisis continuo de logs, puedes lograr una monitorización más proactiva y matizada del gran volumen de llamadas API que se realizan diariamente. Rastrear errores hasta las causas raíz más rápidamente, optimizar el consumo de recursos de AWS y aplicar políticas de mínimo privilegio para los usuarios mediante una auditoría cuidadosa son beneficios clave. Considera la posibilidad de aprovechar la automatización y la orquestación para ejecutar revisiones programadas de logs y alertas sobre tipos de eventos críticos.

CloudTrail se integra profundamente con otros servicios de AWS, por lo que combina el análisis de logs con herramientas como CloudWatch Metrics y Dashboards, Config Rules and Remediation y Security Hub para una gobernanza robusta de la cuenta. A medida que madura tu uso de la nube, asegúrate de que los logs de CloudTrail se incorporen a soluciones de almacenamiento y análisis a largo plazo como S3 Glacier, Athena y QuickSight.

Ahora que comprendes cómo extraer información significativa de la actividad de CloudTrail, haz del análisis de logs un pilar de tu estrategia de seguridad en la nube. Una auditoría constante te permite utilizar AWS con confianza y seguridad. Aplica lo que has aprendido para reforzar el control sobre tu uso, costes y cumplimiento normativo a medida que масштабируешь tu presencia en la nube.

Subir