Open Source Foundation kynnti JShelter vafraviðbótina til að takmarka JavaScript API

Free Software Foundation kynnti JShelter verkefnið, sem þróar vafraviðbót til að verjast ógnum sem koma upp þegar JavaScript er notað á vefsíðum, þar á meðal falinn auðkenningu, rekja hreyfingar og uppsöfnun notendagagna. Verkefniskóðanum er dreift undir GPLv3 leyfinu. Viðbótin er útbúin fyrir Firefox, Google Chrome, Opera, Brave, Microsoft Edge og aðra vafra sem byggja á Chromium vélinni.

Verkefnið er þróað sem sameiginlegt framtak styrkt af NLnet Foundation. Giorgio Maone, skapari NoScript viðbótarinnar, sem og stofnendur J++ verkefnisins og höfundar JS-Shield og JavaScript Restrictor viðbætur, tóku einnig þátt í þróun JShelter. JavaScript Restrictor viðbótin er notuð sem grunnur fyrir nýja verkefnið.

Líta má á JShelter sem eins konar eldvegg fyrir JavaScript forritunarviðmót sem eru í boði fyrir vefsíður og vefforrit. Viðbótin veitir fjögur verndarstig, auk sveigjanlegrar stillingar fyrir aðgang að API. Stig núll leyfir algjörlega aðgang að öllum API, það fyrsta felur í sér lágmarksblokkun sem truflar ekki virkni síðna, annað stig jafnvægi á milli lokunar og eindrægni og fjórða stigið inniheldur stranga lokun á öllu óþarfa.

Hægt er að tengja stillingar fyrir API-blokkun við einstakar síður, til dæmis er hægt að styrkja vernd á sumum vefsvæðum og slökkva á öðrum. Þú getur einnig valið lokað á ákveðnar JavaScript aðferðir, hluti, eiginleika og aðgerðir eða breytt skilagildum (til dæmis, framleitt rangar upplýsingar um kerfið). Sérstakur eiginleiki er NBS-hamurinn (Network boundary shield), sem gerir síðum ekki kleift að nota vafrann sem umboð á milli ytri og staðbundinna neta (allar beiðnir sem berast eru hleraðar og greindar).

Lokuð eða takmörkuð API:

  • window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp og VRFrameData.prototype.timestamp - nákvæman tímaúttak er hægt að nota til að bera kennsl á og framkvæma hliðarárásir .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) - notað til að ákvarða eiginleika grafíkundirkerfisins þegar notandi er auðkenndur.
  • AudioBuffer og AnalyserNode (AudioBuffer.getChannelData(), AudioBuffer.copyFromChannel(), AnalyserNode.getByteTimeDomainData(), AnalyserNode.getFloatTimeDomainData(), AnalyserNode.getByteFrequencyData() og AnalyserNode.getidentaFloat í gegnum tíðni hljóðmerkjagreiningu.
  • WebGLRenderingContext - auðkenning með greiningu á eiginleikum grafíkstafla og GPU.
  • MediaDevices.prototype.enumerateDevices - auðkenning með því að fá færibreytur og nöfn myndavélarinnar og hljóðnemans.
  • navigator.deviceMemory, navigator.hardwareConcurrency - að afla upplýsinga um vélbúnað.
  • XMLHttpRequest (XHR) - flytur safnaðar kerfisupplýsingar á ytri netþjón eftir að síðan hefur verið hlaðið.
  • ArrayBuffer - framkvæmir örarkitektúral Specter árásir.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - framkvæma árásir sem meta tafir við aðgang að gögnum.
  • Geolocation API (navigator.geolocation) - aðgangur að staðsetningarupplýsingum (viðbótin gerir þér kleift að afbaka skilað gögn).
  • Gamepad API (navigator.getGamepads()) er eitt af auðkenningarmerkjunum sem tekur tillit til tilvistar gamepad í kerfinu.
  • Virtual Reality API, Mixed Reality API - notkun sýndarveruleikatækifæris til auðkenningar.
  • window.name - leki yfir vefsvæði.
  • navigator.sendBeacon - notað fyrir vefgreiningar.

Heimild: opennet.ru

Bæta við athugasemd