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

Организация совместной работы 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 ("Включено" ⇒ "Да"):

1

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

2

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

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

3

Сохраните файл и закройте его. В файле pg_hba.conf (стандартное расположение

C:\Program Files\PostgreSQL\"номер_версии"\data) после последней строки файла с новой строки добавить:

host all postgres `IP-адрес_KOMRAD`/32 md5

4

Сохраните файл и закройте его, после чего перезапустите службу postgresql-"номер_версии" скриптом

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

5

Настройка сбора с базы данных 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

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

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

Alt text

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

Alt text

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

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

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

Alt text

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

Alt text

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

Alt text

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

Alt text

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

Alt text Alt text

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

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

Alt text

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

  • RedCheck Scanning Service
  • RedCheck Synchronization Service
  • RedCheckSvr
  • RedCheckSyncSvr
подсказка

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