Tổ chức mã nguồn mở đã giới thiệu tiện ích bổ sung của trình duyệt JShelter để hạn chế API JavaScript

Tổ chức Phần mềm Miễn phí đã giới thiệu dự án JShelter, dự án phát triển một tiện ích bổ sung cho trình duyệt để bảo vệ khỏi các mối đe dọa phát sinh khi sử dụng JavaScript trên các trang web, bao gồm nhận dạng ẩn, theo dõi chuyển động và tích lũy dữ liệu người dùng. Mã dự án được phân phối theo giấy phép GPLv3. Tiện ích bổ sung này được chuẩn bị cho Firefox, Google Chrome, Opera, Brave, Microsoft Edge và các trình duyệt khác dựa trên công cụ Chrome.

Dự án đang được phát triển như một sáng kiến ​​chung được tài trợ bởi Quỹ NLnet. Giorgio Maone, người tạo ra tiện ích bổ sung NoScript, đồng thời là người sáng lập dự án J++ và tác giả của các tiện ích bổ sung JS-Shield và JavaScriptRestrictor, cũng tham gia phát triển JShelter. Tiện ích bổ sung Hạn chế JavaScript được sử dụng làm cơ sở cho dự án mới.

JShelter có thể được coi là một loại tường lửa dành cho giao diện lập trình JavaScript có sẵn cho các trang web và ứng dụng web. Tiện ích bổ sung này cung cấp bốn cấp độ bảo vệ cũng như chế độ cấu hình linh hoạt để truy cập vào API. Cấp XNUMX hoàn toàn cho phép truy cập vào tất cả các API, cấp đầu tiên bao gồm chặn tối thiểu không làm gián đoạn hoạt động của trang, cấp độ thứ hai cân bằng giữa chặn và khả năng tương thích và cấp độ thứ tư bao gồm chặn nghiêm ngặt mọi thứ không cần thiết.

Cài đặt chặn API có thể được liên kết với các trang web riêng lẻ, ví dụ: khả năng bảo vệ có thể được tăng cường đối với một số trang web và bị vô hiệu hóa đối với các trang web khác. Bạn cũng có thể chặn có chọn lọc các phương thức, đối tượng, thuộc tính và hàm JavaScript nhất định hoặc thay đổi giá trị trả về (ví dụ: tạo ra thông tin sai lệch về hệ thống). Một tính năng riêng biệt là chế độ NBS (Tấm chắn ranh giới mạng), không cho phép các trang sử dụng trình duyệt làm proxy giữa mạng bên ngoài và mạng cục bộ (tất cả các yêu cầu gửi đi đều bị chặn và phân tích).

API bị chặn hoặc bị hạn chế:

  • window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp và VRFrameData.prototype.timestamp - đầu ra thời gian chính xác có thể được sử dụng để xác định và thực hiện các cuộc tấn công kênh bên .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) - được sử dụng để xác định các tính năng của hệ thống con đồ họa khi xác định người dùng.
  • Audiobuffer và Analysernode (Audiobuffer.getChanneldata(), Audiobuffer.copyfromchannel(), analyzernode.getBytimedomaindata(),analySernode.getfloatTimedoma Indata(), analyzernode.getbyte Frequencydata() và analyzernode.getfloat Frequency()) - nhận dạng thông qua phân tích tín hiệu âm thanh.
  • WebGLRenderingContext - nhận dạng thông qua phân tích các tính năng của ngăn xếp đồ họa và GPU.
  • MediaDevices.prototype.enumerateDevices - nhận dạng bằng cách lấy thông số và tên của máy ảnh và micrô.
  • navigator.deviceMemory, navigator.hardwareConcurrency - lấy thông tin về phần cứng.
  • XMLHttpRequest (XHR) - chuyển thông tin hệ thống đã thu thập sang máy chủ bên ngoài sau khi trang được tải.
  • ArrayBuffer - thực hiện các cuộc tấn công Spectre vi kiến ​​trúc.
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - thực hiện các cuộc tấn công đánh giá độ trễ khi truy cập dữ liệu.
  • API định vị địa lý (navigator.geolocation) - truy cập vào thông tin vị trí (phần bổ sung cho phép bạn làm sai lệch dữ liệu được trả về).
  • API gamepad (navigator.getGamepads()) là một trong những dấu hiệu nhận dạng có tính đến sự hiện diện của gamepad trong hệ thống.
  • API thực tế ảo, API thực tế hỗn hợp - sử dụng thông số thiết bị thực tế ảo để nhận dạng.
  • window.name - rò rỉ giữa các trang web.
  • navigator.sendBeacon - được sử dụng để phân tích trang web.

Nguồn: opennet.ru

Thêm một lời nhận xét