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

Вопросы и ответы

Мы собираем часто задаваемые вопросы на support@npo-echelon.ru или в нашем чате в Telegram и ответы на них в данной статье.

Как получить пробную лицензию и скачать KOMRAD Enterprise SIEM 4?

Скачать дистрибутив и документацию здесь KOMRAD Enterprise SIEM 4.

E-mail для получения лицензии: getkomrad@npo-echelon.ru

Есть ли какие-то рекомендуемые требования для машин, на которые выносятся коллекторы?

Для коллектора нагрузки в разы меньше, мы рекомендуем использовать минимальные требования к аппаратной платформе, аналогично лицензии Base

Как изменить период поиска по событиям?

Если при фильтрации у вас возникает ошибка "Слишком большой временной интервал". Установлен лимит в 240 часов, а запрошен в n часов, см. параметр EventsSearchBackwardsTimeLimit (time range is too large: yyyy-mm-dd hh:mm:ss +0000 UTC to yyyy-mm-dd hh:mm:ss +0000 UTC).

Для увеличения интервала Вам необходимо изменить значение EventsSearchBackwardsTimeLimit в конфигурационном файле Конфигурация сервера

  # Ограничение периода поиска по событиям в прошлом
EventsSearchBackwardsTimeLimit: 240h

Пример: 30 суток 720h

осторожно

Данная настройка будет зависеть от ресурсов аппаратной платформы, значение 240h оптимально подходит для лицензии Base

После изменения конфигурационного файла сервис не стартует?

При изменении конфигурационного файла могла быть допущена ошибка (лишний пробел, запятая вместо точки).

Вы с лёгкостью найдёте место ошибки с использованием утилиты journalctl, при просмотре лога запуска сервиса выведется в какой строке конфигурационного файла ошибка.

Проверка регулярных выражений?

Проверить регулярное выражение можно не только в KOMRAD Enterprise SIEM 4, но и на различных ресурсах, например, на regex101.com, в пункте flavor необходимо указать Golang.

Как получить информацию о событии или активе из инцидента при формировании уведомления?

Вы можете выводить список активов и событий. Активы: incident.Assetsincident.Assets

Извлечённые переменные корреляции: incident.Histories

Пример сообщения:

Активы подверженные атаке: {{ incident.Assets }}
События инцидента приведшие к инциденту {{ incident.Histories }}

Вы получите все поля событий и активов по данной директиве.

Как делать информативные уведомления?

В инцидентах и событиях много избыточной информации, чтобы поменять порядок полей, убрать лишнее или добавить что-то в уведомление используется язык шаблонизации Liquid

Не отображаются графики?

Проверьте настройки антивируса, часто такая проблема встречается при использовании продуктов компании Kaspersky.

Сколько весит одно событие в KOMRAD?

Благодаря использованию ClickHouse мы добились минимального веса события. События сильно разнятся, но среднее значение на наших стендах 50 байт на событие.

Сколько занимает база данных с событиями?

Запрос в ClickHouse

SELECT 'komrad-event', table, formatReadableSize(sum(data_compressed_bytes) AS size) AS compressed, formatReadableSize(sum(data_uncompressed_bytes) AS usize) AS uncompressed, round(usize / size, 2) AS compr_rate, sum(rows) AS rows, count() AS part_count FROM system.parts WHERE (active = 1) AND (table LIKE '%') AND (database LIKE '%') GROUP BY database, table ORDER BY size DESC;

или в консоли Linux

sudo du -sm /var/lib/clickhouse/

Размер базы данных ClickHouse в мегабайтах.

Как записать выражение в поле директивы, которое связано логическими "И","ИЛИ"?

В выражениях используется нотация Google CEL-Go

Failed to start: migrations: Dirty database version

Ошибка миграции - обычно происходит из-за медленного железа, сервис после установки не успевает провести миграцию и прерывает её. Для исправления ошибки необходимо переустановить базу komrad-preferences

sudo systemctl stop komrad-server.service komrad-server.socket  komrad-processor pauth-server komrad-correlation-dispatcher
sudo systemctl restart postgresql
sudo su - postgres
dropdb "komrad-preferences";
exit
sudo systemctl restart postgresql
sudo su - postgres
createdb -O postgres komrad-preferences
exit
sudo systemctl start komrad-server.service komrad-server.socket komrad-processor pauth-server komrad-correlation-dispatcher
Неудачная попытка подключения к ГосСОПКА?

При неудачной попытке подключения к ГосСОПКА Вам не напишет детальной ошибки. Для того, чтобы найти причину, нажмите F12 и Вы увидите причину неуспешной проверки.

  • 500 - вы ввели недопустимые значения для некоторых полей
  • 404 - вы указали неверный адрес для подключения
  • 502 - проблема с токеном.
Как проверить сколько байт занимают базы в оперативной памяти?

Выполните команду:


sudo ps -aux | grep -i clickhouse-server | awk '{print $5}'
При создании директивы можно указывать значения "Время после предыдущего блока", какое конкретно время тут учитывается для блока типа "Событие"?

Действительно, в системе есть много атрибутов времени. Время записи события (WTime), время получения (GenerationTime), время создания (CTime), ECS.Base.Timestamp. Мы парсим событие и вытаскиваем из него значение, когда оно произошло, если такого значения нет, то поле заполнит коллектор и в том и в другом случае это будет поле время получения(GenerationTime).

подсказка

WTime и GenerationTime определяется по локальному времени Комрад процессора

Как собирать события о действиях пользователей в KOMRAD?

Перейдите в manage ⇒ Настройки коллекторов ⇒ SQL ⇒ Выберите коллектор ⇒ Добавьте источник ⇒ Выберите шаблон "KOMRAD - Сбор журнала аудита действий пользователей".

Замените hostname на localhost при варианте установки всех сервисов на одном хосте. Вместо port укажите 5432, а вместо dbnamekomrad-preferences. Если коллектор расположен на другом хосте, то укажите IP-адрес машины, на которой находится Postgres с базой komrad-preferences.

Как регулировать сложность пароля?

В рамках повышения или понижения безопасности парольной политики в KOMRAD вы можете поменять значение в конфигурационном файле pauth-server.yaml

MinPasswordEntropyBits: 70

Число 70 является энтропией битов введённого слова в поле пароль. Ниже приведена таблица отношения энтропии к количеству символов.

Полную таблицу соответствия вы можете посмотреть в разделе аутентификации

ЭнтропияСтрочные буквыЗаглавные + строчные + цифрызаглавные + строчные + цифры + спецсимволы
70151211
Как добавить редирект по ссылке из события?

События с источников могут приходить с полем ECS.Event.Reference или ECS.Event.URL - это ссылка, мы даём возможность перейти по ней, но для безопасного перехода Вы должны внести целевой ресурс в разрешённые.Сделать это можно в конфигурационном файле komrad-server.yaml.

Добавьте ваш источник, по аналогии с уже указанным в списке:

 # Список FQDN от которых разрешены запросы, если список пустой - запросы со всех
# хостов будут приниматься. Можно использовать регулярные выражения.
AllowedHosts:
- dev-komrad.etecs.ru
- ваш источник
Как распределить нагрузку по ядрам?

Чтобы не загружать одно ядро, вы можете сбалансировать нагрузку, распределив её по разным ядрам системы. Укажите число ядер вашей системы в конфигурационном файле komrad-processor.

Отредактируйте конфигурационный файл komrad-processor:

    # Число параллельных обработчиков событий, число можно увеличивать в интервале 1 .. (4-8 x число ядер) для увеличения скорости обработки событий ИБ за счёт роста потребления ресурсов узла
# Рекомендуемое значение - 20
parallelconsumerscount: 1

Пример: Количество ядер в системе 8 parallelconsumerscount: 8

Как соединить два программных комплекса KOMRAD?

Для отправки инцидента по директиве используйте отправку по Syslog в формате CEF в другой KOMRAD, подробная настройка

В качестве источника приёма событий используйте syslog-collector.

  recipient:
- "tcp://ip_komrad:49000"
hostname: komrad-region
version: 1
devicevendor: NPOECHELON
deviceproduct: KOMRAD-SIEM
deviceversion: v4.3.58
deviceeventclassid: SIEM
name: Region
severity: 1
Как работает валидация при создании сертификатов?

Сервер покажет ошибку валидации на языке пользователя, если загрузить сертификат или приватный ключ размером более 32 кб (или превысить размер по символам в случае, если прописывать их вручную). Примеры таких ошибок можно увидеть на картинках ниже.

1

2

Как выпускать сертификаты на более длительный срок?

При выпуске сертификатов добавьте флаг expire:

sudo komrad-cli certificates create ca --expire 24m

Пример: создание корневого сертификата со сроком действия 24 месяца.

Как проверить срок действия сертификатов?

Если Вы не меняли путь, по которому хранятся сертификаты KOMRAD (/var/lib/echelon/komrad/certs), то выполните следующие команды:

