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

Почему WAF так и остаётся в режиме мониторинга

Многие WAF никогда не переходят к блокировке. Причина не техническая: числа, нужные для перехода, никто не согласовал заранее.

WAF / ADR
/
2026-04-27
/
4 мин чтения

Режим мониторинга задумывался как временный

WAF обычно включают в режиме наблюдения: правила работают, события пишутся, но ничего не блокируется. Это правильное начало — никто не ставит набор правил на работающий сайт в первый же день.

Проблема в том, что условие выхода из этого этапа не записывают. Говорят «понаблюдаем недели две», и эти две недели растягиваются.

Через год система по-прежнему считает события. Переводить её в блокировку никто не решается, потому что никто точно не знает, что именно заблокируется.

Почему страх обоснован

У страха есть основания: универсальный набор правил даёт ложные срабатывания на любом реальном приложении. HTML-редактор в CMS похож на SQL-инъекцию, спецсимволы в поле поиска попадают под шаблон атаки.

Вторая причина — асимметрия ответственности. Заблокированный настоящий пользователь виден сразу, и виновный находится. Пропущенная атака всплывает через месяцы, и тогда о настройках WAF уже никто не вспоминает.

Поэтому решение о переходе должно опираться не на личную смелость, а на заранее согласованное число.

Схема 1Мониторинг — название этапа, а не состояния. После сбора базовой картины начинается выборочная блокировка — именно этого шага у большинства нет вовсе.

Правильная последовательность этапов

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

Третий — выборочная блокировка: самые точные правила переводятся в блок, остальные остаются в наблюдении. Четвёртый — полный режим.

Важная деталь: этапы проходят не по сайту целиком, а по маршрутам. Для `/api/login` и `/admin` блокировку можно включить в первый же день, а до редактора контента добраться в последнюю очередь.

Из чего состоит базовая картина

Базовая картина — это не фраза «у нас в среднем 4000 событий в сутки». Она считается по каждому правилу отдельно: сколько раз сработало, на каких маршрутах, у каких пользователей и в какое время.

Дальше по каждому правилу задаётся один вопрос: какая доля этих срабатываний — настоящая атака? Если ответ близок к 100%, правило готово к блокировке. Если 50% — правило нужно сначала сузить.

Эта работа делается руками, и ускорить её нельзя. Но делается она один раз, и после неё решение о переходе становится техническим вопросом.

Бюджет ложных срабатываний

Условие перехода должно быть записано числом. Практичная форма: если доля ложных срабатываний по маршруту ниже 0,1% — включаем блокировку; выше 1% — правило отправляется на переработку.

Для значений между ними есть промежуточная мера: вместо блокировки требовать дополнительную проверку. Пользователь не теряется, а автоматический инструмент останавливается.

Без бюджета каждая жалоба превращается в отдельный спор, а спор всегда решается в сторону смягчения. С числом вопрос другой: укладывается ли это правило в бюджет?

Схема 2Правило оценивают по двум осям: ловит ли оно атаку и оставляет ли в покое настоящий трафик. В блокировку уходит только правая верхняя клетка.

Как пишется исключение

Когда находится ложное срабатывание, самое простое решение — выключить правило. Оно же и самое плохое, потому что правило выключается по всему сайту.

Правильное исключение узкое: конкретный маршрут, конкретное поле, конкретный идентификатор правила. «Правило 942100 не применяется в текстовом поле редактора» — это исключение. «942100 выключено» — это дыра.

И у каждого исключения должны быть срок и владелец. Бессрочное исключение никогда не пересматривают, а без владельца через год никто не помнит, зачем оно поставлено.

Как выглядит заблокированный запрос

Страница блокировки — тоже часть продукта. На ней должны быть три вещи: краткое объяснение произошедшего, идентификатор события и способ связаться.

Идентификатор важнее всего. Без него пользователь пишет «сайт не работает», и поддержка ищет в логах. С идентификатором это делается за минуту.

И страница блокировки не должна сообщать атакующему, какое правило сработало. Идентификатор внутренний, объяснение общее.

Схема 3Условие перехода записывается числом. Для промежуточных значений есть промежуточная мера: вместо блокировки требовать дополнительную проверку.

Чек-лист для перехода

Перед включением блокировки нужны ответы на четыре вопроса. Собрана ли базовая картина и известна ли доля ложных срабатываний по каждому правилу? Записан ли бюджет числом? Есть ли у исключений срок и владелец? Показывается ли идентификатор события на странице блокировки?

Пятый вопрос про процесс: кто и за какое время может откатить блокировку? Если ответ «только провайдер, в рабочее время», переходить нельзя — и это правильное решение.

Когда список закрыт, переход становится технической операцией. Пока не закрыт, любое решение о переходе остаётся личным риском.

Все материалы

Познакомимся?

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

Начнём
Связаться
Связаться