Как защитить сайт от L7 DDoS: ключевые пункты чек-листа – PhytoAtomy

Как защитить сайт от L7 DDoS: ключевые пункты чек-листа

Атака L7 DDoS не похожа на шумный флуд, который валит канал связи. Она выглядит как обычный трафик: тысячи запросов к поиску по каталогу, к корзине, к API авторизации. Сервер честно обрабатывает каждый запрос, упирается в лимит воркеров PHP-FPM или в пул соединений к базе и перестаёт отвечать. Чек-лист ниже построен вокруг одной мысли: защищать нужно не сайт целиком, а те ресурсы, которые физически не кэшируются.

Почему L7 DDoS бьёт по некэшируемым ресурсам

Статическая страница живёт в кэше CDN или nginx, отдаётся за миллисекунды и почти не нагружает бэкенд. Хоть миллион запросов к ней прилетит, процессор веб-сервера этого не заметит. Поэтому грамотный атакующий не тратит бюджет на то, что уже защищено кэшем. Он ищет эндпоинты, где каждый запрос обязан дойти до приложения: поиск с параметрами, фильтры каталога, добавление в корзину, форма обратной связи, REST API, страница личного кабинета.

Именно здесь и рождается перегрузка. Один запрос к поиску может тянуть JOIN по трём таблицам, дергать Elasticsearch и рендерить шаблон. Умножьте на 500 запросов в секунду с одного ботнета, и база уходит в ожидание блокировок. Сайт при этом формально «жив»: пинг проходит, статические страницы открываются, а клиенты не могут оформить заказ.

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

Мониторинг аномалий: что именно измерять

Метрика «RPS на весь сайт» бесполезна, она размывает картину. Смотреть нужно на запросы к динамике в разрезе эндпоинта, метода и источника. Рост запросов к /api/search в десять раз при стабильном общем трафике, это сигнал, который виден за минуты, а не за часы.

Пороговые метрики и точки контроля

Заведите алерты на четыре величины. Первая: доля ответов 5xx по конкретному эндпоинту, рост выше 2% за пятиминутное окно. Вторая: p95 времени ответа динамических страниц, выход за 1,5 секунды. Третья: количество уникальных IP, обращающихся к API, в минуту, резкий скачок при неизменном числе сессий. Четвёртая: соотношение запросов к кэшируемым и некэшируемым URL, смещение в сторону вторых говорит о целенаправленной работе.

Отдельно считайте долю запросов без cookies и с пустым User-Agent. Легитимный пользователь в браузере их присылает. Бот, имитирующий поведение, часто экономит на заголовках, и это выдаёт его с головой. Собирайте baseline за две недели нормальной работы, иначе пороги будут взяты с потолка и вы получите либо тишину, либо поток ложных срабатываний.

Логи reverse proxy храните минимум 30 дней. При разборе инцидента вы будете сопоставлять всплеск нагрузки с паттернами запросов, а без истории это гадание. Для высоконагруженных проектов имеет смысл выгружать агрегаты в отдельное хранилище, чтобы не тормозить основной веб-сервер запросами к логам.

Технические меры: от rate limiting до поведенческого анализа

Первый эшелон, это лимиты на уровне reverse proxy. Ограничение по IP на некэшируемые эндпоинты, например 20 запросов в минуту к поиску и 5 к формам. Работает против примитивных ботов, но ломается о распределённые атаки с резидентных прокси, где каждый IP делает по одному запросу.

Второй эшелон, это проверка на уровне приложения. Здесь в ход идёт анализ поведения: скорость заполнения формы, порядок обращений к страницам, наличие JS-отпечатка. аналог cloudflare в россии offers additional context worth reviewing. Человек не отправляет форму за 200 миллисекунд после загрузки страницы. Бот отправляет.

Третий эшелон, это WAF с сигнатурами и GeoIP-фильтрацией. Если ваш бизнес работает только по России, зачем принимать запросы к API из стран, где у вас нет клиентов? Российский аналог Cloudflare, платформа TrafficVeil, объединяет DNS, SSL, reverse proxy, WAF, защиту от ботов, L7 DDoS, GeoIP-фильтрацию и аналитику в одном контуре. Это удобно тем, что не нужно собирать защиту из пяти сервисов и потом чинить конфликты между ними.

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

Кэширование динамики тоже стоит настроить. Микро-кэш на 5-10 секунд для страниц каталога снимает нагрузку при шквале однотипных запросов и не мешает пользователю видеть актуальные данные. Это не панацея, но дешёвый способ поднять потолок по RPS.

Организационная часть и выбор инфраструктуры

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

Проведите учения. Сымитируйте нагрузку на поиск и API своими силами, посмотрите, сработают ли алерты, успеет ли команда отреагировать. Лучше узнать о дыре в мониторинге на учебной атаке, чем на реальной.

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

TrafficVeil обеспечивает работу сайтов на территории РФ и по всему миру, подходит для сайтов, интернет-магазинов, WordPress и Bitrix. Если вы сейчас на Cloudflare и думаете, чем заменить Cloudflare без потери защиты, платформа предлагает переход с Cloudflare с сохранением логики WAF и правил фильтрации.

Пройдитесь по чек-листу ещё раз: карта некэшируемых ресурсов составлена, алерты на аномалии в API и динамике настроены, лимиты на reverse proxy стоят, WAF и GeoIP включены, дежурный знает, что делать. Начните с мониторинга, потому что без понимания, куда именно бьют, любая защита превращается в стрельбу по площадям. Дальше добавляйте эшелоны по мере роста нагрузки и не забывайте пересматривать пороги раз в квартал: трафик меняется, а вместе с ним и норма.