Open Source Foundation te entwodui JShelter navigatè add-on pou limite JavaScript API

Free Software Foundation te entwodui pwojè JShelter, ki devlope yon adisyon navigatè pou pwoteje kont menas ki parèt lè w ap itilize JavaScript sou sit entènèt, tankou idantifikasyon kache, swiv mouvman ak akimilasyon done itilizatè yo. Kòd pwojè a distribye anba lisans GPLv3. Add-on prepare pou Firefox, Google Chrome, Opera, Brave, Microsoft Edge ak lòt navigatè ki baze sou motè Chromium la.

Pwojè a ap devlope kòm yon inisyativ ansanm ki finanse pa Fondasyon NLnet. Giorgio Maone, kreyatè NoScript add-on, ansanm ak fondatè pwojè J++ ak otè JS-Shield ak JavaScript Restrictor, te rantre tou nan devlopman JShelter. Yo itilize adisyon JavaScript Restrictor kòm baz pou nouvo pwojè a.

JShelter ka konsidere kòm yon kalite pare-feu pou koòdone pwogram JavaScript ki disponib nan sit entènèt ak aplikasyon entènèt. Add-on bay kat nivo pwoteksyon, osi byen ke yon mòd konfigirasyon fleksib pou aksè nan API a. Nivo zewo konplètman pèmèt aksè nan tout APIs, premye a gen ladan bloke minimòm ki pa deranje operasyon an nan paj, dezyèm nivo balans ant bloke ak konpatibilite, ak nivo katriyèm lan gen ladan bloke strik nan tout bagay ki pa nesesè.

Anviwònman bloke API yo ka mare nan sit endividyèl yo, pou egzanp, pwoteksyon ka ranfòse pou kèk sit, ak enfim pou lòt moun. Ou ka tou oaza bloke sèten metòd JavaScript, objè, pwopriyete, ak fonksyon, oswa chanje valè retounen (pa egzanp, pwodwi fo enfòmasyon sou sistèm nan). Yon karakteristik separe se mòd NBS (Network boundary shield), ki pa pèmèt paj yo sèvi ak navigatè a kòm yon prokurasyon ant rezo ekstèn ak rezo lokal (tout demann sortan yo entèsepte ak analize).

API ki bloke oswa ki limite:

  • window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp ak VRFrameData.prototype.timestamp - yo ka itilize pwodiksyon tan egzak la pou idantifye ak pote soti nan atak bò-chanèl .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) - yo itilize pou detèmine karakteristik subsistèm grafik la lè w ap idantifye yon itilizatè.
  • AudioBuffer ak AnalyserNode (AudioBuffer.getChannelData(), AudioBuffer.copyFromChannel(), AnalyserNode.getByteTimeDomainData(), AnalyserNode.getFloatTimeDomainData(), AnalyserNode.getByteFrequencyData() ak AnalyserNode.getByteFrequencyData() ak AnalyserNode.
  • WebGLRenderingContext - idantifikasyon atravè analiz de karakteristik nan pil grafik ak GPU.
  • MediaDevices.prototype.enumerateDevices - idantifikasyon pa jwenn paramèt ak non kamera a ak mikwofòn.
  • navigator.deviceMemory, navigator.hardwareConcurrency - jwenn enfòmasyon sou pyès ki nan konpitè.
  • XMLHttpRequest (XHR) - transfere enfòmasyon sistèm kolekte nan yon sèvè ekstèn apre paj la chaje.
  • ArrayBuffer - pote soti nan atak Spectre mikwochitekti.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - pote soti atak ki evalye reta lè gen aksè a done.
  • Geolocation API (navigator.geolocation) - aksè a enfòmasyon sou kote (anplis la pèmèt ou defòme done yo retounen).
  • Gamepad API (navigator.getGamepads()) se youn nan siy idantifikasyon ki pran an kont prezans yon gamepad nan sistèm nan.
  • Virtual Reality API, Mixed Reality API - itilizasyon paramèt aparèy reyalite vityèl pou idantifikasyon.
  • window.name - koule kwa-sit.
  • navigator.sendBeacon - itilize pou analiz entènèt.

Sous: opennet.ru

Add nouvo kòmantè