Загрузка 0
ПОДЕЛИТЬСЯ

Мой блог

Листай вниз

Как подключить LLM-ассистента к Wazuh: пошаговое руководство

Как подключить LLM-ассистента к Wazuh: пошаговое руководство

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

Руководитель направления безопасности облака в Selectel делится проверенной инструкцией по внедрению языковой модели в связку с Wazuh на базе OpenSearch. В ходе настройки мы пошагово разберем установку необходимых плагинов, подключение внешней модели через OpenAI-совместимый API и интеграцию удобных интерфейсных элементов прямо в рабочую панель мониторинга.

Как подключить LLM-ассистента к Wazuh: пошаговое руководство
Как подключить LLM-ассистента к Wazuh: пошаговое руководство
Как подключить LLM-ассистента к Wazuh: пошаговое руководство
Как подключить LLM-ассистента к Wazuh: пошаговое руководство
Как подключить LLM-ассистента к Wazuh: пошаговое руководство
Как подключить LLM-ассистента к Wazuh: пошаговое руководство

Как работает интеллектуальный помощник

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

Реклама

Главную роль в этой архитектуре играет инструмент PPLTool: он заставляет модель формировать валидный запрос на языке Piped Processing Language (PPL), а затем самостоятельно исполняет его внутри базы данных. Сама языковая модель функционирует изолированно, принимая защищенные HTTPS-запросы через специальный коннектор. Настройка компонентов выполняется последовательно: сначала внедряются плагины, подключается модель и настраиваются агенты, а в самом конце добавляется визуальная кнопка интерфейса.

Схема обработки запроса аналитика через плагины дашборда в Wazuh
Путь запроса аналитика от графических плагинов дашборда до индексатора и LLM.

Системные требования и подготовка

Описанная процедура успешно протестирована на программном стеке Wazuh версии 4.14.7, функционирующем внутри Docker-контейнера в конфигурации single-node, что соответствует встроенному движку OpenSearch 2.19.5. В роли внешней языковой модели выступает qwen3-next-80b, развернутая за интерфейсом OpenWebUI, однако подойдет любое решение с поддержкой стандартного API.

Для успешного выполнения всех этапов настройки подготовьте:

Реклама
  • действующий адрес API-эндпоинта, уникальное имя модели и токен авторизации;
  • root-права на сервере, где запущены основные службы индексатора и дашборда;
  • изолированную машину с Linux, Docker, 8 ГБ оперативной памяти и доступом к репозиториям GitHub и npm для компиляции интерфейсной кнопки.

Перед началом работ обязательно уточните версию платформы в консоли разработчика с помощью запроса GET / и параметра version.number. Вся дальнейшая работа с API выполняется через Dev Tools в панели управления индексатором.

Шаг 1. Установка плагинов

Для корректной работы ассистента потребуются специальные компоненты индексатора (opensearch-skills и opensearch-flow-framework), а также набор графических элементов дашборда (assistantDashboards, mlCommonsDashboards и observabilityDashboards). Загрузите официальные архивные сборки нужной версии и извлеките необходимые директории на целевом сервере.

Если вы используете развертывание в Docker, обязательно установите корректного владельца файлов с UID 1000, соответствующим системным процессам контейнеров, после чего пропишите новые тома в конфигурационном файле docker-compose.yml. При пакетной инсталляции файлы копируются напрямую в системные каталоги служб с последующим перезапуском демонов. Убедитесь в успешной загрузке плагинов, выполнив проверку через системный инструмент проверки компонентов индексатора.

Шаг 2. Включение ассистента

На втором этапе активируется инфраструктура агентов в модуле ml-commons и разрешается отправка запросов к внешнему хосту модели. Для этого отправьте соответствующий PUT-запрос в настройки кластера, не забыв указать корректное регулярное выражение в параметре trusted_connector_endpoints_regex, где точки в доменном имени экранируются двойным обратным слэшем.

Затем отредактируйте конфигурационный файл дашборда, добавив параметры включения чата, инлайн-подсказок и инструмента Query Assist. После перезапуска службы в верхней панели интерфейса появится строка ввода вопросов, однако для полноценного ответа потребуется завершить процедуру подключения языковой модели.

Реклама
Окно ассистента в интерфейсе после завершения базовой настройки
Внешний вид диалогового окна ассистента в дашборде после базовой конфигурации.

Шаг 3. Подключение модели

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

Зарегистрируйте и разверните модель в системе, передав полученный идентификатор коннектора. Проверьте работоспособность соединения с помощью тестового запроса предсказания — в случае успешного выполнения система вернет короткий ответ от модели в структуре dataAsMap.response.

Шаг 4. Настройка агента чата

Интерфейс чата взаимодействует не напрямую с моделью, а через специализированного агента, который управляет вызовами инструментов и контролирует формат ответов. Для корректной работы агента задаются системный промпт, правила трансформации вопросов в синтаксис PPL и четкие требования к оформлению результатов в формате Markdown с обязательным указанием исходного кода запроса.

Результат работы инструмента Query Assist с генерацией PPL-запроса
Пример работы Query Assist: текстовый вопрос преобразуется в точный запрос PPL.

Соберите актуальный список групп правил вашего кластера с помощью поискового запроса по индексу алертов, исключив стандартные регуляторные метки. Зарегистрируйте агента в системе, передав собранные параметры, и привяжите его к системному индексу .plugins-ml-config по ключу os_chat с использованием административных сертификатов безопасности.

Шаг 5. Интеграция Query Assist в Discover

Инструмент Query Assist позволяет преобразовывать обычные текстовые вопросы аналитика в точные PPL-запросы прямо в поисковой строке вкладки Discover. Для его активации регистрируется отдельный легковесный агент без истории диалогов, использующий тот же инструмент трансляции запросов.

Готовый агент закрепляется в системе под системным ключом os_query_assist_ppl. После этого в панели Discover можно переключить язык запросов на PPL и вводить поисковые фразы на естественном языке, получая автоматически сгенерированные и готовые к выполнению конструкции.

Шаг 6. Добавление кнопки Explain Document

Наиболее стабильным инструментом в повседневной работе SOC является кнопка объяснения документов, поскольку модель не занимается самостоятельным составлением поисковых запросов, а анализирует уже готовый структурированный JSON-документ. Зарегистрируйте агента суммирования и привяжите его к ключу os_summary.

Для вывода кнопки в интерфейс потребуется модифицировать исходный код плагина Wazuh Dashboards, добавив компонент реакции на просмотр документов, скорректировав зависимости и выполнив процедуру сборки внутри изолированного контейнера Node.js. После завершения компиляции обновите файлы интерфейса и перезапустите службу дашборда.

Рекомендации по устранению неполадок

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

Детальный разбор алерта безопасности с помощью кнопки Explain Document
Модель разбирает конкретный алерт об уязвимости или подборе пароля.

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

01.