Мультиаккаунтинг — это когда один и тот же человек или целая «ферма» людей заводит много аккаунтов, чтобы выжать из букмекера максимум: приветственные бонусы, кэшбэк, вилки на акциях, повышенные лимиты для «новичков». Для оператора это выглядит как тихая утечка денег, а для команды антифрода — как вечная игра в догонялки. Ниже — практическое руководство, как системно ловить «фермы» без истерик и лишних банов, опираясь на графовые связи, поведение и частично совпадающие реквизиты.
Почему это бьёт по юнит-экономике
Скучный, но важный блок. Мультиаккаунтинг бьёт сразу по нескольким метрикам:
- LTV и маржа: усреднённый игрок приносит меньше, потому что «фермы» съедают бонусы и играют плюсовые стратегии на коротком плече.
- CPA и возврат маркетинга: платим как за новых, а получаем переодетых «старичков»; ROMI проседает.
- Оборот и риск: в линиях и лайве появляется перекос на акционных маркетах и «вилках», растёт волатильность результата.
Переводя с финансового: без антифрода мы платим за клиента дважды, а иногда и трижды. И ещё дарим ему фрибеты. Не лучший бизнес-план.
Три кита детекта: граф, поведение, «частичные совпадения»
Хорошая новость: не обязательно изобретать философский камень. В реальности лучшие результаты даёт комбинация трёх подходов.
- Графовые связи. Строим граф «аккаунт — сущность» и смотрим кластеры. Сущности — это устройства, IP, подсети/ASN, карты, кошельки, адреса, номера телефонов, почты, cookie-идентификаторы, отпечатки TLS (например, JA3 ) и браузера. Аналитика — через NetworkX или Neo4j GDS: Connected Components, Louvain, Label Propagation, PageRank для «хабов».
- Поведенческие паттерны. Время жизни сессий, порядок действий (deposit → bonus → ставка → вывод), предпочтения по рынкам, «скорость клика», повторяемость маршрутов по интерфейсу, а также скорость «охоты на бонус». Всё это красиво ложится в профили и sequence-модели.
- Частично совпадающие реквизиты. Один и тот же дом, одинаковые улицы/подъезды, slightly различающиеся ФИО, однотипные почтовые домены, карты из одного пула BIN, кошельки из «семейства», номера в одной «десятке». Здесь рулит фазы-матчинг и «фаззи»-сходство строк, плюс нормализация адресов.
Сигналы, которые обычно срабатывают
Список того, что даёт максимальную пользу в реальных проектах. Добавляйте по мере роста зрелости:
- Сетевые: общие публичные IP, подсети /24, автономные системы (ASN). Для маппинга помогает база MaxMind ASN . Резидентные прокси и мобильные прокси маскируются хуже, чем кажется: ищем «гребёнку» IP смен за короткие окна.
- Устройства и клиенты: device fingerprint (аппаратные признаки, канвас, аудио), отпечатки TLS Handshake (тот же JA3 ), «редкие» комбинации шрифтов и плагинов. Не забываем о ротации браузеров — это тоже паттерн.
- Идентификаторы: телефоны на «одноразовых» операторах, почты на свежих доменах, повторяющиеся delivery-адреса, «кусты» из карт одного BIN, криптокошельки с одинаковыми путями пополнения.
- Поведение: сверхбыстрые последовательности действий, «скриптовая» навигация, ставки под акцию «в ноль», моментальные выводы после минимальных отыгрышей, одинаковые ошибочные клики.
- Гео и время: логины из разных городов с разницей в минуты, «телепорты» между странами, а также синхронные ночные сессии «кластера».
Как собрать граф и не пожалеть
Граф — это не только «красивые кружочки». Он даёт три практические вещи: 1) кластеры мультиков; 2) ядра «ферм» (хабы); 3) мосты между группами.
- Схема: вершины двух типов — «аккаунт» и «сущность». Рёбра: «использует устройство», «логинится с IP», «привязан к карте», «одинаковый адрес», «совпадает JA3» и т.д.
- Выделение кластеров: Connected Components/Louvain. Считаем «плотность» кластера, долю бонусов, общий профит/убыток для оператора, долю акционных ставок.
- Семантика ребра: не все связи равны. «Однажды совпавший IP» слабее, чем «совместно используемая карта». Вес ребра поднимает вес сигнала. Это важно для скоринга.
- Инструменты: быстрый прототип — NetworkX . Прод — графовая БД и GDS-алгоритмы в Neo4j . Для продвинутых — графовые эмбеддинги и GNN в PyTorch Geometric .
Поведенческие модели: от правил к ML
Сначала достаточно правил. Потом — слабый надзор и аномалии. Затем — супервижн, где есть размеченные кейсы «ферм».
- Правила: «N аккаунтов за M минут с одного ASN», «большая доля ставок по бонусам у группы», «последовательность из 5 одинаковых шагов за T секунд». Прелесть правил — они объяснимы и быстро внедряются.
- Аномалии: Isolation Forest, One-Class SVM, PCA/Autoencoder. Хороши для поиска «вчера мы такого не видели». См. IsolationForest .
- Классика ML: когда накопили метки, используйте градиентный бустинг — XGBoost или LightGBM . Признаки: графовые (центральность, размер компоненты, доля «жёстких» связей), поведенческие (скорости, последовательности), реквизитные (фазы-совпадения), сетевые (ASN, подмассив IP, частота ротаций).
Частичные совпадения реквизитов: аккуратнее с родственниками
Реальная жизнь мешает идеальной теории. Родственники живут по одному адресу, делят Wi-Fi, иногда — карту. Поэтому «одинаковый адрес = бан» — путь к боли. Что делать:
- Нормализуйте адреса и ФИО. Улицы, дом/корпус/кв., «Ё/Е», пробелы. Сравнивайте токенами и расстоянием Левенштейна, а не «в лоб».
- Склейка по нескольким слабым признакам. Адрес + телефонный пул + близкие почты + общий IP-паттерн. Одного «слабого» совпадения мало.
- Сценарии для близких: для «семейных» случаев вводим мягкие ограничения: лимиты бонусов на домохозяйство, ручной обзор для вывода, прозрачная коммуникация.
Device & network fingerprint: что реально работает
Устройство и сеть — рычаги, которые сложнее подделать массово. Несколько приёмов, которые стабильно приносят пользу:
- Отпечатки TLS/клиента. Комбинация версий, шифров, расширений (тот же JA3 ) плюс HTTP-заголовки создают «почерк» семейства ботов/браузеров.
- Поведенческий отпечаток. Движение мыши, скролл, интервалы между кликами. Скрипт не идеален: микродрожание человеческой руки несимулировать массово.
- Атрибуция прокси. Серые/белые списки ASN, аномальная ротация IP, «цепочки» логинов из одного пула мобильных прокси с одинаковым тайм-сигнатуром.
- Браузерные метрики. Canvas/WebGL/audio, список шрифтов, плагины. Для старта подойдёт открытый FingerprintJS (как ориентир, не как серебряная пуля).
Риск-скоринг и пороги: чтобы не банить пол-сайта
Любая «фича» превращается в число, а числа — в риск. Дальше — простая математика и дисциплина:
- Соберите фичи. Категориальные (ASN, страна), непрерывные (скорости, доли), графовые (центральности, размеры компонент), бинарные (совпало/не совпало).
- Постройте скор. Либо ML-модель, либо взвешенная сумма с калибровкой по историческим кейсам.
- Введите три порога. Зелёный — пускаем; Серый — фрикшн (доппроверка, снижение лимитов, запрос документов); Красный — стоп операции, ручной обзор, KYC.
- Делайте A/B на порогах. Оптимизируйте по метрикам бизнеса: удержание честных, сэкономленные бонусы, снижение выплат «фермам».
Процесс и UX: жёсткость там, где она окупается
Антифрод — не про «запретить всем всё», а про правильный момент трения:
- На входе: мягкий скоринг, SCA при аномалиях, одноразовые проверки при совпадениях слабых сигналов.
- На бонусах: лимит «на домохозяйство», отложенная активация, отыгрыш с верификацией устройств.
- На выводе: усиленный KYC/Liveness при красном риске, адресные запросы документов по «сильным» связям (карта, кошелёк, адрес).
- Коммуникация: честно объясняйте правила и причины проверок. Чем прозрачнее — тем меньше скандалов и возвратов.
Метрики успеха: что смотреть каждую неделю
Ключевые метрики, которые помогают понять, что антифрод работает, а не мешает жить:
- Доля бонусов, утилизированных «кластерами» из графа (↓ — хорошо).
- Средний LTV честных игроков (↑ — цельная картина важнее мгновенной экономии).
- FP-rate на выводах (низкий уровень ложных срабатываний = довольная поддержка).
- Время обзора кейса и конверсия в подтверждённый мультиакк.
- Доля «сгоревших» ферм, которые больше не возвращаются (ретеншн злоумышленника нам не нужен).
Мини-чек-лист внедрения
Если хочется «вчера», начните с этого списка. Он закрывает 80% пользы за 20% усилий:
- Соберите сырые логи логинов/регистраций/платежей и нормализуйте ключи (адреса, ФИО, телефоны, карты, e-mail).
- Включите базовую девайсную телеметрию и TLS/HTTP-отпечатки (см. JA3 ).
- Постройте двудольный граф «аккаунт — сущность» и посчитайте Connected Components (через NetworkX ).
- Сформируйте 10–15 правил для «жёстких» связей и поставьте фрикшн на выводах.
- Добавьте IsolationForest для поиска аномалий в поведении.
- Соберите первые метки (ручной разбор топ-кластеров) и натренируйте бустинг ( XGBoost / LightGBM ) с графовыми фичами.
- Настройте три порога риска и процесс эскалации (серый/красный), договоритесь с поддержкой и платежами.
- Запланируйте еженедельный разбор: что сработало, что стало «шумом», какие правила пора выкинуть.
Юридические и этические нюансы
Да, тут без бюрократии никак. Сбор и обработка данных должны соответствовать локальному праву и условиям оферты. Не собирайте лишнее «на всякий случай», объясняйте пользователям, зачем нужна проверка, и храните доказуемую историю решений (audit trail). Если сомневаетесь — загляните в рекомендации OWASP по борьбе с автоматизированными угрозами: пригодится для выработки внутренних политик.
Итоги: стратегия против «ферм», а не война с клиентами
Мультиаккаунтинг побеждается не «бан-хаммером», а системой: граф для связей, поведение для контекста, аккуратная работа с частичными совпадениями, и внятный риск-скоринг с понятными порогами. Плюс дисциплина в метриках и уважение к честным игрокам. Делайте жёсткость там, где она окупается, и вы заметите: бонусы перестанут «утекать», ROMI вернётся к жизни, а команда поддержки начнёт меньше ругаться и больше благодарить. Что, согласитесь, уже победа.
Бонус: таблица сигналов и «силы» связи
Сигнал | Сила связи | Комментарий |
---|---|---|
Общая карта/кошелёк | Высокая | Обычно требует немедленного фрикшна/верификации |
Совпадающий адрес + телефонный пул | Средняя | Осторожнее: семьи и соседи. Нужны дополнительные признаки |
Одинаковый JA3 + повторяющиеся паттерны кликов | Средняя | Хорошо для детекта «скриптовых» ферм на прокси |
Общий публичный IP | Низкая | Общее Wi-Fi/офис/кафе. Слабый сигнал |
Кластер в графе >= 5 аккаунтов | Высокая | Особенно если есть сильные рёбра (платёжные связки) |