Una vulnerabilidad que expuso a millones de clientes de aerolíneas a posibles secuestros de cuentas ha puesto de relieve los importantes riesgos que enfrentan las organizaciones debido a procesos de autenticación OAuth mal configurados. La vulnerabilidad involucró a un importante proveedor de servicios de viajes en línea para hoteles y alquiler de automóviles. Muchas aerolíneas han integrado este servicio en sus sitios web, permitiendo a los clientes usar sus puntos de aerolínea para reservar no solo vuelos, sino también hoteles y autos de alquiler en un proceso continuo.
Fallo en la Implementación de OAuth
Investigadores de Salt Security, buscando ejemplos reales de ataques a la cadena de suministro de API, tropezaron con una vulnerabilidad en el proceso de la compañía de viajes para autenticar a los usuarios que buscan acceder a sus servicios después de realizar una reserva inicial de aerolínea. El fallo, que la compañía de servicios de viajes ya ha corregido, básicamente dio a los atacantes una forma de redirigir las credenciales OAuth de un usuario a un servidor de su elección.
Las credenciales habrían permitido a los atacantes obtener un token de sesión válido del sitio web de una aerolínea y usarlo para iniciar sesión en los sistemas de la compañía de viajes como la víctima y reservar hoteles y alquileres de automóviles usando puntos de fidelidad de la aerolínea. La vulnerabilidad descubierta permitió a los atacantes secuestrar cuentas de víctimas con un solo clic, escribió el investigador de Salt Security, Amit Elbirt, en una publicación de blog esta semana, sin revelar la identidad de la compañía de servicios de viajes.
Si bien la adquisición habría ocurrido dentro del servicio del proveedor de viajes, habría dado a un atacante acceso completo a la información almacenada de una víctima en el sitio de la compañía aérea, incluyendo información de identificación personal, millas y datos de recompensas. «Este riesgo crítico destaca las vulnerabilidades en las integraciones de terceros y la importancia de protocolos de seguridad estrictos para proteger a los usuarios del acceso y la manipulación no autorizados de la cuenta», escribió Elbirt.
OAuth (Open Authentication) es un protocolo de seguridad que permite a los usuarios conceder a sitios web o aplicaciones acceso a su información en otros sitios sin compartir sus contraseñas. Un ejemplo familiar es iniciar sesión en un sitio web usando Google o Facebook (haciendo clic en los enlaces «Iniciar sesión con Google» o «Iniciar sesión con Facebook»). En el caso de la compañía de servicios de viajes, OAuth permitió a los usuarios iniciar sesión en el sitio de la compañía usando sus credenciales de aerolínea.
Según explica Salt Security, cuando un usuario hace clic en el botón de inicio de sesión para acceder al sitio de la compañía de viajes, se le redirige automáticamente a la página de inicio de sesión de la compañía aérea requerida para la autenticación. Una vez completada, el sitio de la aerolínea envía un código de autorización de vuelta al sitio de la compañía de viajes, lo que inicia un proceso mediante el cual el sitio de viajes recibe un token de acceso. El sitio de viajes utiliza entonces el token para solicitar datos del usuario del sitio de la aerolínea.
Un Fallo en la Verificación
Lo que Salt Security descubrió fue una debilidad en el flujo de autenticación de la compañía de viajes que les dio una forma de redirigir el equivalente a las credenciales de inicio de sesión de un usuario a su propio servidor. «El problema específico aquí es que la compañía de viajes no verificó correctamente que las credenciales de autenticación sensibles se enviaran a un dominio válido», dice Yaniv Balmas, vicepresidente de investigación de Salt Security. «Al manipular este fallo, pudimos obligar a la compañía de viajes a enviarnos estas credenciales en lugar de a la compañía aérea, lo que nos permite, o a un actor malicioso que abuse de esto, tomar el control de la cuenta de usuario de la aerolínea y realizar cualquier acción en su nombre».
Para explotar el fallo, un atacante habría enviado un enlace malicioso, que parecería ser un enlace de aerolínea válido, a través de correo electrónico o mensaje de texto a los usuarios de los sitios de aerolíneas integrados con el proveedor de servicios de viajes. Según Salt Security, una vez que un usuario hace clic en el enlace y se autentica correctamente en un servicio oficial de la aerolínea, el atacante obtiene acceso completo a la cuenta del usuario dentro del sistema de viajes. «Desde la perspectiva de la víctima, sería casi imposible entender que el enlace es malicioso, ya que genuinamente pertenece a la aerolínea, y no hay una manera fácil de entender su naturaleza maliciosa sin una comprensión a nivel de experto de OAuth y los flujos de autenticación», dice.
Problema Común
La vulnerabilidad con la compañía de viajes no identificada es más común de lo que uno podría suponer, dice Balmas. En 2023, por ejemplo, Salt Security descubrió una vulnerabilidad similar en el proceso de implementación de OAuth de Booking.com que dio a los atacantes una forma de tomar el control de las cuentas de usuario cuando usaban sus cuentas de Facebook para iniciar sesión en el sitio de reservas de hotel. En otra ocasión, investigadores de la compañía encontraron fallos de implementación de OAuth que involucraban a Grammarly, Vidio y el sitio indonesio de comercio electrónico Bukalapak que dieron a los atacantes acceso potencial a cientos de millones de cuentas de usuario en múltiples sitios web.
«El mayor problema aquí es que desde la perspectiva de la aerolínea, no hay absolutamente ninguna visibilidad en caso de que ocurra un ataque, y de hecho, una solicitud de ataque se verá completamente idéntica a una legítima», señala Balmas. «Esto básicamente significa que el tercero, la compañía de viajes en este caso, es el responsable de la seguridad y la protección de sus usuarios clientes». A menudo, añade, no hay certeza de que un tercero se adhiera a los mismos estándares de seguridad que su cliente.