Что такое WAF (межсетевой экран для веб-приложений) и нужен ли он
Основы3 минРедакция Innovialabs
Коротко
WAF — это фильтр перед сайтом, который проверяет HTTP-запросы и отсекает типовые атаки вроде SQL-инъекций и XSS. Он снижает риск, но не заменяет обновления и безопасный код, а оправдан прежде всего для сайтов с формами, личным кабинетом, платежами или заметной публичностью.
Коротко: что такое WAF
WAF (Web Application Firewall) — межсетевой экран уровня приложения. Он стоит между посетителями и сайтом и смотрит на содержимое HTTP-запросов: адрес, параметры, заголовки, тело формы. Если запрос похож на атаку, WAF его блокирует, ограничивает или записывает в лог.
Обычный файрвол на сервере решает другую задачу: он разрешает или запрещает соединения по IP-адресам и портам. Ему не важно, что внутри запроса. WAF, наоборот, разбирает именно содержимое — поэтому видит попытку внедрить SQL в поле поиска.
Что WAF блокирует хорошо
- Типовые инъекции: SQL-инъекции, XSS, команды ОС в параметрах.
- Сканеры и ботов: массовый перебор адресов вроде
/wp-adminили/.env, известные вредоносные user-agent. - Перебор паролей и злоупотребления: rate limiting на страницу входа, API и формы.
- Атаки на известные уязвимости: многие сервисы выпускают «виртуальные патчи» — правило, которое закрывает дыру в популярной CMS до того, как вы обновились.
- DDoS на уровне приложения (L7): облачные WAF обычно работают вместе с защитой от DDoS и умеют отсеивать флуд запросами.
Чего WAF не умеет
- Не исправляет код. Если в логике приложения есть ошибка, WAF её не увидит: например, пользователь меняет
idв URL и получает чужой заказ. Такие запросы выглядят абсолютно нормально. - Не защищает от слабых паролей, утечки ключей, фишинга сотрудников.
- Не заменяет обновления. Виртуальный патч — временная мера, а не повод не обновлять CMS и плагины.
- Не спасёт, если трафик идёт в обход. Если реальный IP сервера известен, злоумышленник может обратиться напрямую. Сервер нужно настроить так, чтобы он принимал трафик только от WAF.
- Ограниченно видит зашифрованное. WAF должен расшифровывать TLS, иначе он не видит содержимого запросов. Облачные сервисы делают это у себя — это стоит учитывать при работе с чувствительными данными.
Облачный или self-hosted
| Критерий | Облачный WAF | Self-hosted (например, ModSecurity) |
|---|---|---|
| Как подключается | Смена DNS, трафик идёт через сервис | Модуль веб-сервера или отдельный прокси |
| Запуск | Быстро, правила готовые | Нужны установка и настройка |
| Обслуживание | Берёт на себя провайдер | Обновление правил и разбор логов — на вас |
| Защита от DDoS | Обычно включена | Ограничена ресурсами вашего сервера |
| Контроль над данными | Трафик расшифровывается у провайдера | Всё остаётся в вашей инфраструктуре |
ModSecurity — открытый движок WAF, который обычно используют вместе с набором правил OWASP Core Rule Set (CRS). Это гибкий и бесплатный вариант, но он требует опыта: правила нужно подстраивать под конкретное приложение. Документация набора правил — на coreruleset.org.
Ложные срабатывания
Главная практическая боль WAF — false positives: легитимный запрос выглядит как атака. Типичные примеры: статья с примером кода в админке, поле с HTML от визуального редактора, необычные символы в именах.
Как внедрять без вреда для бизнеса:
- Включите WAF сначала в режиме мониторинга (только логирование).
- Неделю-две смотрите логи: какие правила срабатывают на нормальных пользователей.
- Добавьте точечные исключения — для конкретного URL и параметра, а не отключение правила целиком.
- Переведите в режим блокировки и следите за жалобами и конверсией форм.
- Повторяйте разбор после крупных изменений сайта.
Когда WAF оправдан
Скорее нужен, если:
- на сайте есть личный кабинет, платежи, формы с персональными данными;
- сайт работает на популярной CMS с плагинами, которые не всегда обновляются вовремя;
- вы уже сталкивались с ботами, перебором паролей или DDoS;
- требования партнёров или регуляторов предполагают защиту веб-приложений.
Можно отложить, если это статичная визитка без форм и админки — там важнее HTTPS, обновления и резервные копии. Но базовый облачный тариф с DDoS-защитой часто подключается за минуты и редко мешает.