Open Source Foundation predstavila doplnok prehliadača JShelter na obmedzenie rozhrania JavaScript API

Free Software Foundation predstavila projekt JShelter, ktorý vyvíja doplnok prehliadača na ochranu pred hrozbami, ktoré vznikajú pri používaní JavaScriptu na webových stránkach, vrátane skrytej identifikácie, sledovania pohybu a hromadenia používateľských údajov. Kód projektu je distribuovaný pod licenciou GPLv3. Doplnok je pripravený pre Firefox, Google Chrome, Opera, Brave, Microsoft Edge a ďalšie prehliadače založené na engine Chromium.

Projekt vzniká ako spoločná iniciatíva financovaná Nadáciou NLnet. Do vývoja JShelter sa zapojil aj Giorgio Maone, tvorca doplnku NoScript, ako aj zakladatelia projektu J++ a autori doplnkov JS-Shield a JavaScript Restrictor. Ako základ pre nový projekt sa používa doplnok JavaScript Restrictor.

JShelter si možno predstaviť ako druh brány firewall pre programovacie rozhrania JavaScriptu dostupné pre webové stránky a webové aplikácie. Doplnok poskytuje štyri úrovne ochrany, ako aj flexibilný konfiguračný režim pre prístup k API. Úroveň nula úplne umožňuje prístup ku všetkým API, prvá zahŕňa minimálne blokovanie, ktoré nenarúša chod stránok, druhá úroveň balansuje medzi blokovaním a kompatibilitou a štvrtá úroveň zahŕňa prísne blokovanie všetkého nepotrebného.

Nastavenia blokovania API môžu byť prepojené s jednotlivými stránkami, napríklad pre niektoré stránky môže byť posilnená ochrana, pre iné vypnutá. Môžete tiež selektívne blokovať určité metódy, objekty, vlastnosti a funkcie JavaScriptu alebo meniť návratové hodnoty (napríklad vytvárať nepravdivé informácie o systéme). Samostatnou funkciou je režim NBS (Network boundary shield), ktorý stránkam neumožňuje používať prehliadač ako proxy medzi externými a lokálnymi sieťami (všetky odchádzajúce požiadavky sú zachytávané a analyzované).

Blokované alebo obmedzené rozhrania API:

  • window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp a VRFrameData.prototype.timestamp – výstup presného času možno použiť na identifikáciu a uskutočnenie útokov na bočný kanál .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) – používa sa na určenie vlastností grafického subsystému pri identifikácii používateľa.
  • AudioBuffer a AnalyserNode (AudioBuffer.getChannelData(), AudioBuffer.copyFromChannel(), AnalyserNode.getByteTimeDomainData(), AnalyserNode.getFloatTimeDomainData(), AnalyserNode.getByteFrequencyData() a Identifikácia signálov AnalyserFrequencyData() a AnalyserFrequency signals audioget.
  • WebGLRenderingContext - identifikácia prostredníctvom analýzy vlastností grafického zásobníka a GPU.
  • MediaDevices.prototype.enumerateDevices - identifikácia získaním parametrov a názvov kamery a mikrofónu.
  • navigator.deviceMemory, navigator.hardwareConcurrency - získavanie informácií o hardvéri.
  • XMLHttpRequest (XHR) – po načítaní stránky prenáša zozbierané systémové informácie na externý server.
  • ArrayBuffer - vykonávanie mikroarchitektonických útokov Spectre.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - vykonávanie útokov, ktoré vyhodnocujú oneskorenia pri prístupe k údajom.
  • Geolocation API (navigator.geolocation) - prístup k informáciám o polohe (doplnok umožňuje skreslenie vrátených údajov).
  • Gamepad API (navigator.getGamepads()) je jedným z identifikačných znakov, ktoré zohľadňujú prítomnosť gamepadu v systéme.
  • Virtual Reality API, Mixed Reality API - využitie parametrov zariadenia virtuálnej reality na identifikáciu.
  • window.name - úniky medzi stránkami.
  • navigator.sendBeacon – používa sa na webovú analýzu.

Zdroj: opennet.ru

Pridať komentár