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

Обнаружение атак типа overlimit_res

Нода Вебмониторэкс тратит на обработку одного запроса ограниченное количество времени. Если время превышено, нода считает запрос атакой типа "превышение лимита вычислительных ресурсов" (overlimit_res) и прекращает обработку. С помощью правила Настроить обработку атак типа overlimit_res вы можете установить собственный лимит времени на обработку одного запроса и изменить стандартное поведение ноды при превышении лимита.

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

Поддержка правила в разных версиях ноды

Правило Настроить обработку атак типа overlimit_res поддерживается только нодой версии 3.6 и выше.

В предыдущих версиях:

  • Директива NGINX wallarm_process_time_limit используются для установки собственного лимита времени на обработку одного запроса.
  • Директива NGINX wallarm_process_time_limit_block используются для настройки режима блокировки атак типа overlimit_res.

При обновлении модулей рекомендуется перенести настройку из директив в правило, следуя инструкции для подходящей платформы.

Стандартное поведение ноды

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

Если время обработки превышено, нода:

  1. Останавливает обработку запроса.

  2. Считает запрос атакой типа overlimit_res и выгружает данные об атаке в Вычислительный кластер Вебмониторэкс.

    Если в обработанной части запроса обнаружены другие типы атак, нода также выгружает в Вычислительный кластер данные о них.

    Атаки соответствующих типов отобразятся в списке событий в Консоли управления.

  3. В режиме мониторинга — перенаправляет запрос в оригинальном виде на адрес приложения. Атаки, отправленные в обработанной и необработанной частях запроса, могут быть реализованы.

    В режиме мягкой блокировки — блокирует запрос, если он отправлен с IP-адреса из серого списка. Если с другого IP, перенаправляет запрос в оригинальном виде на адрес приложения. Атаки, отправленные в обработанной и необработанной частях запроса, могут быть реализованы.

    В режиме блокировки — блокирует запрос.

Обработка запросов в режиме "Выключено"

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

Изменение стандартного поведения ноды

Риски обхода защиты и исчерпания памяти на сервере

  • Рекомендуется изменять стандартные настройки только для определенных эндпоинтов, где это действительно необходимо и нет риска обхода защиты и эксплуатации уязвимостей. Например: эндпоинты для загрузки больших файлов.
  • Установка высокого лимита и/или обработка запроса после превышения лимита могут привести к исчерпанию памяти на сервере и неконтролируемой по времени обработке запросов.

С помощью правила Настроить обработку атак типа overlimit_res вы можете изменить стандартное поведение ноды следующим образом:

  • Установить собственный лимит времени на обработку одного запроса

  • Остановить или продолжить обработку запроса при превышении лимита времени

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

  • Считать или не считать запрос атакой типа overlimit_res при превышении лимита времени обработки

    Если нода считает запрос атакой типа overlimit_res, то заблокирует его или перенаправит на адрес приложения в зависимости от режима фильтрации.

    Если нода НЕ считает запрос атакой типа overlimit_res и запрос не содержит признаки других атак, нода перенаправит его в оригинальном виде на адрес приложения. Если в запросе есть признаки других атак, то нода заблокирует его или перенаправит на адрес приложения в зависимости от режима фильтрации.

Правило НЕ позволяет:

  • Отдельно управлять блокировкой атак типа overlimit_res. Если в правиле задана опция Считать атакой, нода блокирует атаки или перенаправляет их на адрес приложения в соответствии с заданным режимом фильтрации.

Пример правила

  • Правило повышает лимит времени для обработки каждого POST-запроса к https://example.com/upload до 1020 миллисекунд. Этот эндпоинт используется для загрузки файлов.

  • Другие параметры поведения ноды остаются стандартными: по истечении 1020 миллисекунд, нода останавливает обработку запроса и считает запрос атакой типа overlimit_res.

Пример правила "Настроить обработку атак типа overlimit_res"