Vulnerabilidad en AWS CloudTrail mediante API no documentada
Vulnerabilidad en AWS CloudTrail mediante API no documentada

Vulnerabilidad en AWS CloudTrail mediante API no documentada

El pasado 17 de enero los investigadores del equipo Datadog Security descubrieron una llamada a una API no documentada que permitiría la evasión de CloudTrail. Esta vulnerabilidad se encuentra dentro del entorno de AWS, un proveedor cloud cuyos servicios suelen ser considerados relativamente seguros en cuanto al descubrimiento de vulnerabilidades directas.

Funcionamiento de la API no documentada

AWS CloudTrail permite a sus clientes mantener un registro de las acciones realizadas por usuarios, roles o servicios de la cuenta en la que el servicio se encuentra habilitado. Los investigadores detectaron una serie de peticiones a un servicio llamado «iamadmin», que difiere del de IAM debido al endpoint utilizado: «https://console.aws.amazon.com/iamv2/api/iamadmin».

La cabecera X-Amz-Target era inusualmente larga y hacía uso del servicio «AWSIdentityManagementAdminService». Los nombres de los métodos eran similares a otros del servicio IAM, pero no exactamente iguales. Los investigadores firmaron la petición con formato SigV4 para ejecutar el script preparado.

Detalles técnicos sobre la vulnerabilidad

Con esto pudieron confirmar que en el caso del método «ListMFADevicesForMultipleUsers» de la API «iamadmin», se trataba de un wrapper de «iam:ListMFADevices» que permitía especificar múltiples usuarios IAM para recibir resultados de una sola vez. Ninguna de sus acciones se vio reflejada en CloudTrail, independientemente de si hacían uso o no de los permisos necesarios.

Fueron capaces de obtener resultados de la API sin que esto se viese reflejado en el servicio de monitorización. Una llamada a la API «iam:ListMFADevices» sí se vio reflejada en CloudTrail. Los investigadores descubrieron 13 métodos de «iamadmin» y sus equivalentes métodos de IAM.

Riesgos asociados

La técnica permitía evadir GuardDuty en el caso de algunos resultados, como IAMUser/AnomalousBehavior. Ser capaz de evadir la monitorización de CloudTrail para obtener resultados sin que dichas llamadas queden registradas supone un alto riesgo para las empresas.

Corrección y mitigación

La vulnerabilidad ha quedado corregida actualmente y las llamadas al servicio «iamadmin» se registran correctamente en CloudTrail. Algunos métodos no proporcionaban la respuesta esperada debido a la necesidad de incluir permisos para ciertas llamadas, como por ejemplo «iamadmin:BatchGetRoleLastused», que necesita el permiso «iam:GetRole».