Kaspersky Unified Monitoring and Analysis Platform

Правила корреляции

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

Правила корреляции можно использовать в следующих сервисах и функциях KUMA:

Доступные параметры правила корреляции зависят от выбранного типа. Типы правил корреляции:

  • standard – используется для поиска корреляций между несколькими событиями. Правила этого типа могут создавать корреляционные события.

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

  • simple – используется для создания корреляционных событий при обнаружении определенного события.
  • operational – используется для операций с активными листами и контекстными таблицами. Этот тип правил не может создавать корреляционные события.

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

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

В этом разделе

Правило корреляции, тип standard

Правило корреляции, тип simple

Правило корреляции, тип operational

Переменные в корреляторах

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

Техники и тактики MITRE ATT&CK

В начало
[Topic 217783]

Правило корреляции, тип standard

Развернуть всё | Свернуть всё

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

Поиск закономерностей происходит с помощью контейнеров

Контейнеры правила корреляции – это временные хранилища данных, которые используются ресурсами правила корреляции при определении необходимости создания корреляционных событий. Эти контейнеры выполняет следующие функции:

  • Группируют события, которые были отобраны фильтрами в группе настроек Селекторы ресурса правила корреляции. События группируются по полям, которые указываются пользователем в поле Группирующие поля.
  • Определяют момент, когда должно сработать правило корреляции, меняя соответствующим образом события, сгруппированные в контейнере.
  • Выполняют действия, указанные в группе настроек Действия.
  • Создают корреляционные события.

Доступные состояния контейнера:

  • Пусто – в контейнере нет событий. Это может произойти только в момент своего создания при срабатывании правила корреляции.
  • Частичное совпадение – в контейнере есть некоторые из ожидаемых событий (события восстановления не учитываются).
  • Полное совпадение – в корзине есть все ожидаемые события (события восстановления не учитываются). При достижении этого состояния:
    • Срабатывает правило корреляции
    • События удаляются из контейнера
    • Счетчик срабатываний контейнера обновляется
    • Контейнера переводится в состояние Пусто
  • Ложное совпадение – такое состояние контейнера возможно в следующих случаях:
    • когда было достигнуто состояние Полное совпадение, но объединяющий фильтр возвратил значение false.
    • когда при установленном флажке Обнуление были получены события восстановления.

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

Доступные параметры правила корреляции с типом standard описаны в таблицах ниже.

Вкладка Общие

Эта вкладка используется для указания основных параметров правила корреляции.

Параметр

Описание

Название

Уникальное имя ресурса. Максимальная длина имени составляет до 128 символов в кодировке Unicode.

Обязательный параметр.

Тенант

Название тенанта, которому принадлежит ресурс.

Обязательный параметр.

Тип

Тип правила корреляции – standard.

Обязательный параметр.

Теги

 

Группирующие поля

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

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

Вы можете указывать локальные переменные. Для обращения к локальной переменной вам нужно указать перед ее именем символ $.
Для ознакомления с примерами использования локальных переменных используйте правило R403_Обращение на вредоносные ресурсы с хоста с отключенной защитой или устаревшей антивирусной базой, поставляемое с KUMA.

Обязательный параметр.

Время жизни контейнера, сек.

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

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

Обязательный параметр.

Уникальные поля

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

Вы можете указывать локальные переменные. Для обращения к локальной переменной вам нужно указать перед ее именем символ $.
Для ознакомления с примерами использования локальных переменных используйте правило R403_Обращение на вредоносные ресурсы с хоста с отключенной защитой или устаревшей антивирусной базой, поставляемое с KUMA.

Частота срабатываний

Максимальное количество срабатываний правила корреляции в секунду. Значение по умолчанию: 0.

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

Политика хранения базовых событий

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

  • first – поместить в корреляционное событие первое базовое событие из коллекции событий, инициировавшей создание корреляционного события. Это значение выбрано по умолчанию.
  • last – поместить в корреляционное событие последнее базовое событие из коллекции событий, инициировавшей создание корреляционного события.
  • all – поместить в корреляционное событие все базовые события из коллекции событий, инициировавшей создание корреляционного события.

Уровень важности

Базовый коэффициент, используемый для определения уровня важности правила корреляции:

  • Критический.
  • Высокий.
  • Средний.
  • Низкий – это значение выбрано по умолчанию.

Сортировать по

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

Описание

Описание ресурса. Максимальная длина описания составляет до 4000 символов в кодировке Unicode.

Техники MITRE

Загруженные техники MITRE ATT&CK для анализа состояния покрытия безопасности с помощью матрицы MITRE ATT&CK.

Использовать сопоставление уникальных полей

 

Вкладка Селекторы

Эта вкладка используется для определения условий, которым должны удовлетворять обрабатываемые события для срабатывания правила корреляции. Для добавления селектора нажмите на кнопку + Добавить селектор. Вы можете добавить несколько селекторов, изменить порядок селекторов и удалить селекторы. Для изменения порядка селекторов используйте значки изменения порядка DragIcon. Для удаления селектора нажмите рядом с ним на значок удаления cross-black.

Для каждого селектора доступны вкладки Параметры и Локальные переменные.

Параметры, доступные на вкладке Параметры, описаны в таблице ниже.

Параметр

Описание

Название

Уникальное имя ресурса. Максимальная длина имени составляет до 128 символов в кодировке Unicode.

Обязательный параметр.

Порог срабатывания селектора (количество событий)

Количество событий, которые требуется получить для срабатывания селектора. Значение по умолчанию: 1.

Обязательный параметр.

Обнуление

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

Фильтр

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

Если вы хотите изменить параметры существующего фильтра, нажмите рядом с ним на значок карандаша edit-pencil.

Как создать фильтр?

Чтобы создать фильтр:

  1. В раскрывающемся списке Фильтр выберите Создать.
  2. Если вы хотите сохранить фильтр в качестве отдельного ресурса, установите флажок Сохранить фильтр. В этом случае вы сможете использовать созданный фильтр в разных сервисах. По умолчанию флажок снят.
  3. Если вы установили флажок Сохранить фильтр, в поле Название введите название для создаваемого ресурса фильтра. Максимальная длина названия: до 128 символов в кодировке Unicode.
  4. В блоке параметров Условия укажите условия, которым должны соответствовать события:
    1. Нажмите на кнопку Добавить условие.
    2. В раскрывающихся списках Левый операнд и Правый операнд укажите параметры поиска. В зависимости от источника данных, выбранного в поле Правый операнд, могут отобразиться поля дополнительных параметров для определения значения, которое будет передано в фильтр. Например, при выборе значения активный лист вам нужно указать название активного листа, ключ записи и поле ключа записи.
    3. В раскрывающемся списке оператор выберите оператор.

      Операторы фильтров

      • = – левый операнд равен правому операнду.
      • < – левый операнд меньше правого операнда.
      • <= – левый операнд меньше или равен правому операнду.
      • > – левый операнд больше правого операнда.
      • >= – левый операнд больше или равен правому операнду.
      • inSubnet – левый операнд (IP-адрес) находится в подсети правого операнда (подсети).
      • contains – левый операнд содержит значения правого операнда.
      • startsWith – левый операнд начинается с одного из значений правого операнда.
      • endsWith – левый операнд заканчивается одним из значений правого операнда.
      • match – левый операнд соответствует регулярному выражению правого операнда. Используются регулярные выражения RE2.
      • hasBit – установлены ли в левом операнде (в строке или числе), биты, позиции которых перечислены в правом операнде (в константе или в списке).

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

        Если проверяемое значение – это строка, то производится попытка перевести ее в целое число и обработать указанным выше способом. Если перевести строку в число невозможно, фильтр возвращает False.

      • hasVulnerability – находится ли в левом операнде актив с уязвимостью и уровнем важности уязвимости, указанными в правом операнде.

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

      • inActiveList – этот оператор имеет только один операнд. Его значения выбираются в поле Ключевые поля и сравниваются с записями активного листа, выбранного в раскрывающемся списке активных листов.
      • inDictionary – присутствует ли в указанном словаре запись, соответствующая ключу, составленному из значений выбранных полей события.
      • inCategory – активу в левом операнде назначена по крайней мере одна из категорий активов правого операнда.
      • inActiveDirectoryGroup – учетная запись Active Directory в левом операнде принадлежит одной из групп Active Directory в правом операнде.
      • TIDetect – этот оператор используется для поиска событий с данными CyberTrace Threat Intelligence (TI). Этот оператор можно использовать только на событиях, прошедших обогащение данными из CyberTrace Threat Intelligence, то есть только в коллекторах на этапе выбора точки назначения и в корреляторах.
      • inContextTable – присутствует ли в указанной контекстной таблице запись.
      • intersect – находятся ли в левом операнде элементы списка, указанные в списке в правом операнде.
    4. Если вы хотите, чтобы оператор игнорировал регистр значений, установите флажок без учета регистра. Действие флажка не распространяется на операторы InSubnet, InActiveList, InCategory, InActiveDirectoryGroup. По умолчанию флажок снят.
    5. Если вы хотите добавить отрицательное условие, в раскрывающемся списке Если выберите Если не.

    Вы можете добавить несколько условий или группу условий.

  5. Если вы добавили несколько условий или групп условий, выберите условие отбора (и, или, не), нажав на кнопку И.
  6. Если вы хотите добавить уже существующие фильтры, которые выбираются в раскрывающемся списке Выберите фильтр, нажмите на кнопку Добавить фильтр. Вы можете просмотреть параметры вложенного фильтра, нажав на кнопку открыть для редактирования..

Фильтрация по данным из поля события Extra

Условия для фильтров по данным из поля события Extra:

  • Условие – Если.
  • Левый операнд – поле события.
  • В поле события вы можете указать одно из следующих значений:
    • Поле Extra.
    • Значение из поля Extra в следующем формате:

      Extra.<название поля>

      Например, Extra.app.

      Вам нужно указать значение вручную.

    • Значение из массива, записанного в поле Extra, в следующем формате:

      Extra.<название поля>.<элемент массива>

      Например, Extra.array.0.

      Нумерация значений в массиве начинается с 0. Вам нужно указать значение вручную. Для работы со значением из поля Extra на глубине 3 и ниже требуется использовать кавычки ``, например `Extra.lev1.lev2.lev3`.

  • Оператор – =.
  • Правый операнд – константа.
  • Значение – значение, по которому требуется фильтровать события.

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

Рассмотрим два примера фильтров селектора, осуществляющих выборку событий успешной аутентификации в Microsoft Windows.

Фильтр селектора 1:

Условие 1 – DeviceProduct = Microsoft Windows.

Условие 2 – DeviceEventClassID =  4624.

Фильтр селектора 2:

Условие 1 – DeviceEventClassID = 4624.

Условие 2 – DeviceProduct = Microsoft Windows.

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

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

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

Для использования регулярного выражения вам нужно применить оператор сравнения match. Регулярное выражение должно быть размещено в константе. Применение capture-групп в регулярных выражениях не обязательно. Для срабатывания корреляционного правила текст поля, сопоставляемый с regexp, должен полностью совпасть с регулярным выражением.

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

  • R105_04_Подозрительные PowerShell-команды. Подозрение на обфускацию.
  • R333_Подозрительное создание файлов в директории автозапуска.

Вкладка Действия

Эта вкладка используется для настройки триггеров правила корреляции. Вы можете настроить триггеры на следующих вкладках:

  • На первом срабатывании правила – триггер срабатывает, когда контейнер регистрирует первое в течение срока своей жизни срабатывание селектора.
  • На последующих срабатываниях правила – триггер срабатывает, когда контейнер регистрирует в течение срока своей жизни второе и последующие срабатывания селектора.
  • На каждом срабатывании правила – триггер срабатывает каждый раз, когда контейнер регистрирует срабатывание селектора.
  • По истечении времени жизни контейнера – триггер срабатывает по истечении времени жизни контейнера и используется в связке с селектором, в параметрах которого включен переключатель Обнуление. Таким образом, триггер срабатывает, если в течение указанного времени жизни ситуация, обнаруженная правилом корреляции, не разрешается.

Доступные параметры триггеров описаны в таблице ниже.

Параметр

Описание

В дальнейшую обработку

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

В коррелятор

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

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

Не создавать алерт

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

Если вы хотите, чтобы алерт не создавался при срабатывании правила корреляции, но корреляционное событие все-равно отправлялось в хранилище, установите флажки В дальнейшую обработку и Не создавать алерт. Если установлен только флажок Не создавать алерт, корреляционное событие не будет сохраняться в хранилище.

Обогащение

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

Доступные параметры правила обогащения:

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

    Доступные типы обогащения:

    • константа

      Этот тип обогащения используется, если в поле события необходимо добавить константу. Доступные параметры типа обогащения описаны в таблице ниже.

      Доступные параметры типа обогащения

      Параметр

      Описание

      Константа

      Значение, которое требуется добавить в поле события. Максимальная длина значения: до 255 символов в кодировке Unicode. Если оставить поле пустым, существующее значение поля события будет удалено.

      Целевое поле

      Поле события KUMA, в которое требуется поместить данные.

      Если вы используете функции обогащения событий для полей расширенной схемы с типом «Строка», «Число» или «Число с плавающей точкой» с помощью константы, в поле будет добавлена константа.

      Если вы используете функции обогащения событий для полей расширенной схемы с типом «Массив строк», «Массив чисел» или «Массив чисел с плавающей точкой» с помощью константы, константа будет добавлена к элементам массива.

    • словарь

      Этот тип обогащения используется, если в поле события необходимо добавить значение из словаря типа Словарь. Доступные параметры типа обогащения описаны в таблице ниже.

      Доступные параметры типа обогащения

      Параметр

      Описание

      Название словаря

      Словарь, из которого будут браться значения.

      Ключевые поля

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

      Если вы используете обогащение событий, у которого в качестве параметра Тип источника данных выбрано значение словарь, а в параметре Ключевые поля обогащения указано поле-массив, при передаче массива в качестве ключа словаря массив будет сериализован в строку согласно правилам сериализации одного значения в формате TSV.

      Пример: в параметре Ключевые поля обогащения используется поле расширенной схемы SA.StringArrayOne. В поле расширенной схемы SA.StringArrayOne находятся значения "a", "b", "c". В качестве ключа в словарь будут переданы значения ['a','b','c'].

      Если в параметре Ключевые поля обогащения используется поле-массив расширенной схемы и обычное поле схемы событий, значения полей при обращении в словарь будут разделены символом «|».

      Пример: в параметре Ключевые поля обогащения используется поле расширенной схемы SA.StringArrayOne и строковое поле Code. В поле расширенной схемы SA.StringArrayOne находятся значения "a", "b", "c", а строковое поле Code содержит последовательность символов myCode. В качестве ключа в словарь будут переданы значения ['a','b','c']|myCode.

    • таблица

      Этот тип обогащения используется, если в поле события необходимо добавить значение из словаря типа Таблица. Доступные параметры типа обогащения описаны в таблице ниже.

      Доступные параметры типа обогащения

      Параметр

      Описание

      Название словаря

      Словарь, из которого будут браться значения.

      Ключевые поля

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

      Сопоставление

      Поля событий для передачи данных:

      • Поле словаря – поля словаря, из которых будут передаваться данные. Доступные поля зависят от выбранного ресурса словаря.
      • Поле KUMA – поля событий, в которые будут передаваться данные. Для некоторых выбранных полей (*custom* и *flex*) в столбце Подпись вы можете задать название для помещаемых данных.

      Первое поле в таблице (Поле словаря) считается ключом, с которым будут сопоставляться поля, выбранные из события в качестве ключевых (Поле KUMA). В качестве ключа в Поле словаря вам нужно выбрать индикатор компрометации, по которому будет осуществляться обогащение, например IP-адрес, URL-адрес или хеш. В правиле необходимо выбрать поле события, соответствующее выбранному индикатору в поле словаря.

      Если вы хотите выбрать несколько ключевых полей, вы можете указать их через разделитель | (при указании через веб-интерфейс или импорте через CSV-файл), например <IP-адрес>|<имя пользователя>.

      Вы можете добавлять новые строки таблицы и удалять строки таблицы. Для добавления новой строки таблицы нажмите на кнопку Добавить элемент. Для удаления строки таблицы нажмите на кнопку X..

    • событие

      Этот тип обогащения используется, если в поле события необходимо записать значение другого поля события. Доступные параметры типа обогащения описаны в таблице ниже.

      Доступные параметры типа обогащения

      Параметр

      Описание

      Целевое поле

      Поле события KUMA, в которое требуется поместить данные.

      Исходное поле

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

      Если нажать на кнопку wrench-new, откроется окно Преобразование, в котором вы можете с помощью кнопки Добавить преобразование создавать правила для изменения исходных данных перед записью в поля событий KUMA. Вы можете менять местами и удалять созданные правила. Для изменения места правила используйте значок DragIcon рядом с ним. Для удаления правила нажмите рядом с ним на значок cross-black.

      Доступные преобразования

      Преобразования – это изменения, которые применяются к значению перед записью в поле события. Вы можете выбрать в раскрывающемся списке один из следующих типов преобразования:

      • entropy – используется для преобразования значения исходного поля с помощью функции вычисления информационной энтропии и помещения результата преобразования в целевое поле типа float. Результатом преобразования будет число. Показатель вычисления информационной энтропии позволяет выявлять DNS-туннели и компрометацию паролей, например когда пользователь ввел пароль вместо логина и пароль записывается в журнал в открытом виде.
      • lower – используется для перевода всех символов значения в нижний регистр.
      • upper – используется для перевода всех символов значения в верхний регистр.
      • regexp – используется для преобразования значения с помощью указанного регулярного выражения RE2. При выборе этого типа преобразования отображается поле, в котором вам нужно указать регулярное выражение RE2.
      • substring – используется для извлечения символов в указанном диапазоне позиций. При выборе этого типа преобразования отображаются поля Начало и Конец, в которых вам нужно указать диапазон позиций.
      • replace – используется для замены указанной последовательности символов на другую последовательность символов. При выборе этого типа преобразования отображаются следующие поля:
        • Символы на замену – последовательность символов, которую требуется заменить.
        • Чем заменить – последовательность символов, которую требуется использовать вместо заменяемой последовательности символов.
      • trim – используется для удаления указанных символов одновременно с начала и с конца значения поля события. При выборе этого типа преобразования отображается поле Символы, в котором вам нужно указать символы. Например, если для значения Microsoft-Windows-Sysmon выполнить преобразование trim со значением Micromon, новым значением будет soft-Windows-Sys.
      • append – используется для добавления указанных символов в конец значения поля события. При выборе этого типа преобразования отображается поле Константа, в котором вам нужно указать символы.
      • prepend – используется для добавления указанных символов к началу значения поля события. При выборе этого типа преобразования отображается поле Константа, в котором вам нужно указать символы.
      • replace with regexp – используется для замены результатов регулярного выражения RE2 на указанную последовательность символов. При выборе этого типа преобразования отображаются следующие поля:
        • Выражение – регулярное выражение RE2, результаты которого требуется заменить.
        • Чем заменить – последовательность символов, которую требуется использовать вместо заменяемой последовательности символов.
      • Конвертация закодированных строк в текст:
        • decodeHexString – используется для конвертации HEX-строки в текст.
        • decodeBase64String – используется для конвертации Base64-строки в текст.
        • decodeBase64URLString – используется для конвертации Base64url-строки в текст.

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

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

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

      Преобразования при использовании расширенной схемы событий

      Возможность использования преобразования зависит от типа используемого поля расширенной схемы событий:

      • для дополнительного поля с типом «Строка» доступны все типы преобразования.
      • для полей с типами «Число» и «Число с плавающей точкой» доступны следующие типы преобразования: regexp, substring, replace, trim, append, prepend, replaceWithRegexp, decodeHexString, decodeBase64String и decodeBase64URLString.
      • для полей с типами «Массив строк», «Массив чисел» и «Массив чисел с плавающей точкой» доступны следующие типы преобразования: append и prepend.

       

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

      • Если исходное поле расширенной схемы событий имеет тип «Массив строк», а целевое поле расширенной схемы событий имеет тип «Строка», значения будут размещены в целевом поле расширенной схемы событий в формате TSV.

        Пример: в поле расширенной схемы событий SA.StringArray, находятся значения «string1», «string2», «string3». Выполняется операция обогащения событий. Результат выполнения операции обогащения событий заносится в поле расширенной схемы событий DeviceCustomString1. В поле расширенной схемы событий DeviceCustomString1 будут находиться значения [«string1», «string2», «string3»].

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

        Пример: в поле расширенной схемы событий SA.StringArrayOne, находятся значения [«string1», «string2», «string3»], а в поле расширенной схемы событий SA.StringArrayTwo находятся значения [«string4», «string5», «string6»]. Выполняется операция обогащения событий. Результат выполнения операции обогащения событий заносится в поле расширенной схемы событий SA.StringArrayTwo. В поле расширенной схемы событий SA.StringArrayTwo будут находиться значения[«string4», «string5», «string6», «string1», «string2», «string3»].

    • шаблон

      Этот тип обогащения используется, если в поле события необходимо записать значение, полученное при обработке шаблонов Go. Мы рекомендуем сопоставлять значение и размер поля. Доступные параметры типа обогащения описаны в таблице ниже.

      Доступные параметры типа обогащения

      Параметр

      Описание

      Шаблон

      Шаблон Go. Имена полей событий передаются в формате {{.EventField}}, где EventField – это название поля события, значение которого должно быть передано в скрипт, например Атака на {{.DestinationAddress}} со стороны {{.SourceAddress}}.

      Целевое поле

      Поле события KUMA, в которое требуется поместить данные.

      Если вы используете обогащение событий, у которого в качестве параметра Тип источника данных выбрано значение шаблон, целевым полем является поле с типом «Строка», а исходным полем является поле расширенной схемы событий, содержащее массив строк, в шаблоне может быть использован один из следующих примеров:

      • {{.SA.StringArrayOne}}
      • {{- range $index, $element := . SA.StringArrayOne -}}

        {{- if $index}}, {{end}}"{{$element}}"{{- end -}}

      Для преобразования в шаблоне данных поля массива в формат TSV необходимо использовать функцию toString, например:

      template {{toString .SA.StringArray}}

    Обязательный параметр.

  • Отладка – переключатель, включающий логирование ресурса. По умолчанию этот переключатель выключен.
  • Теги

Вы можете создать несколько правил обогащения, изменить порядок правил обогащения и удалить правила обогащения. Для изменения порядка правил обогащения используйте значки изменения порядка DragIcon. Для удаления правила обогащения нажмите рядом с ним на значок удаления cross-black.

Изменение категорий

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

Доступные параметры правила категоризации:

  • Действие – операция, выполняемая над категорией:
    • Добавить – привязать категорию к активу.
    • Удалить – отвязать категорию от актива.

    Обязательный параметр.

  • Поле события – поле события, содержащее актив, над которым будет выполнена операция.

    Обязательный параметр.

  • Идентификатор категории – категория, над которой будет совершена операция.

    Обязательный параметр.

Вы можете создать несколько правил категоризации, изменить порядок правил категоризации и удалить правила категоризации. Для изменения порядка правил категоризации используйте значки изменения порядка DragIcon. Для удаления правила категоризации нажмите рядом с ним на значок удаления cross-black.

Обновление активных листов

Операции с активными листами. Для создания операции с активным листом нажмите на кнопку + Добавить действие с активным листом.

Доступные параметры операции с активным листом:

  • Название – активный лист, с которым выполняется операция. Если вы хотите изменить параметры активного листа, нажмите рядом с ним на значок карандаша edit-pencil.

    Обязательный параметр.

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

    Обязательный параметр.

  • Ключевые поля – поля события, которые используются для создания записи активного листа. Указанные поля событий также используются в качестве ключа записи активного листа.

    Ключ записи активного листа зависит только от состава полей событий и не зависит от порядка их отображения в веб-интерфейсе KUMA.

    Обязательный параметр.

  • Сопоставление – правила сопоставления полей активного листа с полями событий. Вы можете использовать правила сопоставления, если в раскрывающемся списке Операция вы выбрали значение Получить или Установить. Для создания правила сопоставления нажмите на кнопку + Добавить.

    Доступные параметры правила сопоставления:

    • Поле активного листа – поле активного листа, которое сопоставляется с полем события. Поле не должно содержать специальные символы или только цифры.
    • Поле KUMA – поле события, с которым сопоставляется поле активного листа.
    • Константа – константа, которая назначается полю активного листа. Вам нужно указать константу, если в раскрывающемся списке Операция вы выбрали значение Установить.

    Вы можете создать несколько правил сопоставления и удалить правила сопоставления. Для удаления правила сопоставления установите рядом с ним флажок и нажмите на кнопку Удалить.

Вы можете создать несколько операций с активными листами, изменить порядок операций с активными листами и удалить операции с активными листами. Для изменения порядка операций с активными листами используйте значки изменения порядка DragIcon. Для удаления операции с активным листом нажмите рядом с ней на значок удаления cross-black.

Обновление контекстных таблиц

Операции с контекстными таблицами. Для создания операции с контекстной таблицей нажмите на кнопку + Добавить действие с контекстной таблицей.

Доступные параметры операции с контекстной таблицей:

  • Название – контекстная таблица, с которой выполняется операция. Если вы хотите изменить параметры контекстной таблицы, нажмите рядом с ней на значок карандаша edit-pencil.

    Обязательный параметр.

  • Операция – операция, которая выполняется с контекстной таблицей:
    • Сложить – прибавить константу, значение поля корреляционного события или значение локальной переменной к значению указанного поля контекстной таблицы. Операция используется только для полей с типом «Число» и «Число с плавающей точкой».
    • Установить – записать значения указанных полей корреляционного события в контекстную таблицу, создав новую или обновив существующую запись контекстной таблицы. При обновлении записи контекстной таблицы данные объединяются, и только указанные поля перезаписываются.
    • Объединить – дописать значение поля корреляционного события, локальной переменной или константы к существующему значению поля контекстной таблицы.
    • Получить – получить поля контекстной таблицы и записать значения указанных полей в корреляционное событие. Поля таблицы типа булево значение и список булевых значений исключаются из сопоставления, потому что в событии нет полей булева типа.
    • Удалить – удалить запись из контекстной таблицы.

    Обязательный параметр.

  • Сопоставление – правила сопоставления полей контекстной таблицы с полями событий или переменными. Вы можете использовать правила сопоставления, если в раскрывающемся списке Операция вы не выбрали значение Удалить. Для создания правила сопоставления нажмите на кнопку + Добавить.

    Доступные параметры правила сопоставления:

    • Поле контекстной таблицы – поле контекстной таблицы, которое сопоставляется с полем события. Вы не можете указать поле контекстной таблицы, которое уже используется в сопоставлении. Вы можете указать табуляцию, специальные символы или только цифры. Максимальное длина названия поля контекстной таблицы составляет 128 символов. Название поля контекстной таблицы не может начинаться с нижнего подчеркивания.
    • Поле KUMA – поле события или локальная переменная, с которой сопоставляется поле контекстной таблицы.
    • Константа – константа, которая назначается полю контекстной таблицы. Вам нужно указать константу, если в раскрывающемся списке Операция вы выбрали значение Установить, Объединить или Сложить. Максимальное длина константы составляет 1024 символа.

    Вы можете создать несколько правил сопоставления и удалить правила сопоставления. Для удаления правила сопоставления установите рядом с ним флажок и нажмите на кнопку Удалить.

Вы можете создать несколько операций с контекстными таблицами, изменить порядок операций с контекстными таблицами и удалить операции с контекстными таблицами. Для изменения порядка операций с контекстными таблицами используйте значки изменения порядка DragIcon. Для удаления операции с контекстной таблицей нажмите рядом с ней на значок удаления cross-black.

Вкладка Корреляторы

Эта вкладка отображается только при изменении параметров созданного правила корреляции и используется для привязки корреляторов к правилу корреляции.

Для добавления корреляторов нажмите на кнопку + Добавить, в открывшемся окне укажите один или несколько корреляторов и нажмите на кнопку ОК. Правило корреляции будет привязано к указанным корреляторам и добавлено последним в очередь для выполнения в параметрах корреляторов. Если вы хотите изменить позицию правила корреляции в очереди для выполнения, перейдите в раздел Ресурсы → Коррелятор, нажмите на коррелятор, в открывшемся окне перейдите в раздел Корреляция, установите флажок рядом с правилом корреляции и измените позицию правила корреляции, нажимая на кнопки Поднять и Опустить.

Вы можете добавить несколько корреляторов и удалить корреляторы. Для удаления коррелятора установите рядом с ним флажок и нажмите на кнопку Удалить.

В начало
[Topic 221197]

Правило корреляции, тип simple

Развернуть всё | Свернуть всё

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

Вкладка Общие

Эта вкладка используется для указания основных параметров правила корреляции.

Параметр

Описание

Название

Уникальное имя ресурса. Максимальная длина имени составляет до 128 символов в кодировке Unicode.

Обязательный параметр.

Тенант

Название тенанта, которому принадлежит ресурс.

Обязательный параметр.

Тип

Тип правила корреляции – simple.

Обязательный параметр.

Теги

 

Наследуемые поля

Поля событий, по которым отбираются события. Если срабатывает селектор, указанный на вкладке Селекторы, отобранные поля событий копируются в корреляционное событие.

Частота срабатываний

Максимальное количество срабатываний правила корреляции в секунду. Значение по умолчанию: 0.

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

Уровень важности

Базовый коэффициент, используемый для определения уровня важности правила корреляции:

  • Критический.
  • Высокий.
  • Средний.
  • Низкий – это значение выбрано по умолчанию.

Описание

Описание ресурса. Максимальная длина описания составляет до 4000 символов в кодировке Unicode.

Техники MITRE

Загруженные техники MITRE ATT&CK для анализа состояния покрытия безопасности с помощью матрицы MITRE ATT&CK.

Вкладка Селекторы

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

Параметры, доступные на вкладке Параметры, описаны в таблице ниже.

Параметр

Описание

Фильтр

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

Если вы хотите изменить параметры существующего фильтра, нажмите рядом с ним на значок карандаша edit-pencil.

Как создать фильтр?

Чтобы создать фильтр:

  1. В раскрывающемся списке Фильтр выберите Создать.
  2. Если вы хотите сохранить фильтр в качестве отдельного ресурса, установите флажок Сохранить фильтр. В этом случае вы сможете использовать созданный фильтр в разных сервисах. По умолчанию флажок снят.
  3. Если вы установили флажок Сохранить фильтр, в поле Название введите название для создаваемого ресурса фильтра. Максимальная длина названия: до 128 символов в кодировке Unicode.
  4. В блоке параметров Условия укажите условия, которым должны соответствовать события:
    1. Нажмите на кнопку Добавить условие.
    2. В раскрывающихся списках Левый операнд и Правый операнд укажите параметры поиска. В зависимости от источника данных, выбранного в поле Правый операнд, могут отобразиться поля дополнительных параметров для определения значения, которое будет передано в фильтр. Например, при выборе значения активный лист вам нужно указать название активного листа, ключ записи и поле ключа записи.
    3. В раскрывающемся списке оператор выберите оператор.

      Операторы фильтров

      • = – левый операнд равен правому операнду.
      • < – левый операнд меньше правого операнда.
      • <= – левый операнд меньше или равен правому операнду.
      • > – левый операнд больше правого операнда.
      • >= – левый операнд больше или равен правому операнду.
      • inSubnet – левый операнд (IP-адрес) находится в подсети правого операнда (подсети).
      • contains – левый операнд содержит значения правого операнда.
      • startsWith – левый операнд начинается с одного из значений правого операнда.
      • endsWith – левый операнд заканчивается одним из значений правого операнда.
      • match – левый операнд соответствует регулярному выражению правого операнда. Используются регулярные выражения RE2.
      • hasBit – установлены ли в левом операнде (в строке или числе), биты, позиции которых перечислены в правом операнде (в константе или в списке).

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

        Если проверяемое значение – это строка, то производится попытка перевести ее в целое число и обработать указанным выше способом. Если перевести строку в число невозможно, фильтр возвращает False.

      • hasVulnerability – находится ли в левом операнде актив с уязвимостью и уровнем важности уязвимости, указанными в правом операнде.

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

      • inActiveList – этот оператор имеет только один операнд. Его значения выбираются в поле Ключевые поля и сравниваются с записями активного листа, выбранного в раскрывающемся списке активных листов.
      • inDictionary – присутствует ли в указанном словаре запись, соответствующая ключу, составленному из значений выбранных полей события.
      • inCategory – активу в левом операнде назначена по крайней мере одна из категорий активов правого операнда.
      • inActiveDirectoryGroup – учетная запись Active Directory в левом операнде принадлежит одной из групп Active Directory в правом операнде.
      • TIDetect – этот оператор используется для поиска событий с данными CyberTrace Threat Intelligence (TI). Этот оператор можно использовать только на событиях, прошедших обогащение данными из CyberTrace Threat Intelligence, то есть только в коллекторах на этапе выбора точки назначения и в корреляторах.
      • inContextTable – присутствует ли в указанной контекстной таблице запись.
      • intersect – находятся ли в левом операнде элементы списка, указанные в списке в правом операнде.
    4. Если вы хотите, чтобы оператор игнорировал регистр значений, установите флажок без учета регистра. Действие флажка не распространяется на операторы InSubnet, InActiveList, InCategory, InActiveDirectoryGroup. По умолчанию флажок снят.
    5. Если вы хотите добавить отрицательное условие, в раскрывающемся списке Если выберите Если не.

    Вы можете добавить несколько условий или группу условий.

  5. Если вы добавили несколько условий или групп условий, выберите условие отбора (и, или, не), нажав на кнопку И.
  6. Если вы хотите добавить уже существующие фильтры, которые выбираются в раскрывающемся списке Выберите фильтр, нажмите на кнопку Добавить фильтр. Вы можете просмотреть параметры вложенного фильтра, нажав на кнопку открыть для редактирования..

Фильтрация по данным из поля события Extra

Условия для фильтров по данным из поля события Extra:

  • Условие – Если.
  • Левый операнд – поле события.
  • В поле события вы можете указать одно из следующих значений:
    • Поле Extra.
    • Значение из поля Extra в следующем формате:

      Extra.<название поля>

      Например, Extra.app.

      Вам нужно указать значение вручную.

    • Значение из массива, записанного в поле Extra, в следующем формате:

      Extra.<название поля>.<элемент массива>

      Например, Extra.array.0.

      Нумерация значений в массиве начинается с 0. Вам нужно указать значение вручную. Для работы со значением из поля Extra на глубине 3 и ниже требуется использовать кавычки ``, например `Extra.lev1.lev2.lev3`.

  • Оператор – =.
  • Правый операнд – константа.
  • Значение – значение, по которому требуется фильтровать события.

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

Рассмотрим два примера фильтров селектора, осуществляющих выборку событий успешной аутентификации в Microsoft Windows.

Фильтр селектора 1:

Условие 1 – DeviceProduct = Microsoft Windows.

Условие 2 – DeviceEventClassID =  4624.

Фильтр селектора 2:

Условие 1 – DeviceEventClassID = 4624.

Условие 2 – DeviceProduct = Microsoft Windows.

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

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

Вкладка Действия

Эта вкладка используется для настройки триггера правила корреляции. В правиле корреляции с типом simple может быть только один триггер, который срабатывает каждый раз, когда контейнер регистрирует срабатывание селектора. Доступные параметры триггера описаны в таблице ниже.

Параметр

Описание

В дальнейшую обработку

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

В коррелятор

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

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

Не создавать алерт

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

Если вы хотите, чтобы алерт не создавался при срабатывании правила корреляции, но корреляционное событие все-равно отправлялось в хранилище, установите флажки В дальнейшую обработку и Не создавать алерт. Если установлен только флажок Не создавать алерт, корреляционное событие не будет сохраняться в хранилище.

Обогащение

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

Доступные параметры правила обогащения:

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

    Доступные типы обогащения:

    • константа

      Этот тип обогащения используется, если в поле события необходимо добавить константу. Доступные параметры типа обогащения описаны в таблице ниже.

      Доступные параметры типа обогащения

      Параметр

      Описание

      Константа

      Значение, которое требуется добавить в поле события. Максимальная длина значения: до 255 символов в кодировке Unicode. Если оставить поле пустым, существующее значение поля события будет удалено.

      Целевое поле

      Поле события KUMA, в которое требуется поместить данные.

      Если вы используете функции обогащения событий для полей расширенной схемы с типом «Строка», «Число» или «Число с плавающей точкой» с помощью константы, в поле будет добавлена константа.

      Если вы используете функции обогащения событий для полей расширенной схемы с типом «Массив строк», «Массив чисел» или «Массив чисел с плавающей точкой» с помощью константы, константа будет добавлена к элементам массива.

    • словарь

      Этот тип обогащения используется, если в поле события необходимо добавить значение из словаря типа Словарь. Доступные параметры типа обогащения описаны в таблице ниже.

      Доступные параметры типа обогащения

      Параметр

      Описание

      Название словаря

      Словарь, из которого будут браться значения.

      Ключевые поля

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

      Если вы используете обогащение событий, у которого в качестве параметра Тип источника данных выбрано значение словарь, а в параметре Ключевые поля обогащения указано поле-массив, при передаче массива в качестве ключа словаря массив будет сериализован в строку согласно правилам сериализации одного значения в формате TSV.

      Пример: в параметре Ключевые поля обогащения используется поле расширенной схемы SA.StringArrayOne. В поле расширенной схемы SA.StringArrayOne находятся значения "a", "b", "c". В качестве ключа в словарь будут переданы значения ['a','b','c'].

      Если в параметре Ключевые поля обогащения используется поле-массив расширенной схемы и обычное поле схемы событий, значения полей при обращении в словарь будут разделены символом «|».

      Пример: в параметре Ключевые поля обогащения используется поле расширенной схемы SA.StringArrayOne и строковое поле Code. В поле расширенной схемы SA.StringArrayOne находятся значения "a", "b", "c", а строковое поле Code содержит последовательность символов myCode. В качестве ключа в словарь будут переданы значения ['a','b','c']|myCode.

    • таблица

      Этот тип обогащения используется, если в поле события необходимо добавить значение из словаря типа Таблица. Доступные параметры типа обогащения описаны в таблице ниже.

      Доступные параметры типа обогащения

      Параметр

      Описание

      Название словаря

      Словарь, из которого будут браться значения.

      Ключевые поля

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

      Сопоставление

      Поля событий для передачи данных:

      • Поле словаря – поля словаря, из которых будут передаваться данные. Доступные поля зависят от выбранного ресурса словаря.
      • Поле KUMA – поля событий, в которые будут передаваться данные. Для некоторых выбранных полей (*custom* и *flex*) в столбце Подпись вы можете задать название для помещаемых данных.

      Первое поле в таблице (Поле словаря) считается ключом, с которым будут сопоставляться поля, выбранные из события в качестве ключевых (Поле KUMA). В качестве ключа в Поле словаря вам нужно выбрать индикатор компрометации, по которому будет осуществляться обогащение, например IP-адрес, URL-адрес или хеш. В правиле необходимо выбрать поле события, соответствующее выбранному индикатору в поле словаря.

      Если вы хотите выбрать несколько ключевых полей, вы можете указать их через разделитель | (при указании через веб-интерфейс или импорте через CSV-файл), например <IP-адрес>|<имя пользователя>.

      Вы можете добавлять новые строки таблицы и удалять строки таблицы. Для добавления новой строки таблицы нажмите на кнопку Добавить элемент. Для удаления строки таблицы нажмите на кнопку X..

    • событие

      Этот тип обогащения используется, если в поле события необходимо записать значение другого поля события. Доступные параметры типа обогащения описаны в таблице ниже.

      Доступные параметры типа обогащения

      Параметр

      Описание

      Целевое поле

      Поле события KUMA, в которое требуется поместить данные.

      Исходное поле

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

      Если нажать на кнопку wrench-new, откроется окно Преобразование, в котором вы можете с помощью кнопки Добавить преобразование создавать правила для изменения исходных данных перед записью в поля событий KUMA. Вы можете менять местами и удалять созданные правила. Для изменения места правила используйте значок DragIcon рядом с ним. Для удаления правила нажмите рядом с ним на значок cross-black.

      Доступные преобразования

      Преобразования – это изменения, которые применяются к значению перед записью в поле события. Вы можете выбрать в раскрывающемся списке один из следующих типов преобразования:

      • entropy – используется для преобразования значения исходного поля с помощью функции вычисления информационной энтропии и помещения результата преобразования в целевое поле типа float. Результатом преобразования будет число. Показатель вычисления информационной энтропии позволяет выявлять DNS-туннели и компрометацию паролей, например когда пользователь ввел пароль вместо логина и пароль записывается в журнал в открытом виде.
      • lower – используется для перевода всех символов значения в нижний регистр.
      • upper – используется для перевода всех символов значения в верхний регистр.
      • regexp – используется для преобразования значения с помощью указанного регулярного выражения RE2. При выборе этого типа преобразования отображается поле, в котором вам нужно указать регулярное выражение RE2.
      • substring – используется для извлечения символов в указанном диапазоне позиций. При выборе этого типа преобразования отображаются поля Начало и Конец, в которых вам нужно указать диапазон позиций.
      • replace – используется для замены указанной последовательности символов на другую последовательность символов. При выборе этого типа преобразования отображаются следующие поля:
        • Символы на замену – последовательность символов, которую требуется заменить.
        • Чем заменить – последовательность символов, которую требуется использовать вместо заменяемой последовательности символов.
      • trim – используется для удаления указанных символов одновременно с начала и с конца значения поля события. При выборе этого типа преобразования отображается поле Символы, в котором вам нужно указать символы. Например, если для значения Microsoft-Windows-Sysmon выполнить преобразование trim со значением Micromon, новым значением будет soft-Windows-Sys.
      • append – используется для добавления указанных символов в конец значения поля события. При выборе этого типа преобразования отображается поле Константа, в котором вам нужно указать символы.
      • prepend – используется для добавления указанных символов к началу значения поля события. При выборе этого типа преобразования отображается поле Константа, в котором вам нужно указать символы.
      • replace with regexp – используется для замены результатов регулярного выражения RE2 на указанную последовательность символов. При выборе этого типа преобразования отображаются следующие поля:
        • Выражение – регулярное выражение RE2, результаты которого требуется заменить.
        • Чем заменить – последовательность символов, которую требуется использовать вместо заменяемой последовательности символов.
      • Конвертация закодированных строк в текст:
        • decodeHexString – используется для конвертации HEX-строки в текст.
        • decodeBase64String – используется для конвертации Base64-строки в текст.
        • decodeBase64URLString – используется для конвертации Base64url-строки в текст.

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

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

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

      Преобразования при использовании расширенной схемы событий

      Возможность использования преобразования зависит от типа используемого поля расширенной схемы событий:

      • для дополнительного поля с типом «Строка» доступны все типы преобразования.
      • для полей с типами «Число» и «Число с плавающей точкой» доступны следующие типы преобразования: regexp, substring, replace, trim, append, prepend, replaceWithRegexp, decodeHexString, decodeBase64String и decodeBase64URLString.
      • для полей с типами «Массив строк», «Массив чисел» и «Массив чисел с плавающей точкой» доступны следующие типы преобразования: append и prepend.

       

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

      • Если исходное поле расширенной схемы событий имеет тип «Массив строк», а целевое поле расширенной схемы событий имеет тип «Строка», значения будут размещены в целевом поле расширенной схемы событий в формате TSV.

        Пример: в поле расширенной схемы событий SA.StringArray, находятся значения «string1», «string2», «string3». Выполняется операция обогащения событий. Результат выполнения операции обогащения событий заносится в поле расширенной схемы событий DeviceCustomString1. В поле расширенной схемы событий DeviceCustomString1 будут находиться значения [«string1», «string2», «string3»].

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

        Пример: в поле расширенной схемы событий SA.StringArrayOne, находятся значения [«string1», «string2», «string3»], а в поле расширенной схемы событий SA.StringArrayTwo находятся значения [«string4», «string5», «string6»]. Выполняется операция обогащения событий. Результат выполнения операции обогащения событий заносится в поле расширенной схемы событий SA.StringArrayTwo. В поле расширенной схемы событий SA.StringArrayTwo будут находиться значения[«string4», «string5», «string6», «string1», «string2», «string3»].

    • шаблон

      Этот тип обогащения используется, если в поле события необходимо записать значение, полученное при обработке шаблонов Go. Мы рекомендуем сопоставлять значение и размер поля. Доступные параметры типа обогащения описаны в таблице ниже.

      Доступные параметры типа обогащения

      Параметр

      Описание

      Шаблон

      Шаблон Go. Имена полей событий передаются в формате {{.EventField}}, где EventField – это название поля события, значение которого должно быть передано в скрипт, например Атака на {{.DestinationAddress}} со стороны {{.SourceAddress}}.

      Целевое поле

      Поле события KUMA, в которое требуется поместить данные.

      Если вы используете обогащение событий, у которого в качестве параметра Тип источника данных выбрано значение шаблон, целевым полем является поле с типом «Строка», а исходным полем является поле расширенной схемы событий, содержащее массив строк, в шаблоне может быть использован один из следующих примеров:

      • {{.SA.StringArrayOne}}
      • {{- range $index, $element := . SA.StringArrayOne -}}

        {{- if $index}}, {{end}}"{{$element}}"{{- end -}}

      Для преобразования в шаблоне данных поля массива в формат TSV необходимо использовать функцию toString, например:

      template {{toString .SA.StringArray}}

    Обязательный параметр.

  • Отладка – переключатель, включающий логирование ресурса. По умолчанию этот переключатель выключен.
  • Теги

Вы можете создать несколько правил обогащения, изменить порядок правил обогащения и удалить правила обогащения. Для изменения порядка правил обогащения используйте значки изменения порядка DragIcon. Для удаления правила обогащения нажмите рядом с ним на значок удаления cross-black.

Изменение категорий

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

Доступные параметры правила категоризации:

  • Действие – операция, выполняемая над категорией:
    • Добавить – привязать категорию к активу.
    • Удалить – отвязать категорию от актива.

    Обязательный параметр.

  • Поле события – поле события, содержащее актив, над которым будет выполнена операция.

    Обязательный параметр.

  • Идентификатор категории – категория, над которой будет совершена операция.

    Обязательный параметр.

Вы можете создать несколько правил категоризации, изменить порядок правил категоризации и удалить правила категоризации. Для изменения порядка правил категоризации используйте значки изменения порядка DragIcon. Для удаления правила категоризации нажмите рядом с ним на значок удаления cross-black.

Обновление активных листов

Операции с активными листами. Для создания операции с активным листом нажмите на кнопку + Добавить действие с активным листом.

Доступные параметры операции с активным листом:

  • Название – активный лист, с которым выполняется операция. Если вы хотите изменить параметры активного листа, нажмите рядом с ним на значок карандаша edit-pencil.

    Обязательный параметр.

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

    Обязательный параметр.

  • Ключевые поля – поля события, которые используются для создания записи активного листа. Указанные поля событий также используются в качестве ключа записи активного листа.

    Ключ записи активного листа зависит только от состава полей событий и не зависит от порядка их отображения в веб-интерфейсе KUMA.

    Обязательный параметр.

  • Сопоставление – правила сопоставления полей активного листа с полями событий. Вы можете использовать правила сопоставления, если в раскрывающемся списке Операция вы выбрали значение Получить или Установить. Для создания правила сопоставления нажмите на кнопку + Добавить.

    Доступные параметры правила сопоставления:

    • Поле активного листа – поле активного листа, которое сопоставляется с полем события. Поле не должно содержать специальные символы или только цифры.
    • Поле KUMA – поле события, с которым сопоставляется поле активного листа.
    • Константа – константа, которая назначается полю активного листа. Вам нужно указать константу, если в раскрывающемся списке Операция вы выбрали значение Установить.

    Вы можете создать несколько правил сопоставления и удалить правила сопоставления. Для удаления правила сопоставления установите рядом с ним флажок и нажмите на кнопку Удалить.

Вы можете создать несколько операций с активными листами, изменить порядок операций с активными листами и удалить операции с активными листами. Для изменения порядка операций с активными листами используйте значки изменения порядка DragIcon. Для удаления операции с активным листом нажмите рядом с ней на значок удаления cross-black.

Обновление контекстных таблиц

Операции с контекстными таблицами. Для создания операции с контекстной таблицей нажмите на кнопку + Добавить действие с контекстной таблицей.

Доступные параметры операции с контекстной таблицей:

  • Название – контекстная таблица, с которой выполняется операция. Если вы хотите изменить параметры контекстной таблицы, нажмите рядом с ней на значок карандаша edit-pencil.

    Обязательный параметр.

  • Операция – операция, которая выполняется с контекстной таблицей:
    • Сложить – прибавить константу, значение поля корреляционного события или значение локальной переменной к значению указанного поля контекстной таблицы. Операция используется только для полей с типом «Число» и «Число с плавающей точкой».
    • Установить – записать значения указанных полей корреляционного события в контекстную таблицу, создав новую или обновив существующую запись контекстной таблицы. При обновлении записи контекстной таблицы данные объединяются, и только указанные поля перезаписываются.
    • Объединить – дописать значение поля корреляционного события, локальной переменной или константы к существующему значению поля контекстной таблицы.
    • Получить – получить поля контекстной таблицы и записать значения указанных полей в корреляционное событие. Поля таблицы типа булево значение и список булевых значений исключаются из сопоставления, потому что в событии нет полей булева типа.
    • Удалить – удалить запись из контекстной таблицы.

    Обязательный параметр.

  • Сопоставление – правила сопоставления полей контекстной таблицы с полями событий или переменными. Вы можете использовать правила сопоставления, если в раскрывающемся списке Операция вы не выбрали значение Удалить. Для создания правила сопоставления нажмите на кнопку + Добавить.

    Доступные параметры правила сопоставления:

    • Поле контекстной таблицы – поле контекстной таблицы, которое сопоставляется с полем события. Вы не можете указать поле контекстной таблицы, которое уже используется в сопоставлении. Вы можете указать табуляцию, специальные символы или только цифры. Максимальное длина названия поля контекстной таблицы составляет 128 символов. Название поля контекстной таблицы не может начинаться с нижнего подчеркивания.
    • Поле KUMA – поле события или локальная переменная, с которой сопоставляется поле контекстной таблицы.
    • Константа – константа, которая назначается полю контекстной таблицы. Вам нужно указать константу, если в раскрывающемся списке Операция вы выбрали значение Установить, Объединить или Сложить. Максимальное длина константы составляет 1024 символа.

    Вы можете создать несколько правил сопоставления и удалить правила сопоставления. Для удаления правила сопоставления установите рядом с ним флажок и нажмите на кнопку Удалить.

Вы можете создать несколько операций с контекстными таблицами, изменить порядок операций с контекстными таблицами и удалить операции с контекстными таблицами. Для изменения порядка операций с контекстными таблицами используйте значки изменения порядка DragIcon. Для удаления операции с контекстной таблицей нажмите рядом с ней на значок удаления cross-black.

Вкладка Корреляторы

Эта вкладка отображается только при изменении параметров созданного правила корреляции и используется для привязки корреляторов к правилу корреляции.

Для добавления корреляторов нажмите на кнопку + Добавить, в открывшемся окне укажите один или несколько корреляторов и нажмите на кнопку ОК. Правило корреляции будет привязано к указанным корреляторам и добавлено последним в очередь для выполнения в параметрах корреляторов. Если вы хотите изменить позицию правила корреляции в очереди для выполнения, перейдите в раздел Ресурсы → Коррелятор, нажмите на коррелятор, в открывшемся окне перейдите в раздел Корреляция, установите флажок рядом с правилом корреляции и измените позицию правила корреляции, нажимая на кнопки Поднять и Опустить.

Вы можете добавить несколько корреляторов и удалить корреляторы. Для удаления коррелятора установите рядом с ним флажок и нажмите на кнопку Удалить.

В начало
[Topic 221199]

Правило корреляции, тип operational

Развернуть всё | Свернуть всё

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

Вкладка Общие

Эта вкладка используется для указания основных параметров правила корреляции.

Параметр

Описание

Название

Уникальное имя ресурса. Максимальная длина имени составляет до 128 символов в кодировке Unicode.

Обязательный параметр.

Тенант

Название тенанта, которому принадлежит ресурс.

Обязательный параметр.

Тип

Тип правила корреляции – operational.

Обязательный параметр.

Теги

 

Частота срабатываний

Максимальное количество срабатываний правила корреляции в секунду. Значение по умолчанию: 0.

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

Описание

Описание ресурса. Максимальная длина описания составляет до 4000 символов в кодировке Unicode.

Техники MITRE

Загруженные техники MITRE ATT&CK для анализа состояния покрытия безопасности с помощью матрицы MITRE ATT&CK.

Вкладка Селекторы

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

Параметры, доступные на вкладке Параметры, описаны в таблице ниже.

Параметр

Описание

Фильтр

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

Если вы хотите изменить параметры существующего фильтра, нажмите рядом с ним на значок карандаша edit-pencil.

Как создать фильтр?

Чтобы создать фильтр:

  1. В раскрывающемся списке Фильтр выберите Создать.
  2. Если вы хотите сохранить фильтр в качестве отдельного ресурса, установите флажок Сохранить фильтр. В этом случае вы сможете использовать созданный фильтр в разных сервисах. По умолчанию флажок снят.
  3. Если вы установили флажок Сохранить фильтр, в поле Название введите название для создаваемого ресурса фильтра. Максимальная длина названия: до 128 символов в кодировке Unicode.
  4. В блоке параметров Условия укажите условия, которым должны соответствовать события:
    1. Нажмите на кнопку Добавить условие.
    2. В раскрывающихся списках Левый операнд и Правый операнд укажите параметры поиска. В зависимости от источника данных, выбранного в поле Правый операнд, могут отобразиться поля дополнительных параметров для определения значения, которое будет передано в фильтр. Например, при выборе значения активный лист вам нужно указать название активного листа, ключ записи и поле ключа записи.
    3. В раскрывающемся списке оператор выберите оператор.

      Операторы фильтров

      • = – левый операнд равен правому операнду.
      • < – левый операнд меньше правого операнда.
      • <= – левый операнд меньше или равен правому операнду.
      • > – левый операнд больше правого операнда.
      • >= – левый операнд больше или равен правому операнду.
      • inSubnet – левый операнд (IP-адрес) находится в подсети правого операнда (подсети).
      • contains – левый операнд содержит значения правого операнда.
      • startsWith – левый операнд начинается с одного из значений правого операнда.
      • endsWith – левый операнд заканчивается одним из значений правого операнда.
      • match – левый операнд соответствует регулярному выражению правого операнда. Используются регулярные выражения RE2.
      • hasBit – установлены ли в левом операнде (в строке или числе), биты, позиции которых перечислены в правом операнде (в константе или в списке).

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

        Если проверяемое значение – это строка, то производится попытка перевести ее в целое число и обработать указанным выше способом. Если перевести строку в число невозможно, фильтр возвращает False.

      • hasVulnerability – находится ли в левом операнде актив с уязвимостью и уровнем важности уязвимости, указанными в правом операнде.

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

      • inActiveList – этот оператор имеет только один операнд. Его значения выбираются в поле Ключевые поля и сравниваются с записями активного листа, выбранного в раскрывающемся списке активных листов.
      • inDictionary – присутствует ли в указанном словаре запись, соответствующая ключу, составленному из значений выбранных полей события.
      • inCategory – активу в левом операнде назначена по крайней мере одна из категорий активов правого операнда.
      • inActiveDirectoryGroup – учетная запись Active Directory в левом операнде принадлежит одной из групп Active Directory в правом операнде.
      • TIDetect – этот оператор используется для поиска событий с данными CyberTrace Threat Intelligence (TI). Этот оператор можно использовать только на событиях, прошедших обогащение данными из CyberTrace Threat Intelligence, то есть только в коллекторах на этапе выбора точки назначения и в корреляторах.
      • inContextTable – присутствует ли в указанной контекстной таблице запись.
      • intersect – находятся ли в левом операнде элементы списка, указанные в списке в правом операнде.
    4. Если вы хотите, чтобы оператор игнорировал регистр значений, установите флажок без учета регистра. Действие флажка не распространяется на операторы InSubnet, InActiveList, InCategory, InActiveDirectoryGroup. По умолчанию флажок снят.
    5. Если вы хотите добавить отрицательное условие, в раскрывающемся списке Если выберите Если не.

    Вы можете добавить несколько условий или группу условий.

  5. Если вы добавили несколько условий или групп условий, выберите условие отбора (и, или, не), нажав на кнопку И.
  6. Если вы хотите добавить уже существующие фильтры, которые выбираются в раскрывающемся списке Выберите фильтр, нажмите на кнопку Добавить фильтр. Вы можете просмотреть параметры вложенного фильтра, нажав на кнопку открыть для редактирования..

Фильтрация по данным из поля события Extra

Условия для фильтров по данным из поля события Extra:

  • Условие – Если.
  • Левый операнд – поле события.
  • В поле события вы можете указать одно из следующих значений:
    • Поле Extra.
    • Значение из поля Extra в следующем формате:

      Extra.<название поля>

      Например, Extra.app.

      Вам нужно указать значение вручную.

    • Значение из массива, записанного в поле Extra, в следующем формате:

      Extra.<название поля>.<элемент массива>

      Например, Extra.array.0.

      Нумерация значений в массиве начинается с 0. Вам нужно указать значение вручную. Для работы со значением из поля Extra на глубине 3 и ниже требуется использовать кавычки ``, например `Extra.lev1.lev2.lev3`.

  • Оператор – =.
  • Правый операнд – константа.
  • Значение – значение, по которому требуется фильтровать события.

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

Рассмотрим два примера фильтров селектора, осуществляющих выборку событий успешной аутентификации в Microsoft Windows.

Фильтр селектора 1:

Условие 1 – DeviceProduct = Microsoft Windows.

Условие 2 – DeviceEventClassID =  4624.

Фильтр селектора 2:

Условие 1 – DeviceEventClassID = 4624.

Условие 2 – DeviceProduct = Microsoft Windows.

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

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

Вкладка Действия

Эта вкладка используется для настройки триггера правила корреляции. В правиле корреляции с типом operational может быть только один триггер, который срабатывает каждый раз, когда контейнер регистрирует срабатывание селектора. Доступные параметры триггера описаны в таблице ниже.

Параметр

Описание

Обновление активных листов

Операции с активными листами. Для создания операции с активным листом нажмите на кнопку + Добавить действие с активным листом.

Доступные параметры операции с активным листом:

  • Название – активный лист, с которым выполняется операция. Если вы хотите изменить параметры активного листа, нажмите рядом с ним на значок карандаша edit-pencil.

    Обязательный параметр.

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

    Обязательный параметр.

  • Ключевые поля – поля события, которые используются для создания записи активного листа. Указанные поля событий также используются в качестве ключа записи активного листа.

    Ключ записи активного листа зависит только от состава полей событий и не зависит от порядка их отображения в веб-интерфейсе KUMA.

    Обязательный параметр.

  • Сопоставление – правила сопоставления полей активного листа с полями событий. Вы можете использовать правила сопоставления, если в раскрывающемся списке Операция вы выбрали значение Получить или Установить. Для создания правила сопоставления нажмите на кнопку + Добавить.

    Доступные параметры правила сопоставления:

    • Поле активного листа – поле активного листа, которое сопоставляется с полем события. Поле не должно содержать специальные символы или только цифры.
    • Поле KUMA – поле события, с которым сопоставляется поле активного листа.
    • Константа – константа, которая назначается полю активного листа. Вам нужно указать константу, если в раскрывающемся списке Операция вы выбрали значение Установить.

    Вы можете создать несколько правил сопоставления и удалить правила сопоставления. Для удаления правила сопоставления установите рядом с ним флажок и нажмите на кнопку Удалить.

Вы можете создать несколько операций с активными листами, изменить порядок операций с активными листами и удалить операции с активными листами. Для изменения порядка операций с активными листами используйте значки изменения порядка DragIcon. Для удаления операции с активным листом нажмите рядом с ней на значок удаления cross-black.

Обновление контекстных таблиц

Операции с контекстными таблицами. Для создания операции с контекстной таблицей нажмите на кнопку + Добавить действие с контекстной таблицей.

Доступные параметры операции с контекстной таблицей:

  • Название – контекстная таблица, с которой выполняется операция. Если вы хотите изменить параметры контекстной таблицы, нажмите рядом с ней на значок карандаша edit-pencil.

    Обязательный параметр.

  • Операция – операция, которая выполняется с контекстной таблицей:
    • Сложить – прибавить константу, значение поля корреляционного события или значение локальной переменной к значению указанного поля контекстной таблицы. Операция используется только для полей с типом «Число» и «Число с плавающей точкой».
    • Установить – записать значения указанных полей корреляционного события в контекстную таблицу, создав новую или обновив существующую запись контекстной таблицы. При обновлении записи контекстной таблицы данные объединяются, и только указанные поля перезаписываются.
    • Объединить – дописать значение поля корреляционного события, локальной переменной или константы к существующему значению поля контекстной таблицы.
    • Получить – получить поля контекстной таблицы и записать значения указанных полей в корреляционное событие. Поля таблицы типа булево значение и список булевых значений исключаются из сопоставления, потому что в событии нет полей булева типа.
    • Удалить – удалить запись из контекстной таблицы.

    Обязательный параметр.

  • Сопоставление – правила сопоставления полей контекстной таблицы с полями событий или переменными. Вы можете использовать правила сопоставления, если в раскрывающемся списке Операция вы не выбрали значение Удалить. Для создания правила сопоставления нажмите на кнопку + Добавить.

    Доступные параметры правила сопоставления:

    • Поле контекстной таблицы – поле контекстной таблицы, которое сопоставляется с полем события. Вы не можете указать поле контекстной таблицы, которое уже используется в сопоставлении. Вы можете указать табуляцию, специальные символы или только цифры. Максимальное длина названия поля контекстной таблицы составляет 128 символов. Название поля контекстной таблицы не может начинаться с нижнего подчеркивания.
    • Поле KUMA – поле события или локальная переменная, с которой сопоставляется поле контекстной таблицы.
    • Константа – константа, которая назначается полю контекстной таблицы. Вам нужно указать константу, если в раскрывающемся списке Операция вы выбрали значение Установить, Объединить или Сложить. Максимальное длина константы составляет 1024 символа.

    Вы можете создать несколько правил сопоставления и удалить правила сопоставления. Для удаления правила сопоставления установите рядом с ним флажок и нажмите на кнопку Удалить.

