Перейти к содержимому

WAF и правила: что защищает честно

WAF (web application firewall) проверяет HTTP-запросы на известные уязвимости и блокирует вредоносные до того, как они дойдут до вашего сервера. Панель формулирует это честно, и мы повторим: это защита от эксплоитов, а не защита от DDoS — объёмные атаки WAF не отражает.

Базовый набор правил покрывает шесть семейств атак:

  • SQL-инъекции;
  • Внедрение скриптов (XSS);
  • Обход каталогов (../../);
  • Shellshock;
  • Локальные файлы (LFI);
  • Внешние файлы (RFI).

Для каждого семейства — свой режим: «Блокировать» (запрос не доходит до сервера), «Записывать» (пропускаем, но считаем — режим «посмотреть, что отсечётся, не ломая сайт»), «Выключено».

Где: карточка сайта → вкладка «Безопасность» → карточка «Базовая защита сайта (WAF)». Там же счётчик «Заблокировано за 24 ч» по типам атак. Журнала отдельных заблокированных запросов нет — только агрегированные счётчики (на edge не хранятся IP и URL запросов).

Рядом на той же вкладке (планы Pro и Business):

  • Лимит запросов — токен-бакет на IP клиента: «N запросов за M секунд», с разовым запасом (burst). Превышение отвечает 429. Лечит грубый перебор и агрессивных парсеров.
  • Правила доступа (GeoIP-ACL) — разрешить/запретить по стране или подсети CIDR, с политикой «если ничего не совпало»: разрешить или запретить. Например, закрыть админку /admin для всех, кроме вашей страны.

Карточка «Базовая защита сайта (WAF)»: семейства атак и режимы

Базовая защита (WAF): по каждому семейству атак — свой режим: блокировать, записывать, выключено

Скажем прямо, как в панели:

  • Не защита от DDoS. Объёмную атаку фильтр запросов не выдержит — это инструмент другого класса, и его у нас пока нет.
  • Не антивирус. Заражённые файлы на сервере WAF не находит — это задача самого сервера.
  • Не гарантия. Сигнатурная фильтрация ловит известные паттерны; логические уязвимости вашего приложения WAF не видит.
  1. Неделю подержите всё в режиме «Записывать» — счётчик покажет, что бы блокировалось.
  2. Если в счётчиках нет ваших легитимных запросов — переключайте на «Блокировать».
  3. Включите лимит запросов с щедрым порогом (например, 60 запросов/10 сек на IP) и смотрите на 429.

Классическая проверка: запрос с явной инъекцией (?id=1' OR '1'='1) на включённом режиме «Блокировать» получает страницу блокировки, а не ответ сервера; счётчик SQL-инъекций растёт.

Симптом Причина Что делать
Ломается легитимный запрос Ложное срабатывание сигнатуры Переведите семейство в «Записывать», напишите в поддержку с примером
429 у пользователей за NAT Много людей за одним IP Поднимите лимит/окно, увеличьте burst
«Смена режимов недоступна» План Free Стандартный набор активен; тонкая настройка — Pro/Business
WAF замедлит мой сайт?

Проверка запроса — доли миллисекунды на границе сети. На фоне экономии от кэша замедления вы не увидите.

Нужно ли что-то ставить на сервер?

Нет. WAF работает на нашей границе сети, сервер ничего не знает о нём. Настройка — в карточке сайта.

А если атака всё-таки придёт объёмом?

Фильтр запросов не предназначен для объёмных атак — это честное ограничение класса инструмента. Если риск критичен, обсудите с поддержкой архитектуру.