Einführung einer neuen Technik zur versteckten System- und Browseridentifizierung

Eine Forschergruppe der Technischen Universität Graz (Österreich), die zuvor für die Entwicklung von Angriffsmethoden bekannt war MDS, NetSpectre и Wurfhammer, unbedeckt Informationen über eine neue Analysetechnik von Drittanbietern, mit der Sie die genaue Version des Browsers, das verwendete Betriebssystem, die CPU-Architektur und den Einsatz von Add-ons zur Bekämpfung der versteckten Identifizierung ermitteln können.

Um diese Parameter zu ermitteln, genügt es, den von den Forschern vorbereiteten JavaScript-Code im Browser auszuführen. In der Praxis kann die Methode nicht nur als zusätzliche Quelle zur indirekten Benutzeridentifikation, sondern auch zur Ermittlung von Systemumgebungsparametern für den gezielten Einsatz von Exploits unter Berücksichtigung von Betriebssystem, Architektur und Browser eingesetzt werden. Die Methode ist auch effektiv, wenn Browser mit versteckten Identifizierungsblockierungsmechanismen verwendet werden, wie z. B. der Tor-Browser. Quellcode-Prototypcode mit Methodenimplementierung veröffentlicht unter der MIT-Lizenz.

Die Bestimmung erfolgt auf der Grundlage der Zuordnung von Eigenschaftszustandsmustern, die für verschiedene Browser in JavaScript charakteristisch sind, und den Merkmalen der Ausführungszeit von Operationen, abhängig von den Merkmalen der JIT-, CPU- und Speicherzuweisungsmechanismen. Das Definieren von Eigenschaften erfolgt durch Generieren einer Liste aller in JavaScript verfügbaren Objekte. Wie sich herausstellte, korreliert die Anzahl der Objekte direkt mit der Browser-Engine und ihrer Version.

Funktion getProperties(o) {
varresult = [];
while (o !== null) {
result = result.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
Ergebnis zurückgeben;
}

Beispielsweise wird für Firefox die Unterstützung für 2247 Eigenschaften in der Dokumentation deklariert, während die tatsächliche Anzahl bestimmter Eigenschaften, unter Berücksichtigung der nicht dokumentierten, 15709 beträgt (im Tor-Browser - 15639), für Chrome sind 2698 Eigenschaften deklariert, aber 13570 werden tatsächlich angeboten (in Chrome für Android - 13119). Die Anzahl und Werte der Eigenschaften variieren von Version zu Version des Browsers und zwischen verschiedenen Betriebssystemen.

Die Werte und das Vorhandensein bestimmter Eigenschaften können zur Bestimmung des Betriebssystemtyps verwendet werden. Beispielsweise ist in Kubuntu die Eigenschaft window.innerWidth auf 1000 und in Windows 10 auf 1001 festgelegt. Unter Windows ist die Eigenschaft window.navigator.activeVRDisplays verfügbar, unter Linux jedoch nicht. Für Android werden viele spezifische Aufrufe bereitgestellt, es gibt jedoch keinen window.SharedWorker. Zur Identifizierung des Betriebssystems wird auch die Analyse von WebGL-Parametern vorgeschlagen, deren Zustand von den Treibern abhängt. Darüber hinaus können Sie durch den Aufruf von WEBGL_debug_renderer_infoextension Informationen über die OpenGL-Rendering-Engine abrufen, die für jedes Betriebssystem unterschiedlich ist.

Zur Bestimmung der CPU wird eine Bewertung der Unterschiede in der Ausführungszeit verschiedener typischer Codeblöcke verwendet, deren Verarbeitung von der Architektur des Befehlssatzes abhängt, unter Berücksichtigung des Verhaltens des JIT (es wird bestimmt, wie viele CPU-Register beteiligt sein wird und in welchen Fällen das JIT effizienten Code mit Optimierungen und erweiterten Anweisungen generiert und wann nicht). Um die Art des Speicherzuweisungssystems und des Betriebssystems zu bestimmen, wird auch der Unterschied in der Speicherzuweisungszeit für verschiedene Strukturen gemessen, was zur Beurteilung der Größe von Speicherblöcken verwendet werden kann.

Die während der Ausführung des Skripts ermittelten Parameter werden mit den für vorab getestete Umgebungen typischen Referenzwerten verglichen. Während des Tests ermöglichte die entwickelte Technik die genaue Bestimmung von 40 verschiedenen Testumgebungen und ermittelte die Versionen der verwendeten Browser, den CPU-Hersteller, das verwendete Betriebssystem und ob es auf realer Hardware oder in einer virtuellen Maschine lief.

Unabhängig davon wird auf die Möglichkeit hingewiesen, Browser-Add-ons und sogar individuelle Add-on-Einstellungen zu definieren, einschließlich Add-ons, die versteckte Identifizierungsmethoden oder private Browsing-Aktivitäten blockieren sollen. Im Rahmen der vorgeschlagenen Methode werden solche Ergänzungen zu einer weiteren Datenquelle zur Identifizierung. Zusätze werden durch eine Bewertung der durch die Zusätze verursachten Verzerrungen der Parameter der ursprünglichen Umgebung bestimmt.

Unter anderen Identifizierungsmethoden ist die Berücksichtigung indirekter Daten wie zu erwähnen Bildschirmauflösung, Liste der unterstützten MIME-Typen, Header-spezifische Optionen (HTTP / 2 и HTTPS), Analyse der etablierten Plugins und Schriftarten, Verfügbarkeit bestimmter Web-APIs speziell für Grafikkarten eigenschaften Rendern mit WebGL und Canvas, Manipulation mit CSS, Analyse der Funktionen der Arbeit mit Maus и Tastatur.

Source: opennet.ru

Kommentar hinzufügen