Вы можете создать несколько операций с контекстными таблицами, изменить порядок операций с контекстными таблицами и удалить операции с контекстными таблицами. Для изменения порядка операций с контекстными таблицами используйте значки изменения порядка DragIcon. Для удаления операции с контекстной таблицей нажмите рядом с ней на значок удаления cross-black.

Вкладка Корреляторы

Эта вкладка отображается только при изменении параметров созданного правила корреляции и используется для привязки корреляторов к правилу корреляции.

Для добавления корреляторов нажмите на кнопку + Добавить, в открывшемся окне укажите один или несколько корреляторов и нажмите на кнопку ОК. Правило корреляции будет привязано к указанным корреляторам и добавлено последним в очередь для выполнения в параметрах корреляторов. Если вы хотите изменить позицию правила корреляции в очереди для выполнения, перейдите в раздел Ресурсы → Коррелятор, нажмите на коррелятор, в открывшемся окне перейдите в раздел Корреляция, установите флажок рядом с правилом корреляции и измените позицию правила корреляции, нажимая на кнопки Поднять и Опустить.

Вы можете добавить несколько корреляторов и удалить корреляторы. Для удаления коррелятора установите рядом с ним флажок и нажмите на кнопку Удалить.

В начало
[Topic 221203]

Переменные в корреляторах

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

Область применения переменных:

К переменным можно обращаться так же, как к полям события, предваряя их название символом $.

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

В этом разделе

Локальные переменные в группирующих и уникальных полях

Локальные переменные в селекторе

Локальные переменные в обогащении событий

Локальные переменные в обогащении активных листов

Свойства переменных

Требования к переменным

Функции переменных

Объявление переменных

В начало
[Topic 234114]

Локальные переменные в группирующих и уникальных полях

Вы можете использовать локальные переменных в разделах Группирующие поля и Уникальные поля правил корреляции типа standard. Для использования локальной переменной необходимо перед ее именем указывать символ "$".

Вы можете ознакомиться с примером использования локальных переменных в разделах Группирующие поля и Уникальные поля в правиле, поставляемом в KUMA: R403_Обращение на вредоносные ресурсы с хоста с отключенной защитой или устаревшей антивирусной базой.

В начало
[Topic 260640]

Локальные переменные в селекторе

Чтобы использовать локальную переменную в селекторе:

  1. Добавьте локальную переменную в правило.
  2. В окне Правила корреляции перейдите на вкладку Общие и добавьте созданную локальную переменную в раздел Группирующие поля. Перед именем локальной переменной укажите символ "$".
  3. В окне Правила корреляции перейдите на вкладку Селекторы, выберите существующий фильтр или создайте новый и нажмите на кнопку Добавить условие.
  4. В качестве операнда выберите поле события.
  5. В качестве значения поля события укажите локальную переменную и укажите символ "$" перед именем переменной.
  6. Укажите остальные параметры фильтра.
  7. Нажмите Сохранить.

Вы можете ознакомиться с примером использования локальных переменных в правиле, поставляемом с KUMA: R403_Обращение на вредоносные ресурсы с хоста с отключенной защитой или устаревшей антивирусной базой.

В начало
[Topic 260641]

Локальные переменные в обогащении событий

Вы можете использовать правила корреляции типа standard и simple для обогащения событий с помощью локальных переменных.

Обогащение текстом и числами

Обогащение событий можно выполнять с помощью текста (строк). Для этого могут быть использованы функции, позволяющие модифицировать строки: to_lower, to_upper, str_join, append, prepend, substring, tr, replace, str_join.

Обогащение событий можно выполнять с помощью чисел. Для этого могут быть использованы функции: сложение (оператор "+"), вычитание (оператор "-"), умножение (оператор "*"), деление (оператор "/"), round, ceil, floor, abs, pow.

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

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

Обогащение временных отметок

Обогащение событий можно выполнять с помощью временных отметок (даты и времени). Для этого могут быть использованы функции, позволяющие получать или модифицировать временные метки: now, extract_from_timestamp, parse_timestamp, format_timestamp, truncate_timestamp, time_diff.

Операции с активными списками и таблицами

Вы можете выполнять обогащение событий с помощью локальных переменных и данных, находящихся в активных списках и таблицах.

Для обогащения событий данными из активного списка необходимо воспользоваться функциями active_list, active_list_dyn.

Для обогащения событий данными из таблицы необходимо воспользоваться функциями table_dict, dict.

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

Использование локальной переменной для обогащения событий

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

  1. Добавьте локальную переменную в правило.
  2. В окне Правила корреляции перейдите на вкладку Общие и добавьте созданную локальную переменную в раздел Группирующие поля. Перед именем локальной переменной укажите символ "$".
  3. В окне Правила корреляции перейдите на вкладку Действия и в группе параметров Обогащение в раскрывающемся списке Тип источника данных выберите событие.
  4. В раскрывающемся списке Целевое поле выберите поле события KUMA, в которое необходимо передать значение локальной переменной.
  5. В раскрывающемся списке Исходное поле выберите локальную переменную. Перед именем локальной переменной укажите символ "$".
  6. Укажите остальные параметры правила.
  7. Нажмите Сохранить.
В начало
[Topic 260642]

Локальные переменные в обогащении активных листов

Вы можете использовать локальные переменные для обогащения активных листов.

Чтобы выполнить обогащение активного списка при помощи локальной переменной:

  1. Добавьте локальную переменную в правило.
  2. В окне Правила корреляции перейдите на вкладку Общие и добавьте созданную локальную переменную в раздел Группирующие поля. Перед именем локальной переменной укажите символ "$".
  3. В окне Правила корреляции перейдите на вкладку Действия и в группе параметров Обновление активных листов добавьте локальную переменную в поле Ключевые поля. Перед именем локальной переменной укажите символ "$".
  4. В группе параметров Сопоставление укажите соответствие между полями события и полями активного списка.
  5. Нажмите на кнопку Сохранить.
В начало
[Topic 260644]

Свойства переменных

Локальные и глобальные переменные

Свойства глобальных и локальных переменных различаются.

Глобальные переменные:

  • Глобальные переменные объявляются на уровне коррелятора и действуют только в пределах этого коррелятора.
  • К глобальным переменным коррелятора можно обращаться из всех правил корреляции, которые в нем указаны.
  • В правилах корреляции типа standard одна и та же глобальная переменная в каждом селекторе может принимать разные значения.
  • Невозможно переносить глобальные переменные между разными корреляторами.

Локальные переменные:

  • Локальные переменные объявляются на уровне правила корреляции и действуют только в пределах этого правила.
  • В правилах корреляции типа standard областью действия локальной переменной является только тот селектор, в котором переменная была объявлена.
  • Локальные переменные можно объявлять в любых типах правил корреляции.
  • Невозможно переносить локальные переменные между правилами или селекторами.
  • Локальная переменная не может быть использована в качестве глобальной переменной.

Переменные в разных типах правил корреляции

  • В правилах корреляции типа operational на вкладке Действия можно указывать все доступные или объявленные в этом правиле переменные.
  • В правилах корреляции типа standard на вкладке Действия можно указывать только переменные, указанные в этих правилах на вкладке Общие в поле Группирующие поля.
  • В правилах корреляции типа simple на вкладке Действия можно указывать только переменные, указанные в этих правилах на вкладке Общие в поле Наследуемые поля.

В начало
[Topic 234737]

Требования к переменным

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

Требования к названиям функций:

  • Должно быть уникально в рамках коррелятора.
  • Должно содержать от 1 до 128 символов в кодировке Unicode.
  • Не может начинаться с символа $.
  • Должно быть написано в camelCase или CamelCase.

Особенности указания функций переменных:

  • Последовательность указания параметров имеет значение.
  • Параметры передаются через запятую: ,.
  • Строковые параметры передаются в одинарных кавычках: '.
  • Наименования полей событий и переменные указываются без кавычек.
  • При обращении к переменной как параметру перед ее названием необходимо добавлять символ $.
  • Ставить пробел между параметрами необязательно.
  • Во всех функциях, где в качестве параметров допускается использование переменной, допускается создавать вложенные функции.
В начало
[Topic 234739]

Функции переменных

Операции с активными листами и словарями

Функции "active_list" и "active_list_dyn"

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

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

  1. название активного листа;
  2. выражение, возвращающее название поля активного листа;
  3. одно или несколько выражений, из результатов которых будет составлен ключ.

    Пример использования

    Результат выполнения

    active_list('Test', to_lower('DeviceHostName'), to_lower(DeviceCustomString2), to_lower(DeviceCustomString1))

    Получение значения поля активного листа.

С помощью этих функций из переменной можно обратиться к активному листу общего тенанта. Для этого после названия активного листа необходимо добавить суффикс @Shared (регистр имеет значение). Например, active_list('exampleActiveList@Shared', 'score', SourceAddress,SourceUserName).

Функция "table_dict"

Получение информации о значении в указанном столбце словаря типа таблица.

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

  1. название словаря;
  2. название столбца словаря;
  3. одно или несколько выражений, из результатов которых будет составлен ключ строки словаря.

    Пример использования

    Результат выполнения

    table_dict('exampleTableDict', 'office', SourceUserName)

    Получение данных из словаря exampleTableDict из строки с ключом SourceUserName из столбца office.

    table_dict('exampleTableDict', 'office', SourceAddress, to_lower(SourceUserName))

    Получение данных из словаря exampleTableDict из строки с составным ключом из значения поля SourceAddress и значения поля SourceUserName в нижнем регистре из столбца office.

С помощью этой функции из переменной можно обратиться к словарю общего тенанта. Для этого после названия активного листа необходимо добавить суффикс @Shared (регистр имеет значение). Например, table_dict('exampleTableDict@Shared', 'office', SourceUserName).

Функция "dict"

Получение информации о значении в указанном столбце словаря типа словарь.

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

  1. название словаря;
  2. одно или несколько выражений, из результатов которых будет составлен ключ строки словаря.

    Пример использования

    Результат выполнения

    dict('exampleDictionary', SourceAddress)

    Получение данных из словаря exampleDictionary из строки с ключом SourceAddress.

    dict('exampleDictionary', SourceAddress, to_lower(SourceUserName))

    Получение данных из словаря exampleDictionary из строки с составным ключом из значения поля SourceAddress и значения поля SourceUserName в нижнем регистре.

С помощью этой функции из переменной можно обратиться к словарю общего тенанта. Для этого после названия активного листа необходимо добавить суффикс @Shared (регистр имеет значение). Например, dict('exampleDictionary@Shared', SourceAddress).

Операции с контекстными таблицами

Функция "context_table"

Возвращает значение указанного поля в базовом типе (например, целое число,массив целых чисел).

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

  1. Название контекстной таблицы. Название не должно быть пустым.
  2. Выражение, возвращающее название поля контекстной таблицы.
  3. Выражение, возвращающее название ключевого поля 1 контекстной таблицы.
  4. Выражение, возвращающее значение ключевого поля 1 контекстной таблицы.

Функция должна содержать минимум 4 параметра.

Пример использования

Результат выполнения

context_table('tbl1', 'list_field1', 'key1', 'key1_val')

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

Функция "len"

Возвращает длину строки и массива.

Функция возвращает длину массива, если переданный массив соответствует следующему типу:

  • массив целых чисел;
  • массив чисел с плавающей точкой;
  • массив строк;
  • массив логических типов.

