Пользователь
0,0
рейтинг
26 ноября 2013 в 14:48

Разработка → Методы анонимности в сети. Часть 3. Firefox


Всем привет!

Немногие озадачиваются подробной настройкой браузера, хотя браузер – это самая популярная программа для работы в интернете. На примере Firefox я покажу, как можно сделать свой браузер максимально безопасным и чуть более «анонимным» по сравнению с его настройкой по умолчанию, при этом сохранив даже некоторую функциональность! :) Opera или Chrome, имеют схожие настройки, но, на мой взгляд, самый гибкий с точки зрения безопасности – всё же Firefox.
Цель статьи – не обеспечить высокий уровень анонимности, но эффективно отсеять множество идентифицирующих, лишних и даже потенциально опасных данных, которые, так или иначе, передаются или принимаются браузером.
Все части здесь:
Часть 1: Методы анонимности в сети. Просто о сложном.
Часть 2: Методы анонимности в сети. Утечки данных.
Часть 3: Методы анонимности в сети. Firefox.
Часть 4: Методы анонимности в сети. Tor&VPN. Whonix.

Cookies

Cookies — это текстовые файлы с какими-либо значениями, хранимые приложением (часто — браузером) для разных задач, например, аутентификации.
Если совсем отключить приём cookies, то на некоторых сайтах могут возникнуть проблемы с авторизацией, но Firefox позволяет принимать cookies и очищать их после своего закрытия. Пункт «Принимать куки со сторонних сайтов» тоже желательно отключить, однако, например, залогинившись на Хабре с отключенным 3rd party куки, мы не получим доступа на habrastorage.org, поэтому я предпочитаю всё же принимать куки с посещенных сайтов.

Более того, Firefox позволяет вести белый и чёрный список сайтов с куки.

Если мы хотим приватности, то при закрытии Firefox, нужно всё очищать. Да, не совсем удобно, но и следов не остаётся.

Обратите внимание на галочку «Flash Cookies», это не дефолтная галочка Firefox, о ней мы поговорим чуть позже, когда затронем LSO или Flash cookies.
Здесь же, в настройках, особое внимание стоит уделить очистке кеша браузера. В статье: "Cookie без куков", обосновывается необходимость очистки кеша.
На странице настроек Firefox: about:config, есть параметр: browser.cache.disk.enable, отвечающий за использование дискового кэша. Значение «false», означает, что кеш использоваться вообще не будет. По остальным настройкам browser.cache.disk не заморачивайтесь, после отключения кеша они уже не важны.
А удобная и бесплатная программа, CCleaner, поможет вам вычистить все уже накопленные следы интернет-активности, хранящиеся даже в самых дальних уголках жесткого диска.

Java, Flash, Adobe Reader...

Все эти плагины являются отдельными приложениями, которые запускаются от имени пользователя. Они могут обходить настройки прокси, хранить свои отдельные долгоживущие cookies (Flash — Local Shared Objects) и пр.
Все плагины в идеале должны быть отключены или удалены. Без Java и Adobe Reader в браузере вполне можно прожить, но бывают ситуации, когда Flash всё же приходится включать, иначе сайт попросту не заработает. В таком случае нужно обеспечить регулярное обновление Flash и запрет хранения Local Shared Objects (LSO) или Flash cookies.
Также рекомендуется включать Flash только по запросу. Так вы разрешите запускать именно тот элемент Flash, который действительно сами хотите. Сделать это можно в настройках плагинов (дополнений).

Для запрета хранения LSO специально разработано дополнение к Firefox, Better privacy. Я предпочитаю, чтобы галочка об очистке LSO была добавлена в меню Firefox «Стереть историю», как на предыдущем рисунке.


Fingerprint (отпечаток) браузера

Браузер предоставляет серверу десятки категорий данных, в том числе и так называемый user agent. Всё это может сформировать достаточно уникальный «цифровой отпечаток браузера», по которому его можно найти среди многих других уже в анонимном сеансе.
Существует немало дополнений по подмене юзерагента браузера, я привык пользоваться User Agent Overrider. Дополнение стабильно, удобно, постоянно обновляется, есть в официальных репозиториях Firefox.


