Open Source Foundation het JShelter-blaaierbyvoeging bekendgestel om JavaScript API te beperk

Die Free Software Foundation het die JShelter-projek bekendgestel, wat 'n blaaierbyvoeging ontwikkel om te beskerm teen bedreigings wat ontstaan ​​wanneer JavaScript op webwerwe gebruik word, insluitend verborge identifikasie, opsporing van bewegings en die ophoping van gebruikersdata. Die projekkode word onder die GPLv3-lisensie versprei. Die byvoeging is voorberei vir Firefox, Google Chrome, Opera, Brave, Microsoft Edge en ander blaaiers gebaseer op die Chromium-enjin.

Die projek word ontwikkel as 'n gesamentlike inisiatief wat deur die NLnet-stigting befonds word. Giorgio Maone, skepper van die NoScript-byvoeging, sowel as die stigters van die J++-projek en die skrywers van die JS-Shield en JavaScript Restrictor-byvoegings, het ook by die ontwikkeling van JShelter aangesluit. Die JavaScript Restrictor-byvoeging word as basis vir die nuwe projek gebruik.

JShelter kan beskou word as 'n soort firewall vir JavaScript-programmeringskoppelvlakke wat beskikbaar is vir webwerwe en webtoepassings. Die byvoeging bied vier vlakke van beskerming, sowel as 'n buigsame konfigurasiemodus vir toegang tot die API. Vlak nul laat heeltemal toegang tot alle API's toe, die eerste sluit minimale blokkering in wat nie die werking van bladsye ontwrig nie, die tweede vlak balanseer tussen blokkering en versoenbaarheid, en die vierde vlak sluit streng blokkering van alles in wat onnodig is.

API-blokkeringsinstellings kan aan individuele werwe gekoppel word, byvoorbeeld, beskerming kan vir sommige werwe versterk word en vir ander gedeaktiveer word. U kan ook sekere JavaScript-metodes, -objekte, -eienskappe en -funksies selektief blokkeer, of terugkeerwaardes verander (byvoorbeeld, produseer vals inligting oor die stelsel). 'n Aparte kenmerk is die NBS (Network boundary shield)-modus, wat bladsye nie toelaat om die blaaier as 'n proxy tussen eksterne en plaaslike netwerke te gebruik nie (alle uitgaande versoeke word onderskep en ontleed).

Geblokkeerde of beperkte API's:

  • window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp en VRFrameData.prototype.timestamp - die presiese tyduitset kan gebruik word om sykanaalaanvalle te identifiseer en uit te voer .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) - word gebruik om die kenmerke van die grafiese substelsel te bepaal wanneer 'n gebruiker geΓ―dentifiseer word.
  • AudioBuffer en AnalyserNode (AudioBuffer.getChannelData(), AudioBuffer.copyFromChannel(), AnalyserNode.getByteTimeDomainData(), AnalyserNode.getFloatTimeDomainData(), AnalyserNode.getByteFrequencyData() en AnalyserNode.getidentaFloat deurFrequency-analise.
  • WebGLRenderingContext - identifikasie deur ontleding van kenmerke van die grafiese stapel en GPU.
  • MediaDevices.prototype.enumerateDevices - identifikasie deur parameters en name van die kamera en mikrofoon te verkry.
  • navigator.deviceMemory, navigator.hardwareConcurrency - verkry inligting oor hardeware.
  • XMLHttpRequest (XHR) - dra versamelde stelselinligting oor na 'n eksterne bediener nadat die bladsy gelaai is.
  • ArrayBuffer - voer mikroargitektoniese Spectre-aanvalle uit.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - voer aanvalle uit wat vertragings evalueer wanneer toegang tot data verkry word.
  • Geolocation API (navigator.geolocation) - toegang tot ligginginligting (die byvoeging laat jou toe om die teruggekeerde data te verdraai).
  • Gamepad API (navigator.getGamepads()) is een van die identifikasietekens wat die teenwoordigheid van 'n gamepad in die stelsel in ag neem.
  • Virtual Reality API, Mixed Reality API - gebruik van virtuele realiteit toestelparameters vir identifikasie.
  • window.name - lekkasies oor die werf.
  • navigator.sendBeacon - gebruik vir webanalise.

Bron: opennet.ru

Voeg 'n opmerking