• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Firefox Hardened

corax

Премиум
Premium
Регистрация
29.04.2020
Сообщения
1 009
Решения
1
Реакции
628
Гарант сделки
1
Депозит
0.16
На других сайтах есть различные аналогичные руководства, но многие из этих руководств были частично неполными, поэтому я попытался написать максимально полное руководство, которое может быть использовано такими параноидальными пользователями, как я.

Это лучший способ улучшить Firefox. Напомню, что наша цель - конфиденциальность. Если вы хотите просматривать веб-страницы анонимно, я предлагаю вам вместо этого взглянуть на Tor Browser.

Самый простой и быстрый способ получить лучшую конфигурацию для Firefox - использовать файл user.js от Arkenfox (https://github.com/arkenfox/user.js/). Проект Arkenfox предоставляет шаблон user.js для настройки и усиления Firefox, который дает нам идеальную основу для нашего браузера, ориентированного на конфиденциальность.

## Создаём новый профиль с настройками от Arkenfox.

Переходим в about:profiles, слева вверху нажимаем "Create a New Profile", в появившемся окне нажимаем Continue, указываем имя нового профиля (опционально - каталог расположения нового профиля) и жмём Finish. Листаем страничку вниз, находим наш новый профиль и запоминаем расположение каталога. В терминале переходим в этот каталог `$ cd ~/.mozilla/firefox/a2bmu1ne.qwerty` (название у вас будет отличаться от моего) и качаем файл user.js в этот каталог `wget -q https://github.com/arkenfox/user.js/raw/master/user.js`.

Теперь снова открываем страничку `about:profiles`, листаем к нашему новому профилю и жмём "Launch profile in new browser". По желанию можете назначить этот профиль по умолчанию "Set as default profile".

## Поисковые системы, которые заботятся о вашей конфиденциальности

Searx (https://searx.me/) - свободный метапоисковый движок с открытым исходным кодом. Можно выбрать из списка https://searx.space либо установить на свой сервер. (Крайний раз, когда я у себя его разворачивал, особой настройки не требовалось, как и ресурсов, движок парсит другие поисковики (Google, Bing, Yandex, etc)). Для добавления в Firefox выберите один из https://searx.space и ПКМ по адресной строке -> "Add searx".

### Другие поисковики
Metager (https://metager.org/): еще один бесплатный механизм метапоиска, управляемый некоммерческой организацией из Германии. Предпочтительнее DDG, но не SearX.

DDG Lite (https://html.duckduckgo.com/html/): это Duckduckgo, но без JavaScript, поэтому они могут как можно меньше отслеживать вас (Duckduckgo не следует доверять). Особого смысла пользоваться конкретно версией Lite нет, достаточно отключить JavaScript в uBlock Origin или установить NoScript и можно пользоваться https://duckduckgo.com. Но лично я не особо доверяю DDG.

Quant (https://www.qwant.com/): поисковая система, которая *заявляет* что не отслеживает пользователей (non-free). Не заметил чтобы фильтровал поисковую выдачу, по запросу "купить %запрещённые вещества% в Москве" выдал кучу ссылок. Cookies/Local storage не использует, я проверил.

Mojeek (https://www.mojeek.com/): независимая поисковая система, базирующаяся в Великобритании, которая *утверждает*, что не отслеживает своих пользователей (non-free). Не тестил.

YaCy (https://yacy.net/): свободная децентрализованная одноранговая поисковая система. Это уникальная и отличная идея, хотя она плохо работает.

## Мастхэв дополнения

uBlock Origin (https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/): в представлении не нуждается. Но для тех, кто не знает всё же напишу - лучший блокировщик рекламы с открытым исходным кодом, сочетающий в себе возможности NoScript и uMatrix. Потребляет мало памяти. Правильно настроенный uBlock Origin будет вашим лучшим другом против рекламы, трекеров и аналитики.
Я предлагаю вам включить расширенный режим. Настоятельно рекомендуется отключить JavaScript по умолчанию. Вы можете включить его для определенных сайтов, когда вам это нужно. Блокировка JavaScript, вероятно, лучшее, что мы можем сделать для сохранения конфиденциальности.

LocalCDN (https://addons.mozilla.org/en-US/firefox/addon/localcdn-fork-of-decentraleyes/): LocalCDN - это форк хорошо известного Decentraleyes. Он лучше, чем Decentraleyes, в том смысле, что предоставляет настраиваемые правила для использования внутри uBlock Origin, поэтому эти дополнения лучше работают вместе. Он перехватывает запросы к CDN и отдаёт контент локально что исключает трекинг от ClaudFlare и других CDN.
Как работает: запрос на https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css будет перехвачен и отдастся локальный файл. Это не только повысит вашу конфиденциальность, но и ускорит загрузку страниц если вы используете медленное подключение.
После установки LocalCDN идём в его настройки, вкладка Advanced, внизу выбираем uBlock и копируем содержимое. Закрываем вкладку, больше мы сюда возвращаться не будем. Идём в настройки uBlock, ставим галочку на "I am an advanced user", идём во вкладку "My rules" и в правое окошко вставляем наши правила из LocalCDN. Жамкаем "Save", жамкаем "Commit". Это всё.

## Менеджер паролей

Вы должны использовать надежный менеджер паролей для создания и хранения паролей.

Я (автор оригинальной статьи) бы порекомендовал Bitwarden, который открыт и бесплатен (https://github.com/bitwarden), но я(переводчик) не стал бы тащить на десктоп TypeScript и C# на сервер. Решение принимать вам.

Для параноиков, которые не хотят хранить свои пароли на удалённых серверах, есть KeePassXC (https://keepassxc.org/), который также является бесплатным и открытым программным обеспечением. Его преимущество заключается в том, что ваши пароли хранятся только в локальной, надежно зашифрованной базе данных, поэтому они никогда не покинут ваш компьютер, если вы этого не захотите. Вы можете использовать Syncthing, чтобы синхронизировать их между вашими разными машинами без какого-либо сервера.

Третий вариант (только для джедаев терминала) - это GNU Pass (https://www.passwordstore.org/), простой менеджер паролей, который следует философии Unix. Пароли хранятся в ~/.password-store, зашифрованные вашим ключом GPG.

### Рекомендуемые дополнения

Это аддоны, которые обычно рекомендуются, но, в отличие от uBlock или LocalCDN, они требуют некоторых действий от вас (на самом деле, не так уж много).

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

Cookie AutoDelete (https://addons.mozilla.org/en-US/firefox/addon/cookie-autodelete/): этот аддон удаляет файлы cookie каждый раз, когда вы закрываете вкладку или выходите из браузера. Но он может делать гораздо больше, например, очистку локального хранилища, очистку при смене домена, удаление кеша, белых и серых списков, очистку при смене домена и т. Д.

Это настолько мощный инструмент, что его также можно настроить для использования с контейнерами (вы должны включить настройку для этого), и он особенно полезен, если вы не используете ни контейнеры, ни FPI (далее в статье).

ClearURLs (https://addons.mozilla.org/en-US/firefox/addon/clearurls/): аддон автоматически удаляет элементы отслеживания из URL-адресов (это часто используемая стратегия для отслеживания вас), и его очень просто использовать. В редких случаях сайт может перестать работать, если вы очистите некоторые параметры из URL, но если вы это заметили, вам нужно временно отключить этот аддон. Легко, правда?

Temporary Containers (https://addons.mozilla.org/firefox/addon/temporary-containers/): контейнеры в Firefox одна из самых крутых фич, на мой взгляд. Они изолируют хранилище данных веб-сайтов (файлы cookie, хранилище и т.д.) друг от друга. Вам нужно только включить автоматический режим, и аддон сотворит чудеса за вас. Однако вы не можете использовать его в приватном окне и он может немного замедлить работу вашего браузера (поскольку создаёт контейнер для каждой новой вкладки).

Я (переводчик) активно использую Multi-Account Containers (https://addons.mozilla.org/firefox/addon/multi-account-containers/). Это те же самые изолированные контейнеры, но с постоянным хранением данных веб-сайтов. Есть возможность настройки автоматического открытыия сайта в нужном контейнере.

ETag Stoppa (https://addons.mozilla.org/firefox/addon/etag-stoppa/): не позволяет вашему браузеру сохранять теги сущностей, удаляя заголовки ответов ETag (https://ru.wikipedia.org/wiki/HTTP_ETag) без исключений. Это необходимо только в том случае, если вы не используете временные контейнеры, и это отличная команда с Cookie AutoDelete.

CanvasBlocker (https://addons.mozilla.org/firefox/addon/canvasblocker/): CanvasBlocker - идеальный аддон для тех, кому нужно включить JavaScript. Он не позволяет веб-сайтам использовать некоторые API-интерфейсы JavaScript для отслеживания вас. У него есть разные уровни, и это действительно полезно, если вы хотите подделать свой отпечаток пальца. Это может сломать некоторые сайты, хотя у меня никогда не было проблем с этим аддоном. Просто работает.

xBrowserSync (https://addons.mozilla.org/firefox/addon/xbs/): ваш личный сервер синхронизации.

AdNauseam (https://addons.mozilla.org/en-US/firefox/addon/adnauseam/): не только блокирует рекламу, но и скрывает данные просмотра, чтобы противодействовать отслеживанию со стороны индустрии онлайн-рекламы. Чтобы избавиться от рекламных сетей, AdNauseam «нажимает» на заблокированные и скрытые объявления, загрязняя ваш цифровой профиль и создавая шум в экосистеме, которая управляет онлайн-наблюдением. Он использует uBlock в качестве основы, поэтому вы также получаете все, на что способен uBlock.
Это идеальный аддон, если вы хотите громко крикнуть: «Гугл, да пошел ты!».

Privacy Redirect (https://addons.mozilla.org/en-US/firefox/addon/privacy-redirect/): редиректит запросы Twitter, YouTube, Instagram, Reddit и Google Maps на безопасные и бесплатные альтернативы (Nitter, Invidious, OpenStreetMap, Libreddit). Он также поддерживает настраиваемые серверы, поэтому вы можете использовать его со своими экземплярами, размещенными на собственном хостинге!

## Дополнительные настройки about:config

Хотя Arkenfox предоставил нам отличный шаблон, я обнаружил, что есть несколько других настроек, которые могут еще больше повысить нашу конфиденциальность. Вам нужно будет зайти в свой about:config (конечно, в новом профиле!). Щелкните, чтобы принять риски и продолжить. Я перечислю вам некоторые из моих рекомендуемых настроек, вы можете сами оценить, нужна ли вам одна из функций, которые мы отключаем.

Cледующие изменения будут разделены на три уровня: настройки базового уровня ничего не сломают, изменения стандартного уровня могут вызвать незначительные неудобства, а настройки расширенного уровня могут сломать определенные сайты, но не беспокойтесь, так как я предлагаю простой способ исправления.

# Базовый уровень

Предварительная загрузка

Измените `network.dns.disablePrefetch` на `true` и `network.prefetch-next` на `false` (предварительная загрузка может немного ускорить загрузку, но она не так заметна, и ее отключение не позволяет вашему браузеру подключаться к серверам без участия пользователя).

Отключение JavaScript в PDF

Переключите `pdfjs.enableScripting` на `false` (вы по-прежнему сможете просматривать PDF-файлы в Firefox).

Полное отключение Pocket

Измените `browser.newtabpage.activity-stream.section.highlights.includePocket` на `false` и `extensions.pocket.enabled` на `false` (Pocket должен был быть отключен в настройках от Arkenfox, но не отключен.)

## Средний уровень

Отключение поддержки геолокации `geo.enabled` `false`

Отключение WebRTC: `media.peerconnection.enabled` и `media.navigator.enabled` на `false`. (ВНИМАНИЕ: установка значения false может нарушить работу некоторых сайтов, особенно некоторых популярных программ видеозвонков.)

Отключение DRM: `media.gmp-widevinecdm.enabled` и `media.eme.enabled` на `false` нарушит работу некоторых сайтов, требующих DRM, например Apple Music точно работать не будет.

## Продвинутый уровень

Для пользователей продвинутого уровня я настоятельно рекомендую вам Privacy Settings addon (https://addons.mozilla.org/firefox/addon/privacy-settings/), который позволяет нам временно отключить некоторые настройки, чтобы вы могли исправить неработающие сайты, не отключая настройки конфиденциальности навсегда. Это очень полезно, если вы научитесь им пользоваться.

FPI: Измените `privacy.firstparty.isolate` на `true`. Это важная настройка, поскольку она изолирует файлы cookie и блокирует межсайтовое отслеживание.

Борьба с отпечатками: измените `privacy.resistFingerprinting` на `true`. Это может привести к некоторым проблемам с производительностью, но мне нравится включать это. Пользуюсь им уже давно и проблем никогда не возникало.

Отключение referer-заголовка: `network.http.referer.XOriginPolicy` на `2`. Это нарушит работу некоторых сайтов, особенно тех, которые имеют формы и логины.

0 = Отправлять реферера во всех случаях.
1 = Отправить Referer на те же сайты eTLD.
2 = Отправлять Referer только при совпадении полных имен хостов.

TEH END.

Это вольный перевод, оригинал статьи можно прочесть здесь https://ebin.city/~werwolf/posts/firefox-hardening-guide/

Ссылки по теме

 
Мы не знаем всех настроек браузера, нам доступна лишь большая часть. Но знаем что он берет инфу биоса при загрузке. Не один плагин или настройка не изменит этого. Поэтому запуская браузер на реальном железе мы может сгенерировать точки пересечения (с другими приложениями). Ведь на этом же железе может запускаться любой другой (не анонимный) браузер, мессенджер и тд.
 
Мы не знаем всех настроек браузера, нам доступна лишь большая часть. Но знаем что он берет инфу биоса при загрузке. Не один плагин или настройка не изменит этого. Поэтому запуская браузер на реальном железе мы может сгенерировать точки пересечения (с другими приложениями). Ведь на этом же железе может запускаться любой другой (не анонимный) браузер, мессенджер и тд.
Честно говоря, впервые от тебя узнаю об этом. Но исходники открыты, так что feel free, как говорится.
 
Честно говоря, впервые от тебя узнаю об этом. Но исходники открыты, так что feel free, как говорится.
Почитайте мою статью (чуть нижу в этом разделе).
 
Мы не знаем всех настроек браузера, нам доступна лишь большая часть. Но знаем что он берет инфу биоса при загрузке. Не один плагин или настройка не изменит этого. Поэтому запуская браузер на реальном железе мы может сгенерировать точки пересечения (с другими приложениями). Ведь на этом же железе может запускаться любой другой (не анонимный) браузер, мессенджер и тд.
Чтобы точки пересечения слегли, эти две программы должны быть под одним разработчиком.
Паранойя такая вещь, с ней нельзя переборщить, а то из под дивана не вылезешь =) Пора собирать данные от юзеров, сообщите кого принимали через идентификатор браузера? =) Ну и вообще не вижу паники, лучше бы зашиту локально помещения сделали, чем облепляться сотней конфигов с дополнениями. Которые тоже надо проверять как работают, не сливают ли или вообще могут ли быть потенциально уязвимыми.
Честно говоря, впервые от тебя узнаю об этом. Но исходники открыты, так что feel free, как говорится.

Сколько софта с открытым кодом, давно уже не должно являться аргументом. Кто будет проверять тысячи строк кода? Даже может и обнаружат потенциальную дырку, но промолчат, считая себя тупее остальных. Ведь как принято - код открыт, значит проверяется другими и если другие не сообщили о моей находке, значит это не ошибка =) Сколько раз было такое, когда читаю новости где пестрят об уязвимости, а я оказывается уже много лет об этом знал, считая незначительным =)
 
Последнее редактирование:
Я уже запутался. Расскажите, анонимный браузер это тот который "как у всех" по дефолту или напичкан кастомными настройками и плагинами?
 
Я уже запутался. Расскажите, анонимный браузер это тот который "как у всех" по дефолту или напичкан кастомными настройками и плагинами?
Дефолтный, настроеный - Tor browser. Надо же чтобы за тобой следил не только firefox, а ещё разработчики этих самых дополнений =)

P.S: Кто любит конфиги менять: https://gist.github.com/0XDE57/fbd302cef7693e62c769
 
Чтобы точки пересечения слегли, эти две программы должны быть под одним разработчиком.
И что это значит под одним разработчиком?
Пора собирать данные от юзеров, сообщите кого принимали через идентификатор браузера?
Я говорю что это возможно, а инфа о приеме негде не будет публиковаться
Я уже запутался. Расскажите, анонимный браузер это тот который "как у всех" по дефолту или напичкан кастомными настройками и плагинами?
Это самый популярный браузер (хром), который запускаем первый раз. А вот запуск уже в последующие разы, ведет за собой историю. Чтобы этого избежать, не достаточно одного лишь браузера, а еще необходимо виртуальная машина. Так как каждый установщик хрома имеет уникальный идентификатор (хэш), то его нужно скачивать. То есть, восстановили снапшот виртуалки, скачали хром (через IE например) и делаем что нам надо.
 
Последнее редактирование:
И что это значит под одним разработчиком?

Я говорю что это возможно, а инфа о приеме негде не будет публиковаться

Это самый популярный браузер (хром), который запускаем первый раз. А вот запуск уже в последующие разы, ведет за собой историю. Чтобы этого избежать, не достаточно одного лишь браузера, а еще необходимо виртуальная машина. Так как каждый установщик хрома имеет уникальный идентификатор (хэш), то его нужно скачивать. То есть, восстановили снапшот виртуалки, скачали хром (через IE например) и делаем что нам надо.
Браузер анонимный и не анонимный одного разработчика. Публиковаться не будет почему? Адвокаты, подсудимые не будут публиковать думаешь? Ну и чё вот с этим идентификатором сделают?
 
Последнее редактирование:
Браузер анонимный и не анонимный одного разработчика. Публиковаться не будет почему? Адвокаты, подсудимые не будут публиковать думаешь? Ну и чё вот с этим идентификатором сделают?
А что можно сделать с серийником биоса? Я не знаю для чего он используется браузером, но раз он запрашивается, то я категорически против распространять свой уникальный серийник реального железа. Если вы знаете зачем он нужен браузеру, то поделитесь, вот как показала практика, не всем браузерам, почему-то, нужны столь необычные запросы.
 
А что можно сделать с серийником биоса? Я не знаю для чего он используется браузером, но раз он запрашивается, то я категорически против распространять свой уникальный серийник реального железа. Если вы знаете зачем он нужен браузеру, то поделитесь, вот как показала практика, не всем браузерам, почему-то, нужны столь необычные запросы.
Жаль что ты не потрудился открыть исходники. Серийник берётся здесь https://github.com/chromium/chromiu...d1eda25745c4022757499131/base/win/wmi.cc#L151, ты можешь на следующей строчке написать return; и перекомпилировать. Вся хардварная информация собирается для отчётов https://github.com/chromium/chromiu...erprise/browser/reporting/report_generator.cc

Для линкесов я не нашёл ничего подобного в исходниках. Да и в целом это бессмысленно, пользоваться продуктом гугла и ждать какой-то конфиденциальности. К слову, в исходниках ФФ ничего подобного нет вообще.
 
Жаль что ты не потрудился открыть исходники. Серийник берётся здесь https://github.com/chromium/chromiu...d1eda25745c4022757499131/base/win/wmi.cc#L151, ты можешь на следующей строчке написать return; и перекомпилировать. Вся хардварная информация собирается для отчётов https://github.com/chromium/chromiu...erprise/browser/reporting/report_generator.cc

Для линкесов я не нашёл ничего подобного в исходниках. Да и в целом это бессмысленно, пользоваться продуктом гугла и ждать какой-то конфиденциальности. К слову, в исходниках ФФ ничего подобного нет вообще.
Не читаю исходники, так как не знаю тот ЯП, на котором их написали. В исходниках ФФ нету, а он запрашивает инфу про биос. Может вы что-то пропустили?
 
Не читаю исходники, так как не знаю тот ЯП, на котором их написали. В исходниках ФФ нету, а он запрашивает инфу про биос. Может вы что-то пропустили?
Хромиум читает данные и в линуксе https://github.com/chromium/chromiu...2757499131/base/system/sys_info_linux.cc#L134

Читает 2 файла:
1) "/sys/devices/virtual/dmi/id/sys_vendor"
2) "/sys/devices/virtual/dmi/id/product_name"

Второй показывать не буду, в первом у меня написано LENOVO. А вот идентификатор находится в "/sys/devices/virtual/dmi/id/board_serial" и доступа у простого пользователя, от которого обычно запускается хромиум, к нему нет
Код:
$ cat /sys/devices/virtual/dmi/id/board_serial
cat: /sys/devices/virtual/dmi/id/board_serial: Отказано в доступе

Что касается FF, в исходниках так же не нашёл чтения /sys/devices/virtual/dmi/id/*
Аналогов твоей виндовой тулзы не знаю, но у меня есть strace.

Sass:
$ strace -o /tmp/ff.log firefox
$ grep dmi /tmp/ff.log
Результатов ноль.
Так что проблема не в браузере, проблема в твоей операционной системе.
 
А что можно сделать с серийником биоса? Я не знаю для чего он используется браузером, но раз он запрашивается, то я категорически против распространять свой уникальный серийник реального железа. Если вы знаете зачем он нужен браузеру, то поделитесь, вот как показала практика, не всем браузерам, почему-то, нужны столь необычные запросы.
Какой метод используете, чтобы не расспространять серийники? У Вас на всё один ответ, виртуализация. С чего решили будто они безопасней и почему не задавались вопросом, а какие идентификаторы собирает виртуалка? Ведь он установлена на основном ПК, значит тоже читает серийники =) Например в linux через AppArmor можно отсекать доступ к серийнику и другим данным. Даже софту имеющему рут доступ.
 
Какой метод используете, чтобы не расспространять серийники? У Вас на всё один ответ, виртуализация. С чего решили будто они безопасней и почему не задавались вопросом, а какие идентификаторы собирает виртуалка? Ведь он установлена на основном ПК, значит тоже читает серийники =) Например в linux через AppArmor можно отсекать доступ к серийнику и другим данным. Даже софту имеющему рут доступ.
Да, я поддерживаю виртуализацию, так как считаю что это единственный выход в борьбе со слежкой в сети. Почему? Потому что каждый раз устанавливается браузер на чистую виртуальную машину со всеми новыми серийниками железа.
Что же касаемо сбора данных виртуалок - меня это не волнует, так как гипервизор не может передать собранные данные (https://xss.pro/threads/40690/).
 
Да, я поддерживаю виртуализацию, так как считаю что это единственный выход в борьбе со слежкой в сети. Почему? Потому что каждый раз устанавливается браузер на чистую виртуальную машину со всеми новыми серийниками железа.
Что же касаемо сбора данных виртуалок - меня это не волнует, так как гипервизор не может передать собранные данные (https://xss.pro/threads/40690/).
Поддерживаю вас касательно виртуалки.....
Если честно я побаиваюсь Вин, потому что не могу/не умею контролироват его....с линукс + ГНУ намного проще....но это лишь на вкус и цвет.
Вот что хочу дополнить, virtualbox скорее всего сливает данные....в последнее время всё чаще и чаще слышу об этом...Паралельс, слышал ещё об этом лет 5 назад, когда пользовался маком, и мне скразу советовали ставить паралельс крякнутую, потому что там было вырезан отстук на их серваки, и данные поэтому им не уходили..Думаю что вот вмваре тоже этим грешит. Но не могу ни чего сказать про QEMU и Hyper-V
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх