Организация совместной работы KOMRAD Enterprise SIEM и Dr.Web Enterprise Security Suite 13
С помощью KOMRAD Enterprise SIEM можно получить информацию об обнаруженном Dr.Web Enterprise Security Suite 13 (далее - Dr.Web) вредоносном ПО на хосте.
Предварительные условия:
-
Подразумевается, что Dr.Web настроен и развёрнут - работают и корректно настроены Центр Управления и Агенты Dr.Web
-
Наличие лицензии (разрешения) на использование SQL-коллектора в KOMRAD (см. Обзор пользовательского интерфейса ⇒ О программе ⇒ Информация о лицензии)
-
Отсутствуют какие-либо ограничения на передачу трафика по выбранному порту между источником событий ИБ и сервером KOMRAD
Настройка доступа к БД Dr.Web
- MySQL
- Postgresql
Создайте пользователя, от имени которого в дальнейшем будете собирать события с БД Dr.Web. Данный пользователь обязательно должен иметь права Select_priv для успешного выполнения запросов SQL-коллектором:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
где username
- имя пользователя, host
- IP-адрес машины с KOMRAD SIEM (можно указать % для разрешения данному пользователю подключаться с любого IP-адреса), password
- пароль пользователя.
Дайте указанному пользователю права на выполнение запросов SELECT
с помощью команды:
UPDATE db SET Select_priv = 'Y' WHERE user = 'username';
где username
- имя пользователя.
Либо воспользуйтесь командой:
GRANT SELECT ON database.* TO 'username'@'host';
где database
- имя базы данных Dr.Web (по умолчанию drwcs), username
- имя пользователя, host
- IP-адрес машины с KOMRAD SIEM.
Для обновления выданных привилегий перезагрузите службу MySQL
, либо выполните команду:
FLUSH PRIVILEGES;
Настройка сбора с базы данных Dr.Web с помощью SQL-коллектора
Для настройки сбора с БД Dr.Web воспользуйтесь инструкцией.
Укажите следующие параметры добавления нового источника:
-
Тип БД – MySQL
-
Шаблон – выберите любой из имеющихся типов шаблонов, имеющих в конце запись (MySQL)
Для работы пакета экспертиз под Dr.Web требуется только шаблон "Dr. Web — Сбор оповещений антивирусной сети (MySQL)"
-
Название – оставьте название шаблона, либо укажите любое другое на своё усмотрение
-
Строка подключения – укажите логин и пароль пользователя, имеющего доступ к БД Dr.Web, а также IP-адрес машины с БД, название БД Dr.Web
Пример строки подключения:
siem:komradpass@tcp(11.11.11.12:3306)/drwcs
-
Название поля-счётчика – gen_time_counter
-
Расписание запросов – укажите на своё усмотрение, например, каждую минуту
-
Нажмите кнопку "Проверить", должно отобразиться первое событие, подходящее под написанный регулярный запрос:
- Нажмите "Сохранить":
После сохранения в течение нескольких секунд придёт событие, отобразившееся ранее при нажатии "Проверки". Пример карточки события:
Подразумевается, что настройка Dr Web и Postgresql выполнена, у вас есть возможность использовать уже сконфигурированную роль или создать новую для сбора, подробнее в настройках PostgreSQL.
Для корректной работы коллектора необходимо поле, увеличивающееся на фиксированный инкремент (например, id). В таблице с вирусами такого идентификатора нет, а время увеличивается неравномерно (может быть найдено несколько вирусов в секунду/один вирус раз в 5 часов). Из-за этого SQL может дублировать события. Решение - создать поле счетчик в самой таблице, или создать представление таблицы с таким полем.
Для подключения используйте инициирующй запрос:
SELECT
max(s.infectiontime)-1 as createtime
FROM station_infection s
Регулярный запрос:
SELECT s.infectiontime AS createtime,
s.infectiontime,
s.id AS ID,
s.originator AS Originator,
s.infectionrecvtime AS InfectionRecoveredAt,
s.infectiontime AS CreateTime,
cv.str AS Virus,
s.type2 AS Type2,
cp.str AS Object,
s.treatment AS Treatment,
cuo.str AS Owner,
cuu.str AS Username,
s.type1 AS Type1,
ch1.str AS SHA1,
ch256.str AS SHA256,
hdb.str AS HashDB,
'drweb-threats' as SQLSource
FROM station_infection s
LEFT JOIN stations st ON st.id = s.id
LEFT JOIN cat_virus cv ON cv.id = s.virus
LEFT JOIN cat_path cp ON cp.id = s.object
LEFT JOIN cat_users cuo ON cuo.id = s.owner
LEFT JOIN cat_users cuu ON cuu.id = s.username
LEFT JOIN cat_hash ch1 ON ch1.id = s.sha1
LEFT JOIN cat_hash ch256 ON ch256.id = s.sha256
LEFT JOIN cat_hashdb hdb ON hdb.id = s.hashdb
WHERE (s.infectiontime != $1) AND (s.infectiontime > $1)
LIMIT 1000
Для включения возможности использовать дополнительные поля из карточки события в конструкторе фильтров, необходимо добавить их в KOMRAD, нажав на символ + в квадрате. Укажите полю любое название для отображения. Пример:
Из данной карточки можно создать фильтр, например, следующий:
На основе данного фильтра можно создать директиву:
После срабатывания директивы инцидент выглядит следующим образом:
Для корректной работы директив корреляции из пакета экспертиз Dr.Web не забудьте включить плагин "Dr.Web" на SQL-коллекторе!
Фильтры (33), директивы корреляции (30), набор пользовательских полей нормализации (3) и плагин (1) под источник событий можн о скачать в рамках расширенной технической поддержки