Good Carder
Professional
- Messages
- 753
- Reaction score
- 493
- Points
- 63
От кардера — кардерам. Вы купили дорогой антидетект, настроили прокси, идеально подменили WebGL, Canvas, AudioContext и даже список шрифтов. А платёж всё равно упал с fraudulent. Потому что вы двигались как робот.
Современные антифрод-системы (BioCatch, Forter, Sift) больше не смотрят на статический fingerprint. Они анализируют динамику вашего поведения: как вы двигаете мышью, с какой скоростью печатаете, как скроллите страницу, делаете ли паузы перед отправкой формы. И по этим 3000+ параметров они с точностью до 95% отличают бота от человека.
В этой статье я разберу, что именно собирают эти системы, как записать свои собственные движения для создания датасета, какие библиотеки реально помогают эмулировать человека, и как обучить LSTM генерировать траектории, неотличимые от живых.
Что именно они измеряют:
Главная проблема в том, что поведенческий анализ — постоянный. Система не проверяет вас один раз при входе. Она следит за каждым движением в течение всей сессии.
Общее время заполнения типовой платёжной формы из 8–10 полей: не менее 20–40 секунд. Меньше 10 секунд — это гарантированный фрод-сигнал.
Базовый код для записи движений мыши:
Ghost Cursor генерирует множество точек на плавной кривой, имитируя траекторию руки человека. Однако у него есть ограничения: он не эмулирует индивидуальные особенности микродвижений и не запоминает ваш персональный стиль. Для большинства целей этого достаточно, но самые продвинутые антифрод-системы могут задетектить даже Ghost Cursor, если он используется в чистом виде без дополнительной рандомизации.
Другие библиотеки для Python:
Основное преимущество Bumblebee перед статическими библиотеками — он учится на ваших данных. Вы записываете свою сессию через rrweb, конвертируете треки в обучающий датасет, и модель генерирует новые траектории, статистически неотличимые от ваших исходных.
Формат данных для LSTM:
Чем длиннее seq_length, тем точнее модель будет копировать ваш стиль движений, но тем больше данных вам потребуется (минимум 1000 последовательностей на seq_length=30). Нормализация координат — обязательный этап.
Почему важен AudioContext? В 2026 году платформы используют аудио-отпечатки вместе с Canvas и WebGL для создания уникальных 99%+ идентификаторов в пуле из 100 000 пользователей. Если ваш AudioContext отключён или подменён некорректно, это станет причиной блокировки.
Советую создать эталонный скрипт для проверки: он должен запускаться перед каждой ответственной сессией и при любом отклонении немедленно оповещать вас с указанием конкретного несоответствия.
Инструменты есть: Ghost Cursor и Human Mouse для базовой эмуляции, rrweb для записи и анализа, Bumblebee и LSTM для продвинутой AI-генерации. Главное правило — не ленитесь тестировать. Каждый раз перед вбивом прогоняйте свой профиль через все доступные инструменты проверки фингерпринта. Ошибка в поведении стоит вам карты. А постоянная ошибка стоит вам всего пула.
Быстрая памятка на одну строку:
«3000 параметров собирает BioCatch за сессию. Ghost Cursor прячет мгновенный клик за кривой Безье. LSTM учит твоего бота двигаться как ты. rrweb записывает эталон. А BrowserLeaks ловит тех, кто думает, что Canvas и WebGL — это всё. Поведение — последний рубеж. Переиграешь его — переиграешь систему»
Современные антифрод-системы (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 мс |
| 60–120 мс | 300–600 мс | 300–500 мс | |
| Номер карты | 80–200 мс + пауза 300–600 мс после 4 цифр | 500–1000 мс | 500–800 мс |
| CVV | 100–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 — это всё. Поведение — последний рубеж. Переиграешь его — переиграешь систему»
