Хакерский браузер из Firefox (Часть 1)

Хакерский браузер из Firefox (Часть 1)

Sam Sepiol
Всем салют, дорогие друзья!В последнее время браузер Firefox претерпевал достаточно значительные изменения, хорошие и не очень: это и переход на движок Quantum, это и отказ от расширений типа XUL/XPCOM, и переход на WebExtensions, и еще масса других изменений. Что никак не изменилось — это возможность сделать из него прекрасный приватный хакерский браузер с шикарной анонимностью, если немного покрутить конфиги. Как и что крутить, мы расскажем в этой статье.
Погнали!


Создание «портативных» настроек

Все интересные настройки Firefox делаются на служебной странице по адресу about:config. Зайти сюда и поменять пару параметров — легко и удобно. Но если говорить о тонкой настройке, то тут менять значения по одному становится слегка утомительно.

Как автоматизировать процесс, не прибегая к сторонним утилитам? Очень просто: создавайте файл user.js и прописывайте все настройки туда. Далее помещаем этот файл в каталог пользовательского профиля Firefox, который в Windows находится по пут:


C:\Users\[username]\AppData\Roaming\Mozilla\Firefox\Profiles\[random].default

Формат записей в этом файле прост: например, чтобы включить поддержку WebP, необходимо задать параметру image.webp.enabled значение true. В файле настроек это будет выглядеть вот так:


user_pref("image.webp.enabled", true);

Другими словами, в шаблоне user_pref(«…», …); идет параметр и его значение. Итак, с файлом настроек разобрались, теперь приступим к препарированию браузера. Все настройки применялись к последней на момент написания статьи версии браузера.


Настройка приватности Firefox

WebRTC и Pocket

Mozilla внедрила сервисы WebRTC и Pocket в Firefox и включила их по умолчанию. Многим это не понравилось, и не просто так: в Pocket нашли уязвимости, а WebRTC может допускать утечку IP-адреса при определенных обстоятельствах. Давайте отключим и то и другое! Сейчас и далее я привожу готовые строки настроек, которые вы можете вставить в файл user.js.


// Отключаем Pocket
user_pref("extensions.pocket.api", "");
user_pref("extensions.pocket.enabled", false);
user_pref("extensions.pocket.site", "");
user_pref("extensions.pocket.oAuthConsumerKey", "");
// Отключаем WebRTC
user_pref("media.peerconnection.enabled", false);
user_pref("media.peerconnection.ice.default_address_only", true);
user_pref("media.peerconnection.ice.no_host", true);
user_pref("media.peerconnection.ice.relay_only", true);
user_pref("media.peerconnection.ice.tcp", false);
user_pref("media.peerconnection.identity.enabled", false);
user_pref("media.peerconnection.turn.disable", true);
user_pref("media.peerconnection.use_document_iceservers", false);
user_pref("media.peerconnection.video.enabled", false);
user_pref("media.peerconnection.default_iceservers", "[]");


Геолокация

Отключаем доступ к геолокации.

user_pref("geo.enabled", false);
user_pref("geo.provider.ms-windows-location", false);
user_pref("geo.wifi.uri", "");


Статистика использования браузера

Перекрываем сбор различных данных.


// Отключаем асинхронные запросы, используемые для аналитики
user_pref("beacon.enabled", false);
user_pref("browser.send_pings", false);
user_pref("browser.send_pings.require_same_host", false);
// Отключаем метрики производительности
user_pref("dom.enable_performance", false);
user_pref("dom.enable_performance_observer", false);
user_pref("dom.enable_performance_navigation_timing", false);
user_pref("browser.slowStartup.notificationDisabled", false); 
user_pref("network.predictor.enabled", false);
user_pref("network.predictor.enable-hover-on-ssl", false);
user_pref("network.prefetch-next", false);
user_pref("network.http.speculative-parallel-limit", 0);
// Информация об установленных дополнениях
user_pref("extensions.getAddons.cache.enabled", false);


Отключение доступа к датчикам

Если у вас обычный компьютер, а не планшет, к примеру, то выключаем доступ к датчикам.

