Настроить интеграцию с SIEM-системой Wazuh
- Если у вас не установлен Wаzuh-сервер, установите его.
- Создайте сервисного пользователя.
- Выпишите IAM-токен для аккаунта.
- Получите скрипт для экспорта аудит-логов.
- Настройте и запустите скрипт.
- Настройте прием аудит-логов в Wazuh.
1. Установить Wazuh-сервер
Вы можете установить Wаzuh-сервер из дистрибутива на любом доступном сервере или развернуть облачный сервер с Wazuh из готового образа в панели управления.
Установить из дистрибутива
Установить из готового образа
-
Откройте CLI.
-
Установите Wаzuh-сервер:
curl -sO https://packages.wazuh.com/4.14/wazuh-install.sh && sudo bash ./wazuh-install.sh -aПодробнее об установке Wаzuh-сервера из дистрибутива в статье Quickstart официальной документации Wazuh.
Используйте инструкцию Облачный сервер с Wazuh.
2. Создать сервисного пользователя
Добавьте сервисного пользователя с разрешением в области доступа Аккаунт и ролью member.
Добавлять пользователей может Владелец аккаунта или пользователи с ролью iam.admin.
3. Получить IAM-токен для аккаунта
Получите IAM-токен для аккаунта для сервисного пользователя, которого вы создали на этапе 2.
4. Получить скрипт для экспорта аудит-логов
Мы подготовили скрипт для экспорта аудит-логов — он позволяет выгружать логи в файл, а также отправлять их на заданный IP-адрес или эндпойнт по протоколу syslog или HTTP/HTTPS.
-
Откройте CLI.
-
Клонируйте репозиторий скрипта:
git clone https://github.com/t-rex-general/auditlog-integration.gitФайлы скрипта будут сохранены в рабочую директорию в папку
auditlog-integration.
5. Настроить и запустить скрипт
-
Откройте CLI.
-
Создайте виртуальное окружение:
python3 -m venv .venv -
Активируйте виртуальное окружение:
source .venv/bin/activate -
Перейдите в папку скрипта:
cd auditlog-integration -
Установите необходимые зависимости:
pip3 install -r requirements.txt -
Создайте конфигурационный файл
.env:touch .env -
Откройте конфигурационный файл
.env:nano .env -
Заполните конфигурационный файл
.env:8.1. Добавьте блок с параметрами для аутентификации в API сервиса Аудит-логи:
AUDIT_LOGS_URL=<base_url>/v1/logs
USERNAME=<username>
PASSWORD=<password>
ACCOUNT_ID=<account_id>Укажите:
<base_url>— URL для обращения к API аудит-логов в нужном пуле. Список URL можно посмотреть в инструкции Список URL;<username>— имя сервисного пользователя, которого вы создали на этапе 2;<password>— пароль сервисного пользователя. Если в пароле есть символы[]\^$.|?*+(), экранируйте их — поставьте перед символом обратный слеш\;<account_id>— номер аккаунта, можно посмотреть в панели управления в правом верхнем углу.
8.2. Задайте тип транспорта
fileдля экспорта аудит-логов в файл:TRANSPORT_TYPE=file8.3. Задайте интервал обращения к API:
POLL_INTERVAL=<poll_interval>Укажите
<poll_interval>— интервал обращения к API в секундах (по умолчанию — 30).8.4. Выйдите из файла с сохранением, для этого последовательно нажмите Ctrl+X → Y → Enter.
-
Запустите скрипт:
python3 main.py
6. Настроить прием аудит-логов в Wazuh
-
Добавьте в Wazuh путь до файла с выгрузкой аудит-логов. Для этого в основном конфигурационном файле
/var/ossec/etc/ossec.confв блок<ossec_config>добавьте запись:<localfile>
<log_format>json</log_format>
<location><path></location>
</localfile>Укажите
<path>— путь до файла с аудит-логами. По умолчанию файлы сохраняются в папку скрипта в файлevents.txt. Вы можете изменить имя файла, для этого в папке скрипта в файлеsavers.pyв блокеclass FileSaverизмените значение в полеself.filename. -
Добавьте в Wazuh новое правило для отображения загруженных событий. Для этого в файле
/var/ossec/etc/rules/local_rules.xmlдобавьте запись:<group name="audit_logs">
<rule id="100001" level="3">
<decoded_as>json</decoded_as>
<description>Audit log event from Selectel</description>
<field name="event_type">audit_logs.audit_logs.download</field>
<options>no_full_log</options>
<group>audit_logs</group>
</rule>
</group>Здесь:
group name="audit_logs"— название группы правил;rule id="100001"— уникальный идентификатор правила;level="3"— уровень критичности события;<decoded_as>json</decoded_as>— указывает, что событие должно быть распознано как JSON;<description>Audit log event from Selectel</description>— описание события в интерфейсе Wazuh;<field name="event_type">audit_logs.log.download</field>— условие срабатывания правила по значению поляevent_type;<options>no_full_log</options>— отключает сохранение полного текста события в алерте;<group>audit_logs</group>— дополнительная группа, в которую включается событие после срабат ывания правила.
-
Опционально: проверьте работу правила:
3.1. Откройте CLI.
3.2. Передайте содержимое файла с аудит-логами в качестве входных данных в исполняемый файл
/var/ossec/bin/wazuh-logtest:cat /var/ossec/logs/audit.log | /var/ossec/bin/wazuh-logtestВ ответе появится результат парсинга событий в JSON-формате, например:
**Phase 1: Completed pre-decoding.
**Phase 2: Completed decoding.
name: 'json'
event_id: 'ed253073-75ea-4563-919a-f01427f5a4a8'
event_saved_time: '2025-12-09T11:43:14Z'
event_time: '2025-12-09T11:42:22Z'
event_type: 'audit_logs.log.download'
request.remote_address: '185.55.58.180'
request.type: 'http'
request.user_agent: 'Python/3.12 aiohttp/3.13.2'
request_id: '9604fd73-2225-4946-85bf-c9a47fa6359f'
resource.account_id: '517043'
resource.details: 'null'
resource.id: '517043'
resource.new_values: 'null'
resource.old_values: 'null'
resource.type: 'audit_logs'
schema_version: '1.0'
source_type: 'audit_logs'
status: 'success'
subject.auth_provider: 'keystone'
subject.authorized_by: '[]'
subject.id: 'logs'
subject.is_authorized: 'true'
subject.type: 'user' -
Перезапустите службу
wazuh-manager:4.1. Откройте CLI.
4.2. Перезапустите службу:
systemctl restart wazuh-manager -
В веб-интерфейсе Wazuh перейдите в раздел Explore → Discover.
-
В строке поиска укажите правило, которое вы создали на шаге 2:
rule.id:100001. В веб-интерфейсе Wazuh отобразятся события из сервиса Аудит-логи.