Validando Seguridad en AWS Cloudtrail.
Verificando la Integridad de Logs CloudTrail con AWS CLI
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:
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
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
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:
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.