Брандмауэр WAF
Файрвол веб-приложений на основе Coraza и OWASP CRS v4, который можно подключать к сайтам веб-служб.
Возможности
- Встроенный набор правил OWASP CRS v4, включаемый по файлам правил;
- собственные правила SecLang;
- режим блокировки и режим только обнаружения;
- настраиваемый лимит проверки тела запроса: при превышении запрос отклоняется или проверяется только его начало; проверку тела можно отключить для отдельных путей;
- режим совместимости с WebDAV: пропускает методы, заголовки и любые типы содержимого загрузок, которые используют облачные диски и WebDAV;
- несколько экземпляров, на которые сайты ссылаются по необходимости.
Рекомендации по использованию
- Для нового сайта сначала включите режим «только обнаружение» и понаблюдайте за журналом, чтобы убедиться в отсутствии ложных срабатываний;
- Для ложных срабатываний настройте файлы правил или добавьте собственные исключения;
- Затем переключитесь в режим блокировки.
Сайты с загрузкой больших файлов
По умолчанию WAF проверяет тело запроса размером не более 12,5 МБ, а более крупные запросы отклоняет (413), поэтому на облачных дисках, WebDAV и файловых менеджерах большие файлы не загружаются. Это настраивается в блоке «Проверка тела запроса» экземпляра:
- Лимит проверки: 0 — значение по умолчанию 12,5 МБ, максимум 1024 МБ;
- При превышении: «Отклонить запрос» работает как раньше; «Проверять только начало» проверяет только часть в пределах лимита, а остальное передаёт бэкенду без изменений — подходит для сайтов с загрузкой больших файлов;
- Совместимость с WebDAV и загрузками: по умолчанию OWASP CRS разрешает только GET, HEAD, POST и OPTIONS и блокирует заголовки
Lock-Token,If,Content-Rangeи типы содержимого вне белого списка, поэтому WebDAV-клиенты не могут просматривать каталоги, загружать файлы и ставить блокировки. После включения пропускаются методы PUT, DELETE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK и другие, а также эти заголовки, а тип содержимого загрузок больше не ограничивается; тело запросов PUT иapplication/octet-streamсчитается содержимым файла и больше не проверяется как параметры формы. Проверки на внедрение, path traversal и другие атаки продолжают работать; - Пути без проверки тела: по одному префиксу пути на строку (например,
/api/upload,/remote.php/dav/); для подходящих запросов тело не проверяется, а заголовки, URL и параметры проверяются как обычно.
Для облачных дисков, WebDAV и подобных сайтов рекомендуется создать отдельный экземпляр: включить «Совместимость с WebDAV и загрузками» и выбрать «Проверять только начало», а при необходимости добавить адреса загрузки в пути без проверки тела; остальные сайты продолжают использовать настройки по умолчанию.
curl, rclone и другие клиенты при загрузке крупного содержимого отправляют заголовок Expect: 100-continue, который CRS 4 по умолчанию блокирует. Все экземпляры Gately пропускают этот заголовок (100-continue Gately обрабатывает сам), дополнительная настройка не нужна.
Проверка
WAF тестируется на реальных атакующих payload и блокирует такие атаки, как path traversal.