Часть 1: Постоянно меняющееся поле битвы в обнаружении ботов
1.1. Введение: за пределами CAPTCHA
В сфере кибербезопасности обнаружение ботов превратилось из простой технической задачи в динамичную, высокорискованную «гонку вооружений».1 На протяжении многих лет стандартным рубежом обороны служили CAPTCHA — тесты, призванные отличить человека от машины. Однако сегодня этот рубеж рушится. По мере того как боты эволюционируют, чтобы идеально имитировать статические идентификаторы и с легкостью преодолевать когнитивные тесты, фокус защиты должен сместиться на анализ динамического, трудно подделываемого человеческого поведения. Это исследование посвящено одному из самых многообещающих направлений в этой новой парадигме: анализу движений мыши.
Проблема ботов — это не нишевый вопрос; это одна из главных проблем современного интернета. Вредоносный бот-трафик составляет значительную часть всего интернет-трафика, по некоторым оценкам, его доля достигает 37% и более.2 Эти автоматизированные программы влияют на производительность сайтов, искажают аналитику и, что самое опасное, создают серьезные угрозы безопасности.
Эволюцию ботов можно условно разделить на четыре поколения.4 Первые боты были простыми скриптами, которые легко идентифицировались по примитивным признакам. Однако боты четвертого поколения, с которыми мы сталкиваемся сегодня, — это высокотехнологичные инструменты. Они используют так называемые «безголовые» браузеры (headless browsers), которые могут обрабатывать веб-страницы так же, как и обычные браузеры, способны имитировать человеческое поведение и активно применяют искусственный интеллект для обхода традиционных защитных мер.2
Движущей силой этой эволюции является экономическая выгода. Цель современных операторов ботов — получение прибыли, что мотивирует их постоянно оценивать новые цели и адаптировать свои методы для обхода защит с минимальными вложениями.5 Этот экономический фактор и является двигателем гонки вооружений. Фундаментальный сдвиг в ландшафте ботов заключается в коммодитизации методов обхода защиты. Злоумышленникам больше не нужно создавать все свои сложные инструменты с нуля. Теперь они могут приобретать или арендовать услуги, предоставляющие «человеческие» характеристики по запросу, такие как резидентные прокси или API для решения CAPTCHA. Это значительно снижает порог входа для проведения сложных атак 2 и делает ландшафт угроз более демократичным и опасным.
Наблюдения показывают быстрый рост как сложности, так и объема бот-атак.2 Эта сложность напрямую связана с доступностью инструментов на базе ИИ и специализированных сервисов, таких как фермы для решения CAPTCHA и сети резидентных прокси.2 Доступность таких платформ «обхода защиты как услуги» означает, что главным ограничителем для злоумышленника становится не его технический навык, а его бюджет. Это коренным образом меняет оборонительную стратегию. Защитные меры, основанные на выявлении простых технических маркеров нечеловеческой активности, обречены на провал, поскольку злоумышленники теперь могут легко приобретать «легитимные» маркеры. Это создает логическую необходимость в новой парадигме защиты, которую мы и рассмотрим в данном исследовании, — поведенческом анализе.
1.2. Таксономия вредоносных ботов в эпоху ИИ
Чтобы эффективно бороться с врагом, необходимо его понимать. Современные вредоносные боты — это не монолитная угроза; они представляют собой разнообразную экосистему автоматизированных инструментов, каждый из которых предназначен для выполнения конкретных задач. Для их классификации можно использовать структуру, предложенную проектом OWASP Automated Threats to Web Applications, которая помогает систематизировать угрозы и понять их влияние на бизнес.8
Рост доступности ИИ особенно способствует увеличению числа «простых» бот-атак, делая создание скриптов и автоматизацию более доступными для неспециалистов.2 Ниже представлена классификация наиболее распространенных и разрушительных типов вредоносных ботов, связывающая их технические функции с последствиями для бизнеса.
Таблица 1: Классификация вредоносных ботов и их влияние на бизнес
ID OWASP | Название угрозы | Техническое описание | Основное влияние на бизнес | Пример сценария |
OAT-008 | Credential Stuffing (Подстановка учетных данных) | Массовые попытки входа в систему с использованием украденных пар логин/пароль из других утечек данных.8 | Захват учетных записей клиентов (ATO), финансовое мошенничество, репутационный ущерб, блокировка легитимных пользователей.5 | Бот тестирует миллионы украденных паролей из недавней утечки на странице входа вашего сайта, чтобы найти совпадающие аккаунты. |
OAT-011 | Scraping (Скрейпинг) | Автоматизированный сбор контента, цен, данных о товарах или другой проприетарной информации с сайта.8 | Утечка конфиденциальных данных, потеря конкурентного преимущества, создание сайтов-подделок, нагрузка на серверы.3 | Конкурент использует бота для ежедневного сбора цен на все ваши товары, чтобы автоматически устанавливать свои цены ниже. |
OAT-005 | Scalping (Скальпинг) | Использование ботов для массовой скупки товаров или услуг с ограниченным предложением (билеты, кроссовки, бронирования).8 | Недовольство клиентов, репутационные потери, появление «серого» рынка перепродажи товаров по завышенным ценам.9 | В момент начала продаж лимитированной серии кроссовок боты мгновенно скупают весь запас, не оставляя шансов обычным покупателям. |
OAT-021 | Denial of Inventory (Отказ в инвентаре) | Добавление товаров в корзину без намерения совершить покупку, что делает их недоступными для легитимных покупателей.8 | Потеря продаж, недовольство клиентов, искажение данных о спросе и остатках на складе. | Бот добавляет все доступные размеры популярного товара в корзину и удерживает их, не давая другим пользователям совершить покупку. |
OAT-003 | Ad Fraud (Рекламное мошенничество) | Генерация фальшивых кликов или показов рекламы для обмана рекламодателей и истощения их бюджетов.8 | Прямые финансовые потери, искажение аналитики рекламных кампаний, снижение ROI. | Бот-сеть генерирует тысячи кликов по вашей контекстной рекламе, быстро расходуя ваш дневной бюджет без привлечения реальных клиентов. |
OAT-019 | Account Creation (Создание учетных записей) | Массовое создание поддельных учетных записей для последующего использования в спаме, мошенничестве или для злоупотребления бонусами за регистрацию.8 | Спам, мошенничество, злоупотребление промо-акциями, размывание пользовательской базы, нагрузка на инфраструктуру. | Бот создает тысячи фейковых аккаунтов, чтобы получить приветственные бонусы, которые затем используются для мошеннических действий. |
Эта классификация показывает, что угрозы, создаваемые ботами, выходят далеко за рамки технических проблем и напрямую влияют на доходы, репутацию и отношения с клиентами. Понимание конкретных векторов атак является первым шагом к построению эффективной защиты.
1.3. Трещины в старой гвардии: почему традиционные методы защиты терпят неудачу
На протяжении десятилетий оборона от ботов строилась на двух столпах: CAPTCHA и репутации IP-адресов. Однако сегодня эти столпы рушатся под натиском современных технологий. Эти традиционные методы страдают от фундаментального недостатка: они контекстно-слепы. CAPTCHA проверяет пользователя лишь в один момент времени, игнорируя его поведение до и после теста. Репутация IP-адреса оценивает только источник запроса, не анализируя его суть. Именно эта нехватка контекстного анализа на уровне сессии является основной уязвимостью, которую сегодня эксплуатируют боты.
1.3.1. Поражение CAPTCHA
Когда-то CAPTCHA была надежным барьером, но сегодня она стала скорее неудобством для людей, чем преградой для машин. Причины ее неэффективности многогранны:
- Технический обход: Современные модели искусственного интеллекта, особенно мультимодальные нейросети и продвинутые системы оптического распознавания символов (OCR), способны решать текстовые и графические CAPTCHA с высокой точностью, зачастую быстрее и точнее человека.6 Недавние исследования показывают, что модели машинного обучения достигают 100% успеха в решении задач reCAPTCHAv2.17
- Экономический обход: Появились целые индустрии, известные как «фермы CAPTCHA» или «клик-фермы». Это сервисы, которые используют труд низкооплачиваемых работников для решения CAPTCHA в режиме реального времени от имени ботов. Для злоумышленника это превращает «тест на человечность» в простой вызов API, стоимость которого исчисляется долями цента за одно решение.12
- Подделка поведения: Более новые версии, такие как reCAPTCHAv3, которые работают в фоновом режиме и присваивают пользователю «оценку риска», также обходятся. Боты научились имитировать человекоподобную историю браузера, использовать реальные цифровые отпечатки (fingerprints) браузеров и симулировать правдоподобные движения курсора, чтобы получить высокую оценку доверия.6 Исследования показывают, что reCAPTCHAv2 и v3 в значительной степени полагаются на файлы cookie и историю браузера, которые можно легко подделать.17
- Стоимость для пользовательского опыта: Помимо своей неэффективности в качестве меры безопасности, CAPTCHA создает значительные неудобства для легитимных пользователей. Уровень неудачных попыток решения CAPTCHA среди людей колеблется от 15% до 50%, что приводит к снижению конверсии, росту отказов и общему ухудшению репутации бренда.15
1.3.2. Иллюзия репутации IP-адресов
Второй традиционный метод — блокировка или ограничение запросов на основе репутации IP-адреса — также утратил свою эффективность из-за появления сетей резидентных прокси.
- Расцвет резидентных прокси: Злоумышленники перешли от использования IP-адресов дата-центров, которые легко идентифицировать и заблокировать, к сетям резидентных прокси. Эти сети маршрутизируют трафик ботов через интернет-соединения обычных домашних пользователей, часто без их ведома. Устройства пользователей становятся частью прокси-сети через вредоносное ПО или через SDK, встроенные в «бесплатные» приложения и расширения для браузера.7
- Отмывание репутации: Поскольку эти IP-адреса принадлежат реальным интернет-провайдерам (таким как Comcast, AT&T) и используются легитимными пользователями, они имеют высокую репутацию и по умолчанию считаются доверенными.20 Блокировать такие IP-адреса — значит рисковать блокировкой настоящих клиентов.
- Дилемма ложноположительных срабатываний: Агрессивная блокировка резидентных IP-адресов несет высокий риск блокировки легитимных пользователей. Это может произойти, если несколько пользователей находятся за одним IP-адресом (например, из-за технологии Carrier-Grade NAT) или если устройство пользователя без его ведома стало частью прокси-сети.7 Это ставит защищающуюся сторону в безвыигрышное положение при использовании только черных списков IP.
- Масштаб и ротация: Провайдеры резидентных прокси предлагают доступ к миллионам IP-адресов по всему миру. Это позволяет злоумышленникам менять IP-адрес для каждого нового запроса, что делает традиционные методы ограничения скорости (rate limiting) на основе IP полностью бесполезными.7

