Как настроить интеграцию Wazuh и MARK

Введение

Интеграция SIEM-системы с внешними платформами анализа угроз – одна из ключевых задач при построении эффективной инфраструктуры безопасности. MARK (Митигация Аномалий Откровений Хранитель) предоставляет возможности анализа IP-репутации и обнаружения угроз на основе машинного обучения. В сочетании с Wazuh это позволяет автоматически обогащать события безопасности данными о репутации источников и получать дополнительный контекст для принятия решений.

В данном руководстве рассмотрен процесс создания пользовательской интеграции между Wazuh и MARK с использованием механизма External API integrations. Этот подход позволяет Wazuh автоматически отправлять данные о подозрительных IP-адресах в MARK API и получать обратно информацию о репутации, которая затем фиксируется как новое событие в системе.

Предварительные требования

Перед началом настройки убедитесь, что выполнены следующие условия:

  • Wazuh Manager версии 4.7 или выше установлен и функционирует
  • Python 3 доступен на сервере Wazuh Manager
  • Сетевой доступ от сервера Wazuh к API MARK (https://mark-api.opennix.org)
  • Права суперпользователя (root) для размещения скрипта интеграции

Установка и настройка скрипта

Шаг 1: Клонируйте репозиторий

Начните с клонирования репозитория, содержащего скрипт интеграции:

git clone https://github.com/pyToshka/wazuh-mark-integration.git

Шаг 2: Разверните скрипт интеграции

Скопируйте скрипт интеграции (custom-integration-mark.py) в директорию интеграций Wazuh:

cp custom-integration-mark.py /var/ossec/integrations

Шаг 3: Настройте права скрипта

Установите необходимые права и владельца, чтобы обеспечить безопасное выполнение скрипта интеграции:

chmod 750 /var/ossec/integrations/custom-integration-mark.py
chown root:wazuh /var/ossec/integrations/custom-integration-mark.py

Настройка правил Wazuh

Правила Wazuh определяют, какие события будут обрабатываться интеграцией. В данном случае нам необходимо создать правила, которые срабатывают при обнаружении неудачных попыток SSH-аутентификации с публичных IP-адресов. Регулярное выражение в правилах исключает приватные диапазоны адресов (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), чтобы интеграция обрабатывала только внешние подключения.

Шаг 4: Обновите правила Wazuh

Измените файл local_rules.xml, чтобы включить пользовательские правила для мониторинга конкретных событий, таких как неудачные попытки SSH аутентификации. Например:

<group name="local,syslog,sshd,">
 <rule id="100004" level="10">
    <if_sid>5760</if_sid>
    <match type="pcre2">\b(?!(10)|192\.168|172\.(2[0-9]|1[6-9]|3[0-1])|(25[6-9]|2[6-9][0-9]|[3-9][0-9][0-9]|99[1-9]))[0-9]{1,3}\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)</match>
    <description>sshd: Неудачная аутентификация с публичного IP адреса > $(srcip).</description>
    <group>authentication_failed,pci_dss_10.2.4,pci_dss_10.2.5,</group>
  </rule>
 <rule id="100005" level="10">
    <if_sid>5710</if_sid>
    <match type="pcre2">\b(?!(10)|192\.168|172\.(2[0-9]|1[6-9]|3[0-1])|(25[6-9]|2[6-9][0-9]|[3-9][0-9][0-9]|99[1-9]))[0-9]{1,3}\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)</match>
    <description>sshd: Неудачная аутентификация с публичного IP адреса > $(srcip).</description>
    <group>authentication_failed,pci_dss_10.2.4,pci_dss_10.2.5,</group>
  </rule>
</group>

<group name="local,syslog,sshd,">
  <rule id="100007" level="10">
    <field name="mark.srcip">\.+</field>
    <description>[MARK] IP адрес $(mark.srcip) пытается подключиться к сети.</description>
    <group>authentication_failed,pci_dss_10.2.4,pci_dss_10.2.5,</group>
  </rule>
</group>

Пояснение к правилам:

  • Правило 100004 (level 10) – срабатывает при неудачной аутентификации, обнаруженной правилом 5760 (SSH brute force). IP-адрес источника проверяется регулярным выражением на принадлежность к публичному диапазону.
  • Правило 100005 (level 10) – аналогично правилу 100004, но срабатывает на основе правила 5710 (SSH authentication failure).
  • Правило 100007 (level 10) – обрабатывает ответ от MARK API. Поле mark.srcip заполняется скриптом интеграции после получения данных о репутации IP-адреса.

Настройка интеграции и запуск

Шаг 5: Настройте интеграцию в ossec.conf

Конфигурация интеграции определяет, какой скрипт будет вызван, по какому адресу отправлять запросы и какие события будут передаваться для обработки. Добавьте интеграцию в файл ossec.conf, чтобы подключить Wazuh к API MARK. Пример конфигурации:

<!-- MARK Интеграция -->
<integration>
    <name>custom-integration-mark.py</name>
    <hook_url>https://mark-api.opennix.org</hook_url>
    <level>10</level>
    <rule_id>110004,110005</rule_id>
    <alert_format>json</alert_format>
</integration>

Шаг 6: Перезапустите менеджер Wazuh

После применения изменений перезапустите менеджер Wazuh для активации интеграции:

systemctl restart wazuh-manager

Обратите внимание на ключевые параметры конфигурации:

  • <name> – имя скрипта интеграции, который должен находиться в директории /var/ossec/integrations/ и начинаться с префикса custom-.
  • <hook_url> – адрес API MARK, куда будут направляться запросы.
  • <level> – минимальный уровень серьезности события для активации интеграции. Значение 10 соответствует событиям высокой критичности.
  • <rule_id> – идентификаторы правил, при срабатывании которых вызывается интеграция.
  • <alert_format> – формат передачи данных (JSON обеспечивает структурированную передачу).

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

Шаг 7: Проверьте интеграцию

Протестируйте настройку, вызывая события (например, неудачные попытки SSH входа) и проверьте, отправляются ли оповещения в MARK через интеграцию.

Для генерации тестового события можно выполнить попытку SSH-подключения с неверными учетными данными:

ssh nonexistent_user@your_wazuh_server

После этого проверьте логи интеграции:

tail -f /var/ossec/logs/integrations.log

Если интеграция работает корректно, в логах появятся записи об отправке запросов к MARK API и получении ответов с данными о репутации IP-адреса.

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

Решение типичных проблем

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

  • Скрипт не запускается – убедитесь, что права доступа установлены корректно (750) и владельцем файла является root:wazuh. Также проверьте наличие корректного shebang (#!/usr/bin/env python3) в начале скрипта.
  • Нет подключения к MARK API – проверьте сетевую доступность API с сервера Wazuh командой curl https://mark-api.opennix.org. При необходимости настройте правила межсетевого экрана.
  • События не генерируются – убедитесь, что правила в local_rules.xml не содержат синтаксических ошибок. Проверьте корректность правил с помощью команды /var/ossec/bin/wazuh-logtest.
  • Дублирование событий – если одно событие вызывает несколько срабатываний, проверьте идентификаторы правил в конфигурации интеграции и убедитесь, что они не пересекаются с другими активными правилами.

Следуя этим шагам, вы можете установить бесшовную интеграцию между Wazuh и MARK, обеспечивая улучшенный мониторинг и аналитику безопасности.

Связанные материалы

Полезные ссылки


Смотрите также