Разговор про защиту сайта обычно начинается не с этого слова, а с фразы «у нас что-то странное в логах». Давайте сначала разберёмся с терминами, а потом уже поговорим про выбор.
Что такое WAF, если по-простому
Представьте вахтёра на входе в офис. Он смотрит на каждого, кто заходит, и решает: этот человек идёт по делу, а этот явно пытается пронести что-то не то. WAF - это такой же вахтёр, только для сайта, и работает он за миллисекунды на каждый запрос.
Расшифровывается как Web Application Firewall - «межсетевой экран для веб-приложений». Каждый раз, когда посетитель открывает страницу, что-то ищет или отправляет форму, на сервер уходит HTTP-запрос. WAF встаёт между посетителем и вашим сайтом и смотрит на каждый такой запрос: не пытается ли кто-то вытащить данные из базы, подсунуть свой код или залезть в папку, в которую нельзя.
Выглядит это примерно так:
- посетитель отправляет запрос - обычный или с атакой внутри;
- WAF разбирает его и сравнивает с набором правил: «а это не похоже на попытку взлома?»;
- если запрос обычный - он уходит на сайт, и посетитель ничего не замечает;
- если это атака - WAF отдаёт страницу с ошибкой, а запрос до сайта не доходит.
Важный момент: WAF не заменяет нормальный код и не лечит дыры в приложении. Сайт, где пароль от базы лежит в открытом виде, он не спасёт. WAF ловит тех, кто стреляет по площадям - а таких, если честно, большинство.
Пример из жизни. У интернет-магазина на 300 тысяч визитов в месяц приходит отчёт пентеста: SQL-инъекция в фильтре каталога, XSS в поиске, обход каталога в выгрузке прайса. Ничего экзотического. Сканер находит такое за вечер, и автоматический бот - тоже найдет.
Три стены, в которые упирается средний бизнес
Технический директор идёт искать WAF и довольно быстро понимает, что выбор невелик.
Облачный сервис. Все запросы идут через чужую инфраструктуру. Настроить можно за пару часов, и это здорово. Но потом выясняется, что вы не управляете ни движком, ни правилами, ни ценами. А что случится с ценой через год или с сервисом в целом - вопрос без ответа.
Enterprise-вендор. Цена такая, что её надо защищать на совете директоров. Внедрение - кварталы. А когда запрос вдруг блокируется, понять почему без звонка в поддержку не получится: правила - чёрный ящик.
Импортные решения. Десять лет были стандартом индустрии. Теперь просто недоступны: ни купить, ни получить поддержку, ни обновить базы сигнатур. Работать на них - это жить без обновлений защиты.
Есть ещё четвёртый путь - бесплатный open-source вроде ModSecurity. Он честный и вполне рабочий. Но управлять придётся самому: единой консоли нет, версионирования правил нет, события с нескольких серверов собрать нечем. Нужна команда, у которой дойдут руки.
Получается забавно: либо защиты слишком много по цене и сложности, либо она есть, но разобраться в ней некому. Посередине - дыра, в которой живёт большинство компаний.
Что на самом деле нужно от WAF
Если убрать маркетинг, требования у среднего бизнеса очень приземлённые. Ни одно из них не про «магический AI».
Работает без чужого облака
Система стоит у вас и не зависит от того, доступен ли чей-то сервис за границей. Работает даже в закрытом контуре без интернета.
Правила можно прочитать
Не чёрный ящик, а список понятных условий. Можно посмотреть, почему заблокировало запрос, и поправить.
Не просит отдельное железо
Пара vCPU справляется с нагрузкой - это норма, а не повод покупать новый сервер.
Встраивается в ваши процессы
Docker, Kubernetes, Nomad, управление через API - а не только через тяжёлую панель из 2010-х.
Под эти требования и сделан КиберРубеж - автономный WAF, который мы поставляем и внедряем.
Как устроен КиберРубеж
В системе две части - и это принципиально.
Нода - то, что стоит перед вашим сайтом. Принимает запросы, проверяет их по правилам, блокирует атаки, а остальное передаёт на сайт. Контрольная плоскость - «штаб»: в ней хранятся правила, собираются события и метрики, там же живёт веб-консоль, через которую всем этим управляют. Штаб разворачивается у вас, а не у нас.
Внешних зависимостей нет: ни вендорского образа, ни чужого облака. Все данные - правила, события, метрики, учётные записи - остаются у заказчика.
Правила - это данные, а не код внутри программы
Правило выглядит как обычная запись: идентификатор, название, тип атаки, уровень уверенности, действие и условия. Например, «в параметре запроса есть конструкция вида OR 1=1». Это запись в базе, а не строчка, зашитая в скомпилированную программу.
Почему это важно на практике:
- правила можно читать и проверять, как код, и хранить в Git;
- набор правил версионируется, а заменяется целиком: не бывает момента, когда на сервере перемешались старая и новая версии;
- новое правило применяется на лету - без пересборки и перезапуска;
- шумное правило можно отключить точечно, не отключая всё остальное.
Режимы: сначала посмотреть, потом блокировать
Главный страх при внедрении WAF - «включим и положим продажи». Поэтому режим можно менять на лету, без перезапуска.
| Режим | Что происходит |
|---|---|
off | Проверка выключена, все запросы идут на сайт. |
monitoring | WAF всё замечает и записывает, но никого не блокирует. С него стоит начинать: посмотрите, что прилетало бы, если бы защита уже была включена. |
safe_blocking | Блокируются только те правила, в которых система уверена. Остальное - просто в журнал. Компромисс, когда уже хочется защищаться, но страшно поймать ложное срабатывание. |
block | Блокируются все правила с действием «заблокировать». Обычно включают, когда неделю посмотрели в monitoring и убедились, что лишнего не ловится. |
Обычно получается так: первая неделя в monitoring, разбор событий, отключение шумных правил, потом safe_blocking, а через некоторое время полный block. Никакого «включили и молимся».
От чего защищает и что видно
Движок ловит самые массовые типы атак: SQL-инъекции, XSS, обход каталога и инъекции команд. Это не «защита от всего на свете» - но именно такие атаки составляют основную часть мусора в логах любого публичного сайта.
Каждое срабатывание превращается в запись: какой сервер, какое правило, какой тип атаки, что сделали. В консоли видно количество запросов, долю блокировок, задержки и текущую версию правил. А сама нода отдаёт свой статус по локальному адресу - его легко подключить к обычному мониторингу, тому же Zabbix.
Безопасность самой системы
- нода регистрируется по одноразовому токену - повторно им не воспользоваться;
- пароли администраторов хранятся в виде хэшей Argon2id, а не открытым текстом;
- статус ноды доступен только с самого сервера, снаружи его не видно;
- процессы работают с минимальными правами;
- вход ограничен по числу попыток, все данные на входе проверяются.
Что показывает нагрузочный тест
Производительность WAF легко превратить в маркетинг, поэтому покажем цифры из протокола приёмочных испытаний. Стенд: два vCPU, половина запросов - атаки.
Честная оговорка: это локальный стенд, а не боевой сайт с реальной базой и внешним TLS. В продакшене задержка будет выше - хотя бы потому, что к ней добавится время ответа вашего приложения. Но порядок цифр понятен: WAF не становится узким горлышком, которое надо компенсировать лишними ядрами.
И ещё деталь: память движка не зависит от того, какой размер запроса заявил клиент. Это защита от простого способа уронить прокси, отправив запрос с огромным Content-Length.
Честное сравнение с конкурентами
На рынке есть игроки крупнее и старше нас. Делать вид, что их нет, глупо - у каждого есть сильная сторона, и мы это показали в таблице.
| Решение | Тип | Сильная сторона | Слабое место |
|---|---|---|---|
| Positive Technologies | Enterprise | Лидер рынка, зрелая экосистема, сертификация ФСТЭК | Высокая стоимость и порог входа, рассчитан на крупного заказчика |
| SolidSoft | Специализированное | Стабильный продукт для защиты API и веба в крупном бизнесе | Ориентация на крупные внедрения, не на быстрый старт |
| BI.ZONE | Облако / SaaS | Быстрый запуск, комплексная безопасность как сервис | Привязка к облачной инфраструктуре вендора |
| WAF облачных провайдеров | SaaS | Встроен в облако, минимальные усилия на старте | Работает только внутри этого облака: переезд = новая настройка защиты |
| Open-source (ModSecurity и CRS) | Самостоятельная сборка | Бесплатно, полный контроль, огромное сообщество | Нет единого управления нодами, событий и версионирования правил - всё это строить самому |
| КиберРубеж | Автономный сервис | Свой контур, понятные правила, лёгкий движок, работа в закрытой сети | Молодой продукт; сертификации уровня крупных вендоров нет |
Если свести различия к нескольким пунктам, получится так:
Не привязывает к поставщику
Правила, события и учётные записи живут у вас. Если поставщик завтра уйдёт с рынка, вы не останетесь без защиты.
Понятно, что происходит
Правило можно открыть и прочитать, а причину блокировки видно прямо в событии - не нужно писать в поддержку и ждать ответа.
Работает без интернета
Обновления правил можно привезти файлом. Система живёт даже в закрытом контуре, где наружу ничего не ходит.
Дружит с DevOps
Docker, Kubernetes, Nomad, управление через API - WAF встраивается в то, как вы уже работаете, а не живёт отдельной жизнью.
Кому КиберРубеж не подходит
Скажем честно, чтобы не тратить время друг друга.
- Нужна сертифицированная поставка по требованию регулятора. Это отдельная история со своими сроками и бюджетом - тут стоит смотреть на вендоров, у которых сертификаты уже есть.
- В компании сильная команда ИБ и всё уже построено на open-source. ModSecurity с актуальным набором правил закроет базу бесплатно. КиберРубеж нужен там, где хочется управляемости: одна консоль, версии правил, события со всех серверов в одном месте.
- Нужен продвинутый анализ поведения и антибот «из коробки». Это другая задача и другие продукты.
Мы работаем с теми, кому нужна понятная базовая защита сайта и API, целиком под своим контролем, без облачной привязки и без внедрения на полгода.
С чего начать
КиберРубеж - это набор контейнеров: штаб и ноды. Разворачивается в Docker Compose на паре виртуальных машин, в LXC, в Kubernetes или Nomad - смотря что у вас уже используется. Требования к ноде скромные: два vCPU и около гигабайта памяти.
Поставка лицензируется по пакетам - отличаются лимитом серверов, частотой обновления правил и сроком хранения истории. И вот деталь, которая отличает эту схему от облачных сервисов: когда подписка заканчивается, защита не выключается. Нода продолжает работать на последнем наборе правил, а статус лицензии просто показывается отдельно. Вы не остаётесь без WAF ровно в тот момент, когда решаете, продлевать или нет.
Если вы давно откладываете защиту сайта со словами «нормальный WAF стоит как ещё один разработчик» - напишите нам. Развернём стенд, включим режим наблюдения и покажем, что именно прилетает на ваш трафик. Блокировать ничего не будем, пока вы сами не решите.