Позитивная и негативная модели
SolidWall WAF обнаруживает угрозы двумя принципиально разными способами.
Зачем это нужно
Понимание различий между моделями помогает правильно настраивать защиту и интерпретировать результаты анализа. Сигнатурный анализ закрывает известные классы атак из OWASP Top 10, однако знает только об атаках, уже описанных в базе. Новые и нестандартные техники он пропускает. Позитивные модели восполняют этот пробел: они выявляют атаки на бизнес-логику и нестандартные техники, которые не попадают в сигнатурные базы.
Негативная модель (сигнатурный анализ)
Негативная модель описывает заведомо плохое поведение: WAF сравнивает содержимое запросов с базой сигнатур атак и блокирует совпадения.
Принцип прост: всё, что не соответствует ни одной известной сигнатуре атаки, считается легитимным. Это делает негативную модель лёгкой в развёртывании — достаточно загрузить набор сигнатур и включить анализ.
SolidWall WAF поддерживает встроенные сигнатуры, а также пользовательские сигнатуры в открытом формате SecRule.
Позитивная модель
Позитивная модель описывает нормальное поведение конкретного приложения. WAF знает, как должны выглядеть легитимные запросы, и блокирует или помечает всё, что от этой нормы отклоняется. Неизвестная атака, которой нет в базе сигнатур, всё равно будет обнаружена, если она нарушает позитивную модель.
SolidWall WAF организует позитивную защиту в трёх слоях веб-приложения:
| Слой | Что описывает | Модели WAF |
|---|---|---|
| HTTP-транспорт | Параметры протокола: методы, заголовки, кодировки, размеры | Протокольная валидация |
| Фреймворк | Структура тела запроса и ответа, форматы данных | Дерево решений |
| Бизнес-логика | Операции приложения, последовательности действий, пользовательские сессии | Модель бизнес-логики, сессионная модель |
Позитивные модели строятся автоматически: WAF обучается по накопленному трафику с помощью задач автоматического обучения. Результаты автообучения выглядят в интерфейсе так же, как ручные настройки, и могут быть скорректированы оператором.
Протокольная валидация HTTP
Описывает допустимые параметры HTTP-запросов. Настраивается на уровне приложения и позволяет отклонять запросы, не соответствующие стандарту или ожиданиям приложения.
Протокольная валидация позволяет настроить:
- разрешённые HTTP-методы;
- ограничения на заголовки;
- допустимые MIME-типы содержимого;
- максимальный размер тела запроса;
- допустимые кодировки.
Запрос, нарушающий любое из этих ограничений, порождает аномалию.
Дерево решений
Настройка, которая определяет, как WAF разбирает тело запроса и ответа: какие вложенные форматы (XML, JSON, Base64, GZIP, JWT, GraphQL, Protobuf и другие) раскрываются и как их параметры представляются в виде пар ключ–значение.
Дерево решений строится автоматически из трафика и может быть углублено вручную. По дереву решений анализатор строит дерево разбора — структурированное представление конкретного запроса или ответа. Аномалия возникает, если структура запроса не соответствует ожидаемой модели.
Модель бизнес-логики (действия)
Описывает действия приложения — аутентификацию, регистрацию, поиск, оформление заказа и т.д. — через условия на URL и параметры запроса. Обнаруживает нестандартные последовательности действий и доступ к действиям в обход нормального сценария.
Расположение: Приложения → [приложение] → Действия → Бизнес-действия
Для каждого действия задаются параметры и их допустимые значения. WAF поддерживает 25 классов параметрических моделей: от простых перечислений и регулярных выражений до статистических — одномерного и многомерного распределения Гаусса. Статистические модели строятся по накопленному трафику автоматически.
Категории классов параметрических моделей
- Простые форматы: Перечисление, Шаблон (регулярное выражение), Диапазон длин, Строка
- Доменные форматы: E-mail, URL, Дата и время, Имя файла, GUID
- Статистические: Математическое ожидание длины, Одномерное распределение Гаусса, Многомерное распределение Гаусса
Совет
Позитивная модель параметра позволяет закрыть уязвимость нулевого дня без изменения кода: достаточно задать класс модели для уязвимого параметра (например, «Число»), и любая попытка инъекции будет заблокирована как несоответствие модели.
Сессионная модель
Описывает механизм идентификации пользовательских сессий. Анализирует последовательности запросов и отслеживает, как атрибуты сессии появляются и меняются с течением времени.
Дополнительные механизмы защиты
Дополнительно WAF строит модель источников для детектора переборных атак и модель защиты от переборных атак с лимитами обращений к каждой операции.
Модель источников
Описывает характеристики источника запроса по параметрам транзакции. Используется детектором переборных атак для идентификации атакующих источников и в правилах реагирования, нацеленных на конкретный источник.
Модель защиты от переборных атак
Описывает допустимое количество обращений к конкретному действию приложения за единицу времени. Лимиты настраиваются индивидуально для каждого критичного действия — например, для формы авторизации.
Как модели используются вместе
В типовой конфигурации оба подхода работают одновременно.
Результаты всех модулей передаются в модуль принятия решений, который на основе настроенных правил реагирования определяет итоговое действие по транзакции.
Связанные разделы
Настройка, определяющая, как WAF рекурсивно разбирает вложенные форматы (JSON, XML, JWT…); результат разбора конкретного запроса или ответа — дерево разбора.