Plus tôt cette année, Apple a corrigé un vulnérabilité de sécurité dans iOS et macOS qui auraient pu potentiellement permettre à un attaquant d’obtenir un accès non autorisé au compte iCloud d’un utilisateur.
Découvert en février par Thijs Alkemade, spécialiste de la sécurité au sein de la société de sécurité informatique Computest, la faille résidait dans la mise en œuvre par Apple de la fonction biométrique TouchID (ou FaceID) qui authentifiait les utilisateurs pour se connecter aux sites Web sur Safari, en particulier ceux qui utilisent des identifiants Apple ID.
Une fois le problème signalé à Apple via son programme de divulgation responsable, le fabricant de l’iPhone a corrigé la vulnérabilité dans un mise à jour côté serveur.
Une faille d’authentification
La prémisse centrale de la faille est la suivante. Lorsque les utilisateurs essaient de se connecter à un site Web nécessitant un identifiant Apple, une invite s’affiche pour authentifier la connexion à l’aide de Touch ID. Cela permet de sauter l’étape d’authentification à deux facteurs car elle utilise déjà un combinaison de facteurs pour l’identification, comme l’appareil (quelque chose que vous avez) et les informations biométriques (quelque chose que vous êtes).
Comparez cela lors des connexions aux domaines Apple (par exemple « icloud.com ») de la manière habituelle avec un identifiant et un mot de passe, dans lequel le site Web intègre un iframe pointant vers le serveur de validation de connexion d’Apple (« https://idmsa.apple.com »), qui gère le processus d’authentification.
Comme le montre le démonstration vidéo, l’URL iframe contient également deux autres paramètres – un « client_id » identifiant le service (par exemple, iCloud) et un « redirect_uri » qui contient l’URL vers laquelle rediriger après une vérification réussie.
Mais dans le cas où un utilisateur est validé à l’aide de TouchID, l’iframe est gérée différemment en ce sens qu’elle communique avec le démon AuthKit (akd) pour gérer l’authentification biométrique et ensuite récupérer un jeton (« grant_code ») utilisé par icloud.com page pour continuer le processus de connexion.
Pour ce faire, le démon communique avec une API sur «gsa.apple.com», à laquelle il envoie les détails de la requête et à partir de laquelle il reçoit le jeton.
La faille de sécurité découverte par Computest réside dans l’API gsa.apple.com susmentionnée, qui permettait théoriquement d’abuser de ces domaines pour vérifier un ID client sans authentification.
« Même si le client_id et le redirect_uri ont été inclus dans les données qui lui ont été soumises par akd, il n’a pas vérifié que l’URI de redirection correspond à l’ID client », a noté Alkemade. « Au lieu de cela, il n’y avait qu’une liste blanche appliquée par AKAppSSOExtension sur les domaines. Tous les domaines se terminant par apple.com, icloud.com et icloud.com.cn étaient autorisés. »
Cela signifie qu’un attaquant pourrait exploiter une vulnérabilité de script intersite sur l’un des sous-domaines d’Apple pour exécuter un extrait malveillant de code JavaScript pouvant déclencher une invite de connexion à l’aide de l’ID client iCloud, et utiliser le jeton d’accord pour obtenir une session sur icloud .com.
Configurer de faux hotspots pour prendre le contrôle de comptes iCloud
Dans un scénario séparé, l’attaque pourrait être exécutée en incorporant JavaScript sur le page Web qui s’affiche lors de la première connexion à un réseau Wi-Fi (via « captive.apple.com »), permettant ainsi à un attaquant d’accéder au compte d’un utilisateur en acceptant simplement une invite TouchID de cette page.
« Un réseau Wi-Fi malveillant pourrait répondre avec une page avec JavaScript qui lance OAuth en tant qu’iCloud, » Alkemade a dit. « L’utilisateur reçoit une invite TouchID, mais ce que cela implique n’est pas clair. Si l’utilisateur s’authentifie sur cette invite, son jeton de session sera envoyé au site malveillant, donnant à l’attaquant une session pour son compte sur iCloud. »
« En mettant en place un faux hotspot dans un endroit où les utilisateurs s’attendent à recevoir un portail captif (par exemple dans un aéroport, un hôtel ou une gare), il aurait été possible d’accéder à un nombre important de comptes iCloud, ce qui aurait autorisé l’accès aux sauvegardes d’images, à l’emplacement du téléphone, aux fichiers et bien plus encore », a-t-il ajouté.
Ce n’est pas la première fois que des problèmes de sécurité sont détectés dans l’infrastructure d’authentification d’Apple. En mai, Apple a corrigé une faille affectant son système «Se connecter avec Apple» qui aurait pu permettre à des attaquants distants de contourner l’authentification et de prendre le contrôle des comptes d’utilisateurs ciblés sur des services et applications tiers qui ont été enregistrés à l’aide du signe d’Apple. en option.