Введение
Интеграция 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, обеспечивая улучшенный мониторинг и аналитику безопасности.
Связанные материалы
- Митигация Аномалий Откровений Хранитель (MARK) - Узнайте больше о платформе безопасности MARK
- Улучшение Wazuh с помощью Ollama: Часть 1 - AI интеграция с Wazuh
- Применение RAG для документации Wazuh: Часть 1 - Улучшение документации
- Повышение безопасности образов контейнеров с использованием Wazuh и Trivy - Мониторинг безопасности контейнеров