Организация совместной работы KOMRAD Enterprise SIEM и САЗ RedCheck

С помощью KOMRAD Enterprise SIEM можно получить информацию о работе САЗ RedCheck (далее – RedCheck).

Предварительные условия:

Настройка доступа к БД RedCheck с Microsoft SQL Server

Убедитесь, что для SQL Server включён протокол TCP/IP. Для этого на машине с БД RedCheck откройте программу SQL Server Configuration Manager, далее SQL Server Network Configuration (в русском варианте - "Сетевая конфигурация SQL Server"), Protocols for SQLEXPRESS (Протоколы для MSSQLSERVER), TCP/IP, нажмите правой кнопкой мыши и зайдите в "Свойства", укажите Enabled - Yes ("Включено" - "Да"):

rcbd1

Укажите Listen All Yes ("Прослушивать все" - "Да"), а на вкладке IP Adresses (IP-адреса) в подразделе IPAII укажите TCP Port - 1433:

rcbd2

Настройка доступа к БД RedCheck с PostgreSQL

Для сбора SQL-коллектором событий с БД RedCheck настройте параметры подключения к PostgreSQL с другой машины. В файле postgresql.conf (стандартное расположение C:\Program Files\PostgreSQL\"номер_версии"\data) раскомментируйте строку, содержащую listen_addresses = localhost. Укажите listen_addresses = '*', либо укажите 2 IP адреса – машины с RedCheck и машины с KOMRAD Enterprise SIEM:

rcpostgr

Сохраните файл и закройте его. В файле pg_hba.conf (стандартное расположение C:\Program Files\PostgreSQL\"номер_версии"\data) после последней строки файла с новой строки добавить:

host all postgres `IP-адрес_ПК_КОМРАД`/32 md5
rcpghba

Сохраните файл и закройте его, после чего перезапустите службу postgresql-"номер_версии" скриптом C:\Program Files\PostgreSQL\"номер_версии"\scripts\restart, либо через Диспетчер задач, вкладка Службы:

rctaskmng

Настройка сбора с базы данных RedCheck с помощью SQL-коллектора

Для настройки сбора с БД RedCheck воспользуйтесь инструкцией.

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

  1. Тип БД – Microsoft SQL Server либо PostgreSQL в зависимости от выбранного типа БД на этапе установки RedCheck

  2. Шаблон – оставьте поле пустым

  3. Название – укажите на своё усмотрение

  4. Строка подключения – укажите логин и пароль пользователя, имеющего доступ к БД RedCheck, а также IP-адрес машины с БД, название БД RedCheck (для Postgresql запись чувствительна к регистру)

Пример строки подключения:

sqlserver://sqluser:sqlpassword@192.168.78.140?database=RedCheck

или:

postgres://postgres:pass@192.168.15.25/RedCheck

Запрос для сбора данных о проверке доступности

В качестве инициализирующего запроса укажите следующее:

SELECT max(scan.id)-1 FROM scan

В качестве регулярного запроса укажите следующее:

SELECT
    scan.id AS "ECS.Event.ID",
    job_execution.start AS "ECS.Event.Start",
    job_execution.stop AS "ECS.Event.End",
    job.name AS "ECS.RedCheck.TaskName",
    target_host.connection_address AS "ECS.Host.IP",
    ping_result.result AS "ECS.RedCheck.ScanResult",
    user_credentials.name AS "ECS.RedCheck.AccountName",
    scan_type AS "ECS.RedCheck.ScanType"
   FROM scan
   LEFT JOIN job_execution on scan.id_job_execution = job_execution.id
   LEFT JOIN target_host on scan.id_target_host = target_host.id
   LEFT JOIN job ON job_execution.id_job = job.id
   LEFT JOIN user_credentials on job.id_credential = user_credentials.id
   LEFT JOIN ping_result on scan.id  = ping_result.id_scan
   WHERE scan.id > $1 and scan_type = 20

Запрос для сбора данных об уязвимостях

В качестве инициализирующего запроса укажите следующее:

SELECT max(scan.id)-1 FROM scan

В качестве регулярного запроса укажите следующее:

SELECT
    scan.id AS "ECS.Event.ID",
	job_execution.start AS "ECS.Event.Start",
    job_execution.stop AS "ECS.Event.End",
    job.name AS "ECS.RedCheck.TaskName",
    target_host.connection_address AS "ECS.Host.IP",
    severity_not_available as "ECS.RedCheck.UnknownSeverity",
    severity_information AS "ECS.RedCheck.InformationalSeverity",
    severity_low AS "ECS.RedCheck.LowSeverity",
    severity_medium AS "ECS.RedCheck.MediumSeverity",
    severity_high AS "ECS.RedCheck.HighSeverity",
    severity_critical AS "ECS.RedCheck.CriticalSeverity",
    message AS "ECS.Base.Message",
    credential_profile AS "ECS.User.Type",
    scan.cpe AS "ECS.OS.Platform",
    fqdn AS "ECS.Host.Name",
    internals AS "ECS.Rule.Description",
    job.description AS "ECS.Rule.Description",
    settings AS "ECS.RedCheck.ScanSettings",
SUM(severity_information+severity_not_available+severity_low+severity_medium+severity_high+severity_critical) as "ECS.RedCheck.VulnerabilityNumber",
    scan_type AS "ECS.RedCheck.ScanType",
    path AS "ECS.File.Path",
    check_sum AS "ECS.Related.Hash"
       FROM scan
   LEFT JOIN job_execution on scan.id_job_execution = job_execution.id
   LEFT JOIN target_host on scan.id_target_host = target_host.id
   LEFT  JOIN job ON job_execution.id_job = job.id
   LEFT JOIN file_system_scan_result on scan.id = file_system_scan_result.id_scan
   where scan.id > $1 AND scan_type != 20
   group by scan.id, job_execution.start, job_execution.stop, job.name,  target_host.connection_address, job_execution.credential_profile, job.description, settings, scan_type, file_system_scan_result.path, file_system_scan_result.check_sum
   order by scan.id

Запрос для сбора данных о просканированных портах

В качестве инициализирующего запроса укажите следующее:

SELECT max(id)-1 FROM port_scan_result

В качестве регулярного запроса укажите следующее:

SELECT
    port_scan_result.id AS "ECS.Event.ID",
	job_execution.start AS "ECS.Event.Start",
    job_execution.stop AS "ECS.Event.End",
    job.name AS "ECS.RedCheck.TaskName",
    target_host.connection_address AS "ECS.Host.IP",
    message AS "ECS.Base.Message",
    credential_profile AS "ECS.User.Type",
    scan.cpe AS "ECS.OS.Platform",
    fqdn AS "ECS.Host.Name",
    internals AS "ECS.Rule.Description",
    job.description AS "ECS.Rule.Description",
    settings AS "ECS.RedCheck.ScanSettings",
    port AS "ECS.RedCheck.OpenPort",
    service_name AS "ECS.Service.Name",
    scan_type AS "ECS.RedCheck.ScanType"
       FROM port_scan_result
   LEFT JOIN scan on port_scan_result.id_scan = scan.id
   LEFT JOIN job_execution on scan.id_job_execution = job_execution.id
   LEFT JOIN target_host on scan.id_target_host = target_host.id
   LEFT JOIN job ON job_execution.id_job = job.id
   where port_scan_result.id > $1 AND scan_type != 20
  • Название поля-счётчика – ECS.Event.ID

  • Расписание запросов – укажите на своё усмотрение, например, каждую минуту

  • Нажмите кнопку «Проверить», должно отобразиться первое событие, подходящее под написанный регулярный запрос:

rc1

В случае получения ошибки TLS Handshake failed отключите TLS, дописав в конец строки подключения &encrypt=disable:

sns1

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

sqlserver://sqluser:sqlpassword@192.168.78.140?database=RedCheck&encrypt=disable

Нажмите «Сохранить»:

rc2

После сохранения в течение нескольких секунд придёт событие, отобразившееся ранее при нажатии «Проверки». Пример карточки события:

rc3

Из данной карточки можно создать фильтр, например, следующий:

rc4

На основе данного фильтра можно создать директиву:

rc5

После срабатывания директивы инцидент выглядит следующим образом:

rc6
rc7

Сбор логов о работе служб RedCheck с помощью WMI-агента

Установите на машину с RedCheck WMI-агент. Включите сбор журнала Application и укажите уровень логирования:

rcwmi

В данный журнал логи пишут следующие провайдеры:

  • RedCheck Scanning Service

  • RedCheck Synchronization Service

  • RedCheckSvr

  • RedCheckSyncSvr

Фильтры (12), директивы корреляции (11) и набор пользовательских полей нормализации (13) под источник событий можно скачать в рамках расширенной технической поддержки

Последнее изменение 15.08.2023