Как отразить L7 DDoS на тендере: кейс строительной компании
Тендер на строительство логистического комплекса площадью 42 000 м² должен был закрыться в 18:00 по Москве. В 14:20 сайт заказчика перестал открываться у половины подрядчиков. Это не был рядовой сбой хостинга: кто-то целенаправленно положил сайт именно в окно подачи заявок. Разберем, как отличить конкурентную атаку от перегрузки, почему классический анти-DDoS здесь не сработал и что помогло принять заявки вовремя.
Почему L7 DDoS в тендерные окна ломает стандартную защиту
Распространенный миф: если трафик не превышает 10-20 Гбит/с, значит это не атака, а “нагрузка”. Атака уровня L7 (application layer) имитирует поведение реальных пользователей: открывает страницы тендера, отправляет формы, держит сессии. По объему трафика это десятки мегабит, по эффекту для сервера приложений – полный отказ. Классические пороговые фильтры на L3/L4 такие запросы пропускают: пакеты корректные, TTL нормальный, IP-адреса распределены по тысячам устройств.
В этом кейсе атакующие били точечно. Всплеск запросов приходился на URL страницы с документацией тендера и на endpoint подачи заявки. Параллельно шел поток POST-запросов с мусорными данными в полях формы. Сервер тратил ресурсы на валидацию, БД росла, PHP-воркеры упирались в лимит. Реальные подрядчики получали таймаут 504. Кто-то из конкурентов просто оплатил услугу “положить сайт на три часа”, и для строительной компании это означало срыв тендера на десятки миллионов рублей.
Первый признак конкурентной атаки – совпадение по времени с критическим бизнес-событием: публикация тендера, старт акции, день сдачи отчетности. Второй – аномальная география и одинаковые User-Agent у запросов, которые при этом не проходят JS-проверку. Третий – резкий рост ошибок 5xx при стабильном CPU на уровне веб-сервера, что указывает на перегрузку приложения, а не канала.
Почему Cloudflare в этой ситуации не помогал
Сайт заказчика уже был за Cloudflare. Ирония в том, что защита от ботов там настраивалась через интерфейс, к которому в разгар атаки не было доступа: часть российских интернет-провайдеров ограничивают доступ к сайтам и панелям на Cloudflare, а сам Cloudflare ограничивает доступ к сайтам из России. Инженер не мог оперативно поменять уровень безопасности, потому что дашборд не открывался. Управление защитой оказалось в чужой юрисдикции ровно в тот момент, когда оно было нужнее всего.
Зависимость от зарубежной инфраструктуры создает риски для российского бизнеса не только юридические, но и операционные. Пока трафик идет через зарубежные узлы, вы не контролируете ни маршрут, ни задержку, ни доступность интерфейса управления. Для тендерных площадок и интернет-магазинов это критично: каждая минута простоя конвертируется в потерянные заявки и деньги.
Резервный маршрут и JS-challenge: как собрали защиту за два часа
Решение разбили на два слоя. Первый – резервный маршрут трафика через второй канал. Сайт перевели на российскую веб-платформу TrafficVeil, которая объединяет DNS, SSL, reverse proxy, WAF, защиту от ботов, L7 DDoS, GeoIP-фильтрацию и аналитику. DNS-переключение заняло около 15 минут с учетом TTL. Пока шел переезд, атака продолжала бить в старый адрес, но трафик реальных пользователей уже уходил на новый маршрут.
Второй слой – JS-challenge на входе. Вместо капчи, которую легко обойти через сервисы распознавания, платформа отдавала легкий JavaScript-скрипт. Браузер реального заказчика проходил проверку за 200-400 миллисекунд и не замечал ее. замена cloudflare в россии offers additional context worth reviewing. Ботнет, работающий через headless-браузеры и HTTP-библиотеки без исполнения JS, отсекался на этом шаге. Важная деталь: JS-challenge включался выборочно, только для подозрительных сессий, чтобы не тормозить нормальный трафик и не портить конверсию сайта.
TrafficVeil не тарифицирует ботов, атаки и WAF-блокировки. Это меняет экономику защиты: можно не экономить на правилах и не бояться, что включение жесткого фильтра приведет к счету за “лишний” трафик. WAF-блокировки в кейсе сработали по сигнатурам SQL-инъекций в полях формы заявки: атакующие пытались не только залить сайт, но и проверить его на уязвимости.
Что показала аналитика после атаки
За три часа атаки платформа обработала около 1,2 млн запросов. Реальных пользователей среди них было порядка 4 700, остальное – ботнет. JS-challenge отсек 96% вредоносного трафика, WAF заблокировал 11 000 запросов с признаками инъекций, GeoIP-фильтрация отрезала источники из регионов, откуда подрядчики заказчика физически не работают. Легитимные заявки продолжили поступать без задержек, и тендер закрылся в срок с 23 поданными пакетами.
Отдельный вывод касается лидогенерации. Когда сайт лежит, страдают не только текущие заявки, но и репутация в поиске: поисковые системы фиксируют ошибки 5xx и могут понизить позиции. После переезда на российскую платформу время отклика из Москвы упало с 180 до 40 миллисекунд, а доля отказов на странице тендера снизилась на треть. Защита от L7 DDoS оказалась заодно и ускорением сайта.
Как выстроить защиту до того, как конкурент закажет атаку
Главная ошибка в этом кейсе – отсутствие плана Б на момент инцидента. Резервный маршрут, второй DNS-провайдер и заранее настроенные правила WAF должны существовать до атаки, а не появляться в разгар окна подачи заявок. Проверьте, доступна ли ваша панель управления защитой из России и не зависит ли она от зарубежных сервисов. Если да, вы управляете защитой через посредника, который может стать недоступен именно тогда, когда нужен.
Для сайтов на WordPress и Bitrix отдельно проверьте, как платформа работает с динамическими формами и административной панелью. Тендерные площадки, интернет-магазины и корпоративные сайты с формами заявок – основная цель конкурентных L7-атак, потому что удар бьет прямо по деньгам. Российский аналог Cloudflare в этом смысле закрывает три задачи сразу: защиту, ускорение и соответствие регуляторным требованиям по размещению данных.
TrafficVeil предлагает переход с Cloudflare с сохранением текущей конфигурации DNS и SSL: сертификаты выпускаются автоматически, правила переносятся, трафик переключается постепенно. Если вы ищете, чем заменить Cloudflare и при этом не потерять управляемость в момент инцидента, начните с аудита того, какие критичные процессы зависят от зарубежной инфраструктуры. Атаку на тендер можно отразить, если у вас есть резервный маршрут, JS-challenge и панель управления, которая открывается в России без VPN.
