· 13 мин чтения

WAF на ModSecurity для корпоративного сайта: как мы спасли интернет-магазин от утечки 14 000 email клиентов

Меня зовут Семёнов Евгений Сергеевич, я директор компании АйТи Фреш. За пятнадцать лет в отрасли я видел десятки утечек клиентских баз — почти все происходили через одну и ту же дыру: незащищённую веб-форму на корпоративном сайте. В этой статье я хочу на конкретном кейсе показать, что такое WAF (Web Application Firewall), почему открытое решение ModSecurity подходит подавляющему большинству российских компаний и как мы внедряли его для одного из наших клиентов из e-commerce.

Почему обычный сайт оказывается беззащитным

Когда руководитель компании говорит «у нас же стоит SSL-сертификат, мы защищены», я обычно молча открываю логи Nginx и показываю, сколько запросов вида ?id=1 UNION SELECT приходит на их сайт каждый день. У среднего корпоративного сайта это от тысячи до десятка тысяч подозрительных обращений ежесуточно. SSL шифрует канал, но не фильтрует, что именно по нему передаётся.

Большая часть атак на сайты российских компаний — автоматические. Боты сканируют интернет в поисках типовых уязвимостей: формы обратной связи без защиты от инъекций, файлы .env в корне сайта, забытые админки phpMyAdmin, устаревшие плагины WordPress. Ручные атаки бывают, но против известного бренда с понятной клиентской базой. Именно поэтому WAF — не каприз для гигантов, а базовая гигиена для любой компании, у которой на сайте есть динамика.

WAF, или Web Application Firewall — это «умный» фильтр, который стоит между интернетом и вашим веб-сервером. Он анализирует каждый HTTP-запрос: куда он идёт, что в нём, похож ли он на легитимный трафик пользователей или на попытку сломать сайт. Если запрос подозрительный — блокирует его, не пропуская к приложению.

Кейс: интернет-магазин, который подвергся утечке клиентской базы

В феврале 2026 года к нам пришёл руководитель интернет-магазина — назову компанию условно «МагазинОнлайн». Бизнес средний: 15 000 уникальных посетителей в день, ассортимент около 2 миллионов SKU, 28 сотрудников в штате. За месяц до обращения произошёл инцидент: злоумышленник через SQL-инъекцию в форме поиска товаров получил дамп таблицы с email-адресами 14 000 клиентов. Контактные базы потом всплывали в спам-рассылках, клиенты звонили и жаловались, репутация просела.

Что мы увидели на аудите:

Задача звучала просто: поставить защиту, которая блокирует атаки, но не мешает реальным покупателям. Бюджет — минимальный. Срок — две недели до старта весенней распродажи. Решение очевидное: ModSecurity с набором правил OWASP Core Rule Set.

Почему именно ModSecurity, а не Cloudflare или AWS WAF

Когда речь заходит о WAF, у бизнеса есть три класса решений: облачные (Cloudflare, AWS WAF, Imperva), коммерческие on-premise (FortiWeb, F5, ПТ AF от Positive Technologies) и open-source (ModSecurity, NAXSI). У каждого варианта свои сильные стороны:

РешениеСтоимость в годКому подходит
Cloudflare WAFот 240 000 ₽ (Pro+)Сайты без чувствительных данных, готовые пускать трафик через зарубежный CDN
Positive Technologies AFот 850 000 ₽Госкомпании и крупный бизнес с требованиями ФСТЭК
ModSecurity + OWASP CRS0 ₽ (плюс работа инженера)Корпоративные сайты, интернет-магазины, личные кабинеты — почти всё
NAXSI0 ₽Высоконагруженные проекты с простыми API

«МагазинОнлайн» хранил данные банковских карт через интеграцию с эквайрингом и не был готов пускать трафик через зарубежные CDN. Бюджета на ПТ AF не было. Поэтому ModSecurity подошёл идеально: бесплатное ПО, ставится прямо на тот же сервер, что и Nginx, не требует менять архитектуру.

Как мы разворачивали защиту: семь шагов вместо длинной портянки команд

Не буду перегружать статью кодом — вместо этого опишу логику работы. Если вам нужны технические детали, мои инженеры с радостью покажут на демо-стенде.

  1. Поставили модуль ModSecurity на тот же сервер, где работал Nginx. Это безопаснее, чем выносить WAF на отдельный сервер: меньше точек отказа.
  2. Подключили набор правил OWASP CRS. Это коллекция из примерно 200 правил против самых частых атак: SQL-инъекции, XSS, попытки прочитать /etc/passwd, обращения к админкам.
  3. Включили режим наблюдения, а не блокировки. Первые семь дней WAF только записывал в лог подозрительные запросы, но ничего не блокировал. Мы посмотрели, какие правила срабатывают на легитимный трафик магазина.
  4. Нашли и отключили ложные срабатывания. Например, в каталоге товаров была категория «etcetera» — правило WAF принимало это за попытку прочитать системные файлы. Создали исключение под URL каталога.
  5. Включили блокировку. После того, как ложных срабатываний не осталось, перевели WAF из режима наблюдения в режим активной защиты.
  6. Подружили с fail2ban. Если один IP-адрес делает больше десяти заблокированных запросов за пять минут — бан на час через iptables. Это разгружает WAF: повторные запросы атакующего не доходят даже до анализа.
  7. Настроили уведомления в Telegram. Каждый бан и каждое срабатывание критичного правила приходит в чат службы безопасности.

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

