Поведенческая аналитика и машинное обучение в обнаружении ботов

Автор: BotHunt Editorial
Время чтения: 12 мин.
Просмотров: 25
Дата публикации: 12 июля 2026 г.

Классические фильтры — чёрные списки IP, проверка User-Agent, лимиты частоты запросов — ловят ботов вчерашнего дня. Современный бот запускается в настоящем браузере, ведёт курсор по кривой Безье и печатает с «человеческими» паузами. Отличить его от посетителя по одному признаку невозможно — нужна статистика поведения и модель, которая видит закономерность в десятках сигналов сразу. Именно поэтому машинное обучение стало ядром защиты от ботов: оно улавливает то, что не описать жёстким правилом.

Мы в BotHunt анализируем более 40 поведенческих и сетевых сигналов на каждый запрос и выносим вердикт за 4–12 миллисекунд. В этой статье разберём, как устроена поведенческая аналитика под капотом антибота: какие признаки собираются, как сырые события превращаются в фичи, какие модели машинного обучения применяются, что такое anomaly detection и почему главная сложность — не поймать бота, а не заблокировать живого человека.

Коротко:

  • Машинное обучение обнаруживает ботов по совокупности поведения, а не по одному признаку: модель оценивает десятки фич движения мыши, скролла, клавиатуры и таймингов одновременно.

  • Поведенческая аналитика собирает сырые события (координаты курсора, время нажатий) и превращает их в статистические признаки: скорость, ускорение, дисперсию и энтропию траектории.

  • Supervised-модели (XGBoost, случайный лес) ловят известные типы ботов, а anomaly detection (Isolation Forest, автоэнкодеры) — новые, которых не было в обучающей выборке.

  • Главная метрика антибота — не точность, а доля ложных блокировок: заблокировать реального клиента дороже, чем пропустить одного бота.

  • BotHunt объединяет поведенческий ML с браузерным fingerprint и сетевыми сигналами (40+ факторов) и выносит вердикт за 4–12 мс при доле ложных срабатываний менее 0.1%.

Что такое поведенческая аналитика и при чём здесь машинное обучение

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

Ключевая идея простая. Человек ведёт себя нестабильно: курсор дёргается, скорость скролла плавает, паузы между нажатиями клавиш неравномерны. Бот, наоборот, регулярен — он повторяет одни и те же интервалы, движется по идеально гладкой траектории и реагирует быстрее, чем успевает человеческий глаз. По отдельности каждый признак слабый. Вместе они складываются в устойчивый паттерн.

Задача машинного обучения — не проверить одно правило, а оценить сотни комбинаций признаков сразу и выдать вероятность того, что перед нами бот. Модель обучается на размеченных примерах (вот человек, вот бот) и выводит границу решения в многомерном пространстве фич. Поэтому машинное обучение стало стандартом защиты от ботов: жёсткие правила описывают прошлое, а модель обобщает на то, чего в правилах ещё нет.

Самый частый сценарий поведенческих ботов в Рунете — накрутка поведенческих факторов в Яндексе: боты имитируют клики и глубокие сессии, чтобы поднять в выдаче чужой сайт. Как мы отсекаем такой трафик, описано на странице защиты от накрутки ПФ.

Насколько по-разному ведут себя человек и скрипт, мы разложили в статье «Поведенческие боты vs реальные пользователи: 20 отличий». Здесь сосредоточимся на технологии, которая эти отличия улавливает.

Почему правила и чёрные списки больше не ловят ботов

Сигнатурные методы — чёрные списки IP, проверка User-Agent, лимиты частоты запросов — ловят ботов по одному фиксированному признаку. Современный бот обходит каждый такой признак по отдельности, поэтому правила дают всё больше и пропусков, и ложных срабатываний.

Причина в том, что правило статично. Каждое правило — это гипотеза «бот делает X». Как только атакующий узнаёт правило, он перестаёт делать X. Конкретные способы обхода выглядят так:

  • User-Agent подделывается одной строкой — бот представляется свежим Chrome на Windows.

  • IP берётся из пула резидентных прокси, поэтому чёрные списки и ASN-фильтры промахиваются.

  • Headless-браузер (Puppeteer, Playwright) прячет признаки автоматизации stealth-патчами.

  • Частота размазывается: ботнет из тысяч адресов делает по 2–3 запроса с каждого.

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

Как именно боты имитируют человека — через headless-браузеры, BAS и ZennoPoster — мы разбирали в материале «Как бот имитирует пользователя».

Хотите увидеть, сколько ботов в вашем трафике прямо сейчас? Подключите BotHunt бесплатно на 14 дней — установка занимает минуту. Начать →

