Open Source Foundation introducerade webbläsartillägget JShelter för att begränsa JavaScript API

Free Software Foundation introducerade JShelter-projektet, som utvecklar ett webbläsartillägg för att skydda mot hot som uppstår när JavaScript används på webbplatser, inklusive dold identifiering, spårning av rörelser och ackumulering av användardata. Projektkoden distribueras under GPLv3-licensen. Tillägget är förberett för Firefox, Google Chrome, Opera, Brave, Microsoft Edge och andra webbläsare baserade på Chromium-motorn.

Projektet utvecklas som ett gemensamt initiativ finansierat av NLnet Foundation. Giorgio Maone, skapare av tillägget NoScript, såväl som grundarna av J++-projektet och författarna till tilläggen JS-Shield och JavaScript Restrictor, gick också med i utvecklingen av JShelter. JavaScript Restrictor-tillägget används som grund för det nya projektet.

JShelter kan ses som en sorts brandvägg för JavaScript-programmeringsgränssnitt tillgängliga för webbplatser och webbapplikationer. Tillägget ger fyra skyddsnivåer, samt ett flexibelt konfigurationsläge för åtkomst till API. Nivå noll ger helt åtkomst till alla API:er, den första inkluderar minimal blockering som inte stör driften av sidor, den andra nivån balanserar mellan blockering och kompatibilitet, och den fjärde nivån inkluderar strikt blockering av allt onödigt.

API-blockeringsinställningar kan kopplas till enskilda webbplatser, till exempel kan skyddet förstärkas för vissa webbplatser och inaktiveras för andra. Du kan också selektivt blockera vissa JavaScript-metoder, objekt, egenskaper och funktioner, eller ändra returvärden (till exempel producera falsk information om systemet). En separat funktion är NBS-läget (Network boundary shield), som inte tillåter sidor att använda webbläsaren som proxy mellan externa och lokala nätverk (alla utgående förfrågningar fångas upp och analyseras).

Blockerade eller begränsade API:er:

  • window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp och VRFrameData.prototype.timestamp – den exakta tidsutgången kan användas för att identifiera och utföra sidokanalsattacker .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) - används för att bestämma funktionerna i det grafiska undersystemet när en användare identifieras.
  • AudioBuffer och AnalyserNode (AudioBuffer.getChannelData(), AudioBuffer.copyFromChannel(), AnalyserNode.getByteTimeDomainData(), AnalyserNode.getFloatTimeDomainData(), AnalyserNode.getByteFrequencyData() och AnalyserNode.getidentaFloatanalys genomFrequency signal.getidentaFloat())
  • WebGLRenderingContext - identifiering genom analys av funktioner i grafikstacken och GPU.
  • MediaDevices.prototype.enumerateDevices - identifiering genom att erhålla parametrar och namn på kameran och mikrofonen.
  • navigator.deviceMemory, navigator.hardwareConcurrency - få information om hårdvara.
  • XMLHttpRequest (XHR) - överför insamlad systeminformation till en extern server efter att sidan har laddats.
  • ArrayBuffer - utför mikroarkitektoniska Spectre-attacker.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - utför attacker som utvärderar förseningar vid åtkomst till data.
  • Geolocation API (navigator.geolocation) - tillgång till platsinformation (tillägget gör att du kan förvränga returnerad data).
  • Gamepad API (navigator.getGamepads()) är ett av identifikationstecknen som tar hänsyn till närvaron av en gamepad i systemet.
  • Virtual Reality API, Mixed Reality API - användning av virtuell verklighet enhetsparametrar för identifiering.
  • window.name - läckor över webbplatser.
  • navigator.sendBeacon - används för webbanalys.

Källa: opennet.ru

Lägg en kommentar