Proponen soluciones para el secuestro de inicio de sesión único

23/08/2018

El inicio de sesión único (single sing-on, o SSO) permite a los usuarios evitar la creación y administración de cuentas en diferentes servicios, pero ¿qué sucede cuando esa cuenta principal proveedora de identidad se ve comprometida? ¿Pueden los usuarios remediar el secuestro de esa cuenta y otras cuentas vinculadas a ella?

Según un grupo de investigadores de la Universidad de Illinois en Chicago, existe una necesidad apremiante de una opción de firma única que permita a los usuarios iniciar una reacción en cadena de las operaciones de acceso y revocación que se extienden a través de todas las cuentas asociadas.

Acerca de SSO

El inicio de sesión único es una tecnología útil que permite a los usuarios que han creado una cuenta con un proveedor de identidad (IdP) usar esa misma cuenta para iniciar sesión en otros servicios web o aplicaciones móviles (las partes confiables, o RP).

Facebook es el proveedor de identidad más famoso, pero hay otros como Google, LinkedIn, Microsoft o Twitter.

Lo que hicieron los investigadores

Los investigadores primero querían ver qué tan ampliamente se usa SSO. Obtuvieron el 1 millón de sitios web más visitados según Alexa para ver si ofrecen soporte de SSO para 65 IdP que admiten los estándares OAuth 2.0 y / o OpenID Connect. De los 912,206 que se procesaron, 57,555 (6.3%) dominios lo ofrecieron. 

Luego, querían evaluar las implicaciones de un compromiso de la cuenta IdP, que puede ocurrir a través de simple phishing, detección de Wi-Fi (secuestro de cookies), etcétera. "Para determinar el nivel de acceso que tiene el atacante en el RP, evaluamos manualmente 29 sitios web de Alexa, 500 y 66 aplicaciones populares de iOS compatibles con Facebook SSO. Para cada sitio web, creamos una cuenta nueva usando SSO y agregamos cualquier información adicional que el servicio requería (por ejemplo, un número de teléfono). Después de completar la configuración de la cuenta, interactuamos con el servicio de manera habitual, incluido el envío de mensajes, la realización de compras o el comentario de artículos. Luego, finalizamos la sesión del sitio web ", explicaron los investigadores el procedimiento de prueba.

"En este punto, cambiamos los roles y consideramos lo que el atacante puede hacer. Comenzamos por inyectar la cookie de sesión secuestrada del usuario en una sesión limpia del navegador, que luego usamos para autenticar al IdP durante el flujo de SSO. A continuación, visitamos el RP donde el usuario tiene una cuenta y realizamos el procedimiento normal de "iniciar sesión con ⟨IdP⟩ '. Finalmente, interactuamos con el sitio web para determinar el nivel de acceso del atacante. Realizamos un experimento similar para cada aplicación móvil ".

¿Cómo afecta esto a los usuarios comprometidos?

¿El resultado? En la mayoría de los casos, el nivel de acceso del atacante al sitio web o la aplicación era idéntico al del usuario legítimo.

Y, además de esto, el ataque sigue siendo "invisible", ya que ninguno de los 95 RP informa a los usuarios sobre otros dispositivos o sesiones activas y solo diez de ellos permiten a los usuarios ver todas las sesiones activas.

Pero incluso si el atacante pierde el acceso a la cuenta IdP del usuario, los investigadores descubrieron que es posible para el atacante mantener el acceso a algunas cuentas RP reemplazando la dirección de correo electrónico y restableciendo la contraseña. "Como resultado, el atacante puede mantener el acceso a la cuenta RP del usuario utilizando el correo electrónico y la contraseña del atacante para iniciar sesión, mientras que el usuario podrá seguir accediendo a la cuenta RP a través de SSO", anotaron.

Otros ataques también son posibles:      

  • Ataques de enlace de cuenta (si el RP ofrece la opción de desvincular la cuenta de IdP)
  • Ataques de escalada de acceso IdP (el atacante que usa la cookie secuestrada puede restablecer la contraseña de Facebook del usuario a través de una laguna en el proceso de verificación)
  • Secuestro preventivo de cuenta (el atacante usa la cuenta IdP de la víctima para crear preventivamente una cuenta para la víctima en un RP).

Finalmente, está el problema adicional y muy serio de cómo solucionar un incidente. "Además de la ausencia de un mecanismo estandarizado para revocar el acceso del atacante a todas las cuentas RP, encontramos que para la mayoría de los RP no hay un curso de acción disponible que pueda bloquear al atacante", dijeron.

Soluciones para mitigar la amenaza de secuestro de cuenta de inicio de sesión único

Los investigadores han propuesto un protocolo para la revocación del acceso universal para mitigar la amenaza. Pero, hasta que se pueda implementar, proponen una extensión de retrocompatibilidad con OpenID Connect que agrega soporte para la revocación de autenticación universal.

"Para facilitar la implementación, nuestra extensión agrega un único punto final de devolución de llamada a cada RP y utiliza mensajes estándar de OpenID Connect y estructuras de datos", concluyó.

También compartieron sus hallazgos con los diversos IdP y RP, por lo que esperan implementar funcionalidades para abordar las diversas deficiencias descubiertas. Para empezar, Facebook ha solucionado el problema de exposición a las cookies que podría permitir a los atacantes secuestrar la cuenta de Facebook de los usuarios y utilizarla para iniciar sesión en una multitud de RP.

Artículos relacionados: