Атрибуты правила корреляции standard
Скопировано

16 октября 2026

ID 320351

Атрибуты правила корреляции standard

В текущей версии Kaspersky EDR Expert представлена бета-версия correlator-ng, которая предназначена для ознакомления. До выхода полнофункциональной версии коррелятора API методы, алгоритмы, синтаксис условий и другие функции и характеристики могут быть изменены.

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

В текущей реализации correlator-ng поддерживаются два атрибута:

  • anyMatch
  • joinSelector

Оба атрибута применимы только к правилам корреляции типа standard и используются непосредственно в конфигурации самого правила.

Атрибут anyMatch

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

Если в конфигурации правила корреляции указано anyMatch: true, контейнер считается достигшим состояния Полное совпадение, когда любой из селекторов правила (за исключением селекторов типа recovery) достигает своего порогового значения. Таким образом, правило срабатывает по первому выполненному условию, не ожидая накопления событий другими селекторами. Каждый селектор продолжает независимо накапливать события согласно своей конфигурации, однако завершение корреляции происходит сразу после достижения порога одним из них.

Корреляционное событие, сформированное таким правилом, дополнительно содержит локальную переменную $KL_selectorName. Значение переменной равно тегу селектора, достижение порога которого привело к срабатыванию правила. Это позволяет определить источник срабатывания и использовать различную дальнейшую обработку результата.

Правило с атрибутом anyMatch не поддерживает триггер типа По истечении времени жизни контейнера.

Атрибут joinSelector

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

Если в конфигурации правила корреляции указано anyMatch: true, контейнер считается достигшим состояния Полное совпадение, когда любой из селекторов правила (за исключением селекторов типа recovery) достигает своего порогового значения. Таким образом, правило срабатывает по первому выполненному условию, не ожидая накопления событий другими селекторами. Каждый селектор продолжает независимо накапливать события согласно своей конфигурации, однако завершение корреляции происходит сразу после достижения порога одним из них.

Корреляционное событие, сформированное таким правилом, дополнительно содержит локальную переменную $KL_selectorName. Значение переменной равно тегу селектора, достижение порога которого привело к срабатыванию правила. Это позволяет определить источник срабатывания и использовать различную дальнейшую обработку результата.

Правило с атрибутом anyMatch не поддерживает триггер типа По истечении времени жизни контейнера.

Атрибут joinSelector

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

Значением атрибута является SQL-подобное выражение: joinSelector: <выражение>

Выражение задает условие сравнения событий различных селекторов. Оно должно представлять собой бинарную операцию или функцию, операндами которой могут быть только константы и выражения вида with_selector('<тег_селектора>', <выражение>).

Функция with_selector указывает, что выражение вычисляется относительно событий конкретного селектора.

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

Например:

Порог срабатывания селектора (количество событий) селектора А равен 5, а у селектора B он равен 9. В выражении with_selector('A', DeviceHostName) = with_selector('B', DeviceHostName) будут сравниваться только первые пять событий каждого селектора.

События сопоставляются параллельно в порядке их поступления: первое событие селектора A сравнивается с первым событием селектора B; второе – со вторым, и так далее.

Атрибут joinSelector также может использовать функции. Например: joinSelector: contains_fold(with_selector('A', $var_A), with_selector('B', DeviceCustomString1))

В этом примере используется функция contains_fold, которая проверяет наличие значения переменной коррелятора $var_A, вычисленного для селектора A, в поле DeviceCustomString1 событий селектора B без учета регистра.

В выражениях атрибута joinSelector не поддерживаются следующие функции:

  • has_ti_detect
  • has_ti_detect_with_category
  • has_ti_detect_with_indicator
  • has_ti_detect_with_category_and_indicator

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!