Веб-серфинг под надзором. Какие данные собирают о нас разработчики браузеров

Когда ты смотришь на сайты, кто-то наблюдает за тобой. Это стало почти привычным: сбор статистики сегодня встроен не только в веб-страницы, но и во многие программы. Мы провели исследование, чтобы разобраться, что именно узнают о тебе разработчики популярных браузеров и насколько это нарушает приватность.

Методика

Когда речь идет о веб-серфинге, следует различать два принципиально разных типа сбора данных: тот, что выполняет сам браузер, и тот, что производят скрипты на сайтах. О втором аспекте ты можешь почитать в статье «Тотальная слежка в интернете — как за тобой следят и как положить этому конец», а здесь мы сосредоточимся на первом.

Определиться с кругом основных подозреваемых нам помогла статистика OpenStat. Мы отобрали самые популярные в России браузеры, выделив из них версии для настольных компьютеров с Windows. Самыми распространенными оказались Google Chrome (его доля составляет почти половину), «Яндекс.Браузер», назойливо устанавливающийся за компанию с другими программами, Mozilla Firefox и Opera.

В список OpenStat входит и браузер Apple Safari, но его версия для Windows перестала обновляться в 2012 году и почти не используется. Предустановленный же в Windows 10 браузер Edge едва набрал полтора процента поклонников, но именно от него мы больше всего ожидали проявлений «шпионской активности». От Edge и его старшего брата Internet Explorer, популярность которого всегда оказывается завышенной благодаря умению разных программ идентифицировать себя как IE.

Рейтинг популярности браузеров

Оценивали «шпионское» поведение браузеров в несколько этапов. Сначала мы скачивали последние версии дистрибутивов с официальных сайтов, устанавливали их в чистых ОС и запускали с настройками по умолчанию. Затем меняли начальную страницу на пустую и повторяли эксперимент. На финальном этапе устраивали час сидения в засаде, во время которого браузер просто был открыт с пустой страничкой (#) и не должен был выполнять никаких сетевых запросов, кроме проверок доступности собственных обновлений.

Все тесты проводились в виртуальных машинах. Нам пришлось использовать как Windows 10, так и старую Windows XP для того, чтобы отсеять весь фоновый трафик. Как ты можешь помнить из статьи, где мы подобным образом исследовали Windows 10, эта ОС сама очень пристально следит за пользователем и отсылает на серверы Microsoft все данные, которые технически может собрать. В этом потоке трафика активность браузера просто теряется, потому что Edge (и, как выяснилось, не только он) умеет отсылать часть запросов от имени системных процессов, используя их в качестве посредников. Поэтому простые средства (например, установка веб-прокси и фильтрация трафика по именам процессов) не гарантировали возможность отловить весь интересующий нас трафик.

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

Львиная доля трафика отправляется браузерами в зашифрованном виде. Поэтому при помощи MakeCert мы сгенерировали и установили в систему левый сертификат безопасности, благодаря которому расшифровали весь перехваченный HTTPS-трафик.

В отдельных случаях потребовалось использовать утилиту AppContainer Loopback Exemption, чтобы обойти встроенную в Windows 10 технологию изоляции приложений и гарантированно перехватывать трафик средствами Fiddler. В первую очередь это было необходимо сделать для Edge и Internet Explorer.

Перенаправляем трафик Edge на локальный прокси в обход защиты Windows

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

Перечисленные программы уже стали стандартом де-факто для выполнения тестов. Однако работу программ ограничивает операционная система. Браузеры Internet Explorer и Edge так тесно интегрированы в Windows 10, что могут использовать ее компоненты для отправки данных обходными путями. Поэтому для гарантии того, что ни один пакет не ушел незамеченным, мы дополнительно использовали аппаратный сниффер.

Промежуточный роутер как сниффер

Им стал портативный роутер TP-Link MR3040 v. 2.5, который мы перепрошили последней версией OpenWrt и подключили «в разрыв», выбрав режим WISP. Весь трафик от тестовых систем шел через него. Роутер показывал все сетевые соединения в реальном времени и вел подробный лог.

Все соединения в реальном времени (фрагмент списка)

Узаконенная слежка

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

Большинство опрошенных нами пользователей считают, что все ограничивается некоей абстракцией — «анонимной статистикой, собираемой в целях улучшения качества продукта». Именно так и указано в формальном предупреждении, которое браузеры (да и другие программы) выводят на экран при установке. Однако формулировки в них используются довольно витиеватые, а длинный перечень часто заканчивается словами «...и другие сведения», что полностью развязывает руки юристам компании-разработчика.

Google знает обо всех контактах, адресах своих пользователей и их состоянии здоровья. Microsoft — еще и почерк идентифицирует по «образцам рукописного ввода». Бесплатные антивирусы (да и многие платные тоже) вообще могут законно отправить своим разработчикам любой файл в качестве подозрительного. Браузеры на этом фоне выглядят не шпионами, а относительно безобидными вуайеристами. Однако и от их подглядываний могут быть ощутимые последствия. Посмотрим, что и куда они отправляют.

Google Chrome

При первом запуске браузер Chrome 56.0 устанавливает девять подключений к серверам Google, расположенным в четырех подсетях.

Подключения Chrome при запуске браузера

Одна из подсетей находится в России и обслуживается провайдером «Ростелеком».

Chrome всегда соединяется с этими IP-адресами

В подсеть 173.194.44.0/24 браузер отправляет сведения о своей версии, версии ОС и недавней сетевой активности пользователя. Если ее не было (первый запуск Google Chrome), то в логе появляется запись «No recent network activity».

Chrome отправляет лог своей активности

В подсеть 46.61.155.0/24 отправляется запрос сертификата для проверки подлинности сайта Google.com и десятков его зеркал (включая сайты сбора статистики *.gstatic.com, google-analytics.com и другие). По ходу дальнейшей работы браузера с ними периодически устанавливаются отдельные соединения.

Если ты авторизовался в Google через браузер, то дополнительный трафик пойдет в подсеть 74.125.232.0/24 и на серверы с адресами вида http://clients#.google.com, где # — порядковый номер пула. Аналогичные соединения Chrome устанавливает и с подсетью 46.61.155.0/24 — вероятно, чтобы распределить нагрузку.

При открытии новой вкладки Chrome всегда устанавливал соединения с серверами из тех же самых подсетей.

Подключения Chrome при создании новой вкладки

При этом браузер генерирует уникальный идентификатор вида X-Client-Data: CJC2yPGIprbJAQjBtskBCK2KygEIwcdKAQj6nMoBCKmdygE=, а сайт google.ru дополнительно использует куки с идентификатором NID=. Все открытые в одном браузере вкладки получают общий идентификатор X-Client-Data.

Время от времени Chrome устанавливал подключение к серверу storage.mds.yandex.net, однако в нашем тесте, кроме пустых пакетов с заголовком connection keep alive, на него ничего не отправлялось. Остальной трафик, не связанный с действиями пользователя в Chrome, был обусловлен работой антифишинговой системы Google SafeBrowsing и проверкой доступности обновлений.

Yandex Browser

«Яндекс.Браузер» 17.3 с самого начала ведет себя более активно. При первом же старте он устанавливает десятки подключений.

«Яндекс.Браузер» и сорок подключений

Интересно, что многие из них ведут не на сайты «Яндекса», а на серверы других компаний. Mail.ru, «ВКонтакте» и даже Google. Видимо, так происходит из-за разных партнерских соглашений, в рамках которых «Яндекс.Браузер» обеспечивает альтернативные варианты поиска и рекламирует сторонние ресурсы на панели быстрого доступа в каждой новой вкладке.

«Яндекс.Браузер» коннектится в десяток подсетей уже при старте

Обрати внимание, что часть трафика идет от имени системного процесса с нулевым PID. Адреса удаленных узлов, с которыми этот процесс устанавливает соединение, совпадают с теми, к которым одновременно подключается «Яндекс.Браузер».

Подключения «Яндекс.Браузера» в TCPView

Самые подробные сведения «Яндекс.Браузер» отправляет на api.browser.yandex.ru. В них описана конфигурация компьютера, браузера и всех его компонентов, включая состояние менеджера паролей и количество сохраненных закладок. Отдельными строками указывался результат обнаружения других браузеров и их статус (какой запущен параллельно и какой выбран по умолчанию). Общий объем этих данных в нашем случае составил 86 Кбайт в простом текстовом формате. Это при том, что браузер был только что установлен и не содержал никаких следов пользовательской активности. Наша видеокарта в этом логе была указана как VirtualBox Graphics Adapter — теоретически это позволяет «Яндекс.Браузеру» легко определять, что он запущен в виртуальной среде.

Подробная статистика «Яндекс.Браузера» (фрагмент списка)

В перехваченном трафике встречаются занятные строки вроде morda-logo или X-Powered by: Cocaine — разработчикам не откажешь в чувстве юмора. Помимо версии ОС и прочих технических сведений, «Яндекс.Браузер» определяет физическое местоположение устройства, на котором он запущен. Причем делает он это неявно — по HTTPS и через процесс explorer. Долгота и широта вычисляются с помощью сервиса геолокации Wi2Geo. Помимо самих координат, через сервер wi2geo.mobile.yandex.net всегда вычисляется и погрешность их определения. Естественно, мы подменили реальный адрес, но будет забавно, если кто-то попытается отыскать редакционную яхту в Аравийском море.

Геолокация по IP в «Яндекс.Браузере»

Edge

В тестах мы использовали Microsoft Edge 38.14, предустановленный в Windows 10 build 1607. Этот браузер интересен тем, что активен почти всегда. Даже если ты его не запускаешь, он появляется в памяти и устанавливает соединения с серверами Microsoft. В фоне преимущественно работает MSN-бот, а при запуске Edge на мгновение становятся видны соединения с семью основными сетями Microsoft.

Подключения Edge при старте

Это сети 40.74.0.0–40.125.127.255, 68.232.32.0–68.232.47.255, 93.184.220.0–93.184.223.255, 104.40.0.0–104.47.255.255, 104.244.40.0–104.244.47.255, 111.221.29.0/24 и 207.46.0.0/16. Их номерная емкость просто огромна. Судя по балансу входящего и исходящего трафика, служат они не только для доставки контента, но и для масштабного сбора данных.

Соединение Edge с сетями Microsoft и партнеров

Как ни странно, при работе Edge не было замечено явной подозрительной активности браузера. Максимум, что косвенно идентифицировало пользователя, — это скупые строки телеметрии, User-Agent и куки.

Простейшая телеметрия в Edge

При настройке запуска Edge с чистой страницы трафик вообще был минимальным. Единственное, что слегка насторожило, — строка, содержащая записи DefaultLocation= и MUID=. Значения, отправляемые в ней на сервер msn.com, закодированы.

По результатам прошлых исследований у нас сложилось стойкое ощущение, что скромное поведение Edge лишь иллюзия. Он часть Windows 10, а у Microsoft в этой ОС (а теперь и в других тоже) реализовано множество способов сбора детальной информации о пользователе и его сетевой активности. Как мы уже писали во второй части статьи о «шпионских» привычках Windows 10, отправлять эти сведения непосредственно через браузер вовсе не обязательно.

Opera

Уже во время установки браузера Opera 43.0 трафик идет не только между компьютером и сайтом opera.com.

Соединения во время установки Opera

Запросы отправляются также к серверам BitGravity и EdgeCast, но содержат они исключительно обезличенные идентификаторы, версию браузера и ОС.

Подключение Opera к разным сетям при запуске

При каждом старте Opera 43.0 показывала страницу с рекламой разных брендов — от айтишных (Google, Yandex, Rambler) до совсем попсовых. Что поделать! Такова современная схема монетизации. Когда мы смотрели перехваченный трафик в Wireshark, то увидели вот такую строчку комментария от партнера Opera — сервиса бронирования отелей Booking.com: «x-content-Type-options: nosniff. Вы знаете, что вам могут платить за ковыряние нашего кода? Мы нанимаем дизайнеров и разработчиков для работы в Амстердаме». Предложение заманчивое, но, пожалуй, в Амстердаме лучше отдыхать, чем работать. Иначе будет получаться слишком веселый код.

Не ковыряйте код бесплатно!

Помимо серверов в домене opera.com, одноименный браузер часто соединяется с узлами нидерландской сети WIKIMEDIA-EU-NET (91.198.174.0/24). Перехваченный трафик к этим серверам содержал только пакеты проверки сертификата безопасности (SSL), а все «личные данные» ограничивались скупой строчкой User-Agent: … OPR/36.0.2130.80. Странно, поскольку версия «Оперы» была 43.0.

Сжатие данных сервисом Opera Turbo выполняется через системный процесс с нулевым PID, а трафик идет на серверы opera-mini.net.

Работа функции Opera Turbo

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

Firefox

Разработчик Firefox — Mozilla Foundation активно использует облачные веб-сервисы Amazon. Это видно по множеству соединений с серверами compute.amazonaws.com, которые появляются сразу при старте браузера.

Автоматические соединения браузера Firefox

Они возникают всякий раз при запуске Firefox 51.0, даже если он только что установлен. Помимо Amazon, трафик идет в подсети Akamai, Cloudflare, EdgeCast и Google. Это нужно, чтобы сбалансировать нагрузку при скачивании обновлений самого браузера и его дополнений, а также обеспечить возможность быстро отправлять поисковые запросы. Кроме того, по умолчанию на новой вкладке браузера демонстрируются ссылки на другие проекты сообщества Mozilla, картинки для которых также загружаются из Сети.

Основная статистика о работе Firefox отправляется по адресу telemetry.mozilla.org. Выглядит она скудно и довольно безобидно.

Физическое местоположение устройства с запущенным браузером Firefox определяется через открытую систему Mozilla Location Service, но только если пользователь разрешил это в настройках: «Меню → Инструменты → Информация о странице → Разрешения → Знать ваше местоположение».

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

Шифрование ≠ кодирование

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

Закодированная информация о браузере

В случае с браузерами расшифрованный трафик часто оказывается дополнительно закодирован. Часть используемых в нем переменных имеет очевидный смысл. Например, запись s:1440x900x24 сообщает об установленном разрешении экрана и глубине цветовой палитры (8 бит на каждый канал RGB). Другие переменные более-менее легко угадываются из контекста. Например, можно предположить, что _ym_uid=1488623579201112390 — это идентификатор пользователя в системе «Яндекс.Метрика». Однако есть и множество других значений, смысл которых не так очевиден. К примеру, запись fpr:335919976901 или rqnl:1:st1488642088 — это тоже какие-то данные. В сыром виде их смысл может быть непонятен даже специалистам компании-разработчика. Просто потому, что обычно их анализирует автоматическая система, которая превращает подобную абракадабру в какие-то наглядные сведения.

Задергиваем шторы

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

Слегка повысить приватность можно уже на этапе установки браузера

Там же можно отметить пункты «Отправлять сайтам запрет отслеживания», «Спрашивать разрешение на отправку моих геоданных» и снять флажок «Автоматически отправлять информацию о возможных проблемах».

Формулировка этих пунктов немного различается у разных браузеров, но суть их одинакова. «Запрет отслеживания» означает, что в исходящий трафик браузер будет добавлять заголовок do_not_track. Как его обрабатывать — целиком на совести владельца конкретного сайта.

Просьба сайтам не следить

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

Под «информацией о проблемах» в браузере подразумевается внезапное завершение его работы или невозможность соединиться с собственным узлом (например, для проверки обновлений). В таком случае разработчику могут быть отправлены расширенные сведения о возникшей проблеме. Если у тебя нет каких-то «хакерских» расширений и настроек, можно и помочь разработчикам сделать браузер лучше и стабильнее.

Выводы

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

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

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

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

Изначально браузеры и сайты присваивают пользователям безличные идентификаторы. Выглядят они как буквенно-цифровые строки. Они нужны, чтобы собрать воедино всю статистику работы и не смешивать данные от разных пользователей. Как их зовут и что они любят — разработчикам браузеров все равно. Это интересует отделы маркетинга крупных компаний, активно продвигающих разные социальные фишки. Поисковые системы, социальные сети, онлайновые игры, сайты знакомств и поиска работы — вот основные охотники за личными данными, но это уже совсем другая история.

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

  • Честно говоря, исследование на от#$бись - посмотрели, куда подключаются браузеры и только в конце крупица полезной информации с выводом "часть отправляемых данных шифруется и дополнительно кодируется, поэтому их назначение остается неизвестным". Хотя по заголовку статьи я очень надеялся увидеть именно какие данные собирают, а не куда браузер стучится. На пару с хорошим ревёрсером вышла бы гораздо более интересная статья.

    Да, Cocaine - это не наркоманы, это https://tech.yandex.ru/cocaine/

    • Ну не так плохо, хотя бы еще раз напомнили о внимательном отношении к своим данным. А за ссылку на технологию спасибо.

    • Если вы хороший реверсер - пожалуйста, продолжайте наше небольшое исследование. Заодно увидите, сколько времени потребуется для повторения эксперимента.

  • Ребят, спасибо за пост.
    Когда дочитал до середины - представил объем работ, учитывая количество браузеров и ОС.
    Оказывается, что не зря я предпочитаю Мозиллу)
    Описаны инструменты и способы осуществления анализа. Кому интересно сами смогут провести более подробный анализ.
    Спасибо за работу и за пост

    • Qassarb, спасибо за понимание! Задачу видел в том, чтобы провести собственный эксперимент, детально описать его методику и результаты. Этого не требуется, чтобы впечатлить громкими заявлениями, но это нужно для сбора фактов и их обсуждения.

      • А вам спасибо, за ваши труды.
        Как и всегда, тред рескептов всем авторам ][ и вам лично!

  • Резануло по глазам, если честно: "Самыми распространенными оказались Google Chrome (его доля составляет почти половину), «Яндекс.Браузер», назойливо устанавливающийся за компанию с другими программами"
    А хром такой ненавязчивый? =)

    • Мне он ни разу не попадался "за компанию", в отличие от Яндекс.Браузера. Видимо, до меня просто не добралась волна этой рекламы.

  • Для себя нашел много интересного, автору благодарность!
    А вот что будет, если я заблокирую адреса, по которым отправляются все указанные в статье данные? ;)

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

  • Чуваки, кто умеет прослушиварть траффик и анализироать при помощи WhireShark , пишите мне на rocketmedia@mail.ru

Похожие материалы