La Open Source Foundation lanĉis la JShelter-retumilon aldonaĵon por limigi la JavaScript API

La Free Software Foundation enkondukis la projekton JShelter, kiu disvolvas retumilon aldonaĵon por protekti kontraŭ minacoj, kiuj aperas dum uzado de JavaScript en retejoj, inkluzive de kaŝita identigo, spurado de movadoj kaj la amasiĝo de uzantdatenoj. La projektkodo estas distribuita sub la permesilo GPLv3. La aldonaĵo estas preta por Firefox, Google Chrome, Opera, Brave, Microsoft Edge kaj aliaj retumiloj bazitaj sur la Chromium-motoro.

La projekto estas evoluigita kiel komuna iniciato financita fare de la NLnet Foundation. Giorgio Maone, kreinto de la NoScript-aldonaĵo, same kiel la fondintoj de la J++-projekto kaj la verkintoj de la JS-Shield kaj JavaScript Restrictor-aldonaĵoj, ankaŭ aliĝis al la evoluo de JShelter. La aldono de JavaScript Restrictor estas uzata kiel bazo por la nova projekto.

JShelter povas esti opiniita kiel speco de fajroŝirmilo por JavaScript-programaj interfacoj haveblaj al retejoj kaj retejo-aplikoj. La aldonaĵo disponigas kvar nivelojn de protekto, same kiel flekseblan agordan reĝimon por aliro al la API. Nivelo nul tute permesas aliron al ĉiuj API-oj, la unua inkluzivas minimuman blokadon, kiu ne interrompas la funkciadon de paĝoj, la dua nivelo ekvilibrigas inter blokado kaj kongruo, kaj la kvara nivelo inkluzivas striktan blokadon de ĉio nenecesa.

API-blokaj agordoj povas esti ligitaj al individuaj retejoj, ekzemple, protekto povas esti plifortigita por iuj retejoj, kaj malŝaltita por aliaj. Vi ankaŭ povas elekte bloki iujn JavaScript-metodojn, objektojn, ecojn kaj funkciojn, aŭ ŝanĝi revenajn valorojn (ekzemple, produkti falsajn informojn pri la sistemo). Aparta funkcio estas la reĝimo NBS (Network boundary shield), kiu ne permesas al paĝoj uzi la retumilon kiel prokurilon inter eksteraj kaj lokaj retoj (ĉiuj eksiĝintaj petoj estas kaptitaj kaj analizitaj).

Blokitaj aŭ limigitaj API-oj:

  • window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp kaj VRFrameData.prototype.timestamp - la ĝusta tempo eligo povas esti uzata por identigi kaj efektivigi flankajn atakojn .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) - uzata por determini la trajtojn de la grafika subsistemo dum identigado de uzanto.
  • AudioBuffer kaj AnalyserNode (AudioBuffer.getChannelData(), AudioBuffer.copyFromChannel(), AnalyserNode.getByteTimeDomainData(), AnalyserNode.getFloatTimeDomainData(), AnalyserNode.getByteFrequencyData() kaj AnalyserNode.getByteFrequencyData() kaj AnalyserNode.
  • WebGLRenderingContext - identigo per analizo de trajtoj de la grafika stako kaj GPU.
  • MediaDevices.prototype.enumerateDevices - identigo per akiro de parametroj kaj nomoj de la fotilo kaj mikrofono.
  • navigator.deviceMemory, navigator.hardwareConcurrency - akiro de informoj pri aparataro.
  • XMLHttpRequest (XHR) - transdonas kolektitajn sisteminformojn al ekstera servilo post kiam la paĝo estas ŝarĝita.
  • ArrayBuffer - efektivigante mikroarkitekturajn Spectre-atakojn.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - efektivigante atakojn, kiuj taksas prokrastojn dum aliro al datumoj.
  • Geolocation API (navigator.geolocation) - aliro al loka informo (la aldono permesas distordi la revenitajn datumojn).
  • Gamepad API (navigator.getGamepads()) estas unu el la identigaj signoj, kiuj konsideras la ĉeeston de ludpad en la sistemo.
  • Virtual Reality API, Mixed Reality API - uzo de virtualrealecaj aparatparametroj por identigo.
  • window.name - trans-ejaj likoj.
  • navigator.sendBeacon - uzata por interreta analizo.

fonto: opennet.ru

Aldoni komenton