RedCoat WAF · ЗАЩИТА ВЕБ-ПРИЛОЖЕНИЙ

RedCoat WAF
защита веб-приложений

Отсекает атаки на приложение до того, как они дойдут до кода. Без переписывания приложения и без специалиста по безопасности в штате.

Зачем

Массовые атаки не выбирают жертву — они выбирают уязвимость

Взлом сайтов автоматизирован: роботы обходят интернет сплошным перебором, находят необновлённую систему управления сайтом или уязвимый модуль и заражают всё, где нашлась брешь. Известность компании роли не играет. Формы входа личных кабинетов круглосуточно перебираются подбором паролей.

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

Что делает

Запрос из интернета сначала разбирает RedCoat

01

Находит атаки на приложение

Восемнадцать классов по каталогу CWE: внедрение SQL и NoSQL, межсайтовый скриптинг, выполнение команд, обход путей, внедрение в LDAP, CRLF и SSI, подключение удалённых файлов, внешние сущности XML, обращения сервера вовне, подстановка в шаблоны, разбор недоверенных объектов, загрузка опасных файлов, утечка служебной информации. В штатном профиле — более пятисот детекторов.

02

Видит замаскированное

Каждый запрос проверяется повторно после раскодирования, поэтому приёмы с двойным кодированием и подменой регистра не проходят мимо.

03

Действует по классу атаки

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

04

Ограничивает форму запроса

Длина заголовков и параметров, размер тела, допустимые методы — отсекается то, что нормальное приложение не присылает.

05

Разбирает XML и защищает формы

Внешние сущности (XXE), подключения документов, глубина вложенности. Для форм — токен против подделки межсайтовых запросов.

06

Ограничивает доступ

По адресу и подсети, по стране, региону и оператору связи, по методам и разделам сайта, с ограничением частоты обращений.

Проверяются и ответы приложения: утечки служебной информации блокируются, персональные данные в ответе можно скрыть.

Как внедряется

Сначала смотрим, потом блокируем

01

Наблюдение

RedCoat встаёт перед вашим приложением и неделю-две только фиксирует, что приходит на ваши веб-ресурсы: глобальный режим наблюдения переводит все блокировки в запись в журнал. Трафик не меняется.

02

Разбор

Вместе с вашими ИТ-специалистами разбираем, что сработало и почему: где реальные атаки, а где особенности вашего приложения, которые надо занести в исключения.

03

Блокировка

Включаем защиту с уже настроенными исключениями. Каждое срабатывание можно проследить до конкретного правила.

Условия

Пилот бесплатно, цена — после наблюдения

Пилот

Бесплатно, на вашем стенде или в облаке, в режиме наблюдения.

Лицензия

Лицензия на узел, по расчётной нагрузке. Тир подбираем на этапе наблюдения — до оплаты. Сайты, приложения, правила и пользователи не считаются: новый сайт под защитой не меняет цену.

Внедрение

На нашей стороне, вместе с вашими ИТ-специалистами. Отдельный специалист по безопасности в штате не нужен.

Развёртывание

Обычная виртуальная машина: KVM, VMware ESXi, VirtualBox, Yandex Cloud. Отдельного оборудования не требуется.

Для инженеров ↓ Как устроена проверка, что ловит и чего не ловит, как выглядит политика
Место в сети

Обратный прокси: снаружи виден RedCoat, приложение — за ним

Соединения клиентов терминируются на RedCoat: он завершает TLS, применяет политику и открывает собственное соединение к приложению. Адрес и стек приложения перестают быть видны из интернета; приложение можно оставить на HTTP внутри периметра. Поддержаны HTTP/1.1 и HTTP/2.

  1. Терминация TLS — разбор SNI, выбор виртуального узла и профиля защиты
  2. Разбор HTTP — согласованность длины тела и способа передачи, целостность заголовков, недопустимые управляющие символы
  3. Ограничения формата — длины, количества, допустимые методы
  4. Детекторы атак — строка запроса, параметры, заголовки, cookie и тело — с повторной проверкой после раскодирования
  5. Сигнатуры — из подписанного пакета правил, с учётом отключённых и уточнённых
  6. Решение — срабатывания разбираются по порядку; решает первое с блокирующим действием, исключения снимают конкретное правило
  7. Действие — записать в журнал, заблокировать запрос, закрыть адрес атакующего на время
  8. Проверка ответа — перед отправкой клиенту

