Настройка WAF (веб-антивирус) 1С-Битрикс
WAF в Битрикс — это надстройка над проактивным фильтром с сигнатурным анализом запросов. Располагается в Безопасность → Проактивная защита → Веб-антивирус. При правильной настройке закрывает OWASP Top 10 на уровне приложения, не требуя внешнего WAF-решения.
Принцип работы и отличие от проактивного фильтра
Проактивный фильтр — простой анализ паттернов (регулярные выражения по GET/POST). Веб-антивирус (WAF) — более глубокий анализ с наборами правил, аналогичными ModSecurity Core Rule Set. Он проверяет заголовки запроса, User-Agent, Cookie, тело запроса.
Архитектурно: запрос → \Bitrix\Security\Waf\Engine → набор правил → блокировка/пропуск.
Конфигурация наборов правил
Безопасность → Веб-антивирус → Наборы правил:
Битрикс поставляет несколько предустановленных наборов:
-
Базовый — XSS, SQL-инъекции, обход путей (
../) - Расширенный — дополнительные сигнатуры, выше вероятность ложных срабатываний
- Пользовательский — собственные правила в формате регулярных выражений
Для каждого правила задаётся: зона проверки (URI, параметры, заголовки), действие (блок/лог), приоритет.
Настройка белого списка
Самое важное при развёртывании WAF — правильно настроить исключения до включения в боевой режим.
Типичные исключения:
-
/bitrix/admin/— административный раздел со сложными формами -
/bitrix/tools/upload.php— загрузка файлов через редактор - REST API-эндпоинты (
/rest/,/api/) - Пути к вашим кастомным AJAX-обработчикам
Добавить исключение: Веб-антивирус → Исключения → Добавить правило — указывается URI-маска и список правил, которые не применяются.
Случай из практики
Портал B2B с кастомной формой загрузки прайс-листов в формате CSV. После включения WAF в активный режим форма перестала работать — WAF блокировал запросы с содержимым CSV (символы ;, ", специфические строки похожие на SQL). Решение: добавление URI формы (/upload/import/price/) в исключения для правил группы SQL_INJECTION. Форма снова заработала, остальные правила остались активны.
Мониторинг срабатываний
Логи WAF — в b_security_log с полем MODULE = 'security' и EVENT_TYPE = 'WAF'. Для разбора используйте запрос:
SELECT IP, REQUEST_URI, COUNT(*) as cnt
FROM b_security_log
WHERE EVENT_TYPE = 'WAF'
AND DATE_CREATE > NOW() - INTERVAL '24 hours'
GROUP BY IP, REQUEST_URI
ORDER BY cnt DESC
LIMIT 20;
Сроки выполнения
Настройка WAF с подбором правил и тестированием на рабочем трафике — от 6 до 12 часов в зависимости от числа кастомных компонентов и API-эндпоинтов.







