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

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

  • Сетевая доступность сервера СУБД Kaspersky Security Center по целевому порту и протоколу для каждой ноды кластера SIEM.

  • Учетная запись в СУБД с правами на чтение таблицы 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

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

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

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

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

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

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

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

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

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

        Здесь:

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

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

        kaspersky security center postgresql create secret connection string

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

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

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

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

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

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

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

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

      SELECT 'ksc' AS appname,
          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;
    • Поле идентификатора: введите ключ event_id со значением 1.

    • Интервал запроса, секунд: введите значение 15.

  4. Добавьте на конвейер элемент Нормализатор с правилом Kaspersky Security Center (идентификатор правила: RV-N-51).

  5. Соедините нормализатор с точкой входа.

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

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

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

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

kaspersky security center pipeline

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

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

sourceServiceName = "KSC"

kaspersky security center ms sql storage

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

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

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

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