Kaspersky Security Center сбор из СУБД PostgreSQL

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

  • Сетевой доступ к БД Kaspersky Security Center.

  • Учетная запись в СУБД с правами на чтение таблицы ev_event (Сбор событий из БД).

Настройки СУБД PostgreSQL

События Kaspersky Security Center записываются в таблицу ev_event базы данных KAV СУБД MS SQL. Для настройки сбора логов из базы данных необходимо к ней подключиться. Чтобы подключиться к БД, используйте специально созданную сервисную учетную запись (далее — УЗ).

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

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

  1. Выполните следующую команду из-под пользователя postgres:

    sudo -u postgres psql
  2. Создайте сервисную учетную запись, выполнив следующие команды:

    CREATE USER "kasper";
    ALTER ROLE kasper WITH PASSWORD 'passw0rd';
  3. Выдайте права на подключение к базе и чтение таблицы:

    GRANT CONNECT ON DATABASE KAV to kasper;
    GRANT SELECT ON ev_event TO kasper;

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

Общий вид рабочего конвейера для обеспечения получения и отображения событий:

kaspersky security center pipeline

Для подключения базы данных PostgreSQL в качестве источника событий в SIEM настройте следующий конвейер:

  1. Создайте точку входа со следующими параметрами:

    • Тип точки входа: Database.

    • SQL-запрос:

      SELECT
          ev.event_id AS event_id,
          ev.event_type_id AS deviceEventClassId,
          ev.severity AS severity,
          ev.task_display_name AS taskDisplayName,
          ev.product_name AS product_name,
          ev.product_displ_version AS product_version,
          ev.event_type AS externalId,
          ev.event_type_display_name AS event_subcode,
          ev.descr AS msg,
          CASE
              WHEN ev.rise_time IS NOT NULL THEN ev.rise_time + INTERVAL '1 hour' * (EXTRACT(EPOCH FROM (NOW() AT TIME ZONE 'UTC' - NOW())) / 3600)
              ELSE ev.rise_time
          END AS endTime,
          CASE
              WHEN ev.registration_time IS NOT NULL THEN ev.registration_time + INTERVAL '1 hour' * (EXTRACT(EPOCH FROM (NOW() AT TIME ZONE 'UTC' - NOW())) / 3600)
              ELSE ev.registration_time
          END AS kscRegistrationTime,
          CAST(ev.par7 AS VARCHAR(4000)) AS sourceUserName,
          hs."wstrWinName" AS dHost,
          hs."wstrWinDomain" AS strNtDom,
          serv."wstrWinName" AS kscName,
          CONCAT(
              (hs."nIp" >> 24) & 255, '.',
              (hs."nIp" >> 16) & 255, '.',
              (hs."nIp" >> 8) & 255, '.',
              hs."nIp" & 255
          ) AS sourceAddress,
          serv."wstrWinDomain" AS kscNtDomain,
          CONCAT(
              (serv."nIp" >> 24) & 255, '.',
              (serv."nIp" >> 16) & 255, '.',
              (serv."nIp" >> 8) & 255, '.',
              serv."nIp" & 255
          ) AS kscIP,
          CASE
              WHEN virus."tmVirusFoundTime" IS NOT NULL THEN virus."tmVirusFoundTime" + INTERVAL '1 hour' * (EXTRACT(EPOCH FROM (NOW() AT TIME ZONE 'UTC' - NOW())) / 3600)
              ELSE ev.registration_time
          END AS virusTime,
          virus."wstrObject" AS filePath,
          virus."wstrVirusName" AS virusName,
          virus.result_ev AS result
      FROM ev_event AS ev
      LEFT JOIN v_akpub_host AS hs ON ev."nHostId" = hs."nId"
      INNER JOIN v_akpub_host AS serv ON serv."nId" = 1
      LEFT JOIN rpt_viract_index AS virus ON ev.event_type_id = virus."nEventVirus"
      WHERE ev.event_id > CAST(? AS BIGINT)
      ORDER BY ev.event_id ASC LIMIT 10000;
    • База данных: MySQL.

    • Интервал запроса: 15.

    • Поле идентификатора:

      • Ключ: event_id.

      • Значение: 1.

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

      jdbc:postgresql://DBSERVER:5432/KAV?user=kasper&password=passw0rd

      Здесь:

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

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

  2. Добавьте нормализатор с правилом "Kaspersky Security Center".

  3. Добавьте конечную точку типа Хранилище событий.

  4. Установите конфигурацию конвейера.

    Если настройка выполнена корректно, в хранилище начнут поступать события из PostgreSQL.

Таблица маппинга

Таблица соответствия полей события для всех рассмотренных типов событий представлена по ссылке.