Ich habe einen großen Fehler im privaten Browsermodus von Mozilla gefunden.

Wenn dieser Fehler nicht behoben wurde, hätte er Chaos anrichten können, aber Mozillas schnelle Korrekturen haben den Tag gerettet.

In diesem Artikel werde ich Details eines Fehlers erläutern, den ich im privaten Browsermodus von Mozilla Firefox entdeckt habe und der es ermöglichte, private Browsersitzungen zu verfolgen.

Privates Surfen ist heute eine der bekanntesten und am häufigsten verwendeten Funktionen in modernen Browsern. Browser erweitern das private Surfen kontinuierlich um zahlreiche Verbesserungen, um die Privatsphäre der Benutzer zu verbessern.

Die angebotenen Funktionen können von Browser zu Browser unterschiedlich sein, aber zumindest ein Benutzer, der privates Surfen verwendet, hat die beiden grundlegendsten Anforderungen:

1. Privat besuchte Websites können keine Daten speichern

2. Besuchte Seiten werden nicht gespeichert

Nun, ich habe festgestellt, dass der private Browsermodus des Firefox-Browsers keine der oben genannten Anforderungen erfüllt.

Technische Details

Damit eine Website einen Benutzer über private Browsersitzungen hinweg verfolgen kann, muss auf Browserebene ein dauerhafter Speicher verwendet werden.

Es gibt mehrere Möglichkeiten, Daten in einem Browser zu speichern - LocalStorage, WebSQL und IndexedDB.

Ich bin kürzlich auf IndexedDB-Speicher gestoßen.

IndexedDB ist eine Low-Level-API zur clientseitigen Speicherung erheblicher Mengen strukturierter Daten, einschließlich Dateien / Blobs - Mozilla Developer Network

Laut Dokumentation sollte IndexedDB jedoch nicht im privaten Browsermodus verfügbar sein.

Wenn Sie IndexedDB direkt auf der Webseite verwenden, wird ein Fehler ausgegeben:

Aber was passiert, wenn Sie IndexedDB mit Web Workern kombinieren?

Mit Web Workers können Sie eine Skriptoperation im Hintergrundthread ausführen, der vom Hauptausführungsthread einer Webanwendung - Mozilla Developer Network - getrennt ist

Problemdetails: Der Fallout

Auf IndexedDB kann im privaten Browsermodus über Web Worker zugegriffen werden. Darüber hinaus werden die IndexedDB-Daten beim Schließen des Browsers nicht gelöscht. Diese gespeicherten Daten bleiben über mehrere private Browsersitzungen hinweg bestehen, da sie beim Beenden nicht gelöscht werden. ?

Schauen wir uns also einige Möglichkeiten an, wie dieses Problem missbraucht werden kann.

Websites

Eine böswillige Website kann IndexedDB nutzen und Benutzer in privaten Browsersitzungen verfolgen. Angenommen, Sie haben badsite.com besucht , das Web Workers und IndexedDB im privaten Browsermodus verwendet. Schließen Sie das private Browsing-Fenster, schließen Sie Firefox, starten Sie Firefox erneut, starten Sie den privaten Browsermodus und besuchen Sie erneut badsite.com. Die Website kann auf die Daten Ihrer vorherigen privaten Browsersitzung zugreifen, da die Daten weiterhin in IndexedDB gespeichert sind.

Dritte

Nehmen wir an, siteA.com lädt ein Analyseskript von BadAnalyticsSite.com. Dann lädt eine andere Website, siteB.com , ebenfalls ein Analyseskript von derselben Website BadAnalyticsSite.com . Da die böswillige Website BadAnalyticsSite.com Web Workers und IndexedDB verwendet, kann die Website BadAnalyticsSite.com jetzt Benutzer der Websites siteA.com und siteB.com in all ihren privaten Browsersitzungen verfolgen .

Festplattenlecks

IndexedDB befolgt eine Richtlinie mit demselben Ursprung. Dies bedeutet, dass jede Datenbank einen Namen hat, der sie innerhalb eines Ursprungs identifiziert. Da der Domänenname als Teil des Dateinamens verwendet wird, kann dies bei Verwendung im privaten Modus zu schwerwiegenden Problemen führen.

Wenn ein Benutzer beispielsweise eine Testwebseite (Demo) besucht, auf der Web Workers + IndexedDB verwendet cdn.cliqz.comwird und auf der eine Ressource geladen wird konarkmodi.github.io, werden die folgenden zwei Einträge auf der Festplatte erstellt.

Aufgrund des oben genannten Fehlers kann eine Website / ein Tracker effektiv einen Fingerabdruck generieren und speichern. Selbst wenn ein Benutzer den Website-Verlauf löscht oder die Option "Diese Website vergessen" auswählt, wird der IndexDB-Speicher nicht entfernt. Dies kann einen permanenten Speicher für eine Website oder einen Tracker erstellen, der für immer genutzt werden kann.

Bericht und Korrekturen

Mozilla fördert die Sicherheitsforschung für ihre Produkte. In ihren eigenen Worten:

Das Mozilla Client Security Bug Bounty-Programm soll die Sicherheitsforschung in Mozilla-Software fördern und diejenigen belohnen, die uns bei der Erstellung der sichersten Internet-Software helfen, die es gibt.

Ich habe dieses Problem im Oktober 2017 über das Bug Bounty-Programm gemeldet und es wurde im November 2017 behoben. Sie wurden aufgefordert, die Probleme zu identifizieren und zu beheben.

Weitere Informationen finden Sie im vollständigen Fehlerbericht von Mozillas Bugzilla.

Ich schätze Mozillas Bemühungen und Maßnahmen zur Behebung von Problemen mit höchster Priorität, wenn es um die Privatsphäre seiner Benutzer geht.

Viel Spaß beim Hacken!

Sie können mir auf Twitter bei Konark Modi folgen

Danke fürs Lesen und Teilen! :) :)

Wenn Ihnen diese Geschichte gefallen hat, fühlen Sie sich frei zu ??? ein paar Mal (bis zu 50 Mal. Ernsthaft).

Credits: Besonderer Dank geht an Remi und Pallavi für die Bewertung dieses Beitrags :)