Windows (WMI)
Конфигурация
### schema: komrad/sql-collector/4.1.33
# Идентификатор предприятия
tenant_id: 75
# Идентификатор установки
setup_id: komrad-local
# Метка безопасности, аналог Oracle Security Label
sl: 715
bus:
servers:
- nats://localhost:3490
user: komrad
password: pass
user-credentials: ""
tls:
disable: false
ServerName: ""
TrustedCA: "C:\\Program Files\\Echelon\\komrad\\certs\\ca.pem"
Cert: "C:\\Program Files\\Echelon\\komrad\\certs\\client.pem"
CertKey: "C:\\Program Files\\Echelon\\komrad\\certs\\client-key.pem"
system-pool: false
min-version: "1.3"
client-auth: require-and-verify-client-cert
tuning:
# Возможность установить время ожидания при соединении.
connect-timeout: 10s
# Возможность установить максимальное количество попыток повторного подключения.
max-reconnects: 1000000
# Устанавливает максимальное количество времени, в течение которого мы будем ждать ответа.
max-wait: 0s
# Параметр для установки периода для клиентских команд ping.
ping-interval: 2m
# Возможность установить максимальное количество запросов ping,
# которые могут остаться без ответа сервера, прежде чем закрыть соединение.
max-pings-outstanding: 2
# Устанавливает максимальное количество незавершенных асинхронных публикаций,
# которые могут быть одновременно запущены.
publish-async-max-pending: 0
# Интервал переподключения.
reconnect-interval: 5s
# Возможность установить время ожидания между попытками повторного подключения.
reconnect-wait: 1s
# Устанавливает соединение в состояние повторного подключения, если оно не может подключиться.
retry-on-failed-connect: false
# Таймаут между попытками рестарта коллектора во время неустойчивой связи с центральным сервером КОМРАД
restart-timeout: 1s
# local_ip: 10.0.0.1
# Настройки пакетного сбора данных - включает накопление событий в пакеты
# для оптимизации скорости передачи информации.
# Например, увеличение параметра timeout до 3s и limit до 20000 позволяет достигать 100 000 EPS.
batching:
# предельный интервал времени накопления пакетов, по умолчанию 1 секунда
timeout: 1s
# предельный лимит событий в пакете, по умолчанию - 100
limit: 1000
# Настройки write-ahead-log (WAL) - механизма записи на диск событий
# в случае разрыва соединения с сетью. События пишутся на диск в сжатом виде, в случае
# восстановления соединения с сетью сжатые пакеты событий направляются в шину событий Комрад.
# Рекомендуется контролировать объем свободного дискового пространства на узле с коллектором/агентом.
wal:
# Путь до папки в которой будет храниться конфигурационная информация коллектора/агента.
# Конфигурация хранится в сжатом, зашифрованном виде.
# Если путь не указан, будет выбрана папка по-умолчанию:
# - для Windows:
# C:\Program Files\Echelon\komrad\<name>-collector\.wal
# - для Linux:
# /var/lib/echelon/komrad/<name>-collector/.wal
# В случае установки нескольких одинаковых коллекторов на один хост необходимо устанавливать
# раздельные пути до хранилища каждого коллектора, путь к хранилищу одного коллектора не должен
# быть вложенным в путь до хранилища другого коллектора.
path: "C:\\Program Files\\Echelon\\komrad\\sql-collector\\.wal"
# no-copy -- когда равен true включается режим оптимизации работы с памятью,
# изменять значение стоит лишь при рекомендации Службы Поддержки.
no-copy: true
# segment-size -- размер одного сегмента WAL, по умолчанию 4 Кб,
# изменять значение стоит лишь при рекомендации Службы Поддержки.
segment-size: 4MB
# max-length - максимальная длина WAL, если равно 0 длина не ограничена.
max-length: 0
# Настройки вывода логов приложения.
# Сервис может отправлять логи сразу в несколько целей -- файл, системный журнал ОС, консоль, syslog.
# Включить вывод логов в консоль для режима отладки приложения
# - filename: stdout
# format: color
# filter: ""
# levels: [all]
# Включить вывод логов в файл с ротацией.
# ВАЖНО: старые файлы с логами не удаляются, необходимо производить мониторинг использования диска.
# - filename: "/var/log/echelon/komrad/service.log"
# format: json
# возможно задать выражение для фильтрации выводимых логов
# filter: ""
# levels: [info, error, warn, panic, fatal]
# Отправлять критические сообщения в Журнал Windows.
# ВНИМАНИЕ: не стоит включать levels (info, warn, debug, error) в windowseventlog , это может
# крайне негативно сказаться на быстродействии и доступности узла.
# - filename: windowseventlog
# format: json
# levels: [panic, fatal]
log:
- filename: "winfile:///C:\\Program Files\\Echelon\\komrad\\logs\\sql-collector.log"
format: json
filter: ""
levels:
- all
# Настройки дискового хранилища конфигурационной информации коллектора/агента
storage:
# Путь до папки в которой будет храниться конфигурационная информация коллектора/агента.
# Конфигурация хранится в сжатом, зашифрованном виде.
# Если путь не указан, будет выбрана папка по-умолчанию:
# - для Windows:
# C:\Program Files\Echelon\komrad\<name>-collector\.storage
# - для Linux:
# /var/lib/echelon/komrad/<name>-collector/.storage
# В случае установки нескольких одинаковых коллекторов на один хост необходимо устанавливать
# раздельные пути до хранилища каждого коллектора, путь к хранилищу одного коллектора не должен
# быть вложенным в путь до хранилища другого коллектора.
path: "C:\\Program Files\\Echelon\\komrad\\sql-collector\\.storage"
compress: false
# Включить режим синхронной записи каждого результата на диск, по-умолчанию отключено
sync-writes: false
# Путь к базе данных GeoIP
geo-ip:
path: "C:\\Program Files\\Echelon\\Komrad\\geoip\\db.mmdb"
# Проверка на корректность базы данных geoIP при инициализации geodata.
# Полезная опция, чтобы удостоверится, что база mmdb не содержит ошибок.
# Однако верификация длится от 20 секунд до 2х минут в зависимости от ресурсов
# и размера базы геоданных. По умолчанию опция отключена.
verify-on-start: false
# Отключить запись исходного текста события в поле Raw.
# Большинство требований регулятора требуют сохранять текст исходного события.
# Сохранение исходного текста события влияет на размер БД для хранения событий,
# возможно повышение требований в 2-10 раз.
# Коллекторы WMI, SQL, SNMP, xFLOW всё, что получают от протоколов источников
# сбора сохраняют в нормализованные поля события. Поле Raw заполняется
# синтетическими данными -- нормализованные поля в формате JSON.
# Рекомендуется установить `disable-raw-field: true` для коллекторов типа WMI, SQL, SNMP, xFLOW
# для сохранения затрат на хранение избыточных данных.
# Коллекторы Syslog и File имеют доступ к исходному тексту события, отключать запись в Raw
# для этих коллекторов невозможно.
disable-raw-field: false
# Использовать при работе только в локальном автономном режиме
offline: false
plugins: []
events_file: ""
Подключение нового WMI-агента
Предварительные условия:
- На узле-источнике (машине под управлением Windows) скопирован файл WMI-агента и конфигурационный файл
- Отсутствуют какие-либо ограничения на передачу трафика по выбранному порту между источником событий ИБ и сервером KOMRAD
- Наличие лицензии (разрешения) на использование WMI-агента (см. Обзор пользовательского интерфейса ⇒ О программе ⇒ Информация о программе)
- WMI-агент работает с Windows Server 2012 / 2016 / 2019 / 2022. Использовать более старые версии крайне не рекомендуется.
- Работа WMI-агента была успешно протестирована на Windows 10 64-bit, рекомендуется использовать аналогичную версию ОС
Для установки WMI-агента на определенный узел, необходимо:
-
На узле создать директорию, в которую нужно переместить исполняемый файл
wmi-agent.exe
и конфигурационный файлwmi-agent.yaml
из дистрибутива KOMRAD -
В файле
wmi-agent.yaml
в параметреbus-url
задать IP-адрес сервера KOMRAD:bus:
servers:
- nats://IP_KOMRAD:3490 -
Запустить консоль
PowerShell
от имени администратора Win+X ⇒ Windows PowerShell (от администратора) -
Сменить текущую директорию на папку с WMI-агентом:
Set-Location -Path директория_с_WMI_агентом
-
Установить WMI-агент в качестве службы с помощью следующей команды:
.\wmi-agent.exe --service install -c .\wmi-agent.yaml
После данной команды в «Службы» появится WMI-агент под названием
Komrad WMI Agent
-
Скопируйте
client-key.pem
client.pem
ca.pem
и поместите их в папкуC:\Program Files\Echelon\komrad\certs
.подсказкаСертификаты расположены на машине с KOMRAD в каталоге
/var/lib/echelon/komrad/certs
-
Запустить службу WMI-агента с помощью следующей команды:
.\wmi-agent.exe --service start -c .\wmi-agent.yaml
-
Новый WMI-агент отобразится в списке коллекторов в веб-интерфейсе
-
Зайдите в появившийся коллектор и укажите журналы для сбора и уровень логирования событий, чтобы события начали появляться в системе
Подключение новых источников событий
Предварительные условия:
- убедиться, что существует возможность сетевого взаимодействия между KOMRAD и источником событий (можно воспользоваться командой
ping
)
Расположение: manage ⇒ Настройка коллекторов ⇒ Коллекторы ⇒ Агент журнала событий Windows (WMI)
Действия:
-
Открыть в веб-интерфейсе KOMRAD вкладку manage ⇒ Настройки коллекторов ⇒ Коллекторы ⇒ Агент журнала событий Windows (WMI), в котором появился новый экземпляр WMI-агента под стандартным названием
wmi
-
С помощью кнопки «Редактировать» при необходимости задайте название коллектора
-
Включите только необходимые журналы из всех, что представлены на странице — это поможет снизить поток событий
осторожноВнимание! Для корректной работы нового журнала необходимо в названии указать полное имя этого журнала, например,
Microsoft-Windows-Windows Defender/Operational
. Постарайтесь не ошибиться, т.к. переименовать/удалить ошибку в дальнейшем будет невозможно.подсказкаПосмотреть полное имя журнала в Windows можно так: откройте "Просмотр событий" ⇒ Найдите необходимый вам журнал приложения или службы ⇒ Кликните правой кнопкой мыши ⇒ Свойства ⇒ в графе "Полное имя" вы увидите полное имя журнала, как на скриншоте ниже.
-
Включите агент, нажав на кнопку «Включить»
-
На узле-источнике убедитесь, что события регистрируются в оснастке «Управление компьютером» (
compmgmt.msc
) в «Просмотре событий» -
Для просмотра событий, поступающих от подключенного источника в KOMRAD, перейдите на дашборд событий в реальном времени События ⇒ События в реальном времени
Дополнительно:
-
У WMI-агента есть возможность собирать события об изменении локальных файлов. Чтобы настроить передачу логов необходимо зайти в "manage" ⇒ "Настройка коллекторов" ⇒ "Агент журнала событий Windows (WMI)" ⇒ "Файлы" ⇒ добавить новый файл "+" ⇒ указать полный путь к отслеживаемому файлу с его расширением ⇒ проверить и сохранить новое подключение ⇒ перезагрузить коллектор.
к сведениюВажно помнить, что WMI-агент не может мониторить папки и не будет отслеживать файл, если его переместить.
примечаниеWMI агент умеет читать файлы журнала Windows .evtx ,читать текстовые файлы.
-
WMI-агент можно удалить из служб с помощью следующих команд:
.\wmi-agent.exe --service stop -c .\wmi-agent.yaml
.\wmi-agent.exe --service uninstall -c .\wmi-agent.yaml -
Рабочим каталогом запущенной службы является специальный системный каталог
C:\Program Files\Echelon\komrad\wmi-agent
Фильтры (132 шт.) и директивы корреляции (127 шт.) под источник событий можно скачать в рамках расширенной технической поддержки
Установка WMI-агента на несколько доменных машин с помощью групповой политики
Для централизованной установки WMI-агента на доменные машины с использованием групповой политики откройте на контроллере домена в Диспетчере серверов «Управление групповой политикой»
(либо через «Выполнить» ⇒ gpmc.msc
)
В структуре доменов кликните правой кнопкой мыши по нужному домену, далее выберите пункт
«Создать объект групповой политики в этом домене и связать его…»
В разделе редактирования созданной групповой политики добавьте пользователей, группы пользователей и компьютеры, на которые необходимо распространить групповую политику.
Предварительно рекомендуется создать новый каталог (его имя может быть произвольным, например, WMI) и переместить в него следующее:
- Установочный файл wmi-агента
wmi-agent.exe
- Конфигурационный файл wmi-агента
wmi-agent.yaml
с предварительно заданным адресом KOMRAD SIEM - Папку
certs
с тремя сертификатами KOMRAD –ca.pem
,client.pem
иclient-key.pem
Переместите указанную папку WMI в sysvol
Далее создайте скрипт PowerShell
со следующим содержимым:
Copy-Item -Path "\\Имя_контроллера_домена\sysvol\название_домена\WMI" -Destination "C:\" -Recurse
C:\WMI\wmi-agent.exe --service install -c C:\WMI\wmi-agent.yaml
Copy-Item -Path "\\Имя_контроллера_домена\sysvol\название_домена\WMI\certs" -Destination 'C:\Program Files\Echelon\komrad' -Recurse
C:\WMI\wmi-agent.exe --service start -c C:\WMI\wmi-agent.yaml
Переместите созданный скрипт в каталог netlogon
:
Убедитесь, что группа пользователей «Прошедшие проверку»
имеют право на чтение и выполнение созданного скрипта:
Откройте настройки созданной групповой политики.
В открывшемся редакторе управления групповыми политиками создайте новую немедленную задачу в разделе «Конфигурация пользователя»
В свойствах задачи на вкладке «Общие»
укажите:
- Название (может быть любым, например,
«Установка WMI»
) - Учётную запись, от имени которой будет выполняться задача (укажите
СИСТЕМА
, либо учётную запись администратора домена)
На вкладке «Действия»
создайте новое действие «Запуск программы»
. В поле Программа или сценарий
укажите powershell.exe
со следующим аргументом:
-File "\\Имя_контроллера_домена\netlogon\имя_созданного_скрипта.ps1"
На вкладке «Общие параметры»
отметьте пункт «Применить один раз и не применять повторно»
. Примените созданную задачу.
Теперь при перезапуске компьютеров, на которые распространена созданная групповая политика, при повторной авторизации пользователей, автоматически должен установиться WMI-агент – новые агенты появятся на графическом интерфейсе KOMRAD.
Заполнение журнала Forwarded Events на Windows Server для получения событий WMI
Предварительные условия:
-
Имеется Windows Server 2016 / 2019
-
Имеется машина на ОС Windows, которая будет выступать в роли источника событий
-
На обеих машинах должны быть полностью отключены брандмауэры
Порядок выполняемых действий:
-
Настроить статический IP на сервере по примеру ниже:
IP адрес: выбранный IP
Маска подсети IPv4: 255.255.255.0
Шлюз: 10.0.4.1 / 10.0.1.1 (в зависимости от подсети, в которой находится машина)
DNS-сервер: 10.0.1.1 (в момент тестирования был установлен такой адрес в поле DNS-сервера) -
На Windows Server развернуть
Active Directory
:В Диспетчере серверов выбрать "Добавить роли и компоненты";
Во вкладке "Роли сервера" отметить "Доменные службы Active Directory";
В остальных вкладках всё оставить по умолчанию.
подсказкаЕсли на этапе установки AD выдаётся ошибка, то необходимо изменить пароль у администратора домена (учетная запись: "Администратор")
-
Повысить роль сервера до уровня контроллера домена:
-
Добавить новый лес доменных имён
-
Пропустить делегирование DNS
В остальных окнах заполнить необходимые поля, связанные с именами/паролями и перейти к установке.
-
-
Во вкладке "Пользователи и компьютеры" добавить нового пользователя, под которым будет осуществляться вход в домен другими компьютерами. Включить пользователя в группу "Администраторы домена"
-
Машину-источник Windows вводим в созданный домен при помощи созданной в предыдущем шаге учётной записи
-
В настройках сети машины-источника в поле DNS указать адрес машины
Windows Server
-
Настраиваем отправку событий из журнала, например,
Security
у источника (здесь, либо здесь пошаговые гайды при необходимости) -
После создания подписки на сервере дать права на чтение журналов локальным админам:
-
В "Просмотре событий" открыть свойства журнала
-
Скопировать Полное имя журнала
-
С помощью
cmd
дать права на чтение командой:
wevtutil set-log EventLogFullName /ca:O:BAG:SYD:(A;;0x5;;;BA)(A;;0x1;;;S-1-5-32-573)
Где
EventLogFullName
- полное имя журнала. -
-
Убедиться в том, что на
Windows Server
в журнале "Перенаправленные события" появилось событие. Для получения большего количества событий перезагрузить машину-источникподсказкаЕсли события долго не приходят, то на машине-источнике нужно перейти в "Службы" и перезапустить Службу удалённого управления Windows (WS-Management)
-
На
Windows Server
установить WMI-агента для отправки события на KOMRAD (в конфиге прописан адрес стенда KOMRAD) -
На UI (интерфейс KOMRAD) включить добавленный WMI-агент
-
В интерфейсе коллектора настроить журнал
ForwardedEvents
-
Нажать "Сохранить" журнал
-
Включить сбор событий через переключатель
-
Убедиться, что во вкладке "События в реальном времени" появились события из журнала
ForwardedEvents
.
WEC можно подключить к KOMRAD только без установки службы. Используйте команду:
.\wmi-agent.exe -c .\wmi-agent.yaml
Если после смены IP-адреса WMI-агент перестал работать, то одним из возможных вариантов решения проблемы может быть очистка папки с логами.
Перейдите по пути C:\Program Files\Echelon\komrad\wmi-agent
и удалите содержимое папок wal
и storage
В этой папке C:\Windows\System32\config\systemprofile\AppData\Local\komrad\komrad-wmi-agent\offsets
хранится состояние агента.