Провал этих традиционных методов очевиден: они полагаются на единственный, статический и легко подделываемый фрагмент доказательства (решение головоломки, наличие «хорошего» IP). Надежная защита не может основываться на одной точке проверки. Она должна быть непрерывным процессом наблюдения и анализа на протяжении всей сессии пользователя. Она должна анализировать богатый поток поведенческих данных, который слишком сложен и многомерен, чтобы злоумышленник мог его экономически выгодно подделать. Это подводит нас к необходимости нового подхода — поведенческой биометрии.
Часть 2: Философия и наука поведенческой биометрии
2.1. Что такое поведенческий анализ?
Поведенческая биометрия представляет собой сдвиг парадигмы в верификации личности. Мы переходим от проверки того, «что вы знаете» (пароль) или «что у вас есть» (токен), к анализу того, «как вы себя ведете». Этот подход основан на идее, что каждый человек взаимодействует с цифровыми устройствами уникальным и измеримым образом.25
В отличие от физиологической биометрии (отпечатки пальцев, сетчатка глаза), которая основана на статических физических характеристиках, поведенческая биометрия анализирует динамические паттерны в действиях пользователя.25 Ключевыми факторами могут быть:
- Динамика движений мыши: скорость, плавность, траектория курсора.
- Динамика набора текста (keystroke dynamics): ритм, скорость набора, время удержания клавиш.
- Взаимодействие с сенсорным экраном: скорость и давление свайпов, используемые области экрана.
- Использование устройства: угол наклона смартфона, доминирующая рука.25
Главное преимущество этого подхода заключается в его адаптивности. Он не полагается на статические данные, такие как IP-адреса или строки User-Agent, а анализирует поведение в реальном времени для классификации угроз.28 Обмануть такую систему гораздо сложнее, поскольку она не зависит от одной точки отказа (как, например, решение головоломки), а анализирует непрерывный поток данных на протяжении всей сессии.30
Сила поведенческой биометрии заключается в ее пассивном и непрерывном характере. В отличие от CAPTCHA, которая является активным, одноразовым тестом, поведенческий анализ работает незаметно в фоновом режиме. Это дает два ключевых преимущества. Во-первых, создается гораздо более богатый, временной ряд данных, который сложнее подделать, чем один ответ на вызов. Во-вторых, этот процесс абсолютно незаметен для легитимного пользователя, что решает проблему негативного пользовательского опыта, присущую таким методам, как CAPTCHA.20
Непрерывный характер сбора данных генерирует многомерный поток информации во времени. Боту пришлось бы подделывать не одно действие, а целую последовательность статистически «человеческих» действий, что является экспоненциально более сложной задачей. Это значительно повышает «стоимость атаки» для оператора бота, что является одной из главных целей любой системы безопасности.9 Экономический баланс смещается обратно в пользу защищающейся стороны.
2.2. Динамика мыши: уникальная подпись в каждом движении
В рамках данного исследования мы сосредоточимся на динамике мыши как на основном источнике данных для нашей системы обнаружения ботов. Движение мыши — это удивительно богатый источник информации, и его анализ уходит корнями в человеческую физиологию и психологию.
Движения мыши, совершаемые человеком, являются продуктом сложной нейромоторной системы. Они не являются идеально прямыми или плавными. Вместо этого они состоят из множества микро-движений, пауз, колебаний и корректирующих действий, которые происходят на подсознательном уровне и являются уникальными для каждого индивида.31 Даже самое прямое движение руки человека содержит элемент случайности на микроскопическом уровне, который ботам крайне сложно имитировать.19
В отличие от этого, боты, даже самые продвинутые, склонны генерировать движения, которые слишком идеальны:
- Простые боты движутся по прямым линиям или математически совершенным кривым (например, дугам окружности).
- Их скорость и ускорение часто бывают равномерными или изменяются по предсказуемому закону.
- В их движениях отсутствует естественная случайность, присущая человеку.29
Идея анализа динамики мыши не нова и имеет долгую историю в академических исследованиях, посвященных аутентификации пользователей и обнаружению вторжений. Фундаментальные работы в этой области были опубликованы более десяти лет назад, заложив основу для современных систем.34

