開源基金會推出 JShelter 瀏覽器外掛程式來限制 JavaScript API

自由軟體基金會推出了 JShelter 項目,該項目開發一個瀏覽器插件,以防止在網站上使用 JavaScript 時出現的威脅,包括隱藏識別、追蹤行動和用戶資料累積。專案代碼根據 GPLv3 許可證分發。該外掛適用於 Firefox、Google Chrome、Opera、Brave、Microsoft Edge 和其他基於 Chromium 引擎的瀏覽器。

該項目是由 NLnet 基金會資助的聯合計劃。 NoScript 附加元件的創建者、J++ 專案的創始人以及 JS-Shield 和 JavaScript Restrictor 附加元件的作者 Giorgio Maone 也加入了 JShelter 的開發。 JavaScript Restrictor 附加元件被用來作為新專案的基礎。

JShelter 可以被認為是網站和 Web 應用程式可用的 JavaScript 程式介面的一種防火牆。此附加元件提供了四個層級的保護,以及用於存取 API 的靈活配置模式。零級完全允許存取所有 API,第一級包括不中斷頁面操作的最小阻塞,第二級在阻塞和相容性之間取得平衡,第四級包括嚴格阻塞所有不必要的內容。

API 阻止設定可以與各個網站綁定,例如,可以對某些網站加強保護,而對其他網站停用。您也可以選擇性地封鎖某些 JavaScript 方法、物件、屬性和函數,或變更傳回值(例如,產生有關係統的虛假資訊)。一個單獨的功能是NBS(網路邊界屏蔽)模式,該模式不允許頁面使用瀏覽器作為外部網路和本地網路之間的代理(所有傳出請求都將被攔截和分析)。

阻止或限制的 API:

  • window.Date、window.performance.now()、window.PerformanceEntry、Event.prototype.timeStamp、Gamepad.prototype.timestamp 和 VRFrameData.prototype.timestamp - 準確的時間輸出可用於識別和執行旁路攻擊。
  • HTMLCanvasElement (canvas.toDataURL()、canvas.toBlob()、CanvasRenderingContext2D.getImageData、OffscreenCanvas.convertToBlob()) - 用於識別使用者時確定圖形子系統的特徵。
  • AudioBuffer 和 AnalyserNode(AudioBuffer.getChannelData()、AudioBuffer.copyFromChannel()、AnalyserNode.getByteTimeDomainData()、AnalyserNode.getFloatTimeDomainData()、AnalyserNode.getByteFrequencyData() 和 Anaqu​​yage() 和 Anaquart) 進行音訊分析)。
  • WebGLRenderingContext - 透過分析圖形堆疊和 GPU 的功能進行識別。
  • MediaDevices.prototype.enumerateDevices - 透過獲取攝影機和麥克風的參數和名稱進行識別。
  • navigator.deviceMemory、navigator.hardwareConcurrency - 取得硬體的資訊。
  • XMLHttpRequest (XHR) - 在頁面載入後將收集的系統資訊傳送到外部伺服器。
  • ArrayBuffer - 執行微架構 Spectre 攻擊。
  • WebWorker (window.Worker)、SharedArrayBuffer (window.SharedArrayBuffer) - 執行評估存取資料時延遲的攻擊。
  • Geolocation API (navigator.geolocation) - 存取位置資訊(新增項目可讓您扭曲傳回的資料)。
  • 遊戲手把 API (navigator.getGamepads()) 是考慮到系統中是否存在遊戲手把的識別標誌之一。
  • 虛擬實境 API、混合實境 API - 使用虛擬實境設備參數進行識別。
  • window.name - 跨網站洩漏。
  • navigator.sendBeacon - 用於網路分析。

來源: opennet.ru

添加評論