A principios de este año, Apple solucionó una vulnerabilidad de seguridad en iOS y macOS que podría haber permitido que un atacante obtuviera acceso no autorizado a la cuenta de iCloud de un usuario.
descubierto en febrero por Thijs Alkemadeun especialista en seguridad de la firma de seguridad de TI Computest, la falla residía en la implementación de Apple de la función biométrica TouchID (o FaceID) que autentificaba a los usuarios para iniciar sesión en sitios web en Safari, específicamente aquellos que usan inicios de sesión de ID de Apple.
Después de que se informó el problema a Apple a través de su programa de divulgación responsable, el fabricante del iPhone abordó la vulnerabilidad en un actualización del lado del servidor.
Una falla de autenticación
La premisa central de la falla es la siguiente. Cuando los usuarios intentan iniciar sesión en un sitio web que requiere una ID de Apple, se muestra un mensaje para autenticar el inicio de sesión con Touch ID. Al hacerlo, se salta el paso de autenticación de dos factores, ya que aprovecha una combinación de factores para la identificación, como el dispositivo (algo que tiene) y la información biométrica (algo que usted es).
Compare esto durante los inicios de sesión en los dominios de Apple (p. ej., «icloud.com») de la forma habitual con un ID y una contraseña, en los que el sitio web incorpora un iframe que apunta al servidor de validación de inicio de sesión de Apple («https://idmsa.apple.com»). que maneja el proceso de autenticación.
Como se muestra en la demostración del video, la URL del iframe también contiene otros dos parámetros: un «client_id» que identifica el servicio (por ejemplo, iCloud) y un «redirect_uri» que tiene la URL a la que se redirigirá después de una verificación exitosa.
Pero en el caso de que un usuario sea validado usando TouchID, el iframe se maneja de manera diferente en el sentido de que se comunica con el daemon AuthKit (akd) para manejar la autenticación biométrica y recuperar un token («grant_code») que usa icloud.com página para continuar con el proceso de inicio de sesión.
Para ello, el demonio se comunica con una API en «gsa.apple.com», a la que envía los detalles de la solicitud y de la que recibe el token.
La falla de seguridad descubierta por Computest reside en la API gsa.apple.com antes mencionada, que teóricamente hizo posible abusar de esos dominios para verificar la identificación de un cliente sin autenticación.
«Aunque se incluyeron client_id y redirect_uri en los datos que le envió akd, no verificó que el URI de redirección coincidiera con la ID del cliente», señaló Alkemade. «En cambio, solo había una lista blanca aplicada por AKAppSSOExtension en los dominios. Se permitieron todos los dominios que terminaban en apple.com, icloud.com e icloud.com.cn».
Esto significa que un atacante podría explotar una vulnerabilidad de secuencias de comandos entre sitios en cualquiera de los subdominios de Apple para ejecutar un fragmento malicioso de código JavaScript que puede activar una solicitud de inicio de sesión utilizando la identificación del cliente de iCloud y usar el token de concesión para obtener una sesión en icloud. .com.
Configuración de puntos de acceso falsos para hacerse cargo de las cuentas de iCloud
En un escenario separado, el ataque podría ejecutarse incrustando JavaScript en la página web que se muestra cuando se conecta a una red Wi-Fi por primera vez (a través de «captive.apple.com»), lo que permite que un atacante acceda a la cuenta de un usuario. cuenta simplemente aceptando un aviso de TouchID desde esa página.
«Una red Wi-Fi maliciosa podría responder con una página con JavaScript que inicia OAuth como iCloud». Alkemade dijo. «El usuario recibe un aviso de TouchID, pero no está muy claro lo que implica. Si el usuario se autentica en ese aviso, su token de sesión se enviará al sitio malicioso, lo que le dará al atacante una sesión para su cuenta en iCloud».
«Configurando un punto de acceso falso en un lugar donde los usuarios esperan recibir un portal cautivo (por ejemplo, en un aeropuerto, hotel o estación de tren), habría sido posible obtener acceso a una cantidad significativa de cuentas de iCloud, lo que habría permitió el acceso a copias de seguridad de imágenes, ubicación del teléfono, archivos y mucho más”, agregó.
Esta no es la primera vez que se encuentran problemas de seguridad en la infraestructura de autenticación de Apple. En mayo, Apple reparó una falla que afectaba su sistema «Iniciar sesión con Apple» que podría haber hecho posible que los atacantes remotos eludieran la autenticación y se hicieran cargo de las cuentas de los usuarios objetivo en servicios y aplicaciones de terceros que se registraron utilizando el inicio de sesión de Apple. en opción.