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

Выражения CEL в корреляции

В версии 4.6 выражения CEL (Common Expression Language) в корреляции поддерживают несколько типов окружения с различными наборами переменных и функций. Это обеспечивает совместимость с выражениями из предыдущих версий (4.3/4.5) и добавляет новый унифицированный формат.

Типы выражений CEL

Тип выражения CEL определяется параметром correlation.cel-expression-type в конфигурации komrad-server. Доступны три значения:

ТипОписание
extracted_paramsВыражения предыдущего формата, совместимые с версией 4.5
eventВыражения нового формата с улучшенной поддержкой типов полей событий
extracted_params_event_hybridГибридный вариант, поддерживающий оба формата
к сведению

Различные типы выражений необходимы, поскольку в формате extracted_params переменная event уже используется как псевдоним для ep, что создаёт коллизию с новым форматом.

Тип extracted_params

Тип extracted_params обеспечивает обратную совместимость с выражениями из версии 4.5.

Переменные

ПеременнаяТипОписание
epСловарьПоля событий с приведением значений к string, bool или float64
eventСловарьПсевдоним для ep
edkСтрокаКлюч события
asset_ipsМассивСписок IP-адресов активов

Особенности типов базовых полей

Для некоторых базовых полей события типы отличаются от стандартного приведения:

ПолеТип
CTimetimestamp
GenerationTimetimestamp (при наличии)
WTimetimestamp (при наличии)
PluginIDsСтрока, значения разделены запятой
AssetIPsСтрока, значения разделены запятой

Пример выражения

ep['ECS.Event.Code'] > 4650 && ep['ECS.Event.Code'] < 4700

Тип event

Тип event предоставляет новый формат выражений с улучшенной поддержкой типов полей и унифицированный с выражениями в плагине deny.

Переменные event

ПеременнаяТипОписание
eventОбъект событияПредоставляет доступ ко всем базовым полям по имени

Методы объекта event

МетодПараметрОписание
varsСтрока (название поля)Получить значение поля (базового или пользовательского)
as_stringСтрока (название поля)Получить значение поля в виде строки

Пример выражения event

event.vars('ECS.Event.Code') > 4650 && event.vars('ECS.Event.Code') < 4700

Тип extracted_params_event_hybrid

Гибридный тип объединяет переменные обоих форматов, позволяя использовать как старый, так и новый синтаксис в одном выражении.

Переменные hybrid

ПеременнаяТипОписание
epСловарьСловарь полей событий (как в extracted_params)
eventОбъект событияОбъект события (как в event)
edkСтрокаКлюч события
asset_ipsМассивСписок IP-адресов активов

Пример выражения hybrid

ep['ECS.Event.Code'] > 4650 && event.vars('ECS.Event.Category') == "authentication"

Выбор типа выражения

При выборе типа выражения CEL рекомендуется учитывать следующее:

  • extracted_params -- используйте для сохранения совместимости с существующими директивами из версий 4.3/4.5
  • event -- используйте для новых директив, когда важна корректная работа с типами полей
  • extracted_params_event_hybrid -- используйте в переходный период, когда в системе одновременно используются директивы старого и нового формата
примечание

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