TrafficVeil
Вернуться к документации
Документация

Web Application Firewall

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

Что такое WAF?


Web Application Firewall (WAF)

WAF — это набор правил для защиты веб-приложений от атак.


От чего защищает WAF:

  • SQL-инъекции (SQLi)
  • Cross-Site Scripting (XSS)
  • Local/Remote File Inclusion (LFI/RFI)
  • Path Traversal
  • Command Injection
  • XML External Entity (XXE)
  • Server-Side Request Forgery (SSRF)

  • OWASP Top 10:

    WAF TrafficVeil защищает от всех уязвимостей OWASP Top 10:

    1. Broken Access Control

    2. Cryptographic Failures

    3. Injection

    4. Insecure Design

    5. Security Misconfiguration

    6. Vulnerable Components

    7. Authentication Failures

    8. Data Integrity Failures

    9. Logging Failures

    10. SSRF


    Количество правил:

    75+ правил постоянно обновляются.


    Режимы работы


    Режимы WAF:


    Off (Выключен):

    WAF отключён. Все запросы проходят без проверки.

  • Используйте только для отладки
  • Не рекомендуется для продакшена

  • Simulate (Симуляция):

    WAF работает, но не блокирует — только логирует.

  • Для тестирования правил
  • Для выявления false positives
  • Рекомендуется перед включением

  • Block (Блокировка):

    WAF активно блокирует вредоносные запросы.

  • Рекомендуемый режим
  • Защита в реальном времени

  • Challenge:

    Подозрительные запросы проходят проверку:

  • JavaScript Challenge
  • CAPTCHA
  • Для снижения false positives

  • Изменение режима:

    1. Настройки домена → Безопасность → WAF

    2. Выберите режим

    3. Сохраните


    Рекомендуемый путь:

    1. Simulate → смотрите логи 24-48 часов

    2. Block → включите блокировку

    3. Добавьте исключения при false positives


    Правила WAF


    Категории правил:


    SQL Injection (20+ правил):

  • Обнаружение UNION SELECT
  • Обнаружение OR/AND 1=1
  • Обнаружение комментариев (--, /*)
  • Обнаружение функций (SLEEP, BENCHMARK)

  • XSS (15+ правил):

  • <script> теги
  • Event handlers (onerror, onload)
  • javascript: URLs
  • Encoded payloads

  • Path Traversal (10+ правил):

  • ../ паттерны
  • Encoded traversal (%2e%2e)
  • Null byte injection

  • Command Injection (10+ правил):

  • Shell команды
  • Pipe и redirect
  • Backticks

  • Protocol Attacks (10+ правил):

  • HTTP Request Smuggling
  • Response Splitting
  • CRLF Injection

  • Scanner Detection (10+ правил):

  • Известные сканеры
  • Агрессивные краулеры
  • Фаззеры

  • Чувствительность


    Уровни чувствительности:


    Low (Низкий):

  • Блокирует только явные атаки
  • Минимум false positives
  • Для сайтов с пользовательским контентом
  • Paranoia Level: 1

  • Medium (Средний):

  • Балан между защитой и false positives
  • Рекомендуется для большинства сайтов
  • Paranoia Level: 2

  • High (Высокий):

  • Агрессивная защита
  • Больше false positives
  • Для чувствительных приложений
  • Paranoia Level: 3

  • Paranoid (Параноидальный):

  • Максимальная защита
  • Много false positives
  • Требует тщательной настройки
  • Paranoia Level: 4

  • Выбор уровня:

  • Блог/новости: Low
  • Интернет-магазин: Medium
  • Финансы/банкинг: High
  • Критическая инфраструктура: Paranoid

  • Настройка:

    Можно настроить уровень для каждого правила отдельно.


    Исключения


    Зачем нужны исключения:

    Иногда легитимные запросы блокируются WAF (false positives). Исключения позволяют их пропускать.


    Типы исключений:


    По URL:

    Отключить WAF для конкретного URL:

  • /admin/* — отключить для админки
  • /api/upload — отключить для загрузки

  • По IP:

    Отключить WAF для IP:

  • Ваши IP
  • IP партнёров
  • IP мониторинга

  • По правилу:

    Отключить конкретное правило:

  • ID правила: 942100
  • Для конкретного URL или глобально

  • По параметру:

    Исключить параметр из проверки:

  • ?content= — для редактора
  • ?html= — для WYSIWYG

  • Создание исключения:

    1. Найдите заблокированный запрос в логах

    2. Скопируйте Rule ID

    3. Настройки → WAF → Исключения

    4. Добавьте исключение


    Рекомендации:

  • Делайте исключения максимально точными
  • Не отключайте WAF полностью
  • Регулярно проверяйте исключения

  • Кастомные правила


    Создание своих правил (Pro+):


    Синтаксис правила:

    ```

    SecRule REQUEST_URI "@contains /admin"

    "id:100001,

    phase:1,

    deny,

    msg:'Admin access blocked'"

    ```


    Операторы:

  • @contains — содержит
  • @beginsWith — начинается с
  • @endsWith — заканчивается на
  • @rx — регулярное выражение
  • @eq — равно
  • @gt, @lt — больше, меньше

  • Переменные:

  • REQUEST_URI — URL запроса
  • REQUEST_HEADERS — заголовки
  • REQUEST_BODY — тело запроса
  • ARGS — параметры
  • REMOTE_ADDR — IP клиента

  • Действия:

  • deny — заблокировать
  • allow — разрешить
  • log — логировать
  • pass — пропустить
  • redirect — перенаправить

  • Примеры:

    Блокировать доступ к .git:

    ```

    SecRule REQUEST_URI "@contains /.git" "id:100002,deny"

    ```