Если передан массив другого типа, данные массива приводятся к строковому типу, и функция возвращает длину полученной строки.

Примеры использования

len(context_table('tbl1', 'list_field1', 'key1', 'key1_val'))

len(DeviceCustomString1)

Функция "distinct_items"

Возвращает список уникальных элементов массива.

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

  • массив целых чисел;
  • массив чисел с плавающей точкой;
  • массив строк;
  • массив логических типов.

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

Примеры использования

distinct_items(context_table('tbl1', 'list_field1', 'key1', 'key1_val'))

distinct_items(DeviceCustomString1)

Функция "sort_items"

Возвращает отсортированный список элементов массива.

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

  1. выражение, возвращающее объект сортировки;
  2. направление сортировки. Возможные значения: asc, desc. Если параметр не указан, значение по умолчанию – asc.

Функция возвращает отсортированный список элементов массива, если переданный массив соответствует следующему типу:

  • массив целых чисел;
  • массив чисел с плавающей точкой;
  • массив строк.

Функция возвращает список элементов массива в исходном порядке, если был передан массив логических типов.

Если передан массив другого типа, данные массива приводятся к строковому типу, и функция возвращает строку отсортированных символов.

Примеры использования

sort_items(context_table('tbl1', 'list_field1', 'key1', 'key1_val'), 'asc')

sort_items(DeviceCustomString1)

Функция "item"

Возвращает элемент массива с указанным индексом или символ строки с указанным индексом, если передан массив целых чисел, чисел с плавающей точкой, строк или булевых значений.

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

  1. выражение, возвращающее объект индексирования;
  2. выражение, возвращающее индекс элемента или символа.

Функция должна содержать минимум 2 параметра.

Функция возвращает элемент массива с указанным индексом или символ строки с указанным индексом,если индекс находится в диапазоне массива и переданный массив соответствует следующему типу:

  • массив целых чисел;
  • массив чисел с плавающей точкой;
  • массив строк;
  • массив логических типов.

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

Примеры использования

item(context_table('tbl1', 'list_field1', 'key1', 'key1_val'), 1)

item(DeviceCustomString1, 0)

Операции со строками

Функция "to_lower"

Перевод символов в строке в нижний регистр. Поддерживается для стандартных полей и полей расширенной схемы событий типа "строка".

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

Примеры использования

to_lower(SourceUserName)

to_lower('SomeText')

to_lower($otherVariable)

Функция "to_upper"

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

Примеры использования

to_upper(SourceUserName)

to_upper('SomeText')

to_upper($otherVariable)

Функция "append"

Добавление символов в конец строки. Поддерживается для стандартных полей и полей расширенной схемы событий типа "строка".

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

  1. исходная строка;
  2. добавляемая строка.

Строки можно передать строкой, названием поля или переменной.

Примеры использования

Результат использования

append(Message, '123')

Строка из поля Message, в конце которой добавлена строка 123.

append($otherVariable, 'text')

Строка из переменной otherVariable, в конце которой добавлена строка text.

append(Message, $otherVariable)

Строка из поля Message, в конце которой добавлена строка из переменной otherVariable.

Функция "prepend"

Добавление символов в начало строки. Поддерживается для стандартных полей и полей расширенной схемы событий типа "строка".

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

  1. исходная строка;
  2. добавляемая строка.

Строки можно передать строкой, названием поля или переменной.

Примеры использования

Результат использования

prepend(Message, '123')

Строка из поля Message, в начало которой добавлена строка 123.

prepend($otherVariable, 'text')

Строка из переменной otherVariable, в начало которой добавлена строка text.

prepend(Message, $otherVariable)

Строка из поля Message, в начало которой добавлена строка из переменной otherVariable.

Функция "substring"

Возвращает подстроку из строки. Поддерживается для стандартных полей и полей расширенной схемы событий типа "строка".

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

  1. исходная строка;
  2. позиция начала подстроки (натуральное число или 0);
  3. (необязательно) позиция конца подстроки.

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

Примеры использования

Результат использования

substring(Message, 2)

Возвращает часть строки из поля Message: от 3 символа до конца.

substring($otherVariable, 2, 5)

Возвращает часть строки из переменной otherVariable: от 3 до 6 символа.

substring(Message, 0, len(Message) - 1)

Возвращает всю строку из поля Message, кроме последнего символа.

Функция "index_of"

Функция "index_of" возвращает байтовое смещение символа или подстроки в строке, расчет индекса начинается с 0. Если в результате работы функции подстрока не была найдена, функция вернет отрицательное значение.

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

Доступны следующие параметры функции:

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

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

  1. Символ или подстрока, позиция которой будет найдена.
  2. Строка, по которой будет осуществлен поиск.

Примеры использования

Результат использования

index_of('@', SourceUserName)

Выполняется поиск символа "@" в поле SourceUserName. Поле SourceUserName содержит строчку "user@example.com".

Результат = 4

Функция возвращает индекс первой позиции искомого символа в строке. Расчет индекса начинается с 0.

index_of('m', SourceUserName)

Выполняется поиск символа "m" в поле SourceUserName. Поле SourceUserName содержит строчку "user@example.com".

Результат = 8

Функция возвращает индекс первой позиции искомого символа в строке. Расчет индекса начинается с 0.

Функция "last_index_of"

Функция "last_index_of" возвращает последнюю позицию символа или подстроки в строке, расчет индекса начинается с 0. Если в результате работы функции подстрока не была найдена, функция вернет значение -9223372036854775808.

Доступны следующие параметры функции:

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

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

  1. Символ или подстрока, позиция которой будет найдена.
  2. Строка, по которой будет осуществлен поиск.

Примеры использования

Результат использования

last_index_of('m', SourceUserName)

Выполняется поиск символа "m" в поле SourceUserName. Поле SourceUserName содержит строчку "user@example.com".

Результат = 15

Функция возвращает индекс последней позиции искомого символа в строке. Расчет индекса начинается с 0.

Функция "tr"

Убирает из начала и конца строки указанные символы. Поддерживается для стандартных полей и полей расширенной схемы событий типа "строка".

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

  1. исходная строка;
  2. (необязательно) строка, которую следует удалить из начала и конца исходной строки.

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

Примеры использования

Результат использования

tr(Message)

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

tr($otherVariable, '_')

Если переменной otherVariable соответствует значение _test_, будет возвращена строка test.

tr(Message, '@example.com')

Если в поле события Message находится строка user@example.com, будет возвращена строка user.

Функция "replace"

Замена в строке всех вхождений последовательности символов А на последовательность символов B. Поддерживается для стандартных полей и полей расширенной схемы событий типа "строка".

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

  1. исходная строка;
  2. строка поиска: последовательность символов, подлежащая замене;
  3. строка замены: последовательность символов, на которую необходимо заменить строку поиска.

Строки можно передать выражением.

Примеры использования

Результат использования

replace(Name, 'UserA', 'UserB')

Возвращается строка из поля события Name, в которой все вхождения UserA заменены на UserB.

replace($otherVariable, ' text ', '_text_')

Возвращается строка из переменной otherVariable, в которой все вхождения ' text ' заменены на '_text_'.

Функция "regexp_replace"

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

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

  1. исходная строка;
  2. строка поиска: регулярное выражение;
  3. строка замены: последовательность символов, на которую необходимо заменить строку поиска, и идентификаторы групп захвата регулярного выражения. Строку можно передать выражением.

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

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

Примеры использования

Результат использования

regexp_replace(SourceAddress, '([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})', 'newIP: $1.$2.$3.10')

Возвращается строка из поля события SourceAddress, в которой перед IP-адресами вставлен текст newIP. Также последние цифры адреса заменены на 10.

Функция "regexp_capture"

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

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

  1. исходная строка;
  2. строка поиска: регулярное выражение.

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

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

Примеры использования

Примеры значений

Результат использования

regexp_capture(Message, '(\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3})')

Message = 'Access from 192.168.1.1 session 1'

Message = 'Access from 45.45.45.45 translated address 192.168.1.1 session 1'

'192.168.1.1'

'45.45.45.45'

Функция "template"

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

  • Внутри строки.
  • После строки. В этом случае необходимо в строке указать переменные типа {{index.<n>}}, где <n> – это индекс переменной после строки. Индекс начинается с 0.

    Примеры использования

    template('А здесь очень пространный текст со значениями полей события rule={{.DeviceCustomString1}} и {{.Name}}, а также значениями локальных переменных {{index.0}} and {{index.1}} and then {{index.2}}', $var1, $var2, $var10)

Операции с метками времени

Функция now

Получение временной метки в формате epoch. Запускается без аргументов.

Примеры использования

now()

Функция "extract_from_timestamp"

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

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

  1. Поле события, имеющего тип timestamp, или переменная.
  2. Обозначение атомарного представления времени. Параметр регистрозависимый.

    Возможные варианты обозначения атомарного времени:

    • y – год в виде числа.
    • M – месяц, числовое обозначение.
    • d – число месяца.
    • wd – день недели: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.
    • h – часы в 24-часовом формате.
    • m – минуты.
    • s – секунды.
  3. (необязательно) Обозначение часового пояса. Если параметр не указан, время высчитывается в формате UTC.

    Примеры использования

    extract_from_timestamp(Timestamp, 'wd')

    extract_from_timestamp(Timestamp, 'h')

    extract_from_timestamp($otherVariable, 'h')

    extract_from_timestamp(Timestamp, 'h', 'Europe/Moscow')

Функция "parse_timestamp"

