Почему WAF так и остаётся в режиме мониторинга
Многие WAF никогда не переходят к блокировке. Причина не техническая: числа, нужные для перехода, никто не согласовал заранее.
Многие WAF никогда не переходят к блокировке. Причина не техническая: числа, нужные для перехода, никто не согласовал заранее.
WAF обычно включают в режиме наблюдения: правила работают, события пишутся, но ничего не блокируется. Это правильное начало — никто не ставит набор правил на работающий сайт в первый же день.
Проблема в том, что условие выхода из этого этапа не записывают. Говорят «понаблюдаем недели две», и эти две недели растягиваются.
Через год система по-прежнему считает события. Переводить её в блокировку никто не решается, потому что никто точно не знает, что именно заблокируется.
У страха есть основания: универсальный набор правил даёт ложные срабатывания на любом реальном приложении. HTML-редактор в CMS похож на SQL-инъекцию, спецсимволы в поле поиска попадают под шаблон атаки.
Вторая причина — асимметрия ответственности. Заблокированный настоящий пользователь виден сразу, и виновный находится. Пропущенная атака всплывает через месяцы, и тогда о настройках WAF уже никто не вспоминает.
Поэтому решение о переходе должно опираться не на личную смелость, а на заранее согласованное число.
Правильный путь состоит из четырёх этапов. Первый — наблюдение: правила работают, ничего не блокируется. Второй — сбор базовой картины: сколько срабатываний у каждого правила и какая доля из них — настоящий трафик.
Третий — выборочная блокировка: самые точные правила переводятся в блок, остальные остаются в наблюдении. Четвёртый — полный режим.
Важная деталь: этапы проходят не по сайту целиком, а по маршрутам. Для `/api/login` и `/admin` блокировку можно включить в первый же день, а до редактора контента добраться в последнюю очередь.
Базовая картина — это не фраза «у нас в среднем 4000 событий в сутки». Она считается по каждому правилу отдельно: сколько раз сработало, на каких маршрутах, у каких пользователей и в какое время.
Дальше по каждому правилу задаётся один вопрос: какая доля этих срабатываний — настоящая атака? Если ответ близок к 100%, правило готово к блокировке. Если 50% — правило нужно сначала сузить.
Эта работа делается руками, и ускорить её нельзя. Но делается она один раз, и после неё решение о переходе становится техническим вопросом.
Условие перехода должно быть записано числом. Практичная форма: если доля ложных срабатываний по маршруту ниже 0,1% — включаем блокировку; выше 1% — правило отправляется на переработку.
Для значений между ними есть промежуточная мера: вместо блокировки требовать дополнительную проверку. Пользователь не теряется, а автоматический инструмент останавливается.
Без бюджета каждая жалоба превращается в отдельный спор, а спор всегда решается в сторону смягчения. С числом вопрос другой: укладывается ли это правило в бюджет?
Когда находится ложное срабатывание, самое простое решение — выключить правило. Оно же и самое плохое, потому что правило выключается по всему сайту.
Правильное исключение узкое: конкретный маршрут, конкретное поле, конкретный идентификатор правила. «Правило 942100 не применяется в текстовом поле редактора» — это исключение. «942100 выключено» — это дыра.
И у каждого исключения должны быть срок и владелец. Бессрочное исключение никогда не пересматривают, а без владельца через год никто не помнит, зачем оно поставлено.
Страница блокировки — тоже часть продукта. На ней должны быть три вещи: краткое объяснение произошедшего, идентификатор события и способ связаться.
Идентификатор важнее всего. Без него пользователь пишет «сайт не работает», и поддержка ищет в логах. С идентификатором это делается за минуту.
И страница блокировки не должна сообщать атакующему, какое правило сработало. Идентификатор внутренний, объяснение общее.
Перед включением блокировки нужны ответы на четыре вопроса. Собрана ли базовая картина и известна ли доля ложных срабатываний по каждому правилу? Записан ли бюджет числом? Есть ли у исключений срок и владелец? Показывается ли идентификатор события на странице блокировки?
Пятый вопрос про процесс: кто и за какое время может откатить блокировку? Если ответ «только провайдер, в рабочее время», переходить нельзя — и это правильное решение.
Когда список закрыт, переход становится технической операцией. Пока не закрыт, любое решение о переходе остаётся личным риском.
Покажите домен — дадим первичный анализ вашего текущего внешнего состояния. На этом этапе ничего не меняется.

