Vulnerabilidad crítica Zero-Day en la funcionalidad «Sign in with Apple» podría permitir acceder a las cuentas de usuarios


Recientemente fue descubierta una vulnerabilidad crítica Zero-Day en el servicio de autenticación de Apple “Sign in with Apple”, esta función permite a usuarios utilizar su cuenta de Apple para registrarse en los servicios de terceros.La explotación exitosa de esta vulnerabilidad permitiría a un atacante remoto acceder a cuentas de usuarios omitiendo la autenticación.

¿Cómo funciona el servicio “Sign in with Apple”?

Detalles Técnicos
Este servicio funciona con dos formas de autenticación: utilizando JWT (JSON Web Token) o un código generado por el servidor de Apple para crear un JWT posteriormente. Este token contiene informaciónconfidencial utilizada para confirmar la identidad del usuario que desea iniciarsesión dentro de la aplicación o sitio web.

A continuación se detalla el proceso de creación y validación del token JWT:

Primeramente se realiza la petición de autorización al servidor de Apple, una vez autorizada, el usuario envía la información sobre su email ID de Apple. El usuario puede elegir si desea ocultar o no su ID, en caso de ocultarlo se genera un ID único para el usuario y así retransmitir la información.

Luego de esto, Apple genera el token JWT con el email ID a ser utilizado por la aplicación de terceros y seguidamente realizar su validación en el servidor de autenticación utilizando la clave pública de Apple, una vez es verificado correctamente se inicia sesión utilizando los datos del JWT.

La vulnerabilidad se encuentra en el proceso de creación del JSON Web Token, ya que el servidor de Apple permite solicitar un token para cualquier email ID de Apple y cuando este token se valida con la clave pública de Apple, este muestra como ha sido el proceso de validación, lo que podría permitir a un atacante remoto solicitar un JWT asociándolo a cualquier email ID para seguidamente obtener acceso a la cuenta de la víctima, en caso de no contar con otra medida de seguridad para verificar la identidad del usuario.

¿Cómo se podría explotar esta vulnerabilidad?

1. El atacante realiza una petición POST al servicio de autenticación de Apple utilizando el correo de la víctima:

2. El servidor de Apple genera un JSON Web Token válido para el correo utilizado:

Con esto, un atacante podría omitir la autenticación y obtener acceso completo a la cuenta asociada a dicho correo electrónico.

Algunas aplicaciones que cuentan integrada la función “Sign in with Apple” y podrían ser vulnerables son: Dropbox, Spotify, Airbnb entre otras.

Recomendaciones:

  • Esta vulnerabilidad aún no ha sido abordada, como medida de mitigación, se recomienda:
  • Activar la autenticación de dos factores en la cuenta Apple ID siguiendo estos pasos:
    • En iOS 10.3 o posterior:
    • Ir a Configuración > [tu nombre] > Contraseña y Seguridad,
    • Dirigirse a Activar autenticación de dos factores,
    • Continuar y
    • Agregar un número de teléfono de confianza.
  • En macOS Catalina:
    • Ir a menú Apple > Preferencias del Sistema > Apple ID,
    • Clic en Contraseña y seguridad,
    • Clic en Activar autenticación de dos factores.
  • Activar la autenticación de doble factor en los distintos servicios que estén asociados a la funcionalidad “Sign in with Apple”.

Referencias:

Compartir: