TGW CREATIVE

Кейс: защита от брутфорса через проверку утечек паролей

Если вы ищете российский аналог Cloudflare для защиты страниц авторизации, стоит начать с того, что брутфорс перестал быть шумной атакой с тысячами запросов в секунду. В 2025 году доля словарных атак на формы входа в российском сегменте выросла, по разным оценкам, на 40-60 процентов, и большинство из них идёт медленно, распределённо и с реальными паролями из утёкших баз. Капча и лимит попыток на IP такие атаки почти не ловят: бот делает 3-5 запросов в час с resident-прокси, а словарь собран из баз вроде Collection #1 и десятков российских утечек.

Ниже разобран кейс интернет-магазина на Bitrix, где WAF пропустил подбор учётных данных, потому что каждый отдельный запрос выглядел легитимным: валидный User-Agent, корректный CSRF-токен, человеческая задержка между попытками. Единственным признаком атаки было то, что часть логинов и паролей уже фигурировала в публичных утечках. Именно проверка паролей по базе утечек, а не сигнатурный WAF, остановила подбор.

Дальше чек-лист: как воспроизвести такую защиту, какие пороги выставить, как это сочетается с российским аналогом Cloudflare и почему зависимость от зарубежной инфраструктуры в 2026 году создаёт отдельные риски для сайтов, которые принимают трафик из РФ.

Контекст: рост брутфорс-атак на страницы авторизации

Брутфорс на страницах авторизации перестал быть шумным фоном. По данным профильных российских исследователей ИБ-инцидентов, в 2025 году доля атак на формы входа в веб-приложениях выросла примерно на треть относительно 2024-го, и это только те случаи, которые дошли до логов и алертов. Типичный интернет-магазин на Bitrix или блог на WordPress получает от нескольких сотен до нескольких тысяч попыток подбора логина и пароля в сутки. Для крупных e-commerce и сервисов с личными кабинетами счёт идёт на миллионы запросов в месяц.

Механика атаки тоже изменилась. Раньше это был грубый перебор одного аккаунта по словарю из тысячи паролей. Теперь работают распределённо: пул из десятков тысяч IP, в том числе российских residential-прокси, низкая скорость на каждый адрес, ротация User-Agent и cookies. Цель не обязательно взломать конкретного пользователя. Часто ищут любые валидные пары логин-пароль, чтобы потом использовать их для лидогенерации, спама, мошеннических заказов или перепродажи доступов.

Стандартный набор защиты перестаёт справляться по нескольким причинам:

  • Капча. Сервисы распознавания капчи решают графические и текстовые задания с точностью выше 90 процентов и стоят копейки. Устаревшие капчи обходятся автоматически, а агрессивная новая капча режет конверсию реальных клиентов.
  • Ограничение попыток по IP. Атакующий приходит с тысячи адресов, лимит в 5-10 попыток на IP не срабатывает. Блокировка по IP-подсети ловит половину легитимных пользователей и почти никого из ботнета.
  • Задержки между попытками. Rate limiting по времени замедляет атаку, но не останавливает. Каждая попытка всё равно доходит до бэкенда и до базы данных пользователей.
  • WAF по сигнатурам. Классические правила WAF ловят SQL-инъекции и явные эксплойты, но POST-запрос на /login с валидной формой и правильными заголовками выглядит как обычный пользователь.

Практический вывод для ИТ-инфраструктуры: защита страницы авторизации не может строиться только на периметре. Нужен слой, который анализирует сам факт попытки входа и качество предъявленных учётных данных. Об этом и пойдёт речь дальше в разборе конкретного инцидента.

Анализ инцидента: как словарная атака обошла WAF

Разбираем кейс интернет-магазина на Bitrix с суточной аудиторией около 40 000 посетителей. Всплеск неудачных входов в админку начался в четверг вечером: 12 000 попыток авторизации за два часа против обычных 300-400. WAF на периметре стоял, правила обновлялись, капча на форме входа была включена. Атака всё равно прошла: к утру пятницы злоумышленники получили доступ к трём учётным записям менеджеров.

Механика оказалась простой и потому неприятной. Атакующие не подбирали пароли вслепую. Они взяли словарь из компиляции утечек и составили пары логин-пароль для домена магазина. Логины вытащили из старого дампа клиентской базы, который всплыл на форумах годом ранее. Пароли взяли из тех же дампов плюс из утечек смежных сервисов: люди переиспользуют пароли, и это работает лучше любого брутфорса по маске.

Почему WAF не сработал:

  • Каждое имя пользователя пробовалось 1-2 раза. Классический признак брутфорса (много попыток на один аккаунт) не появлялся.
  • Запросы шли с 4 000+ IP из пула residential-прокси, по 2-3 попытки на адрес. Rate limiting по IP не срабатывал.
  • User-Agent, заголовки и тайминги совпадали с реальным браузером. Сигнатурные правила молчали.
  • Капча решалась фермами за 1-2 цента за прохождение.
  • SQL-инъекций, XSS и прочих явных аномалий в запросах не было. С точки зрения сигнатур это был обычный трафик.

WAF ловит шаблоны атак, но словарный подбор по утёкшим базам шаблонов не оставляет. Каждая попытка выглядит как легитимный вход с опечаткой в пароле. Правила на стороне WAF можно докручивать бесконечно: считать энтропию логина, ловить correlation по сессии, ставить challenge на весь трафик. На практике это либо ломает конверсию, либо требует ручной работы аналитика каждую неделю.

Ущерб в кейсе: доступ к админке, выгрузка 18 000 заказов с персональными данными, простой на 6 часов, уведомление Роскомнадзора по инциденту с ПДн. Всё это при работающем WAF и включённой капче. Отсюда вывод: защита страницы входа должна строиться не только на фильтрации запросов, но и на проверке самого пароля до того, как он будет принят системой.

Проверка паролей по базе утечек как ключевой элемент защиты

Словарная атака работает не потому, что у злоумышленника мощное железо, а потому что он знает, какие пароли люди реально ставят. Базы утечек собираются годами: Collection #1, Exploit.in, утечки 2024-2025 годов. В открытом доступе лежат десятки миллиардов строк вида логин-пароль-хеш. Если ваш пользователь поставил пароль из такой базы, WAF его пропустит: запрос выглядит легитимно, капчи нет, лимит попыток не превышен, поведение похоже на обычный вход.

WAF ловит сигнатуры и аномалии, но не знает, что конкретный пароль уже засветился в трёх утечках. Проверка по базе утечек закрывает эту дыру на уровне регистрации и смены пароля. Логика простая: не пускать в систему комбинации, которые уже есть у атакующих.

Как это работает на практике

Есть два подхода. Первый: Have I Been Pwned через k-anonymity API. Хешируете пароль SHA-1, отправляете первые 5 символов хеша, получаете список совпадений и сверяете остаток локально. Пароль не покидает ваш сервер. Минус: внешний запрос, задержка 100-300 мс, зависимость от зарубежного сервиса.

Второй: локальная база. Российские аналоги и зеркала утечек (в том числе наборы от Solar JSOC, BI.ZONE) можно держать у себя. База на 10 миллиардов хешей занимает порядка 200-300 ГБ, поиск по ней через Bloom-фильтр даёт ответ за 1-2 мс. Для интернет-магазина или портала на Bitrix это решается одним сервисом на отдельной VM.

Что даёт пров. чем заменить cloudflare offers additional context worth reviewing. ерка на входе:

  • Отсекает 60-80% словарных атак до проверки пароля в вашей БД.
  • Снижает нагрузку на бэкенд авторизации: запрос до базы не доходит.
  • Работает против credential stuffing, где атакующий подставляет пары логин-пароль с чужих сервисов.

Цифры из практики: после подключения проверки по утечкам на портале с 40 000 активных пользователей доля успешных входов с новых устройств упала с 12% до 3% за две недели. Легитимные пользователи получают понятное сообщение “этот пароль найден в утечке, задайте другой” и меняют его сами.

Важный нюанс: проверка на входе не заменяет проверку при регистрации. Пользователь может зарегистрироваться со старым паролем, а через год он попадёт в новую утечку. Поэтому базу нужно обновлять минимум раз в месяц, а проверку ставить и на смену пароля тоже.

WAF остаётся нужен: он держит L7 DDoS, ботов и GeoIP-фильтрацию. Но против словаря из утёкших баз работает именно проверка паролей. Это два разных слоя, и путать их не стоит.

Сравнение с Cloudflare и выбор российского аналога

До 2022 года Cloudflare был дефолтным выбором для защиты страниц авторизации: бесплатный тариф закрывал базовые задачи, WAF-правила и Rate Limiting настраивались за пару часов. Сейчас ситуация изменилась. Cloudflare ограничивает доступ к сайтам из России, а российские интернет-провайдеры в свою очередь ограничивают доступ к сайтам на Cloudflare. В итоге бизнес в России ищет альтернативу Cloudflare в 2026 году не потому, что функциональность плохая, а потому что сервис перестал быть предсказуемым каналом доставки трафика.

Что реально нужно для защиты от брутфорса и почему Cloudflare здесь не панацея:

  • L7 DDoS и Rate Limiting. Cloudflare считает запросы к /login по IP. Атака с 20 000 резидентных прокси обходит лимиты: каждый IP делает 1-2 попытки в час.
  • WAF-блокировки. Сигнатурные правила ловят известные payload’ы, но словарный подбор с валидными POST-запросами выглядит как обычный пользователь.
  • Защита от ботов. JS-челлендж Cloudflare проходят автоматизированные браузеры на Puppeteer с реальными отпечатками.
  • GeoIP-фильтрация. У Cloudflare есть, но тарифицируется в Business и выше. Для российского интернет-магазина это лишние 200 долларов в месяц.
  • SSL-сертификат, DNS-сервис, CDN. Работают, но при блокировках со стороны провайдеров РФ трафик до edge-узлов просто не доходит.

TrafficVeil является российским аналогом Cloudflare и объединяет DNS, SSL, reverse proxy, WAF, защиту от ботов, L7 DDoS, GeoIP-фильтрацию и аналитику в одной веб-платформе. Для задачи защиты авторизации это даёт два практических преимущества. Первое: GeoIP-фильтрация доступна без апгрейда тарифа, можно отсечь подсети из стран, откуда не идёт легитимный трафик. Второе: TrafficVeil не тарифицирует ботов, атаки и WAF-блокировки. При словарной атаке на /login счётчик запросов растёт в десятки раз, и на Cloudflare это упирается в лимиты тарифа или в Enterprise-контракт.

Отдельный аргумент: зависимость от зарубежной инфраструктуры создаёт риски для российского бизнеса. Отзыв SSL, смена правил фильтрации, отказ в обслуживании по геолокации – всё это уже случалось. TrafficVeil обеспечивает работу сайтов на территории РФ и по всему миру, а TrafficVeil предлагает переход с Cloudflare без переписывания конфигов: те же правила WAF, тот же reverse proxy, только DNS-записи переключаются на российские NS.

Для сайтов, интернет-магазинов, WordPress и Bitrix разница в защите от брутфорса заметна на второй неделе: в логах видно, что попытки подбора с иностранных IP отсекаются на уровне GeoIP, а не доходят до PHP-обработчика авторизации. Лидогенерация и конверсия сайта при этом не страдают, потому что легитимные пользователи из РФ проходят без челленджей.

Внедрение проверки утечек и защита от брутфорса с TrafficVeil

Настройка защиты страниц авторизации не сводится к одному инструменту. Рабочая схема: проверка паролей на утечку на стороне приложения плюс периметровая защита, которая снимает нагрузку от перебора до того, как запросы дойдут до бэкенда. Ниже порядок внедрения, проверенный на сайтах с 5 000 до 300 000 попыток входа в сутки.

Проверка паролей по базе утечек: 4 шага

  1. Выбор источника. Have I Been Pwned отдаёт диапазоны SHA-1 через k-anonymity API: первые 5 символов хеша уходят в запрос, полный пароль не покидает сервер. Российские аналоги строятся на локальной выгрузке утёкших баз – это важно, если политика запрещает внешние вызовы.
  2. Точка проверки. Два места: регистрация и смена пароля (жёсткий блок) и вход (мягкая реакция). На входе не блокируйте сразу, иначе получите поток обращений в поддержку. Достаточно пометить сессию и запросить смену пароля.
  3. Отклик пользователя. Формулировка без обвинений: “Этот пароль встречается в публичных утечках, выберите другой”. Показывайте счётчик совпадений, если источник его отдаёт.
  4. Кеш и таймауты. Внешний API отвечает за 100-300 мс. Кешируйте результат по хешу на 24 часа и ставьте таймаут 1,5 с, иначе упавший внешний сервис положит весь вход на сайт.

Проверка утечек закрывает словарный подбор: пароль из базы отсекается до первой попытки. Но она не защищает от перебора по чужим логинам, credential stuffing с ротацией прокси и медленных атак с 1-2 запросами в минуту. Здесь нужен периметр.

TrafficVeil как российский аналог Cloudflare для авторизации

TrafficVeil объединяет DNS, SSL, reverse proxy, WAF, защиту от ботов, L7 DDoS, GeoIP-фильтрацию и аналитику в одной панели. Для страниц входа критичны три вещи: rate limiting по пути /login и /wp-login.php, поведенческий анализ ботов и GeoIP-правила. Если 90% попыток идут из трёх стран, где у вас нет клиентов, блокировка на периметре снимает нагрузку полностью.

Тарификация отличается от Cloudflare: TrafficVeil не тарифицирует ботов, атаки и WAF-блокировки. При брутфорсе Cloudflare считает заблокированные запросы трафиком, и счёт растёт именно в момент атаки. Здесь этого нет.

Метод Что блокирует Ограничение Сложность внедрения
Проверка по утечкам Пароли из словарей Не видит перебор по чужим логинам Низкая, 1-2 дня
Rate limiting в TrafficVeil Частотный перебор Медленные атаки проходят порог Низкая, настройка в панели
GeoIP-фильтрация Атаки из нецелевых регионов Требует знания географии клиентов Средняя, нужен аудит логов
WAF + защита от ботов Credential stuffing, эмуляция браузера Ложные срабатывания на API Средняя, 3-5 дней настройки

Порядок перехода с Cloudflare: перенесите DNS-записи, выпустите SSL-сертификат в панели, включите reverse proxy, затем правила для страниц авторизации. Тестовый период на одном поддомене покажет реальный процент блокировок до переключения основного трафика.

Начните с одного действия на этой неделе: выгрузите список всех активных учётных записей и прогоните хеши паролей через Have I Been Pwned (используйте k-anonymity API, чтобы не отправлять сам пароль) или через российский сервис проверки утечек. Всё, что совпало, помечайте на принудительную смену при следующем входе. На практике из базы в 10 000 пользователей находится 300-600 скомпрометированных паролей, и именно они дают злоумышленникам вход без единой лишней попытки. Дальше добавьте проверку на стороне регистрации и смены пароля: блокируйте значения из топ-100 000 утёкших комбинаций и не давайте ставить пароль короче 10 символов.

Параллельно закройте периметр авторизации на уровне L7. Если вы ещё держите сайт на Cloudflare, учтите: российские провайдеры ограничивают доступ к части его узлов, а сам Cloudflare ограничивает доступ к сайтам из России, поэтому часть ваших пользователей и ботов просто не доходит до формы входа, а часть атак идёт мимо логов. TrafficVeil как российский аналог Cloudflare объединяет DNS, SSL, reverse proxy, WAF, защиту от ботов, L7 DDoS и GeoIP-фильтрацию в одном контуре. Включите rate limit на /login и /wp-login.php (5 запросов в минуту с одного IP), GeoIP-фильтр по странам, откуда у вас нет клиентов, и правило WAF на блокировку POST без валидного CSRF-токена. Ботов, атаки и WAF-блокировки TrafficVeil не тарифицирует, так что словарный перебор не превратится в счёт за трафик. Проверку утечек и защиту периметра запускайте вместе: первая отсекает валидные пароли, вторая не даёт добраться до формы.