Перейти к основному содержимому
Версия: 1.12

Аудит-логи

Аудит-логи Sage — это структурированные записи о действиях пользователей и изменениях конфигурации в системе. Они содержат информацию, необходимую для расследования инцидентов безопасности: кто выполнил действие, когда и что именно изменилось.

Аудит-логи позволяют:

  • проверить историю изменений в конфигурации системы;
  • отследить действия конкретного пользователя или группы.

К аудит-логам применяются те же правила, что и к другим логам Sage. Доступ к данным, квотирование и ограничения на объем и срок хранения аудит-логов регламентируются группой доступа Sage. Подробнее см. в статье Группы доступа руководства пользователя.

Важно

Аудит-логи могут содержать чувствительные данные: логины, пароли и другие персональные данные. Чтобы настроить автоматическое скрытие чувствительных данных при выводе, задайте параметры маскирования. Подробнее см. в статье Маскирование данных.

Какие события попадают в аудит-логи​

В аудит-логи записываются события из трех категорий.

  1. Аутентификация и доступы Spirit IAM — позволяет контролировать, кто и когда получает доступ к системе:

    • входы и выходы пользователей;
    • выдача и изменение прав доступа.
  2. Управление ресурсами — позволяет отслеживать изменения в распределении ресурсов:

    • операции с тенантами;
    • управление сервисными учетными записями.
  3. Действия в Sage — позволяет контролировать изменения в настройках системы:

    • изменения сущностей (группы, дата-центры, квоты);
    • операции с алертами, справочниками, конфигурациями;
    • управление адресами, правилами и токенами.

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

События аудит-логирования могут генерироваться разными системами (Sage, Spirit IAM), поэтому фильтры поиска различаются в зависимости от источника события.

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

Подробнее о синтаксисе запросов см. в разделе Руководство по поиску пользовательской документации.

Аудит-логи Sage​

Чтобы найти аудит-логи Sage, в строке поиска укажите:

  • группу данных group;
  • фильтр securityEvent=true.

Пример для группы sage:

group="sage" securityEvent=true
Совет

Найденные аудит-логи можно экспортировать в файл для дальнейшего анализа. Подробнее см. в статье Экспорт результатов руководства пользователя.

Аудит-логи Spirit IAM​

Чтобы найти аудит-логи по компонентам Spirit IAM, в строке поиска укажите:

  • группу данных group;
  • фильтр extra.audience="audit".

Пример для группы sage:

group="sage" extra.audience="audit"
Примечание

Больше примеров аудит-логирования Spirit IAM см. в статье Аудит-операции.

Экспорт аудит-логов во внешнюю систему​

Аудит-логи можно выгружать на внешний адрес с помощью Ansible-роли vector_export_logs. Это позволяет:

  • хранить их дольше, чем позволяет квотирование Sage, чтобы соответствовать требованиям регулятора;
  • передавать их в централизованную систему мониторинга безопасности (SIEM) для анализа и корреляции событий;
  • иметь независимую копию журнала действий для расследования инцидентов;
  • передавать историю событий во внешние системы инцидент-менеджмента.

Чтобы настроить автоматический экспорт аудит-логов из групп Sage, выполните следующие шаги.

  1. Добавьте в файл Ansible-инвентаря группу vector_export_logs и укажите хосты, с которых будут отправляться аудит-логи:

    hosts.yml
    vector_export_logs:
    hosts:
    fqdn.host.example-0:
    fqdn.host.example-1:
    fqdn.host.example-2:
  2. В переменной sage_vector_export_logs_endpoint_uri укажите адрес назначения:

    group_vars/vector_export_logs.yml
    sage_vector_export_logs_endpoint_uri: "http://logs-collector.example.com:8888"
  3. В переменной sage_vector_export_logs_groups задайте группы аудит-логов для экспорта и фильтры, см. справочник параметров. Укажите хотя бы одну группу, например, sage. Для фильтров используйте выражения с VRL.

    group_vars/vector_export_logs.yml
    # Экспортировать группу аудит-логов, только события безопасности
    sage_vector_export_logs_groups:
    - name: sage
    filters:
    - name: security_event
    condition: ".securityEvent == true"

    Фильтры указываются в разрезе каждой группы. Внутри группы можно задать несколько фильтров. Аудит-лог экспортируется, если он соответствует хотя бы одному из них:

    group_vars/vector_export_logs.yml
    sage_vector_export_logs_groups:
    - name: sage
    filters:
    - name: security_event
    condition: ".securityEvent == true"
    - name: audit_log
    condition: ".extra.audience == \"audit\""

    В фильтре можно комбинировать несколько условий. Например, чтобы экспортировать только критические аудит-события, дополните условие проверкой на уровень логирования:

    group_vars/vector_export_logs.yml
    sage_vector_export_logs_groups:
    - name: sage
    filters:
    - name: critical_security
    condition: ".securityEvent == true && .level == \"ERROR\""
    Важно

    Если группа задана, но фильтры для нее не настроены, экспортируются все логи этой группы.

  4. При необходимости задайте заголовки HTTP-запроса для авторизации на целевом адресе.

    Переменная sage_vector_export_logs_endpoint_auth_header добавляет заголовок Authorization:

    group_vars/vector_export_logs.yml
    sage_vector_export_logs_endpoint_auth_header: "Authorization: Bearer <token>"

    Переменная sage_vector_export_logs_custom_headers добавляет произвольные пользовательские заголовки:

    group_vars/vector_export_logs.yml
    sage_vector_export_logs_custom_headers:
    X-API-Key: "secret-key"
    X-Custom-Header: "value"

Базовая конфигурация​

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

group_vars/vector_export_logs.yml
# Куда отправлять аудит-логи
sage_vector_export_logs_endpoint_uri: "http://logs-collector.example.com:8888"

# Группы аудит-логов для экспорта
sage_vector_export_logs_groups:
- name: sage
filters:
- name: security_event
condition: ".securityEvent == true"

# При необходимости — заголовок авторизации
# sage_vector_export_logs_endpoint_auth_header: "Authorization: Bearer <token>"

# При необходимости — произвольные пользовательские заголовки
# sage_vector_export_logs_custom_headers:
# X-API-Key: "secret-key"

Справочник параметров​

Параметры группы​

ПараметрТипОписание
namestrУникальное имя группы
filterslistОпциональный список фильтров для группы

Параметры фильтра​

ПараметрТипОписание
namestrУникальное имя фильтра в пределах группы
conditionstrVRL-выражение для фильтрации

Поддерживаемые VRL-операторы​

ОператорОписаниеПример
true, falseБулевы литералы.a == true
||Логическое ИЛИ.a || .b
&&Логическое И.a && .b
!Логическое НЕ!.a
==Равно.level == "ERROR"
!=Не равно.status != 200
()Группировка(.a || .b) && .c
.Доступ к полю.user.id

Параметры batch и retry​

Подробное описание переменных batch и retry см. в справочнике переменных конфигурации. По умолчанию используются следующие значения:

ПеременнаяПо умолчаниюОписание
sage_vector_export_logs_batch_timeout_secs1Макс. время ожидания batch (сек)
sage_vector_export_logs_batch_max_events100Макс. количество событий в batch
sage_vector_export_logs_batch_max_bytes1048576Макс. размер batch (байт)
sage_vector_export_logs_retry_max_duration_secs30Общее время retry (сек)
sage_vector_export_logs_retry_initial_backoff_secs1Начальная задержка retry (сек)