<b>Как ботнеты маскируются под живых: Fingerprint и WebGL, которые врут слишком ровно</b>
Давайте поднимем логи и посмотрим правде в глаза. Бот, притворяющийся человеком, редко палится по одному сигналу — он собирает «правильный» набор: user-agent, canvas, WebGL vendor, timezone, language, screen metrics. Проблема в том, что у живого пользователя эти поля не складываются в стерильную матрицу.
Смотрите на связность, а не на отдельные значения:
— WebGL renderer не бьётся с CPU/GPU-профилем;
— timezone, locale и IP-география конфликтуют;
— canvas hash повторяется в кластере с разным поведением;
— Fingerprint остаётся стабильным, а mouse/pointer events идут по шаблону, как из генератора.
Ботнеты эволюционируют, но паттерны их поведения остаются прежними. У них часто слишком ровный entropy-профиль: одинаковые интервалы между событиями, одинаковая длина сессии, одинаковый порядок загрузки ресурсов, нулевая дрожь в движении курсора. Реальный браузер шумит: шрифты, рендер, тайминги, race conditions, микрозадержки — всё это даёт неидеальный отпечаток.
Вот технический разбор того, как именно уплывает ваш рекламный бюджет: антифрод должен сравнивать fingerprint не в вакууме, а с поведенческим контекстом. Если WebGL один, а траектория кликов, scroll depth и timing profile из разных вселенных — это не пользователь, это аккуратно собранная обёртка.
Практика одна: строите граф несовместимостей. Не спрашивайте «похож ли он на человека», спрашивайте «может ли один и тот же клиент одновременно иметь такой fingerprint, такую географию и такое поведение». Если ответ ломается хотя бы в двух узлах — перед вами не трафик, а имитация.
Защита от фрода в рекламе
@ad_fraud_shield_arb
<b>Как ботнеты маскируются под живых: Fingerprint и WebGL, которые врут слишком ровно</b>
Этот пост опубликован в Telegram-канале Защита от фрода в рекламе. Подписаться можно по ссылке: @ad_fraud_shield_arb.