Verificando la Integridad de Logs CloudTrail con AWS CLI

portada

Objetivos

Verificar la integridad de los files generados por el servicio AWS Cloudtrail utilizando AWS CLI.

Intro

AWS nos ofrece el servicio CloudTrail para tener la posibilidad de llevar un registro de todas las API Calls que se hagan sobre una determinada cuenta, en otras palabras, con este tipo de herramientas podemos saber por ejemplo “que usuario borró un determinado recurso en el cloud”, tambien es una herramienta muy usada en auditorias sobre cuentas AWS, la información recolectada por CloudTrail es almacenada en un Bucket S3 asi como tambien los digests-files, CloudTrail utiliza toda esta información para realizar las validaciones.

Al tener esta información en un bucket, si la configuracion de policies, ACLs, usuarios etc, no esta ordenada o bien configurada, la información de estos buckets podria llegar a ser manipulada por usuarios o procesos no autorizados, bajo este escenario, el subcomando cloudtrail de AWS CLI nos ofrece una opción bastante copada: validate-logs, vamos a verla en acción.

Pre-requisitos:

  • Conocimiento básico del uso de la consola y la CLI de AWS.

Setup del Trail

En primer lugar levantamos un Trail, indicamos el bucket donde queremos que vaya toda la info logueada y luego nos aseguramos que la opcion Enable log file validation este prendida:

create

yes

Cloudtrail + AWS CLI en Acción

Ahora vamos a nuestra shell (donde previamente nos logueamos con las keys de usuario) y verificamos la creación del trail con:

$ aws cloudtrail describe-trails

describe

Ahora vamos a tirar el validate-logs apuntando al arn de nuestro trail de la siguiente manera:

$ aws cloudtrail validate-logs --trail-arn REEMPLAZAR --start-time START-TIME

validate

Como vemos en la imagen, al estar escribiendo este post sobre buckets de prueba solamente obtenemos una comprobación de digest-file y es positiva.

Una comprobación de un trail usado en la vida real tiene esta facha:

prod

Como vemos, el resultado que nos tira validate-logs es que de 54 digest-files solamente hay 47 validos y el resto, bueno, algo extraño pasó motivo por el cual el comando no pudo validar esos registros.

El comando validate-logs nos sirve para:

  • Detectar la modificación o eliminación de logs-files en CloudTrail.
  • Detectar la modificación o eliminación de digest-files en Cloudtrail.

Para mas información acerca de como leer o interpretar los resultados de los digest-files o su estructura, les dejo un par de enlaces en la siguiente sección.

Fuentes

Estructura Digest-Files

Info sobre el uso y mas opciones del comando

Uso de Cloudtrail con AWS CLI

Invitame un CaféInvitame un Café