Скрипты Javascript

Скрипты Javascript, исполняемые на стороне клиента, могут собирать для сервера множество категорий идентифицирующий данных. Более того, если посещаемый сайт подвержен XSS, то включенные на нём скрипты Javascript помогут злоумышленнику провести успешную атаку со всеми вытекающими последствиями.
Для того, чтобы запретить данные скрипты лучше всего подходит дополнение NoScript.

Помимо Javascript дополнение может блокировать еще множество различных элементов: Java, Flash и пр. Пользователь может временно разрешить выполнение всего активного содержимого на странице или сделать это на постоянной основе.


В этом же разделе я опишу еще один аддон, который идёт бок-о-бок с NoScript: RequestPolicy.
Аддон RequestPolicy нужен для контроля межсайтовых запросов и защиты от CSRF. Межсайтовые запросы осуществляются, когда вы зашли на один сайт, он запросил уже у другого сайта нужный ресурс, например, картинку, и показал её вам. Подобные механизмы наиболее часто используются в рекламных целях. Отмечу, что таким образом вредоносные сайты могут делать совсем плохие вещи, например, при определённых условиях выполнять несанкционированные действия на третьем сайте с вашими сохранившимися куками. Представьте, чем это может грозить.
Автор RequestPolicy рекомендует использовать его в связке с NoScript, так как каждое дополнение заточено под свои цели, а вместе они позволяют добиться гибкой и всесторонней защиты. На картинке RequestPolicy блокирует картинку с habrastorage.org.

Стоит отметить, что некоторым сайтам совсем не нравится блокировка Javascript и межсайтовых запросов. Должно пройти какое-то время в режиме «обучения», чтобы сформировался доверенный список регулярно посещаемых ресурсов. Что поделать, безопасность и удобство всегда стояли на разных чашах весов.

Web Bugs

Web Bugs — это невидимые детали веб-страниц, используемые для мониторинга посещений сайта, они способны дополнительно отсылать серверу разные данные о клиенте.
Для блокирования web bugs существуют два основных дополнения: Ghostery и DoNotTrackMe.
Принцип у них схож, когда я их сравнивал, то остановился по своим субъективным ощущениями на Ghostery, его и опишу. Важно отметить, что при дефолтной настройке Ghostery не блокирует все баги и треккеры, это надо сделать вручную, в его настройках по локальному адресу: resource://firefox-at-ghostery-dot-com/ghostery/data/options.html.

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

Со временем вы заметите, что Ghostery и RequestPolicy пересекаются в блокировании некоторых элементов, например, Google Analytics, Yandex.Metrics и пр.

HTTP-referer

HTTP-referer — это http-заголовок, с помощью которого веб-сайт может определить, откуда к нему идёт траффик. Если вы кликнули по ссылке, которая передает http-referer, то сайт, на который данная ссылка ведёт, сможет узнать, с какого именно сайта вы на него перешли.
Firefox имеет интересную настройку в about:config: network.http.sendRefererHeader. Данный пункт определяет, в каких случаях будет отсылаться HTTP-referer. Есть три варианта:
  • 0 – никогда не отсылать HTTP-referer
  • 1 – отсылать только по кликнутым ссылкам
  • 2 – отсылать для ссылок и картинок (по умолчанию)

Проведем эксперимент. Есть сайт: www.whatismyreferer.com, цель которого – показывать наш HTTP-referer.
Используем установленное по умолчанию значение network.http.sendRefererHeader = 2.
Кликаем по ссылке: www.whatismyreferer.com, видим наш реферер, выделенный красным цветом (в вашем случае он будет немного отличаться):

Сделаем то же самое: www.whatismyreferer.com, но с network.http.sendRefererHeader = 0. Опа!

Ставьте network.http.sendRefererHeader = 0, и реферер передаваться не будет.
В настройках есть еще один схожий параметр, network.http.sendSecureXSiteReferrer, он отвечает за передачу реферера между двумя https-сайтами. Однако не заморачивайтесь, он не работает после отключения предыдущей настройки.

Кстати все слышали про поисковик DuckDuckGo? В том, что он рефереры не отправляет, я был уверен. Но кликнув левой кнопкой мыши по первой ссылке (после рекламы) в его поисковой выдаче по запросу: duckduckgo.com/?q=www.whatismyreferer.com с установленным network.http.sendRefererHeader = 2, я увидел следующее:

Если кликнуть средней кнопкой мыши (открыть новую вкладку), то всё ок, реферер действительно не показывается.
Будьте внимательны: рефереры используются в работе многих интернет-ресурсов, их отключение может привести к самым неожиданным последствиям, меня, например, после отключения реферера не пускало логиниться в TM ID.

Прочее

Совершенно лишним будет отправлять какую-либо служебную информацию в Mozilla.

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


HTTPS Everywhere

Данный аддон нужен для того, чтобы принудительно использовать только https-соединение для сайтов, которые это поддерживают.


Adblock Plus

Не столько безопасно, сколько просто полезно. Adblock Plus нужен для блокировки всей возможной рекламы при этом он имеет регулярно обновляемый список фильтров. Я отмечу, что в настройках есть галочка: «Разрешить некоторую ненавязчивую рекламу», которую при желании можно убрать.

Последний совет для тех, кто активно пользуется SOCKS при веб-серфинге. Настройка network.proxy.socks_remote_dns определяет, где будут выполняться DNS-запросы при использовании SOCKS5. Значение «true» устанавливает, что они будут выполняться через SOCKS-прокси, а не на самом клиенте. Так мы защитимся от DNS-leaks.

Подробнее о каждой настройке из about:config Firefox можно почитать тут. А по этой ссылке часть их расписана по-русски.

