Прямые признаки автоматизации
Некоторые среды оставляют технические признаки WebDriver/headless/injected runtime. Если marker уникален и проверен, он может иметь medium/high вес. Но generic Chromium anomaly нельзя честно называть «BAS detected» или «ZennoPoster detected» без уникального доказательства.
webdriver=false означает только «прямой маркер WebDriver не найден». Это не доказательство, что посетитель человек.
Browser и header consistency
Полезно сопоставлять User-Agent, Client Hints, platform, languages, timezone, viewport, screen, touch, device memory и hardware concurrency. Несогласованность может повышать риск, но каждый признак имеет легитимные исключения.
- UA сообщает mobile, а набор параметров похож на desktop;
- Sec-CH-UA-Platform конфликтует с browser telemetry;
- viewport меняется невозможным образом за короткое время;
- стабильная pseudonymous identity постоянно меняет coarse hardware profile.
Поведение и последовательности
Человек обычно создаёт более вариативные маршруты, но это статистика, а не закон. Боты могут имитировать задержки и мышь, а люди — быстро открывать десятки страниц. Sequence engine должен учитывать observations, unique visitors, confidence, decay и минимальную выборку.
Сильнее выглядит комбинация: одинаковая последовательность URL у множества независимых сессий + одинаковые интервалы + automation marker + IP rotation.
Challenge как независимый слой
Challenge полезен, когда risk достаточен для проверки, но недостаточен для жёсткого блока. Результат должен учитывать health самой подсистемы: если картинки не грузятся или provider деградировал, FAIL нельзя использовать как качественный training evidence.
Почему нужен confidence, а не бинарный флаг
| Evidence | Смысл | Не означает |
|---|---|---|
| webdriver=true | Прямой automation marker | Конкретный продукт автоматизации |
| JS telemetry отсутствует | NO_DATA / слабый сигнал | BOT |
| plugins=0 | Контекст | Headless автоматически |
| hosting ASN | Сетевой контекст | Вредоносность |
| Repeated healthy Challenge fail | Сильное evidence в комбинации | Permanent ban после одной ошибки |
Как AntiPF решает задачу
Browser Signals Lite собирает bounded telemetry, Risk Engine объединяет её с network/request/behavior evidence, Adaptive работает с history, а hard crawler/manual/security rules остаются выше статистического score.