Mattermost: настройка источника

Данное руководство описывает процесс настройки сбора и отправки событий Mattermost в R-Vision SIEM.

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

Перед настройкой пересылки событий в R-Vision SIEM убедитесь, что обеспечена сетевая доступность между сервером Mattermost и R-Vision SIEM (или промежуточным сервером Syslog), а необходимые порты открыты.

Настройка Mattermost

События Mattermost записываются в таблицу audits базы данных сервиса Mattermost СУБД PostgreSQL. Для настройки сбора логов из базы данных необходимо подключиться к ней. Используйте для подключения специально созданную сервисную учетную запись (далее — УЗ). Для конфигурации следуйте инструкции ниже.

Создание учетной записи в СУБД PostgreSQL

Чтобы создать сервисную УЗ, подключитесь к СУБД с правами администратора. Для этого выполните следующие действия на сервере с установленной СУБД:

  1. Подключитесь к консоли СУБД PostgreSQL от имени администратора базы данных.

    • Если СУБД развернута на хосте, выполните команду:

      sudo -u postgres psql
    • Если СУБД развернута в контейнере Docker, выполните команду:

      docker exec -it <container_name_postgresql> psql -U <db_admin> -d <database_name>

      Здесь:

      • <container_name_postgresql> — имя контейнера Docker, в котором развернута СУБД PostgreSQL.

      • <db_admin> — имя администратора базы данных.

      • <database_name> — имя базы данных, в которой хранятся данные Mattermost.

    Сбор логов аудита поддерживается только в редакциях Enterprise и Enterprise Plus продукта Mattermost.
  2. Соберите продукт. Необходимо пройти первичную инициализацию и авторизацию одного из пользователей. Инициализация производится автоматически при сборке webpack.

  3. Подключитесь к базе данных PostgreSQL, в которой хранятся данные Mattermost.

  4. Создайте нового пользователя и предоставьте ему права для доступа к таблице аудита:

    CREATE USER "audit_reader" WITH PASSWORD '<password>';
    
    GRANT CONNECT ON DATABASE <database_name> TO audit_reader;
    
    GRANT USAGE ON SCHEMA public TO audit_reader;
    
    GRANT SELECT ON audits TO audit_reader;

    Здесь:

    • <database_name> — имя базы данных в вашей системе. По умолчанию имеет имя mattermost_test.

    • <password> — любой пароль, удовлетворяющий требованиям вашей СУБД и политикам безопасности.

  5. Убедитесь, что права назначены корректно:

    \du audit_reader
    
    SELECT grantee, privilege_type
    FROM information_schema.role_table_grants
    WHERE table_name = 'audits'
      AND grantee = 'audit_reader';
  6. Проверьте подключение от имени созданной УЗ:

    psql -h <db_address> -U audit_reader -d <database_name>

    Здесь:

    • <db_address> — IP-адрес или полное доменное имя (FQDN) сервера СУБД.

    • <database_name> — название базы данных, используемой в Mattermost.

  7. Выполните тестовый запрос:

    SELECT COUNT(*) FROM audits;

    В результате должна быть выведена информация о количестве записей в таблице audits.

Настройка в R-Vision SIEM

Для настройки сбора и нормализации событий источника в R-Vision SIEM выполните следующие шаги:

  1. В интерфейсе R-Vision SIEM создайте секрет со строкой подключения. Для этого:

    1. Перейти в раздел Ресурсы → Секреты.

    2. Нажмите на кнопку Создать (plus).

    3. В раскрывшемся окне создания секрета заполните поля:

      • Название: введите название секрета.

      • Описание (опционально): опишите, для чего будет использоваться секрет.

      • Тип секрета: выберите вариант Строка подключения.

      • Строка подключения: введите строку вида:

        jdbc:postgresql://<db_server>:5432/<database>?user=audit_reader&password=<password>

        Здесь:

        • <db_server> — FQDN или IP-адрес сервера СУБД.

        • <database> — имя базы данных, используемой в Mattermost.

        • <password> — пароль учетной записи audit_reader, созданной в рамках настройки пользователя в СУБД.

        • 5432 — порт подключения.

        mattermost create secret connection string

    4. Нажмите на кнопку Создать.

  2. В интерфейсе R-Vision SIEM создайте новый конвейер в коллекторе.

  3. Добавьте на конвейер элемент Точка входа со следующими параметрами:

    • Название: введите название точки входа.

    • Тип точки входа: выберите вариант Database.

    • Драйвер базы данных: выберите вариант PostgreSQL.

    • Адрес подключения: выберите созданный ранее секрет.

    • SQL-запрос: введите запрос вида:

      SELECT a.*, s.roles, s.props, u.username
      FROM audits a
      LEFT JOIN sessions s ON a.userid = s.userid
      LEFT JOIN users u on a.userid = u.id
      WHERE a."createat" BETWEEN
          (extract(epoch from now() - interval '10 second') * 1000)::bigint
          AND
          (extract(epoch from now()) * 1000)::bigint
      ORDER BY "createat" DESC;
    • Интервал запроса, секунд: введите значение 10.

  4. Добавьте на конвейер элемент VRL-трансформация со следующим кодом:

    .device_product = "mattermost"
    .device_ip = ip_to_ipv6(<your_server_ip>) ?? null

    Здесь:

    • <your_server_ip> — IP-адрес сервера Mattermost.

  5. Соедините точку входа с VRL-трансформацией.

  6. Добавьте на конвейер элемент Нормализатор с правилом Mattermost Inc Mattermost (идентификатор правила: RV-N-375).

  7. Соедините нормализатор с VRL-трансформацией.

  8. Добавьте на конвейер элемент Конечная точка типа Хранилище событий.

  9. Соедините конечную точку с нормализатором.

  10. Сохраните и установите конфигурацию конвейера.

Пример конфигурации конвейера:

mattermost pipeline

После настройки передачи событий, если настройка выполнена корректно, в хранилище начнут поступать события Mattermost.

Найти события Mattermost в хранилище можно по следующему фильтру:

device_product = "mattermost"

mattermost filter

Была ли полезна эта страница?

Обратная связь