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

Настройка защиты от атак типа BOLA (IDOR)

Поведенческие атаки типа Broken Object Level Authorization (BOLA) эксплуатируют одноименную уязвимость приложений. Данная уязвимость позволяет злоумышленнику обратиться к объекту по индентификатору через запрос API и получить или изменить его данные, обойдя механизм авторизации. В этой инструкции приведены шаги для настройки защиты приложений от атак типа BOLA.

По умолчанию, Вебмониторэкс обнаруживает только уязвимости типа BOLA (также известны как IDOR), но не обнаруживает попытки их эксплуатации.

Для обнаружения и блокировки BOLA-атак Вебмониторэкс предоставляет следующие возможности:

Ограничения в обнаружении BOLA-атак

Триггер для обнаружения BOLA-атак поддерживается только нодой 4.2 и выше.

Нода 4.2 и выше ищет признаки BOLA-атак только в следующих запросах:

Требования

Чтобы защитить ресурсы от BOLA-атак, убедитесь, что соблюдены следующие требования:

  1. Убедитесь, что у вас установлена нода 4.2 или выше.

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

Ручная настройка защиты от BOLA-атак

Чтобы Вебмониторэкс определял запросы как атаки типа BOLA, необходимо описать соответствующее поведение с помощью триггера типа BOLA в Консоли управления:

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

  2. Задайте условия для определения атаки типа BOLA:

    • Количество запросов с одного IP за промежуток времени.
    • URI, на который должно поступить заданное количество запросов и который необходимо защитить от атак типа BOLA. В значении необходимо указать эндпоинт API, на который можно передать идентификатор какого-либо объекта, так как к атакам типа BOLA уязвимы именно такие эндпоинты.

      Для обозначения path‑параметра, в котором передается идентификатор объекта, используйте символ *. Пример значения:

      example.com/shops/*/financial_info
      

      URI можно задать с помощью конструктора URI или расширенной формы редактирования.

    • (Опционально) Приложение, на которое должно поступить заданное количество запросов и которое необходимо защитить от атак типа BOLA.

      Например: если вы обозначаете несколько разных доменов одинаковым именем, рекомендуем указать ID приложения, которому принадлежит домен из фильтра URI.

    • (Опционально) Один или несколько IP, с которых отправлены запросы.

  3. Выберите реакции триггера:

    • Отметить как BOLA. Вебмониторэкс отметит запросы, которые попали под все условия триггера, как атаку типа BOLA и выгрузит ее в список событий в Консоли управления. Нода НЕ заблокирует запросы.
    • Добавить IP в черный список и время блокировки IP, чтобы заблокировать адрес(а), с которых были отправлены вредоносные запросы типа BOLA.

      Нода будет блокировать все легитимные и вредоносные запросы с IP‑адресов, попавших в черный список.

    • Добавить IP в серый список и время блокировки IP, чтобы добавить в серый список адрес(а), с которых были отправлены вредоносные запросы типа BOLA.

      Нода Вебмониторэкс будет блокировать запросы с IP‑адреса из серого списка, если обнаружит в них признаки атак на проверку входных данных, атак типа vpatch или индивидуальные признаки атак.

      Атаки BOLA, отправленные с адресов из серого списка

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

  4. Сохраните триггер и дождитесь синхронизации Вычислительного кластера и ноды Вебмониторэкс (обычно 2-4 минуты).

Пример триггера для поиска BOLA-атак среди запросов к адресу с финансовыми данными магазинов https://example.com/shops/{shop_id}/financial_info:

Триггер BOLA

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

Автоматическая BOLA-защита для эндпоинтов, обнаруженных модулем "Структура API"

Если вы используете модуль Структура API, вам доступна автоматическая защита обнаруженных эндпоинтов от BOLA-атак.

Вы можете включить автозащиту в Консоли управления → Защита от BOLA:

BOLA trigger

После включения опции, Вебмониторэкс:

  1. Выявляет эндпоинты API, которые являются наиболее вероятными целями BOLA-атак, например, содержат вариативные параметры путей: domain.com/path1/path2/path3/{variative_path4}.

    Этот этап занимает некоторое время

    Для выявления уязвимых эндпоинтов API необходимо изучить построенную структуру API и характер входящего трафика, это занимает некоторое время.

    Автозащита от BOLA-атак распространяется только на эндпоинты, обнаруженные модулем Обнаружение API. Защищенные эндпоинты подсвечиваются в структуре API.

  2. Защищает уязвимые эндпоинты API от атак BOLA. Логика защиты по умолчанию:

    • Считать BOLA-атаками запросы, отправленные на уязвимый эндпоинт после превышения порога в 180 запросов с одного IP за 1 минуту.
    • Не блокировать BOLA-атаки, только регистрировать их в списке событий, когда достигнут порог запросов с одного IP. Запросы продолжат поступать к вашим приложениям.

    Соответствующая реакция в шаблоне автозащиты от BOLA — Регистрировать атаки.

  3. Реагирует на изменения в структуре API: автоматически защищает новые уязвимые эндпоинты и отключает защиту для удаленных эндпоинтов.

Вы можете изменить стандартное поведение Вебмониторэкс, в том числе включить блокировку источников BOLA‑атак. Для этого измените шаблон автозащиты от BOLA в Консоли управления → Защита от BOLA.

Тестирование настройки для защиты от BOLA-атак

  1. Отправьте на защищенный URI количество запросов, которое превышает настроенный порог. Например, 50 запросов с разными значениями {shop_id} на https://example.com/shops/{shop_id}/financial_info:

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

    Если настроена реакция Добавить IP в серый список, проверьте секцию Списки IPСерый список.

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

    BOLA-атаки в интерфейсе

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

    Для поиска атак типа BOLA используйте фильтр bola.