Pour le passé quatre mois, les appareils iOS et iPadOS d’Apple et le navigateur Safari ont violé l’une des politiques de sécurité les plus sacro-saintes d’Internet. La violation résulte d’un bogue qui divulgue les identités des utilisateurs et l’activité de navigation en temps réel.
La politique de même origine est un mécanisme de sécurité fondamental qui interdit aux documents, scripts ou autres contenus chargés à partir d’une origine (c’est-à-dire le protocole, le nom de domaine et le port d’une page Web ou d’une application donnée) d’interagir avec des ressources d’autres origines. Sans cette règle, les sites malveillants (par exemple, badguy.example.com) pourraient accéder aux identifiants de connexion de Google ou d’un autre site de confiance lorsqu’il est ouvert dans une autre fenêtre ou un autre onglet du navigateur.
Violation évidente de la vie privée
Depuis la sortie en septembre de Safari 15 et iOS et iPadOS 15, cette politique a été largement ouverte, selon une étude publiée à la fin de la semaine dernière. Comme le révèle graphiquement un site de démonstration, il est trivial pour un site d’apprendre les domaines des sites ouverts dans d’autres onglets ou fenêtres, ainsi que les identifiants d’utilisateur et autres informations d’identification associées aux autres sites.
« Le fait que les noms de bases de données fuient à travers différentes origines est une violation évidente de la vie privée », a écrit Martin Bajanik, chercheur à la société de sécurité FingerprintJS. Il a continué:
Il permet à des sites Web arbitraires d’apprendre quels sites Web l’utilisateur visite dans différents onglets ou fenêtres. Cela est possible car les noms de base de données sont généralement uniques et spécifiques au site Web. De plus, nous avons observé que dans certains cas, les sites Web utilisent des identifiants uniques spécifiques à l’utilisateur dans les noms de bases de données. Cela signifie que les utilisateurs authentifiés peuvent être identifiés de manière unique et précise.
Les attaques fonctionnent sur les Mac exécutant Safari 15 et sur n’importe quel navigateur exécutant iOS ou iPadOS 15. Comme le montre la démo, safarileaks.com est capable de détecter la présence de plus de 20 sites Web, parmi lesquels Google Calendar, YouTube, Twitter et Bloomberg. ouvrir dans d’autres onglets ou fenêtres. Avec plus de travail, un attaquant du monde réel pourrait probablement trouver des centaines ou des milliers de sites ou de pages Web pouvant être détectés.
Lorsque les utilisateurs sont connectés à l’un de ces sites, la vulnérabilité peut être exploitée pour révéler la visite et, dans de nombreux cas, des informations d’identification en temps réel. Lorsqu’il est connecté à un compte Google ouvert ailleurs, par exemple, le site de démonstration peut obtenir l’identifiant interne que Google utilise pour identifier chaque compte. Ces identifiants peuvent généralement être utilisés pour reconnaître le titulaire du compte.
Renforcer la sensibilisation
La fuite est le résultat de la façon dont le moteur de navigateur Webkit implémente IndexedDB, une interface de programmation prise en charge par tous les principaux navigateurs. Il contient de grandes quantités de données et fonctionne en créant des bases de données lorsqu’un nouveau site est visité. Les onglets ou les fenêtres qui s’exécutent en arrière-plan peuvent continuellement interroger l’API IndexedDB pour les bases de données disponibles. Cela permet à un site d’apprendre en temps réel quels autres sites Web un utilisateur visite.
Les sites Web peuvent également ouvrir n’importe quel site Web dans une iframe ou une fenêtre contextuelle afin de déclencher une fuite basée sur IndexedDB pour ce site spécifique. En incorporant l’iframe ou le popup dans son code HTML, un site peut ouvrir un autre site afin de provoquer une fuite basée sur IndexedDB pour le site.
« Chaque fois qu’un site Web interagit avec une base de données, une nouvelle base de données (vide) portant le même nom est créée dans tous les autres cadres, onglets et fenêtres actifs au sein de la même session de navigateur », a écrit Bajanik. « Les fenêtres et les onglets partagent généralement la même session, sauf si vous passez à un profil différent, dans Chrome par exemple, ou ouvrez une fenêtre privée. »