Как работает BotSafe¶
BotSafe — это комплексная антифрод-система, которая использует двухуровневую архитектуру детекции ботов для максимально точного выявления автоматизированного и мошеннического трафика. Система анализирует посетителей как на стороне браузера (frontend), так и на стороне сервера (backend), что позволяет выявлять различные типы ботов с высокой точностью.
🔄 Общий принцип работы¶
Процесс детекции ботов в BotSafe состоит из нескольких этапов:
- Сбор данных — система собирает информацию о посетителе в браузере и на сервере параллельно
- Анализ — данные анализируются множеством проверок на наличие признаков ботов
- Объединение результатов — результаты всех проверок объединяются и рассчитывается общая уверенность (confidence)
- Передача в Яндекс.Метрику — все данные передаются в виде параметров визита для дальнейшего анализа и оптимизации рекламы
Важно
Все проверки выполняются параллельно для максимальной скорости работы. Система не блокирует загрузку страницы и работает асинхронно.
🖥️ Frontend-проверки (на стороне браузера)¶
Frontend-проверки выполняются непосредственно в браузере посетителя с помощью JavaScript. Они анализируют свойства браузера, поведение пользователя и признаки автоматизации в реальном времени.
Автоматизированные инструменты¶
WebDriver¶
Что проверяется: Обнаружение использования WebDriver API — стандартного интерфейса для автоматизации браузеров.
Как работает: Система проверяет наличие свойств navigator.webdriver и других признаков использования WebDriver API. WebDriver используется такими инструментами, как Selenium, для программного управления браузером.
Примеры использования ботов: - Автоматизация тестирования веб-приложений - Парсинг данных с сайтов - Накрутка просмотров и кликов - Массовая регистрация аккаунтов
Рекомендация
Эта проверка имеет высокий приоритет и рекомендуется для включения на всех сайтах, так как WebDriver — один из самых распространённых инструментов автоматизации.
Selenium¶
Что проверяется: Специальная проверка на использование фреймворка Selenium — одного из самых популярных инструментов для автоматизации браузеров.
Как работает: Система обнаруживает специфические признаки Selenium, включая:
- Наличие объектов window.driver и window.webdriver
- Специфические свойства в объекте navigator
- Признаки Selenium WebDriver в DOM
Ссылки: - Официальный сайт Selenium - Документация Selenium WebDriver
Пример детекции
Если посетитель использует Selenium для автоматизации, система обнаружит это с уверенностью около 0.9 и пометит посетителя как бота.
Puppeteer¶
Что проверяется: Обнаружение использования Puppeteer — инструмента для управления браузером на основе Chromium.
Как работает: Система проверяет наличие специфических признаков Puppeteer:
- Свойство window.chrome с признаками Puppeteer
- Наличие navigator.plugins с характерными признаками
- Специфические методы и свойства, добавляемые Puppeteer
Ссылки: - Официальный сайт Puppeteer - GitHub Puppeteer
PhantomJS¶
Что проверяется: Проверка на использование устаревшего headless-браузера PhantomJS.
Как работает: Хотя PhantomJS больше не поддерживается, некоторые боты всё ещё используют его. Система проверяет наличие специфических признаков PhantomJS в объектах браузера.
Устаревшая технология
PhantomJS официально прекратил разработку в 2018 году, но некоторые боты продолжают его использовать.
Обнаружение headless-браузеров¶
Что такое headless-браузер: Браузер без графического интерфейса, который управляется программно. Часто используется ботами для имитации обычных пользователей.
Как работает: Система выявляет различные признаки работы в headless-режиме:
- Отсутствие или неполная реализация WebGL
- Аномалии в работе Canvas API
- Отсутствие плагинов браузера
- Нестандартные значения свойств
navigator - Отличия в работе медиа-устройств
Эффективность
Обнаружение headless-браузеров — одна из самых эффективных проверок, так как большинство ботов используют именно headless-режим для экономии ресурсов.
Анализ свойств браузера¶
Особенности браузера (browserFeatures)¶
Что проверяется: Наличие стандартных браузерных API и их корректная работа.
Как работает: Система проверяет наличие и корректность работы различных браузерных API: - WebGL и WebGL2 - Canvas API - AudioContext - Battery API - И другие стандартные API
Боты часто имеют неполную реализацию этих API или их отсутствие.
Свойства window-объекта¶
Что проверяется: Анализ свойств и методов объекта window на предмет аномалий.
Как работает: У обычных браузеров и ботов могут различаться свойства и методы объекта window. Система сравнивает наличие стандартных свойств и помогает выявлять необычные окружения.
User-Agent¶
Что проверяется: Подозрительные или нестандартные значения User-Agent.
Как работает: User-Agent содержит информацию о браузере и операционной системе. Боты часто используют: - Устаревшие значения User-Agent - Нестандартные форматы - Значения, не соответствующие реальному браузеру
Дополнительные проверки¶
Режим инкогнито¶
Что проверяется: Обнаружение работы в режиме инкогнито (приватном режиме).
Как работает: Система определяет режим инкогнито через анализ различных свойств браузера, таких как доступность localStorage, FileSystem API и других.
Важно
Режим инкогнито сам по себе не означает бота. Многие реальные пользователи используют инкогнито для приватности. Эта проверка используется как дополнительный фактор риска.
Отключенные cookies¶
Что проверяется: Проверка поддержки cookies и возможности их сохранения.
Как работает: Боты часто отключают cookies или не поддерживают их корректно. Система проверяет возможность сохранения и чтения cookies.
Проверка прокси¶
Система использует несколько методов обнаружения прокси:
- WebRTC — обнаружение прокси через WebRTC API, который может раскрывать реальные IP-адреса
- DNS — анализ DNS-запросов на предмет аномалий, указывающих на прокси
- HTTP-заголовки — проверка заголовков запросов (X-Forwarded-For, Via и т.д.) на признаки прокси
- Порты — анализ используемых портов на предмет известных прокси-портов
- Canvas — обнаружение прокси через Canvas fingerprinting, который может отличаться при использовании прокси
Ложные срабатывания
Некоторые проверки прокси (WebRTC, задержки) могут давать ложные срабатывания у пользователей с VPN. Рекомендуется использовать их с осторожностью.
Библиотека BotD¶
BotSafe использует специализированную библиотеку BotD от FingerprintJS для комплексного определения ботов и автоматизированных браузеров.
Использование на серверах в РФ
Библиотека BotD используется на серверах BotSafe, расположенных в России. Все данные обрабатываются локально на российских серверах, что обеспечивает соответствие требованиям законодательства о локализации данных.
Что делает BotD: Библиотека анализирует множество сигналов: - Свойства браузера и окружения - Поведение браузера при выполнении JavaScript - Взаимодействие с DOM - Временные характеристики выполнения кода - И множество других параметров
Ссылки: - Официальный сайт BotD - Документация BotD
Высокая точность
BotD использует продвинутые алгоритмы машинного обучения и предоставляет одну из самых высоких точностей детекции ботов в индустрии.
Анализ поведения пользователя (Behavior Analysis)¶
Система анализирует паттерны взаимодействия пользователя со страницей для выявления автоматизированного поведения.
Что анализируется:
- Движения мыши — траектория, скорость, ускорение, паттерны движения
- Прокрутка страницы — скорость, направление, равномерность прокрутки
- Клики и взаимодействия — время между кликами, координаты, паттерны кликов
- Время между действиями — задержки между различными действиями
- Общая активность — количество действий, их разнообразие, интенсивность
Как это работает:
- Система собирает данные о действиях пользователя в течение нескольких секунд
- На основе этих данных создаётся "отпечаток поведения" (behavior hash)
- Отпечаток сравнивается с известными паттернами ботов
- Если паттерн совпадает с известными бот-паттернами, посетитель помечается как подозрительный
Примеры бот-паттернов:
- Слишком равномерные движения мыши (без случайности)
- Прокрутка страницы с постоянной скоростью
- Необычные задержки между действиями
- Отсутствие случайности в действиях
Эффективность
Анализ поведения — один из самых эффективных методов детекции, так как боты не могут полностью имитировать естественное поведение человека.
🖥️ Backend-проверки (на стороне сервера)¶
Backend-проверки выполняются на сервере BotSafe и анализируют данные, которые нельзя получить или проверить только в браузере. Эти проверки используют внешние базы данных и сервисы для дополнительной верификации.
Fingerprint (отпечаток браузера)¶
Термины
См. также: Browser Fingerprint, Fingerprint
Что это такое: Уникальный отпечаток браузера, создаваемый на основе множества параметров.
Как создаётся отпечаток:
Система собирает следующие параметры: - Версия браузера и операционной системы - Разрешение экрана и глубина цвета - Установленные плагины и расширения - Часовой пояс - Языковые настройки - Доступные шрифты - Canvas fingerprint - WebGL fingerprint - AudioContext fingerprint - И множество других параметров
Как используется:
- На основе всех параметров создаётся уникальный хеш (fingerprint hash)
- Система отслеживает повторяющиеся отпечатки
- Если один отпечаток используется слишком часто или с разных IP, это может указывать на бота
Ссылки: - FingerprintJS — официальный сайт - Документация FingerprintJS
Приватность
Fingerprint не содержит персональных данных и используется только для технической идентификации браузера.
UA-isBot¶
Что проверяется: Определение ботов по User-Agent через библиотеку isbot.
Как работает: Библиотека isbot содержит обширную базу известных ботов и автоматизированных инструментов. Система проверяет User-Agent посетителя против этой базы.
Использование на серверах в РФ
Библиотека isbot используется на серверах BotSafe, расположенных в России. Все проверки выполняются локально на российских серверах без передачи данных за пределы РФ.
Что содержит база: - Известные боты поисковых систем (Googlebot, Bingbot и т.д.) - Инструменты автоматизации (Selenium, Puppeteer и т.д.) - Мониторинговые инструменты - Скраперы и парсеры - И множество других автоматизированных агентов
Ссылки: - GitHub isbot - npm isbot
Быстрая проверка
Проверка через isbot выполняется очень быстро и позволяет сразу отфильтровать большую часть известных ботов.
ASN (автономная система)¶
Что такое ASN: Автономная система (Autonomous System) — группа IP-адресов, управляемых одной организацией или интернет-провайдером. Каждая автономная система имеет уникальный номер (ASN) и название организации.
Как работает проверка:
- Система определяет ASN по IP-адресу посетителя через базу данных GeoLite2-ASN
- Анализирует название организации, управляющей ASN
- Проверяет, не является ли ASN подозрительным (прокси-провайдеры, дата-центры и т.д.)
Что проверяется:
- Номер ASN — проверяется по пользовательскому блоклисту (если настроен)
- Название организации — проверяется на наличие подозрительных ключевых слов:
- VPN
- Proxy
- Hosting
- Cloud
- Server
- Datacenter
База данных: GeoLite2-ASN от MaxMind
Что содержит база данных:
База данных GeoLite2-ASN содержит информацию о: - Номере автономной системы (ASN) - Названии организации, управляющей ASN - Диапазонах IP-адресов, принадлежащих ASN - Географической информации (для некоторых ASN)
Как собирается база данных:
База данных GeoLite2-ASN собирается MaxMind на основе:
- Данных региональных интернет-реестров (RIR):
- ARIN (Северная Америка)
- RIPE NCC (Европа, Ближний Восток, Центральная Азия)
- APNIC (Азиатско-Тихоокеанский регион)
- LACNIC (Латинская Америка и Карибы)
-
AFRINIC (Африка)
-
Публичных данных о регистрации IP-адресов:
- Кто зарегистрировал IP-адрес
- Какая организация управляет IP-адресом
-
Какой ASN использует IP-адрес
-
Данных от интернет-провайдеров:
- Информация о провайдерах
- Данные о дата-центрах
- Информация о хостинг-провайдерах
Обновление базы данных:
База данных обновляется регулярно (обычно еженедельно) и доступна бесплатно. MaxMind предоставляет как полную версию (платную), так и упрощённую версию GeoLite2 (бесплатную).
Использование на серверах в РФ
База данных GeoLite2-ASN от MaxMind хранится и используется на серверах BotSafe, расположенных в России. Все проверки ASN выполняются локально на российских серверах без передачи данных за пределы РФ.
Ссылки: - MaxMind GeoLite2 - Документация GeoLite2-ASN - MaxMind — официальный сайт
Точность данных
База данных GeoLite2-ASN имеет высокую точность, так как основана на официальных данных регистрации IP-адресов. Однако данные могут обновляться с задержкой, особенно для новых IP-адресов.
IP2Proxy¶
Что проверяется: Определение использования прокси, VPN или других методов скрытия реального IP-адреса.
Как работает:
- Система проверяет IP-адрес посетителя в локальной базе данных IP2Proxy
- База содержит информацию о том, является ли IP прокси, VPN, публичным прокси и т.д.
- Если IP найден в базе как прокси, посетитель помечается как подозрительный
Использование на серверах в РФ
База данных IP2Proxy хранится и используется на серверах BotSafe, расположенных в России. Все проверки прокси выполняются локально на российских серверах без передачи данных за пределы РФ.
Типы прокси, определяемые базой:
- Публичные прокси — открытые прокси-серверы, доступные всем
- VPN — виртуальные частные сети
- TOR выходные узлы — узлы сети TOR
- Веб-прокси — прокси для веб-браузеров
- ISP прокси — прокси от интернет-провайдеров
- Другие типы прокси
База данных: IP2Proxy LITE (бесплатная версия)
Что содержит база данных:
База данных IP2Proxy содержит информацию о: - Типе прокси (публичный, VPN, TOR и т.д.) - Стране прокси-сервера - Городе прокси-сервера (для некоторых записей) - ISP прокси-сервера - Уровне анонимности (для некоторых записей)
Как собирается база данных:
База данных IP2Proxy собирается IP2Location на основе:
- Анализа сетевого трафика:
- Мониторинг сетевого трафика
- Выявление паттернов, характерных для прокси
-
Анализ заголовков HTTP-запросов
-
Данных от интернет-провайдеров:
- Информация о прокси-серверах провайдеров
- Данные о VPN-серверах
-
Информация о дата-центрах
-
Публичных источников:
- Списки публичных прокси
- Данные о TOR выходных узлах
-
Информация о веб-прокси
-
Краудсорсинга:
- Сообщения пользователей о прокси
- Данные от партнёров
- Информация от других сервисов
Обновление базы данных:
База данных обновляется регулярно (обычно еженедельно). IP2Location предоставляет как полную версию (платную), так и упрощённую версию LITE (бесплатную).
Автоматическое обновление:
BotSafe автоматически проверяет актуальность базы данных и обновляет её, если она устарела (обычно раз в 7 дней).
Ссылки: - IP2Proxy — официальный сайт - IP2Proxy LITE - IP2Location — официальный сайт
Точность данных
База данных IP2Proxy имеет высокую точность для известных прокси и VPN. Однако новые прокси могут появиться в базе с задержкой. База содержит миллионы IP-адресов прокси и VPN со всего мира.
Firehol¶
Что проверяется: Проверка IP-адреса по черным спискам Firehol — базе данных известных вредоносных и подозрительных IP-адресов.
Как работает:
- Система проверяет IP-адрес посетителя в локальных списках Firehol
- Списки содержат IP-адреса, связанные с:
- Вредоносным ПО
- Спамом
- Атаками
- Подозрительной активностью
Уровни списков Firehol:
- Level 1 — наиболее опасные IP (активные атаки, вредоносное ПО)
- Level 2 — подозрительные IP (спам, сканирование портов)
- Level 3 — менее опасные, но подозрительные IP
- Level 4 — дополнительные списки
Что содержит база данных:
База данных Firehol содержит IP-адреса и диапазоны IP (CIDR), связанные с:
- Вредоносным ПО:
- Ботнеты
- Трояны
- Вирусы
-
Другие типы вредоносного ПО
-
Спамом:
- IP-адреса, с которых отправлялся спам
- IP-адреса спам-ботов
-
IP-адреса, связанные с фишингом
-
Атаками:
- IP-адреса, участвовавшие в DDoS-атаках
- IP-адреса, сканирующие порты
-
IP-адреса, пытающиеся взломать системы
-
Подозрительной активностью:
- IP-адреса с необычными паттернами трафика
- IP-адреса, связанные с мошенничеством
- IP-адреса, используемые для накрутки
Как собирается база данных:
База данных Firehol собирается из множества источников:
- Списки вредоносных IP от различных организаций:
- Антивирусные компании
- Организации по кибербезопасности
-
Исследовательские центры
-
Данные о спаме:
- Списки спам-IP от почтовых сервисов
- Данные о фишинге
-
Информация о спам-ботах
-
Информация об атаках:
- Данные о DDoS-атаках
- Информация о попытках взлома
-
Данные о сканировании портов
-
Краудсорсинг:
- Сообщения пользователей о подозрительных IP
- Данные от партнёров
- Информация от других сервисов безопасности
Обновление базы данных:
Списки Firehol обновляются регулярно (обычно ежедневно) и доступны бесплатно. Firehol объединяет данные из множества источников в единые списки.
Формат данных:
Firehol предоставляет данные в формате IPsets (для Linux) и CIDR (для других систем). BotSafe использует локальные копии списков для быстрой проверки.
Использование на серверах в РФ
Списки Firehol хранятся и используются на серверах BotSafe, расположенных в России. Все проверки IP-адресов по спискам Firehol выполняются локально на российских серверах без передачи данных за пределы РФ.
Ссылки: - Firehol — официальный сайт - GitHub Firehol - Firehol Blocklist IPsets
Точность данных
База данных Firehol имеет высокую точность, так как основана на данных от множества авторитетных источников. Однако некоторые IP могут быть добавлены ошибочно или временно. Рекомендуется использовать списки как дополнительный фактор, а не как единственный критерий.
StopForumSpam¶
Что проверяется: Проверка IP-адреса по базе данных StopForumSpam, которая содержит информацию о спам-активности с различных IP-адресов.
Как работает:
- Система проверяет IP-адрес в локальных списках StopForumSpam
- База содержит IP-адреса, с которых была зафиксирована спам-активность на форумах, в комментариях и т.д.
- Если IP найден в базе, это может указывать на бота или мошенническую активность
Что содержит база данных:
База данных StopForumSpam содержит информацию о:
- IP-адресах:
- IP-адреса, с которых отправлялся спам
- Количество спам-сообщений с IP
-
Дата последней спам-активности
-
Email-адресах:
- Email-адреса, используемые для спама
- Количество спам-сообщений с email
-
Дата последней спам-активности
-
Именах пользователей:
- Имена пользователей, используемые для спама
- Количество спам-сообщений от пользователя
- Дата последней спам-активности
Периоды данных:
- 7 дней — недавняя активность (актуальные спамеры)
- 90 дней — долгосрочная активность (исторические данные)
Как собирается база данных:
База данных StopForumSpam собирается на основе:
- Жалоб пользователей форумов и веб-сайтов:
- Администраторы сайтов сообщают о спам-активности
- Пользователи могут сообщать о спаме
-
Автоматические системы могут отправлять данные
-
API интеграций:
- Веб-сайты могут интегрироваться с API StopForumSpam
- Автоматическая отправка данных о спаме
-
Проверка перед регистрацией пользователей
-
Краудсорсинга:
- Сообщения от сообщества
- Данные от партнёров
- Информация от других антиспам-сервисов
Процесс добавления данных:
- Администратор сайта обнаруживает спам
- Отправляет данные в StopForumSpam через API или веб-интерфейс
- Данные проверяются и добавляются в базу
- База обновляется в реальном времени
Обновление базы данных:
База данных обновляется в реальном времени. Новые данные появляются в базе сразу после добавления. Локальные копии списков обновляются регулярно.
Использование на серверах в РФ
Списки StopForumSpam хранятся и используются на серверах BotSafe, расположенных в России. Все проверки IP-адресов по спискам StopForumSpam выполняются локально на российских серверах без передачи данных за пределы РФ.
Формат данных:
StopForumSpam предоставляет данные в различных форматах: - CSV файлы (для локального использования) - API (для онлайн-проверок) - IPsets (для интеграции с системами)
BotSafe использует локальные копии списков для быстрой проверки.
Ссылки: - StopForumSpam — официальный сайт - API StopForumSpam - Документация StopForumSpam
Точность данных
База данных StopForumSpam имеет высокую точность, так как основана на реальных жалобах от администраторов сайтов. Однако возможны ложные срабатывания, если IP был использован для спама, но сейчас используется легитимно. Рекомендуется использовать данные как дополнительный фактор.
🔗 Объединение результатов¶
После выполнения всех проверок система объединяет результаты для принятия окончательного решения.
Процесс объединения¶
- Сбор всех причин — все обнаруженные признаки ботов собираются в единый список
- Рассчитывается уверенность (confidence) — на основе количества и важности обнаруженных признаков
- Применяется порог — если уверенность превышает установленный порог, посетитель помечается как бот
Расчет уверенности¶
Уверенность рассчитывается с учётом:
Важности проверки: - WebDriver, Selenium, Puppeteer — высокий вес (0.9-0.95) - Headless-браузеры — средний вес (0.7) - Режим инкогнито — низкий вес (0.2) - И другие веса для различных проверок
Количества обнаруженных признаков: - Чем больше признаков, тем выше уверенность - Несколько слабых признаков могут дать высокую уверенность в сумме
Качества признаков: - Некоторые признаки более надёжны, чем другие - Комбинация нескольких признаков увеличивает уверенность
Формула расчета:
Где:
- weight_i — вес проверки i
- detected_i — обнаружен ли признак (0 или 1)
- bonus_multiple_detections — бонус за множественные обнаружения
Настройка порога
Порог уверенности можно настроить в зависимости от ваших потребностей. Более высокий порог (0.7) — строже фильтрация, более низкий (0.3) — мягче.
📊 Передача данных в Яндекс.Метрику¶
Все собранные данные передаются в Яндекс.Метрику в виде параметров визита. Это позволяет:
- Анализировать долю ботов в трафике
- Создавать сегменты для фильтрации ботов
- Использовать данные для корректировки ставок в Яндекс.Директе
- Получать более точную аналитику
Подробнее о параметрах визита читайте в разделе Параметры визита.
⚙️ Гибкая настройка¶
Одной из ключевых особенностей BotSafe является возможность гибкой настройки всех механизмов детекции. Вы можете:
- Включать или отключать отдельные проверки
- Настраивать порог уверенности
- Устанавливать лимиты на количество визитов
- Настраивать анализ поведения
- Создавать пользовательские блоклисты
Подробнее о настройках читайте в разделе Настройки системы.
🎯 Практические примеры¶
Пример 1: Обнаружение Selenium-бота¶
Сценарий: 1. Frontend-проверка обнаруживает признаки Selenium в браузере (уверенность 0.9) 2. Backend-проверка UA-isBot подтверждает подозрительный User-Agent (уверенность 0.4) 3. Система объединяет результаты и помечает посетителя как бота с общей уверенностью 0.95
Результат: Посетитель помечен как бот, данные переданы в Яндекс.Метрику с параметром bs_bot_detected = 1.
Пример 2: Подозрительное поведение¶
Сценарий: 1. Анализ поведения показывает слишком равномерные движения мыши (уверенность 0.5) 2. Обнаружен режим инкогнито (уверенность 0.2) 3. IP-адрес находится в базе IP2Proxy как прокси (уверенность 0.6) 4. Система объединяет результаты и помечает посетителя как бота со средней уверенностью 0.65
Результат: Посетитель помечен как бот, но с меньшей уверенностью, чем в первом примере.
Пример 3: Реальный пользователь¶
Сценарий: 1. Все проверки не обнаруживают признаков ботов 2. Поведение выглядит естественным (случайные движения мыши, естественная прокрутка) 3. IP-адрес не в черных списках 4. User-Agent соответствует реальному браузеру
Результат: Посетитель помечается как реальный пользователь (confidence = 0.1), данные переданы в Яндекс.Метрику с параметром bs_bot_detected = 0.
📚 Дополнительная информация¶
- Настройки системы — подробное описание всех доступных параметров
- Примеры использования — рекомендации по настройке для разных типов сайтов
- Параметры визита — полный список передаваемых данных
- Создание сегментов — как использовать данные в Яндекс.Метрике