Ключевой вывод заключается в том, что сигнал содержится не в пункте назначения движения мыши, а в самом пути. И человек, и бот могут переместить курсор из точки А в точку Б, но как они это делают, принципиально отличается. Путь человека — это зашумленный, аналоговый сигнал, на который влияют когнитивные процессы, намерения и физиология. Путь бота — это чистый, цифровой сигнал, сгенерированный алгоритмом. Вся наша система обнаружения основана на построении фильтра, способного различать эти два типа сигналов.
Можно провести аналогию с подписью. Два человека могут написать одно и то же имя, но нажим, скорость и мельчайшие изгибы штрихов будут уникальными. Движение мыши — это цифровая подпись. Простой бот следует заранее запрограммированному пути (например, прямой линии). Более продвинутый бот может использовать кривую Безье.37 Еще более сложный бот может добавить случайный шум к траектории.38 Гонка вооружений в этой области заключается в способности бота генерировать все более реалистичный шум. Однако движения человека — это не просто случайный шум; это структурированный шум, подчиняющийся принципам управления моторикой (например, стремление к минимизации рывка).39 Следовательно, надежная модель обнаружения должна быть обучена на признаках, которые улавливают эту
структуру в шуме, а не просто наличие самого шума. Это создает необходимость в детальной разработке признаков, которую мы рассмотрим в Части 4.
Часть 3: Инженерный подход: сбор данных о движениях мыши на клиенте
Переходя от теории к практике, необходимо создать надежный механизм для сбора необработанных данных о движениях мыши непосредственно в браузере пользователя. Этот раздел представляет собой практическое руководство для разработчиков, охватывающее инструменты, методы оптимизации и лучшие практики для сбора высококачественных данных.
3.1. Инструментарий JavaScript: прослушивание событий мыши
Основой для сбора данных служат стандартные события мыши в JavaScript. Современный и наиболее правильный подход заключается в использовании метода document.addEventListener() для отслеживания трех ключевых событий: mousedown (нажатие кнопки мыши), mouseup (отпускание кнопки мыши) и mousemove (перемещение мыши).40
При срабатывании каждого из этих событий обработчик получает объект MouseEvent, который содержит исчерпывающую информацию о произошедшем событии. Для целей поведенческого анализа наиболее важны следующие его свойства.40
Таблица 2: Ключевые свойства объекта MouseEvent для обнаружения ботов
Свойство | Описание | Тип данных | Значение для анализа |
pageX / pageY | Координаты курсора (X и Y) относительно всего документа.45 | Number | Основные пространственные данные для отслеживания пути курсора. В отличие от clientX/Y, на них не влияет прокрутка страницы, что обеспечивает единую систему координат. |
button / buttons | Какая кнопка мыши нажата (button) или какие кнопки зажаты в данный момент (buttons).46 | Number | Крайне важны для разделения потока данных на осмысленные действия: простое перемещение, клик (нажатие + отпускание), перетаскивание (drag-and-drop). |
event.timeStamp | Временная метка создания события (в миллисекундах с момента загрузки страницы). | Number | Основные временные данные. Необходимы для расчета скорости, ускорения и других временных характеристик. (Примечание: далее мы рассмотрим более точный метод performance.now()). |
Эти свойства формируют основу необработанных данных — последовательность точек (x, y, t) с информацией о типе события, которая затем будет использоваться для извлечения поведенческих признаков.
3.2. Укрощение потока: производительная обработка событий
Сбор качественных данных бесполезен, если он приводит к сбою браузера пользователя. Событие mousemove может срабатывать с очень высокой частотой — десятки, а то и сотни раз в секунду, особенно при использовании игровых мышей с высокой частотой опроса или на мощных компьютерах.40 Выполнение сложной логики внутри каждого обработчика
mousemove может привести к снижению производительности, задержкам интерфейса и ухудшению пользовательского опыта, известному как “jank”.51
Решением этой проблемы является троттлинг (throttling). Это техника, которая ограничивает выполнение функции, позволяя ей срабатывать не чаще, чем один раз в заданный интервал времени (например, каждые 50 миллисекунд).53 Важно отличать троттлинг от
дебаунсинга (debouncing), который выполняет функцию только после периода бездействия. Для непрерывного сбора данных, как в нашем случае, подходит именно троттлинг, тогда как дебаунсинг лучше использовать для таких задач, как отправка поискового запроса после того, как пользователь перестал печатать.57
Ниже приведен пример реализации функции throttle на JavaScript и ее применение к обработчику mousemove.
JavaScript
/**
* Создает "замедленную" (throttled) версию функции, которая
* вызывается не чаще одного раза в указанный период (limit).
* @param {Function} func - Исходная функция.
* @param {number} limit - Интервал в миллисекундах.
* @returns {Function} - Новая, "замедленная" функция.
*/
function throttle(func, limit) {
let inThrottle;
return function() {
const args = arguments;
const context = this;
if (!inThrottle) {
func.apply(context, args);
inThrottle = true;
setTimeout(() => inThrottle = false, limit);
}
};
}
// Пример использования:
// Обработчик будет вызываться не чаще, чем раз в 50 мс.
document.addEventListener('mousemove', throttle(function(event) {
// Здесь будет логика сбора данных
console.log('Mouse moved:', event.pageX, event.pageY);
}, 50));
Выбор интервала для троттлинга — это критически важный параметр, представляющий собой прямой компромисс между разрешением данных и нагрузкой на производительность. Короткий интервал (например, 20 мс) обеспечивает более детализированную траекторию, что потенциально может повысить точность обнаружения, но создает большую нагрузку на процессор. Длинный интервал (например, 100 мс) легче для системы, но может пропустить тонкие, высокочастотные движения, характерные для человека. Оптимальное значение не является универсальным и может зависеть от целевого устройства (мобильное или десктоп) и конкретных вычисляемых признаков. Промышленная система может даже динамически подстраивать этот интервал.
3.3. Обеспечение целостности данных: временные метки и передача
Качество нашего анализа напрямую зависит от качества собранных данных. Два аспекта здесь имеют решающее значение: получение точных временных меток и надежная отправка данных на сервер.
- Точные временные метки: Стандартный метод Date.now() возвращает время в миллисекундах с начала эпохи Unix. Он привязан к системным часам, имеет низкое разрешение (целые миллисекунды) и может быть подвержен корректировкам времени, что делает его ненадежным для точных измерений.60 Гораздо лучшим выбором является
performance.now(). Этот метод предоставляет временные метки высокого разрешения (с точностью до микросекунд), которые монотонно возрастают с момента начала навигации по странице.60 Это абсолютно необходимо для точного расчета кинематических характеристик, таких как ускорение и рывок. - Надежная передача данных: Попытка отправить собранные данные с помощью стандартных запросов fetch или XMLHttpRequest во время событий выгрузки страницы (unload, beforeunload) крайне ненадежна. Браузер может отменить такой запрос, чтобы не задерживать переход на следующую страницу, и данные будут потеряны.65
Для этой задачи был специально разработан Beacon API и его метод navigator.sendBeacon(). Он позволяет асинхронно отправить небольшой объем данных на сервер. Браузер гарантирует, что запрос будет поставлен в очередь и отправлен, даже если страница уже выгружена, при этом не блокируя навигацию.65 Рекомендуется использовать этот метод в сочетании с событиями
visibilitychange или pagehide, которые более надежно срабатывают при уходе пользователя со страницы.
Сочетание performance.now() и navigator.sendBeacon() формирует основу криминалистически надежного конвейера сбора данных. performance.now() обеспечивает временную целостность данных внутри сессии, а sendBeacon() — целостность доставки данных в конце сессии. Пренебрежение любым из этих компонентов может исказить весь последующий анализ.
3.4. Практический скрипт для сбора данных
Объединим все концепции из этой части в единый, готовый к использованию скрипт на JavaScript. Этот скрипт будет собирать данные о движениях и кликах мыши, оптимизировать производительность с помощью троттлинга и надежно отправлять данные на сервер при закрытии страницы.
JavaScript
(function() {
// --- Конфигурация ---
const TRACKING_ENDPOINT = '/api/mouse-tracking'; // URL для отправки данных
const THROTTLE_INTERVAL = 50; // Интервал троттлинга для mousemove в мс
const BATCH_SIZE = 100; // Количество событий для отправки в одном пакете (опционально)
// --- Хранилище данных ---
let mouseEvents =;
// --- Функция троттлинга ---
function throttle(func, limit) {
let inThrottle;
return function() {
const args = arguments;
const context = this;
if (!inThrottle) {
func.apply(context, args);
inThrottle = true;
setTimeout(() => inThrottle = false, limit);
}
};
}
// --- Функция для записи события ---
function recordEvent(event) {
mouseEvents.push({
type: event.type,
x: event.pageX,
y: event.pageY,
// Используем performance.now() для высокоточной временной метки
t: performance.now(),
// Свойство 'button' для mousedown/mouseup, 'buttons' для mousemove
btn: event.type!== 'mousemove'? event.button : event.buttons
});
// Опционально: отправка данных пакетами, чтобы не ждать закрытия страницы
if (mouseEvents.length >= BATCH_SIZE) {
sendData();
}
}
// --- Функция для отправки данных ---
function sendData() {
if (mouseEvents.length === 0) {
return;
}
// Используем navigator.sendBeacon для надежной отправки
if (navigator.sendBeacon) {
const dataToSend = JSON.stringify(mouseEvents);
navigator.sendBeacon(TRACKING_ENDPOINT, dataToSend);
mouseEvents =; // Очищаем массив после отправки
}
}
// --- Установка обработчиков событий ---
// mousemove обрабатывается с троттлингом
document.addEventListener('mousemove', throttle(recordEvent, THROTTLE_INTERVAL), true);
// Клики и нажатия записываются без троттлинга
document.addEventListener('mousedown', recordEvent, true);
document.addEventListener('mouseup', recordEvent, true);
// Отправляем оставшиеся данные, когда пользователь уходит со страницы
// 'visibilitychange' является более надежным событием, чем 'unload'
document.addEventListener('visibilitychange', () => {
if (document.visibilityState === 'hidden') {
sendData();
}
}, true);
})();
Этот скрипт определяет следующую структуру данных для одного события: Event = {type: string, x: int, y: int, t: float, btn: int}. Полезная нагрузка, отправляемая на сервер, представляет собой массив таких объектов в формате JSON: [Event, Event,…].68 Эта структура эффективна и содержит всю необходимую информацию для последующей разработки признаков.
Часть 4: От сырых данных к ценной информации: разработка признаков (Feature Engineering)
Собранные нами данные — это всего лишь поток координат и временных меток. Чтобы превратить их в информацию, на основе которой можно принимать решения, необходимо извлечь из них осмысленные характеристики или признаки (features). Этот процесс, известный как feature engineering, является аналитическим ядром нашей системы. Мы преобразуем сырые данные в структурированный набор признаков, который можно подать на вход модели машинного обучения.

