Open Source Foundation představila doplněk prohlížeče JShelter pro omezení JavaScript API

Free Software Foundation představila projekt JShelter, který vyvíjí doplněk prohlížeče pro ochranu před hrozbami, které vznikají při používání JavaScriptu na webových stránkách, včetně skryté identifikace, sledování pohybu a hromadění uživatelských dat. Kód projektu je distribuován pod licencí GPLv3. Doplněk je připraven pro Firefox, Google Chrome, Opera, Brave, Microsoft Edge a další prohlížeče založené na enginu Chromium.

Projekt vzniká jako společná iniciativa financovaná Nadací NLnet. Do vývoje JShelter se zapojil i Giorgio Maone, tvůrce doplňku NoScript, a také zakladatelé projektu J++ a autoři doplňků JS-Shield a JavaScript Restrictor. Jako základ pro nový projekt je použit doplněk JavaScript Restrictor.

JShelter lze považovat za jakýsi firewall pro programovací rozhraní JavaScriptu, která jsou k dispozici pro webové stránky a webové aplikace. Doplněk poskytuje čtyři úrovně ochrany a také flexibilní konfigurační režim pro přístup k API. Úroveň nula kompletně umožňuje přístup ke všem API, první zahrnuje minimální blokování nenarušující chod stránek, druhá úroveň balancuje mezi blokováním a kompatibilitou a čtvrtá úroveň zahrnuje striktní blokování všeho zbytečného.

Nastavení blokování API lze svázat s jednotlivými weby, například u některých webů lze posílit ochranu, u jiných deaktivovat. Můžete také selektivně blokovat určité metody JavaScriptu, objekty, vlastnosti a funkce nebo měnit návratové hodnoty (například vytvářet nepravdivé informace o systému). Samostatnou funkcí je režim NBS (Network boundary shield), který neumožňuje stránkám používat prohlížeč jako proxy mezi externími a lokálními sítěmi (všechny odchozí požadavky jsou zachycovány a analyzovány).

Blokovaná nebo omezená rozhraní API:

  • window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp a VRFrameData.prototype.timestamp – přesný časový výstup lze použít k identifikaci a provedení útoků na postranním kanálu .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) – používá se k určení vlastností grafického subsystému při identifikaci uživatele.
  • Audiobuffer a Analysernode (Audiobuffer.getChanneldata (), Audiobuffer.copyfromchannel (), analysernode.getBytimedomaindata (), analySernode.getfloatTimedoma Indata (), analysernode.getbytefrequencydata () a analysernode (analýza zvuku) pomocí identifikace signálu (analysernode.getfloatfrequency)
  • WebGLRenderingContext - identifikace pomocí analýzy vlastností grafického zásobníku a GPU.
  • MediaDevices.prototype.enumerateDevices - identifikace získáním parametrů a názvů kamery a mikrofonu.
  • navigator.deviceMemory, navigator.hardwareConcurrency - získávání informací o hardwaru.
  • XMLHttpRequest (XHR) – po načtení stránky přenese shromážděné systémové informace na externí server.
  • ArrayBuffer - provádění mikroarchitektonických útoků Spectre.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - provádění útoků, které vyhodnocují zpoždění při přístupu k datům.
  • Geolocation API (navigator.geolocation) - přístup k informacím o poloze (doplnění umožňuje zkreslit vrácená data).
  • Gamepad API (navigator.getGamepads()) je jedním z identifikačních znaků, které zohledňují přítomnost gamepadu v systému.
  • Virtual Reality API, Mixed Reality API - využití parametrů zařízení virtuální reality pro identifikaci.
  • window.name – úniky mezi weby.
  • navigator.sendBeacon – používá se pro webovou analýzu.

Zdroj: opennet.ru

Přidat komentář