cd /var/lib/echelon/komrad/certs
openssl x509 -in ./ca.pem -text -noout | grep "Not After" && openssl x509 -in ./server.pem -text -noout | grep "Not After" && openssl x509 -in ./client.pem -text -noout | grep "Not After"
Как увеличить срок хранения событий?

После автоматической или ручной установки события по умолчанию будут храниться в системе 30 дней. Вы можете установить необходимый Вам параметр хранения событий (TTL) в базе. Это можно сделать через запрос к базе Clickhouse. Подключение к Clickhouse

ALTER TABLE komrad_events.events
MODIFY TTL FROM_UNIXTIME(key_time) + INTERVAL 365 DAY;

Пример: изменение срока хранения событий на год. Доступные интервалы:

INTERVAL 1 YEAR + INTERVAL 3 MONTH + INTERVAL 1 WEEK + INTERVAL 4 DAY

Как собрать логи при проблемах с СУБД ClickHouse?

При возникновении проблем с СУБД ClickHouse, имеет смысл выполнить следующую команду:

sudo clickhouse-diagnostics collect --host localhost --password pass -u komrad

Где вместо pass (пароль по умолчанию), необходимо указать ваш пароль от ClickHouse.

После выполнения указанной команды, Вы увидите строчку по типу

archive ready at: /home/iru/p/packaging/user/1665645734320.tar.gz, которая укажет на расположение созданного файла. Пожалуйста, предоставьте этот файл техподдержке KOMRAD. Это поможет при расследовании проблем, связанных с работой СУБД ClickHouse.

Каким образом мы сжимаем события и во сколько раз?

Согласно нашим внутренним исследованиям, степень сжатия событий оценивается в 200 раз. События сжимаются несколько раз, в том числе и на коллекторе, также они сжимаются в ClickHouse.

В ClickHouse мы используем сжатие zstd

Не подключается к базе Касперского TLS Handshake failure?

Добавьте параметр использования сертификатов

sqlserver://username:password@host?database=db_name&encrypt=disable

подсказка

Такой параметр необходимо принудительно указывать для баз ранее 2014 года выпуска и в версии Express

При перезапуске сервисов появляются ошибки корреляции?

Если после перезапуска всех сервисов Вы столкнулись с ошибками корреляции (как показано на скриншоте ниже), но директивы при этом работают, то просто проигнорируйте их, это служебная ошибка.

Ошибки корреляции

Эти ошибки происходят при старте диспетчера корреляции и на работу директив не влияют.

Директива не включается, появляется ошибка Ошибка: exit status 12 (error_connection_to_db)

Возможно, у KOMRAD нет связи с БД Postgresql. Проверьте доступность БД. Поскольку при включении директивы создаётся новое соединение с БД, возможно, исчерпан лимит max_connections. Отредактируйте максимальное число подключений к БД в строке max_connections = 150 в файле postgresql.conf:

sudo nano /etc/postgresql/"номер_версии"/main/postgresql.conf
Тип поля map

Тип данных поля map является экспериментальным, но присутствует на UI.

Рекомендуем не использовать данный вид поля

Не включается Syslog-коллектор?

Если Вы получаете следующую ошибку при попытке включения Syslog-коллектора:

finished with error: failed to run in interactive mode: can’t start collector: can’t create wal log at path /var/lib/echelon/komrad/komrad-syslog-collector/.wal : can’t load wal data: can’t read segment data: wal is corrupt

То введите в терминал:

