Почему ищут альтернативу AWS WAF
Редко потому, что он не работает. Обычно из-за того, как он тарифицируется и сколько сборки требует.
AWS WAF берёт плату за web ACL, за каждое подключённое правило и за проверенные запросы. Добавьте managed rule group — и это ещё одна строчка. В итоге счёт за безопасность растёт вместе с трафиком — тем самым трафиком, за доставку которого вы уже платите CloudFront, — и превращается в упражнение с таблицей всякий раз, когда кто-то предлагает добавить правило.
Затем идёт сборка. Рабочая настройка — это web ACL, группы правил в правильном порядке, привязка к дистрибуции, логирование в Kinesis или S3 и место, где эти логи читать. Каждая часть по отдельности разумна; все вместе — это уже проект.
Что вы получаете здесь вместо этого
WAF работает на том же edge, который уже обслуживает ваш сайт: ModSecurity с OWASP Core Rule Set, включается на аккаунт со страницы правил доставки. Не нужно покупать отдельный продукт, не будет строки за каждое правило в счёте, не нужно строить пайплайн, прежде чем сможете прочитать лог.
Рядом, на той же странице: блокировка по стране и ASN, списки разрешённых и запрещённых IP, rate limiting по маршруту, JavaScript challenge против наплыва ботов и пресет HSTS. Всё это применяется на edge, поэтому заблокированный запрос никогда не доходит до вашего origin.
Обмен честный: вы не получаете каталог AWS с управляемыми группами правил от сторонних вендоров, и вы не получаете WAF, который можно описать в Terraform вместе с полусотней других ресурсов AWS. Вы получаете набор правил OWASP, включённый и уже подключённый со всей операционной частью.
Часть, которая решает, можно ли пользоваться WAF: лог
Любой WAF время от времени блокирует легитимные запросы. Редактор CMS, сохраняющий пост с примером кода, рано или поздно споткнётся о правило против инъекций. Разница между WAF, которым можно пользоваться, и тем, что выматывает, — в том, как быстро вы можете узнать, какое правило сработало и на каком поле.
Заблокированный посетитель здесь получает брендированную страницу 403 с ID запроса. Этот ID — идентификатор запроса в журнале аудита, так что разговор в поддержке превращается из «сайт иногда меня блокирует» в ID правила и точное значение, которое совпало. Страница логов WAF в панели показывает заблокированные события с категорией атаки, страной, IP и правилом, а также экспортирует их в CSV или XLSX, когда нужно кому-то передать.
Решение тогда узкое по своей природе: исключить это правило для этого поля на этом пути, а не выключать защиту для всего сайта.
Что есть у AWS WAF, а у нас нет
Стоит сказать прямо, потому что страница сравнения, где перечислены только преимущества, — это реклама.
У AWS WAF есть маркетплейс управляемых групп правил от вендоров безопасности, Bot Control и защита от захвата аккаунтов как платные дополнения, а также глубокая интеграция с остальным AWS — метрики CloudWatch, Firewall Manager сразу на несколько аккаунтов, провайдеры Terraform, покрывающие каждую настройку. Если ваша организация работает на AWS и централизованно управляет политиками на множестве аккаунтов, эта экосистема — реальное преимущество, и никакой небольшой провайдер её не заменит.
Мы используем OWASP Core Rule Set, а не маркетплейс вендоров, и версию набора правил обновляем осознанно, а не непрерывно. Если вам нужна конкретная управляемая группа правил от конкретного вендора, мы — не тот ответ.
Сколько стоит защитить сайт здесь
WAF — часть тарифа. Включение его для сайта не добавляет строку в счёт, и добавление правила — тоже, а значит решение защитить путь становится техническим, а не бюджетным.
Мы не публикуем таблицу сравнения с текущими тарифами AWS WAF. Эти тарифы меняются, устаревшая таблица на странице вендора хуже, чем её отсутствие, а единственное честное сравнение — это ваш собственный счёт. Посмотрите, во сколько вам обходится WAF на AWS в этом месяце, а затем — на страницу тарифов здесь.
Часто задаваемые вопросы об альтернативе AWS WAF
Какой набор правил вы используете?
ModSecurity с OWASP Core Rule Set — то же самое семейство правил, что стоит за многими коммерческими WAF. Оно покрывает категории инъекций, межсайтового скриптинга, включения файлов и злоупотребления протоколом. Мы обновляем набор правил осознанно, тестируя на паттернах ложных срабатываний, с которыми сталкиваются наши собственные клиенты, а не отслеживаем апстрим автоматически.
Могу ли я исключить правило, которое блокирует моё собственное приложение?
Да, и это ровно тот процесс, который задуман. Найдите ID правила в заблокированном событии, затем исключите это правило для поля и пути, которые дали ложное срабатывание. Отключить семейство правил целиком или весь WAF тоже можно, но это почти всегда неверный ответ.
Добавляет ли WAF задержку?
Проверка происходит на edge на запросе, который и так уже через него проходил, так что дополнительного сетевого хопа нет. Цена — это CPU на edge, а не дополнительный оборот по сети, а именно последнее было бы заметно.
Это то же самое, что защита от DDoS?
Нет. WAF проверяет содержимое запросов и блокирует вредоносные. Защита от DDoS — про объём. Флуды на уровне приложения мы поглощаем на edge через rate limiting и JavaScript challenge; защита на сетевом уровне лежит на апстрим-сетях, которые анонсируют наши префиксы. Если вам нужна законтрактованная цифра ёмкости очистки трафика, запросите её у нас письменно, а не предполагайте её самостоятельно.
Могу ли я использовать WAF, не переезжая с хостинга?
Да. WAF работает на edge CDN, поэтому подойдёт любой origin — сервер, который вы держите сами, другое облако или платформа, на которой вы уже работаете. Вы направляете хост сюда, трафик проверяется по пути, а ваш origin остаётся там же, где и был.