RedCoat WAF
защита веб-приложений
Отсекает атаки на приложение до того, как они дойдут до кода. Без переписывания приложения и без специалиста по безопасности в штате.
Массовые атаки не выбирают жертву — они выбирают уязвимость
Взлом сайтов автоматизирован: роботы обходят интернет сплошным перебором, находят необновлённую систему управления сайтом или уязвимый модуль и заражают всё, где нашлась брешь. Известность компании роли не играет. Формы входа личных кабинетов круглосуточно перебираются подбором паролей.
Обновления закрывают уязвимость после того, как она стала публичной. Фильтр перед приложением закрывает сам приём атаки — и делает это сразу, пока приложение ещё обновляется.
Запрос из интернета сначала разбирает RedCoat
Находит атаки на приложение
Восемнадцать классов по каталогу CWE: внедрение SQL и NoSQL, межсайтовый скриптинг, выполнение команд, обход путей, внедрение в LDAP, CRLF и SSI, подключение удалённых файлов, внешние сущности XML, обращения сервера вовне, подстановка в шаблоны, разбор недоверенных объектов, загрузка опасных файлов, утечка служебной информации. В штатном профиле — более пятисот детекторов.
Видит замаскированное
Каждый запрос проверяется повторно после раскодирования, поэтому приёмы с двойным кодированием и подменой регистра не проходят мимо.
Действует по классу атаки
Для каждого класса задано своё действие: записать в журнал, заблокировать запрос или закрыть адрес атакующего на время. Решает первое срабатывание с блокирующим действием, остальные попадают в журнал.
Ограничивает форму запроса
Длина заголовков и параметров, размер тела, допустимые методы — отсекается то, что нормальное приложение не присылает.
Разбирает XML и защищает формы
Внешние сущности (XXE), подключения документов, глубина вложенности. Для форм — токен против подделки межсайтовых запросов.
Ограничивает доступ
По адресу и подсети, по стране, региону и оператору связи, по методам и разделам сайта, с ограничением частоты обращений.
Проверяются и ответы приложения: утечки служебной информации блокируются, персональные данные в ответе можно скрыть.
Сначала смотрим, потом блокируем
Наблюдение
RedCoat встаёт перед вашим приложением и неделю-две только фиксирует, что приходит на ваши веб-ресурсы: глобальный режим наблюдения переводит все блокировки в запись в журнал. Трафик не меняется.
Разбор
Вместе с вашими ИТ-специалистами разбираем, что сработало и почему: где реальные атаки, а где особенности вашего приложения, которые надо занести в исключения.
Блокировка
Включаем защиту с уже настроенными исключениями. Каждое срабатывание можно проследить до конкретного правила.
Пилот бесплатно, цена — после наблюдения
Пилот
Бесплатно, на вашем стенде или в облаке, в режиме наблюдения.
Лицензия
Лицензия на узел, по расчётной нагрузке. Тир подбираем на этапе наблюдения — до оплаты. Сайты, приложения, правила и пользователи не считаются: новый сайт под защитой не меняет цену.
Внедрение
На нашей стороне, вместе с вашими ИТ-специалистами. Отдельный специалист по безопасности в штате не нужен.
Развёртывание
Обычная виртуальная машина: KVM, VMware ESXi, VirtualBox, Yandex Cloud. Отдельного оборудования не требуется.
Обратный прокси: снаружи виден RedCoat, приложение — за ним
Соединения клиентов терминируются на RedCoat: он завершает TLS, применяет политику и открывает собственное соединение к приложению. Адрес и стек приложения перестают быть видны из интернета; приложение можно оставить на HTTP внутри периметра. Поддержаны HTTP/1.1 и HTTP/2.
- Терминация TLS — разбор SNI, выбор виртуального узла и профиля защиты
- Разбор HTTP — согласованность длины тела и способа передачи, целостность заголовков, недопустимые управляющие символы
- Ограничения формата — длины, количества, допустимые методы
- Детекторы атак — строка запроса, параметры, заголовки, cookie и тело — с повторной проверкой после раскодирования
- Сигнатуры — из подписанного пакета правил, с учётом отключённых и уточнённых
- Решение — срабатывания разбираются по порядку; решает первое с блокирующим действием, исключения снимают конкретное правило
- Действие — записать в журнал, заблокировать запрос, закрыть адрес атакующего на время
- Проверка ответа — перед отправкой клиенту
Порядок проверок фиксирован: по любому запросу можно сказать, на каком шаге принято решение.
Восемнадцать классов по каталогу CWE
Встроенные разборщики синтаксиса дополняются правилами подписанного пакета сигнатур — в штатном профиле больше пятисот детекторов. У каждого разборщика и каждого класса сигнатур — своё действие.
| Класс | Что ищет |
|---|---|
| Внедрение SQL | Подстановка операторов в параметры, в том числе логические тавтологии вида «условие всегда истинно» |
| Межсайтовый скриптинг | Внедрение сценариев в параметры, заголовки и тело, отражаемое приложением в ответ |
| Обход путей | Выход за пределы каталога приложения, чтение системных файлов |
| Выполнение команд | Подстановка команд операционной системы в параметры |
| Обращения сервера вовне | Принуждение приложения обратиться к внутреннему или чужому адресу |
| Подстановка в шаблоны | Внедрение выражений шаблонизатора, ведущее к выполнению кода |
| Разбор недоверенных объектов | Передача сериализованных структур, опасных при восстановлении |
| Аномалии заголовков | Противоречивые и подделанные заголовки, попытки рассогласовать разбор |
Срабатывания разбираются по порядку: первое с блокирующим действием решает судьбу запроса, остальные записываются в журнал. Исключения снимают конкретное правило для адреса или раздела сайта — точечно, без ослабления профиля. Детекторы работают по признакам самого запроса: злоупотребление бизнес-логикой и подстановка украденных учётных данных этим слоем не выявляются.
Что закрыто, а что — частично
«Частично» означает, что закрыта часть сценариев риска, а не весь риск.
| Риск | Чем закрывается | Статус |
|---|---|---|
| Нарушение управления доступом | Правила по разделам и методам, ограничения по адресу и географии, идентификация через каталог | Частично |
| Криптографические сбои | Терминация TLS на шлюзе, управление шифрами и сертификатами, маскирование номеров карт в ответах | Частично |
| Внедрение кода | Детекторы SQL, межсайтового скриптинга, команд ОС, шаблонов; разбор JSON и XML; повторная проверка после раскодирования | Закрыт |
| Небезопасное проектирование | Внешние ограничения на формат и частоту; приёмы атак закрываются правилом, пока приложение исправляется | Частично |
| Ошибки конфигурации | Ограничения формата, допустимые методы, заголовки безопасности, сокрытие признаков приложения | Частично |
| Уязвимые компоненты | Фильтр перед необновлённым приложением: приём атаки закрывается правилом до выхода обновления | Частично |
| Сбои аутентификации | Ограничение частоты на формы входа, блокировка учётной записи, идентификация через каталог | Частично |
| Нарушение целостности ПО и данных | Подписанные пакеты правил, аудит с криптографической цепочкой, детектор разбора недоверенных объектов | Частично |
| Сбои журналирования и мониторинга | Четыре журнала, неизменяемый аудит, трассировка запросов | Частично |
| Обращения сервера вовне | Отдельный детектор | Закрыт |
Чего в продукте нет сегодня: проверка запросов по описанию API в форматах OpenAPI и GraphQL; выявление подстановки украденных учётных данных как отдельного сценария; поведенческий и биометрический анализ клиента; ловушки для автоматизированных клиентов; шифрование адресов и сокрытие ссылок; контроль целостности сторонних сценариев в браузере; защита от вмешательства в браузер пользователя.
Конфигурация — текст
Профиль защиты — набор ссылок на политику сигнатур, разбор синтаксиса и ограничения HTTP. Штатный профиль только для чтения: свой собирается копией и правкой, а основная политика лишь выбирает, какой профиль применять. Всё хранится обычными файлами — их можно держать в системе контроля версий; изменения применяются без перезапуска, у конфигурации есть история версий и откат.
; 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")