Фонд свободного программного обеспечения (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 умеет блокировать:
Код дополнения распространяется под лицензией 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 ― инструменты, предназначенные для веб-аналитики.
Фонд СПО представил дополнение JShelter для предотвращения слежки
Фонд свободного программного обеспечения (FSF) выпустил браузерное дополнение JShelter, которое защищает от таких угроз, связанных с использованием JavaScript, как применение скриптов скрытой...
habr.com