Поведенческий антидетект: как ИИ учится на ваших движениях мыши и что с этим делать

Good Carder

Professional
Messages
753
Reaction score
493
Points
63
От кардера — кардерам. Вы купили дорогой антидетект, настроили прокси, идеально подменили WebGL, Canvas, AudioContext и даже список шрифтов. А платёж всё равно упал с fraudulent. Потому что вы двигались как робот.

Современные антифрод-системы (BioCatch, Forter, Sift) больше не смотрят на статический fingerprint. Они анализируют динамику вашего поведения: как вы двигаете мышью, с какой скоростью печатаете, как скроллите страницу, делаете ли паузы перед отправкой формы. И по этим 3000+ параметров они с точностью до 95% отличают бота от человека.

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

Часть 1. Что собирают BioCatch, Forter, Sift и почему антидетекты против них бессильны​

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

1.1. Три кита поведенческой биометрии​

  • BioCatch строит риск-профили устройств в реальном времени, анализируя поведенческие сигналы совместно с данными устройства и сети для выявления несоответствий, характерных для активности мулов или скоординированных APP-фрод-кампаний.
  • Forter и Sift используют поведенческий анализ для оценки легитимности транзакций, но их подход больше ориентирован на паттерны использования аккаунтов в целом, а не на чистую био-механику.

Что именно они измеряют:

ПараметрЧто анализируетсяКак бот обычно ошибается
Движения мышиТраектория, скорость, ускорение, дрожание, углы поворота, overshoot, микрокоррекцииПрямые линии, постоянная скорость, отсутствие естественных "дрожаний"
Нажатия клавишDwell time (время удержания), flight time (время между клавишами), ритм, использование TabИдеально равные интервалы между всеми символами
СкроллСкорость, паузы, возвраты вверх, резкие остановкиИдеально плавный скролл с постоянной скоростью без остановок
Время заполнения формОбщее время, паузы между полями, ошибки и исправленияЗаполнение 10 полей за 3 секунды — мгновенный бан
Трафик веб-камерыМикродвижения зрачков, моргания (для видео-KYC)Полное отсутствие микродвижений или их неестественная периодичность
  • Сенсорное поведение (мобильные устройства): сила нажатия на экран, характер свайпов, угол поворота устройства.

Главная проблема в том, что поведенческий анализ — постоянный. Система не проверяет вас один раз при входе. Она следит за каждым движением в течение всей сессии.

1.2. Анатомия человеческого движения в цифрах​

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

Тип поляЗадержка между символамиЗадержка перед полемПауза после поля
Имя / Фамилия50–150 мс200–500 мс200–400 мс
Email60–120 мс300–600 мс300–500 мс
Номер карты80–200 мс + пауза 300–600 мс после 4 цифр500–1000 мс500–800 мс
CVV100–250 мс400–800 мс200–400 мс
Адрес (улица)70–150 мс500–1000 мс400–600 мс

Общее время заполнения типовой платёжной формы из 8–10 полей: не менее 20–40 секунд. Меньше 10 секунд — это гарантированный фрод-сигнал.

Часть 2. Запись и анализ: собираем датасет реальных сессий​

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

2.1. rrweb — запись всего, что делает пользователь​

rrweb (Record and Replay the Web) — библиотека с открытым исходным кодом для записи и воспроизведения веб-сессий. Она записывает не скриншоты, а DOM-события: изменения DOM, движения мыши, клики, ввод с клавиатуры — всё с временными метками и высоким разрешением, достаточным для создания качественных датасетов.

Базовый код для записи движений мыши:

JavaScript:
<script src="https://cdn.jsdelivr.net/npm/rrweb@latest/dist/rrweb.min.js"></script>
<script>
    let events = [];
    let stopRecording = rrweb.record({
        emit(event) { events.push(event); },
        recordMouseMove: true,   // Запись каждого пикселя движения
        recordScroll: true,      // Запись скролла
        recordInput: true,       // Запись ввода с клавиатуры
        recordClick: true,       // Запись кликов
        sampling: { mousemove: 10 }  // 10 мс -> 100 точек/секунду
    });
    setTimeout(() => {
        stopRecording();
        console.log(`Собрано ${events.length} событий`);
    }, 300000); // 5 минут
</script>

2.2. Экспорт и ручная разметка​