user_pref("device.sensors.enabled", false);
user_pref("device.sensors.orientation.enabled", false);
user_pref("device.sensors.motion.enabled", false);
user_pref("device.sensors.proximity.enabled", false);
user_pref("device.sensors.ambientLight.enabled", false);


Остановка фингерпринтинга

Эти настройки говорят браузеру сопротивляться идентификации.

user_pref("dom.webaudio.enabled", false);
user_pref("privacy.resistFingerprinting", true);


Перекрытие информации о сетевом соединении

user_pref("dom.netinfo.enabled", false);
user_pref("dom.network.enabled", false);


Отключение использования устройств и передачу медиа

Отключаем использование через браузер камер, микрофонов, геймпадов, очков виртуальной реальности и вместе с устройствами — передачу различного медиаконтента, типа скриншотов и прочего. Так же выключаем распознавание речи.

user_pref("dom.gamepad.enabled", false);
user_pref("dom.gamepad.non_standard_events.enabled", false);
user_pref("dom.imagecapture.enabled", false);
user_pref("dom.presentation.discoverable", false);
user_pref("dom.presentation.discovery.enabled", false);
user_pref("dom.presentation.enabled", false);
user_pref("dom.presentation.tcp_server.debug", false);
user_pref("media.getusermedia.aec_enabled", false);
user_pref("media.getusermedia.audiocapture.enabled", false);
user_pref("media.getusermedia.browser.enabled", false);
user_pref("media.getusermedia.noise_enabled", false);
user_pref("media.getusermedia.screensharing.enabled", false);
user_pref("media.navigator.enabled", false);
user_pref("media.navigator.video.enabled", false);
user_pref("media.navigator.permission.disabled", true);
user_pref("media.video_stats.enabled", false);
user_pref("dom.battery.enabled", false);
user_pref("dom.vibrator.enabled", false);
user_pref("dom.vr.require-gesture", false);
user_pref("dom.vr.poseprediction.enabled", false);
user_pref("dom.vr.openvr.enabled", false);
user_pref("dom.vr.oculus.enabled", false);
user_pref("dom.vr.oculus.invisible.enabled", false);
user_pref("dom.vr.enabled", false);
user_pref("dom.vr.test.enabled", false);
user_pref("dom.vr.puppet.enabled", false);
user_pref("dom.vr.osvr.enabled", false);
user_pref("dom.vr.external.enabled", false);
user_pref("dom.vr.autoactivate.enabled", false);
user_pref("media.webspeech.synth.enabled", false);
user_pref("media.webspeech.test.enable", false);
user_pref("media.webspeech.synth.force_global_queue", false);
user_pref("media.webspeech.recognition.force_enable", false);
user_pref("media.webspeech.recognition.enable", false);


Отключение телеметрии и отправки отчетов

Браузер собирает телеметрические данные и сигнализирует разработчикам о падениях компонентов. Для повышения анонимности это можно отключить.

user_pref("toolkit.telemetry.archive.enabled", false);
user_pref("toolkit.telemetry.bhrPing.enabled", false);
user_pref("toolkit.telemetry.cachedClientID", "");
user_pref("toolkit.telemetry.firstShutdownPing.enabled", false);
user_pref("toolkit.telemetry.hybridContent.enabled", false);
user_pref("toolkit.telemetry.newProfilePing.enabled", false);
user_pref("toolkit.telemetry.previousBuildID", "");
user_pref("toolkit.telemetry.reportingpolicy.firstRun", false);
user_pref("toolkit.telemetry.server", "");
user_pref("toolkit.telemetry.server_owner", "");
user_pref("toolkit.telemetry.shutdownPingSender.enabled", false);
user_pref("toolkit.telemetry.unified", false);
user_pref("toolkit.telemetry.updatePing.enabled", false);
user_pref("datareporting.healthreport.infoURL", "");
user_pref("datareporting.healthreport.uploadEnabled", false);
user_pref("datareporting.policy.dataSubmissionEnabled", false);
user_pref("datareporting.policy.firstRunURL", "");
user_pref("browser.tabs.crashReporting.sendReport", false);
user_pref("browser.tabs.crashReporting.email", false);
user_pref("browser.tabs.crashReporting.emailMe", false);
user_pref("breakpad.reportURL", "");
user_pref("security.ssl.errorReporting.automatic", false);
user_pref("toolkit.crashreporter.infoURL", "");
user_pref("network.allow-experiments", false);
user_pref("dom.ipc.plugins.reportCrashUR", false);
user_pref("dom.ipc.plugins.flash.subprocess.crashreporter.enabled", false);


