Движок правил
PRX-WAF использует декларативный движок правил на базе YAML для обнаружения и блокировки веб-атак. Правила описывают, что проверять, как сопоставлять и какое действие предпринять. Движок оценивает каждый входящий запрос по всем включённым правилам в 16 последовательных фазах обнаружения.
Как работают правила
Каждое правило состоит из четырёх ключевых компонентов:
- Field — Какую часть запроса проверять (path, query, body, headers и т.д.)
- Operator — Как сопоставлять значение (regex, contains, detect_sqli и т.д.)
- Value — Паттерн или порог для сопоставления
- Action — Что делать при срабатывании правила (block, log, allow)
- id: "CUSTOM-001"
name: "Block admin path from external IPs"
category: "access-control"
severity: "high"
field: "path"
operator: "regex"
value: "(?i)^/admin"
action: "block"Источники правил
PRX-WAF поставляется с 398 правилами в четырёх категориях:
| Источник | Файлы | Правила | Описание |
|---|---|---|---|
| OWASP CRS | 21 | 310 | OWASP ModSecurity Core Rule Set v4 (конвертирован в YAML) |
| ModSecurity | 4 | 46 | Правила сообщества для репутации IP, DoS, утечки данных |
| CVE Patches | 7 | 39 | Виртуальные патчи для Log4Shell, Spring4Shell, MOVEit и т.д. |
| Custom | 1 | 3 | Примеры шаблонов для правил конкретного приложения |
Дополнительно PRX-WAF включает 10+ встроенных детекторов, скомпилированных в бинарный файл:
- SQL-инъекции (libinjection + regex)
- Межсайтовый скриптинг (libinjection + regex)
- Удалённое выполнение кода / внедрение команд
- Включение локальных/удалённых файлов
- Подделка запросов на стороне сервера (SSRF)
- Обход пути/каталога
- Обнаружение сканеров (Nmap, Nikto и т.д.)
- Обнаружение ботов (вредоносные боты, AI-краулеры, headless-браузеры)
- Обнаружение нарушений протокола
- Обнаружение конфиденциальных слов (многопаттерное сопоставление Aho-Corasick)
Форматы правил
PRX-WAF поддерживает три формата файлов правил:
| Формат | Расширение | Описание |
|---|---|---|
| YAML | .yaml, .yml | Нативный формат PRX-WAF (рекомендуется) |
| ModSecurity | .conf | Директивы SecRule (базовое подмножество: ARGS, REQUEST_HEADERS, REQUEST_URI, REQUEST_BODY) |
| JSON | .json | Массив JSON-объектов правил |
Полный справочник схемы см. в Синтаксисе YAML.
Уровни паранойи
Каждое правило объявляет уровень паранойи (1-4), который управляет агрессивностью сопоставления. Более высокие уровни обнаруживают больше атак, но увеличивают риск ложных срабатываний.
| Уровень | Название | Описание | Риск ложных срабатываний |
|---|---|---|---|
| 1 | По умолчанию | Высокодостоверные правила, безопасны для продакшена | Очень низкий |
| 2 | Рекомендуемый | Более широкое покрытие, незначительный риск ЛС | Низкий |
| 3 | Агрессивный | Обширная эвристика, требует настройки | Умеренный |
| 4 | Максимальный | Всё, включая спекулятивные паттерны | Высокий |
TIP
Начните с уровня паранойи 1 в продакшене. Следите за журналами, настраивайте исключения, затем постепенно включайте более высокие уровни.
Горячая перезагрузка
PRX-WAF следит за каталогом rules/ на предмет изменений файлов и автоматически перезагружает правила при создании, изменении или удалении файла. Изменения вступают в силу в течение настроенного окна подавления дребезга (по умолчанию: 500 мс).
Вы также можете запустить перезагрузку вручную:
# Через CLI
prx-waf rules reload
# Через SIGHUP (только Unix)
kill -HUP $(pgrep prx-waf)Перезагрузки правил выполняются атомарно — старый набор правил продолжает обслуживать трафик до тех пор, пока новый не будет полностью скомпилирован и готов.
Структура каталога
rules/
├── owasp-crs/ # OWASP CRS v4 (21 файл, 310 правил)
│ ├── sqli.yaml # SQL-инъекции (CRS 942xxx)
│ ├── xss.yaml # Межсайтовый скриптинг (CRS 941xxx)
│ ├── rce.yaml # Удалённое выполнение кода (CRS 932xxx)
│ └── ...
├── modsecurity/ # Правила сообщества ModSecurity
├── cve-patches/ # Виртуальные патчи CVE (Log4Shell, Spring4Shell и т.д.)
├── custom/ # Ваши правила для конкретного приложения
└── tools/ # Утилиты для валидации и синхронизации правилСледующие шаги
- Синтаксис YAML — полный справочник схемы правил
- Встроенные правила — подробное описание OWASP CRS и патчей CVE
- Пользовательские правила — создание собственных правил обнаружения