Какие поведенческие сигналы собирает антибот

Антибот собирает сигналы четырёх типов: движение мыши, скролл, работа с клавиатурой и тайминги взаимодействия. Дополнительно учитывается сессионный контекст — источник перехода, глубина просмотра и последовательность страниц.

Каждая группа даёт десятки числовых признаков. Сами по себе координаты курсора бесполезны — важна статистика: как быстро он движется, насколько траектория рваная, сколько времени прошло до первого клика. Ниже — карта основных групп сигналов и того, что в них выдаёт бота.

Группа сигналов

Примеры признаков

Что выдаёт бота

Движение мыши

Скорость, ускорение, кривизна траектории, дисперсия

Идеально гладкие кривые, нулевой «дребезг», телепорты курсора

Скролл

Скорость прокрутки, паузы, реверсы, ритм

Равномерный шаг, скролл без чтения, отсутствие пауз

Клавиатура

Dwell-time, flight-time, ритм набора

Одинаковые интервалы, вставка текста целиком

Тайминги

Время до первого действия, интервалы между кликами

Реакция быстрее 100 мс, машинная регулярность

Сессия

Источник, глубина, последовательность URL

Прямой заход на глубокие URL, обход в один порядок

Полный чек-лист поведенческих маркеров — в статье «8 признаков поведенческих ботов на сайте».

Карта поведенческих сигналов, которые собирает антибот: мышь, скролл, клавиатура, тайминги

Feature engineering: как события превращаются в признаки

Feature engineering — это превращение сырых событий (координат, временных меток, кодов клавиш) в числовые признаки, понятные модели. От качества фич точность зависит сильнее, чем от выбора алгоритма.

Возьмём движение мыши. Из последовательности точек (x, y, t) антибот считает мгновенную скорость и ускорение, рывок (jerk — третью производную координаты), дисперсию скорости, прямолинейность отрезков, кривизну и число микроостановок. У человека эти величины «шумные», у бота — сглаженные или, наоборот, неестественно дискретные.

Клавиатура описывается динамикой нажатий: dwell-time — сколько клавиша удержана, и flight-time — пауза между клавишами. Скролл — распределением скоростей и числом смен направления. Тайминги — временем до первого взаимодействия и интервалами между действиями. Каждый такой ряд сворачивается в набор статистик: среднее, дисперсию, перцентили.

Отдельный класс фич — энтропия и регулярность. Человеческое поведение обладает высокой энтропией: интервалы, траектории и паузы почти не повторяются. Низкая энтропия — один из самых устойчивых маркеров автоматизации, потому что скрипту трудно быть по-настоящему случайным.

Часть признаков считается прямо в браузере лёгким агентом, часть — на стороне сервиса, где виден весь поток запросов. Важно, что поведенческая аналитика работает с обезличенными сигналами: антибот анализирует, как двигается курсор и в каком ритме идут клики, а не что именно вводит пользователь. Персональные данные для детекции не нужны.

Пайплайн feature engineering: сырые события мыши превращаются в статистические признаки

Модели машинного обучения в защите от ботов

В защите от ботов применяют три класса моделей: supervised (обучение с учителем) для известных типов ботов, unsupervised для поиска аномалий и ансамбли, объединяющие их решения. Выбор зависит от того, есть ли размеченные примеры атаки.

Supervised-модели — градиентный бустинг (XGBoost, CatBoost, LightGBM) и случайный лес — работают по табличным фичам и дают высокую точность на знакомых паттернах. В исследованиях точность бинарной классификации «бот/человек» превышает 95% — так, в работе Positive Technologies по классификации веб-ботов средняя точность и полнота оказались выше этой планки.

Последовательности событий — траекторию мыши как временной ряд — хорошо описывают нейросети: 1D-CNN и LSTM. Для поиска новых ботов используют unsupervised-методы: Isolation Forest, автоэнкодеры и one-class SVM. Они учатся на «нормальном» трафике и флагуют отклонения, даже если такого бота раньше не встречали.

Модель

Тип обучения

Что ловит

Ограничение

Градиентный бустинг (XGBoost)

С учителем

Известные типы ботов по табличным фичам

Нужна разметка, слабее против новых атак

Случайный лес

С учителем

Устойчивая базовая классификация

Проигрывает бустингу на сложных границах

1D-CNN / LSTM

С учителем

Паттерны в последовательностях (мышь, клики)

Требует много данных и вычислений

Isolation Forest

Без учителя

Аномалии и ранее невиданные боты

