Ein Softwarefehler in Apples Safari 15 kann dazu führen, dass jede Website Ihre aktuellen Internet- und sogar Google-Kontoinformationen abruft und Ihre Identität preisgibt.
Laut einem Blogbeitrag von FingerprintJS, einem Browser-Fingerabdruck- und Betrugserkennungsdienst, wurde der Fehler in der Safari 15-Implementierung der IndexedDB-API eingeführt, die Teil der WebKit-Webbrowser-Entwicklungs-Engine von Apple ist.
Für diejenigen, die es nicht wissen: IndexedDB ist eine Browser-API für die clientseitige Speicherung, die für die Speicherung großer Datenmengen konzipiert ist, die von allen gängigen Browsern unterstützt wird und weit verbreitet ist.
Wie die meisten modernen Webbrowser-Technologien folgt IndexedDB der Same-Origin-Richtlinie, einem grundlegenden Sicherheitsmechanismus, der einschränkt, wie von einem Ursprung geladene Dokumente oder Skripte mit Ressourcen von anderen Ursprüngen interagieren können. Indizierte Datenbanken sind einem bestimmten Ursprung zugeordnet.
„Dokumente oder Skripte, die mit unterschiedlichen Ursprüngen verknüpft sind, sollten niemals die Möglichkeit haben, mit Datenbanken zu interagieren, die mit anderen Ursprüngen verknüpft sind“, heißt es in dem Blog.
In Safari 15 auf macOS und in allen Browsern auf iOS und iPadOS 15 verstößt die IndexedDB-API gegen dieselbe Ursprungsrichtlinie. Wenn eine Website mit einer Datenbank in Safari interagiert, sagt FingerprintJS, dass in allen anderen aktiven Frames, Tabs und Fenstern innerhalb derselben Browsersitzung eine neue (leere) Datenbank mit demselben Namen erstellt wird.
Die Tatsache, dass Datenbanknamen aus verschiedenen Quellen durchgesickert sind, stellt eine offensichtliche Verletzung der Privatsphäre dar. Ermöglicht beliebigen Websites zu erfahren, welche Websites der Benutzer in verschiedenen Registerkarten oder Fenstern besucht. Dies ist möglich, weil Datenbanknamen häufig eindeutig und spezifisch für die Website sind.
Darüber hinaus stellte FingerprintJS fest, dass Websites in einigen Fällen benutzerspezifische eindeutige Kennungen in ihren Datenbanknamen verwenden. Dies bedeutet, dass authentifizierte Benutzer sich eindeutig und genau identifizieren können.
Einige beliebte Beispiele wären YouTube, Google Kalender oder Google Keep. Alle diese Websites erstellen Datenbanken, die die authentifizierte Google-Benutzer-ID enthalten. Wenn der Benutzer bei mehreren Konten angemeldet ist, werden Datenbanken für alle diese Konten erstellt.
Die Google-Benutzer-ID ist eine von Google generierte interne Kennung. Identifiziert eindeutig ein einzelnes Google-Konto, das mit Google-APIs verwendet werden kann, um öffentliche persönliche Informationen vom Kontoinhaber zu erhalten.
„Dies bedeutet nicht nur, dass nicht vertrauenswürdige oder bösartige Websites die Identität eines Benutzers erfahren können, sondern ermöglicht auch die Verknüpfung mehrerer separater Konten, die von demselben Benutzer verwendet werden“, schrieb FingerprintJS.
Bitte beachten Sie, dass diese Lecks keine besondere Aktion des Benutzers erfordern. Eine Registerkarte oder ein Fenster, das im Hintergrund ausgeführt wird und die IndexedDB-API kontinuierlich nach verfügbaren Datenbanken abfragt. So kann es in Echtzeit erfahren, welche anderen Websites ein Benutzer besucht. Alternativ können Websites jede Website in einem Iframe oder Popup öffnen, um einen IndexedDB-basierten Jailbreak für diese bestimmte Website auszulösen.
FingerprintJS hat eine Demoseite erstellt, die zeigt, wie eine Website die Identität des Google-Kontos eines Besuchers erfahren kann. Die Demo ist auf safarileaks.com verfügbar. Sie können es ausprobieren, wenn Sie Safari 15 oder höher auf Ihrem Mac, iPhone oder iPad haben. Derzeit erkennt die Demo nur das Vorhandensein von mehr als 20 Websites in anderen Browser-Registerkarten oder -Fenstern, einschließlich Google Kalender, Youtube, Twitter und Bloomberg.
FingerprintJS gab an, den Safari-Fehler am 28. November 2021 als Fehler 233548 an den WebKit Bug Tracker gemeldet zu haben; Apple hat das Problem jedoch noch nicht behoben.
Bis dahin besteht die einzige Lösung möglicherweise darin, JavaScript standardmäßig vollständig zu blockieren und es nur auf vertrauenswürdigen Websites zuzulassen. Eine weitere Alternative für Mac Safari-Benutzer besteht darin, vorübergehend zu einem anderen Browser zu wechseln. Unter iOS und iPadOS ist dies leider nicht möglich, da alle Browser betroffen sind.
