Как стать автором
Поиск
Написать публикацию
Обновить

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

Время на прочтение2 мин
Количество просмотров1.9K

Фонд свободного программного обеспечения (FSF) выпустил браузерное дополнение JShelter, которое защищает от таких угроз, связанных с использованием JavaScript, как применение скриптов скрытой идентификации, отслеживание геолокации, а также хранение личных данных без согласия пользователя. 

Код дополнения распространяется под лицензией GPLv3, а основой для него послужила разработка JavaScript Restrictor. JShelter доступен для Firefox, Google Chrome, Opera, Brave, Microsoft Edge и других браузеров с использованием движка Chromium.

В создании 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 ― инструменты, предназначенные для веб-аналитики.

Теги:
Хабы:
Всего голосов 13: ↑13 и ↓0+13
Комментарии3

Другие новости

Ближайшие события