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

Работа с полями

В KOMRAD поля событий делятся на следующие типы:

  1. Внутренние (общие):

    • Key - уникальный ключ события, генерируется во время создания события

    • CTime - время создания события, извлечённое из сырого текста события

    • GenerationTime - время получения события агентом/коллектором

    • WTime - время записи в хранилище

    • CollectorType - тип агента или коллектора событий ИБ

    • Raw - исходный текст полученного события

    • CollectorID - уникальный идентификатор агента или коллектора событий ИБ

    • SetupID - идентификатор инсталляции KOMRAD

    • TenantID - ID кластера в мульти-кластерной инсталляции

    • SL - метка безопасности для управления доступом к событиям ИБ

    • Producer - точка генерации события ИБ в KOMRAD-коллекторе, корреляторе, Сканер-ВС

    • AggregationName - метка агрегации событий ИБ

    • Count - число агрегированных событий ИБ по метке агрегации

    • AssetIPs - IP связанных с событием активов

    • FwdIP - IP узла, с которого поступило событие в коллектор

    • FwdPort - порт, который использовался узлом для направления события в коллектор

    • PluginIDs - ID плагинов, сработавших в нормализации события

  2. Поля коллекторов (появляются при подключении коллектора)

  3. Поля ECS (Elastic Common Schema):

    • ECS.Agent.EphemeralID - имя, которое можно присвоить агенту. Это может быть полезно в случае, когда два экземпляра агента работают на одном хосте, но требуется визуальное разделение, на которое поступают данные экземпляра агента. Если имя не указано, оно часто остается пустым

    • ECS.Host.IP - IP хоста

    • ECS.Log.Level - уровень логирования, например, "warn", "err", "i", "informational"

    • ECS.Related.IP - все IP-адреса события

    • ECS.Agent.ID - ID агента

    • ECS.Log.Logger - полное наименование логгера приложения

  4. Пользовательские поля

    Чтобы создать пользовательское поле, необходимо выполнить следующие действия:

  5. Перейти во вкладку manage ⇒ Настройка коллекторов ⇒ Поля событий ⇒ Пользовательские

  6. Нажать Добавить

  7. Задать уникальное название поля события в стиле PascalCase, название поля для отображения, описание

  8. Задать тип данных поля из выпадающего списка. Типы данных полей и их описание представлены в следующей таблице

  9. Нажать Сохранить

Типы данных полей

Тип поляОписание
stringпредставляет строковый тип данных
intпредставляет целое число со знаком, которое в зависимости о платформы может соответствовать либо int32, либо int64, может быть отрицательным числом (сначала ввести число, потом к нему добавить минус)
int32представляет целое число от -2 147 483 648 до 2 147 483 647
int64представляет целое число от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
int_sliceпредставляет неограниченный int
uint8представляет целое число от 0 до 255
uint16представляет целое число от 0 до 65 535
uint32представляет целое число от 0 до 4 294 967 295
uint64представляет целое число от 0 до 18 446 744 073 709 551 615
uint64_sliceпредставляет неограниченный uint64
float32представляет число с плавающей точкой от 1.410^-45^ до 3.410^38^ (для положительных)
float64представляет число с плавающей точкой от 4.910^-324^ до 1.810^308^ (для положительных)
byte_sliceсиноним типа uint8, представляет целое число от 0 до 255 (экспериментальное поле, тесты не подтвердили работоспособность)
timeпредставляет временной тип данных
boolлогический тип, имеет одно из двух значений: true (истина) или false (ложь)
ipIPv4 или IPv6
ip_sliceпредставляет неограниченный IP
string_sliceпредставляет неограниченный string
durationформат времени, такой как 00:00:00 или hours:minutes:seconds.
indicatorтип события индикатора используется для подмножества событий внутри категории, которые содержат подробные сведения об индикаторах компрометации (IoC).Распространенным примером является event.category:threat AND event.type:indicator
risk_levelуровень классификации рисков, рассчитываемый внутренней системой как часть аналитики предприятия и скоринга рисков предприятия
network_directionожидаемые значения для этого типа: ingress, egress ,inbound, outbound, internal, external, unknown
mac_addressстрока с примерным ожидаемым значением 00-00-5E-00-53-23
log_levelОжидаемые значения для этого типа: warn, err, i, informational, error
hlkeyHLKey - это хэш и длина некоторых данных. Используется для поиска данных в высокоуровневой базе данных
осторожно

Поля со значением 0 не парсятся

предупреждение

Вы не сможете удалить пользовательское поле, которое использовалось в плагине, после удаления этого плагина

Поля категоризации ECS

  • event.kind - предоставляет высокоуровневую информацию о том, какой тип информации содержит событие, без указания содержания события. Например, значения этого поля отличают события предупреждений от событий метрик.

Значение этого поля может использоваться для информирования о том, как следует обрабатывать события такого рода. Они могут гарантировать различное хранение, другой контроль доступа, также может помочь понять, поступают ли данные через регулярные промежутки времени или нет.

  • event.category - представляет «большие ведра» категорий ECS. Например, фильтрация по event.category:process дает все события, связанные с активностью процесса. Это поле тесно связано с полем event.type, которое используется как подкатегория.

