Die Open Source Foundation hat das Browser-Add-on JShelter eingeführt, um die JavaScript-API einzuschränken

Die Free Software Foundation hat das JShelter-Projekt ins Leben gerufen, das ein Browser-Add-on zum Schutz vor Bedrohungen entwickelt, die bei der Verwendung von JavaScript auf Websites entstehen, einschließlich versteckter Identifizierung, Verfolgung von Bewegungen und der Ansammlung von Benutzerdaten. Der Projektcode wird unter der GPLv3-Lizenz vertrieben. Das Add-on ist für Firefox, Google Chrome, Opera, Brave, Microsoft Edge und andere Browser basierend auf der Chromium-Engine vorbereitet.

Das Projekt wird als gemeinsame Initiative entwickelt, die von der NLnet Foundation finanziert wird. Giorgio Maone, der Schöpfer des NoScript-Add-Ons, sowie die Gründer des J++-Projekts und die Autoren der Add-Ons JS-Shield und JavaScript Restrictor beteiligten sich ebenfalls an der Entwicklung von JShelter. Als Basis für das neue Projekt dient das Add-on JavaScript Restrictor.

JShelter kann man sich als eine Art Firewall für JavaScript-Programmierschnittstellen vorstellen, die für Websites und Webanwendungen verfügbar sind. Das Add-on bietet vier Schutzstufen sowie einen flexiblen Konfigurationsmodus für den Zugriff auf die API. Stufe Null ermöglicht den vollständigen Zugriff auf alle APIs, die erste umfasst minimale Blockierungen, die den Betrieb von Seiten nicht stören, die zweite Stufe sorgt für ein Gleichgewicht zwischen Blockierung und Kompatibilität und die vierte Stufe umfasst die strikte Blockierung aller unnötigen Dinge.

API-Blockierungseinstellungen können an einzelne Websites gebunden werden. Beispielsweise kann der Schutz für einige Websites verstärkt und für andere deaktiviert werden. Sie können auch gezielt bestimmte JavaScript-Methoden, -Objekte, -Eigenschaften und -Funktionen blockieren oder Rückgabewerte ändern (um beispielsweise falsche Informationen über das System zu erzeugen). Eine separate Funktion ist der NBS-Modus (Network Boundary Shield), der es Seiten nicht erlaubt, den Browser als Proxy zwischen externen und lokalen Netzwerken zu verwenden (alle ausgehenden Anfragen werden abgefangen und analysiert).

Blockierte oder eingeschränkte APIs:

  • window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp und VRFrameData.prototype.timestamp – die genaue Zeitausgabe kann zur Identifizierung und Durchführung von Seitenkanalangriffen verwendet werden .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) – wird verwendet, um die Funktionen des Grafiksubsystems bei der Identifizierung eines Benutzers zu bestimmen.
  • Audiobuffer und Analysernode (Audiobuffer.getChanneldata (), Audiobuffer.copyfromchannel (), analysernode.getBytimedomaindata (), analySernode.getfloatTimedoma Indata (), analysernode.getbytefrequenzdata () und analysernode.getfloatfrequenz ()) – Identifizierung durch Tonsignalanalyse.
  • WebGLRenderingContext – Identifizierung durch Analyse der Funktionen des Grafikstapels und der GPU.
  • MediaDevices.prototype.enumerateDevices – Identifizierung durch Abrufen von Parametern und Namen der Kamera und des Mikrofons.
  • navigator.deviceMemory, navigator.hardwareConcurrency – Informationen über Hardware abrufen.
  • XMLHttpRequest (XHR) – überträgt gesammelte Systeminformationen nach dem Laden der Seite an einen externen Server.
  • ArrayBuffer – Durchführung mikroarchitektonischer Spectre-Angriffe.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) – Durchführung von Angriffen, die Verzögerungen beim Zugriff auf Daten auswerten.
  • Geolocation-API (navigator.geolocation) – Zugriff auf Standortinformationen (durch den Zusatz können Sie die zurückgegebenen Daten verzerren).
  • Die Gamepad-API (navigator.getGamepads()) ist eines der Erkennungszeichen, das das Vorhandensein eines Gamepads im System berücksichtigt.
  • Virtual Reality API, Mixed Reality API – Verwendung von Virtual-Reality-Geräteparametern zur Identifizierung.
  • window.name – Cross-Site-Lecks.
  • navigator.sendBeacon – wird für Webanalysen verwendet.

Source: opennet.ru

Kommentar hinzufügen