• 02/05/2024 15:02

Vulnerabilidad «confused deputy» detectada en AWS AppSync

Tiempo estimado de lectura: 1 minutos, 59 segundos

La vulnerabilidad «confused deputy» en AWS AppSync, descubierta por el equipo de investigación de Datadog Security Labs, permitía abusar de la lógica del servicio para asumir roles IAM en otras cuentas de AWS, pudiendo así un atacante pivotar a otra organización y acceder a sus recursos.

AWS AppSync es un servicio que proporciona a los desarrolladores una interfaz de GraphQL escalable para que puedan combinar datos de múltiples fuentes, como por ejemplo Amazon DynamoDB, AWS Lambda, y APIs HTTP.

Además de hacer uso de fuentes de datos, AWS AppSync interactúa con el resto de servicios mediante «resolvers», es decir, funciones que se usan para recibir la información, y mediante llamadas directas a las API en casos en los que un servicio no disponga de un resolver definido.

Para autorizar las acciones de AppSync los desarrolladores tienen que crear un rol con los permisos IAM necesarios (o, en su defecto, AppSync lo puede crear de manera automática por sí solo), y a su vez este rol tendrá una política de confianza que pemitirá a AppSync asumir dicho rol. El problema viene dado en este caso, como veremos más adelante, por cómo se realiza la validación del ARN del rol.

En un principio, AWS protege a sus clientes frente a ataques del tipo «confused deputy» incluyendo y validando el ARN de los roles. En el caso de AppSync, durante la creación de una fuente de datos la API validará el ARN para determinar si corresponde a la misma cuenta que hace la solicitud y, en caso contrario, mostrará un error:

Fuente de la imagen: Dadadog Security Labs
Error mostrado por la API de AWS en caso de un ARN no válido

Los investigadores detectaron que el origen de la vulnerabilidad «confused deputy» en AppSync se encuentra en la posibilidad de evadir la validación del ARN del rol haciendo uso de mayúsculas y minúsculas en lugares donde no corresponde.

Mientras que el servicio espera que el valor del ARN vaya junto a la clave «serviceRoleArn», los investigadores enviaron el ARN de una segunda cuenta como valor de «servicerolearn», omitiendo las mayúsculas.

Fuente de la imagen: Datadog Security Labs
Petición hecha omitiendo el uso de mayúsculas (servicerolearn)Fuente de la imagen: Datadog Security Labs
Respuesta tras omitir el uso de mayúsculas (servicerolearn)

Al evadir la validación del ARN los investigadores fueron capaces de crear fuentes de información de AppSync asociadas a la segunda cuentas de AWS utilizada durante la PoC, pudiendo acceder a sus datos.

No obstante, explotar esta vulnerabilidad implica que el atacante debe conocer el ARN del rol asociado con AppSync y los recursos en cuestión, lo cual complica el ataque. Esto conllevaría que el usuario que quiera comprometer la cuenta de otra organización se vea obligado a realizar ataques de fuerza bruta, lo que daría lugar a un elevado número de eventos resultantes en «AccessDenied» con la fuente «appsync.amazonaws.com», lo que sería un indicativo a la hora de detectar ataques basados en la vulnerabilidad «confused deputy» en AWS AppSync.

A pesar de que AWS solventó la vulnerabilidad pocos días después de recibir el comunicado por parte del equipo de investigación, no se debe descartar de cara a futuro la aparición de nuevas vulnerabilidades de esta naturaleza, por lo que desde Hispasec recomendamos que se revisen regularmente los permisos dados a los usuarios y recursos de infraestructuras en la nube, partiendo siempre del principio de aplicar la menor cantidad de privilegios posible.

Más información:

A Confused Deputy Vulnerability in AWS AppSync

Documentación de AWS AppSync

La entrada Vulnerabilidad «confused deputy» detectada en AWS AppSync se publicó primero en Una al Día.


Artículo de Raquel Gálvez publicado en https://unaaldia.hispasec.com/2022/12/vulnerabilidad-confused-deputy-aws-appsync.html?utm_source=rss&utm_medium=rss&utm_campaign=vulnerabilidad-confused-deputy-aws-appsync