Open Source Foundation-ek JShelter arakatzailearen gehigarria aurkeztu zuen JavaScript APIa mugatzeko

Free Software Foundation-ek JShelter proiektua aurkeztu zuen, nabigatzaile gehigarri bat garatzen duena webguneetan JavaScript erabiltzean sortzen diren mehatxuetatik babesteko, ezkutuko identifikazioa, mugimenduen jarraipena eta erabiltzaileen datuen metaketa barne. Proiektuaren kodea GPLv3 lizentziapean banatzen da. Gehigarria Firefox, Google Chrome, Opera, Brave, Microsoft Edge eta Chromium motorean oinarritutako beste arakatzaile batzuetarako prestatuta dago.

Proiektua NLnet Fundazioak finantzatutako baterako ekimen gisa garatzen ari da. Giorgio Maone, NoScript gehigarriaren sortzailea, baita J++ proiektuaren sortzaileak eta JS-Shield eta JavaScript Restrictor gehigarrien egileak ere, JShelterren garapenean batu ziren. JavaScript Restrictor gehigarria erabiltzen da proiektu berriaren oinarri gisa.

JShelter webgune eta web aplikazioetarako eskuragarri dauden JavaScript programazio interfazeetarako suebaki moduko bat dela pentsa daiteke. Gehigarriak lau babes maila eskaintzen ditu, baita APIra sartzeko konfigurazio modu malgua ere. Zero mailak API guztietarako sarbidea ahalbidetzen du, lehenengoak orrialdeen funtzionamendua eteten ez duen blokeo minimoa barne hartzen du, bigarren mailan blokeoaren eta bateragarritasunaren arteko oreka, eta laugarren mailak beharrezkoa ez den guztiaren blokeo zorrotza barne hartzen du.

API blokeatzeko ezarpenak gune indibidualekin lotu daitezke; adibidez, babesa indartu daiteke gune batzuetan eta desgaitu beste batzuetan. JavaScript metodo, objektu, propietate eta funtzio jakin batzuk selektiboki blokeatu ditzakezu, edo itzultzeko balioak alda ditzakezu (adibidez, sistemari buruzko informazio faltsua ekoitzi). Ezaugarri bereizi bat NBS (Network boundary shield) modua da, eta horrek ez die orriei nabigatzailea kanpoko eta tokiko sareen arteko proxy gisa erabiltzea baimentzen (irteerako eskaera guztiak atzematen eta aztertzen dira).

Blokeatutako edo mugatutako APIak:

  • window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp eta VRFrameData.prototype.timestamp - denbora zehatza irteera erabil daiteke alboko kanaleko erasoak identifikatzeko eta egiteko .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) - erabiltzaile bat identifikatzean grafikoen azpisistemaren ezaugarriak zehazteko erabiltzen da.
  • AudioBuffer eta AnalyserNode (AudioBuffer.getChannelData(), AudioBuffer.copyFromChannel(), AnalyserNode.getByteTimeDomainData(), AnalyserNode.getFloatTimeDomainData(), AnalyserNode.getByteFrequencyData() eta AnalyserNode.
  • WebGLRenderingContext - grafikoen pila eta GPUren ezaugarrien analisiaren bidez identifikatzea.
  • MediaDevices.prototype.enumerateDevices - kameraren eta mikrofonoaren parametroak eta izenak lortuz identifikatzea.
  • navigator.deviceMemory, navigator.hardwareConcurrency - hardwareari buruzko informazioa lortzea.
  • XMLHttpRequest (XHR) - bildutako sistemaren informazioa kanpoko zerbitzari batera transferitzen du orria kargatu ondoren.
  • ArrayBuffer - Spectre eraso mikroarkitekturalak egiten.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - datuak sartzerakoan atzerapenak ebaluatzen dituzten erasoak egitea.
  • Geolocation API (navigator.geolocation) - kokapen-informaziorako sarbidea (gehitzeak itzultzen diren datuak desitxuratzeko aukera ematen du).
  • Gamepad API (navigator.getGamepads()) sisteman gamepad bat egotea kontuan hartzen duen identifikazio-seinaleetako bat da.
  • Virtual Reality API, Mixed Reality API - errealitate birtualeko gailuaren parametroak erabiltzea identifikatzeko.
  • window.name - guneen arteko filtrazioak.
  • navigator.sendBeacon - web analitiketarako erabiltzen da.

Iturria: opennet.ru

Gehitu iruzkin berria