[Перевод] Шпион, выйди вон: что делают браузеры после установки?

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

В этой статье мы оценивали поведение пяти браузеров: 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.

Chrome, как и Edge, пытается идентифицировать пользователя как можно раньше. Кроме того, он пересылает больше, чем другие браузеры, информации о том, что пользователь печатал или вставлял. Такую информацию, впрочем, передавали все браузеры, кроме Brave (Firefox ждёт, пока пользователь введёт хотя бы два символа, и только потом начинает передачу). Opera чаще всех отправляет запросы на сторонние хосты и проверяет каждый URL через sitecheck.opera.com.

Методология

Перед каждым анализом мы зачищали папки %appdata% и %localappdata% в Windows, т. е. информацию, относящуюся к профилю пользователя. Все браузеры были обновлены до последней версии. Чтобы отслеживать запросы, мы использовали программу Telerik Fiddler версии 5.0.20204.45441. Она мониторила запросы в течение 10 минут с момента первого запуска каждого браузера.

В течение первых пяти минут пользователь ничего не делал в браузере, а затем открывал новую вкладку. Любые запросы — на сбор каких-либо данных, синхронизацию или персонализацию — отклонялись. После открытия новой вкладки пользователь ничего не делал в течение еще четырех минут. На девятой минуте в адресной строке печаталось слово «brave» (как пример потенциального поискового запроса), а затем удалялось посимвольно. Потом пользователь вставлял в адресную строку слово «password» целиком и таким же образом это слово удалял. Это делалось для того, чтобы отследить, передает ли браузер данные пользователя, включая случайно вставленную информацию, каким-либо удаленным службам.

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

ynct_cvuvxa2ubuf3qw9w8ac2w8.jpegxvbcoapursvwfhem-omb1dnpl5o.jpegmpo0nw3lbnpsf-mtuy5ut1infiw.jpeg

Подробные результаты по каждому браузеру

Brave версии 1.21.73

Запросы Brave распределились по следующим категориям.

  1. Запросы, связанные с защитой данных. Браузер скачал набор правил для блокировки рекламы, компонент HTTPS Everywhere, два списка отозванных сертификатов, список потенциально вредоносных URL (Safebrowsing) и набор правил, определяющих, какие плагины можно безопасно использовать.

  2. Запросы, связанные с функциональностью Brave. Например, набор кастомных HTTP-заголовков, а также набор правил для функции SpeedReader.

  3. Скачивание «вариаций» браузера. Это анонимные A/B-тесты, которые Brave проводит для улучшения своей работы.

  4. Скачивание Sponsored Images для региона пользователя — это рекламные NTP. Пользовательские данные при этом никуда не передаются.

  5. Анонимная телеметрия и отчетность — браузер отправляет дату установки, платформу, и несколько P3A-метрик.

После первоначальной настройки Brave также обновил некоторые компоненты.

Всего было сделано 70 запросов к 10 различным хостам, все хосты были поддоменами brave.com. Ни в одном запросе не содержалось персональных данных, только информация о версии браузера и некоторые данные об устройстве, на котором был установлен браузер (ОС, язык, объём памяти устройства). Когда пользователь набирал или редактировал символы в адресной строке, никаких запросов не было.

При повторном запуске было сделано 24 запроса, они касались обновлений компонентов браузера, заголовков, A/B-тестов и списков Safebrowsing.

e3xzkkstzrvbxrgm_roz-v8p2-u.jpeg

Chrome версии 89.0.4389.72

Одним из первых запросов Chrome была попытка ассоциировать пользователя и существующий аккаунт Google. Затем браузер запросил возможные вариации — Chrome также тестирует новые функции таким образом.

Далее браузер обновил компоненты и скачал набор расширений — например, ярлыки Google Docs, Google Drive и YouTube. Запросил списки Safebrowsing и загрузил список проверенных плагинов.

Перед тем, как загрузить новую вкладку, Chrome запросил промо-сообщения, метаданные для дудлов, виджет Google Apps и необходимый для отображения новой вкладки JSON-файл.

Всего Chrome сделал 91 сетевой запрос к 5 доменам верхнего уровня. Все домены принадлежали Google. Хотя попытка ассоциировать пользователя и Google-аккаунт была, никакой персональной информации в итоге Chrome не передал. Как и Brave, Chrome собирал общую информацию об устройстве, с которого пользователь зашел в браузер.

Что касается ввода/вставки символов — каждый символ передавался по адресу google.com/complete/search. Вместе с символами передавалась и другая информация, в основном не имеющая отношения к конкретному пользователю — данные об устройстве, положении курсора и т. д. Также с виджетом Google Apps при создании новой вкладки приехала кука размером 180 байт. Этот файл потом отправлялся на google.com в каждом запросе, связанном с вводом символов.

При повторном запуске новых запросов замечено не было. Как и в первый раз, Chrome попытался найти аккаунт пользователя через accounts.google.com/ListAccounts. Поскольку пользователь не был залогинен, браузеру не удалось ничего обнаружить. Затем Chrome запросил обновления для дудлов и прочее, что требовалось для создания новой вкладки. Запросы к accounts.google.com, www.google.com, apis.google.com и ogs.google.com включали в себя всё ту же куку, выставленную при первом запуске.

gccjfjz7slav2019lvgyes6dgso.jpeg

Firefox версии 86

Первыми запросами Firefox проверял, доступен ли интернет. 21 запрос был отправлен для проверки содержимого удаленного файла success.txt. В 7 запросах не было строки запроса, еще в 7 была строка запроса ? ipv4, в последних 7 — строка запроса ? ipv6. Для обновления своих служб безопасности Firefox сделал намного больше запросов, чем остальные браузеры — свыше двух с половиной тысяч. Одним из первых ответов был набор списков, связанных с защитой от трекинга и другими аспектами безопасности. Также несколько запросов касались вариаций для A/B-тестов — их так или иначе проводят все браузеры.

Затем 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.

При повторном запуске браузера обнаружились новые запросы, которые содержали информацию в том числе об идентификаторах пользователя и сессии. Кроме того, поскольку Mozilla приобрела компанию-создателя сервиса Pocket, мы не удивились, увидев в запросах адреса getpocket.cdn.mozilla.net и spocs.getpocket.com. К тому же, похоже, что браузер на этот раз сгенерировал отдельный уникальный идентификатор для Pocket. Завершилась сессия четырьмя запросами — двумя от процесса Firefox и двумя от pingsender.

lomp8frd0l7yrlxnmqntu_rmrvk.jpeg

Edge версии 88.0.705.81

Первым делом Edge попытался идентифицировать пользователя. Надо сказать, что возможностей для этого у браузера от Microsoft куда больше, чем у прочих, и пользуется он ими весьма агрессивно, получая данные из аккаунта Windows. Конечно, как и другие браузеры, Edge запрашивал списки безопасных плагинов и потенциально вредоносных URL, но это была лишь часть запросов. Еще часть была связана с рекламой и трекерами — таких запросов было намного больше, чем у других браузеров, также больше было и запросов к посторонним бэкендам.

Всего Edge отправил 367 запросов к 13 доменам верхнего уровня. Большинство доменов принадлежало Microsoft. В этих запросах присутствовала и потенциально конфиденциальная информация, причем защищена она была слабо.

Уже при установке браузер нашел в системе изображение владельца и адрес электронной почты. В запросах к различным хостам отправлялись данные о пользователе, в ответ также приходила всяческая информация — например, результатом запроса на bing.com/fd/auth/signin стал набор кук с идентификаторами и именем владельца компьютера. Запрос на substrate.office.com вернул не только эти данные, но и дату рождения пользователя, его полное имя, местонахождение и пол. Еще один — на ntp.msn.com — вернул JSON-файл с информацией о местонахождении пользователя (с точностью до нескольких десятков километров).

Когда пользователь печатал / вставлял слова в адресную строку, Edge обрабатывал эти символы и предлагал варианты из bing.com/profile/history/data. Чтобы получить эти варианты, браузер использовал наборы кук с всевозможными идентификаторами.

Интересно, что Edge был единственным из браузеров, который отправлял специальные запросы, связанные с редиректами и онлайн-рекламой по технологии real-time bidding. Также Edge транслировал информацию ScorecardResearch, сервису, который специализируется на сборе данных о поведении пользователей в интернете. Этот сервис есть во многих блок-листах.

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

Разумеется, Edge отправлял и телеметрические запросы: в частности, на сайты arc.msn.com, browser.events.data.msn.com, edge.activity.windows.com, config.edge.skype.com, browser.pipe.aria.microsoft.com, target.microsoft.com, web.vortex.data.microsoft.com и clarity.ms. По окончании сессии браузер отправил данные о том, как долго была открыта страница, о ее размерах, о том, как далеко пользователь ее промотал, был ли он авторизован и многое другое. Когда пользователь печатал или вставлял символы, они пересылались на bing.com/qbox. В каждом таком запросе был идентификатор пользователя и имя владельца компьютера.

При повторном запуске Edge сделал еще 70 запросов, аналогичных тем, что были отправлены до этого.

olazyrpys9tl_m_mwcd68jgfkro.jpeg

Opera версии 88.0.4324.182

При запуске Opera отправил пользователя на redir.opera.com. Пока страница грузилась, еще два запроса прошли на sitecheck.opera.com, сервис, который проверяет URL на безопасность. Затем были загружены вариации браузера для конкретного региона — все те же, которые нужны для A/B-тестов. Три запроса было сделано на exchange.opera.com — скорее всего, они связаны с встроенным в браузер криптокошельком. Несколько запросов было сделано по поводу расширений. В конце сессии Opera запросил обновления и получил некоторые скрипты, наборы правил, настройки и информацию для расширения Rich Hints.

Всего было сделано 106 запросов к 30 доменам, из которых только 17 принадлежали или управлялись Opera Software. При первых запросах браузер отправлял данные, полученные из дистрибутива — идентификатор установки, последний посещенный URL, откуда был скачан дистрибутив, и так далее. После этой отправки Opera запрашивал редирект на www.opera.com/firstrun/. Затем собирались данные о стране, откуда пользователь зашел, и языке системы, вместе с этой информацией пересылались идентификаторы.

При запуске Opera были замечены соединения с Google Analytics, Twitter и Hotjar. В Google направлялись данные технического характера, включая идентификаторы пользователя. Twitter также выдал нам куку с идентификатором пользователя. В Hotjar, судя по всему, никакие персональные данные не отправлялись. Три запроса ушло на android.clients.google.com, что удивительно — ведь браузер установлен на Windows. Мы предполагаем, что браузер таким образом может отправлять какие-то уведомления на устройства пользователя.

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

При повторном запуске Opera сделал всего 16 запросов — для обновления расширений, загрузки набора идентификаторов функций, а также получения свежей информации о курсе валюты и криптовалюты.

27yiv371pj_zr6dszfdtu2xrwx4.jpeg

© Habrahabr.ru