Eine neue Technik zur versteckten Identifizierung von System und Browser wurde vorgestellt

Eine Gruppe von Forschern der Technischen Universität Graz (Österreich), die zuvor für die Entwicklung von Angriffsmethoden bekannt war, MDS, NetSpectre und Throwhammer, hat enthüllt stellt Informationen über eine neue Technik zur Analyse durch Seitenkanäle bereit, die es ermöglicht, die genaue Version des Browsers, das verwendete Betriebssystem, die CPU-Architektur und die Verwendung von Erweiterungen zur Bekämpfung der versteckten Identifizierung zu bestimmen.

Um die angegebenen Parameter zu bestimmen, reicht es aus, 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 Identifizierung des Benutzers verwendet werden, sondern auch zur Bestimmung von Systemumgebungsparametern für gezielte Anwendungen von Exploits unter Berücksichtigung von OS, Architektur und Browser. Die Methode ist auch effektiv bei der Verwendung von Browsern mit Implementierungen von Mechanismen zur Blockierung versteckter Identifizierung, wie dem Tor Browser. Der Quellcode-Prototyp zur Implementierung der Methode veröffentlicht unterliegt der MIT-Lizenz.

wird auf der Grundlage der Extraktion spezifischer Muster der Zustandseigenschaften in JavaScript und der Laufzeitmerkmale von Operationen, die von den Besonderheiten der JIT-Arbeit, der CPU und der Speicherzuweisungsmechanismen abhängen, durchgeführt. Die Bestimmung der Eigenschaften erfolgt durch die Generierung einer Liste aller Objekte, die aus JavaScript verfügbar sind. Es stellte sich heraus, dass die Anzahl der Objekte direkt mit der Browser-Engine und ihrer Version korreliert.

function getProperties(o) {
var result = [];
while (o !== null) {
result = result.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
return result;
}

Zum Beispiel gibt die Dokumentation für Firefox an, dass 2247 Eigenschaften unterstützt werden, während die tatsächliche Anzahl der bestimmten Eigenschaften, einschließlich der nicht dokumentierten, 15709 beträgt (im Tor Browser – 15639). Für Chrome werden 2698 Eigenschaften angegeben, während tatsächlich 13570 angeboten werden (in Chrome für Android – 13119). Die Anzahl und die Werte der Eigenschaften ändern sich von Version zu Version des Browsers und bei der Verwendung verschiedener Betriebssysteme.

Die Werte und Verfügbarkeit bestimmter Eigenschaften können verwendet werden, um den Typ des Betriebssystems zu bestimmen. Zum Beispiel wird in Kubuntu die Eigenschaft window.innerWidth auf 1000 eingestellt, während sie in Windows 10 auf 1001 gesetzt wird. In Windows ist die Eigenschaft window.navigator.activeVRDisplays verfügbar, in Linux jedoch nicht. Für Android gibt es viele spezifische Aufrufe, aber kein window.SharedWorker. Zur Identifizierung des Betriebssystems wird auch vorgeschlagen, die Parameter von WebGL zu analysieren, deren Zustand von den Treibern abhängt. Darüber hinaus ermöglicht der Aufruf der WEBGL_debug_renderer_infoextension den Zugriff auf Informationen über die OpenGL-Rendering-Engine, die für jedes Betriebssystem unterschiedlich ist.

Zur Bestimmung der CPU wird die Bewertung von Zeitunterschieden bei der Ausführung verschiedener Muster-Code-Blöcke verwendet, deren Verarbeitung von der Architektur des Befehlssatzes abhängt, unter Berücksichtigung des Verhaltens von JIT (definiert, wie viele CPU-Register genutzt werden und wann JIT effizient optimierten Code mit erweiterten Instruktionen generiert und wann nicht). Zudem wird zur Bestimmung des Typs des Speichersystems und des Betriebssystems auch der Zeitunterschied bei der Speicherzuweisung für verschiedene Strukturen gemessen, anhand derer man die Größe der Speicherblöcke beurteilen kann.

Die während der Skriptausführung bestimmten Parameter werden mit Referenzwerten verglichen, die spezifisch für vorher getestete Umgebungen sind. Bei der Prüfung erlaubte die entwickelte Technik die präzise Identifizierung von 40 verschiedenen Testumgebungen, einschließlich der Bestimmung der verwendeten Browser-Versionen, des CPU-Herstellers, des eingesetzten Betriebssystems und ob die Ausführung auf echter Hardware oder in einer virtuellen Maschine stattfand.

Besonders bemerkenswert ist die Möglichkeit, Browser-Erweiterungen und sogar einzelne Einstellungen von Erweiterungen zu identifizieren, einschließlich solcher, die für das Blockieren der Methoden zur versteckten Identifizierung oder den Datenschutz-Modus gedacht sind. Im Kontext der vorgeschlagenen Methode werden solche Erweiterungen zu einer weiteren Datenquelle zur Identifizierung. Die Erweiterungen werden durch die Bewertung der Verzerrungen der Parameter der ursprünglichen Umgebung, die durch die Erweiterungen eingeführt werden, bestimmt.

Weitere Identifikationsmethoden beinhalten die Berücksichtigung indirekter Daten wie Bildschirmauflösung, eine Liste unterstützted MIME-Typen, spezifische Parameter in den Headern (HTTP/2 und HTTPS), die Analyse installierter Plugins und Schriftarten, die Verfügbarkeit bestimmter Web-APIs, die spezifisch für Grafikkarten sind Beispielcodes Rendering mit WebGL und Canvas, Manipulationen mit CSS, die Analyse von Besonderheiten im Umgang mit der Maus und der Tastatur.

Quelle: opennet.ru

60GB SSD 8Gb DDR4