Az Open Source Foundation bemutatta a JShelter böngészőbővítményt a JavaScript API korlátozására

A Free Software Foundation bemutatta a JShelter projektet, amely egy böngészőbővítményt fejleszt a JavaScript webhelyeken történő használatakor fellépő fenyegetések elleni védelem érdekében, beleértve a rejtett azonosítást, a mozgások nyomon követését és a felhasználói adatok felhalmozódását. A projekt kódja a GPLv3 licenc alatt kerül terjesztésre. A kiegészítő Firefox, Google Chrome, Opera, Brave, Microsoft Edge és más Chromium motorra épülő böngészőkhöz készült.

A projektet az NLnet Alapítvány közös kezdeményezéseként fejlesztik. Giorgio Maone, a NoScript kiegészítő megalkotója, valamint a J++ projekt alapítói, valamint a JS-Shield és JavaScript Restrictor kiegészítők szerzői is csatlakoztak a JShelter fejlesztéséhez. Az új projekt alapjául a JavaScript Restrictor kiegészítő szolgál.

A JShelter egyfajta tűzfalnak tekinthető a webhelyek és webes alkalmazások számára elérhető JavaScript programozási felületekhez. A kiegészítő négy szintű védelmet, valamint rugalmas konfigurációs módot biztosít az API-hoz való hozzáféréshez. A nulladik szint teljesen lehetővé teszi az összes API-hoz való hozzáférést, az első minimális blokkolást tartalmaz, amely nem zavarja az oldalak működését, a második szint a blokkolás és a kompatibilitás között egyensúlyoz, a negyedik szint pedig minden felesleges szigorú letiltását tartalmazza.

Az API blokkolási beállítások az egyes oldalakhoz köthetők, például egyes webhelyek védelme megerősíthető, másokon pedig letiltható. Szelektíven blokkolhat bizonyos JavaScript metódusokat, objektumokat, tulajdonságokat és függvényeket, vagy módosíthatja a visszatérési értékeket (például hamis információkat állíthat elő a rendszerről). Külön funkció az NBS (Network boundary shield) mód, amely nem teszi lehetővé az oldalak számára, hogy a böngészőt proxyként használják a külső és a helyi hálózatok között (minden kimenő kérést elfog és elemzi).

Letiltott vagy korlátozott API-k:

  • window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timestamp, Gamepad.prototype.timestamp és VRFrameData.prototype.timestamp – a pontos időkimenet felhasználható oldalcsatornás támadások azonosítására és végrehajtására .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) – a grafikus alrendszer jellemzőinek meghatározására szolgál a felhasználó azonosításakor.
  • AudioBuffer és AnalyserNode (AudioBuffer.getChannelData(), AudioBuffer.copyFromChannel(), AnalyserNode.getByteTimeDomainData(), AnalyserNode.getFloatTimeDomainData(), AnalyserNode.getByteFrequencyFrequencyFrequencyAzonosítás a hangon keresztül().Data Analyser()
  • WebGLRenderingContext – azonosítás a grafikus verem és a GPU jellemzőinek elemzésén keresztül.
  • MediaDevices.prototype.enumerateDevices - azonosítás a kamera és a mikrofon paramétereinek és nevének megszerzésével.
  • navigator.deviceMemory, navigator.hardwareConcurrency - információszerzés a hardverről.
  • XMLHttpRequest (XHR) – az összegyűjtött rendszerinformációkat egy külső szerverre továbbítja az oldal betöltése után.
  • ArrayBuffer - mikroarchitektúrás Spectre támadások végrehajtása.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) – olyan támadások végrehajtása, amelyek kiértékeli az adatok elérésekor jelentkező késéseket.
  • Geolocation API (navigator.geolocation) - hozzáférés a helyadatokhoz (a kiegészítés lehetővé teszi a visszaküldött adatok torzítását).
  • A Gamepad API (navigator.getGamepads()) az egyik azonosító jel, amely figyelembe veszi a játékvezérlő jelenlétét a rendszerben.
  • Virtual Reality API, Mixed Reality API - a virtuális valóság eszközparamétereinek használata az azonosításhoz.
  • window.name – a webhelyek közötti szivárgás.
  • navigator.sendBeacon – webes elemzéshez használatos.

Forrás: opennet.ru

Hozzászólás