Una de las grandes novedades que Apple presentó a nivel de software el año pasado fue el llamado 'Sign in with Apple', o en español, "iniciar sesión con Apple". Este es un sistema muy apreciado, qe nos permite iniciar sesión en apps sin revelar nuestras direcciones de correo usando unas falsas. Esta tenía una vulnerabilidad crítica.
La vulnerabilidad permitía a unos atacantes eludir la autentificación de sistema y robar cuentas de los usuarios en servicios específicos usando esta función. Esta ha sido parcheada, después de haberle pagado unos 100.000 dólares a un experto en ciberseguridad que dio el aviso sobre la falla.
Lanzada el año pasado en la WWDC, el 'Sign inf with Apple' prometía ser el nuevo sistema por excelencia para preservar nuestra privacidad al iniciar sesión en nuestras apps sin revelar nuestras cuentas de correo y exponiéndolas de forma potencial a apps maliciosas.
Una solución rápida
El responsable de identificar la vulnerabilidad fue Bhavuk Jain, un investigador y hacker oriundo de La India. En una entrevista con 'The Hacker News', Bhavuk Jain reveló que la vulnerabilidad residía en el sistema de inicio de sesión.
Más concretamente, en la forma en la que Apple validaba a un usuario del lado del cliente antes de iniciar una solicitud en los servidores de autenticación de Apple. Una vez se autentifica a un usuario a través del sistema, el servidor genera un JWT, es decir, un JSON Web Token que contiene información secreta que la app usa para confirmar la identidad del usuario que inicia sesión.
Bhavuk descubrió que aunque Apple pedía a los usuarios iniciar sesión en su cuenta de Apple, antes de iniciar la solicitud esta no estaba validando si la misma persona solicita el JWT en el siguiente paso desde el servidor.
Por lo tanto, la validación faltante en esa parte del proceso poddría haber permitido a un atacante el proporcionar una ID de Apple separada perteneciente a una víctima, engañando a los servidores de Apple para que se genere un JWT útil que sea válido para iniciar sesión con la identidad de la víctima.
Bhavuk explica que "podía solicitar JWT para cualquier ID de correo electrónico de Apple, y cuando verificaba la firma de esos tokens usando la clave de Apple, se mostraron como válidos. Se podían falsificar JWTs al vincular qualquier ID de correo electrónico".
Asegura que el impacto fue "bastante crítico, ya que podría haber permitido una toma de control completa de la cuenta. Muchos desarrolladores han integrado el sistema en sus apps, ya que es obliatorio para las apps que admiten otros inicios de sesión con redes sociales".
100.000 dólares de recompensa
Bhavuk, en vez de aprovecharse del problema, informó del mismo a Apple. El equipo de seguridad de la firma de Cupertino arregló la vulnerabilidad hace muy poco, un mes después de ser informados.
Además de pagar la recompensa al investigador, la firma también confirmó que investigó los registros de sus servidores. Afortunadamente, la falla no fue explotada para comprometer ninguna cuenta, por lo que se ha evitado un potencial abuso de la falla.