Детекция инструментов автоматизации¶
SmartBot Protection выявляет автоматизированных клиентов по признакам браузерного окружения. Проверки выполняются скриптом, встроенным в защищаемые страницы, и дополняют другие методы обнаружения угроз, описанные в Многоуровневой детекции угроз.
Архитектура сигналов¶
Система не оценивает клиента по принципу соответствия эталонному набору свойств браузера. Вместо этого каждая проверка выявляет признаки автоматизации или нестандартного окружения. При отсутствии таких признаков проверки возвращают отрицательный результат.
Сигналы разделены на два класса.
Definite (точный сигнал) – однозначный признак автоматизированного клиента. Такие признаки не встречаются в пользовательских браузерах при штатной работе, поэтому срабатывание любой проверки этого класса является достаточным основанием для блокировки.
Suspicious (подозрительный сигнал) – отклонение, которое может иметь легитимное объяснение: виртуальная машина, корпоративная сборка браузера, устройство с ограниченными ресурсами или отключённая аппаратная графика. Срабатывание не приводит к немедленной блокировке. Клиент помечается флагом и переводится в режим Analyze для дополнительного наблюдения. Решение принимается по совокупности накопленных сигналов и результатов поведенческого анализа.
Такое разделение позволяет блокировать явную автоматизацию и снижать риск ложных срабатываний для легитимных пользователей с нестандартным окружением.
Часть проверок применяется избирательно. Некоторые веб-интерфейсы доступны не во всех браузерах и на всех платформах, поэтому проверки выполняются только там, где их результаты достоверны. Отдельные проверки предназначены только для мобильных устройств, десктопных систем или браузеров определённого семейства.
Что проверяется¶
Признаки внешнего управления браузером¶
Средства автоматизации управляют браузером через служебные протоколы и оставляют в окружении характерные следы: служебные свойства, внедряемые объекты и артефакты конкретных реализаций.
Система использует реестр таких признаков, охватывающий Selenium и ChromeDriver, Puppeteer, Playwright, PhantomJS, Nightmare, Awesomium и другие распространённые инструменты. Реестр пополняется по мере появления новых версий и средств автоматизации.
Отдельно проверяется штатный признак управляемого сеанса, который средства автоматизации устанавливают по умолчанию.
Признаки headless-режима¶
Браузеры, запущенные без графической оболочки, отличаются от пользовательских составом заявляемых характеристик и особенностями подсистемы отображения.
Система анализирует эти отличия и сопоставляет строку идентификации клиента со списком известных маркеров автоматизированных клиентов и утилит командной строки.
Полнота браузерного окружения¶
Проверяется, выполняется ли код в полноценном браузере.
Система выявляет признаки исполнения в серверных средах, эмуляторах объектной модели документа и гибридных средах, объединяющих браузерный движок с серверным рантаймом.
Отсутствие или нестандартное состояние базовых объектов документа указывает на то, что окружение не является браузерным.
Согласованность заявленной идентичности¶
Автоматизированные клиенты и средства подмены отпечатка могут изменять строку идентификации браузера, не воспроизводя полностью соответствующий набор свойств.
Система сопоставляет заявленный браузер, его версию, платформу, языковые настройки и часовой пояс с фактическими характеристиками окружения.
Несоответствие заявленных и фактических характеристик является одним из основных признаков маскировки.
Характеристики устройства¶
Анализируются параметры аппаратной конфигурации, разрешение и геометрия экрана, плотность пикселей и доступность интерфейсов, характерных для мобильных устройств.
Значения, нетипичные для пользовательских устройств или характерные для виртуальных машин и эмуляторов, формируют подозрительный сигнал.
Графическая подсистема¶
Проверяется наличие аппаратного графического ускорения и корректность работы графических интерфейсов браузера.
Программный рендеринг используется при отсутствии графического ускорителя или драйверов, например в виртуальных машинах, песочницах и средах непрерывной интеграции. Он также встречается в headless-браузерах и модифицированных сборках.
Поэтому программный рендеринг учитывается как подозрительный признак.
Целостность JavaScript-окружения¶
Эта группа проверок выявляет не конкретный инструмент, а факт вмешательства в работу браузера, поэтому она более устойчива к обходу.
Система сопоставляет состояние окружения с эталонной немодифицированной реализацией, проверяет подлинность базовых функций рантайма, анализирует характеристики исполнения кода и выявляет активное подключение средств отладки.
Состав и структура объектов браузера¶
Проверяются полнота и внутренняя корректность служебных структур браузера: списков компонентов, поддерживаемых типов данных, доступных хранилищ и интерфейсов.
Искусственно сформированные структуры могут отличаться от результатов штатной работы браузера особенностями внутреннего устройства, которые сложно воспроизвести при подмене.
Согласованность разрешений, сетевых и временных параметров¶
Проверяется согласованность состояния разрешений браузера, характеристик сетевого соединения и временных параметров сеанса.
Значения, невозможные при обычной работе пользователя, или противоречия между параметрами формируют подозрительный сигнал.
Выявление anti-detect браузеров¶
Отдельный класс инструментов автоматизации – коммерческие anti-detect браузеры, например Dolphin, Octo и AdsPower.
Это полноценные сборки Chromium, в которых подмена отпечатка выполняется на уровне движка, а не скриптом на странице. У таких клиентов могут отсутствовать признаки внешнего управления, работать аппаратный рендеринг и присутствовать корректные характеристики устройства.
Методы, основанные только на поиске известных признаков конкретных инструментов, против них неэффективны.
SmartBot Protection выявляет не сам продукт, а применяемые им способы подмены отпечатка. Для этого используются три группы механизмов.
Обнаружение модификации окружения¶
Система сопоставляет состояние браузера с эталонной немодифицированной реализацией.
Это позволяет выявлять вмешательство независимо от того, какие свойства были изменены и каким инструментом.
Обнаружение рассогласований в подставленном профиле¶
Anti-detect браузер подставляет согласованный набор параметров поверх характеристик реального устройства.
Полностью согласовать все производные значения сложно, поэтому система проверяет взаимное соответствие заявленных характеристик.
Особое внимание уделяется временным параметрам. Например, часовой пояс может подменяться в соответствии с геолокацией прокси, тогда как системные показатели сохраняют исходные значения.
Обнаружение остаточных признаков подмены¶
Проверки внутренней структуры служебных объектов браузера выявляют искусственно сформированные данные, отличающиеся от результатов штатной работы движка.
Все перечисленные признаки относятся к классу Suspicious и по отдельности не приводят к блокировке.
Решение принимается по совокупности сигналов и результатов поведенческого анализа, описанного в Настройке параметров поведенческого анализа.
Такой подход позволяет выявлять anti-detect браузеры и снижать риск ложных срабатываний для легитимных пользователей, у которых отдельные отклонения связаны с особенностями окружения.