Die Free Software Foundation hat das Projekt JShelter vorgestellt, das eine Browser-Erweiterung entwickelt, um vor Bedrohungen zu schĂŒtzen, die durch die Verwendung von JavaScript auf Websites entstehen. Dazu gehören versteckte Identifikation, Bewegungsverfolgung und die Ansammlung von Benutzerdaten. Der Code des Projekts wird unter der GPLv3-Lizenz veröffentlicht. Die Erweiterung ist fĂŒr Firefox, Google Chrome, Opera, Brave, Microsoft Edge und andere Browser auf Chromium-Basis vorgesehen.
Das Projekt entwickelt sich als gemeinsame Initiative, die von der NLnet Foundation finanziert wird. Zu den Entwicklern von JShelter gehört auch Giorgio Maone, der Schöpfer der Erweiterung NoScript, sowie die GrĂŒnder des Projekts J++ und die Autoren der Erweiterungen JS-Shield und JavaScript Restrictor. Als Grundlage fĂŒr das neue Projekt wurde die Erweiterung JavaScript Restrictor verwendet.
JShelter kann als eine Art Firewall fĂŒr die JavaScript-Schnittstellen angesehen werden, die Websites und Webanwendungen zur VerfĂŒgung stehen. Die Erweiterung bietet vier Schutzstufen sowie einen flexiblen Zugriffsteuerungsmodus fĂŒr APIs. Die Nullstufe erlaubt den vollstĂ€ndigen Zugriff auf alle APIs, die erste enthĂ€lt minimale Sperren, die den Seitenbetrieb nicht stören, die zweite Stufe findet ein Gleichgewicht zwischen Sperren und KompatibilitĂ€t, wĂ€hrend die vierte Stufe eine strenge Sperre aller unwichtigen Elemente umfasst.
Die API-Sperrkonfigurationen können an bestimmte Websites gebunden werden, z. B. kann der Schutz fĂŒr eine Website verstĂ€rkt und fĂŒr eine andere deaktiviert werden. Es ist auch möglich, bestimmte Methoden, Objekte, Eigenschaften und Funktionen von JavaScript selektiv zu blockieren oder zurĂŒckgegebene Werte zu manipulieren (z. B. falsche Systeminformationen auszugeben). Besondere ErwĂ€hnung findet der Modus NBS (Network Boundary Shield), der es Seiten verbietet, den Browser als Proxy zwischen dem externen und lokalen Netzwerk 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 abgegebene genaue Zeit kann zur Identifizierung und DurchfĂŒhrung von Angriffen ĂŒber sekundĂ€re KanĂ€le genutzt werden.
- HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) â werden verwendet, um die Eigenschaften des grafischen Subsystems bei der Benutzeridentifizierung zu bestimmen.
- AudioBuffer und AnalyserNode (AudioBuffer.getChannelData(), AudioBuffer.copyFromChannel(), AnalyserNode.getByteTimeDomainData(), AnalyserNode.getFloatTimeDomainData(), AnalyserNode.getByteFrequencyData() und AnalyserNode.getFloatFrequencyData()) â Identifizierung durch die Analyse von Audiosignalen.
- WebGLRenderingContext â Identifizierung durch die Analyse der Eigenschaften des Grafikstacks und der GPU.
- MediaDevices.prototype.enumerateDevices â Identifizierung durch das Abrufen von Parametern und Namen von Kamera und Mikrofon.
- navigator.deviceMemory, navigator.hardwareConcurrency â Abruf von Informationen zur Hardware.
- XMLHttpRequest (XHR) â Ăbermittlung der gesammelten Informationen ĂŒber das System nach der Server dem Laden der Seite.
- ArrayBuffer â DurchfĂŒhrung von Mikroarchitektur-Angriffen der Art Spectre.
- WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) â DurchfĂŒhrung von Angriffen, die Verzögerungen beim Zugriff auf Daten bewerten.
- Geolocation API (navigator.geolocation) â Zugriff auf Standortdaten (das Add-on ermöglicht es, die zurĂŒckgegebenen Daten zu verzerren).
- Gamepad API (navigator.getGamepads()) â ein Identifikationsmerkmal, das die VerfĂŒgbarkeit eines Gamepads im System berĂŒcksichtigt.
- Virtual Reality API, Mixed Reality API â Verwendung von Parametern von Virtual-Reality-GerĂ€ten zur Identifikation.
- window.name â Cross-Site-Leaks.
- navigator.sendBeacon â wird fĂŒr Web-Analytik verwendet.
Quelle: opennet.ru