Больше ложных срабатываний без калибровки

Автоэнкодер

Без учителя

Отклонения от нормального поведения

Сложен в подборе порога

На практике ни одна модель не используется в одиночку. Ансамбль объединяет вердикты: бустинг ловит знакомое, anomaly detection страхует от нового, а поверх работает мета-модель, взвешивающая сигналы. Такой каскад точнее любого одиночного классификатора.

Отдельно ценится интерпретируемость. Для градиентного бустинга есть инструменты вроде SHAP, которые показывают, какие признаки повлияли на конкретный вердикт. Это нужно не ради науки: когда модель ошибочно приняла человека за бота, инженеры должны понять почему и поправить порог — а не гадать над «чёрным ящиком».

Классы моделей машинного обучения для обнаружения ботов: supervised, unsupervised и ансамбли

BotHunt берёт обучение моделей, разметку и балансировку порогов на себя — вам не нужен дата-сайентист. Посмотреть тарифы →

Anomaly detection: как ловят ботов, которых ещё не видели

Anomaly detection (обнаружение аномалий) — это способ поймать бота, которого модель никогда не видела. Вместо примеров атак система учит профиль нормального поведения и отмечает всё, что сильно от него отклоняется.

Логика обратная supervised-подходу. Supervised-модель отвечает на вопрос «похоже ли это на известного бота». Anomaly detection отвечает «похоже ли это на нормального человека». Второй вопрос устойчивее к новым атакам: атакующий может не знать, как выглядит ваша норма трафика.

Технически это Isolation Forest (изолирует редкие точки за меньшее число разбиений), автоэнкодер (высокая ошибка восстановления означает аномалию) и кластеризация. Кластеризация особенно полезна против ботнетов: тысячи запросов с почти одинаковым поведенческим слепком образуют плотный кластер, невозможный для живой аудитории.

Пример из практики: во время атаки на сайт заходят сотни сессий с почти идентичной длиной, глубиной и таймингом кликов. Supervised-модель могла не встречать именно этот сценарий, но для anomaly detection такая однородность — явная аномалия. Живые пользователи никогда не ведут себя настолько синхронно.

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

Баланс false-positive: почему нельзя резать всё подозрительное

Главная метрика антибота — не точность, а доля ложных блокировок (false-positive rate). Заблокировать реального клиента дороже, чем пропустить одного бота: потерянный заказ бьёт по выручке напрямую.

Поэтому модель оценивают не одной цифрой. Смотрят на precision (какая доля заблокированных действительно боты), recall (какую долю ботов удалось поймать) и FPR (сколько людей ошибочно приняли за ботов). Между ними компромисс: агрессивный порог ловит больше ботов, но растит ложные блокировки.

Метрика

Что показывает

Почему важна

Precision

Доля реальных ботов среди заблокированных

Высокая precision — мало ложных блокировок

Recall

Доля пойманных ботов от всех ботов

Показывает, какую часть атаки пропустили

FPR (ложные срабатывания)

Доля людей, принятых за ботов

Ключевая метрика для бизнеса и выручки

F1-мера

Баланс precision и recall

Общая оценка качества модели

Инженерное решение — не бинарный вердикт, а риск-скор от 0 до 100 и каскад проверок. Явный человек проходит мгновенно. Явный бот блокируется. Серая зона получает мягкую проверку — невидимый challenge или капчу, — чтобы не наказывать сомнением живого пользователя.

Мы в BotHunt держим долю ложных блокировок ниже 0.1% при точности детекции 99.9%. Достигается это именно каскадом: тяжёлые модели считаются в фоне, а на живом запросе срабатывает быстрая совокупная оценка рисков по 40+ сигналам.

Есть и вторая причина, по которой антибот нельзя «настроить один раз», — дрейф данных. Боты эволюционируют, и модель, обученная год назад, постепенно теряет точность. Поэтому сервис переобучает модели на свежей телеметрии: новые способы обхода попадают в обучающую выборку, и защита подстраивается быстрее, чем это успел бы сделать ручной набор правил.

Как машинное обучение укладывается в 12 миллисекунд

Обучение модели — тяжёлая офлайн-задача, а вердикт на живом запросе должен занимать миллисекунды. Разделение этих двух режимов и позволяет ML работать в реальном времени без задержки для пользователя.

Тяжёлое обучение и переобучение идут в фоне на накопленной телеметрии. В онлайне работает облегчённая модель: компактный бустинг или заранее посчитанные веса, которым на инференс нужны микросекунды. Признаки берутся из feature store — часть считается на агенте в браузере, часть на стороне сервиса.

