Open Source Foundation tutvustas JavaScripti API piiramiseks JShelteri brauseri lisandmoodulit

Free Software Foundation tutvustas projekti JShelter, mis arendab brauseri lisandmoodulit, mis kaitseb veebisaitidel JavaScripti kasutamisel tekkivate ohtude eest, sealhulgas varjatud tuvastamise, liikumiste jälgimise ja kasutajaandmete kogumise eest. Projekti koodi levitatakse GPLv3 litsentsi all. Lisand on ette valmistatud Firefoxi, Google Chrome'i, Opera, Brave, Microsoft Edge'i ja teiste Chromiumi mootoril põhinevate brauserite jaoks.

Projekti arendatakse ühisalgatusena, mida rahastab SA NLnet. JShelteri arendamisega liitusid ka NoScripti lisandmooduli looja Giorgio Maone, samuti projekti J++ asutajad ning JS-Shield ja JavaScript Restrictor lisandmoodulite autorid. Uue projekti aluseks on JavaScripti piiraja lisandmoodul.

JShelterit võib pidada omamoodi tulemüüriks veebisaitidele ja veebirakendustele kättesaadavate JavaScripti programmeerimisliideste jaoks. Lisandmoodul pakub neli kaitsetaset ja paindlikku konfiguratsioonirežiimi API-le juurdepääsuks. Tase null võimaldab täielikult ligipääsu kõikidele API-dele, esimene sisaldab minimaalset blokeerimist, mis ei häiri lehtede tööd, teine ​​tase tasakaalustab blokeerimise ja ühilduvuse ning neljas tase sisaldab kõige ebavajaliku ranget blokeerimist.

API blokeerimisseadeid saab siduda üksikute saitidega, näiteks saab mõne saidi kaitset tugevdada ja teiste puhul keelata. Samuti saate valikuliselt blokeerida teatud JavaScripti meetodeid, objekte, atribuute ja funktsioone või muuta tagastusväärtusi (näiteks toota süsteemi kohta valeteavet). Eraldi funktsioon on NBS (Network boundary shield) režiim, mis ei luba lehtedel kasutada brauserit puhverserverina välis- ja kohalike võrkude vahel (kõik väljuvad päringud püütakse kinni ja analüüsitakse).

Blokeeritud või piiratud API-d:

  • window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timestamp, Gamepad.prototype.timestamp ja VRFrameData.prototype.timestamp – täpset ajaväljundit saab kasutada külgkanalite rünnakute tuvastamiseks ja läbiviimiseks .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) – kasutatakse graafika alamsüsteemi funktsioonide määramiseks kasutaja tuvastamisel.
  • AudioBuffer ja AnalyserNode (AudioBuffer.getChannelData(), AudioBuffer.copyFromChannel(), AnalyserNode.getByteTimeDomainData(), AnalyserNode.getFloatTimeDomainData(), AnalyserNode.getByteFrequencyFrequencyFrequencyFrequencyIdentification of audio()Get Signaalide()-Analy/FrequencyData().Data kaudu
  • WebGLRenderingContext – tuvastamine graafikapinu ja GPU funktsioonide analüüsi kaudu.
  • MediaDevices.prototype.enumerateDevices – tuvastamine kaamera ja mikrofoni parameetrite ja nimede hankimise teel.
  • navigator.deviceMemory, navigator.hardwareConcurrency – riistvara kohta teabe hankimine.
  • XMLHttpRequest (XHR) – edastab kogutud süsteemiteabe pärast lehe laadimist välisserverisse.
  • ArrayBuffer - mikroarhitektuuriliste Spectre rünnakute läbiviimine.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - rünnakute läbiviimine, mis hindab andmetele juurdepääsu viivitusi.
  • Geolocation API (navigator.geolocation) - juurdepääs asukohateabele (lisand võimaldab tagastatud andmeid moonutada).
  • Mängupuldi API (navigator.getGamepads()) on üks identifitseerimismärke, mis võtab arvesse mängupuldi olemasolu süsteemis.
  • Virtual Reality API, Mixed Reality API – virtuaalreaalsuse seadme parameetrite kasutamine tuvastamisel.
  • window.name – saidiülesed lekked.
  • navigator.sendBeacon – kasutatakse veebianalüütika jaoks.

Allikas: opennet.ru

Lisa kommentaar