Что получилось через месяц после запуска

Самая показательная статистика — сравнение «было/стало» за тридцать дней работы:

ПоказательДо WAFПосле WAF
Заблокировано атак в сутки0 (защиты не было)≈ 2 800
Успешных SQL-инъекций1 (та самая утечка)0
Уникальных IP в бане за неделю0≈ 850
Прирост задержки страниц+ 8 мс (95-й перцентиль)
Жалоб клиентов на «не работает»3 за месяц (все ложные блокировки, исправлены)

За тридцать дней WAF заблокировал около 84 000 атак и забанил больше трёх тысяч уникальных IP. Скорость загрузки сайта осталась прежней — пользователи ничего не заметили. Самое главное: за прошедшие два месяца ни одной успешной утечки данных, ни одного компрометирующего инцидента.

Подводные камни, о которых редко пишут

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

Все эти моменты учтены в нашей подписке на абонентское обслуживание. Если коротко: один наш инженер раз в неделю просматривает дашборд WAF, обновляет правила, разбирает странные срабатывания и пишет короткий отчёт клиенту.

Сколько стоит WAF под ключ для среднего бизнеса

Я уже устал от вопросов «сколько» в общем виде, поэтому отвечу на конкретном кейсе «МагазинОнлайн». Все суммы за апрель 2026 года, с НДС:

ЭтапСтоимостьСрок
Базовый аудит сайта и инфраструктуры15 000 ₽1–2 рабочих дня
Установка ModSecurity + OWASP CRS, базовая настройка23 000 ₽2 рабочих дня
Тюнинг правил, исключения, интеграция с fail2ban18 000 ₽5–7 рабочих дней (включая мониторинг)
Документация и передача клиенту5 000 ₽1 рабочий день
Поддержка и обновления (в составе абонентки)от 4 500 ₽/меспостоянно

Итого первичные работы — около 61 000 руб. за полное развёртывание. Это разовые затраты. Дальше — небольшая абонентка за поддержание правил в актуальном состоянии. Для сравнения, лицензия Cloudflare Pro на сайт со средним трафиком обойдётся в 240–360 тыс. руб. в год, а ПТ AF — в 850 тыс. и выше.

Когда ModSecurity не подходит

Из честности скажу: бывают сценарии, когда ModSecurity — не лучший выбор.

Что делать прямо сейчас, если у вас на сайте есть формы

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

  1. Откройте Google Search Console или Яндекс.Вебмастер. Если там есть предупреждения о вредоносном коде или взломе — у вас уже проблема.
  2. Попросите сисадмина или подрядчика показать логи веб-сервера за последние сутки. Если они не могут или говорят «у нас логи не хранятся» — это сигнал бедствия.
  3. Уточните, стоит ли fail2ban или аналог. Если нет — ставьте немедленно, это бесплатная защита от перебора паролей.
  4. Спросите, когда последний раз обновлялись CMS и плагины (WordPress, Bitrix, Tilda). Если ответ «не помню» — высокий риск.
  5. Закажите внешний аудит. У нас в АйТи Фреш он бесплатный для новых клиентов в Москве и в радиусе 50 км от МКАД.

Получите бесплатный аудит безопасности сайта

Я лично разбираю каждый запрос на аудит и приезжаю к новым клиентам. За 2–3 рабочих дня вы получите письменный отчёт со списком уязвимостей вашего сайта, рекомендациями и честным расчётом стоимости защиты. Без обязательств заключать договор.

Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш

FAQ — частые вопросы перед заказом

Стоит ли ставить ModSecurity, если у меня небольшой корпоративный сайт-визитка?
Если на сайте только статика и контактная форма — нет, достаточно правильной настройки сервера и fail2ban. WAF нужен там, где есть динамика: личный кабинет, оформление заказа, форма поиска по базе, админка. Тогда ModSecurity действительно спасает.
Сколько стоит развернуть WAF под ключ?
В АйТи Фреш базовый аудит и развёртывание ModSecurity с OWASP CRS стоит от 38 000 руб. за один сайт, плюс две недели тюнинга против ложных срабатываний — 12 000 руб. сверху. Дальше — поддержка в рамках обычной абонентки.
WAF сильно тормозит сайт?
При уровне Paranoia 2 средний прирост задержки — 5–10 мс на запрос. Пользователи этого не замечают. Главный ресурс — CPU: при 1000 запросов в секунду уходит примерно 15 % одного ядра.
Зачем ModSecurity, если есть Cloudflare?
Cloudflare — отличное облачное решение, но он терминирует TLS у себя и видит весь ваш трафик. Для интернет-магазинов с платёжными данными или для компаний, которые не готовы пускать персональные данные через зарубежные CDN, ModSecurity на собственном сервере — единственный вариант.
Кто будет следить за WAF после установки?
Это самый важный вопрос. WAF без сопровождения через 3 месяца становится бесполезным: правила устаревают, появляются ложные срабатывания. У нас в АйТи Фреш WAF — часть подписки на абонентское обслуживание, инженер раз в неделю проверяет логи и обновляет CRS.

Подпишитесь на рассылку ITfresh

Раз в неделю — практические гайды для руководителя IT и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.