После записи вам нужно экспортировать треки в CSV для визуального сравнения. rrweb позволяет сохранить массив событий, затем отфильтровать события мыши (тип 3) и сгенерировать CSV с колонками timestamp, x, y, target. Эти треки вы сможете визуализировать, наложить на реальные движения и пометить участки с «естественным» и «неестественным» поведением.

Часть 3. Библиотеки эмуляции: от Ghost Cursor до Human Mouse​

После сбора датасета переходим к эмуляции. Вот три основных подхода: от самых простых до практически неотличимых от человека.

3.1. Ghost Cursor (JavaScript, Puppeteer/Playwright)​

Ghost Cursor — это утилита для Puppeteer, которая генерирует реалистичные движения мыши между координатами. Вместо мгновенного прыжка (page.mouse.click()) Ghost Cursor передвигает курсор по кривым Безье, имитируя естественную траекторию руки.

JavaScript:
const puppeteer = require('puppeteer');
const ghostCursor = require('ghost-cursor');
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
await page.goto('https://example.com');

const cursor = ghostCursor.createCursor(page);
await cursor.moveTo('#submit-button');  // Движение как у человека
await cursor.click();                   // Клик со случайным смещением

// Ghost Cursor может overshoot (проскальзывать) и корректироваться
// для элементов, которые находятся слишком далеко

Ghost Cursor генерирует множество точек на плавной кривой, имитируя траекторию руки человека. Однако у него есть ограничения: он не эмулирует индивидуальные особенности микродвижений и не запоминает ваш персональный стиль. Для большинства целей этого достаточно, но самые продвинутые антифрод-системы могут задетектить даже Ghost Cursor, если он используется в чистом виде без дополнительной рандомизации.

3.2. @extra/humanize — плагин для Puppeteer и Playwright​

@extra/humanize — это плагин, эмулирующий человеческий ввод, с особым акцентом на движения мыши. Его ключевое отличие — встроенная поддержка разных алгоритмов рандомизации и возможность настройки вариативности под ваши собственные статистические данные.

JavaScript:
const humanize = require('@extra/humanize');
await humanize.click(page, '#button', {
    waitTime: 500,      // пауза перед движением («прицеливание»)
    moveSpeed: 0.8,     // относительная скорость
    variation: 5        // пикселей смещения от цели
});

3.3. Human Mouse — самый реалистичный Python-инструмент​

Human Mouse — это Python-пакет, генерирующий ультра-реалистичные движения мыши с использованием кривых Безье и сплайн-интерполяции. Он создаёт естественные траектории с плавными ускорениями, замедлениями и микродрожанием, которые почти неотличимы от настоящих человеческих движений.

Python:
from human_mouse import HumanMouse
import pyautogui
human = HumanMouse()
# Перемещение мыши из текущей позиции в (500, 500) за 0.8 секунды
human.move_to(500, 500, duration=0.8, bezier=True)
# Клик с человеческим патерном (hover + вариация)
human.click(500, 500, hover_duration=0.2, variation=5)

Другие библиотеки для Python:
  • BezMouse — лёгкий инструмент для имитации движений с помощью кривых Безье, который не вызывал триггеров детекции в течение 400+ часов непрерывного использования в одном из проектов (RuneScape bot).
  • OxyMouse — библиотека для генерации движений, совместимая с любым фреймворком автоматизации браузера.

Часть 4. Продвинутый уровень: LSTM и AI-генерация траекторий​

Ghost Cursor и Human Mouse генерируют «усреднённое» человеческое движение. Но если вы хотите быть по-настоящему неотличимым, вам нужно, чтобы ваш бот двигался как конкретный вы, а не как среднестатистический человек. Для этого и нужны LSTM.

4.1. Bumblebee — AI-пакет для естественного управления мышью и клавиатурой​

Bumblebee — это Python-пакет с открытым исходным кодом, использующий RNN с LSTM-слоем для генерации плавных, человеко-подобных траекторий мыши. Генерируемые пути обогащаются естественным шумом и переменной скоростью, создавая движения, максимально приближенные к реальному человеческому поведению.

Основное преимущество Bumblebee перед статическими библиотеками — он учится на ваших данных. Вы записываете свою сессию через rrweb, конвертируете треки в обучающий датасет, и модель генерирует новые траектории, статистически неотличимые от ваших исходных.

