Fondacioni Open Source prezantoi shtesën e shfletuesit JShelter për të kufizuar API-në JavaScript

Fondacioni i Software-it të Lirë prezantoi projektin JShelter, i cili zhvillon një shtesë të shfletuesit për të mbrojtur kundër kërcënimeve që lindin kur përdorni JavaScript në faqet e internetit, duke përfshirë identifikimin e fshehur, ndjekjen e lëvizjeve dhe grumbullimin e të dhënave të përdoruesit. Kodi i projektit shpërndahet nën licencën GPLv3. Shtesa është përgatitur për Firefox, Google Chrome, Opera, Brave, Microsoft Edge dhe shfletues të tjerë të bazuar në motorin Chromium.

Projekti po zhvillohet si një iniciativë e përbashkët e financuar nga Fondacioni NLnet. Giorgio Maone, krijuesi i shtesës NoScript, si dhe themeluesit e projektit J++ dhe autorët e shtesave JS-Shield dhe JavaScript Restrictor, iu bashkuan gjithashtu zhvillimit të JShelter. Shtesa JavaScript Restrictor përdoret si bazë për projektin e ri.

JShelter mund të mendohet si një lloj muri zjarri për ndërfaqet programuese JavaScript të disponueshme për faqet e internetit dhe aplikacionet në internet. Shtesa ofron katër nivele mbrojtjeje, si dhe një mënyrë konfigurimi fleksibël për qasje në API. Niveli zero lejon plotësisht aksesin në të gjitha API-të, i pari përfshin bllokimin minimal që nuk prish funksionimin e faqeve, niveli i dytë balancon midis bllokimit dhe përputhshmërisë dhe niveli i katërt përfshin bllokimin e rreptë të gjithçkaje të panevojshme.

Cilësimet e bllokimit të API mund të lidhen me sajte individuale, për shembull, mbrojtja mund të forcohet për disa sajte dhe të çaktivizohet për të tjerët. Ju gjithashtu mund të bllokoni në mënyrë selektive disa metoda, objekte, veti dhe funksione JavaScript, ose të ndryshoni vlerat e kthimit (për shembull, të prodhoni informacion të rremë rreth sistemit). Një veçori e veçantë është modaliteti NBS (mburoja e kufirit të rrjetit), i cili nuk lejon që faqet të përdorin shfletuesin si një përfaqësues midis rrjeteve të jashtme dhe lokale (të gjitha kërkesat dalëse përgjohen dhe analizohen).

API të bllokuara ose të kufizuara:

  • window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp dhe VRFrameData.prototype.timestamp - dalja e saktë e kohës mund të përdoret për të identifikuar dhe kryer sulme të kanaleve anësore .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) - përdoret për të përcaktuar veçoritë e nënsistemit grafik kur identifikon një përdorues.
  • Audiobuffer dhe Analysernode (Audiobuffer.getChanneldata (), Audiobuffer.copyfromchannel (), analysernode.getBytimedomaindata (), analySernode.getfloatTimedoma Indata (), analysernode.getbytefrequencydata () dhe analiza e frekuencës së tingullit () merr analysernode.
  • WebGLRenderingContext - identifikimi përmes analizës së veçorive të stakut grafik dhe GPU-së.
  • MediaDevices.prototype.enumerateDevices - identifikimi duke marrë parametrat dhe emrat e kamerës dhe mikrofonit.
  • navigator.deviceMemory, navigator.hardwareConcurrency - marrja e informacionit rreth harduerit.
  • XMLHttpRequest (XHR) - transferon informacionin e mbledhur të sistemit në një server të jashtëm pasi faqja është ngarkuar.
  • ArrayBuffer - kryerja e sulmeve mikroarkitekturore Spectre.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - kryerja e sulmeve që vlerësojnë vonesat gjatë qasjes në të dhëna.
  • API gjeolocation (navigator.geolocation) - qasja në informacionin e vendndodhjes (shtimi ju lejon të shtrembëroni të dhënat e kthyera).
  • Gamepad API (navigator.getGamepads()) është një nga shenjat identifikuese që merr parasysh praninë e një gamepad në sistem.
  • API i realitetit virtual, API i realitetit të përzier - përdorimi i parametrave të pajisjes së realitetit virtual për identifikim.
  • emri i dritares - rrjedhje ndër-site.
  • navigator.sendBeacon - përdoret për analitikë në internet.

Burimi: opennet.ru

Shto një koment