Как браузер следит за нами
Меня всегда напрягало то, как навязчиво Google AdSense подсовывал контекстную рекламу в зависимости от моих старых запросов в поисковике. Вроде бы и времени с момента поиска прошло достаточно много, да и куки и кеш браузера чистились не раз, а реклама оставалась. Как же они продолжали отслеживать меня? Оказывается, способов для этого предостаточно.
Небольшое предисловие
Идентификация, отслеживание пользователя или попросту веб-трекинг подразумевает под собой расчет и установку уникального идентификатора для каждого браузера, посещающего определенный сайт. Вообще, изначально это не задумывалось каким-то вселенским злом и, как и все, имеет обратную сторону, то есть призвано приносить пользу. Например, позволить владельцам сайта отличить обычных пользователей от ботов или же предоставить возможность хранить предпочтения пользователей и применять их при последующем визите. Но в то же самое время данная возможность очень пришлась по душе рекламной индустрии. Как ты прекрасно знаешь, куки — один из самых популярных способов идентификации пользователей. И активно применяться в рекламной индустрии они начали аж с середины девяностых годов.
Явные идентификаторы
Данный подход довольно очевиден, все, что требуется, — сохранить на стороне пользователя какой-то долгоживущий идентификатор, который можно запрашивать при последующем посещении ресурса. Современные браузеры предоставляют достаточно способов выполнить это прозрачно для пользователя. Прежде всего это старые добрые куки. Затем особенности некоторых плагинов, близкие по функционалу к кукам, например Local Shared Objects во флеше или Isolated Storage в силверлайте. HTML5 также включает в себя несколько механизмов хранения на стороне клиента, в том числе localStorage , File и IndexedDB API . Кроме этих мест, уникальные маркеры можно также хранить в кешированных ресурсах локальной машины или метаданных кеша ( Last-Modified , ETag ). Помимо этого, можно идентифицировать пользователя по отпечаткам, полученным из Origin Bound сертификатов, сгенерированных браузером для SSL-соединений, по данным, содержащимся в SDCH-словарях, и метаданным этих словарей. Одним словом — возможностей полно.
Cookies
Local Shared Objects
Удаление данных из localStorage в Firefox
Другие статьи в выпуске:
Изолированное хранилище Silverlight
Программная платформа Silverlight имеет довольно много общего с Adobe Flash. Так, аналогом флешевого Local Shared Objects служит механизм под названием Isolated Storage . Правда, в отличие от флеша настройки приватности тут никак не завязаны с браузером, поэтому даже в случае полной очистки куков и кеша браузера данные, сохраненные в Isolated Storage , все равно останутся. Но еще интересней, что хранилище оказывается общим для всех окон браузера (кроме открытых в режиме «Инкогнито») и всех профилей, установленных на одной машине. Как и в LSO, с технической точки зрения здесь нет каких-либо препятствий для хранения идентификаторов сессии. Тем не менее, учитывая, что достучаться до этого механизма через настройки браузера пока нельзя, он не получил такого широкого распространения в качестве хранилища для уникальных идентификаторов.
Где искать изолированное хранилище Silverlight
HTML5 и хранение данных на клиенте
Настройка локального хранилища для Flash Player
Кешированные объекты
ETag и Last-Modified
Сервер возвращает клиенту ETag
HTML5 AppCache
Application Cache позволяет задавать, какая часть сайта должна быть сохранена на диске и быть доступна, даже если пользователь находится офлайн. Управляется все с помощью манифестов, которые задают правила для хранения и извлечения элементов кеша. Подобно традиционному механизму кеширования, AppCache тоже позволяет хранить уникальные, зависящие от пользователя данные — как внутри самого манифеста, так и внутри ресурсов, которые сохраняются на неопределенный срок (в отличие от обычного кеша, ресурсы из которого удаляются по истечении какого-то времени). AppCache занимает промежуточное значение между механизмами хранения данных в HTML5 и обычным кешем браузера. В некоторых браузерах он очищается при удалении куков и данных сайта, в других только при удалении истории просмотра и всех кешированных документов.
SDCH-словари
SDCH — это разработанный Google алгоритм компрессии, который основывается на использовании предоставляемых сервером словарей и позволяет достичь более высокого уровня сжатия, чем Gzip или deflate. Дело в том, что в обычной жизни веб-сервер отдает слишком много повторяющейся информации — хидеры/футеры страниц, встроенный JavaScript/CSS и так далее. В данном подходе клиент получает с сервера файл словаря, содержащий строки, которые могут появиться в последующих ответах (те же хидеры/футеры/JS/CSS). После чего сервер может просто ссылаться на эти элементы внутри словаря, а клиент будет самостоятельно на их основе собирать страницу. Как ты понимаешь, эти словари можно с легкостью использовать и для хранения уникальных идентификаторов, которые можно поместить как в ID словарей, возвращаемые клиентом серверу в заголовке Avail-Dictionary , так и непосредственно в сам контент. И потом использовать подобно как и в случае с обычным кешем браузера.
Прочие механизмы хранения
Протоколы
Помимо механизмов, связанных с кешированием, использованием JS и разных плагинов, в современных браузерах есть еще несколько сетевых фич, позволяющих хранить и извлекать уникальные идентификаторы.
Характеристики машины
Все рассмотренные до этого способы основывались на том, что пользователю устанавливался какой-то уникальный идентификатор, который отправлялся серверу при последующих запросах. Есть другой, менее очевидный подход к отслеживанию пользователей, полагающийся на запрос или измерение характеристик клиентской машины. Поодиночке каждая полученная характеристика представляет собой лишь несколько бит информации, но если объединить несколько, то они смогут уникально идентифицировать любой компьютер в интернете. Помимо того что такую слежку гораздо сложнее распознать и предотвратить, эта техника позволит идентифицировать пользователя, сидящего под разными браузерами или использующего приватный режим.
«Отпечатки» браузера
Наиболее простой подход к трекингу — это построение идентификаторов путем объединения набора параметров, доступных в среде браузера, каждый из которых по отдельности не представляет никакого интереса, но совместно они образуют уникальное для каждой машины значение:
Сетевые «отпечатки»
Еще ряд признаков кроется в архитектуре локальной сети и настройке сетевых протоколов. Такие знаки будут характерны для всех браузеров, установленных на клиентской машине, и их нельзя просто скрыть с помощью настроек приватности или каких-то security-утилит. Они включают в себя:
Поведенческий анализ и привычки
Еще один вариант — взглянуть в сторону характеристик, которые привязаны не к ПК, а скорее к конечному пользователю, такие как региональные настройки и поведение. Такой способ опять же позволит идентифицировать клиентов между различными сессиями браузера, профилями и в случае приватного просмотра. Делать выводы можно на основании следующих данных, которые всегда доступны для изучения:
И это лишь очевидные варианты, которые лежат на поверхности. Если копнуть глубже — можно придумать еще.
Подытожим
Как видишь, на практике существует большое число различных способов для трекинга пользователя. Какие-то из них являются плодом ошибок в реализации или упущений и теоретически могут быть исправлены. Другие практически невозможно искоренить без полного изменения принципов работы компьютерных сетей, веб-приложений, браузеров. Каким-то техникам можно противодействовать — чистить кеш, куки и прочие места, где могут храниться уникальные идентификаторы. Другие работают абсолютно незаметно для пользователя, и защититься от них вряд ли получится. Поэтому самое главное — путешествуя по Сети даже в приватном режиме просмотра, помнить, что твои перемещения все равно могут отследить.
Быстрее, комфортнее, надежнее – благодаря новым полезным функциям браузеров интернет-серфинг должен становиться для пользователей все проще. Однако браузеры делаются не только лучше, но и «любопытнее»: они отправляют поисковые запросы, сведения об использовании программ и прочую информацию на серверы своих разработчиков.
Chrome. ComputerBild проверил, какую информацию браузеры отправляют в Сеть втайне от пользователя, и обнаружил оживленный поток данных – в основном в зашифрованном виде. Действительно ли это необходимо? Какие данные при этом передаются?
Чтобы дать ответы на эти и некоторые другие вопросы, наши коллеги из немецкой редакции Computer Bild опросили высокопоставленных сотрудников
(разработчика Internet Explorer), Mozilla Foundation (создателя Firefox), Google (предлагающей Chrome),
(выпускающей Safari) и Opera Software (автора Opera) и предложили им предоставить информацию о том, какие именно данные передают их браузеры – когда, как часто, куда? Понятно, что опрашиваемые не выразили большого желания отвечать – в итоге ответы предоставили лишь главы Microsoft, Mozilla Foundation и Google. И, конечно же, все разработчики в один голос уверяют, что не злоупотребляют получаемыми данными. Однако проверить это невозможно.
Чтобы формализовать ответы разработчиков «софта» и получить максимально полезную информацию, мы разработали специальные анкеты. Их разослали в компании, создавшие популярные браузеры. Разработчики не торопились: первым, через две недели, пришел ответ от Mozilla Foundation. Дольше всех размышляли в Google – на заполнение анкеты компании понадобилось два месяца. Впрочем, это лучше, чем поведение компаний Apple и Opera Software, которые вообще не пожелали нам отвечать. Даже если их продукты не играют такой большой роли на рынке браузеров, что обоим скрывать?
Результаты опроса вы узнаете далее. Ответы разработчиков приведены в таблице, что можно найти в конце статьи. Помимо этого мы подскажем вам, как оградить себя от «информационной клептомании» браузеров.
Руководитель отдела технологий и рекомендаций по интернет-безопасности корпорации Microsoft Крейг Шпизл ответил на вопросы анкеты ComputerBild по электронной почте. При этом он особенно подробно рассмотрел все пункты, касающиеся самой новой на момент анкетирования версии браузера – Beta 2.
Эта версия Internet Explorer уже в ходе установки начинает «звонить домой»: приложение отсылает на серверы корпорации «данные об использовании браузера». Но какие именно и для чего? Мистер Шпизл утверждает: «Таким образом пользователи пробной версии автоматически сообщают о том, какими функциями они пользуются». Также можно заметить, что Internet Explorer передает информацию о том, сколько раз была запущена программа. Все это, пожалуй, в порядке вещей для пробной версии. Но зачем программа отправляет сведения о процессоре, оперативной памяти и жестком диске ПК, о расширениях программ, а также зашифрованный код для идентификации компьютера? На основе этих данных Microsoft узнает о вашем ПК слишком много.
В противном случае Internet Explorer будет передавать информацию о посещенных вами страницах компании Microsoft.
После этого перейдите на вкладку «Общие» и поставьте флажок в чекбоксе напротив пункта «Удалить журнал обозревателя при выходе». Теперь список посещенных сайтов будет очищаться при каждом выходе из Internet Explorer. Затем в окне «Свойства обозревателя» нужно будет выбрать вкладку «Конфиденциальность» и кликнуть по кнопке «Дополнительно». В открывшемся окне поставьте флажок в чекбоксе напротив «Перекрыть автоматическую обработку файлов "cookie"». Затем активируйте радиокнопки
Можно ли отключить эту «функцию статистики», неясно: как утверждает мистер Шпизл, в предварительной версии она активирована по умолчанию, без возможности отключения. В окончательной версии Explorer 8 эта функция должна активироваться только по желанию пользователя. Будем надеяться!
Microsoft не только знакома с вашим компьютером, но также знает, какие сайты вы посещаете и что ищете в Сети.
. Эта новая функция предлагает вам список ресурсов, схожих по тематике с только что загруженной страницей (см. врезку). А чтобы этот инструмент работал, Internet Explorer 8 отправляет в Microsoft списки вводимых вами адресов.
Search в качестве поискового сервиса по умолчанию, то будете автоматически отправлять Microsoft сведения обо всех своих поисковых запросах. Так происходит и в том случае, если Live Search был поисковым сервисом по умолчанию в предыдущей версии браузера и при установке IE 8 из него были импортированы настройки. Информацию о том, какие результаты поиска были выбраны, Internet Explorer также отправляет в Microsoft. Это может происходить даже в том случае, если вы используете другие поисковые системы вместо Live Search – если в браузере включен инструмент «Рекомендуемые сайты». Это еще один повод его отключить. Как это сделать, вы узнаете из врезки «Повышаем конфиденциальность в Internet Explorer 8».
. Для защиты от фишинга этот фильтр представляется весьма полезным. Однако активировавший его пользователь будет регулярно поставлять Microsoft информацию о том, на какие сайты он заходит и сколько времени там проводит. Помимо этого, как сообщил нам Крейг Шпизл, до Microsoft могут дойти и сведения, вводимые в веб-формы (например, пароли), – как утверждается, в зашифрованном виде. Но никому не следует подвергать себя риску, отправляя такие данные через Интернет, даже если адресатом является Microsoft. ComputerBild советует: не включайте эту функцию. Используйте защитную программу с фильтром против фишинга.
Управляющий группой разработчиков Chrome вице-президент Google Сундар Пичай лично прибыл из США в немецкую редакцию ComputerBild, чтобы ответить на вопросы журналистов. Выводы из критики ComputerBild и авторитетных специалистов в области защиты информации компания уже сделала: все настройки конфиденциальности браузера в последней версии собраны в одном меню (см. врезку внизу), за счет чего необходимость кропотливого поиска этих параметров отпала. Улучшение? Да. Однако основной проблемы оно не решает.
Ответы Пичая на вопросы анкеты ясно показывают: браузер Google отправляет в Интернет изрядное количество данных. К ним относятся номер версии браузера, поисковые запросы, введенные веб-адреса, ненайденные адреса, информация о версиях Windows и DirectX, установленных на компьютере пользователя, и об иных программах Google, также имеющихся на его ПК. Эта информация передается регулярно. Отключить трансляцию можно лишь частично. Заставляет задуматься и возможность сохранения на серверах Google IP-адреса пользователя, то есть вашего «почтового адреса» в Интернете, – многие юристы рассматривают его как элемент личной информации.
. Если Google установлена в Chrome в качестве поисковой системы по умолчанию, то все вводимое в адресную строку прямиком попадает в корпорацию. И хотя поисковые запросы как личная информация не расцениваются, они могут многое о вас рассказать. Этого удастся избежать, если вы выберете другой поисковый сервис.
. Данная функция работает так же, как и инструмент «Рекомендуемые сайты» в Internet Explorer. Хотя Google и указывает, отвечая на вопросы нашей анкеты, что сохраняется лишь два процента всех данных, причем по прошествии 24 часов они становятся анонимными, проверить правдивость этих утверждений все же нельзя. Тем не менее и эту функцию можно отключить (см. врезку «Повышаем конфиденциальность в Google Chrome»).
Наиболее существенным моментом в отношении Google Chrome являются так называемые ID (идентификационные данные), отправляемые программой на сервер разработчиков, – они записываются в зашифрованные файлы. Объяснения Google по поводу цели и необходимости передачи этих ID не всегда звучат убедительно. Так, Machine ID сообщает, установлены ли на вашем ПК программы Google и обновлены ли они до последних версий. Другие данные, например Client ID, должны предоставлять статистику использования функций Chrome. Однако с помощью этих ID можно идентифицировать каждую отдельную версию браузера и таким образом составить довольно полный профиль пользователя – его «веб-портрет». Google, однако, уверяет, что подобного не происходит.
В 1993 году журнал «Нью-Йоркер» напечатал знаменитую карикатуру про пса за компьютером. «В интернете никто не знает, что ты собака», — сообщала подпись. Спустя двадцать с лишним лет дела обстоят с точностью до наоборот. В сегодняшнем интернете любая собака знает, кто ты такой, — и порой даже лучше, чем ты сам.
Интернет плохо совместим с тайнами, и тайна частной жизни — не исключение. О каждом клике, сделанном в браузере, по определению должны знать две стороны: клиент и сервер. Это в лучшем случае. На самом деле где двое, там и трое, а то и, если взять в качестве примера сайт «Хакера», все двадцать восемь.
На примере
Анализ истории перемещений пользователя по интернету помогает Google с неплохой точностью определить его интересы, пол, возраст, достаток, семейное положение и даже состояние здоровья. Это нужно для того, чтобы точнее подбирать рекламу. Даже незначительное увеличение точности таргетинга в масштабах Google — это миллиарды долларов, но возможны и другие применения. Согласно документам, которые опубликовал Эдвард Сноуден, американские и британские спецслужбы перехватывали трекеры Google для идентификации подозреваемых.
За тобой следят — это факт, с которым нужно смириться. Лучше сосредоточиться на других вопросах. Как они это делают? Можно ли скрыться от слежки? И стоит ли?
Найти и перепрятать
Для того чтобы следить за человеком, нужно уметь его идентифицировать. Самый простой и хорошо изученный способ идентификации — это cookie. Проблема заключается в том, что он уязвимее всего для атак со стороны поборников privacy. О них знают и пользователи, и даже политики. В Евросоюзе, к примеру, действует закон, вынуждающий сайты предупреждать пользователей о вреде кук. Толку ноль, но сам факт настораживает.
Другая проблема связана с тем, что некоторые браузеры по умолчанию блокируют cookie, установленные третьей стороной — например, сервисом веб-аналитики или рекламной сетью. Такое ограничение можно обойти, прогнав пользователя через цепочку редиректов на сервер третьей стороны и обратно, но это, во-первых, не очень удобно, а во-вторых, вряд ли кого-то спасет в долгосрочной перспективе. Рано или поздно потребуется более надежный метод идентификации.
В браузере куда больше мест, где можно спрятать идентификационную информацию, чем планировали разработчики. Нужна лишь некоторая изобретательность. Например, через свойство DOM window.name другим страницам можно передать до двух мегабайт данных, причем в отличие от кук, доступных лишь скриптам с того же домена, данные в window.name доступны и из других доменов. Заменить куки на window.name мешает лишь эфемерность этого свойства. Оно не сохраняет значение после завершения сессии.
Несколько лет назад в моду вошло хранение идентификационной информации при помощи так называемых Local Shared Objects (LSO), которые предоставляет Flash. В пользу LSO играли два фактора. Во-первых, в отличие от кук, пользователь не мог их удалить средствами браузера. Во-вторых, если куки в каждом браузере свои, то LSO, как и сам Flash, один для всех браузеров на компьютере. За счет этого можно идентифицировать пользователя, попеременно работающего в разных браузерах.
У LSO есть несколько альтернатив. В первую очередь речь идет о HTML5 Local Storage — хранилище данных, которое встроено во все современные браузеры. Оно также очищается одновременно с куками и, в отличие от LSO, не может служить для слежки за пользователями в других браузерах. Тем не менее исследователи отмечают, что HTML5 Local Storage используется рядом крупных сайтов для резервного хранения идентификационной информации.
Бросается в глаза, насколько этот процесс похож на обмен куками. Разница лишь в реакции сервера, но как раз ее-то поменять проще всего. Если в Etag поместить идентификатор пользователя, он будет храниться у клиента до тех пор, пока цела страница в кеше браузера. Там он переживет удаление кук и даже отключение JavaScript. Чтобы полностью избавиться от него, пользователю придется очистить кеш и обнулить историю посещений. Etag и Last-Modified можно использовать для восстановления идентификатора, когда и куки, и данные из LSO или HTML5 Local Storage утрачены.
Кеш и история посещений — это вообще находка для шпиона, и не только из-за Etag. Начнем с того, что идентификатор можно не просто прилагать к закешированному файлу, но и вставлять в него. В этом случае, пока жив кеш, сохранится и идентификатор пользователя. Более хитрый метод использует постоянные редиректы по статусу 301. Сервер выдает этот статус при изменении адреса документа. Браузер запоминает новый адрес и в будущем переходит по нему, минуя старый. Этот механизм применяют для сохранения идентификаторов пользователя.
Вот как это делают: в документ встраивают запрос к невидимой картинке, iframe или скрипту. Если в запросе отсутствует параметр с идентификатором, сервер возвращает постоянный редирект на тот же URL, но уже с идентификатором. Браузер запоминает адрес с идентификатором и в следующий раз вызывает его. Этот метод интересен тем, что с его помощью можно обмениваться идентификатором между доменами, ведь кеш-то общий.
Усы, лапы и хвост — вот мои документы!
В последнее время набирает популярность другой подход к решению этой проблемы — так называемый фингерпринтинг (от английского слова fingerprint — отпечаток пальца). Фингерпринтинг идентифицирует пользователя не по специальным меткам, сохраненным на его системе, а по уникальным особенностям его браузера, системы и устройства.
Поскольку фингерпринтинг не требует хранения данных на клиенте, его очень трудно заметить и почти невозможно избежать. Если куки действуют лишь в рамках одного домена, уникальные особенности остаются неизменными при посещении различных сайтов. Это значительно упрощает слежку за передвижениями пользователя по интернету. Хуже того, в отличие от кук уникальные особенности нельзя отключить. Усилия пользователя приведут максимум к замене одного набора признаков другим, еще более узнаваемым.
Простейшие методы фингерпринтинга используют в качестве уникальных характеристик IP-адрес, версию браузера и системы, системный язык, разрешение экрана, часовой пояс, показания часов с точностью до миллисекунды и список стандартных шрифтов, установленных на компьютере. При помощи Flash этот список можно дополнить сведениями о подключенных к устройству мыши, клавиатуре, микрофоне, камере и поддержке мультитача.
Незначительные изменения некоторых признаков не мешают опознавать уже знакомого пользователя. Он может воспользоваться другим браузером, переехать в другой часовой пояс или поменять разрешение, но, если не сделать все это одновременно, вероятность идентификации останется высокой.
Существуют и более замысловатые способы фингерпринтинга. Компания AddThis экспериментировала с идентификацией пользователя по особенностям отображения шрифтов. Для этого создается невидимый пользователю canvas, на котором выводится надпись. Хеш последовательности данных о цвете каждого пикселя canvas и становится идентификатором. На то, как именно будет выглядеть надпись, влияет операционная система, установленные шрифты, графическая карта, версия графических драйверов, настройки сглаживания, тип и версия браузера, а также особенности самого дисплея. Тонких отличий предостаточно (PDF), но на них трудно повлиять — идеальное сочетание для трекинга.
Еще один метод фингерпринтинга анализирует историю посещений. Исследователи показали, что информация о посещении 500 сайтов из заранее определенного набора позволяет точно идентифицировать около 70% пользователей, причем в том случае, если в истории присутствуют социальные сети, речь может идти не просто об идентификации, но и о деанонимизации.
Чтобы определить, посещал ли пользователь тот или иной сайт, есть свои хитрости. Например, можно попытаться загрузить документ с нужного сайта. По скорости отзыва будет понятно, есть он в кеше или нет. Можно воспользоваться тем фактом, что ссылки на посещенные сайты отображаются другим цветом. Чтобы выяснить цвет, сгодится все тот же canvas. Есть, впрочем, вариант любопытнее: ссылки нетрудно замаскировать под капчу. Тогда пользователь сам выдаст все нужные сведения. Этот способ особенно полезен, когда JavaScript отключен.
Как замаскировать ссылки под капчу? За счет различного оформления посещенных и непосещенных ссылок. Исследователи из университета Карнеги — Меллон, которые в 2011 году предложили эту методику извлечения истории, перечисляют несколько возможностей. Во-первых, можно сделать каждую ссылку отдельным словом и при помощи CSS скрыть посещенные ссылки. Теперь нужно попросить пользователя ввести текст, который он видит. По пропущенным словам легко определить, на каких сайтах он уже был. Другой вариант капчи представляет собой изображение шахматной доски, на которой расставлены пешки.
Каждая пешка — это опять-таки ссылка, и просмотренные ссылки сделаны невидимыми. Пользователь должен кликнуть каждую пешку. Пешки, на которые он не кликнул, соответствуют ссылкам, ведущим на посещенные сайты.
Шапочка из фольги своими руками
Даже беглого перечисления методов трекинга достаточно для того, чтобы уловить общие мотивы. Во-первых, Flash. Его исчезновение избавит сразу и от LSO, и от утечки сведений об устройстве, которая упрощает фингерпринтинг. Лучше обойтись без Flash — в 2015 году это просто.
Чтобы предотвратить хранение идентификатора в HTML5 Local Storage и иже с ним, нужно либо избавляться от JavaScript, либо запрещать куки. И то и другое — совсем не безболезненный процесс. Отсутствие кук и JavaScript не только делает невозможным использование современных веб-приложений. Нередко оно ломает совсем безобидные сайты. Страдания неизбежны, и дальше будет только хуже.
С фингерпринтингом дело обстоит еще веселее. Борьба с трекерами делает тебя уязвимее для фингерпринтинга. Удалил Flash? Что ж, теперь ты белая ворона. Вас таких меньше процента, и более уникального признака не придумать. С тем же успехом можно прятаться на улице города при помощи накладной бороды, темных очков и большой шляпы. Это не маскировка, а эффективный способ привлечения внимания к своей персоне. Еще Tor поставь, и будет комплект!
Рассчитывать на полную победу над трекерами вряд ли стоит, но создать иллюзию незаметности все же можно. Для начала оговорим выбор браузера. Эппловский Safari отпадает сразу. Он уникален тем, что не выключает куки, локальные хранилища данных и кеш даже в режиме инкогнито. Chrome — хороший браузер, но настоящему параноику следует держаться от него подальше. В Google никогда не скрывали, что собирают и анализируют информацию о пользователях. Остается Firefox. Он не лишен порочных связей с Google и даже пингует его при установке, но какой у нас выбор?
Блокировщик трекеров Firefox заимствует черный список у Disconnect — популярного средства блокировки трекеров, которое существует в виде браузерного аддона и приложения для всех популярных платформ. Очевидный недостаток Disconnect в том, что лучше всего он знает трекеры, которые популярны за границей. Мусор из России течет через него, как сквозь решето.
С популярной альтернативой Disconnect — аддоном Ghostery — тоже не все просто. Он эффективно удаляет трекеры, а затем продает информацию о своих пользователях тем самым рекламщикам, которые их ставят. В теории от продажи своих данных можно отказаться, но на практике — какого параноика убедят эти отговорки? Либо приложения, торгующие данными, либо борьба со слежкой — нужно выбрать что-то одно.
Неплохой репутацией пользуется блокировщик рекламы и трекеров uBlock Origin. Он позволяет подписаться на множество черных списков различного происхождения и назначения, в том числе для блокировки рекламы, трекеров, кнопок социальных сетей и вредоносного кода. Им можно заменить и Adblock Plus, и Ghostery.
С помощью аддона RequestPolicy Continued можно закрутить гайки еще сильнее. Он запрещает любые запросы к другим доменам, если пользователь заранее не внес их в белый список. Аддон Self-Destructing Cookies уничтожает куки и содержимое локальных хранилищ после завершения сессии. Наконец, старый добрый NoScript блокирует исполнение JavaScript, Flash и Java и включает только по просьбе пользователя.
Завершив выполнение рекомендаций, перечисленных в прошлом абзаце, стоит задуматься о жизни. Каким будет следующий шаг? Тебя все равно найдут, поэтому лучше не медлить. Беги в тайгу, подальше от NoScript и Flash. Firefox и аддоны — это полумеры и самообман. Против интернета помогут топор и кусачки, против фингерпринтинга — наждачная бумага. Удачи!
Установка нового браузера не заканчивается его запуском. При первом старте браузеры проходят фазу донастройки — что-то докачивают, конфигурируют и, конечно, рапортуют. Если посмотреть на соответствующие сетевые запросы, можно многое узнать о браузере – в частности, какой информацией о пользователе и устройстве он поделится с неустановленной группой лиц.
В этой статье мы оценивали поведение пяти браузеров: Brave, Chrome, Firefox, Edge и Opera. Все исследования проводились на десктопе под управлением Windows 10 (версия 20H2, билд 19042.804) с подтвержденной учёткой Microsoft.
TLDR: меньше всего запросов делает Brave
В 2020 году профессор Дуглас Лейт из Тринити-колледжа (Дублинский университет) провел исследование браузеров и разделил их по тому, насколько успешно они хранят конфиденциальность пользователя. В первую группу вошел Brave как самый приватный браузер, во вторую — Chrome, Firefox и Safari, в третью — Edge и Yandex, которые защищали данные пользователя хуже всего. В нашем исследовании не участвовали Safari и Yandex, а в исследовании профессора Лейта – Opera, но в целом мы получили похожие результаты.
У Brave сетевых запросов меньше всего, также меньше всего хостов, к которым он обращался. Все соединения были с бэкендами Brave. Множество запросов отправил Firefox, хотя большинство из них были связаны с безопасностью. Запросы отправлялись на узлы Mozilla. Edge был наиболее активен в отношении рекламы, он начинал собирать соответствующие данные раньше всего. Кроме того, браузер от Microsoft блестяще продемонстрировал, как много информации о пользователе можно получить через учетную запись Windows.
Методология
Перед каждым анализом мы зачищали папки %appdata% и %localappdata% в Windows, т. е. информацию, относящуюся к профилю пользователя. Все браузеры были обновлены до последней версии. Чтобы отслеживать запросы, мы использовали программу Telerik Fiddler версии 5.0.20204.45441. Она мониторила запросы в течение 10 минут с момента первого запуска каждого браузера.
В течение первых пяти минут пользователь ничего не делал в браузере, а затем открывал новую вкладку. Любые запросы — на сбор каких-либо данных, синхронизацию или персонализацию — отклонялись. После открытия новой вкладки пользователь ничего не делал в течение еще четырех минут. На девятой минуте в адресной строке печаталось слово «brave» (как пример потенциального поискового запроса), а затем удалялось посимвольно. Потом пользователь вставлял в адресную строку слово «password» целиком и таким же образом это слово удалял. Это делалось для того, чтобы отследить, передает ли браузер данные пользователя, включая случайно вставленную информацию, каким-либо удаленным службам.
После десятиминутной первичной сессии пользователь закрывал браузер, а потом спустя некоторое время открывал его снова на две минуты. Повторный запуск был нам нужен для того, чтобы сравнить, как ведет себя браузер в первый и последующие разы, и выявить возможную разницу.
Подробные результаты по каждому браузеру
Brave версии 1.21.73
Запросы Brave распределились по следующим категориям.
Скачивание «вариаций» браузера. Это анонимные A/B-тесты, которые Brave проводит для улучшения своей работы.
Скачивание Sponsored Images для региона пользователя — это рекламные NTP. Пользовательские данные при этом никуда не передаются.
Анонимная телеметрия и отчетность — браузер отправляет дату установки, платформу, и несколько P3A-метрик.
После первоначальной настройки Brave также обновил некоторые компоненты.
При повторном запуске было сделано 24 запроса, они касались обновлений компонентов браузера, заголовков, A/B-тестов и списков Safebrowsing.
Chrome версии 89.0.4389.72
Одним из первых запросов Chrome была попытка ассоциировать пользователя и существующий аккаунт Google. Затем браузер запросил возможные вариации — Chrome также тестирует новые функции таким образом.
Далее браузер обновил компоненты и скачал набор расширений — например, ярлыки Google Docs, Google Drive и YouTube. Запросил списки Safebrowsing и загрузил список проверенных плагинов.
Всего Chrome сделал 91 сетевой запрос к 5 доменам верхнего уровня. Все домены принадлежали Google. Хотя попытка ассоциировать пользователя и Google-аккаунт была, никакой персональной информации в итоге Chrome не передал. Как и Brave, Chrome собирал общую информацию об устройстве, с которого пользователь зашел в браузер.
Firefox версии 86
Затем Firefox установил WebSocket-соединение с сервером автопушей. Это соединение веб-приложения используют, чтобы иметь возможность отправлять пользователям уведомления, даже если они в данный момент не работают в браузере. Во время соединения сервер отправил браузеру идентификатор регистрации нового пользователя пушей Push User Agent Registration ID (UAID).
При запуске в Firefox было открыто две вкладки: одна — обычная новая вкладка, вторая — «Уведомление о конфиденциальности для веб-браузера Firefox». Поскольку для второй нужно было подключение к интернету, отправлялись дополнительные запросы. Их было 22.
Всего Firefox отправил 2799 запросов к восьми доменам верхнего уровня. Большинство доменов принадлежали или поддерживались Mozilla. В конце первой сессии браузер сделал запрос к терминалу классификации клиентов, позже такой запрос был замечен повторно.
Что касается телеметрии, диагностические данные обычно содержали информацию о событии, браузере, а также идентификаторы клиента и сессии в браузере. Кроме того, несколько запросов были отправлены через отдельный процесс pingsender.exe. Этот процесс отправлял запросы и после того, как пользователь закрыл браузер, причем информации пересылалось довольно много: идентификатор клиента, данные об устройстве, о браузере, включая список дополнений, плагинов и даже данные о внешнем оформлении браузера, о тестах, в которых был задействован браузер, о количестве мониторов, об установленном антивирусном ПО и так далее. Интересно, что мы нашли ключ, который, судя по названию, должен был отвечать за передачу телеметрических данных: environment.settings.telemetryEnabled. В нем было выставлено false, но по факту данные пересылались, и в огромном объеме.
Последний запрос перед закрытием включал в себя множество разнообразных метрик. Хотя большинство из них к персональным данным отношения не имело, все же мы почувствовали себя неуютно, настолько подробной была телеметрия.
После ввода или вставки символов (не менее двух) Firefox отправлял запросы с этими символами в Google. Отметим здесь, что профессор Лейт не обнаружил подобных запросов, но он вставлял в адресную строку URL – возможно, Firefox отправляет данные в поиск, только если они не представляют собой URL.
Edge версии 88.0.705.81
Первым делом Edge попытался идентифицировать пользователя. Надо сказать, что возможностей для этого у браузера от Microsoft куда больше, чем у прочих, и пользуется он ими весьма агрессивно, получая данные из аккаунта Windows. Конечно, как и другие браузеры, Edge запрашивал списки безопасных плагинов и потенциально вредоносных URL, но это была лишь часть запросов. Еще часть была связана с рекламой и трекерами — таких запросов было намного больше, чем у других браузеров, также больше было и запросов к посторонним бэкендам.
Всего Edge отправил 367 запросов к 13 доменам верхнего уровня. Большинство доменов принадлежало Microsoft. В этих запросах присутствовала и потенциально конфиденциальная информация, причем защищена она была слабо.
Интересно, что Edge был единственным из браузеров, который отправлял специальные запросы, связанные с редиректами и онлайн-рекламой по технологии real-time bidding. Также Edge транслировал информацию ScorecardResearch, сервису, который специализируется на сборе данных о поведении пользователей в интернете. Этот сервис есть во многих блок-листах.
Забавно, что одним из первых запросов был запрос на демонстрацию рекламы со словами «Сделан с учетом защиты вашей конфиденциальности». В самом запросе при этом было достаточно много информации о пользователе.
При повторном запуске Edge сделал еще 70 запросов, аналогичных тем, что были отправлены до этого.
Opera версии 88.0.4324.182
Символы при вводе или вставки Opera сразу транслировал в Google для поиска в реальном времени. В этих запросах содержался идентификатор, сообщавший Google, что поиск идет с Opera.
При повторном запуске Opera сделал всего 16 запросов – для обновления расширений, загрузки набора идентификаторов функций, а также получения свежей информации о курсе валюты и криптовалюты.
Пользуясь разными приложениями или сайтами, большинство людей стараются не предоставлять разрешения на доступ к своему местоположению. Но что, если приложение/сайт сможет экстраполировать место вашего нахождения, даже не нуждаясь в этих разрешениях?
Потенциально это уже происходит как на Android, так и на iOS устройствах, и группа исследователей безопасности продемонстрировала, что для некоторых браузеров, а также приложений, считывание датчиков движения разрешено по умолчанию. Это, в свою очередь, позволяет собирать компрометирующие пользователя данные.
В конце прошлого месяца исследователи из Mysk опубликовали в Твиттере обращение, рассказав, что Chrome по умолчанию предоставляет данные с датчиков движения всем сайтам, которые посещает пользователь. Более того, выяснилось, что Microsoft Edge на Android имеет аналогичный набор разрешений. На первый взгляд это может не показаться чем-то серьезным, но на деле здесь есть тревожные подоплеки.
В блоге Mysk более развернуто разъясняются возможные сценарии применения функции акселерометра. Обычно он служит для ориентации устройства, в качестве шагомера, детектора скорости и прочего. Однако его также можно задействовать и в злонамеренных целях, например для выяснения точного расположения пользователя.
Рассмотрите такой сценарий. Вы сели в автобус по пути на работу и открыли приложение привычной социальной сети, которой ввиду осторожности не доверили разрешение на отслеживание своего местоположения. Тем не менее, в активном состоянии это приложение имеет свободный доступ к акселерометру, через который вполне может считать вибрационный паттерн окружающей среды. Автобус едет, и на очередной остановке в него заходит другой пассажир, который садится рядом с вами и открывает то же приложение, вот только он ему доверяет и данные GPS сделал доступными.
В результате это приложение потенциально может считать данные акселерометра с обоих ваших устройств и определить, что они испытывают одинаковые вибрационные паттерны (автобус трогается/останавливается, поворачивает и пр.), а значит находятся в одной среде, то есть в одном месте. Теперь приложение знает и ваше местоположение тоже. Не удивляйтесь, если оно еще и предложит этого подсевшего соседа вам в друзья.
Ключевые настройки Android, с которыми вам будет интересно познакомиться
Чтобы исключить подобную возможность, вы можете ознакомиться с предложенной в твите видео-инструкцией по отключению в Chrome разрешений доступа к датчику движения на устройствах с iOS. Для тех же, кто использует браузер Edge на Android, этот процесс аналогичен и отражен на скриншотах выше.
Что касается iOS 15, то здесь доступ к акселерометру открыт для всех приложений, и с помощью грамотного алгоритма собранную информацию может получить любое из них.
Причем это еще не все. В качестве дополнения отмечу, что исследователям также удалось с помощью акселерометра считать вибрации динамика телефона и на их основе воссоздать речь собеседника – впечатляет?
Основное правило информационной безопасности гласит, что личные данные должны быть защищены, а значит, и доступ к акселерометру тоже нужно защитить.
Читайте также: