Actualice su iOS: Vulnerabilidad en Apple TouchID permite hackear cuentas de iCloud

La seguridad se ha convertido en el principal enfoque de las campañas de marketing para dispositivos Apple, aunque no debemos olvidar que ningún producto está completamente a salvo de algunas amenazas, mencionan expertos en pentest online. Un investigador ha revelado una falla que permitiría a los actores de amenazas obtener acceso no autorizado a una cuenta de iCloud, abusando de una característica para iniciar sesión vía TouchID.

El investigador Thijs Alkemade señala que los sistemas iOS 13 y macOS 10.15 incluyeron una función para iniciar sesión en los sitios de Apple usando TouchID o FaceID, siempre y cuando el dispositivo cuente con soporte de hardware para la lectura de datos biométricos. Esta característica funciona como autenticación multi factor, pues Apple se basa en el dispositivo utilizado y los registros biométricos del usuario para iniciar sesión; la función puede ser desactivada en cualquier momento.

El especialista en pentest online afirma que la vulnerabilidad está presente en cualquier dispositivo que use el inicio de sesión de AppleID, por lo que el alcance de un ataque potencial es significativo.

Inicio de sesión en dominios de Apple usando OAuth2

En iCloud, el inicio de sesión con OAuth2 se lleva a cabo con https://icloud.com, con el modo “web_message”. Esto funciona de la siguiente manera:

  • https://icloud.com incorpora un iframe dirigido a:

https://idmsa.apple.com/appleauth/auth/authorize/signin?client_id=d39ba9916b7251055b22c7f910e2ea796ee65e98b2ddecea8f5dde8d9d1a815d&redirect_uri=https%3A%2F%2Fwww.icloud.com&response_mode=web_message&response_type=code

  • El usuario inicia sesión dentro del iframe
  • Si la autenticación se realiza correctamente, el iframe publica un mensaje en la ventana principal con un código de concesión para el usuario utilizando window.parent.postMessage (<token>, “https://icloud.com”) en JavaScript
  • La página icloud.com utiliza grant_code para continuar el proceso de inicio de sesión

Dos de los parámetros son muy importantes en la URL del iframe:client_id y redirect_uri. El servidor idmsa.apple.com realiza un seguimiento de una lista de clientes OAuth2 registrados y los URI de redireccionamiento permitidos para cada cliente. En el caso del flujo web_message, el URI de redireccionamiento no se utiliza como un redireccionamiento real, sino que se usa como el origen de página requerido del mensaje publicado con el código de concesión (el segundo argumento para postMessage).

Cuando el usuario se autentica con TouchID, el iframe se maneja de manera diferente, pero la página externa sigue siendo la misma, menciona el experto en pentest online. En el caso de Safari, cuando se detecta una nueva página con una URL que coincide con la del escenario descrito, no se descarga la página, sino que se invoca el proceso AKAppSSOExtension.

Posteriormente se contacta el daemon AuthKit (akd) para manejar la autenticación biométrica y recuperar el código de concesión. Si el usuario es autenticado con éxito, Safari inyecta una respuesta falsa a la solicitud del iframe, que devuelve el mensaje de la misma forma que lo haría un sitio web normal. El daemon akd se comunica con una API en gsa.apple.com, enviando los detalles de la solicitud.

Al final se descubrió un error en la API gsa.apple.com; a pesar de que las URL se incluyen en los datos enviados por akd, no se verifica que la URL de redireccionamiento coincida con la ID del cliente, por lo que cualquier dominio que termine con apple.com, icloud.com o icloud.com.cn es permitido. Aunque esta parece normal, es necesario recordar que Apple cuenta con cientos, o incluso miles de dominios, por lo que los actores de amenazas pueden desplegar toda clase de ataques para redirigir a los usuarios a sitios inseguros y así obtener control sobre las cuentas de iCloud comprometidas.

Alkemade confirmó que Apple recibió el reporte y anunció la corrección de esta falla. La actualización ya está lista, por lo que sólo falta que los usuarios verifiquen que sus dispositivos cuentan con la más reciente versión del sistema operativo afectado.