Ускоряют процесс и другие приёмы: кэш вердиктов (одинаковый отпечаток не пересчитывают каждый раз), edge-инференс ближе к пользователю и ранний выход, когда первые сигналы уже однозначны. Агент BotHunt весит менее 5 КБ и не блокирует отрисовку страницы.

В итоге решение принимается за 4–12 миллисекунд — быстрее, чем страница успевает отрисоваться. Пользователь не видит ни капчи, ни задержки; бот получает блок или challenge. Как мы формулируем на сайте: люди проходят, боты — нет.

Онлайн-инференс ML в реальном времени: вердикт за 4–12 миллисекунд

Как машинное обучение работает в BotHunt: гибрид сигналов

Поведенческий ML — мощный, но не единственный слой. В BotHunt он объединён с браузерным fingerprint, сетевыми отпечатками и репутацией IP: вместе это более 40 сигналов, которые сводятся в совокупную оценку рисков.

Почему гибрид, а не только поведение. Поведенческие фичи требуют, чтобы пользователь что-то сделал — подвигал мышью, поскроллил. На первом запросе, когда поведения ещё нет, решают fingerprint и сеть. Академические работы это подтверждают: комбинированный подход «поведенческий анализ + цифровые отпечатки» точнее любого метода по отдельности.

Браузерный отпечаток мы разбираем в статье про browser fingerprinting, сетевой слой — TLS и JA3 — в материале про JA3-fingerprinting. Поведенческая аналитика — третий слой этого стека, и именно машинное обучение связывает все три в единый вердикт.

На стороне клиента это выглядит как одна строка кода или готовый плагин: агент собирает сигналы, отправляет их в сервис и получает решение за миллисекунды. Всё обучение, разметка и балансировка порогов — на нашей стороне. Подробнее — на странице продукта BotHunt Antibot.

Защитите сайт от поведенческих ботов, парсеров и скликивания — без капчи и без нагрузки на пользователей. Подключить BotHunt →

Часто задаваемые вопросы

Может ли машинное обучение по ошибке заблокировать реального пользователя?

Да, такой риск есть, но он управляем. Долю ложных блокировок (FPR) снижают риск-скором и каскадом проверок: спорный трафик получает мягкий challenge, а не мгновенный блок. В BotHunt доля ложных срабатываний держится ниже 0.1%.

Чем ML-защита лучше капчи?

ML-защита работает невидимо: она оценивает поведение в фоне и не требует от человека решать головоломки. Капча — это фрикшен для всех посетителей, который роняет конверсию. Машинное обучение пропускает людей без единого клика, а капчу оставляет только для серой зоны.

Нужно ли обучать модель под мой сайт?

Нет. Модель обучена на межсайтовой телеметрии и умеет обобщать на любой трафик. Под ваш сайт она адаптируется автоматически, без участия дата-сайентиста и без ручной настройки признаков.

Можно ли обмануть поведенческую модель, двигая мышью «по-человечески»?

Частично и дорого. Подделать одну фичу — например, добавить дрожание курсору — реально. Но модель смотрит на десятки признаков сразу, включая энтропию, тайминги и клавиатурную динамику. Целостная имитация всех сигналов нестабильна и сама становится аномалией.

Какие признаки поведения сильнее всего выдают бота?

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

Работает ли ML против ботов, которых раньше не видели?

Да, за это отвечает anomaly detection. Модель учит профиль нормального поведения и флагует отклонения от него, не имея примеров конкретной атаки. Так ловят новые типы ботов и ботнеты, дающие плотные кластеры одинакового поведения.

Замедляет ли ML-анализ загрузку сайта?

Нет. Инференс укладывается в 4–12 миллисекунд, а агент весит менее 5 КБ и не блокирует отрисовку страницы. Тяжёлое обучение моделей идёт офлайн, на живом запросе работает облегчённая версия.

Нужен ли дата-сайентист, чтобы подключить ML-защиту?

Нет. Обучение моделей, конструирование признаков и подбор порогов — на стороне сервиса. От вас требуется установить агента: одна строка кода или плагин для WordPress за минуту.

О BotHunt

BotHunt — российский сервис защиты сайтов от поведенческих ботов, парсеров, спама и брутфорса. Подключается через DNS (без изменений на сервере) или одной строкой кода — плагином для WordPress, PHP-агентом или через Bitrix/OpenCart. Срабатывает в реальном времени и блокирует ботов до того, как они попадут в Метрику и повлияют на позиции в Яндексе. Точность детекции — 99,9%, ложных срабатываний — менее 0,05%.

Начать
14 дней бесплатно