Настройка защиты от брутфорса¶
Одна из разновидностей атак на приложения — поведенческие атаки (брутфорс атаки). По умолчанию нода Вебмониторэкс не защищает приложения от таких атак. В этой инструкции приведены шаги для настройки защиты приложений от брутфорса.
К разновидностям брутфорс атак относятся:
-
Классические брутфорс атаки: перебор паролей, перебор идентификаторов сессии, подстановка учетных данных. Такие атаки характеризуются большим количеством запросов, отправленных на типовой URL за определенный временной промежуток. При этом в запросах передаются разные значения параметров, по которым осуществляется перебор.
-
Принудительный просмотр ресурсов веб‑приложения (forced browsing). Основная характеристика этого типа атаки — множество запросов к разным эндпоинтам веб‑приложения, в ответ на которые вернулся код 404.
В процессе такой атаки злоумышленники пытаются найти директории и файлы с информацией о компонентах, конфигурациях приложения или другие скрытые ресурсы. Чаще всего злоумышленник собирает информацию о веб‑приложении с помощью принудительного просмотра ресурсов и в дальнейшем использует ее для реализации других атак на конкретные компоненты приложения.
Подробное описание брутфорса →
Ограничения в обнаружении брутфорса
Вебмониторэкс ищет признаки брутфорс атак только в следующих запросах:
- Запросы, отправленные по протоколу HTTP.
- Запросы, в которых не обнаружены признаки других типов атак. Например, запросы не считаются брутфорс атакой, если:
- В этих запросах обнаружены признаки атак на проверку данных.
- Эти запросы попадают под регулярное выражение, заданное в правиле Создать признак атаки на основе регулярного выражения.
Шаги для настройки защиты от брутфорса¶
-
Включите модуль Защита от брутфорса в план подписки на Вебмониторэкс WAF. Для этого отправьте запрос на sales@wallarm.ru.
-
Если нода Вебмониторэкс установлена за балансировщиком нагрузки или прокси‑сервером, настройте проброс реального IP‑адреса клиента.
-
Настройте триггер Brute force или Forced browsing.
-
Протестируйте настройки для защиты от брутфорса.
Настройка триггера для определения брутфорса¶
Триггеры с условием "Количество запросов"
Если для защиты от брутфорса уже настроен триггер с условием Количество запросов, он по-прежнему работает. Для настройки триггеров вы также могли использовать правила Добавить к запросам тег брутфорс атаки / forced browsing. Правила применяются, но теперь они недоступны для редактирования или повторного создания.
Ваши сервисы по-прежнему защищены от брутфорс атак, однако теперь доступна более гибкая настройка триггеров на брутфорс атаки. Поэтому мы рекомендуем настроить новые триггеры, как описано ниже, и отключить старые.
С помощью триггеров задаются условия для обнаружения брутфорс атак. Для типов брутфорс атак настраиваются разные триггеры:
-
Brute force для обнаружения классических брутфорс атак. Условие для обнаружения — количество запросов с одного IP‑адреса.
-
Forced browsing для обнаружения типа брутфорс атаки — forced browsing. Условие для обнаружения — количество кодов ответа 404 на запросы с одного IP‑адреса.
Чтобы настроить триггер:
-
Перейдите в Консоль управления Вебмониторэкс → секция Триггеры и откройте окно создания триггера.
-
Выберите условие Brute force или Forced browsing в зависимости от типа брутфорс атаки, от которой необходимо защитить приложение.
-
Задайте порог для срабатывания триггера:
- Для триггера с условием Brute force — количество запросов с одного IP‑адреса за промежуток времени.
- Для триггера с условием Forced browsing — количество кодов ответа 404 на запросы с одного IP‑адреса за промежуток времени.
-
Если требуется, задайте URI, по которому необходимо фильтровать все запросы из трафика для срабатывания триггера. Например:
- Для настройки защиты от перебора паролей задайте URI для аутентификации пользователей на ресурсе.
- Для настройки защиты от атак типа forced browsing задайте URI директории с файлами ресурса.
- Если URI не задан, триггер будет применяться ко всем запросам. При обнаружении порогового количества запросов к любому эндпоинту с одного IP‑адреса, Вебмониторэкс применит триггер (аналогично для кодов ответа 404).
URI можно задать с помощью конструктора URI или расширенной формы редактирования URI в окне создания триггера.
Триггеры с вложенными URI
Если в триггерах с одинаковыми условиями заданы вложенные URI и запросы поступают на URI с меньшим уровнем вложенности, количество запросов или кодов 404 учитывается только в триггере с меньшим уровнем вложенности URI. Триггер без URI считается триггером с самым высоким уровнем вложенности.
Пример:
- В одном триггере с условием Brute force не задан URI (триггер срабатывает на запросы к любому приложению или любой части приложения).
- В другом триггере с условием Brute force задан URI
example.com/api
.
Запросы к
example.com/api
будут учитываться только во втором триггере с URIexample.com/api
в условии. -
Если требуется, задайте другие фильтры для запросов:
- Приложение, на адрес которого отправлены запросы.
- Один или несколько IP, с которых отправлены запросы.
-
Выберите реакции триггера:
- Для триггера с условием Brute force — Отметить как brute force. Запросы, отправленные после превышения порога, будут отмечены как брутфорс атака и выгружены в список событий в Консоли управления.
- Для триггера с условием Forced browsing — Отметить как forced browsing. Запросы, отправленные после превышения порога, будут отмечены как атака типа forced browsing и выгружены в список событий в Консоли управления.
- Добавить IP в черный список и время блокировки IP, чтобы заблокировать IP‑адрес или IP‑адреса, с которых были отправлены вредоносные запросы. Нода Вебмониторэкс будет блокировать все запросы, отправленные с IP‑адреса из черного списка после срабатывания порога триггера.
-
Сохраните триггер и дождитесь синхронизации Вычислительного кластера и ноды Вебмониторэкс (обычно 2-4 минуты).
Пример триггера Brute force для блокировки классической брутфорс атаки на https://example.com/api/v1/login
:
Описание приведенного примера и других примеров триггеров для защиты от брутфорса доступно по ссылке.
Для защиты от брутфорса вы можете настроить несколько триггеров с разными условиями и фильтрами.
Тестирование настройки для защиты от брутфорса¶
-
Отправьте на защищенный URI количество запросов, которое превышает настроенный порог. Например, 50 запросов на
example.com/api/v1/login
:for (( i=0 ; $i<51 ; i++ )) ; do curl https://example.com/api/v1/login ; done
-
Если настроена реакция Добавить IP в черный список: перейдите в Консоль управления Вебмониторэкс → Черный список и убедитесь, что IP‑адрес источника запросов заблокирован на заданное время.
-
Откройте секцию События и убедитесь, что запросы отображаются в списке как атака типа brute force или forced browsing атака. Например:
Количество запросов в интерфейсе соответствует количеству запросов, которые были отправлены после срабатывания триггера (подробнее об обнаружении поведенческих атак). Если количество больше 5, к запросам применяется алгоритм семплирования и в интерфейсе отображается подробная информация только о 5 первых хитах (подробнее о применении алгоритма семплирования).
При поиске вы можете использовать фильтры, например:
dirbust
для атак типа forced browsing илиbrute
для брутфорс атак. Описание всех фильтров доступно в инструкции по использованию поиска.