Как ботнеты подделывают fingerprint и WebGL, чтобы пройти за человека
Давайте поднимем логи и посмотрим правде в глаза. Большинство фрод-скриптов уже не тупо меняют user-agent: они собирают профиль из десятков полей — canvas, WebGL vendor/renderer, аудиоконтекст, timezone, screen, fonts, media devices. Потом подсовывают связку, которая выглядит «живой», но внутри ломается на согласованности.
Типовые следы маскировки:
— WebGL vendor и renderer не бьются с ОС и драйвером;
— canvas шумит одинаковым паттерном на группе IP;
— timezone, locale и Accept-Language расходятся;
— список шрифтов слишком бедный или, наоборот, «стерильно полный»;
— mediaDevices пустой там, где должен быть реальный стек железа.
Ботнеты эволюционируют, но паттерны их поведения остаются прежними. У настоящего пользователя fingerprint стабилен, но не идеален: меняется в пределах одной машины, а не скачет между несовместимыми конфигурациями. У фейка часто видна механика шаблона: одинаковые WebGL-строки, одинаковый порядок энумерации, повторяемые размеры viewport, синхронные движения мыши с линейной скоростью. Это уже не человек, а симулятор человека с плохой памятью.
Ищите не один признак, а конфликт слоёв: TLS/HTTP-отпечаток, поведенческий тайминг, device graph и граф связей по IP/ASN. Если WebGL «Mac Intel Iris», а сетевой стек и поведение кричат «массовый прокси-фарм», бюджет утекает в пустоту. Вот технический разбор того, как именно уплывает ваш рекламный бюджет.
Фильтрация должна резать не по одному полю, а по набору несовместимостей. Чем больше точек проверки вы связываете в один скоринг, тем дороже ботнету имитировать живого пользователя.
Защита от фрода в рекламе
@ad_fraud_shield_arb
Как ботнеты подделывают fingerprint и WebGL, чтобы пройти за человека
Этот пост опубликован в Telegram-канале Защита от фрода в рекламе. Подписаться можно по ссылке: @ad_fraud_shield_arb.