Фонд СПО представил дополнение JShelter для предотвращения слежки

Kate

Administrator
Команда форума
Фонд свободного программного обеспечения (FSF) выпустил браузерное дополнение JShelter, которое защищает от таких угроз, связанных с использованием JavaScript, как применение скриптов скрытой идентификации, отслеживание геолокации, а также хранение личных данных без согласия пользователя.
Код дополнения распространяется под лицензией GPLv3, а основой для него послужила разработка JavaScript Restrictor. JShelter доступен для Firefox, Google Chrome, Opera, Brave, Microsoft Edge и других браузеров с использованием движка Chromium.
2bfe6715ff1e7216234c44fc9839c119.png

В создании JShelter принимали участие специалисты, занимавшиеся разработкой NoScript, J++, JS-Shield и, конечно, JavaScript Restrictor. Главным источником финансирования проекта выступил фонд NLnet Foundation.
По словам представителей FSF, JShelter выполняет роль медиатора программных интерфейсов JavaScript, которые имеют доступ к сайтам. Дополнение обладает четырьмя уровнями настройки защиты, а также возможностью точно подогнать под требования пользователя настройки доступа к API.
Любую страницу можно привязать к кастомным настройкам блокировки API. JShelter позволяет закрывать доступ к индивидуальным параметрам JavaScript, а также выдавать ложные данные о системе для возвращаемых значений. Отдельно стоит упомянуть режим Network Boundary Shield (NBS), который запрещает страницам использовать браузер в роли прокси между внешной и локальной сетями.
Ниже приведен список API, которые JShelter умеет блокировать:
  • 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() и AnalyserNode.getFloatFrequencyData()) ― то же самое, но с голосовым управлением;
  • WebGLRenderingContext ― хранит идентификационные параметры компьютера;
  • MediaDevices.prototype.enumerateDevices ― управление настройками камеры и микрофона, в некоторых случаях может стать инструментом для извлечения данных биометрии;
  • navigator.deviceMemory, navigator.hardwareConcurrency - хранит информацию о технических характеристиках компьютера;
  • XMLHttpRequest (XHR) - передает сведения о системе на внешний сервер;
  • ArrayBuffer и WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) ― также используются как инструмент для тайминг-атак;
  • Geolocation API (navigator.geolocation) ― хранит данные геолокации пользователя;
  • Gamepad API (navigator.getGamepads()) ― хранит данные о подключенном геймпаде;
  • Virtual Reality API, Mixed Reality API ― содержит информацию о подключенных устройствах виртуальной реальности;
  • window.name ― может стать причиной межсайтовых утечек;
  • navigator.sendBeacon ― инструменты, предназначенные для веб-аналитики.

 
Сверху