01 Июня 2023 | 10:06

Как мошенники подделывают данные Google Analytics и «Яндекс.Метрики»

CTO Admon Сергей Игнатов и веб-аналитик Андрей Забелич поделились тем, как мошеннические скрипты, не привлекая внимания, подделывают данные Google Analytics и «Яндекс.Метрики»

image

Мнение редакции AdIndex может не совпадать с позицией автора.

Мы в компании Admon осуществляем мониторинг трафика, определяя уязвимости сайтов. Недавно мы рассказывали о мошенничестве в EdTech-оферах, в том числе показали скрипт с сайта крупной онлайн-школы, который поедал органический трафик. Он же был замечен и у других крупных игроков EdTech-рынка.

Сегодня мы подробно рассмотрим алгоритм этого скрипта, а также расскажем, почему при его работе Google Analytics и «Яндекс.Метрика» не позволяют выявить кражу трафика. В таких обстоятельствах веб-аналитики на стороне СPA-сети или агентства отсылают к метрикам, но мы считаем, что это неправильно.

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

Как мы раскрыли новый массовый способ фрода

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

Процесс привязки CPA-метки другого партнера

При дальнейшем анализе выяснилось, что такое воровство трафика происходит не только для CPC-рекламы клиента, а в равной мере для всех каналов привлечения на сайт. Подстановка CPA-меток происходит независимо от устройства пользователя, исходного пути привлечения, времени суток и погоды за окном. Это навело на мысль, что причина кроется во вредоносном коде на самом сайте рекламодателя.

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

Как подделывают аналитику

Обнаружить скрипт довольно сложно. Вот пример такого кода, который можно найти через web.archive.org. Это далеко не последняя версия, но общий смысл работы алгоритма сохранен.

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

Прочитать исходный код (провести «деобфускацию») при помощи OpenAI ChatGPT не получилось

Сначала мы попробовали разобрать исходный код с помощью ChatGPT. Однако он отказался нам помогать. Зато помог опытный программист, использовавший в своей работе библиотеку shift-ast (библиотека для анализа программного кода).

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

Шаг 1: сбор меток

Скрипт отдает адрес сайта рекламодателя внешнему домену, тот возвращает в ответ финальный URL, в котором проставлены все необходимые UTM-метки. Без них клик не засчитается.

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

Шаг 2: чистка куки аналитики

«Яндекс.Метрика» и Google Analytics присваивают пользователю уникальный числовой ID, по которому выстраивают его путь. Вредоносный скрипт затирает эти самые ID и на их место ставит другую комбинацию чисел. За счет этого системой аналитики человек воспринимается как новый.

Шаг 3: формирование URL

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

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

Шаг 4: добавление логов для Tilda

Так как кругом много лендингов на Tilda, фродеры создают событие просмотра страницы. Видимо, чтобы статистика отображалась корректно.

Шаг 5: перезапись аналитики

На этом шаге скрипт заново прогоняет коды аналитики, чтобы они зафиксировали пользователя с новым ID (полученным на втором шаге), который якобы перешел по URL с третьего шага.

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

Шаг 6: откат адреса сайта

Скрипт меняет в поисковой строке пользователя адрес с проставленными UTM-метками на тот, что был изначально.

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

Шаг 7: чистка куки сайта

Скрипт затирает куки на сайте, чтобы не нарваться на скрытый счетчик посещений, который может выявить смену ID пользователя.

Также фрод-скрипт сбивает аналитику всех подключенных сервисов, которые собирают данные о действиях пользователей. Например, carrotquest.io нужен, чтобы повышать частотность покупок, но в сложившихся условиях работает некорректно.

В консоли видим ошибку, что куки carrotquest.io были удалены

Шаг 8: редактирование куки сайта

В куки сайта помещаются данные о UTM-метках. Они нужны, чтобы подтвердить конверсию у трекинговой системы CPA-сети.

Шаг 9: вызов трекера CPA-сети

На этот шаг обращаем ваше особое внимание. Запрос к CPA-сети в данном случае прямой. Что это значит?

Люди, которые написали обнаруженный нами скрипт, знают правила и порядок обращения к CPA-сети. Такая информация в открытом доступе отсутствует. Возможно, мошенники когда-то работали на конкретную сетку или знают тех, кто не так давно трудился над алгоритмами трекинга.

Так как это один из ключевых шагов, мы решили вновь свериться с мнением ChatGPT

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

Теперь подведем краткий итог.

Резюме:

  1. Вредоносный код на сайте забирал конверсии из органики, платной рекламы и у честных партнеров.
  2. Создавалась иллюзия стабильного роста CPA-канала.
  3. Мошеннический скрипт абсолютно не привлекал внимания: тяжело заметить небольшое подъедание конверсии каждого канала в отдельности на фоне естественного роста.
  4. В системы аналитики отправлялись фальшивые данные.
  5. Обнаружить код и понять, что именно происходит на сайте, удалось только заручившись поддержкой опытных программистов.

Как мошеннический скрипт появился на сайте

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

Мошенникам не нужно взламывать весь сайт, достаточно получить доступ к одному из таких контейнеров.

Почему так происходит

За качество трафика перед рекламодателем, как правило, отвечает один подрядчик. Он же предоставляет отчеты и отвечает за выполнение KPI. Контролем фрода тоже занимается партнер в лучшем случае. Иногда им не занимается никто.

Получается ситуация, благоприятная для тех махинаций, которые мы описали выше. Вредоносный код эффективно подменяет статистику. Подрядчик, сверяющий данные с Google Analytics и «Яндекс.Метрикой», ничего не замечает. Или старается не замечать.

Менеджеры и владельцы сайтов могут принимать желаемое за действительное

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

Как не платить за органический трафик

Гарантировать безопасность стороннего кода можно только полной его проверкой.

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

Сделать это можно силами собственной IT-команды, но тогда вам понадобится свой отдел мониторинга. Либо привлекайте проверенных профессионалов и специализированные инструменты.

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

В заключение

Мы привели здесь лишь один пример обнаруженного нами скрипта. Уникальный ли он? Нет. Подобные схемы месяцами паразитируют на десятках сайтов. Возможно, на вашем тоже.

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

Надеемся, что этот текст позволит устранить тщательно скрытые помехи на пути к прозрачной статистике и чистому трафику.

Эволюция бизнеса: опыт Scanners Как запустить рекламу зарубежного образования с помощью блогеров
Рейтинги
Лидеры рейтингов AdIndex
# Компания Рейтинг
1 MGCom №1 Digital Index 2023
2 Росст №1 Digital Index в Фармкатегории 2023
3 Arrow Media №1 Performance в недвижимости 2023
–ейтинг@Mail.ru