De Open Source Foundation yntrodusearre de JShelter browser add-on om de JavaScript API te beheinen

De Free Software Foundation yntrodusearre it JShelter-projekt, dat in browser-tafoeging ûntwikkelet om te beskermjen tsjin bedrigingen dy't ûntsteane by it brûken fan JavaScript op websiden, ynklusyf ferburgen identifikaasje, folgjen fan bewegingen en it sammeljen fan brûkersgegevens. De projektkoade wurdt ferspraat ûnder de GPLv3-lisinsje. De tafoeging is taret foar Firefox, Google Chrome, Opera, Brave, Microsoft Edge en oare browsers basearre op de Chromium-motor.

It projekt wurdt ûntwikkele as in mienskiplik inisjatyf finansierd troch Stichting NLnet. Giorgio Maone, makker fan de NoScript-tafoeging, lykas de oprjochters fan it J++-projekt en de auteurs fan de JS-Shield en JavaScript Restrictor-tafoegings, diene ek mei oan de ûntwikkeling fan JShelter. De tafoeging fan JavaScript Restrictor wurdt brûkt as basis foar it nije projekt.

JShelter kin tocht wurde as in soarte fan firewall foar JavaSkript-programmearring-ynterfaces beskikber foar websiden en webapplikaasjes. De tafoeging biedt fjouwer nivo's fan beskerming, lykas ek in fleksibele konfiguraasjemodus foar tagong ta de API. Nivo nul jout folslein tagong ta alle API's, de earste omfettet minimale blokkearjen dy't de wurking fan siden net fersteure, it twadde nivo balansearret tusken blokkearjen en kompatibiliteit, en it fjirde nivo omfettet strikte blokkearjen fan alles wat net nedich is.

API-blokkearjende ynstellings kinne wurde bûn oan yndividuele siden, bygelyks, beskerming kin wurde fersterke foar guon siden, en útskeakele foar oaren. Jo kinne ek bepaalde JavaScript-metoaden, objekten, eigenskippen en funksjes selektyf blokkearje, of weromkommende wearden feroarje (bygelyks falske ynformaasje oer it systeem produsearje). In aparte funksje is de NBS-modus (Network boundary shield), dy't siden net tastean om de browser te brûken as proxy tusken eksterne en lokale netwurken (alle útgeande oanfragen wurde ûnderskept en analysearre).

Blokkearre of beheinde API's:

  • window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp en VRFrameData.prototype.timestamp - de krekte tiidútfier kin brûkt wurde om side-kanaal oanfallen te identifisearjen en út te fieren .
  • HTMLCanvasElement (canvas.toDataURL (), canvas.toBlob (), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob ()) - brûkt om te bepalen de funksjes fan de grafyske subsysteem by it identifisearjen fan in brûker.
  • Audiobuffer en Analysernode (Audiobuffer.getChanneldata (), Audiobuffer.copyfromchannel (), analysernode.getBytimedomaindata (), analySernode.getfloatTimedoma Indata (), analysernode.getbytefrequencydata () en analysernode.getfloatfrequency ()) - identifikaasje fan lûdsignalen troch lûdsinjaalanalyse.
  • WebGLRenderingContext - identifikaasje troch analyze fan funksjes fan 'e grafyske stack en GPU.
  • MediaDevices.prototype.enumerateDevices - identifikaasje troch it krijen fan parameters en nammen fan 'e kamera en mikrofoan.
  • navigator.deviceMemory, navigator.hardwareConcurrency - it krijen fan ynformaasje oer hardware.
  • XMLHttpRequest (XHR) - transfers sammele systeemynformaasje nei in eksterne tsjinner neidat de side is laden.
  • ArrayBuffer - it útfieren fan microarchitectural Spectre oanfallen.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - it útfieren fan oanfallen dy't fertragingen evaluearje by tagong ta gegevens.
  • Geolocation API (navigator.geolocation) - tagong ta lokaasjeynformaasje (mei tafoeging kinne jo de weromjûne gegevens ferdraaie).
  • Gamepad API (navigator.getGamepads ()) is ien fan de identifikaasje tekens dy't rekken hâldt mei de oanwêzigens fan in gamepad yn it systeem.
  • Virtual Reality API, Mixed Reality API - gebrûk fan parameters foar firtuele werklikheid foar identifikaasje.
  • window.name - cross-site lekkages.
  • navigator.sendBeacon - brûkt foar web analytics.

Boarne: opennet.ru

Add a comment