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

Что нового в ноде Вебмониторэкс версии 4.0

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

Критические изменения в наборе метрик

Начиная с версии 4.0, недоступны следующие метрики collectd:

  • curl_json-wallarm_nginx/gauge-requests — вы можете использовать аналогичную метрику, curl_json-wallarm_nginx/gauge-abnormal

  • curl_json-wallarm_nginx/gauge-attacks

  • curl_json-wallarm_nginx/gauge-blocked

  • curl_json-wallarm_nginx/gauge-time_detect

  • curl_json-wallarm_nginx/derive-requests

  • curl_json-wallarm_nginx/derive-attacks

  • curl_json-wallarm_nginx/derive-blocked

  • curl_json-wallarm_nginx/derive-abnormal

  • curl_json-wallarm_nginx/derive-requests_lost

  • curl_json-wallarm_nginx/derive-tnt_errors

  • curl_json-wallarm_nginx/derive-api_errors

  • curl_json-wallarm_nginx/derive-segfaults

  • curl_json-wallarm_nginx/derive-memfaults

  • curl_json-wallarm_nginx/derive-softmemfaults

  • curl_json-wallarm_nginx/derive-time_detect

Критическое изменение: Изменения в требованиях к системе для установки ноды

Начиная с версии 4.0, фильтрующая нода выгружает данные в Вычислительный кластер Вебмониторэкс, используя адрес api.wallarm.ru:443 вместо api.wallarm.ru:444.

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

Единый метод регистрации нод в Вычислительном кластере Вебмониторэкс

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

Единый метод регистрации нод по токену обеспечивает более безопасное и быстрое подключение к Вычислительному кластеру:

  • Для синхронизации ноды и Вычислительного кластера не требуется поддерживать отдельные аккаунты пользователей с ролью Деплой.

  • Личные данные пользователей остаются в пределах Вычислительного кластера Вебмониторэкс.

  • Нет необходимости отключать механизм двухфакторной аутентификации, обеспечивающий защиту данных аккаунтов пользователей.

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

В связи с изменениями в способах регистрации нод, изменяются типы нод:

  • Для обозначения ноды с единым способом регистрации появился новый тип — нода Вебмониторэкс. Нода подключается к Вычислительному кластеру по токену с помощью скрипта register-node.

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

    Миграция с облачной ноды на ноду Вебмониторэкс не требуется.

  • Локальная нода считается устаревшей. Локальная нода подключалась к Вычислительному кластеру по паре "email пользователя-пароль" с помощью скрипта addnode.

    Теперь при установке модуля Вебмониторэкс для NGINX, NGINX Plus, Kong или в форме Docker-контейнера регистрация ноды будет выглядеть следующим образом:

    1. Создать ноду в Консоли управления и скопировать сгенерированный токен.
    2. Запустить на сервере скрипт register-node, используя скопированный токен.

      В Docker-контейнер токен передается в новой переменной окружения WALLARM_API_TOKEN.

    Поддержка локальной ноды

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

    Рекомендуется заменить локальную ноду на ноду Вебмониторэкс заранее. Инструкции по обновлению включают шаги по миграции на новый тип ноды.

Упрощенная конфигурация ноды Вебмониторэкс с мультиарендной опцией

Теперь при настройке ноды Вебмониторэкс с мультиарендной опцией тенанты и приложения задаются с помощью отдельных директив:

  • UUID тенанта задается в конфигурации с помощью новой директивы NGINX wallarm_partner_client_uuid.

  • Изменилось поведение директивы NGINX wallarm_application: теперь они используются только для задания уникальных идентификаторов защищаемых приложений.

Инструкция по обновлению ноды с мультиарендной опцией

Переименованные параметры, файлы и метрики

  • Изменились названия следующих директив NGINX:

    Параметры с устаревшими названиями временно поддерживаются, но в будущих релизах их поддержка прекратится полностью. Логика параметров не изменилась.

  • Файл закрытого ключа /etc/wallarm/license.key переименован в /etc/wallarm/private.key. Начиная с версии ноды 4.0 по умолчанию используется новое имя закрытого ключа.

Возможность блокировать запросы с IP-адресов из черного списка без поиска признаков атак

