Все началось пол года назад. Работаем небольшой командой над проектом, проект уже запустили в сеть и он успешно работал несколько месяцев. Зашла как-то речь по поводу статистики посещения, источников переходов пользователей и тому подобное. Менеджеры прислали мне ссылку на страницу SimilarWeb с нашим ресурсом. То что я увидел, меня сильно озадачило. Помимо прочей информации, на странице есть информация о поддоменах, которые SimilarWeb нашел. Представьте себе мое удивление, когда я увидел в топ-5 поддоменах внутренние, которые используются только сотрудниками и недоступны извне (такие как jira.mycomp.org, ci.mycomp.org, git.mycomp.org).
На ум приходило только одно: у кого-то в команде стоит какая-то гадость, которая сливает данные по посещаемым URL. Часть команды работает удаленно, у всех разные операционные системы и браузеры. С каждым общался индивидуально, просил просканировать систему антивирусом, запрашивал список используемых расширений.
Гугление выдало несколько статей по поводу покупки компанией SimilarWeb расширения Stylish. Я поставил данное приложение к себе и убедился, что оно действительно сливает данные. Как это работает: при установки расширения, вы соглашаетесь с условиями сбора данных (причем на текущий момент приложение находится в магазине и не скрывает того, что данные будут собираться для SimilarWeb). Далее при переходе на любую страницу (даже на https), расширение в фоне начинает отправлять данные на url h___s://userstylesapi.com/tic/stats. Выглядит это так:
Параметр e в FormData содержит дважды завернутые в Base64 данные:
ZG0xMFBUTW1iR0YyUFRJeEpuZDJQVEVtWjNJOU1pNHdMamttY0hobFBURm5aamhwTjJnNU5qVTVOekZ4ZERob05tTTVhamc0T0hCME5DWnpiblU5Sm1kd1BXaDBkSEJ6SlROQkpUSkdKVEpHZFhObGNuTjBlV3hsY3k1dmNtY2xNa1p6ZEhsc1pYTWxNa1ppY205M2MyVWxNa1p1WlhkbGMzUXRjM1I1YkdWekptTm9QVGttWkdrOVlUTmxNMlV5WVRneA==
vmt=3&lav=21&wv=1&gr=2.0.9&pxe=1gf8i7h965971qt8h6c9j888pt4&snu=&gp=https%3A%2F%2Fuserstyles.org%2Fstyles%2Fbrowse%2Fnewest-styles&ch=9&di=a3e3e2a81
Таким образом при каждом клике передается информация по посещаемым URL.
Провели чистку рабочих и домашних компьютеров, удалил расширение у тех у кого оно было и написали в инструкцию на будущее. Дальше оставалось только ждать. Данные для SimilarWeb обновляются в течении одного месяца.
Однако, прошло два месяца, а ситуация не изменилась. Домены продолжали висеть в списке ресурса. Значит вычистили не все. Решили вычислить «доносчика» другим способом. Для каждого члена команды был создан специальный URL следующего вида: coder-124.mycomp.ru, coder-523.mycomp.ru и т.д. Дали задачу заходить на данный URL ежедневно и делать несколько кликов, процесс поставили на мониторинг, чтобы никто не забывал. После месяца издевательства над разработчиками мы все же получили плоды. Один из URL оказался в самом низу списка. Цель обнаружена, осталось понять каким образом данные сливаются.
Результат удивил, данные сливает расширение Chrome… Но не Stylish… Как оказалось, данные сливает расширение Frigate. При установки расширение показывает следующее сообщение:
Допустим… Далее мы посмотрели каким образом оно передает эти данные:
При переходе на любую страницу на два URL (интересно, почему на два) отправляются следующие данные:
Параметр e в FormData содержит дважды завернутые в Base64 данные:
Y3oweE9ERTBKbTFrUFRJeEpuQnBaRDFzWW5keE1FeHBTVW8xZFhFeWFEY21jMlZ6Y3owMU56TXpNVFl6TWpVeU1EazJOemd3TURBbWMzVmlQV05vY205dFpTWnhQV2gwZEhCekpUTkJMeTltY21rdFoyRjBaUzV2Y21jdmNuVXZKbWh5WldabGNtVnlQV2gwZEhCekpUTkJMeTkzZDNjdVoyOXZaMnhsTG5KMUx5WndjbVYyUFdoMGRIQnpKVE5CTHk5bWNta3RaMkYwWlM1dmNtY3ZjblV2Sm5SdGRqMDBNREUxSm5SdFpqMHhMakU9
s=1814&md=21&pid=lbwq0LiIJ5uq2h7&sess=573316325209678000&sub=chrome&q=https%3A//fri-gate.org/ru/&hreferer=https%3A//www.google.ru/&prev=https%3A//fri-gate.org/ru/&tmv=4015&tmf=1.1
Я не думаю, что все эти данные нужны для подбора прокси сервера. Да и механизмы очень похожи.
Кстати, в расширении friGate Light такого функционала нет…
Вместо заключения.
Могу предположить, что если нашлось второе расширение, то найдется и третье, и четвертое. Скорее всего данный способ сотрудничества SimilarWeb с разработчиками браузерных расширений будет развиваться дальше. Призываю вас проверить свои расширения (Chrome, Firefox — не важно) и если найдете подобное, пишите в комментариях. Интересно знать, как глубока проблема.
И помните, большой брат всегда наблюдает за вами :)
Всех благ.
Комментарии (14)
Habra_nik
22.03.2019 00:38А можно, интересно, рефёрера на ходу поменять :-)? Или в посылке где-то проверка всобачена?
abrwalk
22.03.2019 01:48Если речь о расшрирении то реферер не при чем, оно берет урл из адресной строки образно выражаясь, я так думаю…
Хотя в тему реферера могу порекомендовать HTTP заголовок «Referrer-Policy: no-referrer» — защитит от слива реферера на сторонние CDN которые возможно имеются на веб-мордах закрытых ресурсов, да и просто от кликов на внешние ссылки.AgentSIB Автор
22.03.2019 10:45Этому расширение данные заголовки совсем неважны. Пример. Я перешел с Google на VK. Получил следующее:
cz04MTQmbWQ9MjEmcGlkPTdUSWJ3RGRmZG80YTNqdCZzZXNzPTk5NTI0MzAzNjkwNjE2ODIwMCZxPWh0dHBzJTNBJTJGJTJGdmsuY29tJTJGZmVlZCZwcmV2PWh0dHBzJTNBJTJGJTJGd3d3Lmdvb2dsZS5jb20lMkZzZWFyY2glM0Zzb3VyY2UlM0RocCUyNmVpJTNEcEpHVVhQREhPSy1tbXdYNzI3TFFEdyUyNnElM0R2ay5jb20lMjZidG5LJTNEJTI1RDAlMjU5RiUyNUQwJTI1QkUlMjVEMCUyNUI4JTI1RDElMjU4MSUyNUQwJTI1QkElMkIlMjVEMCUyNUIyJTJCR29vZ2xlJTI2b3ElM0R2ay5jb20lMjZnc19sJTNEcHN5LWFiLjMuLjBsMTAuMjI1OS4zNTM4Li4zODEzLi4uMC4wLi4wLjcxLjQ0MS43Li4uLi4uMC4uLi4xLi5nd3Mtd2l6Li4uLi4wLi4zNWkzOWowaTEzMWowaTEwaTFqMGk2Ny5qcVJGeUt3cUNrZyZsaW5rPTEmc3ViPWNocm9tZSZocmVmZXJlcj1odHRwcyUzQSUyRiUyRnd3dy5nb29nbGUuY29tJTJGJnRtdj0zMDE1
Декодируем:
s=814
&md=21
&pid=7TIbwDdfdo4a3jt
&sess=995243036906168200
&q=https%3A%2F%2Fvk.com%2Ffeed
&prev=https%3A%2F%2Fwww.google.com%2Fsearch%3Fsource%3Dhp%26ei%3DpJGUXPDHOK-mmwX727LQDw%26q%3Dvk.com%26btnK%3D%25D0%259F%25D0%25BE%25D0%25B8%25D1%2581%25D0%25BA%2B%25D0%25B2%2BGoogle%26oq%3Dvk.com%26gs_l%3Dpsy-ab.3..0l10.2259.3538..3813...0.0..0.71.441.7......0....1..gws-wiz.....0..35i39j0i131j0i10i1j0i67.jqRFyKwqCkg
&link=1
&sub=chrome
&hreferer=https%3A%2F%2Fwww.google.com%2F&tmv=3015
Обратите внимание на prev и hreferer. То есть js библиотека сохраняет предыдущую страницу не зависимо от ее заголовков (можно попробовать найти этот заголовок и проверить).
tuxi
22.03.2019 10:19Буквально недавно была история. Сделали выгрузку в Google Merchant Center, отправили ссылку по вацапу человеку, который занимается у нас настройкой кампании в Гугле.
Через 18 минут по этой ссылке к нам пришел бот Yandex Direct-а и продолжает ходить до сих пор. Пару раз были запросы с домена yаndeх-team с реферером какой то внутренней их системы.AgentSIB Автор
22.03.2019 10:26У Яндекса тоже есть и расширения и библиотеки для расширений подобного рода. Например тот же советник. Было неприятно, когда обнаружил его в Joxi. Пришлось расширение удалить.
tuxi
22.03.2019 10:31Есть мнение, что весь яндекс.браузер, это один такой «большой информатор» :)
AgentSIB Автор
22.03.2019 10:32Есть мнение, что браузер Google Chrome тоже ;)
tuxi
22.03.2019 10:42:)))
На самом деле, во всей этой истории, мне больше всего понравились 2 вещи:
1) к нам пришел бот директа, не поисковый, не маркета, а именно директа
2) следы (в логах) просмотра сотрудниками яндекса нашей скромной выгрузки в gmc
AgentSIB Автор
23.03.2019 00:43Кстати, вспомнил о старом посте. Оставлю ссылку на свой коммент. Тема похожая.
habr.com/ru/post/273027/#comment_8689007
time2rfc
22.03.2019 14:47В мире не бывает ничего бесплатного, если вы не платите разработчикам расширения — заплатят другие.
AgentSIB Автор
22.03.2019 14:50Согласен. Но укажите это явно, что мы собираем полные URL даже на https сайта для построения анонимной статистики в таких системах как SimilarWeb и тд. Зачем встраивать втихоря? В некоторых случаях это довольно критичный момент.
technik
23.03.2019 00:15Удивлён. Сам пользуюсь этим расширением и никогда бы на него не подумал.
А есть какой-то способ запретить расширению frigate стучать в SimilarWeb?AgentSIB Автор
23.03.2019 00:36Найти альтернативу, предварительно проверив. Лично я просто использую proxy.pac файл от prostovpn со своим прокси. Без всяких расширений.
UPDATE: можно попробовать выдернуть исходники расширения из хрома и попробовать удалить эту часть.
selivanov_pavel
SimilarWeb немного протупили, надо было исключать из статистики всё, что резолвится в серые диапазоны адресов, тогда их не спалили бы так быстро.