Уффф, вроде всё! Сам использую описанную конфигурацию Firefox. Сначала нужно было немного привыкнуть, но я понимаю, зачем всё это нужно.
Спасибо! Готов ответить на все вопросы.
@Pandos
карма
66,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (55)

  • –9
    У меня есть вопрос: зачем всё это?
    • +7
      В прошлой статье люди попросили: «схему при которой и пользоваться интернетом не напряжно и никаких следов такого рода не остаётся».
      Я постарался помочь :)
      • –1
        У каждого свои вкусы. Мне лично кажется, что сёрфить инет и следов не оставлять — это в первую очередь — делать это с виртуальной машины, к снапшоту которой возвращяться. Это точно поуничтожает всё, что стаётся после сёрфинга в компьютере. Даже если чего-то не предусмотрел
        И уже во вторую — докручивать настройки этой виртуальной машины, в т.ч. предложенными в статье способами
        • +3
          А вот это уже как раз напряжно, в то время как автор хотел описать «схему при которой и пользоваться интернетом не напряжно и никаких следов такого рода не остаётся».
        • +2
          Не понимаю, почему одно мешает другому. Будете пользоваться браузером и на хосте и на виртуальной машине. Браузер все же не отменишь… а если вы, например, не позаботитесь о куках, то и с виртуальной машиной наследите в интернете вполне достаточно.
          • 0
            Всё верно. Моя цель — доступно описать элементарные «компоненты анонимности». Я сознательно НЕ собираю из этих «деталей» рабочую схему. Я хочу, чтобы каждый, кто прочитает эти статьи, смог осознанно собрать ту схему, которая подойдет именно ему.
      • –1
        А получилось, что и пользоваться неудобно при стирании истории+кукисов между сессиями, и одновременно анонимности нет. Небывает «немножко анонимен». Если кто захочет — отследят вас без проблем. Все, чего вы добились — о вас соберут меньше статистики. Статью можно озаглавить «как сделать, чтоб мне показывался нерелевантный AdSense».
        • 0
          Каким же образом отследят, если ни в одной из своих статей я ещё не описывал свою рабочую схему анонимности в сети? :)

          Естественно, что браузер — лишь малая составляющая всего процесса, но наиболее часто используемая. Поэтому важно было разобраться, какие идентифицирующие данные он может передавать.
          У меня другие цели: максимально ясно донести читателям базовые вещи процесса обеспечения анонимности, чтобы каждый из нас мог подойти к своей анонимности осознанно.
          • 0
            Так в том то и дело, что должен быть комплексный подход к анонимности в сети, где браузер — составная часть. Возможно вы это имели ввиду, но написали совершенно иное

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


            А с такой целью вопрос в самом первом комментарии к статье вполне закономерен, хоть и отхватил незаслуженных минусов.
            • 0
              Чуточку терпения, я всё понимаю:) В одной статье такую важную тему не охватить. Я начал с основ, чтобы в итоге прийти к комплексному подходу. Весь пилотаж еще впереди.
          • 0
            Извините, но:
            Уффф, вроде всё! Сам использую описанную конфигурацию Firefox. Сначала нужно было немного привыкнуть, но я понимаю, зачем всё это нужно.

            т.е. показная в статье конфигурация браузера делает его не уникальным, похожим на множество других.Но откуда взяться этому множеству других, если считается что 83.6% браузеров уникальны?.. Откуда вы знаете наверняка что это так? Вы делали какие-нибудь тесты?
            • 0
              Нет, что Вы.
              Эта фраза совсем не значит, что показанная в статье конфигурация делает мой браузер похожим на множество других.
              Это значит, что я использую описанную конфигурацию Firefox и мне понадобилось время, чтобы к ней привыкнуть :)
              Отключите Flash и Java и затеряйтесь в оставшихся ~ 16% :) К сожалению, нет актуальных исследований, как отпечаток браузера фактически повлиял на нарушение анонимности интернет-пользователей. Но моя обязанность — Вам об этом рассказать.

              А ещё вот.
              • 0
                Просто, статья написана так, что воспринимается как руководство. Мне кажется что не хватает предупреждения типа: «слепое копирование данных настроек, может отрицательно повлиять на вашу анонимность». Но в общем, интересная и заставляет задуматься. Спасибо.
                Насчет актуальных исследований: возможно они и есть. Первое что мне пришло в голову — это возможность идентификации пользователя по кэшам браузера и DNS. Сразу находится "Timing on Web Web Privacy". Затем стало интересно как отпечатки браузеров сейчас реально используются, нашлось два интересных проекта: FPDetective(вроде очень даже актуальный, жаль нет исследования отечественного сегмента Сети) и StopFingerprinting.
                Вообще тема очень интересная, хочется узнать об этом побольше. Еще раз спасибо что обратили внимание на этот вопрос.
                • 0
                  Спасибо, учту :) В целом Вы правы, исследования любопытные, изучу.
  • +4
    HTTP-referer
    Для выборочной блокировки можно поставить RefControl или аналог.
    • 0
      Скорее нужно, а не можно. Некоторые вещи без этого просто не будут работать, например комментарии через Disqus и авторизация на баг-трекере perl/cpan.
  • 0
    Есть ведь режим «инкогнито», разве с ним не удобнее?
    • +7
      В режиме инкогнито Firefox не ведёт никакую историю и не сохраняет временные файлы.
      Скрипты, аддоны, рефереры, дефолтный юзерагент — всё это остаётся.
  • 0
    Самый нормальный способ — завести образ виртуальной машины, и воссоздавать её полностью после каждого сеанса работы. Это разом избавит от всей головной боли, и обезопасит в том числе и от направленных атак (привет, пользователи Freedom Hosting).

    Причем образ лучше взять какой-нибудь популярный, чтобы не выделяться из общей массы. Или даже специально заточенный для анонимной работы — тот же Whonix или Tails.

    А вот так вот скакать по кешам и плагинам — путь в никуда. Все равно где-нибудь пролезет. Через виртуалку конечно тоже может, но все-таки шансов значительно меньше.
    • 0
      Эта статья посвящена только браузерам.
  • +1
    Извините, а какой смысл в подмене useragent'a?
    • +1
      Because I can ©
      Как говориться, почувствуй себя Богом.

      p.s. www.youtube.com/watch?v=VauzhTAuoFw
      • +3
        «говорится», естественно
    • +1
      panopticlick.eff.org
      Посмотрите, сколько информации дает всего лишь useragent. Конечно же, бесполезно его поменять 1 раз и постоянно пользоваться. Но вот смена useragent перед каждым запуском браузера может немного увеличить Вашу анонимность в сети. Кстати, в предыдущей статье автор уже приводил эту ссылку
      • 0
        Спасибо, смотрел. Только не кажется ли вам, что с фальшивым useragent'ом браузер становится еще более уникальным? С учетом того, что факт подмены можно определить.
        • 0
          Честно говоря, не знал, что факт подмены можно определить. Если так, то да, браузер становится еще более уникальным. Но, опять же, если менять useragent сразу после запуска браузера, то каждый раз вы получаете новую связку «настоящий useragent» — «фальшивый useragent»
    • 0
      Как я уже писал в комменте к другой статье подмена юзер-агента может помочь от примитивных эксплоит-паков, пытающихся атаковать пользователей скомпрометированных веб-ресурсов
      • +1
        Возможно, для пользователей Windowns, такой способ защиты имеет право на существование. Попробую конкретнее: есть ли смысл заставлять FIrefox 25 на Linux x86_64 притворятся Chrome'ом, работающим под Windowns?
        • +2
          Только если вы хотите скрыть факт использования ОС Linux на своем ПК и притвориться, что используете Windows. Это сделает вас чуть менее заметным, т.к. линукс все еще гораздо менее популярен.
    • 0
      Это идентифицирующий признак, который я не мог обойти своим вниманием.
      Возможно, в каких-то редких ситуациях раскрытие браузера и языковых настроек сможет сыграть решающую роль.
      Предупреждён, значит — вооружён.

      Вот мое мнение по всем подобным вопросам.
  • 0
    Нету в планах, случаем, написать подобное для Оперы 12?
    • +2
      Нет, Firefox — наиболее гибкий с точки зрения безопасности браузер. Хром еще для некоторых задач использую, но там тоже сходные механизмы.
  • +4
    Будьте внимательны: рефереры используются в работе многих интернет-ресурсов, их отключение может привести к самым неожиданным последствиям

    Например, нажатие на «добавить в избранное» на хабре выдает сразу три ошибки :)
  • +2
    Вместо Ghostery можно использовать подписку EasyPrivacy для адблока.
    • 0
      Можно использовать Disconnect.me. У него открытый код.
  • +2
    Чтобы при использовании noscript'a не трепали нервы любезные разработчики, желающие всеми возможными способами избавиться от назойливых посетителей без js через meta redirect в тэге <noscript> (что самое удивительное, чаще всего страница вполне нормально отображается), в настройках noscript'a следует отметить "Forbid META redirects inside <noscript>". По дефолту оно выключено.
    • 0
      О, за это спасибо! В русском языке это: «Дополнительно» — «Запретить МЕТА перенаправления внутри элементов noscript»
    • 0
      Мне хватает этого:
      скрин настроек
      Вкладка дополнительно (ступил, не правильно скрин сделал))
      image

      Странно, что этого нет в статье
  • –2
    ничего этот способ не даст. как сайты следили, так и будут следить. простой способ убедиться — отключить adblock, и погуглить-пояндексить пару дней. потом на сайтах в контекстной рекламе увидеть предложения купить что-то, схожее с тем что искал в поисковых системах.

    а что касается адблока — он вообще не блокирует ничего. он лишь НЕ ОТОБРАЖАЕТ на страницах картинки-скрипты. это означает, что картинки загружаются, а скрипты исполняются.

    ghostery вообще не понятно чем занимается. все кукисы и скрипты, которые он якобы блокирует, благополучно оседают в браузере, а та же контекстная реклама очень бодро предлагает снова что-нибудь купить, учитывая Ваши поисковые запросы. для чего все эти расширения нужны — нонсенс. правильно здесь написали — единственный верный вариант: режим инкогнито / либо виртуальная машина + прокси.
    • +1
      Если использовать noscript и белый список для сайтов, которым разрешено сохранять куки (и управлять списком через какой-нибудь cookie monster), то таких проблем не наблюдается.
      И вообще, имхо, если уж совсем параноить, то стоит использовать как минимум разные профили (а лучше и разных пользователей на уровне ОС) для различных целей: посидеть на любимых сайтах — один профиль, погуглить — другой профиль, финансовые операции — третий профиль.
      В gnu/linux'ах это достаточно просто реализуется. всё что нужно — sudo и пара пользователей ( хотя если уж совсем параноить, то запускать нужно в разных сессиях иксов, иначе теоретически возможны нюансы с перехватом клавиатурных сигналов). С ms windows в таких подробностях, увы, не знаком, вероятно там тоже всё просто.
  • +3
    >а что касается адблока — он вообще не блокирует ничего. он лишь НЕ ОТОБРАЖАЕТ на страницах картинки-скрипты. это означает, что картинки загружаются, а скрипты исполняются.

    Вы им когда последний раз пользовались? Когда он в бете был, наверное. Все он блокирует.
    Точнее, он блокирует то, что указано в правилах. Если написать правило: блокировать баннеры формата GIF шириной 640 пикселей; разумеется они сначала будут загружены. Но в стандартных подписках такого давно нет.
    • 0
      Прошу прощения, это ответ сюда.
  • 0
    А зачем отдельная защита от Web Bugs если уже используется RequestPolicy? Разве он не заблокирует по умолчанию всё то, что блокирует Ghostery?
  • 0
    Сомневаюсь, что дождусь запуска описанного в статье комбайна на моём нетбуке. Один лишь адблок с минимальными подписками (g.analytics y.direct и кнопки соцсетей) уже чувствуется в работе и без того небыстрой лисы.
  • 0
    Вы правы. RequestPolicy просто более хардкорный, чем Ghostery.
    Ghostery дружелюбен к новичкам: там, например, есть классификация блокируемых элементов, предустановленные настройки, интерфейс поприятней:)
    RequestPolicy же по умолчанию всё блочит, юзер сам должен разобраться, что есть что.
    • 0
      Это Вы промахнулись с ответом на мой вопрос выше?
      • 0
        Да, ну Вы поняли:)
  • 0
    BetterPrivacy — поможет удалить flash-cookies
    CookieCuller — удобное управление куками, можно «защитить» отдельные куки, а остальные удалять
    Foundstone HTML5 Local Storage Explorer — можно очистить html5 local storage

    HTTPS Finder — если сайт поддерживает https, он и используется и сохраняется правило для HTTPS-Everywhere
    Smart Referer — отправлять Referer только в пределах одного сайта (а то некоторые сайты становятся нефункциональными), можно настроить исключения
    User Agent Switcher — поможет поменять user-agent на один из наиболее распространённых

    ЗЫ. Да, и network.proxy.socks_remote_dns установить в true
  • 0
    На картинке к статье не личичка, а малая панда
    • 0
      Всё верно :) ru.wikipedia.org/wiki/Mozilla_Firefox
      «Mozilla Firefox (МФА: [moʊˈzɪlə ˈfaɪ(ɹ)fɑks], рус. мози́лла фа́йрфокс, Firefox в букв. переводе с англ. — „огненная лиса“, но на самом деле это малая панда)»
      • 0
        Спасибо.
        Не знал.
  • 0
    Спасибо за User Agent Overrider. Он меняет не только заголовок, но и navigator.userAgent. В хроме не нашел расширений, которые бы это делали, но это можно сделать при помощи аргумента командной строки --user-agent

    Можно ли подменить остальную информацию, а именно: размер экрана и окна, доступный в javascript, timezone, список плагинов и mime-типов, HTTP_ACCEPT? Желательно, одним расширением и без отключения javascript.

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

    panopticlick.eff.org — проверка уникальности браузера. К сожалению, в данный момент в Firefox может зависать из-за ошибки javascript.
    • 0
      Перед публикацией статьи задавал себе вопрос про возможность подмены указанной информации. Адекватного плагина, который бы с этим нормально справлялся, так и не нашёл.
  • 0
    Вероятно стоит добавить в статью ссылку на BleachBit — аналог CCleaner, работает в том числе под линухом.
    • 0
      Спасибо, если честно, раньше не слышал, изучим.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.