
Вы когда-нибудь замечали, что некоторые сайты открываются сразу, а другие, наоборот, встречают капчой? За кулисами этого действия стоят антиботы - системы, которые пытаются отличить человека от программы. Они не идеальны, боты часто выигрывают, но битва идёт с переменным успехом. Сегодня я расскажу, как именно работают антиботы, какие технологии используют, где они ошибаются и почему иногда вас просят найти все светофоры или велосипеды (если повезёт) на картинке. Всё может быть намного хуже, вам захочется ругнуться, и сразу закрыть вкладку.

Антибот - это комплекс программных и аппаратных средств, предназначенных для обнаружения и блокировки автоматизированных скриптов (ботов), которые имитируют действия человека. Боты бывают разные: парсеры, спамеры, брутфорсеры, DDoS-ботнеты, скликивальщики рекламы. Задача антибота - отсечь нежелательный трафик, не задев при этом реальных пользователей.
Антиботы используют многоуровневый подход: от простейших проверок на стороне клиента (скрытые поля, подсчёт времени заполнения формы) до сложнейшего поведенческого анализа и машинного обучения. Они могут стоять как на самом сайте (в виде JavaScript-библиотеки), так и перед ним (облачный WAF или DNS-экран).
Самые известные антибот-системы в России: KillBot, Variti, Cloudflare Bot Management, Antibot Cloud, Botfaqtor, а также решения от Яндекса.
Давайте сначала вспомним старые-добрые способы, которые используют даже на современных сайтах. Они не панацея, но дешёвые и простые.
Honeypot (скрытое поле). Вы добавляете в форму поле, которое визуально скрыто (через CSS). Человек его не видит и не заполняет. А бот, который пытается заполнить все поля, часто вписывает туда текст. Если поле заполнено - это бот. Недостаток: умные боты игнорируют поля с display:none, но есть обходные пути (например, оставить поле видимым, но сместить за экран).
Анализ времени заполнения формы. Реальный человек вводит данные не мгновенно: он печатает, двигает мышью, исправляет ошибки. Бот заполняет форму за доли секунды. Простая проверка: если время отправки формы меньше 2-3 секунд - скорее всего, бот. Но боты научились делать паузы.
Проверка заголовков User-Agent и Referer. Многие примитивные боты используют стандартные User-Agent (python-requests, curl) или не передают Referer. Их легко заблокировать через .htaccess или конфиг Nginx. Но любой уважающий себя бот подделывает заголовки, поэтому метод малоэффективен.
Капча (CAPTCHA). Классическая "введите цифры с картинки" или "отметьте все автобусы". Отсеивает 90% простых ботов, но бесит людей. К тому же, существуют сервисы распознавания капчи (2captcha, AntiCaptcha) по цене 0,5-2 доллара за 1000 решений. Боты их используют. Поэтому капча сегодня - лишь дополнение к более сложным методам.
Google reCAPTCHA v2 (с галочкой) и v3 (невидимая) - более продвинуты, но и их обходят. reCAPTCHA v3 возвращает оценку от 0 до 1, и вы сами решаете, какой порог считать ботом. Это лучше, но не панацея.
Современные антиботы не просто смотрят на заголовки, а анализируют, как пользователь взаимодействует со страницей. Это называется поведенческий анализ. Для этого на сайте запускается JavaScript-код, который собирает телеметрию.
Движения мыши. Трекер записывает координаты курсора каждые 30-50 мс. Реальный человек двигает мышь не по прямой, а с ускорениями, остановками, мелкими зигзагами. Бот часто эмулирует движение по прямой или по очень простой кривой. Алгоритмы машинного обучения обучены на миллионах реальных записей и легко отличают скрипт от человека.
Скроллинг (прокрутка). Люди прокручивают страницу неравномерно: быстро пролистывают неинтересные куски, задерживаются на картинках. Бот скроллит равномерно, с постоянной скоростью. Антиботы анализируют распределение скоростей скролла.
Нажатия клавиш и тайминги. В полях ввода (например, email) бот вставляет текст мгновенно. Человек печатает с разной скоростью, делает паузы между символами, иногда использует Ctrl+V. Если поле заполнено за 0,1 секунды - это бот. Более того, человек редко набирает текст без ошибок, а бот - всегда правильно.
Клик по элементам. Наведение мыши на кнопку, задержка перед кликом, небольшое дрожание курсора - всё это признаки человека. Бот кликает точно в центр элемента без колебаний.
Все эти данные собираются и отправляются на сервер, где специальная модель (обычно случайный лес или нейронная сеть) вычисляет вероятность "ботовости". Если порог превышен, запрос либо блокируется, либо отправляется на капчу.
Эти методы очень эффективны против headless-браузеров (Puppeteer, Playwright), которые не эмулируют мышь или делают это примитивно. Однако против специализированных антидетект-браузеров (Indigo, Dolphin) они могут не сработать, потому что те эмулируют поведение очень качественно.
Даже если бот отлично эмулирует мышь и клавиатуру, у него часто отличаются технические параметры браузера.
Примеры параметров:
Сервисы вроде FingerprintJS (opensource) собирают эти данные и вычисляют хеш. Если один и тот же fingerprint стучится с десятка разных IP, но при этом атакует форму - однозначно бот. Антиботы могут сохранять fingerprint в чёрный список.
Canvas-отпечаток - особенно мощный метод. Веб-страница рисует на скрытом canvas (HTML-элементе) текст или фигуру, а затем считывает получившиеся пиксели. Разные браузеры и ОС рисуют с небольшими различиями из-за растеризации шрифтов, субпиксельного рендеринга. Headless-браузеры часто дают другой результат (например, упрощённый рендеринг).
Fingerprinting легко обходится антидетект-браузерами, которые подменяют практически все параметры, кроме разве что WebGL (там сложно). Но для массовых ботнетов это серьёзный барьер.
Вы знали, что даже при зашифрованном HTTPS-соединении можно понять, какая программа его установила? Метод JA3 анализирует параметры TLS-рукопожатия (версия TLS, список шифров, расширения). Разные библиотеки (OpenSSL, BoringSSL, NSS) имеют свои характерные наборы. Бот, написанный на Python с использованием requests, будет иметь один JA3-отпечаток, а браузер Chrome - другой.
Более современный JA4 добавляет анализ потока данных после установки соединения и менее подвержен рандомизации. Антибот-системы (особенно на уровне WAF) могут блокировать соединения с подозрительными JA3-отпечатками, даже не глядя на содержимое запроса.
Например, ботнет AISURU/Kimwolf использовал библиотеку curl с характерным отпечатком, и многие антиботы научились его выявлять.
Правда, современные антидетект-браузеры могут подменять TLS-отпечатки (например, с помощью патча OpenSSL), но это уже высший пилотаж.
Многие антибот-системы работают как облачный сервис (SaaS). Вы подключаете их через API: отправляете данные о запросе (IP, User-Agent, fingerprint, поведенческие метрики), а сервис возвращает решение: "бот" или "человек". Примеры: Cloudflare Bot Management, Datadome, PerimeterX, российские KillBot и Variti.
Преимущества такого подхода: не нужно самим обучать модели и настраивать правила. Провайдер агрегирует данные с тысяч сайтов и постоянно обновляет алгоритмы. Кроме того, облачные сервисы могут обмениваться информацией о новых ботнетах в реальном времени.
Например, KillBot использует технологию "слепка программы" (software snapshot), которая идентифицирует бота по уникальному отпечатку самой вредоносной программы, а не по IP или User-Agent. Это позволяет детектировать даже тех, кто использует резидентские прокси.
Есть также антиботы на уровне DNS (экран KillBot): вы меняете A-запись домена на IP фильтрующего сервера. Бот даже не добирается до вашего сайта - его запрос обрубается на подлёте. Это лучший метод против парсинга и скликивания.
Вместо того чтобы мучить человека капчой, можно заставить браузер клиента выполнить небольшую вычислительную задачу. Например, вычислить хеш от строки. Для человека это незаметно (браузер делает это за доли секунды), а для бота, который не имеет полноценного движка JavaScript, это препятствие. Такой подход используют, например, системы Cloudflare (I'm Under Attack Mode) и некоторые специализированные антиботы.
Proof-of-work (PoW) эффективен против дешёвых ботнетов на слабых устройствах. Но мощные бот-фермы на хороших серверах тоже могут решать эти задачи, поэтому метод сам по себе не панацея.
Золотое правило: ни один метод сам по себе не даёт 100% защиты. Поэтому антиботы комбинируют десятки проверок и выносят вердикт на основе взвешенной оценки. Вот как выглядит типичная "диагностическая карта" для одного запроса:
Система суммирует баллы, и если порог превышен, бот блокируется. Пороги часто настраиваются администратором сайта (чувствительность).
Самые эффективные современные антиботы используют машинное обучение: они не прописывают веса вручную, а обучаются на размеченных данных (реальные боты vs реальные люди). Это позволяет выявлять сложные нелинейные зависимости.
Пока одни антиботы пытаются вычислить злоумышленника по IP или поведению, KillBot пошёл другим путём. Вместо анализа внешних параметров система создаёт "слепок программы" (software snapshot) - уникальный цифровой отпечаток, который идентифицирует не посетителя, а саму программу, которая генерирует бот-трафик. Если бот изменит User-Agent, IP через прокси или подменит заголовки - слепок программы останется неизменным, и KillBot всё равно его узнает.
В личном кабинете KillBot весь трафик автоматически кластеризуется по слепкам: у реальных пользователей - свои слепки, у ботов - свои. Это позволяет видеть не просто "много ботов", а конкретные программы, которые атакуют сайт. Более того, система различает разные типы ботов: парсеры цен, скликивальщики рекламы, спам-боты и даже легитимные поисковые роботы - для каждого можно настроить индивидуальные правила обработки.
KillBot предлагает два способа интеграции, и от выбора зависит, будете ли вы просто видеть ботов или полностью блокировать их доступ к сайту.
JS-интеграция (аналитический режим, без защиты). Скрипт KillBot размещается на сайте, система помечает визиты ботов в Яндекс.Метрике и Google Analytics, но боты продолжают заходить и грузить сервер. Этот режим подходит для сбора данных и создания аудиторий ботов для рекламных кабинетов, но не даёт реальной защиты.
DNS-экран (рекомендуемый режим). Вы меняете A-запись домена на IP-адрес защитного сервера KillBot. Весь трафик фильтруется до того, как достигнет вашего сайта. Бот даже не успевает загрузить страницу - его запрос обрывается на подходе, клик не фиксируется в рекламной аналитике, бюджет не списывается. Это единственный вариант, который реально защищает от спам-заявок, парсинга и скликивания.
KillBot не просто блокирует ботов - для каждого слепка можно настроить индивидуальное действие:
Одна из самых болезненных проблем для бизнеса - скликивание рекламы. Боты кликают по объявлениям, бюджет уходит впустую, а продажи не растут. KillBot помогает и здесь. После подключения DNS-экрана система создаёт аудиторию ботов и передаёт её в Яндекс.Директ через API. Вы задаёте корректировку ставок "-100%" - и боты просто не видят вашу рекламу.
Кроме того, KillBot можно настроить так, чтобы скрыть коды аналитики от ботов, и тогда их визиты не попадают в Метрику. Ваша статистика становится чистой, а алгоритмы Директа не обучаются на "плохом" трафике.
Представьте, что каждый бот - это автомобиль. Традиционные антиботы пытаются опознать его по номеру (IP) или марке (User-Agent). Но вор легко сменит номер и перекрасит машину.
Бот может менять IP, подменять заголовки, использовать прокси - слепок его программы остаётся неизменным, и KillBot его узнает.
Более того, KillBot различает даже эмуляцию - когда бот притворяется браузером Chrome, но на самом деле управляется скриптом. Слепок программы-автоматизатора будет отличаться от слепка реального браузера. Именно поэтому система эффективна против самых продвинутых поведенческих ботов, включая Resident Proxies и антидетект-браузеры.
Принципиальная разница в точке фильтрации. JS-интеграция работает на стороне клиента, когда скрипт уже загрузился в браузер бота.
Это даёт несколько преимуществ:
KillBot предлагает гибкие настройки для администраторов любого уровня. Начать можно с настроек по умолчанию, которые обеспечивают 90-95% качества фильтрации. Для более точной настройки доступны группы правил WAF на основе параметров браузера, данных KillBot и IP-адреса - можно задать нужное действие (блокировка, капча, зацикливание, скрытие аналитики). При желании можно развернуть KillBot на своём сервере по инструкции.
При обнаружении ошибки (бот классифицирован как человек или наоборот) администратор может вручную скорректировать тип слепка - в следующий раз система не повторит эту ошибку. ИИ-помощник также автоматически обучается на вашем трафике и корректирует правила фильтрации без участия человека.
При выборе антибота стоит обратить внимание на KillBot, если ваш бюджет ограничен (от 999 ₽/мес), но нужна надёжная защита от парсинга и скликивания. Технология "слепка программы" даёт преимущество в борьбе с самыми хитрыми ботами, а DNS-экран гарантирует защиту до загрузки сайта. JS-интеграция подойдёт, если ваша задача - только аналитика и сбор аудитории ботов для рекламных сетей.
Самое страшное для бизнеса - заблокировать реального клиента. Антиботы иногда ошибаются. Например, у пожилых людей может быть очень медленное движение мыши, или они используют старый браузер с нестандартными настройками. Также блокировать могут пользователей VPN (особенно если IP в дата-центре).
Поэтому хорошие антибот-системы дают администратору возможность:
Профессиональные решения, такие как KillBot, позволяют даже скорректировать модель под ваш сайт (дообучение на вашей аудитории).
Гонка вооружений продолжается. Боты становятся умнее, антиботы - сложнее. Пока что антиботы выигрывают в защите от массовых парсингов и спам-атак, но против целевых, хорошо замаскированных ботов (например, antidetect-браузеры с резидентскими прокси) - исход неоднозначен. Лучшая стратегия - многоуровневая защита: рейт-лимитинг, капча, поведенческий анализ, fingerprinting и облачный антибот-сервис.
И главное - не забывайте про человечность. Если вы заставите проходить капчу каждого посетителя - вреда будет больше. Настройте антибот с умом и периодически тестируйте его на себе (желательно не с рабочего IP).
А пока вы читали эту статью, какой-нибудь бот уже решил капчу за 2 цента и продолжил парсить конкурентов. Но вы теперь знаете, как ему противостоять. Удачи!
Cloudflare окончательно заблокирован в РФ ещё летом 2025 года.
Функцию фильтрации ботов Cloudflare взял на себя российский антибот Killbot.
Принцип работы отличается от привычного, отслеживаются не знакомые всем при настройке других антибот решений параметры (входящие IP адреса, AS подсети ботов, User Agent и прочее, всё это легко подделывается), а уникальные для каждого набора браузеров слепки.
По отличию оригинального браузера от модифицированного, тот или иной заход определяется либо как заход реального посетителя, либо как заход бота.
Чтобы не повторяться - расписывал более подробно в статьях:
Попробовать бесплатно. При регистрации в Killbot введите промокод
promo13
и получите месяц тестирования платного тарифа Killbot (фильтрация трафика, 1000 руб) и Ads (отключение показа рекламы поведенческим ботам, 1000 руб) в качестве бонуса. Этого вам хватит на то, чтобы понять, подходит вам данное решение, или нет. На данный момент - в Рунете нет более достойной альтернативы, по соотношению цена-качество. Срок действия промокода ограничен по времени, куда-то записывать его нет смысла. В следующий раз промокод уже будет другой, поэтому использовать его нужно сейчас, когда вы читаете этот текст. Промокод действует только в форме регистрации. Если аккаунт уже создан - создайте новый, на другой почте, и при регистрации в последнем поле введите промокод.
Подпишитесь на Telegram канал / MAX для того, чтобы всегда быть в курсе последних новостей и обновленных настроек для защиты от ботов, а также оперативно получать новые материалы, выходящие на antibot24.ru

Автор статей: Сергей (AntiBot24). Эксперт в области фильтрации поведенческого трафика, настройки антибот систем. Высший рейтинг на Kwork, более 680 отзывов, 100% заказов успешно сдано, 56% повторных заказов. Пишу подробные статьи, инструкции по фильтрации ботов в своем блоге antibot24.ru
Всегда нужно иметь в виду, что те советы, которые вы прочли в статьях - это лишь часть настроек, которые я делаю при профессиональной экспертной настройке фильтрации поведенческих ботов. Все остальное - это непубличные профессиональные секреты. Любая информация, становящаяся общедоступной - достаточно быстро устаревает и перестает быть эффективной.
Если вы столкнулись с повышенной роботностью в Яндекс метрике, увеличением числа прямых заходов, увеличением количества отказов - вы всегда можете заказать у меня настройку Killbot.