Представление времени из формата RFC3339 (например, "2022-05-24 00:00:00", "2022-05-24 00:00:00+0300) в формат epoch.

Примеры использования

parse_timestamp(Message)

parse_timestamp($otherVariable)

Функция "format_timestamp"

Представление времени из формата epoch в формат RFC3339.

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

  1. Поле события, имеющего тип timestamp, или переменная.
  2. Обозначение формата времени: RFC3339.
  3. (необязательно) Обозначение часового пояса. Если параметр не указан, время высчитывается в формате UTC.

    Примеры использования

    format_timestamp(Timestamp, 'RFC3339')

    format_timestamp($otherVariable, 'RFC3339')

    format_timestamp(Timestamp, 'RFC3339', 'Europe/Moscow')

Функция "truncate_timestamp"

Округление времени в формате epoch. После округления время возвращается в формате epoch. Время округляется в меньшую сторону.

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

  1. Поле события, имеющего тип timestamp, или переменная.
  2. Параметр округления:
    • 1s – округление до секунд;
    • 1m – округление до минут;
    • 1h – округление до часов;
    • 24h – округление до суток.
  3. (необязательно) Обозначение часового пояса. Если параметр не указан, время высчитывается в формате UTC.

    Примеры использования

    Примеры округляемых значений

    Результат использования

    truncate_timestamp(Timestamp, '1m')

    1654631774175 (7 June 2022 г., 19:56:14.175)

    1654631760000 (7 June 2022 г., 19:56:00)

    truncate_timestamp($otherVariable, '1h')

    1654631774175 (7 June 2022 г., 19:56:14.175)

    1654628400000 (7 June 2022 г., 19:00:00)

    truncate_timestamp(Timestamp, '24h', 'Europe/Moscow')

    1654631774175 (7 June 2022 г., 19:56:14.175)

    1654560000000 (7 June 2022 г., 0:00:00)

Функция "time_diff"

Получение интервала времени между двумя метками времени в формате epoch.

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

  1. Время конца отрезка. Поле события, имеющего тип timestamp, или переменная.
  2. Время начала отрезка. Поле события, имеющего тип timestamp, или переменная.
  3. Представление временного интервала:
    • ms – в миллисекундах;
    • s – в секундах;
    • m – в минутах;
    • h – в часах;
    • d – в днях.

    Примеры использования

    time_diff(EndTime, StartTime, 's')  

    time_diff($otherVariable, Timestamp, 'h')

    time_diff(Timestamp, DeviceReceiptTime, 'd')

Математические операции

Представлены как простейшими математическими операциями, так и функциями.

Простейшие математические операции

Поддерживаются для полей расширенной схемы событий с типом "целое число" и "число с плавающей точкой".

Операции:

  • сложение;
  • вычитание;
  • умножение;
  • деление;
  • деление по модулю.

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

Доступные аргументы:

  • числовые поля события;
  • числовые переменные;
  • вещественные числа.

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

Ограничения использования:

  • деление на ноль возвращает ноль;
  • математические операции между числами и строками возвращают число в неизменном виде. Например, 1 + abc вернет 1;
  • целые числа, полученные в результате операций, возвращаются без точки.

    Примеры использования

    (Type=3; otherVariable=2; Message=text)

    Результат использования

    Type + 1

    4

    $otherVariable - Type

    -1

    2 * 2.5

    5

    2 / 0

    0

    Type * Message

    0

    (Type + 2) * 2

    10

    Type % $otherVariable

    1

Функция "round"

Округление чисел. Поддерживается для полей расширенной схемы событий с типом "целое число" и "число с плавающей точкой".

Доступные аргументы:

  • числовые поля события;
  • числовые переменные;
  • числовые константы.

    Примеры использования

    (DeviceCustomFloatingPoint1=7.75; DeviceCustomFloatingPoint2=7.5 otherVariable=7.2)

    Результат использования

    round(DeviceCustomFloatingPoint1)

    8

    round(DeviceCustomFloatingPoint2)

    8

    round($otherVariable)

    7

Функция "ceil"

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

Доступные аргументы:

  • числовые поля события;
  • числовые переменные;
  • числовые константы.

    Примеры использования

    (DeviceCustomFloatingPoint1=7.15; otherVariable=8.2)

    Результат использования

    ceil(DeviceCustomFloatingPoint1)

    8

    ceil($otherVariable)

    9

Функция "floor"

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

Доступные аргументы:

  • числовые поля события;
  • числовые переменные;
  • числовые константы.

    Примеры использования

    (DeviceCustomFloatingPoint1=7.15; otherVariable=8.2)

    Результат использования

    floor(DeviceCustomFloatingPoint1)

    7

    floor($otherVariable)

    8

Функция "abs"

Получение числа по модулю. Поддерживается для полей расширенной схемы событий с типом "целое число" и "число с плавающей точкой".

Доступные аргументы:

  • числовые поля события;
  • числовые переменные;
  • числовые константы.

    Примеры использования

    (DeviceCustomNumber1=-7; otherVariable=-2)

    Результат использования

    abs(DeviceCustomFloatingPoint1)

    7

    abs($otherVariable)

    2

Функция "pow"

Возведение числа в степень. Поддерживается для полей расширенной схемы событий с типом "целое число" и "число с плавающей точкой".

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

  1. База – вещественные числа.
  2. Степень – натуральные числа или вещественные числа.

Доступные аргументы:

  • числовые поля события;
  • числовые переменные;
  • числовые константы.

    Примеры использования

    pow(DeviceCustomNumber1, DeviceCustomNumber2)

    pow($otherVariable, DeviceCustomNumber1)

Функция "str_join"

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

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

  1. Разделитель. Строка.
  2. Строка 1, строка 2, строка N. Минимум 2 выражения.

    Примеры использования

    Результат использования

    str_join('|', to_lower(Name), to_upper(Name), Name)

    Строка.

Функция "conditional"

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

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

  1. Условие. Строка. Синтаксис аналогичен условиям в SQL Where. В условии можно использовать функции переменных KUMA и ссылаться на другие переменные.
  2. Значение при выполнении условия. Выражение.
  3. Значение при невыполнении условия. Выражение.

Поддерживаемые операторы:

  • AND
  • OR
  • NOT
  • =
  • !=
  • <
  • <=
  • >
  • >=
  • LIKE (передается регулярное выражение RE2, а не SQL-выражение)
  • ILIKE (передается регулярное выражение RE2, а не SQL-выражение)
  • BETWEEN
  • IN
  • IS NULL (проверка на пустое значение, например 0 или пустую строку)

    Примеры использования (значение зависит от аргументов 2 и 3)

    conditional('SourceUserName = \\'root\\' AND DestinationUserName = SourceUserName', 'match', 'no match')

    conditional(`DestinationUserName ILIKE 'svc_.*'`, 'match', 'no match')

    conditional(`DestinationUserName NOT LIKE 'svc_.*'`, 'match', 'no match')

Операции для полей расширенной схемы событий

Для полей расширенной схемы событий типа «строка» поддерживаются следующие виды операций:

  • Функция «len»
  • Функция «to_lower»
  • Функция «to_upper»
  • Функция «append»
  • Функция «prepend»
  • Функция «substring»
  • Функция «tr»
  • Функция «replace»
  • Функция «regexp_replace»
  • Функция «regexp_capture»

Для полей расширенной схемы событий с типом «целое число» или «число с плавающей точкой» поддерживаются следующие виды операций:

  • Простые математические операции:
  • Функция «round»
  • Функция «ceil»
  • Функция «floor»
  • Функция «abs»
  • Функция «pow»
  • Функция «str_join»
  • Функция «conditional»

KUMA поддерживает для полей расширенной схемы событий с типом «массив целых чисел», «массив чисел с плавающей точкой» и «массив строк» следующие виды функций:

  • получение i-го элемента массива. Пример: item(<type>.someStringArray).
  • получение массива значений. Пример: <type>.someStringArray. Вернет ["string1", "string2", "string3"].
  • получение количества элементов в массиве. Пример: len(<type>.someStringArray). Вернет ["string1", "string2"].
  • получение уникальных записей из массива. Пример: distinct_items(<type>.someStringArray).
  • формирование строки с элементами массива в формате TSV. Пример: to_string(<type>.someStringArray).
  • сортировка элементов массива. Пример: sort_items(<type>.someStringArray).

    В примерах вместо <type> необходимо указать тип массива: NA для массива целых чисел, FA для массива чисел с плавающей точкой, SA для массива строк.

Для полей с типом «массив целых чисел» и «массив чисел с плавающей точкой» поддерживаются следующие функции:

  • math_min - возвращает минимальный элемент массива. Пример: math_min(NA.NumberArray), math_min(FA.FloatArray)
  • math_max - возвращает максимальный элемент массива. Пример: math_max(NA.NumberArray), math_max(FA.FloatArray)
  • math_avg - возвращает среднее значение массива. Пример: math_avg(NA.NumberArray), math_avg(FA.FloatArray)
В начало
[Topic 234740]

Объявление переменных

Для объявления переменных их необходимо добавить в коррелятор или правило корреляции.

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

  1. В веб-интерфейсе KUMA в разделе РесурсыКорреляторы выберите набор ресурсов нужного коррелятора.

    Откроется мастер установки коррелятора.

  2. Выберите шаг мастера установки Глобальные переменные.
  3. Нажмите на кнопку Добавить переменную и укажите следующие параметры:
    • В окне Переменная введите название переменной.

      Требования к наименованию переменных

      • Должно быть уникально в рамках коррелятора.
      • Должно содержать от 1 до 128 символов в кодировке Unicode.
      • Не может начинаться с символа $.
      • Должно быть написано в camelCase или CamelCase.
    • В окне Значение введите функцию переменной.

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

      Для вызова списка всех подсказок в поле ввода используйте комбинацию клавиш Ctrl + Space. Для выбора нужной функции из списка используйте клавишу Enter. Для перехода к следующему аргументу в списке аргументов выбранной функции используйте клавишу Tab.

      Описание функций переменных.

    Переменных можно добавить несколько. Добавленные переменные можно изменить или удалить с помощью значка X..

  4. Выберите шаг мастера установки Проверка параметров и нажмите Сохранить.

Глобальная переменная добавлена в коррелятор. К ней можно обращаться, как к полю события, указывая перед названием переменной символ $. Переменная будет использоваться при корреляции после перезапуска сервиса коррелятора.

Чтобы добавить локальную переменную в существующее правило корреляции:

  1. В веб-интерфейсе KUMA в разделе РесурсыПравила корреляции выберите нужное правило корреляции.

    Откроется окно параметров правила корреляции. Параметры правила корреляции можно также открыть из коррелятора, в которое оно было добавлено, перейдя на шаг мастера установки Корреляция.

  2. Откройте вкладку Селекторы.
  3. В селекторе откройте вкладку Локальные переменные, нажмите на кнопку Добавить переменную и укажите следующие параметры:
    • В окне Переменная введите название переменной.

      Требования к наименованию переменных

      • Должно быть уникально в рамках коррелятора.
      • Должно содержать от 1 до 128 символов в кодировке Unicode.
      • Не может начинаться с символа $.
      • Должно быть написано в camelCase или CamelCase.
    • В окне Значение введите функцию переменной.

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

      Для вызова списка всех подсказок в поле ввода используйте комбинацию клавиш Ctrl + Space. Для выбора нужной функции из списка используйте клавишу Enter. Для перехода к следующему аргументу в списке аргументов выбранной функции используйте клавишу Tab.

      Описание функций переменных.

    Переменных можно добавить несколько. Добавленные переменные можно изменить или удалить с помощью значка X..

    Для правил корреляции типа standard повторите этот шаг для каждого селектора, в которым вы хотите объявить переменные.

  4. Нажмите Сохранить.

Локальная переменная добавлена в правило корреляции. К ней можно обращаться, как к полю события, указывая перед названием переменной символ $. Переменная будет использоваться при корреляции после перезапуска сервиса коррелятора.

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

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

В начало
[Topic 234738]

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

В поставку KUMA включены перечисленные в таблице ниже правила корреляции.

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

Название правила корреляции

Описание

[OOTB] KATA alert

Используется для обогащения событий KATA.

[OOTB] Successful Bruteforce

Срабатывает после выявления успешной попытки аутентификации после множества неуспешных попыток аутентификации. Правило работает на основе событий демона sshd.

[OOTB][AD] Account created and deleted within a short period of time

Выявляет факты создания и последующего удаления учётных записей на хостах на базе ОС Microsoft Windows.

[OOTB][AD] An account failed to log on from different hosts

Выявляет множественные неуспешные попытки аутентификации на различных хостах.

[OOTB][AD] Granted TGS without TGT (Golden Ticket)

Выявляет подозрения на атаку типа "Golden Ticket". Правило работает на основе событий ОС Microsoft Windows.

[OOTB][AD][Technical] 4768. TGT Requested

Техническое правило, используется для формирования активного списка – [OOTB][AD] List of requested TGT. EventID 4768. Правило работает на основе событий ОС Microsoft Windows.

[OOTB][AD] Membership of sensitive group was modified

Работает на базе событий ОС Microsoft Windows.

[OOTB][AD] Multiple accounts failed to log on from the same host

Срабатывает после выявления множественных неуспешных попыток аутентификации на одном хосте от имени разных учётных записей.

[OOTB][AD] Possible Kerberoasting attack

Выявляет подозрения на атаки типа "Kerberoasting". Правило работает на основе событий ОС Microsoft Windows.

[OOTB][AD] Successful authentication with the same account on multiple hosts

Выявляет подключения на разные хосты под одной учётной записью. Правило работает на основе событий ОС Microsoft Windows.

[OOTB][AD] The account added and deleted from the group in a short period of time

Выявляет добавление и последующее удаление пользователя из группы. Правило работает на основе событий ОС Microsoft Windows.

[OOTB][Net] Possible port scan

Выявляет подозрения на сканирование порта. Правило работает на основе событий Netflow, Ipfix.

В начало
[Topic 250832]

Техники и тактики MITRE ATT&CK

В KUMA доступны следующие возможности:

  • Обогащение корреляционных событий информацией о техниках и тактиках MITRE ATT&CK.

    Для этого используются поля модели данных события Tactic и Technique. При генерации корреляционного события можно заполнять эти поля соответствующими данными для последующего использования. Например, при получении нового алерта с разметкой по MITRE ATT&CK, вы можете открыть сайт MITRE ATT&CK и ознакомиться с описанием техник и тактик, когда, каким образом и для чего злоумышленники могут использовать эти техники, как их обнаруживать и митигировать риски - все это поможет разработать план реагирования. Также вы можете строить отчеты и панели мониторинга, исходя из того, какие алерты и техники были замечены в инфраструктуре. Если вы используете правила корреляции из пакета SOC_package и хотите настроить обогащение корреляционных событий информацией о техниках и тактиках MITRE ATT&CK, добавьте в корреляторе правила обогащения MITRE, которые входят в поставку SOC_package.

  • Оценка покрытия матрицы MITRE ATT&CK вашими корреляционными правилами.

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

    Если вы хотите оценить покрытие матрицы MITRE ATT&CK вашими корреляционными правилами, выполните следующие шаги:

    1. Скачайте справочник техник из официального репозитория MITRE ATT&CK и импортируйте справочник техник в KUMA.
    2. Привяжите техники MITRE ATT&CK к правилам корреляции.
    3. Экспортируйте правила корреляции в MITRE ATT&CK Navigator.

В результате вы сможете визуально оценить покрытие матрицы MITRE ATT&CK.

В начало
[Topic 272743]