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

Борьба с ботами — это игра с противником: злоумышленники адаптируются, защитники реагируют, и цикл повторяется. В Cloudflare мы остаёмся впереди, объединяя видимость нашей глобальной сети с сигналами из клиентской среды. На уровне сети мы анализируем более 1 триллиона запросов в день, чтобы понимать репутацию, закономерности и аномалии на более чем 20% веба. На стороне клиента мы углубили обнаружение с помощью Cloudflare Turnstile, который эволюционировал из замены CAPTCHA в управляемую задачу, основанную на рисках, которая адаптирует количество требуемого взаимодействия для проверки подлинности пользователя.

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

Этот пробел в видимости мы сегодня закрываем с запуском Precursor.

Представляем Precursor

Precursor — это клиентская система верификации на основе сессий, созданная с учётом конфиденциальности, которая использует динамически внедряемый JavaScript для непрерывного сбора поведенческих сигналов по мере взаимодействия посетителей с вашим приложением. Эти сигналы обрабатываются и в реальном времени включаются в систему защиты Cloudflare от ботов, что позволяет нам постоянно отличать человеческий трафик от автоматизированного или агентного.

Это расширяет возможности обнаружения на стороне клиента, предлагаемые вызовом (Challenge), на всё ваше веб-приложение. Precursor — это опциональное дополнение к Turnstile; обе функции являются частью нашего Enterprise Bot Management. Такое обнаружение на основе пользовательского пути эффективно, потому что современная автоматизация всё чаще способна выглядеть легитимной короткими всплесками. Боты могут выполнять JavaScript, использовать реальные среды браузеров и проходить отдельные CAPTCHA, не вызывая подозрений. Что по-прежнему трудно воспроизвести — это последовательное человеческое поведение с течением времени.

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

Человеку свойственно ошибаться

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

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

  • Когнитивная нагрузка: Существует измеримая задержка между тем, как человек видит флажок и нажимает на него.

  • Тремор рук: Даже самая устойчивая человеческая рука колеблется с частотой физиологического тремора.

Боты, напротив, часто ведут себя так, что выдают себя. Они движутся по линейным интерполяциям или математически идеальным кривым Безье. Они кликают с точностью, которую человек никогда не сможет воспроизвести. И даже когда им удаётся симулировать человеческую ошибку, в движениях человека есть ритм, который можно увидеть, только анализируя всю сессию.

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

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

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

Как работает Precursor

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

1. Уровень внедрения и сбора

Когда Precursor включён в вашем приложении, Cloudflare автоматически внедряет лёгкий скрипт в HTML-ответы вашего сайта, когда они проходят через нашу сеть, без необходимости дополнительной настройки, сетевых подключений или встраивания сторонних решений. Внедряемый пакет Precursor компактен, обфусцирован и динамически собирается для каждого ответа. Пакет спроектирован так, чтобы не мешать любой дополнительной логике страницы хостируемого веб-приложения.

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

2. Уровень оценки

На пограничном сервере входящие полезные нагрузки Precursor десериализуются в поведенческие входные данные. Диспетчер запускает набор оценщиков на этих входных данных. Каждый оценщик читает интересующие его потоки Precursor и может поднимать сигналы в общий реестр обнаружения.

Оценщики спроектированы для перекрёстного сопоставления данных. Например, они проверяют, коррелирует ли активность указателя с длительностью видимости страницы, или срабатывают ли события клавиатуры только при фокусе на текстовом поле. Этот поток информации затем консолидируется в отдельные сигналы, которые используются для взвешивания обнаружений.

3. Интеграция сессии

Данные Precursor привязаны к сессии, то есть накапливаются в течение всей сессии. Привязка к сессии важна, потому что бот не может сбросить свою поведенческую сигнатуру, обновив страницу или начав новый вызов. Система также передаёт метаданные сессии в нижележащие уровни обнаружения для дополнительных эвристик теневого режима и анализа сессии: прогнозируемое vs. фактическое завершение, а также эвристики «просрочки» сессии. Эти наблюдения на стороне сети логируются для улучшения обнаружения и для корректировки балла бота сессии.

4. Конфиденциальность по замыслу

Precursor был спроектирован для сбора сигналов, помогающих отличать человеческие паттерны от автоматизированных и злонамеренных. Обработчики событий захватывают минимум информации, необходимой для полезного сигнала обнаружения автоматизации и злоупотреблений. Например, активность клавиатуры фиксируется как время и ритм, а не как фактически нажатые клавиши. Кроме того, поведенческие сигналы оцениваются как агрегированные паттерны, а не отдельные действия, и потребляются внутренне системами обнаружения ботов Cloudflare; они не отображаются на панелях клиентов и не привязываются к учётным записям пользователей, идентификаторам входа или постоянным профилям.

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

Аналитика по сессиям

Для поддержки этого нового уровня обнаружения мы вводим представления на основе сессий в Security Analytics (Аналитика безопасности). Эти панели меняют перспективу с отдельных запросов на полные пути посетителей. Теперь вы можете ответить на такие вопросы, как:

  1. Как выглядит типичная сессия на моём сайте?

  2. Где сессии отклоняются от ожидаемого поведения?

  3. Какие сессии демонстрируют признаки автоматизации с течением времени?

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

Используйте Security Analytics для изучения представлений на основе сессий для вашего трафика управления ботами.

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

Что дальше

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

Начать работу

Precursor сейчас внедряется и может быть включен прямо из панели управления Cloudflare. Precursor будет бесплатным до нашего общего выпуска (GA) в конце этого года. Начать просто: включите Precursor для вашей зоны и выберите, как строго вы хотите проверять сессии. Вы можете запустить его в режиме с низким уровнем помех, чтобы наблюдать за поведением в фоновом режиме, или потребовать полностью проверенную сессию, применив Challenges, если сессия еще не существует.