Что такое captcha solver: как обходят капчу и как защитить сайт
Содержание
- Что такое капча и зачем она нужна
- Краткая история
- Зачем капчу встраивают на сайт
- От чего защищает капча
- Кто и зачем обходит капчу
- Белые сценарии
- Серая зона
- Чёрные сценарии
- Обход сам по себе не является нарушением
- Что такое captcha solver
- Сначала о том, что вообще значит «решить капчу»
- Сервисы решения капч по API
- Локальные инструменты
- Собственные решения и обученные модели
- Мультимодальные нейросети
- Сравнение подходов
- Законность обхода капчи
- Что определяет законность
- Позиция captcha-solver
- Как усложнить обход капчи на вашем сайте
- Начните с правильной интеграции капчи
- Ограничивайте частоту по нескольким ключам
- Анализируйте происхождение трафика
- Собирайте поведенческие сигналы
- Растяжки и триггерные сценарии
- Бизнес-логика как защита
- Объедините всё в оценку риска
- Защита строится под бизнес
- Почему одной капчи недостаточно
- Капча проверяет момент, а не намерение
- Продвинутые решения существуют, но дороги
- Обойти можно всё, вопрос в цене
- Как выглядит современный бот
- Игра в кошки-мышки
- Почему об успешной защите молчат
- Выводы
- К чему быть готовым
- Частые вопросы
- Что такое captcha solver простыми словами?
- Законно ли пользоваться сервисом решения капч?
- Может ли сайт понять, что капчу решил сервис?
- Какой капчи достаточно для небольшого сайта?
Капча стоит почти на каждой форме входа, регистрации и оформления заказа. При этом существует целая индустрия, которая умеет её проходить: сервисы решения капч, open-source инструменты, обученные нейросети. В этой статье разберём, что такое captcha solver, кто и зачем им пользуется, где проходит граница между автоматизацией и злоупотреблением, и главное: почему капча сама по себе не защищает сайт и что нужно добавить, чтобы защита работала. Статья будет полезна разработчикам, которые встраивают защиту в свои проекты, владельцам сайтов и блогерам, которые страдают от спама и фейковых регистраций, и всем, кто хочет понимать, что происходит за галочкой «Я не робот».
Что такое капча и зачем она нужна#
CAPTCHA расшифровывается как Completely Automated Public Turing test to tell Computers and Humans Apart, то есть «полностью автоматический публичный тест Тьюринга, позволяющий отличить компьютер от человека». Идея простая: дать задачу, которую человек решает легко, а программа с трудом. Тот, кто справился, скорее всего человек.
Краткая история#
- 1997 год. Поисковик AltaVista столкнулся с ботами, которые массово добавляли ссылки в его индекс. Инженеры компании придумали показывать искажённый текст, который нужно перепечатать: OCR-программы того времени его не читали. Это считается одним из первых прототипов капчи.
- 2000-2003 годы. Исследователи Университета Карнеги-Меллон (Луис фон Ан, Мануэль Блюм, Николас Хоппер, Джон Лэнгфорд) сформулировали саму концепцию и дали ей название CAPTCHA. Одной из первых практических задач была защита чатов Yahoo, куда массово заходили боты с рекламными ссылками.
- 2007 год. Появилась reCAPTCHA. Её фишка была в том, что пользователи вместе с проверочным словом распознавали слово из оцифровываемых книг и газетных архивов, которое не смогла прочитать машина. Миллионы людей бесплатно помогали оцифровывать тексты. В 2009 году проект купила Google.
- 2014 год. Google опубликовала результаты: её же нейросеть распознавала самые сложные варианты искажённого текста с точностью около 99,8%. Текстовая капча перестала быть надёжной, и на смену пришла reCAPTCHA v2 с галочкой «Я не робот» и сетками картинок («выберите все изображения со светофорами»). Галочка оценивала не только клик, но и поведение браузера до него.
- 2018 год. Вышла reCAPTCHA v3, которая вообще ничего не показывает пользователю: она в фоне выставляет оценку от 0.0 до 1.0, а решение принимает сам сайт. Примерно тогда же появилась hCaptcha, а в 2020 году на неё перешёл Cloudflare.
- 2022 год и далее. Cloudflare выпустил Turnstile, капчу, которая в большинстве случаев проверяет браузер без каких-либо заданий. Apple вместе с Cloudflare и Fastly представили Private Access Tokens: устройство само подтверждает, что за ним реальный пользователь. Параллельно распространились слайдеры и пазлы (GeeTest, Tencent, Yandex SmartCaptcha): нужно дотянуть кусочек картинки до нужного места.
Общий тренд хорошо виден: капча постепенно уходит от «задачи для человека» к «невидимой оценке риска». Причина в том, что машины научились решать почти любые визуальные задачи. В 2023 году исследователи Калифорнийского университета в Ирвайне сравнили людей и ботов на популярных капчах, и боты оказались не только быстрее, но во многих случаях и точнее людей. В 2024 году команда ETH Zurich показала, что модель компьютерного зрения, по данным авторов, проходит графические задания reCAPTCHA v2 в 100% случаев.
Зачем капчу встраивают на сайт#
Капча нужна там, где одно автоматическое действие ничего не стоит злоумышленнику, а миллион таких действий наносит реальный ущерб. Типичные места:
- форма входа (защита от подбора паролей);
- регистрация (защита от массового создания аккаунтов);
- восстановление пароля и отправка SMS (каждое SMS стоит денег);
- комментарии, отзывы, формы обратной связи (защита от спама);
- оформление заказа, применение промокодов, голосования;
- поиск и тяжёлые страницы, которые нагружают сервер.
От чего защищает капча#
| Угроза | Как выглядит | Чем грозит |
|---|---|---|
| Перебор паролей и credential stuffing | Бот перебирает пары логин/пароль из утёкших баз | Захват аккаунтов, кража денег и данных |
| Массовые регистрации | Тысячи фейковых аккаунтов | Злоупотребление бонусами и пробными периодами, спам, накрутки |
| Спам | Автоматические комментарии и сообщения | Испорченная репутация, фильтры поисковиков |
| SMS- и email-бомбинг | Бот отправляет форму «прислать код» на чужие номера | Прямые расходы на SMS, блокировка почтового домена |
| Скальпинг | Бот выкупает билеты или дефицитный товар за секунды | Потерянные клиенты, перепродажа втридорога |
| Агрессивный парсинг | Сбор каталога или цен с высокой частотой | Нагрузка на сервер, потеря уникального контента |
| Накрутки | Фейковые голоса, клики, просмотры | Искажённая аналитика, мошенничество с рекламой |
Важно понимать, что капча не делает эти атаки невозможными. Она делает каждую попытку дороже и медленнее. Если раньше бот отправлял форму за 50 миллисекунд и бесплатно, то с капчей ему нужно время и деньги на решение. Для многих атак этого достаточно, чтобы они стали невыгодными. Для других нет, и об этом поговорим ниже.
Кто и зачем обходит капчу#
Распространённый стереотип: капчу обходят только хакеры и спамеры. На практике среди тех, кто автоматизирует прохождение капчи, много вполне легальных пользователей. Удобно разделить сценарии на три группы.
Белые сценарии#
- QA-инженеры и автотесты. На тестовом стенде капчу часто можно отключить или включить тестовые ключи. Но end-to-end тесты на продакшене, проверка реальной интеграции капчи или тесты сторонних виджетов требуют, чтобы капча проходилась автоматически.
- Мониторинг собственных сервисов. Синтетический мониторинг регулярно проходит путь пользователя (вход, оформление заказа) и сообщает, если что-то сломалось. Капча на этом пути не должна мешать проверке.
- Доступность. Людям с нарушениями зрения или моторики капча может закрывать доступ к сервису целиком. Вспомогательные инструменты помогают им пройти проверку.
- Автоматизация собственных рабочих процессов. Выгрузка отчётов из личного кабинета банка или поставщика, где у компании есть аккаунт, но нет API.
- Исследования. Научные и журналистские исследования, архивирование общедоступной информации, проверка безопасности по договору с владельцем системы (пентест).
Серая зона#
- Сбор общедоступных данных. Мониторинг цен конкурентов, агрегаторы вакансий и объявлений, SEO-аналитика. Сами данные открыты, но правила сайта могут запрещать автоматический сбор.
- Массовое управление аккаунтами. SMM-специалисты и агентства, которые ведут десятки клиентских аккаунтов. Законно, пока не нарушает правила платформы, а многие платформы это ограничивают.
- Автоматическая запись и покупка. Бот, который ловит свободную запись к врачу или в визовый центр. Для одного человека это удобство, а массово превращается в перепродажу слотов.
В серой зоне законность зависит от деталей: правил конкретного ресурса, объёма запросов, того, какие данные собираются и что с ними потом происходит.
Чёрные сценарии#
- подбор паролей и захват чужих аккаунтов;
- массовые регистрации ради бонусов, спама и мошенничества;
- рассылка спама через формы;
- скальпинг билетов и дефицитных товаров;
- накрутка голосований, отзывов и рекламных кликов;
- кража персональных данных и контента.
Обход сам по себе не является нарушением#
Капча технически всего лишь элемент интерфейса. Законы большинства стран не содержат отдельного запрета на её автоматическое решение. Нарушением становится то, ради чего капчу обходят, и то, что этим нарушаются конкретные правила:
- законодательство: несанкционированный доступ к компьютерной информации, мошенничество, нарушение законов о персональных данных, спам;
- правила пользования ресурсом: многие сайты прямо запрещают автоматизированный доступ в своих условиях использования, и их нарушение может стать основанием для блокировки или гражданского иска.
Если оба условия соблюдены, то есть местное законодательство не запрещает ваше действие и правила ресурса его допускают, автоматическое прохождение капчи само по себе ничего не нарушает. Подробнее о юридической стороне поговорим в отдельном разделе.
Что такое captcha solver#
Captcha solver («решатель капч») — это любой инструмент или сервис, который автоматически проходит проверку капчи вместо человека и возвращает результат: распознанный текст, координаты кликов или токен, подтверждающий прохождение. Под этим названием скрываются очень разные по устройству вещи, от облачного API до нейросети на ноутбуке разработчика. Разберём основные варианты.
Сначала о том, что вообще значит «решить капчу»#
Капчи бывают двух принципиально разных типов, и от этого зависит, как работает решатель.
Капчи-картинки. Пользователю показывают изображение: искажённый текст, сетку картинок, пазл. Решением здесь будет ответ на задание: текст, номера картинок, координаты кликов или смещение слайдера. Решателю достаточно получить картинку.
Токен-капчи. reCAPTCHA, hCaptcha, Cloudflare Turnstile, Yandex SmartCaptcha работают иначе. Виджет на странице проверяет браузер и пользователя, после чего выдаёт токен, длинную строку, которая вставляется в форму. Сервер сайта отправляет этот токен на проверку провайдеру капчи и получает ответ: прошёл пользователь проверку или нет. Решателю здесь нужно получить валидный токен для конкретного сайта. Для этого он использует публичный ключ сайта (sitekey) и адрес страницы, а иногда и прокси, чтобы проверка шла с нужного IP.
У токена ограниченный срок жизни: у reCAPTCHA около двух минут, у Turnstile около пяти, и использовать его можно только один раз.
Сервисы решения капч по API#
Самый распространённый вариант. Это облачный сервис, которому вы через HTTP API отправляете задачу и через некоторое время забираете готовое решение. Схема почти у всех одинаковая:
- Клиент отправляет задачу методом
createTask: тип капчи и её параметры (картинку или адрес страницы и sitekey). - Сервис возвращает идентификатор задачи
taskId. - Клиент раз в несколько секунд запрашивает результат методом
getTaskResult. - Когда решение готово, сервис возвращает его, а клиент подставляет ответ в форму или в запрос.
Внутри сервиса задачи решают:
- люди. Исторически первый вариант: распределённая сеть исполнителей, которые за небольшую плату решают показанные им задания. Медленнее машин, зато справляются с новыми и нестандартными типами капчи;
- нейросети. Модели компьютерного зрения для картинок и автоматизированные браузеры для токен-капч. Быстро и дёшево на массовых типах;
- гибридная схема. Большинство современных сервисов сочетает оба подхода: типовые задачи решает машина, сложные и новые уходят людям.
Плюсы для клиента: не нужно ничего обучать и поддерживать, оплата за каждое решение, поддержка десятков типов капчи через один API. Минусы: каждое решение стоит денег, есть задержка в несколько секунд, а данные задачи (адрес страницы, картинка) передаются третьей стороне.
Примечание
Подробно о форматах запросов, типах задач и ошибках можно прочитать в документации API.
Локальные инструменты#
Решатель не обязательно облачный. Есть инструменты, которые работают на компьютере пользователя или на сервере разработчика:
- OCR-библиотеки (например, Tesseract) с предобработкой изображения: убрать шум, выровнять, бинаризовать. До сих пор справляются с простыми самописными текстовыми капчами.
- Браузерные расширения. Например, расширения, которые проходят аудиоверсию reCAPTCHA через распознавание речи. Изначально их часто создают как инструменты доступности.
- Плагины к фреймворкам автоматизации (Playwright, Puppeteer, Selenium). Они маскируют признаки автоматизированного браузера, а саму капчу либо проходят локально, либо передают в облачный сервис.
- Алгоритмы компьютерного зрения для слайдеров. Для многих пазлов достаточно найти контур вырезанного фрагмента (например, средствами OpenCV) и рассчитать смещение, а затем сгенерировать «человеческую» траекторию движения мыши.
Локальные инструменты бесплатны и не передают данные наружу, но требуют настройки и ломаются, как только провайдер капчи что-то меняет.
Собственные решения и обученные модели#
Компании, которым капчу нужно проходить в больших объёмах, иногда строят решатель сами:
- Классификаторы и детекторы. Свёрточная нейросеть для распознавания текста конкретной капчи обучается на нескольких тысячах размеченных примеров. Для сеток картинок используют детекторы объектов вроде YOLO.
- Модели поведения. Генерация движений мыши, скорости набора и пауз, которые выглядят человеческими для поведенческого анализа.
- Ферма браузеров. Пул настоящих браузеров с разными профилями и прокси, которые проходят токен-капчи так же, как это делал бы пользователь.
Такой путь дорог: нужны данные для обучения, инфраструктура и постоянная поддержка. Окупается он только при очень больших объёмах или для экзотической капчи, которую не поддерживают сервисы.
Мультимодальные нейросети#
Отдельный класс, который появился недавно. Языковые модели, умеющие работать с изображениями, решают многие визуальные задания без какого-либо специального обучения: описывают, что на картинке, читают искажённый текст, находят нужные объекты. А AI-агенты, управляющие браузером, проходят пользовательские сценарии целиком, включая капчу. Провайдеры моделей обычно ограничивают такое использование правилами и встроенными отказами, но открытые модели такой защиты не имеют. Для защитников это означает, что граница «что может только человек» сдвигается ещё быстрее.
Сравнение подходов#
| Подход | Что нужно | Скорость | Стоимость | Устойчивость к изменениям капчи |
|---|---|---|---|---|
| Сервис по API | Ключ API и пара HTTP-запросов | Секунды | Плата за каждое решение | Высокая: поддержку новых версий обеспечивает сервис |
| Локальный инструмент | Установка и настройка | Быстро | Бесплатно | Низкая: ломается при обновлениях |
| Своя модель | Данные, обучение, инфраструктура | Быстро | Высокие начальные затраты | Средняя: нужно переобучать |
| Мультимодальная нейросеть | Доступ к модели | Секунды | Плата за запросы или своё железо | Средняя: зависит от типа задания |
Итак, на вопрос «what is a captcha solver» короткий ответ такой: это всё, что автоматически превращает задание капчи в принятый сайтом ответ. Человек на другом конце API, OCR-скрипт, расширение браузера, обученная нейросеть или их сочетание.
Законность обхода капчи#
Важно
Этот раздел описывает общие принципы и не является юридической консультацией. Если ваш сценарий находится в серой зоне, обратитесь к юристу, который знает законодательство нужной страны.
Что определяет законность#
Единого закона «о капче» нет, законность складывается из нескольких слоёв:
- Законы о компьютерной информации. Почти в каждой стране есть статьи о несанкционированном доступе к компьютерным системам: Computer Fraud and Abuse Act в США, Computer Misuse Act в Великобритании, статья 272 УК РФ в России. Если обход капчи используется для доступа к тому, к чему у вас доступа нет (чужие аккаунты, закрытые разделы), это уже не автоматизация.
- Персональные данные. GDPR в ЕС, 152-ФЗ в России и аналогичные законы регулируют сбор персональных данных независимо от того, открыты ли они публично.
- Права на контент и базы данных. Тексты, фото и сама база данных сайта могут быть защищены авторским правом или правом изготовителя базы данных (в России статья 1334 ГК РФ, в ЕС директива о базах данных).
- Правила пользования ресурсом. Пользовательское соглашение юридически является договором. Его нарушение обычно не уголовное преступление, но может стать основанием для блокировки и гражданского иска.
Показательный пример: в многолетнем споре hiQ Labs против LinkedIn американские суды пришли к выводу, что сбор общедоступных профилей сам по себе не нарушает CFAA. Но в 2022 году суд признал, что hiQ нарушила пользовательское соглашение LinkedIn, и дело закончилось мировым соглашением: hiQ обязалась прекратить сбор данных и удалить собранное. В России известен спор «ВКонтакте» с компанией Double Data о сборе данных профилей, который шёл с 2017 года. Ключевым вопросом в нём стали смежные права соцсети на базу данных пользователей, а в 2022 году стороны заключили мировое соглашение.
Отдельно важно: учитывается законодательство не только вашей страны, но и страны, где находится целевой ресурс и его пользователи.
Позиция captcha-solver#
Мы делаем сервис для законной автоматизации и прямо запрещаем злонамеренное использование. Это зафиксировано в двух документах, которые принимает каждый клиент:
- Условия использования: сервис можно использовать только в законных целях; запрещено обходить защиту систем, которыми вы не владеете и на тестирование которых у вас нет явного разрешения, рассылать спам и вести любую деятельность, нарушающую закон.
- Политика допустимого использования: разрешённые сценарии (тестирование своих приложений, CI/CD, инструменты доступности, сбор данных в соответствии с правилами целевого сайта и законами страны, где он находится) и запрещённые (credential stuffing и брутфорс, обход защиты сторонних сайтов в нарушение их правил, массовое создание аккаунтов, спам, накрутки, мошенничество).
Мы отслеживаем использование API на предмет злоупотреблений и блокируем аккаунты, которые нарушают эти правила. Ответственность за соответствие законам и правилам целевого ресурса лежит на клиенте, и незнание применимого закона не освобождает от неё.
Как усложнить обход капчи на вашем сайте#
Теперь посмотрим на ситуацию со стороны защиты. Главная мысль раздела: капча остаётся лишь одним слоем из многих, и чем больше независимых слоёв, тем дороже атака. Ниже меры от простых к сложным.
Начните с правильной интеграции капчи#
Удивительно много сайтов «защищены» капчей, которую можно обойти, вообще ничего не решая. Проверьте свою интеграцию:
- Токен проверяется на сервере. Если проверка есть только в JavaScript, бот просто отправляет форму напрямую. Сервер обязан вызвать метод проверки провайдера (
siteverifyу reCAPTCHA, hCaptcha и Turnstile) при каждой отправке формы. - Проверяются поля ответа, а не только
success. Сверяйтеhostname(токен решён на вашем домене, а не на чужом сайте с тем же ключом),action, если провайдер его возвращает (токен выдан для этой формы), время выдачи и, для reCAPTCHA v3, порогscore. - Токен одноразовый. Провайдер не примет токен повторно, но это работает, только если вы действительно отправляете его на проверку каждый раз, а не кешируете результат по сессии.
- Нет запасного пути без капчи. Мобильное приложение, старая версия API, отдельный эндпоинт для партнёров: боты быстро находят ту дверь, где капчи нет.
- Сбой провайдера не открывает дверь. Если сервис капчи недоступен, решите заранее, что делать: пропускать всех (fail open) или никого (fail closed). Пропускать всех на форме входа опасно.
Ограничивайте частоту по нескольким ключам#
Лимит «N запросов в минуту с одного IP» ломается первым же пулом прокси. Нужны лимиты по нескольким независимым ключам:
- по IP и подсети;
- по аккаунту или email, на который идут попытки входа, независимо от IP: так смена прокси не продлевает перебор;
- по устройству или отпечатку браузера;
- глобальный лимит на действие (например, не больше определённого числа SMS в час на весь сервис).
Увеличивайте счётчик атомарно и до выполнения самой проверки, иначе пачка параллельных запросов проскакивает лимит. Окна делайте разной длины: короткое режет всплески, длинное ловит медленный перебор, рассчитанный на сброс короткого окна.
Анализируйте происхождение трафика#
- Тип сети (ASN). Запросы на регистрацию из диапазонов хостинг-провайдеров и облаков подозрительнее, чем из сетей домашних провайдеров.
- Репутация IP. Коммерческие и открытые базы помечают прокси, VPN, выходные узлы Tor и адреса, замеченные в атаках. На их основе можно вести собственный рейтинг IP: каждый подозрительный эпизод снижает оценку, долгая нормальная активность повышает.
- Согласованность. Часовой пояс браузера, язык, геолокация IP и регион аккаунта должны примерно совпадать. Браузер с московским временем, английским интерфейсом и IP из Бразилии сам по себе не преступник, но повод присмотреться.
- Технические отпечатки. Отпечатки TLS-рукопожатия (JA3/JA4), параметры HTTP/2 и порядок заголовков выдают HTTP-клиент, который представляется Chrome, но им не является.
Внимание
Не баньте мобильные IP вслепую. Мобильные операторы выпускают в интернет тысячи абонентов через один адрес (CGNAT), и блокировка такого IP отрежет реальных пользователей. Для таких сетей лучше повышать сложность проверки, а не блокировать.
Собирайте поведенческие сигналы#
- Время заполнения формы. Человек не заполняет форму регистрации за доли секунды.
- Поле-ловушка (honeypot). Скрытое от человека поле, которое бот заполняет автоматически.
- Путь по сайту. Пользователь сначала открывает страницу, потом отправляет форму. Бот часто сразу шлёт
POSTбез предварительногоGET, без загрузки стилей и скриптов. - Взаимодействие с интерфейсом. Движения мыши, фокус полей, скорость набора, прокрутка. Эти сигналы хорошо работают в связке, но сами по себе подделываются.
Примечание
Сбор поведенческих данных и отпечатков устройства подпадает под законы о персональных данных (GDPR, 152-ФЗ). Опишите его в политике конфиденциальности и собирайте только то, что действительно используете для защиты.
Растяжки и триггерные сценарии#
Растяжкой (tripwire) называют действие, которое невозможно совершить через обычный интерфейс. Если оно произошло, перед вами скрипт или человек, который вручную модифицирует запросы. Примеры:
- в запросе пришли поля или типы данных, которых форма никогда не отправляет;
- изменено значение, которое интерфейс не позволяет менять;
- пачка одинаковых параллельных запросов за миллисекунды;
- в запросе подменены значения, которые должен рассчитывать сервер (цена, скидка, чужой идентификатор);
- обращение к адресам, которых у сайта нет и быть не может (типичные пути сканеров уязвимостей).
Хорошая практика: реагировать на растяжку не мгновенным баном, а «теневым» режимом и отложенной блокировкой. Если бан приходит сразу, атакующий легко определяет, какое именно действие его выдало, и обходит эту проверку. Если аккаунт продолжает «работать», но на деле ничего не может, а блокировка наступает с задержкой, понять причину гораздо сложнее.
Бизнес-логика как защита#
Часто самое эффективное средство вообще не техническое:
- один почтовый ящик, один аккаунт: учитывайте, что у многих почтовых сервисов один ящик принимает письма на несколько вариантов адреса;
- запрет одноразовых почтовых доменов при регистрации;
- подтверждение почты или телефона до доступа к ценным действиям;
- бонусы и пробные периоды выдаются после подтверждённого действия (оплата, привязка карты), а не сразу после регистрации;
- задержка выплат и вывода средств для новых аккаунтов.
Такие меры не мешают живым пользователям, но ломают экономику массовых регистраций.
Объедините всё в оценку риска#
Отдельные сигналы шумные, поэтому решения стоит принимать по совокупной оценке риска:
| Оценка риска | Действие |
|---|---|
| Низкая | Пропустить без капчи или с невидимой проверкой |
| Средняя | Показать капчу, добавить задержку, запросить подтверждение по почте |
| Высокая | Заблокировать, перевести в теневой режим, поднять алерт |
Такая адаптивная схема лучше постоянной капчи на всех: честные пользователи почти не видят проверок, а подозрительный трафик получает больше препятствий.
И обязательно мониторинг. Логируйте отказы капчи, срабатывания лимитов и растяжек, настройте алерты на всплески. Атака, о которой вы узнали через неделю из жалоб клиентов, обходится намного дороже атаки, замеченной через пять минут.
Защита строится под бизнес#
Универсального рецепта нет. Интернет-магазину важно защитить промокоды и остатки товаров, банку вход и переводы, медиа комментарии, SaaS пробные периоды. Начинайте с вопроса «какое автоматическое действие стоит нам больше всего денег» и защищайте сначала его. Анализируйте реальные атаки в своих логах: они покажут, какие слои нужны именно вам.
Почему одной капчи недостаточно#
Капча проверяет момент, а не намерение#
Капча отвечает на узкий вопрос: «прошёл ли кто-то проверку сейчас». Она не знает, кто это был: человек, нейросеть или исполнитель сервиса решения капч, которому заплатили доли цента. Она не видит, что это тысячная попытка входа в чужой аккаунт за час. Именно поэтому решения о доступе нужно принимать на основе контекста, а капча остаётся лишь одним из сигналов.
Продвинутые решения существуют, но дороги#
На рынке есть системы защиты от ботов, которые показывают очень высокую эффективность. Хороший пример DataDome: это не просто капча, а платформа, которая анализирует каждый запрос в реальном времени по множеству сигналов (отпечатки устройства и сети, поведение, репутация, машинное обучение на трафике тысяч сайтов) и показывает проверку только тогда, когда риск действительно высок. К тому же классу относятся Akamai Bot Manager, HUMAN Security, Kasada, корпоративный Bot Management от Cloudflare.
Проблема в цене. Такие решения ориентированы на крупный бизнес, и средний проект обычно не может себе их позволить: подписка может стоить больше, чем ущерб от ботов, от которого она защищает. Поэтому большинство сайтов живёт с бесплатной или недорогой капчей и собственными мерами защиты, описанными выше.
Обойти можно всё, вопрос в цене#
Даже самую продвинутую защиту можно обойти. Правильный вопрос не «можно ли», а «сколько это стоит и окупается ли». Каждый слой защиты повышает стоимость одной успешной попытки: решение капчи, качественный прокси, свежий профиль браузера, время на имитацию поведения. Атака имеет смысл, пока ожидаемая выгода больше затрат.
Отсюда практический вывод: защита не обязана быть непробиваемой. Она должна делать атаку на ваш сайт дороже, чем выгода от неё, и дороже, чем атаку на соседний сайт.
Как выглядит современный бот#
Против серьёзной защиты используют уже не скрипт на requests, а целый набор инструментов:
- антидетект-браузеры с сотнями профилей, у каждого свой правдоподобный отпечаток: видеокарта, шрифты, разрешение экрана, часовой пояс, язык;
- резидентные и мобильные прокси, то есть трафик через IP-адреса реальных домашних пользователей и мобильных операторов, которые невозможно заблокировать без вреда для настоящих клиентов;
- имитация человека: паузы, движения мыши по кривым, опечатки при вводе, прогрев аккаунтов неделями обычной активности;
- сервисы решения капч для тех проверок, которые всё-таки появились.
Такой бот выглядит для обычной капчи как обычный пользователь. Распознать его можно либо продвинутыми коммерческими системами, либо собственной антифрод-системой: накопленной историей поведения пользователей, связями между аккаунтами (общие устройства, платёжные данные, похожие сценарии) и аномалиями на уровне бизнес-метрик.
Игра в кошки-мышки#
Противостояние ботов и защитников — вечная гонка. Защита выпускает новую проверку, через несколько недель появляется способ её пройти. Боты осваивают новую технику маскировки, защита учится её замечать. Обе стороны используют машинное обучение, обе стороны постоянно адаптируются. Любое «финальное» решение работает ровно до тех пор, пока атакующим не станет выгодно его разобрать.
Почему об успешной защите молчат#
У защитников есть структурный недостаток: информация о действительно эффективных методах обнаружения почти никогда не публикуется. Как только становится известно, по какому признаку вычисляют ботов, ботоводы тут же убирают этот признак. Поэтому вендоры держат сигналы в секрете, компании не рассказывают о своих антифрод-правилах, а в открытом доступе в основном остаются общие принципы и уже устаревшие техники.
Атакующие, наоборот, активно делятся инструментами и опытом на форумах и в чатах. Для защитника это означает простую вещь: не ждите готового рецепта из интернета, изучайте собственный трафик. Ваши логи знают о ботах на вашем сайте больше, чем любая статья.
Выводы#
Капча прошла путь от искажённого текста до невидимой оценки риска, но её задача не изменилась: сделать автоматическое действие дороже. Главное из статьи:
- Captcha solver — это любой инструмент, который автоматически проходит капчу: облачный сервис с людьми или нейросетями, локальный скрипт, расширение браузера, собственная обученная модель или мультимодальная нейросеть.
- Обход капчи сам по себе не нарушение. Законность определяют цель, законы вашей страны и страны целевого ресурса, а также правила этого ресурса. Тестирование, мониторинг и доступность относятся к законным сценариям, взлом аккаунтов, спам и накрутки нет.
- Капча повышает стоимость атаки, но не останавливает её. Любую капчу можно пройти, вопрос только в том, окупается ли это для атакующего.
- Защита строится слоями. Правильная серверная проверка токена, лимиты по нескольким ключам, анализ происхождения трафика, поведенческие сигналы, растяжки и бизнес-логика вместе дают намного больше, чем любая капча по отдельности.
- Серебряной пули нет. Коммерческие антибот-платформы эффективны, но дороги, а противостояние с ботами не заканчивается никогда. Лучший источник знаний о ботах на вашем сайте лежит в ваших собственных логах.
К чему быть готовым#
Разработчикам. Капча будет пройдена: человеком, сервисом или нейросетью. Проектируйте защиту исходя из этого. Проверяйте токены на сервере со всеми полями, ставьте лимиты по нескольким ключам, логируйте и мониторьте. Капча служит одной из стен, а не всем замком.
Владельцам сайтов и блогерам. Для небольшого сайта обычно хватает современной капчи (Turnstile, reCAPTCHA или SmartCaptcha), антиспам-фильтра для комментариев, подтверждения почты и запрета одноразовых адресов. Если ботов становится больше, сначала посмотрите в логи, что именно они делают, и закрывайте конкретный сценарий.
Обычным пользователям. Если капча показывается вам слишком часто, дело, скорее всего, в репутации вашего IP: VPN, публичный Wi-Fi или мобильный интернет, через который выходит много людей. Капча здесь не обвиняет вас, а просто не видит достаточно сигналов, что вы человек.
Всем. Граница между человеком и машиной размывается, и капчи будут становиться всё более незаметными, а защита всё более «поведенческой». Это значит больше анализа данных о пользователях, а значит, вопросы приватности будут звучать всё громче.
Частые вопросы#
Что такое captcha solver простыми словами?#
Это программа или сервис, который проходит капчу вместо человека. Вы передаёте ему задание (картинку или адрес страницы с капчей), а получаете ответ, который принимает сайт: распознанный текст, координаты кликов или токен. Решать задание при этом могут люди, нейросети или и те и другие.
Законно ли пользоваться сервисом решения капч?#
Сам по себе да, если ваш сценарий не нарушает законы вашей страны и страны целевого ресурса, а также правила использования этого ресурса. Тестирование собственных приложений, мониторинг и инструменты доступности относятся к законным сценариям. Захват чужих аккаунтов, спам и массовые регистрации запрещены и законом, и правилами сервисов решения капч.
Может ли сайт понять, что капчу решил сервис?#
По одной капче обычно нет: токен, полученный сервисом, валиден. Но сайт видит другие сигналы: откуда пришёл запрос, как вёл себя браузер, сколько было попыток. Именно по ним, а не по капче, и вычисляют автоматизацию.
Какой капчи достаточно для небольшого сайта?#
Неуязвимой капчи нет, поэтому важнее не выбор конкретной капчи, а то, что стоит вокруг неё. Для небольшого сайта обычно хватает современной бесплатной капчи (Turnstile, reCAPTCHA, SmartCaptcha) на действиях, злоупотребление которыми стоит денег: вход, регистрация, отправка SMS, заказ, комментарии. Ставить её на все формы подряд не нужно: капча ухудшает удобство и снижает конверсию. Добавьте к ней подтверждение почты, ограничение частоты запросов и следите за логами.