Перейти к основному содержимому

Настроить интеграцию с SIEM-системой Wazuh

Последнее изменение:
  1. Если у вас не установлен Wаzuh-сервер, установите его.
  2. Создайте сервисного пользователя.
  3. Выпишите IAM-токен для аккаунта.
  4. Получите скрипт для экспорта аудит-логов.
  5. Настройте и запустите скрипт.
  6. Настройте прием аудит-логов в Wazuh.

1. Установить Wazuh-сервер

Вы можете установить Wаzuh-сервер из дистрибутива на любом доступном сервере или развернуть облачный сервер с Wazuh из готового образа в панели управления.

  1. Откройте CLI.

  2. Установите Wаzuh-сервер:

    curl -sO https://packages.wazuh.com/4.14/wazuh-install.sh && sudo bash ./wazuh-install.sh -a

    Подробнее об установке Wаzuh-сервера из дистрибутива в статье Quickstart официальной документации Wazuh.

2. Создать сервисного пользователя

Добавьте сервисного пользователя с разрешением в области доступа Аккаунт и ролью member.

Добавлять пользователей может Владелец аккаунта или пользователи с ролью iam.admin.

3. Получить IAM-токен для аккаунта

Получите IAM-токен для аккаунта для сервисного пользователя, которого вы создали на этапе 2.

4. Получить скрипт для экспорта аудит-логов

Мы подготовили скрипт для экспорта аудит-логов — он позволяет выгружать логи в файл, а также отправлять их на заданный IP-адрес или эндпойнт по протоколу syslog или HTTP/HTTPS.

  1. Откройте CLI.

  2. Клонируйте репозиторий скрипта:

    git clone https://github.com/t-rex-general/auditlog-integration.git

    Файлы скрипта будут сохранены в рабочую директорию в папку auditlog-integration.

5. Настроить и запустить скрипт

  1. Откройте CLI.

  2. Создайте виртуальное окружение:

    python3 -m venv .venv
  3. Активируйте виртуальное окружение:

    source .venv/bin/activate
  4. Перейдите в папку скрипта:

    cd auditlog-integration
  5. Установите необходимые зависимости:

    pip3 install -r requirements.txt
  6. Создайте конфигурационный файл .env:

    touch .env
  7. Откройте конфигурационный файл .env:

    nano .env
  8. Заполните конфигурационный файл .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=file

    8.3. Задайте интервал обращения к API:

    POLL_INTERVAL=<poll_interval>

    Укажите <poll_interval> — интервал обращения к API в секундах (по умолчанию — 30).

    8.4. Выйдите из файла с сохранением, для этого последовательно нажмите Ctrl+XYEnter.

  9. Запустите скрипт:

    python3 main.py

6. Настроить прием аудит-логов в Wazuh

  1. Добавьте в 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.

  2. Добавьте в 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. Опционально: проверьте работу правила:

    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'
  4. Перезапустите службу wazuh-manager:

    4.1. Откройте CLI.

    4.2. Перезапустите службу:

    systemctl restart wazuh-manager
  5. В веб-интерфейсе Wazuh перейдите в раздел ExploreDiscover.

  6. В строке поиска укажите правило, которое вы создали на шаге 2: rule.id:100001. В веб-интерфейсе Wazuh отобразятся события из сервиса Аудит-логи.