4.1. Язык движений: определение категорий признаков
Анализ научной литературы по биометрии движений мыши позволяет выделить четыре основные категории признаков, которые комплексно описывают поведение пользователя 69:
- Кинематические признаки: Описывают физику движения (скорость, ускорение, рывок). Они отвечают на вопрос «Как быстро и как плавно двигался курсор?».
- Геометрические признаки: Описывают форму траектории движения (прямолинейность, кривизна). Они отвечают на вопрос «По какому пути двигался курсор?».
- Временные признаки: Описывают временные аспекты взаимодействия (паузы, длительность кликов). Они отвечают на вопрос «Когда и с какой периодичностью происходили действия?».
- Статистические признаки: Обобщенные метрики, характеризующие свойства движения (изменчивость, случайность). Они отвечают на вопрос «Насколько предсказуемо было движение?».

Рассмотрим каждую из этих категорий подробно.
4.2. Кинематические признаки: физика курсора
Эти признаки описывают динамику движения курсора во времени. Для их расчета мы используем последовательность точек (xi,yi,ti), полученную от нашего скрипта сбора данных. Поскольку данные дискретны, мы будем использовать конечно-разностные аппроксимации производных.69
- Скорость (Velocity): Мгновенная скорость в точке i рассчитывается как расстояние, пройденное от предыдущей точки, деленное на прошедшее время.
vi=ti−ti−1(xi−xi−1)2+(yi−yi−1)2 - Ускорение (Acceleration): Изменение скорости во времени.
ai=ti−ti−1vi−vi−1 - Рывок (Jerk): Изменение ускорения во времени (третья производная от положения).
ji=ti−ti−1ai−ai−1
Рывок является одним из ключевых признаков для различения человека и бота. В то время как бот может быть запрограммирован на движение с определенной скоростью или даже с плавным профилем ускорения, имитация сложных и часто подсознательных паттернов рывка, характерных для человеческой моторики, чрезвычайно сложна. Движения человека оптимизированы для плавности (минимизации рывка), но в то же время они наполнены корректирующими суб-движениями, которые создают характерные всплески в профиле рывка.39 У ботов же рывок либо нулевой (при постоянном ускорении), либо представляет собой неструктурированный, искусственный шум.
Движения человека, с одной стороны, стремятся к плавности, что математически выражается в низком значении рывка.39 С другой стороны, эти движения несовершенны и включают постоянные мелкие коррекции 77, которые проявляются в виде пиков на графике рывка. Следовательно, не просто среднее значение, а
распределение значений рывка (например, в основном низкие значения с характерными всплесками) является гораздо более надежным отпечатком человека, чем средняя скорость или ускорение. Простой бот будет иметь совершенно иное и более примитивное распределение рывка.
4.3. Геометрические признаки: форма пути
Эти признаки описывают геометрию траектории мыши независимо от времени. Они помогают понять, насколько прямым или извилистым был путь курсора.71
- Прямолинейность траектории (Trajectory Straightness): Это отношение евклидова расстояния между начальной и конечной точками траектории к фактической длине пройденного пути.
$$ \text{Прямолинейность} = \frac{D_{\text{евклидово}}}{D_{\text{путь}}} = \frac{\sqrt{(x_n – x_0)^2 + (y_n – y_0)^2}}{\sum_{i=1}^{n} \sqrt{(x_i – x_{i-1})^2 + (y_i – y_{i-1})^2}} $$
Значение, близкое к 1, указывает на очень прямое движение, тогда как низкое значение свидетельствует об извилистом пути.78 - Кривизна (Curvature): Скорость изменения направления траектории. Ее можно рассчитать для каждой точки и затем агрегировать (например, найти среднее, максимальное значение, стандартное отклонение).
- Количество точек перегиба (Inflection Points): Точки, в которых кривизна меняет свой знак. Это может указывать на колебания или изменения в направлении движения.
Геометрические признаки особенно эффективны для обнаружения ботов низкой и средней сложности. Простой бот часто движется по идеально прямой линии (прямолинейность = 1, кривизна = 0).33 Более продвинутый бот может использовать простую кривую. Однако эти признаки менее эффективны против современных ботов, способных генерировать сложные, зашумленные траектории.38 Это подчеркивает необходимость использования многогранного набора признаков. Геометрические признаки сами по себе недостаточны; их необходимо комбинировать с кинематическими. Бот может нарисовать кривую линию, но сможет ли он сделать это с человекоподобным профилем скорости и рывка? Скорее всего, нет. Сила заключается именно в комбинации признаков.
4.4. Временные признаки: ритм взаимодействия
Эти признаки проливают свет на временные аспекты поведения пользователя, которые часто связаны с его когнитивными процессами.
- Анализ пауз (Pause Analysis): Паузы — это периоды бездействия в рамках одной траектории. Их можно обнаружить, если время между двумя последовательными событиями mousemove превышает определенный порог (например, 100-200 мс). После обнаружения пауз можно извлечь такие признаки, как количество пауз, средняя длительность паузы и общее время пауз.72 Паузы могут указывать на нерешительность пользователя, чтение информации на экране или поиск цели.
- Длительность клика (Click Duration): Время, прошедшее между событиями mousedown и mouseup.
ДлительностьКлика=tmouseup−tmousedown
Этот простой признак может быть удивительно уникальным для разных пользователей и сложным для реалистичного моделирования простыми ботами.72 - Время между действиями: Время между окончанием одного действия (например, клика) и началом следующего (например, нового движения).
Временные признаки предоставляют окно в когнитивное состояние пользователя, а не только в его физические движения. Человек делает паузу, чтобы подумать, прочитать или найти цель. У бота, обладающего идеальным знанием страницы, нет причин для таких пауз. «Мышление» бота происходит мгновенно; он уже знает координаты своей цели. Поэтому траектория бота либо не будет содержать пауз, либо будет иметь искусственные, регулярно расположенные паузы. Паттерн пауз у человека будет нерегулярным и коррелировать с контентом на странице. Это делает распределение и местоположение пауз богатым источником признаков.
4.5. Статистические признаки: количественная оценка случайности и изменчивости
Эта категория признаков обобщает свойства движения, вычисляя агрегированные метрики по всей траектории или сессии.
- Агрегаты: Для каждого кинематического и геометрического признака, рассчитанного вдоль траектории (например, для скорости в каждой точке), вычисляются статистические показатели: среднее значение, стандартное отклонение, минимум, максимум, медиана.71 Стандартное отклонение особенно важно, так как оно измеряет изменчивость, которая у людей, как правило, выше.
- Энтропия (Entropy): Энтропия — это мера непредсказуемости или случайности. Траекторию мыши можно дискретизировать (например, квантовать изменения направления или скорости по ячейкам), а затем рассчитать энтропию Шеннона для полученной последовательности. Ожидается, что движения человека, будучи менее предсказуемыми, будут иметь более высокую энтропию, чем простые, повторяющиеся движения бота.37
Статистические признаки, особенно энтропия, переносят анализ с описания того, каким было движение, на количественную оценку того, насколько предсказуемым оно было. Это более высокий уровень абстракции, который особенно устойчив к ботам, запрограммированным с простыми правилами «очеловечивания». Бот может быть запрограммирован на изменение скорости, но паттерн этого изменения все равно может быть очень предсказуемым и, следовательно, иметь низкую энтропию. Энтропия действует как мощный мета-признак, который может уловить «суть человечности» (или ее отсутствие) так, как это могут упустить отдельные кинематические или геометрические признаки.
Часть 5: Механизм принятия решений: применение машинного обучения
После того как мы извлекли из сырых данных вектор признаков, описывающий сессию пользователя, нам необходима модель, которая сможет принять решение: это человек или бот? На этом этапе в игру вступает машинное обучение.
5.1. Построение модели: от признаков к классификации
Выбор модели зависит от подхода к данным. Мы можем использовать как классические модели машинного обучения, работающие с набором разработанных признаков, так и модели глубокого обучения, способные работать непосредственно с последовательностями данных.
- Традиционные модели машинного обучения: Если мы используем подход, основанный на разработанных признаках (feature-based), то для задачи бинарной классификации (человек/бот) хорошо подходят такие алгоритмы, как Support Vector Machines (SVM), Random Forest (Случайный лес) и K-Nearest Neighbors (KNN). Эти модели хорошо изучены и показывают высокую эффективность при работе с качественным набором признаков.33 Случайный лес часто является сильным базовым выбором благодаря своей устойчивости к переобучению и способности работать с большим количеством признаков.
- Модели глубокого обучения: Для подхода, основанного на последовательностях (sequence-based), где на вход модели подаются сырые или минимально обработанные временные ряды данных, более подходят нейросетевые архитектуры.
- LSTM (Long Short-Term Memory): Рекуррентные нейронные сети типа LSTM идеально подходят для анализа последовательных данных, таких как траектория мыши. Они способны улавливать временные зависимости в данных, что крайне важно для поведенческого анализа.33
- CNN (Convolutional Neural Networks): Сверточные нейронные сети также могут быть эффективно применены. Для этого траектория мыши предварительно преобразуется в изображение, где пространственная и кинематическая информация (например, координаты, скорость, ускорение) кодируется в виде пикселей и цветовых каналов. Этот инновационный подход показал высокую точность в обнаружении даже продвинутых ботов, поскольку CNN отлично справляются с извлечением пространственных паттернов из изображений.33
5.2. Обучение надежного детектора
Модель хороша лишь настолько, насколько хороши данные, на которых она обучалась. Создание набора данных для обучения надежного и обобщающего детектора — это нетривиальная задача.
- Требования к данным: Для обучения надежной модели требуется большой и разнообразный набор данных, включающий как взаимодействия реальных людей, так и действия ботов.87 Человеческие данные должны охватывать различные типы устройств, браузеров и стилей взаимодействия.
- Синтез данных ботов: Простое использование данных от ботов, движущихся по прямой линии, для обучения недостаточно. Модель должна быть обучена на данных от сложных ботов, которые пытаются имитировать человеческое поведение. Современные подходы включают использование генеративно-состязательных сетей (GAN) или диффузионных моделей для создания очень реалистичных и сложных для обнаружения синтетических траекторий ботов.32 Обучение на таких «продвинутых» данных позволяет модели научиться распознавать более тонкие аномалии и является ключевым аспектом современной «гонки вооружений» в этой области.
5.3. Оценка и выбор порога
Как понять, что наша модель работает хорошо? И как настроить ее в соответствии с потребностями бизнеса? Для этого используются стандартные метрики оценки и настраиваемый порог принятия решения.
- Ключевые метрики: Для оценки бинарного классификатора в контексте обнаружения ботов используются следующие метрики:
- True Positive Rate (TPR) / Recall (Полнота): Процент ботов, корректно определенных как боты.
- True Negative Rate (TNR) / Specificity (Специфичность): Процент людей, корректно определенных как люди.
- False Acceptance Rate (FAR): Процент ботов, ошибочно классифицированных как люди (равен 1−TPR). Это ошибка безопасности.
- False Rejection Rate (FRR): Процент людей, ошибочно классифицированных как боты (равен 1−TNR). Это ошибка пользовательского опыта.34
- AUC (Area Under the Curve): Площадь под ROC-кривой. Это единая метрика, которая обобщает производительность модели при всех возможных порогах. AUC, равный 1.0, соответствует идеальному классификатору.89
Модель машинного обучения обычно выдает не бинарный ответ (0 или 1), а вероятность принадлежности к классу «бот» (например, число от 0.0 до 1.0). Чтобы принять окончательное решение, необходимо выбрать порог (threshold). Например, можно решить, что все сессии с оценкой выше 0.8 будут считаться ботами и блокироваться.
Выбор этого порога — это не техническое, а бизнес-решение. Существует неизбежный компромисс между безопасностью (низкий FAR) и пользовательским опытом (низкий FRR).
- Снижение порога (например, до 0.6) позволит поймать больше ботов (увеличить TPR и снизить FAR), но также приведет к тому, что больше реальных пользователей будут ошибочно помечены как боты (увеличится FRR).
- Повышение порога (например, до 0.9) будет иметь обратный эффект: меньше ложных блокировок для людей, но больше пропущенных ботов.

Банк может смириться с более высоким FRR (доставив неудобства нескольким реальным клиентам дополнительными проверками), чтобы достичь чрезвычайно низкого FAR (не пропустив ни одного мошеннического бота). В то же время, сайт электронной коммерции может принять немного более высокий FAR, чтобы обеспечить беспрепятственный опыт для почти всех легитимных клиентов. Роль специалиста по данным — предоставить этот компромисс (часто в виде ROC-кривой) бизнес-руководителям, чтобы они могли принять обоснованное решение, соответствующее их толерантности к риску.
Часть 6: Заключение и будущие направления
6.1. Многоуровневая стратегия защиты
Важно понимать, что анализ динамики мыши, несмотря на всю его мощь, не является «серебряной пулей». Это один, хотя и очень важный, уровень в современной архитектуре безопасности. Наиболее эффективный подход к защите от ботов — это стратегия эшелонированной обороны (defense-in-depth).
Анализ движений мыши должен быть интегрирован с другими сигналами и методами защиты для создания комплексного решения. К таким методам относятся:
- Защита на уровне API: Боты все чаще нацеливаются на API, поскольку это позволяет им обходить клиентскую логику. Специализированные решения для защиты API являются обязательным компонентом.91
- Цифровые отпечатки устройств (Device Fingerprinting): Анализ уникальных характеристик браузера и устройства пользователя для выявления аномалий и попыток подмены.9
- Традиционные меры безопасности: Веб-приложение все еще должно быть защищено от классических уязвимостей, таких как инъекции или межсайтовый скриптинг.
Комбинируя поведенческий анализ с этими методами, можно построить надежную систему, которая будет сложна для обхода даже для самых продвинутых злоумышленников.9
6.2. Взгляд в будущее: эволюция поведенческого обнаружения
«Гонка вооружений» между создателями ботов и специалистами по безопасности будет продолжаться. С развитием искусственного интеллекта появятся еще более совершенные ИИ-агенты, способные имитировать человеческое поведение с поразительной точностью.2
Будущее в этой области лежит в мультимодальном поведенческом анализе. Это означает объединение данных из нескольких источников для создания еще более надежного и многомерного поведенческого отпечатка. Системы будущего будут одновременно анализировать:
- Динамику мыши: как описано в этом исследовании.
- Динамику набора текста: ритм и скорость печати.
- Паттерны прокрутки: как пользователь прокручивает страницу.
- Жесты на сенсорном экране: для мобильных устройств.
Объединение этих сигналов создаст профиль пользователя, который будет практически невозможно подделать, поскольку он будет отражать уникальные нейромоторные и когнитивные характеристики человека в различных модальностях взаимодействия.31
Конечная цель — создать системы безопасности, которые настолько органично интегрированы в пользовательский опыт, что становятся практически невидимыми для легитимных пользователей, но при этом представляют собой непреодолимый барьер для автоматизированных атак. Путь к этой цели лежит через глубокое понимание человеческого поведения и применение передовых методов машинного обучения для его анализа. Анализ движений мыши — это важный шаг на этом пути.
Источники
- Web Bot Detection, Privacy Challenges, and Regulatory Compliance under the GDPR and AI Act – PMC – PubMed Central, дата последнего обращения: августа 4, 2025, https://pmc.ncbi.nlm.nih.gov/articles/PMC11962364/
- 2025 Imperva Bad Bot Report: How AI is Supercharging the Bot Threat, дата последнего обращения: августа 4, 2025, https://www.imperva.com/blog/2025-imperva-bad-bot-report-how-ai-is-supercharging-the-bot-threat/
- Bots Compose 42% of Overall Web Traffic; Nearly Two-Thirds Are Malicious | Akamai, дата последнего обращения: августа 4, 2025, https://www.akamai.com/newsroom/press-release/bots-compose-42-percent-of-web-traffic-nearly-two-thirds-are-malicious
- Understanding Bot Detection and Its Techniques | Indusface, дата последнего обращения: августа 4, 2025, https://www.indusface.com/learning/what-is-bot-detection/
- Bot Detection and Security: Stop Automated Attacks – F5 Networks, дата последнего обращения: августа 4, 2025, https://www.f5.com/resources/solution-guides/bot-detection-and-security
- CAPTCHA’s Demise: Multi-Modal AI is Breaking Traditional Bot Management – Kasada, дата последнего обращения: августа 4, 2025, https://www.kasada.io/captchas-demise-multi-modal-ai/
- Using machine learning to detect bot attacks that leverage residential proxies, дата последнего обращения: августа 4, 2025, https://blog.cloudflare.com/residential-proxy-bot-detection-using-machine-learning/
- OWASP Automated Threats to Web Applications, дата последнего обращения: августа 4, 2025, https://owasp.org/www-project-automated-threats-to-web-applications/
- What is Bot Detection? – VMware, дата последнего обращения: августа 4, 2025, https://www.vmware.com/topics/bot-detection
- From Bad Bots to Malicious Scripts: The Effectiveness of Specialized Defenses | Akamai, дата последнего обращения: августа 4, 2025, https://www.akamai.com/site/en/documents/white-paper/from-bad-bots-to-malicious-scripts.pdf
- 2023 Imperva Bad Bot Report, дата последнего обращения: августа 4, 2025, https://www.imperva.com/resources/reports/2023-Imperva-Bad-Bot-Report.pdf
- ReCAPTCHA Alternative: How to Stop Bad Bots For Good – Kasada, дата последнего обращения: августа 4, 2025, https://www.kasada.io/recaptcha-alternative/
- Bot Manager | Bot Detection, Protection, and Management – Akamai, дата последнего обращения: августа 4, 2025, https://www.akamai.com/products/bot-manager
- Residential Proxies – The Growing Threat to Ad Campaigns – Peakhour, дата последнего обращения: августа 4, 2025, https://www.peakhour.io/blog/residential-proxy-ad-fraud/
- CAPTCHA and reCAPTCHA: How Fraudsters Bypass It – Anura.io, дата последнего обращения: августа 4, 2025, https://www.anura.io/blog/captcha-and-recaptcha-how-fraudsters-bypass-it
- How to Bypass Captchas in 2025: Proven Methods – Blat.ai, дата последнего обращения: августа 4, 2025, https://www.blat.ai/blog/how-to-bypass-captchas-in-2025-proven-methods
- [2409.08831] Breaking reCAPTCHAv2 – arXiv, дата последнего обращения: августа 4, 2025, https://arxiv.org/abs/2409.08831
- Breaking reCAPTCHAv2 – arXiv, дата последнего обращения: августа 4, 2025, https://arxiv.org/html/2409.08831v1
- How CAPTCHAs work | What does CAPTCHA mean? – Cloudflare, дата последнего обращения: августа 4, 2025, https://www.cloudflare.com/learning/bots/how-captchas-work/
- Understanding Bot Mitigation Limitations | Enzoic, дата последнего обращения: августа 4, 2025, https://www.enzoic.com/blog/bot-mitigation/
- The Rise of Residential Proxies as a Cybercrime Enabler | Trend Micro (US), дата последнего обращения: августа 4, 2025, https://www.trendmicro.com/vinfo/us/security/news/cybercrime-and-digital-threats/the-rise-of-residential-proxies-and-its-impact-on-cyber-risk-exposure-management
- How proxy providers obtain residential proxies. – DataDome, дата последнего обращения: августа 4, 2025, https://datadome.co/bot-management-protection/how-proxy-providers-get-residential-proxies/
- Mitigating the risks of residential proxies | Kaspersky official blog, дата последнего обращения: августа 4, 2025, https://usa.kaspersky.com/blog/residential-proxies-risks-and-mitigation/29996/
- Proxies for botting – Residential proxies – DataImpulse, дата последнего обращения: августа 4, 2025, https://dataimpulse.com/use-cases/proxies-for-botting/
- What is Behavioral Biometrics? – IBM, дата последнего обращения: августа 4, 2025, https://www.ibm.com/think/topics/behavioral-biometrics
- Mouse Dynamics Behavioral Biometrics: A Survey – arXiv, дата последнего обращения: августа 4, 2025, https://arxiv.org/html/2208.09061v2
- (PDF) Mouse Dynamics Behavioral Biometrics: A Survey – ResearchGate, дата последнего обращения: августа 4, 2025, https://www.researchgate.net/publication/362837295_Mouse_Dynamics_Behavioral_Biometrics_A_Survey
- prophaze.com, дата последнего обращения: августа 4, 2025, https://prophaze.com/learn/bots/what-is-behavioral-analysis-in-bot-detection/#:~:text=Behavioral%20analysis%20in%20bot%20detection%20offers%20a%20powerful%2C%20adaptive%20solution,classify%20threats%20in%20real%20time.
- What Is Behavioral Analysis in Bot Detection? | Prophaze Learning Center, дата последнего обращения: августа 4, 2025, https://prophaze.com/learn/bots/what-is-behavioral-analysis-in-bot-detection/
- Are bot detection systems failing? The rise of AI agents poses new challenges, дата последнего обращения: августа 4, 2025, https://community.latenode.com/t/are-bot-detection-systems-failing-the-rise-of-ai-agents-poses-new-challenges/17001
- What Is Mouse Dynamics & How It Works – TypingDNA, дата последнего обращения: августа 4, 2025, https://www.typingdna.com/glossary/what-is-mouse-dynamics-and-how-it-works
- BeCAPTCHA-Mouse: Synthetic Mouse Trajectories and Improved Bot Detection – arXiv, дата последнего обращения: августа 4, 2025, https://arxiv.org/pdf/2005.00890
- (PDF) Mouse Dynamics Based Bot Detection Using Sequence Learning – ResearchGate, дата последнего обращения: августа 4, 2025, https://www.researchgate.net/publication/354468819_Mouse_Dynamics_Based_Bot_Detection_Using_Sequence_Learning
- A New Biometric Technology Based on Mouse Dynamics | Request PDF – ResearchGate, дата последнего обращения: августа 4, 2025, https://www.researchgate.net/publication/3449422_A_New_Biometric_Technology_Based_on_Mouse_Dynamics
- User Authentication Method Based on Keystroke Dynamics and Mouse Dynamics with Scene-Irrelated Features in Hybrid Scenes – PMC, дата последнего обращения: августа 4, 2025, https://pmc.ncbi.nlm.nih.gov/articles/PMC9460698/
- User Identity Verification via Mouse Dynamics – CiteSeerX, дата последнего обращения: августа 4, 2025, https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=5582f88caf5c2c7d9537e284f7a4e7bc64462ccd
- DMTG: A Human-Like Mouse Trajectory Generation Bot Based on Entropy-Controlled Diffusion Networks – arXiv, дата последнего обращения: августа 4, 2025, https://arxiv.org/html/2410.18233v1
- A Deep Learning Approach to Web Bot Detection Using Mouse Behavioral Biometrics, дата последнего обращения: августа 4, 2025, https://www.researchgate.net/publication/336270420_A_Deep_Learning_Approach_to_Web_Bot_Detection_Using_Mouse_Behavioral_Biometrics
- jerk jounce 240321.pdf – Penn State Mechanical Engineering, дата последнего обращения: августа 4, 2025, https://www.me.psu.edu/sommer/jerk%20jounce%20240321.pdf
- Element: mousemove event – Web APIs | MDN, дата последнего обращения: августа 4, 2025, https://developer.mozilla.org/en-US/docs/Web/API/Element/mousemove_event
- EventTarget: addEventListener() method – Web APIs | MDN, дата последнего обращения: августа 4, 2025, https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
- MouseEvent – Web APIs | MDN, дата последнего обращения: августа 4, 2025, https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent
- Element: mousedown event – Web APIs | MDN, дата последнего обращения: августа 4, 2025, https://developer.mozilla.org/en-US/docs/Web/API/Element/mousedown_event
- Element: mouseup event – Web APIs | MDN, дата последнего обращения: августа 4, 2025, https://developer.mozilla.org/en-US/docs/Web/API/Element/mouseup_event
- MouseEvent: pageX property – Web APIs | MDN, дата последнего обращения: августа 4, 2025, https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/pageX
- MouseEvent: button property – Web APIs | MDN, дата последнего обращения: августа 4, 2025, https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button
- Mouse events – The Modern JavaScript Tutorial, дата последнего обращения: августа 4, 2025, https://javascript.info/mouse-events-basics
- MouseEvent: buttons property – Web APIs | MDN, дата последнего обращения: августа 4, 2025, https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons
- What is the most processing efficient way to store mouse movement data in JavaScript?, дата последнего обращения: августа 4, 2025, https://stackoverflow.com/questions/7749538/what-is-the-most-processing-efficient-way-to-store-mouse-movement-data-in-javasc
- Debouncing and Throttling Explained Through Examples – CSS-Tricks, дата последнего обращения: августа 4, 2025, https://css-tricks.com/debouncing-throttling-explained-examples/
- High-performance input handling on the web | Read the Tea Leaves – Nolan Lawson, дата последнего обращения: августа 4, 2025, https://nolanlawson.com/2019/08/11/high-performance-input-handling-on-the-web/
- Understanding Throttle in JavaScript – DEV Community, дата последнего обращения: августа 4, 2025, https://dev.to/jakaria/understanding-throttle-in-javascript-3jba
- Explain the concept of debouncing and throttling | Quiz Interview Questions with Solutions, дата последнего обращения: августа 4, 2025, https://www.greatfrontend.com/questions/quiz/explain-the-concept-of-debouncing-and-throttling
- Throttling and Debouncing in JavaScript – DEV Community, дата последнего обращения: августа 4, 2025, https://dev.to/markliu2013/throttling-and-debouncing-in-javascript-3de4
- Throttling vs. Debouncing Explained | Built In, дата последнего обращения: августа 4, 2025, https://builtin.com/articles/throttling-vs-debouncing
- Understanding Throttling in JavaScript – DEV Community, дата последнего обращения: августа 4, 2025, https://dev.to/dipakahirav/understanding-throttling-in-javascript-55jl
- Difference between throttling and debouncing a function – Stack Overflow, дата последнего обращения: августа 4, 2025, https://stackoverflow.com/questions/25991367/difference-between-throttling-and-debouncing-a-function
- Difference between Debouncing and Throttling – GeeksforGeeks, дата последнего обращения: августа 4, 2025, https://www.geeksforgeeks.org/javascript/difference-between-debouncing-and-throttling/
- Debounce and Throttling: What They Are and When to Use Them | by Bablu Singh | Medium, дата последнего обращения: августа 4, 2025, https://medium.com/@bs903944/debounce-and-throttling-what-they-are-and-when-to-use-them-eadd272fe0be
- High precision timing – Performance APIs – MDN Web Docs – Mozilla, дата последнего обращения: августа 4, 2025, https://developer.mozilla.org/en-US/docs/Web/API/Performance_API/High_precision_timing
- performance.now() vs Date.now() – javascript – Stack Overflow, дата последнего обращения: августа 4, 2025, https://stackoverflow.com/questions/30795525/performance-now-vs-date-now
- JavaScript performance.now() Method | GeeksforGeeks, дата последнего обращения: августа 4, 2025, https://www.geeksforgeeks.org/javascript-performance-now-method/
- Getting Accurate Time with JavaScript Performance.now – Medium, дата последнего обращения: августа 4, 2025, https://medium.com/@AlexanderObregon/getting-accurate-time-with-javascript-performance-now-ccd658a97ab3
- Performance: now() method – Web APIs – MDN Web Docs – Mozilla, дата последнего обращения: августа 4, 2025, https://developer.mozilla.org/en-US/docs/Web/API/Performance/now
- Navigator: sendBeacon() method – Web APIs | MDN, дата последнего обращения: августа 4, 2025, https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon
- Do you know about Beacon API? : r/learnjavascript – Reddit, дата последнего обращения: августа 4, 2025, https://www.reddit.com/r/learnjavascript/comments/1429cah/do_you_know_about_beacon_api/
- Precious Data: Introduction to the Beacon API – Empathy.co, дата последнего обращения: августа 4, 2025, https://empathy.co/blog/my-preciousss-data-introduction-to-the-beacon-api/
- Cursor and Mouse Tracking in Research | Technology – Labvanced, дата последнего обращения: августа 4, 2025, https://www.labvanced.com/content/technology/en/mouse-tracking/
- Mouse data segmentation into actions | Download Scientific Diagram – ResearchGate, дата последнего обращения: августа 4, 2025, https://www.researchgate.net/figure/Mouse-data-segmentation-into-actions_fig1_331301103
- A Survey of User Authentication Based on Mouse Dynamics – ResearchGate, дата последнего обращения: августа 4, 2025, https://www.researchgate.net/publication/226450196_A_Survey_of_User_Authentication_Based_on_Mouse_Dynamics
- An Empirical Evaluation of Online Continuous Authentication and Anomaly Detection Using Mouse Clickstream Data Analysis – MDPI, дата последнего обращения: августа 4, 2025, https://www.mdpi.com/2076-3417/11/13/6083
- Usage of computer mouse characteristics for identification in web browsing – ResearchGate, дата последнего обращения: августа 4, 2025, https://www.researchgate.net/publication/286195988_Usage_of_computer_mouse_characteristics_for_identification_in_web_browsing
- A Study on Mouse Movement Features to Identify User – Scientific Research Journal (Scirj), дата последнего обращения: августа 4, 2025, https://www.scirj.org/papers-0420/scirj-P0420766.pdf
- Electronic cam motion generation with special reference to constrained velocity, acceleration, and jerk – ResearchGate, дата последнего обращения: августа 4, 2025, https://www.researchgate.net/publication/8436512_Electronic_cam_motion_generation_with_special_reference_to_constrained_velocity_acceleration_and_jerk
- Smooth Moves: Comparing Log Dimensionless Jerk Metrics from Body Center of Mass Trajectory and Wearable Sensor Acceleration During Walking – PubMed, дата последнего обращения: августа 4, 2025, https://pubmed.ncbi.nlm.nih.gov/40006462
- Assessing Smoothness of Arm Movements With Jerk: A Comparison of Laterality, Contraction Mode and Plane of Elevation. A Pilot Study – Frontiers, дата последнего обращения: августа 4, 2025, https://www.frontiersin.org/journals/bioengineering-and-biotechnology/articles/10.3389/fbioe.2021.782740/full
- Computer Mouse Movements as an Indicator of Work Stress: Longitudinal Observational Field Study, дата последнего обращения: августа 4, 2025, https://pmc.ncbi.nlm.nih.gov/articles/PMC8052599/
- Dynamic User Authentication Based on Mouse Movements Curves – DORAS | DCU Research Repository, дата последнего обращения: августа 4, 2025, https://doras.dcu.ie/20248/1/MMM2015_Zaher_Full_%286%29.pdf
- The effects of pause software on the temporal characteristics of computer use, дата последнего обращения: августа 4, 2025, https://personal.fgb.vu.nl/~jsmeets/2007/Pause-ERG07.pdf
- Assessing User Behavior by Mouse Movements | Request PDF – ResearchGate, дата последнего обращения: августа 4, 2025, https://www.researchgate.net/publication/342867938_Assessing_User_Behavior_by_Mouse_Movements
- ahlashkari/IMAPBotLyzer – GitHub, дата последнего обращения: августа 4, 2025, https://github.com/ahlashkari/IMAPBotLyzer
- For how much time should I randomly move the mouse for generating encryption keys?, дата последнего обращения: августа 4, 2025, https://security.stackexchange.com/questions/32844/for-how-much-time-should-i-randomly-move-the-mouse-for-generating-encryption-key
- arXiv:2410.18233v1 [cs.CR] 23 Oct 2024, дата последнего обращения: августа 4, 2025, https://www.arxiv.org/pdf/2410.18233
- ML-Based User Identification Through Mouse Dynamics – SJSU ScholarWorks, дата последнего обращения: августа 4, 2025, https://scholarworks.sjsu.edu/etd_projects/1381/
- Exploring visual representations of computer mouse movements for bot detection using deep learning approaches | Request PDF – ResearchGate, дата последнего обращения: августа 4, 2025, https://www.researchgate.net/publication/370782783_Exploring_visual_representations_of_computer_mouse_movements_for_bot_detection_using_deep_learning_approaches
- ReMouse Dataset: On the Efficacy of Measuring the Similarity of Human-Generated Trajectories for the Detection of Session-Replay Bots – MDPI, дата последнего обращения: августа 4, 2025, https://www.mdpi.com/2624-800X/3/1/7
- arXiv:2207.13394v3 [cs.LG] 11 Apr 2023, дата последнего обращения: августа 4, 2025, https://arxiv.org/pdf/2207.13394
- BeCAPTCHA-Mouse: Synthetic Mouse Trajectories and Improved Bot Detection – arXiv, дата последнего обращения: августа 4, 2025, https://arxiv.org/abs/2005.00890
- Procedia Computer Science BotHawk: An Approach for Bots Detection in Open Source Software Projects – arXiv, дата последнего обращения: августа 4, 2025, https://arxiv.org/pdf/2307.13386
- Intrusion Detection Using Mouse Dynamics – arXiv, дата последнего обращения: августа 4, 2025, https://arxiv.org/pdf/1810.04668
- Top 10 Bot Management Software Solutions for 2024 | EM360 – EM360Tech, дата последнего обращения: августа 4, 2025, https://em360tech.com/top-10/top-10-bot-management-software-solutions-2024
- Detecting IMAP Credential Stuffing Bots Using Behavioural Biometrics – Ashley Barkworth, дата последнего обращения: августа 4, 2025, https://ashleybarkworth.github.io/files/capstone.pdf
- User authentication through behavioral biometrics using multi- class classification algorithms – DiVA, дата последнего обращения: августа 4, 2025, https://kth.diva-portal.org/smash/get/diva2:1846194/FULLTEXT01.pdf