Настройка информации для поиска

Приводим поиск браузера в «стандартное» состояние — без поправок на наше местоположение.

user_pref("browser.search.geoSpecificDefaults", false);
user_pref("browser.search.geoSpecificDefaults.url", "");
user_pref("browser.search.geoip.url", "");
user_pref("browser.search.region", "US");
user_pref("browser.search.suggest.enabled", false);
user_pref("browser.search.update", false);


Отключение пуш-уведомлений

Пуш-уведомления могут работать даже тогда, когда вы закрыли страницу.

user_pref("dom.push.enabled", false);
user_pref("dom.push.connection.enabled", false);
user_pref("dom.push.serverURL", "");


Защита от утечки DNS

Здесь убираем возможную утечку DNS по IPv6, отключаем упреждающую отправку DNS и настраиваем DoH — DNS over HTTPS.

user_pref("network.dns.disablePrefetch", true);
user_pref("network.dns.disableIPv6", true);
user_pref("network.security.esni.enabled", true);
user_pref("network.trr.mode", 2);
user_pref("network.trr.uri", "https://cloudflare-dns.com/dns-query");


Отключение перенаправления

user_pref("network.captive-portal-service.enabled", false);
user_pref("network.captive-portal-service.maxInterval", 0);
user_pref("captivedetect.canonicalURL", "");


Пресечение слива данных на сервера Google

С настройками по умолчанию Google должен защищать вас от вирусов и фишинга. Это зачастую полезная функция, но если вы знаете, что делаете, и не хотите, чтобы Google за этим наблюдал, то можете и избавиться от этого пристального внимания.


user_pref("browser.safebrowsing.allowOverride", false);
user_pref("browser.safebrowsing.blockedURIs.enabled", false);
user_pref("browser.safebrowsing.downloads.enabled", false);
user_pref("browser.safebrowsing.downloads.remote.block_dangerous", false);
user_pref("browser.safebrowsing.downloads.remote.block_dangerous_host", false);
user_pref("browser.safebrowsing.downloads.remote.block_potentially_unwanted", false);
user_pref("browser.safebrowsing.downloads.remote.block_uncommon", false);
user_pref("browser.safebrowsing.downloads.remote.enabled", false);
user_pref("browser.safebrowsing.malware.enabled", false);
user_pref("browser.safebrowsing.phishing.enabled", false);
user_pref("browser.safebrowsing.downloads.remote.url", "");
user_pref("browser.safebrowsing.provider.google.advisoryName", "");
user_pref("browser.safebrowsing.provider.google.advisoryURL", "");
user_pref("browser.safebrowsing.provider.google.gethashURL", "");
user_pref("browser.safebrowsing.provider.google.reportMalwareMistakeURL", "");
user_pref("browser.safebrowsing.provider.google.reportPhishMistakeURL", "");
user_pref("browser.safebrowsing.provider.google.reportURL", "");
user_pref("browser.safebrowsing.provider.google.updateURL", "");
user_pref("browser.safebrowsing.provider.google4.advisoryName", "");
user_pref("browser.safebrowsing.provider.google4.advisoryURL", "");
user_pref("browser.safebrowsing.provider.google4.dataSharingURL", "");
user_pref("browser.safebrowsing.provider.google4.gethashURL", "");
user_pref("browser.safebrowsing.provider.google4.reportMalwareMistakeURL", "");


Отключение DRM

user_pref("browser.eme.ui.enabled", false);
user_pref("media.eme.enabled", false);


Итак, мы рассмотрели основные настройки браузера Firefox, которые помогут вас не делиться ни с кем своими данными. Как видите, без этих настроек браузер фактически следит за каждым шагом, собирает кучу метрик и отправляет их туда и сюда.

Report Page