Порядок проверок фиксирован: по любому запросу можно сказать, на каком шаге принято решение.

Детекторы

Восемнадцать классов по каталогу CWE

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

КлассЧто ищет
Внедрение SQLПодстановка операторов в параметры, в том числе логические тавтологии вида «условие всегда истинно»
Межсайтовый скриптингВнедрение сценариев в параметры, заголовки и тело, отражаемое приложением в ответ
Обход путейВыход за пределы каталога приложения, чтение системных файлов
Выполнение командПодстановка команд операционной системы в параметры
Обращения сервера вовнеПринуждение приложения обратиться к внутреннему или чужому адресу
Подстановка в шаблоныВнедрение выражений шаблонизатора, ведущее к выполнению кода
Разбор недоверенных объектовПередача сериализованных структур, опасных при восстановлении
Аномалии заголовковПротиворечивые и подделанные заголовки, попытки рассогласовать разбор

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

OWASP Top 10

Что закрыто, а что — частично

«Частично» означает, что закрыта часть сценариев риска, а не весь риск.

РискЧем закрываетсяСтатус
Нарушение управления доступомПравила по разделам и методам, ограничения по адресу и географии, идентификация через каталогЧастично
Криптографические сбоиТерминация TLS на шлюзе, управление шифрами и сертификатами, маскирование номеров карт в ответахЧастично
Внедрение кодаДетекторы SQL, межсайтового скриптинга, команд ОС, шаблонов; разбор JSON и XML; повторная проверка после раскодированияЗакрыт
Небезопасное проектированиеВнешние ограничения на формат и частоту; приёмы атак закрываются правилом, пока приложение исправляетсяЧастично
Ошибки конфигурацииОграничения формата, допустимые методы, заголовки безопасности, сокрытие признаков приложенияЧастично
Уязвимые компонентыФильтр перед необновлённым приложением: приём атаки закрывается правилом до выхода обновленияЧастично
Сбои аутентификацииОграничение частоты на формы входа, блокировка учётной записи, идентификация через каталогЧастично
Нарушение целостности ПО и данныхПодписанные пакеты правил, аудит с криптографической цепочкой, детектор разбора недоверенных объектовЧастично
Сбои журналирования и мониторингаЧетыре журнала, неизменяемый аудит, трассировка запросовЧастично
Обращения сервера вовнеОтдельный детекторЗакрыт

Чего в продукте нет сегодня: проверка запросов по описанию API в форматах OpenAPI и GraphQL; выявление подстановки украденных учётных данных как отдельного сценария; поведенческий и биометрический анализ клиента; ловушки для автоматизированных клиентов; шифрование адресов и сокрытие ссылок; контроль целостности сторонних сценариев в браузере; защита от вмешательства в браузер пользователя.

Политика как код

Конфигурация — текст

Профиль защиты — набор ссылок на политику сигнатур, разбор синтаксиса и ограничения HTTP. Штатный профиль только для чтения: свой собирается копией и правкой, а основная политика лишь выбирает, какой профиль применять. Всё хранится обычными файлами — их можно держать в системе контроля версий; изменения применяются без перезапуска, у конфигурации есть история версий и откат.

global/waf.cpl · policy.cpl
; global/waf.cpl — свой профиль на основе штатного
define waf.profile "Site Protection"
  signature-rule("Site Protection")
  http-protocol-parameter-restriction("Standard Protection")
  syntax-based-attack-detection("Standard Protection")
end

define waf.signature_policy "Site Protection"
  ; SQL-инъекции — заблокировать и закрыть адрес атакующего на 10 минут
  main_class(030000000) status(enable) action(block-period) block-period(600) severity(High)
  ; межсайтовый скриптинг — заблокировать запрос
  main_class(010000000) status(enable) action(alert_deny) severity(High)
  ; утечки служебной информации в ответах — пока только записывать
  main_class(080000000) status(enable) action(alert) severity(Low)
end

; policy.cpl — какой профиль применять
<Waf>
  ssl.proxy_mode=https-reverse-proxy waf.profile("Site Protection")
Основная политика в CPL-редакторе: секция Waf только выбирает профиль, остальные секции — правила контроля интернета и доступа к консоли.
Пилот

Покажем на вашем трафике