rm -rf /var/lib/echelon/komrad/komrad-syslog-collector/*
systemctl restart komrad-syslog-collector
Может ли коллектор собирать файлы с папки?

KOMRAD может собирать конечные файлы из папки, но с учётом указания конкретного файла. В случае если каждый день создаётся новый лог-файл, Вы не сможете автоматически с него собирать логи.

Освобождение места на диске

Если Вы столкнулись с критической нехваткой места на диске, Вы можете удалить файл под названием ballast_file, который расположен в /home/username/komrad и освободить примерно 1 Гб. Например, это можно сделать так:

sudo rm -i /home/имя_пользователя/komrad/ballast_file
Создается новый коллектор при рестарте коллектора?

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

В таком случае необходимо перенести настройки старого коллектора (со статусом "не определён") в новый коллектор (со статусом "в работе").

Тёмная тема

На данный момент в KOMRAD нет возможности включения тёмной темы, однако планируется её добавить в дальнейшем, в следующих версиях программного комплекса.

Сейчас Вы можете использовать расширение для браузера. Например, Dark Reader.

Он доступен для Google Chrome / Mozilla Firefox / Safari / Microsoft Edge. У плагина имеется довольно гибкая система настроек, которая позволит Вам пользоваться им так, как Вы захотите.

Dark Reader не встраивает рекламу и не собирает пользовательские данные, а исходный код плагина является открытым.

Проверить свои знания по KOMRAD

Проверить свои знания по продукту можно, пройдя тест

Сменился IP у KOMRAD, и сервисы больше не доступны

В целях настроек безопасности мы строго прописываем в конфигурации с каких IP ожидать соединения для сервисов. В случае внезапной смены IP на рабочей станции с установленным KOMRAD, сначала необходимо диагностировать, что причина получаемой ошибки именно в этом. В результате выполнения sudo -u komrad /usr/bin/komrad-bus -c /etc/echelon/komrad/komrad-bus.yaml Вы должны получить ошибку: Can’t start monitoring: can’t listen to the monitor port: listen tcp [last_ip]:3491: bind: cannot assign requested address.

Необходимо заменить настройки транспортной шины. В случае если сервисы располагаются локально, Вы можете использовать 127.0.0.1. Поменяйте значения IP со старого на новый или укажите имя в файлах конфигурации:

sudo nano /etc/echelon/komrad/komrad-bus.yaml
sudo nano /etc/echelon/komrad/komrad-bus.conf
sudo nano /etc/echelon/komrad/komrad-incident-manager.yaml
sudo nano /etc/echelon/komrad/komrad-correlation-dispatcher.yaml
sudo nano /etc/echelon/komrad/komrad-reactor.yaml
sudo nano /etc/echelon/komrad/komrad-server.yaml
sudo nano /etc/echelon/komrad/komrad-scanner.yaml
sudo nano /etc/echelon/komrad/komrad-processor.yaml
sudo nano /etc/echelon/komrad/komrad-snmp-collector.yaml
sudo nano /etc/echelon/komrad/komrad-sql-collector.yaml
sudo nano /etc/echelon/komrad/komrad-file-collector.yaml
sudo nano /etc/echelon/komrad/komrad-http-collector.yaml
sudo nano /etc/echelon/komrad/komrad-syslog-collector.yaml
sudo nano /etc/echelon/komrad/komrad-snmp-collector.yaml
sudo nano /etc/echelon/komrad/komrad-xflow-collector.yaml
sudo nano /etc/echelon/komrad/pauth-server.yaml

В файле конфигурации komrad-server.yaml отредактируйте старое значение IP на новое в разделе AllowedHosts:

sudo nano /etc/echelon/komrad/komrad-server.yaml

Данную задачу можно упростить, выполнив её с помощью следующих команд:

осторожно

В самой команде необходимо удалить символы квадратных скобок ] , [

sed -i 's|listen: [Старый IP адрес]:3490|listen: [Новый IP адрес]:3490|g' /etc/echelon/komrad/*conf
sed -i 's|- nats://[Старый IP адрес]:3490|- nats://[Новый IP адрес]:3490|g' /etc/echelon/komrad/komrad-*
sed -i 's|- [Старый IP адрес]|- [Новый IP адрес]|g' /etc/echelon/komrad/komrad-server.yaml

После редактирования конфигурационных файлов перевыпустите сертификаты

Не запускается clickhouse-server, в логах ошибка Suspiciously many broken parts to remove

Увеличьте максимальное число broken parts, перезагрузите ClickHouse и komrad-processor:

sudo nano /etc/clickhouse-server/config.yaml
sudo systemctl restart clickhouse-server komrad-processor
Некорректно работает DNS-парсер

Если события перестали парситься, то необходимо перезагрузить коллектор вручную.

Фильтры работают лишь на 2 последних дня

По умолчанию диапазон поиска в конфигурации сервера установлен на 24 часа.

примечание

Для того чтобы увеличить диапазон поиска по событиям, необходимо добавить в конфигурационный файл komrad-processor.yaml параметр ttl-days

Порядок выполняемых действий:

  1. Для редактирования конфигурационного файла выполните команду:

    sudo nano /etc/echelon/komrad/komrad-processor.yaml
  2. Добавьте строку ttl-days: 365 в Параметры блока индексации событий ИБ

    # Параметры блока индексации событий ИБ
    indexation:
    debug: false
    # Таймаут сохранения индекса (при превышении индекс будет утерян)
    putindextimeout: 3m0s
    ttl-days: 365
  3. Перезапустите KOMRAD-процессор

    sudo systemctl restart komrad-processor.service
примечание

После перезагрузки все вновь созданные фильтры будут работать в диапазоне 365 дней. Для корректной работы ранее созданных фильтров необходимо произвести их переиндексацию

Как узнать размер таблиц в PostgreSQL?
  1. Подключаемся к PostgreSQL

    sudo su - postgres
  2. Выбираем нужную базу

    psql komrad-preferences

Запрос выводит 20 самых больших таблиц:

SELECT nspname || '.' || relname AS "relation",
pg_size_pretty(pg_relation_size(C.oid)) AS "size"
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN ('pg_catalog', 'information_schema')
ORDER BY pg_relation_size(C.oid) DESC
LIMIT 20;

Узнать общий размер таблиц

SELECT nspname || '.' || relname AS "relation",
pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size"
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN ('pg_catalog', 'information_schema')
AND C.relkind <> 'i'
AND nspname !~ '^pg_toast'
ORDER BY pg_total_relation_size(C.oid) DESC
LIMIT 20;

Узнать размер всех таблиц

SELECT nspname || '.' || relname AS "relation",
pg_size_pretty(pg_relation_size(C.oid)) AS "size"
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN ('pg_catalog', 'information_schema')
ORDER BY pg_relation_size(C.oid) DESC;

В базе данных записана чувствительная информация, будьте осторожны при очистке таблиц, если у Вас сильно выросли логи аудита, Вы можете очистить их командой TRUNCATE

Как настроить горячее/холодное хранение событий в ClickHouse?

В komrad-processor есть два параметра TTL: общий - отвечает за срок хранения событий, ttl-hot-to-cold-days отвечает за срок, в течение которого события находятся в горячем хранилище и по истечении которого перемещаются в холодное хранилище (если разделение на горячее/холодное хранение настроено).

При установке KOMRAD необходимо выбрать разделение хранилища на горячее/холодное. В блоке ClickHouse при установке выбрать:

  • Указать TTL для таблицы событий? [Y/n]: y
  • Создать хранилище событий 'hot/cold'? [Y/n]: y

Параметр TTL можно задать тремя способами:

  1. Через komrad-processor.yaml (параметры ttl и ttl-hot-to-cold, задаются только в днях). Конфигурация:

    ttl:
    # Время хранения событий и событий таблиц индексов по сработавшим фильтрам в БД. (в днях)
    ttl-days: 190
    # Использовать горячее/холодное хранилище событий"
    # Должны быть настроены хранилища ('hot_volume' и 'cold_volume')
    use-hot-cold-storage: false
    # Время хранения событий в горячем хранилище перед переносом в холодное хранилище (в днях)
    ttl-hot-to-cold-days: 190
    tls:
    disable: true
    ServerName: ""
    TrustedCA: /var/lib/echelon/komrad/certs/ca.pem
    Cert: /var/lib/echelon/komrad/certs/client.pem
    CertKey: /var/lib/echelon/komrad/certs/client-key.pem
    system-pool: false
    min-version: "1.3"
    client-auth: require-and-verify-client-cert

    Сохранить файл и выйти (Ctrl+O, Ctrl+X).

    После изменений необходимо перезапустить komrad-processor:

    systemctl restart komrad-processor

    Работает только для изменения в большую сторону.

  2. Через утилиту komrad-cli:

    komrad-cli db clickhouse events-volumes-ttl --ttl 190 --ttlCold 30 --user komrad --pass pass

    Работает для изменений в большую и меньшую стороны. После выполнения команды необходимо вручную обновить параметры в komrad-processor.yaml (п.1)

    Команды по работе с TTL ClickHouse:

    • events-ttl - изменения TTL у таблицы событий events
    • events-index-ttl - изменение TTL у индексных таблиц
    • events-volumes-ttl - изменение TTL у таблицы событий events и указание времени переноса событий из горячего в холодное хранилище

    Флаги к командам по смене TTL:

    • --tls bool - использовать TLS
    • --ca-cert string - путь к сертификату CA
    • --client-cert string - путь к сертификату
    • --client-key-cert string - путь к ключу сертификата
  3. Через ClickHouse:

    Войти в ClickHouse командой:

     clickhouse-client --user=komrad --password=pass

    Ввести запрос с необходимыми значениями интервалов

    ALTER TABLE komrad_events.events MODIFY TTL FROM_UNIXTIME(key_time) TO VOLUME 'hot_volume', FROM_UNIXTIME(key_time) + INTERVAL 10 minute TO VOLUME 'cold_volume', FROM_UNIXTIME(key_time) + INTERVAL 10 day

    Проверка параметров таблицы

    SHOW CREATE TABLE komrad_events.events FORMAT Vertical

    Проверка переноса событий между хранилищами

    SELECT
    name,
    disk_name
    FROM system.parts
    WHERE (table = 'komrad_events.events') AND (active = 1)