Организация совместной работы KOMRAD Enterprise SIEM и САЗ RedCheck
С помощью KOMRAD Enterprise SIEM можно получить информацию о работе САЗ RedCheck (далее – RedCheck).
Предварительные условия:
-
Подразумевает ся, что
RedCheck
настроен и развёрнут в варинтеDesktop
, либо в вариантеWeb
-
Наличие лицензии (разрешения) на использование SQL-коллектора в KOMRAD (см. Обзор пользовательского интерфейса О программе ⇒ Информация о лицензии)
-
Отсутствуют какие-либо ограничения на передачу трафика по выбранному порту между источником событий ИБ и сервером KOMRAD
Настройка доступа к БД 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 ("Включено" ⇒ "Да"):
Укажите Listen All Yes ("Прослушивать все" ⇒ "Да"), а на вкладке IP Adresses (IP-адреса) в подразделе IPAII укажите TCP Port - 1433:
Настройка доступа к БД RedCheck с PostgreSQL
Для сбора SQL-коллектором событий с БД RedCheck
настройте параметры подключения к PostgreSQL с другой машины. В файле postgresql.conf (стандартное расположение C:\Program Files\PostgreSQL\"номер_версии"\data
) раскомментируйте строку, содержащую listen_addresses = localhost
. Укажите listen_addresses = '*'
, либо укажите 2 IP адреса – машины с RedCheck и машины с KOMRAD Enterprise SIEM:
Сохраните файл и закройте его. В файле pg_hba.conf (стандартное расположение
C:\Program Files\PostgreSQL\"номер_версии"\data
) после последней строки файла с новой строки добавить:host all postgres `IP-адрес_KOMRAD`/32 md5
Сохраните файл и закройте его, после чего перезапустите службу postgresql-"номер_версии"
скриптом
C:\Program Files\PostgreSQL\"номер_вер сии"\scripts\restart
, либо через Диспетчер задач
, вкладка Службы
:Настройка сбора с базы данных RedCheck с помощью SQL-коллектора
Для настройки сбора с БД RedCheck воспользуйтесь инструкцией.
Укажите следующие параметры добавления нового источника:
-
Тип БД – Microsoft SQL Server либо PostgreSQL в зависимости от выбранного типа БД на этапе установки RedCheck
-
Шаблон – оставьте поле пустым
-
Название – укажите на своё усмотрение
-
Строка подключения – укажите логин и пароль пользователя, имеющего доступ к БД
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
-
Расписание запросов – укажите на своё усмотрение, например, каждую минуту
-
Нажмите кнопку "Проверить", должно отобразиться первое событие, подходящее под написанный регулярный запрос:
В случае получения ошибки TLS Handshake failed
отключите TLS, дописав в конец строки подключения &encrypt=disable:
Строка подключения приобретает следующий вид:
sqlserver://sqluser:sqlpassword@192.168.78.140?database=RedCheck&encrypt=disable
Нажмите "Сохранить":
После сохранения в течение нескольких секунд придёт событие, отобразившееся ранее при нажатии "Проверки". Пример карточки события:
Из данной карточки можно создать фильтр, например, следующий:
На основе данного фильтра можно создать директиву:
После срабатывания директивы инцидент выглядит следующим образом:
Сбор логов о работе служб RedCheck с помощью WMI-агента
Установите на машину с RedCheck WMI-агент. Включите сбор журнала Application
и укажите уровень логирования:
В данный журнал логи пишут следующие провайдеры:
- RedCheck Scanning Service
- RedCheck Synchronization Service
- RedCheckSvr
- RedCheckSyncSvr
Фильтры (12), директивы корреляции (11) и набор пользовательских полей нормализации (13) под источник событий можно скачать в рамках расширенной технической поддержки