Mozilla Firefox - настоящий долгожитель, этот браузер, разрабатываемый условно-независимой некоммерческой организацией (донатит им в основном Google) остается предпоследней надеждой на приватность. Во всяком случае, так нам говорят его разработчики. На самом же деле он нафарширован всякими механизмами слежки за пользователем, НО: их можно выключить. И я таки расскажу вам как это сделать.
Эта статья - гибрид двух тем. С одной стороны, это полноценный гайд по тому как привлечь Firefox на сторону анонимуса, изменив настройки. С другой, это еще и анализ того, какие из этих настроек “из коробки” правильно проставлены в новом браузере, претендующем на анонимность и приватность без допиливания.
Браузер Mullvad - новинка от разработчиков Mullvad VPN и команды Tor Project. Ничего себе кроссовер, да? Вот и я так подумал, и решил протестировать браузер. У меня на канале сегодня будет (или уже) опубликован видеообзор нового претендента на роль "приватного и защищенного браузера". Здесь же я пройдусь по настройкам, которые рекомендуется внести в Firefox для оптимальной защиты от фингерпринтинга, чтобы посмотреть, какие из них уже выставлены нужным образов в Mullvad Browser.
В качестве "эталона" по настройкам я буду отталкиваться от гайда https://brainfucksec.github.io/firefox-hardening-guide#firefox-preferences (англ), и для моих не владеющих языком и не понимающих некоторых настроек читателей я дам комментарии к некоторым пунктам. Да, это будет чертов лонгрид.
Первым делом рекомендуется начать использовать поисковый движок, который не собирает огромную кучу данных про пользователя. Рекомендуется использовать DuckDuckGo
В MullvadBrowser по умолчанию он и стоит.
В любом браузере на базе Firefox эта опция переключается так:
вводим в строку браузера about:preferences#search
выбираем DuckDuckGo
То, какие настройки мы можем лицезреть и всячески менять, выбрав в меню браузера Settings или введя about:preferences в строку браузера - это всего лишь верхушка айсберга. Настоящая, тонкая настройка осуществляется в специальном интерфейсе, который открывается введением в строку браузера about:config
Опции в этом разделе это не кнопочки и переключалочки, а значения option = value, и когда вы заходите в этот раздел браузер вас предупреждает, что тут серьезные дяди и тети работают, если ты не уверен в своей серьезности, то руки в карманы и иди смотри лучше мультики. Проще говоря, вам показывают ворнинг что тут можно поломать браузер кривой настройкой.
Дальше, чтобы вы не запутались, будет идти настройка и значение, которое ей нужно задать. Если рядом с настройкой стоит символ 🟢 значит в Mullvad Browser настройка совпадает с оптимальной и менять ничего не надо. Если стоит символ 🔴 значит нужно поменять эту настройку.
🔴 browser.aboutConfig.showWarning
= false
Эта настройка всего лишь уберет предупрежедние о том, что заходя в конфиг надо быть бдительным. Не влияет на приватность и анонимность.
🟢 browser.startup.page = 1
Этот параметр определяет, что будет открыто после запуска браузера. Значение 1 означает, что будет открыта пустая вкладка.
🟢 browser.startup.homepage
= "about:home"
Значение в Mullvad: about:mullvad-browser
Определяет домашнюю страницу, то есть открываемую браузером по умолчанию или по нажатию на "домашняя страница". В случае с mullvad-browser выставленный в нем параметр это и есть home, если ввести about:mullvad-browser или about:home поведение абсолютно одинаковое.
Результаты: 2 из 3
Activity Stream - это показ на пустой вкладке страниц, которые вы недавно посещали или куда заходили часто. Настройки ниже отключают все, связанное с этой удобной для отслеживания пользователя функциональностью браузера.
🟢 browser.newtabpage.enabled
= false
Если значение выставлено как true, браузер будет при открытии новой вкладки показывать вам историю и часто посещаемые страницы
🔴 browser.newtab.preload
= false
Если этот параметр указан как true, браузер начнет загружать домашнюю страницу в фоновом режиме при запуске браузера, до того как вы вообще хоть что-то нажмете или введете адрес. Переводя значение в false мы снижаем нагрузку на оперативную память.
🟢 browser.newtabpage.activity-stream.feeds.telemetry
= false
Если этот параметр выставлен как true, браузер будет отправлять разработчикам сведения о том, как у вас используется функция вывода истории и часто посещаемых страниц
🟢 browser.newtabpage.activity-stream.telemetry
= false
Если этот параметр выставлен как true, браузер будет отправлять разработчикам сведения о том, как у вас используется функция вывода истории и часто посещаемых страниц
🔴 browser.newtabpage.activity-stream.feeds.snippets
= false
Если этот параметр выставлен как true, то при включенном фиде посещенных сайтов браузер будет загружать и отображать сниппет страницы (краткую текстовую выжимку и картинку), то есть будет отправлять запросы туда, куда мы его не просили.
🟢 browser.newtabpage.activity-stream.feeds.section.topstories
= false
В положении true этот параметр выводит на пустую вкладку контент от партнеров (рекламодателей) Firefox. Это дополнительные запросы которых мы не хотели, дополнительная нагрузка на систему и взаимодействие с трекерами на сайтах, куда мы не имели намерения заходить.
🔴 browser.newtabpage.activity-stream.section.highlights.includePocket
= false
Если выставлен как true, этот параметр позволит браузеру выводить на пустую вкладку контент из Firefox Pocket, облачного сервиса куда вы можете (но не рекомендуется) сохранять всякие находки в сети.
🔴 browser.newtabpage.activity-stream.feeds.discoverystreamfeed
= false
Этот параметр требуется создать, если он выставлен в положение true, позволяет браузеру, основываясь на ваших интересах (слежке за вашим серфингом) подсказывать вам рекомендации контента. Нам такого не надо.
🟢 browser.newtabpage.activity-stream.showSponsored
= false
Если значение true, браузер будет показывать вам "контент от спонсоров", то есть рекламу. Что мы говорим богу интернет-рекламы?
🟢 browser.newtabpage.activity-stream.showSponsoredTopSites
= false
Браузер будет показывать в рекомендациях спонсорские сайты, если значение true.
🟢 browser.newtabpage.activity-stream.default.sites
= ""
Еще одна попытка показать вам "топ сайтов", теперь уже по параметру их общей популярности. Покажет гугл, ютуб и тому подобное. **Параметр удален из Mullvad Browser.
**Результаты: 9 из 14 пунктов настроены как надо.
Наш любимый раздел, про то как браузер может отслеживать наше местоположение. И конечно же про то, что мы ему на это скажем.
🟢 geo.provider.network.url
= "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%"
Этот параметр определит, какой службой воспользуется браузер если мы дадим разрешение на определение геопозиции. Параметр удален из Mullvad Browser
Ниже параметры, которые запрещают браузеру пользоваться вшитыми в ОС службами геолокации. Для разных ОС параметры разные.
🟢 geo.provider.ms-windows-location
= false
(Windows)
🟢 geo.provider.use_corelocation
= false
(macOS)
🟢 geo.provider.use_gpsd
= false
(Linux)
🟢 geo.provider.use_geoclue
= false
(Linux)
Два параметра ниже определяют возможность браузера определять ваш регион
🟢 browser.region.network.url
= ""
Параметр выпилен из Mullvad Browser, а так он определяет URL по которому браузер будет обращаться к службе определения региона
🟢 browser.region.update.enabled
= false
В целом определяет, включена ли функция определения региона. Если true - значит включена.
За настройки геолокации Mullvad Browser получает 7 из 7.
🟢 intl.accept_languages
= "en-US, en"
Указываем, что по умолчанию мы хотим видеть сайты на английском языке. Английский это "универсальный язык", он есть во всех ОС. А вот предпочтение смотреть контент на русском, например, четко указывает что вы вероятнее всего носитель языка, и тем самым "палите" свою национальность.
🔴 javascript.use_us_english_locale
= true
Параметр требуется создать и указать тип значения Boolean, и установить как True. Этот параметр задает значение по умолчанию для javascript-кода, относительно того как требуется форматировать строки применительно к числам и датам. Если параметр задан как true, браузер будет использовать форматирование, принятое в US English: запятые как разделитель в дробном числе, даты в американском формате. Если он не создан или указан как false, то будет использован тип форматирования из вашей ОС.
Результат Mullvad Browser: 1 из 2
Здесь мы ступаем на тонкий лёд. Если это ваш "боевой" браузер для OSINT и прочих шалостей, обновления рекомендуется отключить, и устанавливать их строго вручную, предварительно изучив что нового напридумывали разработчики. Это нужно сделать для того, чтобы не оказалось, что в обновленной версии браузера появился новый замечательный параметр, который позволяет нейросети, масонам или рептилоидам смотреть за вашими сетевыми похождениями, а вы его не отключили просто потому что ни вы, ни кто-то еще не мог предугадать появление такого параметра.
Также, при установке обновы у вас могут поотлетать всякие браузерные дополнения, в общем при автообновлениях вы теряете контроль над браузером. Если уж ты решил превратить дедову "волгу" в свой личный бэтмобиль, не спрашивай у производителя про гарантийное обслуживание. Ты теперь сам за него отвечаешь.
🔴 app.update.background.scheduling.enabled
= false
Параметр требуется создать
🔴 app.update.auto
= false
В целом включает (true) или выключает (false) автообновления
Параметры ниже используют Google Analytics, а также историю посещенных сайтов и список уже установленных у нас в браузере дополнений чтобы посоветовать нам какие дополнения поставить.
🟢 extensions.getAddons.showPane
= false
🟢 extensions.htmlaboutaddons.recommendations.enabled
= false
🟢 browser.discovery.enabled
= false
Результат: 3 из 5
Ну а это уже прям слежка-слежка, телеметрия это всякие разные показатели того, как же вы пользуетесь браузером. Служба телеметрии регулярно формирует отчет и отправляет его разработчикам, если мы это не выключим.
🟢 datareporting.policy.dataSubmissionEnabled
= false
🟢 datareporting.healthreport.uploadEnabled
= false
🟢 toolkit.telemetry.enabled
= false
🟢 toolkit.telemetry.unified
= false
🟢 toolkit.telemetry.server
= "data:,"
🟢 toolkit.telemetry.archive.enabled
= false
🔴 toolkit.telemetry.newProfilePing.enabled
= false
Ну вот, так хорошо все начиналось. Но разработчики Mullvad Browser не смогли себе отказать в самой базовой телеметрии. Этот параметр отсылает им "пинг" каждый раз, когда вы создаете новый профиль браузера.
🔴 toolkit.telemetry.shutdownPingSender.enabled
= false
Этот параметр, будучи включенным, позволит браузеру отправлять на сервера разработчиков сведения о закрытии браузера, о причине закрытия (пользователь закрыл или браузер сам упал), а также дату и время события.
🟢 toolkit.telemetry.updatePing.enabled
= false
🟢 toolkit.telemetry.bhrPing.enabled
= false
🔴toolkit.telemetry.firstShutdownPing.enabled
= false
Тот же пинг при выключении, но отправляемый только один раз, при первом закрытии браузера. Видимо по мнению разрабов один раз не ....
🟢 toolkit.telemetry.coverage.opt-out
= true
🟢 toolkit.coverage.opt-out
= true
🔴toolkit.coverage.endpoint.base
= ""
Параметр нужно создать и оставить значение пустым. Вообще же параметр содержит URL по которому браузер отправлял бы некоторые отчеты.
🟢 browser.ping-centre.telemetry
= false
🟢beacon.enabled
= false
Результат по телеметрии: 10 из 16
Это тоже вид слежки, но немного другой. Телеметрия - это данные, которые (предположительно) собираются, чтобы оценивать работоспособность браузера и отлавливать ошибки. А вот исследования (studies) изучают поведение пользователей.
🟢 app.shield.optoutstudies.enabled
= false
Если этот параметр включен (true), браузер будет собирать о вас данные, если вы отдельно не запретите это.
🟢 app.normandy.enabled
= false
🟢 app.normandy.api_url
= ""
Normandy это как поправки к конституции: снаружи красивый фантик, а внутри сюрприз. Эта служба вроде как делает ценную работу - позволяет разрабам особо важные обновления, закрывающие какие-то уязвимости браузера, устанавливать без необходимости обновлять браузер целиком. Однако, еще эта служба используется и для того, чтобы собирать данные в рамках тех самых исследований вашего поведения.
Результат: 3 из 3
В crash report-ах все так же на сервера разработчиков браузера может утекать инфа о нашем устройстве, просто повод для отправки другой.
🔴 breakpad.reportURL
= ""
🟢 browser.tabs.crashReporting.sendReport
= false
В целом хорошо что служба отключена, но URL не удалили. 1 из 2
Когда вы подключаетесь к какой-то WiFi точке впервые, браузер по умолчанию делает проверку на наличие страницы авторизации. На тот случай, если нужно осуществить вход через СМС или как-то еще. Браузер делает это пытаясь загрузить файл http://detectportal.firefox.com/success.txt
. Если файл удалось загрузить - значит интернет есть, а значит искать и показывать страницу авторизации не нужно. Но такое поведение означает, что когда вы подключитесь к WiFi, браузер совершенно вас об этом не спрашивая сделает HTTP-запрос к серверу разработчиков.
🔴 captivedetect.canonicalURL
= ""
🟢 network.captive-portal-service.enabled
= false
Как видите, такой функционал в целом в Mullvad Browser отключен, но лучше в целом устранить его, удалив из браузера URL для таких запросов.
В целом хорошо что служба отключена, но URL не удалили. 1 из 2
Если нижеуказанный пункт настроек включен (true), браузер будет проверять статус и параметри сетевого соединения, запрашивая его у ОС. А ОС на свое усмотрение будет использовать те механизмы, которые в ней имеются.
🟢network.connectivity-service.enabled
= false
Служба безопасного просмотра использует Google Safe Browsing - набор служб понятно от кого. Ее задача - защищать пользователя от вредоносов и фишинговых сайтов. Если сайт помечен как распространяющий вредоносное ПО или как фишинговый, браузер откажется его загружать. Для рядового пользователя это действительно защита. Для нас же - еще один слой слежки и цензуры, поэтому мы это отключаем. Делайте это осознавая риски, желательно в защищенной ОС.
🟢 browser.safebrowsing.malware.enabled
= false
🟢 browser.safebrowsing.phishing.enabled
= false
🟢 browser.safebrowsing.blockedURIs.enabled
= false
🟢 browser.safebrowsing.provider.google4.gethashURL
= ""
🟢 browser.safebrowsing.provider.google4.updateURL
= ""
🟢 browser.safebrowsing.provider.google.gethashURL
= ""
🟢 browser.safebrowsing.provider.google.updateURL
= ""
🔴 browser.safebrowsing.provider.google4.dataSharingURL
= ""
🟢 browser.safebrowsing.downloads.enabled
= false
🟢 browser.safebrowsing.downloads.remote.enabled
= false
🟢 browser.safebrowsing.downloads.remote.url
= ""
🔴 browser.safebrowsing.downloads.remote.block_potentially_unwanted
= false
🔴 browser.safebrowsing.downloads.remote.block_uncommon
= false
🔴 browser.safebrowsing.allowOverride
= false
Результат: 10 из 14
Готовьтесь, в этом разделе вас ждет реальное дерьмо - целый рассадник разных компонентов браузера, которые анализируют ваше поведение и создают кучу "левых" сетевых запросов.
🟢 network.prefetch-next
= false
Если настройка включена (true), то браузер будет заранее запрашивать и загружать страницы, ссылки на которые есть на той страницы, которую вы просматриваете. Это сделано для ускорения, чтобы когда вы ходите по сайту было ощущение "мгновенной загрузки".
🟢 network.dns.disablePrefetch
= true
Если настройка выключена (false), то в дополнение к предзагрузке самих веб-страниц из пункта выше, браузер будет также предзагружать инфу из DNS по доменам, на которые ссылается страница.
🟢 network.predictor.enabled
= false
Этот пункт управляет тем, включен ли "предиктор", или предсказатель браузера. Эта штуковина пытается предсказать, какие ссылки вы скорее всего нажмете на загруженном сайте, и заранее подгружает документы по этим ссылкам в кэш браузера. И делает браузер это (если функция включена) анализируя: историю вашего браузера, закладки, частоту посещения тех или иных сайтов, clickstream - паттерны того как вы кликаете мышкой, а также сетевую информацию.
🟢 network.http.speculative-parallel-limit
= 0
В этом пункте устанавливается лимит на то, сколько таких "предсказанных" страниц браузеру позволено предзагрузить в кэш.
🟢 browser.places.speculativeConnect.enabled
= false
Этот пункт настроек, если включен, позволяет браузеру предзагружать сайты из ваших закладок (bookmarks а не то что вы подумали).
🔴 network.dns.disableIPv6
= true
IPv6 на текущем этапе в целом внедрен слабо, но он может создавать серезные проблемы анонимности. Все дело в том, что в IPv6 такое большое пространство адресов, что использовать NAT который красиво маскирует IP адрес вашего устройства, подменяя его публичным адресом провайдера нет необходимости. Более того, у IPv6 другая структура сетевого пакета, и привычные нам VPN-решения требуют донастройки для того, чтобы они еще и IPv6 трафик туннелировали. В итоге это может привести к утечке вашего реального IPv6 адреса, который четко укажет на ваше устройство. Так что если к угрозе "я тебя по IP вычислю" добавить "v6", звучит куда более реалистично. Во избежание таких проблем лучше в целом запретить браузеру работать с IPv6.
🟢 network.gio.supported-protocols
= ""
Настройка актуальная для пользователей Linux, GIO = GNOME Input/Output и управляет разными протоколами, которые, будучи перечисленными в настройке, разрешены к использованию браузером (помимо его базового функционала).
🟢 network.file.disable_unc_paths
= true
Эта настройка, будучи отключенной (false), позволяет использовать пути UNC (Universal Naming Convention) вида
\\servername\sharename\path\to\file
для доступа к файлам по сети. Проблема в том, что UNC частенько используется как вектор загрузки вредоносного ПО, поэтому если вы не уверены, что оно вам надо - лучше вырубить.
🔴 permissions.manager.defaultsUrl
= ""
В этой настройке содержится путь к файлу с разрешениями на предоставление сайту тех или иных функций (доступ к геопозиции, к камере, микрофону и т.п.). В этом файле браузер хранит значения по умолчанию, а также те что вы проставили, если дали сайту доступ к чему-то. Но т.к. мы настраиваем браузер на максимальную защиту от слежки и деанонимизации, мы изначально не планируем никому никаких разрешений давать.
🔴 network.IDN_show_punycode
= true
Эта настройка, будучи включенной, будет отображать не-латинские домены в формате punycode. Это могут быть домены в зоне .рф или любые другие, где используются non-latin символы. Если мы включаем ее, сайт
résumé.com
будет отображен какxn--rsum-bpad.com
. Зачем? Чтобы снизить риски фишинга и обфускации, с этими хитрыми юникод-символами, наподобиеé
вообще связано много проблем в безопасности.
Результат: 7 из 10, но отмечу что самые пакостные компоненты слежки выключены по умолчанию
Из-за того, что адресная строка браузера интегрирована с поиском, браузер по умолчанию всячески пытается предсказать, что же мы от него хотим, когда начинаем что-то туда вводить. Вводимые нами символы отправляются в сеть еще до того как мы нажмем Enter, чтобы показать нам всякие поисковые подсказки, что создает угрозу анонимности и приватности.
🟢 browser.search.suggest.enabled
= false
Отключаем поисковые подсказки в поиске
🟢 browser.urlbar.suggest.searches
= false
Отключаем поисковые подсказки в строке адреса
🟢 browser.fixup.alternate.enabled
= false
Отключаем попытки угадать и автоматически закончить за нас ввод домена который мы вводим
🔴 browser.urlbar.trimURLs
= false
Отключаем "обрезку" URL, заставляя браузер показать весь путь полностью
🟢 browser.urlbar.speculativeConnect.enabled
= false
Отключаем предзагрузку введенного адреса. Если параметр включен, то еще до того как мы нажмем enter браузер начнет подгружать сайт в кэш
Далее отключаем настройки автозаполнения всяких форм
🟢 browser.formfill.enable
= false
🔴 extensions.formautofill.addresses.enabled
= false
🔴 extensions.formautofill.available
= "off"
🔴 extensions.formautofill.creditCards.available
= false
🔴 extensions.formautofill.creditCards.enabled
= false
🔴 extensions.formautofill.heuristics.enabled
= false
Четыре настройки ниже отключают контекстуальные подсказки в строке адреса. Очередная попытка проанализировав ввод или контекст (содержание документа) предугадать, чего мы могли бы хотеть ввести в адресную строку.
🔴 browser.urlbar.quicksuggest.scenario
= "history"
🟢 browser.urlbar.quicksuggest.enabled
= false
🟢 browser.urlbar.suggest.quicksuggest.nonsponsored
= false
🟢 browser.urlbar.suggest.quicksuggest.sponsored
= false
Результат: 8 из 15
🟢 signon.rememberSignons
= false
Запрещаем сохранять вводимые пароли
🟢 signon.autofillForms
= false
Запрещаем автозаполнение логинов и паролей
🔴 signon.formlessCapture.enabled
= false
Запрещаем перехват браузером паролей вне форм
🟢 network.auth.subresource-http-auth-allow
= 1
Выставив этот параметр в положение 1, мы запрещаем открывать диалоги входа с cross-origin документов. Проще говоря, если мы зашли на
foo.com
браузер не разрешит в рамках этого сайта загрузить форму входа с сайтаbar.com
Результат: 3 из 4
🟢 browser.cache.disk.enable
= false
Запрещаем браузеру хранить что-то в кэше
🟢 browser.sessionstore.privacy_level
= 2
Запрещаем хранить данные любых сессий
🟢 browser.sessionstore.resume_from_crash
= false
Запрещаем восстанавливать сессии, прерванные аварийным выходом из браузера (crash)
🟢 browser.pagethumbnails.capturing_disabled
= true
Запрещаем создавать мини-скриншоты (thumbnails) посещаемых страниц
🔴 browser.shell.shortcutFavicons
= false
Запрещаем хранить в папке профиля фавиконки посещенных страниц
🟢 browser.helperApps.deleteTempFileOnExit
= true
Удаляем временные файлы, открытые сторонними приложениями (если вы загружая файл выбрали "открыть" вместо "сохранить") после закрытия этих приложений
Результат: 5 из 6
🟢 dom.security.https_only_mode
= true
Запрещаем открывать ссылки без шифрования HTTPS
🔴 dom.security.https_only_mode_send_http_background_request
= false
Запрещаем отправлять HTTP-запросы для проверки поддерживает ли сервер HTTPS
🔴 browser.xul.error_pages.expert_bad_cert
= true
Выводим подробную информацию о плохих сертификатах (небезопасное соединение)
🔴 security.tls.enable_0rtt_data
= false
В TLS 1.3 ввели фичу для ускорения Интернета, которая позволяет отправить зашифрованные данные на сервер до того, как будет полноценно установлено зашифрованное соединение. Это сделано для того, чтобы уменьшить задержку от хэндшейка. Проблема в том, что в этом случае данные отправляются до того, как браузер убедится что сертификат сервера подлинный. Нам такого не надо.
🔴 security.OCSP.require
= true
Online Certificate Status Protocol (OCSP) позволяет проверить сертификат на действительность, не отозван ли он, например, из-за его компрометации злоумышленниками. Включая эту настройку мы говорим браузеру, что он обязан проводить такую проверку для всех URL и не позволять загружать документы с недействительными сертификатами
🟢 security.pki.sha1_enforcement_level
= 1
Запрещаем использовать сертификаты SHA-1
🟢 security.cert_pinning.enforcement_level
= 2
Запрещаем со стороны ОС загружать в браузер (инжектить) сертификаты для сайтов, применительно к которым используется SSL-pinning.
🔴 security.remote_settings.crlite_filters.enabled
= true
Включаем CRLite (Certificate Revocation List Lite), альтернативный механизм проверки сертификатов на валидность и действительность, в дополнение к OCSP
🔴 security.pki.crlite_mode
= 2
Позволяем браузеру блокировать запросы на основании проверки CRLite
Результат: 3 из 9
🔴 network.http.referer.XOriginPolicy
= 2
Тут мы запрещаем браузеру добавлять к cross-origin запросам (когда мы с сайта
foo.com
переходим наbar.com
) заголовок с указанием источника перехода. Эти заголовки используются для отслеживания поведения пользователей.
🟢 network.http.referer.XOriginTrimmingPolicy
= 2
В дополнение к предыдущему пункту, мы запрещаем в принципе отправлять в X-origin заголовках подробную информацию, оставляем только протокол, домен и порт. По умолчанию браузер занес бы туда полный URL.
Результат: 1 из 2
🔴 media.peerconnection.enabled
= false
Запрещаем WebRTC - одноранговую передачу данных, которая может выдать наш реальный IP удаленному серверу или пользователю
🔴 media.peerconnection.ice.proxy_only_if_behind_proxy
= true
Запрещаем браузеру устанавливать p2p соединения WebRTC вне прокси, если мы используем прокси и разрешили WebRTC
🔴 media.peerconnection.ice.default_address_only
= true
Запрещаем браузеру для WebRTC соединений использовать все сетевые интерфейсы, кроме используемого по умолчанию. В противном случае браузер использует все доступные интерфейсы, что может привести к утечке IP-адреса даже если вы используете VPN.
🔴 media.peerconnection.ice.no_host
= true
Запрещаем браузеру использовать IP из диапазонов приватных сетей (например
192.168.x.x
или10.x.x.x
) для WebRTC соединений.
🔴 webgl.disabled
= true
Запрещаем WebGL, javascript API которое используя мощности видеокарты вашего устройства рендерит 3D-графику на веб-страницах. WebGL используется для фингерпринтинга вашей системы, т.к. разные комбинации ОС, драйвера и чипа видеокарты дают разный хэш рендера одной и той же графики.
🔴 media.autoplay.default
= 5
Запрещаем любым сайтам автоматически воспроизводить любые медиафайлы (аудио и видео)
Результат: 0 из 6
🟢 browser.download.useDownloadDir
= false
Делаем так, чтобы браузер всегда спрашивал нас, куда сохранить файл
🟢 browser.download.manager.addToRecentDocs
= false
Запрещаем браузеру добавлять скачанные файлы в список "недавних загрузок" в ОС
Результат: 2 из 2
🔴 browser.contentblocking.category
= "strict"
Включаем функцию улучшенной защиты от трекеров
🟢 privacy.partition.serviceWorkers
= true
Включаем изоляцию процессов разных сайтов внутри браузера. Если опция включена, браузер будет кушать больше системных ресурсов, но зато он изолирует процессы выполнения кода разных страниц друг от друга, снижая риски cross-site атак.
🔴 privacy.partition.always_partition_third_party_non_cookie_storage
= true
🔴 privacy.partition.always_partition_third_party_non_cookie_storage.exempt_sessionstorage
= true
Два параметра выше включают изолированное хранение данных разных сайтов. Это снижает риски отслеживания нас через доступ к кросс-сайтовым кукам для трекеров.
Результат: 1 из 4
🟢 dom.disable_open_during_load
= true
Запрещаем открытие всплывающих окон до полной загрузки страницы
🔴 dom.popup_allowed_events
= click dblclick mousedown pointerdown
Задаем белый список событий, которые могут вызвать открытие всплывающего окна
🟢 extensions.pocket.enabled
= false
Отключаем pocket - интерфейс для облачной синхронизации закладок и другой найденной нами и сложенной в это хранилище инфы
🟢 extensions.Screenshots.disabled
= true
Отключаем встроенное дополнение для создания скриншотов веб-страниц
🟢 pdfjs.enableScripting
= false
Запрещаем выполнять JS-код, если он находится внутри PDF-файла, который открыт в браузере
🟢 privacy.userContext.enabled
= true
Включаем возможность создавать "контейнеры" внутри браузера. Контейнер - это изолированное от других вкладок пространство, которое позволяет, например, зайти в рамках одного окна браузера в несколько аккаунтов одного и того же ресурса.
Результаты: 5 из 6
🟢 extensions.enabledScopes
= 5
Включаем дополнения для всех профилей браузера
🟢 extensions.webextensions.restrictedDomains
= ""
Этот параметр позволяет задать список доменов, в контексте которых браузерные дополнения будут выключены. Если вы добавите сюда google.com то при посещении гугла браузерные дополнения будут отключены для этой вкладки.
🟢 extensions.postDownloadThirdPartyPrompt
= false
Отключаем дополнительный вопрос "А вы точно-преточно уверены что хотите установить это дополнение" при его установке.
Результаты: 3 из 3
Настраиваем автоматическую очистку истории, кук, кэша и т.п.
🟢 network.cookie.lifetimePolicy
= 2
🔴 privacy.sanitize.sanitizeOnShutdown
= true
🟢 privacy.clearOnShutdown.cache
= true
🟢 privacy.clearOnShutdown.cookies
= true
🟢 privacy.clearOnShutdown.downloads
= true
🟢 privacy.clearOnShutdown.formdata
= true
🟢 privacy.clearOnShutdown.history
= true
🔴 privacy.clearOnShutdown.offlineApps
= true
🟢 privacy.clearOnShutdown.sessions
= true
🔴 privacy.clearOnShutdown.sitesettings
= false
🔴 privacy.sanitize.timeSpan
= 0
Результат: 7 из 11
🟢 privacy.resistFingerprinting
= true
🔴 privacy.window.maxInnerWidth
= 1600
🔴 privacy.window.maxInnerHeight
= 900
Два пункта выше задают лимит для всплывающих окон, которые могут быть открыты через javascript-функцию
window.open()
. Это сделано для того, чтобы сайт не мог открыть окно больше, чем ваш экран.
🟢 privacy.resistFingerprinting.block_mozAddonManager
= true
Настройка при включении блокирует посещаемым сайтом доступ к списку установленных в браузере дополнений
🟢 browser.display.use_system_colors
= false
Этот параметр, будучи отключенным, запрещает сайтам доступ к вашей цветовой схеме, которая используется в вашей ОС. Многие сайты подстраиваются под тему вашего рабочего интерфейса (темная или светлая). Но отдавая такой параметр удаленному серверу вы даете ему еще один кусочек пазла от вашего уникального отпечатка.
Результат: 3 из 5
95 из 150 параметров, которые требуется изменить в браузере Mozilla Firefox, в случае с Mullvad Browser имеют рекомендованное значение и не требуют вмешательства. Можно сказать, что это очень неплохой результат, потому что почти все эти 95 параметров относятся к тем, которые максимально критичны для приватности и анонимности, а многие из требующих ручного вмешательства 55 параметров нужны чтобы "докрутить" браузер до максимально возможной защиты наших данных, порой в ущерб функциональности.
Больше контента о информационной безопасности, анонимности, OSINT и онлайн-расследованиях ты найдешь в телеграм-канале:
Поддержать автора звонкой криптомонетой можно тут: