Open Source Foundation introduserte nettlesertillegget JShelter for å begrense JavaScript API

Free Software Foundation introduserte JShelter-prosjektet, som utvikler et nettlesertillegg for å beskytte mot trusler som oppstår ved bruk av JavaScript på nettsider, inkludert skjult identifikasjon, sporing av bevegelser og akkumulering av brukerdata. Prosjektkoden distribueres under GPLv3-lisensen. Tillegget er forberedt for Firefox, Google Chrome, Opera, Brave, Microsoft Edge og andre nettlesere basert på Chromium-motoren.

Prosjektet utvikles som et felles initiativ finansiert av NLnet Foundation. Giorgio Maone, skaperen av tillegget NoScript, så vel som grunnleggerne av J++-prosjektet og forfatterne av tilleggene JS-Shield og JavaScript Restrictor, ble også med i utviklingen av JShelter. JavaScript Restrictor-tillegget brukes som grunnlag for det nye prosjektet.

JShelter kan tenkes på som en slags brannmur for JavaScript-programmeringsgrensesnitt tilgjengelig for nettsteder og nettapplikasjoner. Tillegget gir fire beskyttelsesnivåer, samt en fleksibel konfigurasjonsmodus for tilgang til API. Nivå null gir fullstendig tilgang til alle APIer, det første inkluderer minimal blokkering som ikke forstyrrer driften av sider, det andre nivået balanserer mellom blokkering og kompatibilitet, og det fjerde nivået inkluderer streng blokkering av alt som er unødvendig.

API-blokkeringsinnstillinger kan knyttes til individuelle nettsteder, for eksempel kan beskyttelsen styrkes for noen nettsteder og deaktiveres for andre. Du kan også selektivt blokkere visse JavaScript-metoder, objekter, egenskaper og funksjoner, eller endre returverdier (for eksempel produsere falsk informasjon om systemet). En egen funksjon er NBS-modusen (Network boundary shield), som ikke tillater sider å bruke nettleseren som en proxy mellom eksterne og lokale nettverk (alle utgående forespørsler blir fanget opp og analysert).

Blokkerte eller begrensede APIer:

  • window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp og VRFrameData.prototype.timestamp – den nøyaktige tiden kan brukes til å identifisere og utføre sidekanalangrep .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) - brukes til å bestemme funksjonene til grafikkundersystemet når en bruker identifiseres.
  • AudioBuffer og AnalyserNode (AudioBuffer.getChannelData(), AudioBuffer.copyFromChannel(), AnalyserNode.getByteTimeDomainData(), AnalyserNode.getFloatTimeDomainData(), AnalyserNode.getByteFrequencyData() og AnalyserNode.getidentaFloat()-analyse av audiosignaler.
  • WebGLRenderingContext - identifikasjon gjennom analyse av funksjonene til grafikkstakken og GPU.
  • MediaDevices.prototype.enumerateDevices - identifikasjon ved å hente parametere og navn på kamera og mikrofon.
  • navigator.deviceMemory, navigator.hardwareConcurrency - innhenting av informasjon om maskinvare.
  • XMLHttpRequest (XHR) - overfører innsamlet systeminformasjon til en ekstern server etter at siden er lastet.
  • ArrayBuffer - utfører mikroarkitektoniske Spectre-angrep.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - utfører angrep som evaluerer forsinkelser ved tilgang til data.
  • Geolocation API (navigator.geolocation) - tilgang til stedsinformasjon (tillegget lar deg forvrenge de returnerte dataene).
  • Gamepad API (navigator.getGamepads()) er et av identifikasjonsskiltene som tar hensyn til tilstedeværelsen av en gamepad i systemet.
  • Virtual Reality API, Mixed Reality API - bruk av virtual reality-enhetsparametere for identifikasjon.
  • window.name - lekkasjer på tvers av nettsteder.
  • navigator.sendBeacon - brukes til nettanalyse.

Kilde: opennet.ru

Legg til en kommentar