4.2. Создание обучающего датасета​

Для обучения LSTM нужен размеченный датасет реальных траекторий мыши. Вы можете использовать:
  • Собственные записи через rrweb (чем больше, тем лучше — минимум 50 сессий по 5–10 минут).
  • Публичные датасеты вроде SapiMouse (из исследований Microsoft).
  • Данные с краудсорсинговых платформ, если у вас есть доступ.

Формат данных для LSTM:

Входные параметры моделиЧто они означают
XМассив предыдущих N точек (x, y, timestamp)
yСледующая точка (x, y)
seq_lengthКоличество предыдущих точек, используемых для предсказания следующей

Чем длиннее seq_length, тем точнее модель будет копировать ваш стиль движений, но тем больше данных вам потребуется (минимум 1000 последовательностей на seq_length=30). Нормализация координат — обязательный этап.

4.3. Генерация траектории с использованием обученной модели​

После обучения модели LSTM (например, в PyTorch с архитектурой из одного LSTM-слоя на 64 нейрона и линейного выходного слоя) вы можете генерировать новые траектории, сохраняя свой уникальный «поведенческий подчерк». Добавление контролируемого случайного шума (с температурой 0.1–0.3) позволит избежать детекции по шаблонам.

Часть 5. Тестирование и чек-лист перед вбивом​

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

5.1. Инструменты проверки анонимности​


СервисЧто тестируетЦелевой показатель
BrowserLeaksВсе виды утечек: WebRTC, Canvas, WebGL, AudioContextНет совпадений с реальными ID
CreepJSСтепень уникальности вашего устройстваВаше устройство не должно выделяться из «шума»
Whoer.netПроцент анонимности85–95%
PixelscanКомплексный анализ отпечаткаОтсутствие красных флагов

Почему важен AudioContext? В 2026 году платформы используют аудио-отпечатки вместе с Canvas и WebGL для создания уникальных 99%+ идентификаторов в пуле из 100 000 пользователей. Если ваш AudioContext отключён или подменён некорректно, это станет причиной блокировки.

5.2. Что должно быть в идеальном результате​

  • Canvas и WebGL должны быть подменены с шумом, но не блокированы полностью. Полная блокировка — это самый первый и самый кричащий красный флаг для любого антифрода.
  • User-Agent и заголовки должны соответствовать друг другу. Если User-Agent заявляет Windows 11, а Sec-Ch-Ua-Platform сообщает macOS — бан обеспечен.
  • Часовой пояс, язык и IP должны быть полностью синхронизированы.
  • Отпечатки должны быть согласованы между собой. В 2026 году платформы сверяют до 5 независимых источников отпечатка одновременно, включая TLS ClientHello и HTTP/2 настройки.

Советую создать эталонный скрипт для проверки: он должен запускаться перед каждой ответственной сессией и при любом отклонении немедленно оповещать вас с указанием конкретного несоответствия.

5.3. Финальный чек-лист перед вбивом​

  • Технический fingerprint протестирован через BrowserLeaks и Whoer.
  • WebRTC и DNS не утекают.
  • Поведенческий след проверен через запись и анализ своей тестовой сессии.
  • Задержки в скриптах настроены с рандомизацией.
  • Движения мыши генерируются через Ghost Cursor / Human Mouse, а не через мгновенные клики.
  • AudioContext не отключён, но подменён корректно.
  • LSTM-модель (если используете) переобучена в течение последних 3 месяцев на свежих данных.

Резюме от кардера​

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

Инструменты есть: Ghost Cursor и Human Mouse для базовой эмуляции, rrweb для записи и анализа, Bumblebee и LSTM для продвинутой AI-генерации. Главное правило — не ленитесь тестировать. Каждый раз перед вбивом прогоняйте свой профиль через все доступные инструменты проверки фингерпринта. Ошибка в поведении стоит вам карты. А постоянная ошибка стоит вам всего пула.

Быстрая памятка на одну строку:
«3000 параметров собирает BioCatch за сессию. Ghost Cursor прячет мгновенный клик за кривой Безье. LSTM учит твоего бота двигаться как ты. rrweb записывает эталон. А BrowserLeaks ловит тех, кто думает, что Canvas и WebGL — это всё. Поведение — последний рубеж. Переиграешь его — переиграешь систему»
 
Top