Это поле представляет собой массив. Позволяет правильно классифицировать некоторые события, попадающие в несколько категорий.

  • event.type - представляет собой «подсегмент» категоризации, который при использовании вместе со значениями полей event.category позволяет фильтровать события до уровня, подходящего для одиночной визуализации.

Это поле представляет собой массив. Позволяет правильно классифицировать некоторые события, которые относятся к нескольким типам событий.

  • event.outcome - обозначает, представляет ли событие успех или неудачу с точки зрения объекта, вызвавшего событие.

Обратите внимание, что когда одна транзакция описывается в нескольких событиях, каждое событие может содержать разные значения event.outcome, в зависимости от их точки зрения.

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

Кроме того, обратите внимание, что не все события будут иметь связанный результат. Например, это поле обычно не заполняется для событий метрик, событий со значком event.type:info или любых событий, для которых результат не имеет логического смысла.

  • risk.level - Уровень классификации рисков, рассчитываемый внутренней системой как часть аналитики предприятия и оценки рисков предприятия.

  • log.level - Исходный уровень журнала события журнала.

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

  • network.direction - Направление сетевого трафика. Рекомендуемые значения:

    • ingress
    • egress
    • inbound
    • outbound
    • internal
    • external
    • unknown

При отображении событий из контекста мониторинга на основе хоста заполните это поле с точки зрения хоста, используя значения "вход" или "выход". При сопоставлении событий из контекста мониторинга на основе сети или периметра заполните это поле с точки зрения периметра сети, используя значения "входящие", "исходящие", "внутренние" или "внешние". Обратите внимание, что "внутренний" не пересекает границы периметра и предназначен для описания связи между двумя хостами внутри периметра. Обратите также внимание, что "внешний" предназначен для описания трафика между двумя хостами, которые являются внешними по отношению к периметру. Это может быть, например, полезно для интернет-провайдеров или поставщиков услуг VPN.

Использование полей категоризации

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

Эти общие принципы могут помочь в процессе категоризации:

  • События из нескольких источников данных, которые достаточно похожи, чтобы их можно было просматривать или анализировать вместе, должны попадать в одно и то же поле event.category

  • Поля event.category и event.type являются массивами и могут быть заполнены несколькими допустимыми значениями, если событие может быть классифицировано более чем по одной категории и/или типу

  • Поля event.kind, event.category, event.type и event.outcomeимеют допустимые значения. Это сделано для нормализации этих полей. Значения, которых нет в списке разрешенных значений, не должны использоваться.

  • Значения полей event.category, event.type и event.outcome являются согласованными для всех значений поля event.kind

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

Примеры использования полей категоризации:

  1. Брандмауэр, блокирующий сетевое подключение

    ...
    {
    "source": {
    "address": "10.42.42.42",
    "ip": "10.42.42.42",
    "port": 38842
    },
    "destination": {
    "address": "10.42.42.1",
    "ip": "10.42.42.1",
    "port": 443
    },
    "rule": {
    "name": "wan-lan",
    "id": "default"
    },
    ...
    "event": {
    "kind": "event",
    "category": [
    "network"
    ],
    "type": [
    "connection",
    "denied"
    ],
    "outcome": "success",
    "action": "dropped"
    }
    }
    ...

    «Запрещено» сетевое соединение может подпадать под разные значения действия: «заблокировано», «сброшено», «помещено в карантин» и т.д. Поле фиксирует действие, выполненное в соответствии с описанием источника, а заполнение обеспечивает независимое нормализованное значение event.actionevent.type:denied

    Единственный запрос вернет все запрещенные сетевые подключения, которые были нормализованы с теми же значениями категоризации:

    event.category:network AND event.type:denied
  2. Неудачная попытка создать учетную запись пользователя

    Пользователь пытается добавить учетную запись пользователя в службу каталогов, но действие завершается сбоем: alice bob

    {
    "user": {
    "name": "alice",
    "target": {
    "name": "bob"
    }
    },
    "event": {
    "kind": "event",
    "category": [
    "iam"
    ],
    "type": [
    "user",
    "creation"
    ],
    "outcome": "failure"
    }
    }
  3. Справочный список файла

    Служебная программа, такая как приложение мониторинга целостности файлов (FIM), проводит инвентаризацию файла, но не обращается к файлу и не изменяет его:

    {
    "file": {
    "name": "example.png",
    "owner": "alice",
    "path": "/home/alice/example.png",
    "type": "file"
    },
    "event": {
    "kind": "event",
    "category": [
    "file"
    ],
    "type": [
    "info"
    ]
    }
    }

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

  4. Программе безопасности не удалось заблокировать сетевое подключение

    Система обнаружения вторжений (IDS) пытается заблокировать соединение, но терпит неудачу. Событие, выдаваемое IDS, считается предупреждением:

    {
    "source": {
    "address": "10.42.42.42",
    "ip": "10.42.42.42",
    "port": 38842
    },
    "destination": {
    "address": "10.42.42.1",
    "ip": "10.42.42.1",
    "port": 443
    },
    ...
    "event": {
    "kind": "alert",
    "category": [
    "intrusion_detection",
    "network"
    ],
    "type": [
    "connection",
    "denied"
    ],
    "outcome": "failure"
    }
    }