Добавлена новая директива NGINX wallarm_acl_access_phase, с помощью которой вы можете увеличить производительность ноды Вебмониторэкс следующим образом:

  • По умолчанию фильтрующая нода блокирует запросы с IP-адресов из черного списка только после анализа запросов на наличие атак.

  • Включение wallarm_acl_access_phase on меняет операции местами: блокировка запросов с IP-адресов из черного списка будет происходить сразу, без поиска атак в запросах. Это существенно снижает нагрузку на CPU ноды.

Качество обнаружения атак

Обновлена версия библиотеки libdetection. С помощью библиотеки libdetection теперь можно обнаружить еще больше признаков атак.

Новые переменные для настройки расширенного логирования ноды

Изменились следующие переменные ноды для настройки расширенного логирования:

  • Переменная wallarm_request_time переименована в wallarm_request_cpu_time – время, потраченное CPU машины с фильтрующей нодой на выполнение запроса.

    Переменная с предыдущим названием временно поддерживается, но в будущих релизах ее поддержка прекратится полностью. Логика переменной не изменилась.

  • Добавлена переменная wallarm_request_mono_time. Значение переменной складывается из суммы следующих показателей:

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

Правило для настройки обнаружения атак типа overlimit_res

Теперь можно настраивать обнаружение атак типа overlimit_res с помощью специального правила в Консоли управления.

В связи с этим, устарели следующие директивы NGINX:

  • Директива NGINX wallarm_process_time_limit, которые использовались для установки собственного лимита времени на обработку одного запроса.

    Теперь лимит задается с помощью правила.

  • Директива NGINX wallarm_process_time_limit_block, которые задавали режим блокировки атак типа overlimit_res.

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

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

При обновлении с ноды версии 3.4

В новой версии ноды вам будут доступны все изменения, описанные выше, а также:

  • Обновлена версия Community Ingress‑контроллера NGINX, на котором основан Ingress-контроллер Вебмониторэкс. Ранее использовалась версия 0.26.2, теперь — 1.3.0.

    Инструкция по миграции на новую версию Ingress‑контроллера Вебмониторэкс →

  • Добавлена поддержка AlmaLinux, Rocky Linux и Oracle Linux 8.x в связи с прекращением поддержки CentOS 8.x.

    Пакеты ноды для альтернативной операционной системы будут храниться в репозитории CentOS 8.x.

  • Обновлен пример страницы блокировки /usr/share/nginx/html/wallarm_blocked.html. Обновлен внешний вид, добавлена возможность настроить логотип и почту для обращений.

    Теперь по умолчанию страница выглядит следующим образом:

    Вебмониторэкс blocking page

    Подробнее о настройке страницы блокировки →

  • Изменились названия следующих директив NGINX:

    Параметры с устаревшими названиями временно поддерживаются, но в будущих релизах их поддержка прекратится полностью. Логика параметров не изменилась.

  • Изменилось название аннотации Ingress: nginx.ingress.kubernetes.io/wallarm-instance → nginx.ingress.kubernetes.io/wallarm-application.

    Аннотация с устаревшим названием временно поддерживается, но в будущих релизах ее поддержка прекратится полностью. Логика аннотации не изменилась.

  • Изменилось название файла со сборкой индивидуальных правил: /etc/wallarm/lom → /etc/wallarm/custom_ruleset. Теперь на ноду выгружается файл только с новым названием.

    В директиве NGINX wallarm_custom_ruleset_path изменилось значение по умолчанию, новое значение — /etc/wallarm/custom_ruleset.

  • Изменились названия параметров статистики ноды Вебмониторэкс:

    • lom_apply_timecustom_ruleset_apply_time
    • lom_idcustom_ruleset_id

    Эндпоинт http://127.0.0.8/wallarm-status временно возвращает как параметры с устаревшими названиями, так и с новыми. В будущих релизах устаревшие параметры будут удалены.

    Подробнее о сервисе статистики →

  • Изменилось название метрики collectd: gauge-lom_idgauge-custom_ruleset_id.

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

    Все метрики collectd →

  • Новая переменная окружения NGINX_PORT для Docker‑контейнера Вебмониторэкс на основе NGINX. В переменной передается порт, который будет использовать NGINX внутри Docker-контейнера.

    Инструкция по запуску Docker‑контейнера Вебмониторэкс на основе NGINX →

При обновлении с ноды версии 2.18

Если вы обновляете ноду версии 2.18, доступные изменения приведены в отдельном списке.

Какие ноды рекомендуется обновить?

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

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

Процедура обновления

  1. Ознакомьтесь с рекомендациями по обновлению модулей.

  2. Обновите модули, следуя подходящей инструкции: