Перейти к содержанию

Настройка защиты от брутфорса

Одна из разновидностей атак на приложения — поведенческие атаки (брутфорс атаки). По умолчанию нода Вебмониторэкс не защищает приложения от таких атак. В этой инструкции приведены шаги для настройки защиты приложений от брутфорса.

К разновидностям брутфорс атак относятся:

  • Классические брутфорс атаки: перебор паролей, перебор идентификаторов сессии, подстановка учетных данных. Такие атаки характеризуются большим количеством запросов, отправленных на типовой URL за определенный временной промежуток. При этом в запросах передаются разные значения параметров, по которым осуществляется перебор.

  • Принудительный просмотр ресурсов веб‑приложения (forced browsing). Основная характеристика этого типа атаки — множество запросов к разным эндпоинтам веб‑приложения, в ответ на которые вернулся код 404.

    В процессе такой атаки злоумышленники пытаются найти директории и файлы с информацией о компонентах, конфигурациях приложения или другие скрытые ресурсы. Чаще всего злоумышленник собирает информацию о веб‑приложении с помощью принудительного просмотра ресурсов и в дальнейшем использует ее для реализации других атак на конкретные компоненты приложения.

Подробное описание брутфорса →

Ограничения в обнаружении брутфорса

Вебмониторэкс ищет признаки брутфорс атак только в следующих запросах:

Шаги для настройки защиты от брутфорса

  1. Включите модуль Защита от брутфорса в план подписки на Вебмониторэкс WAF. Для этого отправьте запрос на sales@wallarm.ru.

  2. Если нода Вебмониторэкс установлена за балансировщиком нагрузки или прокси‑сервером, настройте проброс реального IP‑адреса клиента.

  3. Настройте триггер Brute force или Forced browsing.

  4. Протестируйте настройки для защиты от брутфорса.

Настройка триггера для определения брутфорса

Триггеры с условием "Количество запросов"

Если для защиты от брутфорса уже настроен триггер с условием Количество запросов, он по-прежнему работает. Для настройки триггеров вы также могли использовать правила Добавить к запросам тег брутфорс атаки / forced browsing. Правила применяются, но теперь они недоступны для редактирования или повторного создания.

Ваши сервисы по-прежнему защищены от брутфорс атак, однако теперь доступна более гибкая настройка триггеров на брутфорс атаки. Поэтому мы рекомендуем настроить новые триггеры, как описано ниже, и отключить старые.

С помощью триггеров задаются условия для обнаружения брутфорс атак. Для типов брутфорс атак настраиваются разные триггеры:

  • Brute force для обнаружения классических брутфорс атак. Условие для обнаружения — количество запросов с одного IP‑адреса.

  • Forced browsing для обнаружения типа брутфорс атаки — forced browsing. Условие для обнаружения — количество кодов ответа 404 на запросы с одного IP‑адреса.

Чтобы настроить триггер:

  1. Перейдите в Консоль управления Вебмониторэкс → секция Триггеры и откройте окно создания триггера.

  2. Выберите условие Brute force или Forced browsing в зависимости от типа брутфорс атаки, от которой необходимо защитить приложение.

  3. Задайте порог для срабатывания триггера:

    • Для триггера с условием Brute force — количество запросов с одного IP‑адреса за промежуток времени.
    • Для триггера с условием Forced browsing — количество кодов ответа 404 на запросы с одного IP‑адреса за промежуток времени.
  4. Если требуется, задайте 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 будут учитываться только во втором триггере с URI example.com/api в условии.

  5. Если требуется, задайте другие фильтры для запросов:

    • Приложение, на адрес которого отправлены запросы.
    • Один или несколько IP, с которых отправлены запросы.
  6. Выберите реакции триггера:

    • Для триггера с условием Brute forceОтметить как brute force. Запросы, отправленные после превышения порога, будут отмечены как брутфорс атака и выгружены в список событий в Консоли управления.
    • Для триггера с условием Forced browsingОтметить как forced browsing. Запросы, отправленные после превышения порога, будут отмечены как атака типа forced browsing и выгружены в список событий в Консоли управления.
    • Добавить IP в черный список и время блокировки IP, чтобы заблокировать IP‑адрес или IP‑адреса, с которых были отправлены вредоносные запросы. Нода Вебмониторэкс будет блокировать все запросы, отправленные с IP‑адреса из черного списка после срабатывания порога триггера.
  7. Сохраните триггер и дождитесь синхронизации Вычислительного кластера и ноды Вебмониторэкс (обычно 2-4 минуты).

Пример триггера Brute force для блокировки классической брутфорс атаки на https://example.com/api/v1/login:

Триггер брутфорс

Описание приведенного примера и других примеров триггеров для защиты от брутфорса доступно по ссылке.

Для защиты от брутфорса вы можете настроить несколько триггеров с разными условиями и фильтрами.

Тестирование настройки для защиты от брутфорса

  1. Отправьте на защищенный URI количество запросов, которое превышает настроенный порог. Например, 50 запросов на example.com/api/v1/login:

    for (( i=0 ; $i<51 ; i++ )) ; do curl https://example.com/api/v1/login ; done
    
  2. Если настроена реакция Добавить IP в черный список: перейдите в Консоль управления Вебмониторэкс → Черный список и убедитесь, что IP‑адрес источника запросов заблокирован на заданное время.

  3. Откройте секцию События и убедитесь, что запросы отображаются в списке как атака типа brute force или forced browsing атака. Например:

    Forced browsing атаки в интерфейсе

    Количество запросов в интерфейсе соответствует количеству запросов, которые были отправлены после срабатывания триггера (подробнее об обнаружении поведенческих атак). Если количество больше 5, к запросам применяется алгоритм семплирования и в интерфейсе отображается подробная информация только о 5 первых хитах (подробнее о применении алгоритма семплирования).

    При поиске вы можете использовать фильтры, например: dirbust для атак типа forced browsing или brute для брутфорс атак. Описание всех фильтров доступно в инструкции по использованию поиска.