Правила корреляции типа standard
Правила корреляции типа standard используются для определения сложных закономерностей в обрабатываемых событиях.
Поиск закономерностей происходит с помощью контейнеров
Контейнеры правила корреляции – это временные хранилища данных, которые используются ресурсами правила корреляции при определении необходимости создания корреляционных событий. Эти контейнеры выполняет следующие функции:
- Группируют события, которые были отобраны фильтрами в группе настроек Селекторы ресурса правила корреляции. События группируются по полям, которые указываются пользователем в поле Группирующие поля.
- Определяют момент, когда должно сработать правило корреляции, меняя соответствующим образом события, сгруппированные в контейнере.
- Выполняют действия, указанные в группе настроек Действия.
- Создают корреляционные события.
Доступные состояния контейнера:
Пусто
– в контейнере нет событий. Это может произойти только в момент своего создания при срабатывании правила корреляции.Частичное совпадение
– в контейнере есть некоторые из ожидаемых событий (события восстановления не учитываются).Полное совпадение
– в корзине есть все ожидаемые события (события восстановления не учитываются). При достижении этого состояния:- Срабатывает правило корреляции
- События удаляются из контейнера
- Счетчик срабатываний контейнера обновляется
- Контейнера переводится в состояние
Пусто
Ложное совпадение
– такое состояние контейнера возможно в следующих случаях:- когда было достигнуто состояние
Полное совпадение
, но объединяющий фильтр возвратил значение false. - когда при установленном флажке Обнуление были получены события восстановления.
Когда это условие достигается, правило корреляции не срабатывает. События удаляются из контейнера, счетчик срабатываний обновляется, контейнер переводится в состояния Пусто
.
Окно правила корреляции содержит следующие вкладки:
- Общие – используется для указания основных параметров правила корреляции. На этой закладке можно выбрать тип правила корреляции.
- Селекторы – используется для определения условий, которым должны удовлетворять обрабатываемые события для срабатывания правила корреляции. Доступные параметры зависят от выбранного типа правил.
- Действия – используется для установки триггеров, срабатывающих при выполнении условий, заданных в группе настроек Селекторы. У ресурса правила корреляции должен быть хотя бы один триггер. Доступные параметры зависят от выбранного типа правил.
- Корреляторы - используется для привязки корреляторов. Доступна только для созданных правил корреляции, открытых на редактирование.
Вкладка Общие
- Название (обязательно) – уникальное имя для этого типа ресурса. Должно содержать от 1 до 128 символов в кодировке Unicode.
- Тенант (обязательно) – тенант, которому принадлежит правило корреляции.
- Тип (обязательно) – раскрывающийся список для выбора типа правила корреляции. Выберите standard, если хотите создать правило корреляции типа standard.
- Группирующие поля (обязательно) – поля событий, которые должны быть сгруппированы в контейнере. Хеш-код значений выбранных полей используется в качестве ключа контейнера. Если срабатывает селектор (см. ниже), отобранные поля копируются в корреляционное событие.
Если в разных селекторах корреляционного правила используются поля, которые имеют разные значения в событиях, эти поля не нужно указывать в разделе Группирующие поля.
- Уникальные поля – поля событий, которые должны быть отправлены в контейнер. Если задан этот параметр, в контейнер будут отправляться только уникальные поля. Хеш-код значений отобранных полей используется в качестве ключа контейнера.
Вы можете использовать локальные переменные в разделах Группирующие поля и Уникальные поля. Для обращения к переменной необходимо перед ее именем указать символ "$".
Для ознакомления с примерами использования локальных переменных в этих разделах используйте правило, поставляемое с KUMA: R403_Обращение на вредоносные ресурсы с хоста с отключенной защитой или устаревшей антивирусной базой.
- Частота срабатываний – максимальное количество срабатываний правила корреляции в секунду. Значение по умолчанию: 100.
Если правила корреляции, в которых реализована сложная логика обнаружения закономерностей, не срабатывают, причиной могут быть особенности подсчета срабатываний правила в KUMA. Попробуйте увеличить значение Частота срабатываний, например, до 1000000
.
- Время жизни контейнера, сек. (обязательно) – время жизни контейнера в секундах. Значение по умолчанию: 86400 секунд (24 часа). Этот таймер запускается при создании контейнера (когда он получает первое событие). Время жизни не обновляется, и когда оно истекает, срабатывает триггер По истечении времени жизни контейнера из группы настроек Действия, а контейнер удаляется. Триггеры На каждом срабатывании правила и На последующих срабатываниях правила могут срабатывать более одного раза в течение времени жизни контейнера.
- Политика хранения базовых событий – этот раскрывающийся список используется, чтобы определить, какие базовые события должны быть сохранены в корреляционном событии:
- first (значение по умолчанию) – поместить в корреляционное событие первое базовое событие из коллекции событий, инициировавшей создание корреляционного события.
- last – поместить в корреляционное событие последнее базовое событие из коллекции событий, инициировавшей создание корреляционного события.
- all – поместить в корреляционное событие все базовые события из коллекции событий, инициировавшей создание корреляционного события.
- Уровень важности – базовый коэффициент, используемый для определения уровня важности правила корреляции. Значение по умолчанию: Низкий.
- Сортировать по – в этом раскрывающемся списке можно выбрать поле события, по которому селекторы правила корреляции будут отслеживать изменение ситуации. Это может пригодиться, если, например, вы захотите настроить правило корреляции на срабатывание при последовательном возникновении нескольких типов событий.
- Описание – описание ресурса. До 4000 символов в кодировке Unicode.
Вкладка Селекторы
В правиле типа standard может быть несколько селекторов. Селекторы можно добавлять с помощью кнопки Добавить селектор и удалять с помощью кнопки Удалить селектор. Селекторы можно перемещать с помощью кнопки .
Для каждого селектора доступны две вкладки Параметры и Локальные переменные.
Вкладка Параметры содержит следующие параметры:
- Название (обязательно) – уникальное имя группы событий, удовлетворяющих условиям селектора. Должно содержать от 1 до 128 символов в кодировке Unicode.
- Порог срабатывания селектора (количество событий) (обязательно) – количество событий, которое необходимо получить для срабатывания селектора. Значение по умолчанию: 1.
- Фильтр (обязательно) – используется для установки критериев определения событий, из-за которых будет срабатывать селектор. В раскрывающемся списке можно выбрать существующий фильтр или Создать новый фильтр.
Создание фильтра в ресурсах
- В раскрывающемся списке Фильтр выберите Создать.
- Если вы хотите сохранить фильтр в качестве отдельного ресурса, установите флажок Сохранить фильтр.
В этом случае вы сможете использовать созданный фильтр в разных сервисах.
По умолчанию флажок снят.
- Если вы установили флажок Сохранить фильтр, в поле Название введите название для создаваемого ресурса фильтра. Название должно содержать от 1 до 128 символов в кодировке Unicode.
- В блоке параметров Условия задайте условия, которым должны соответствовать события:
- Нажмите на кнопку Добавить условие.
- В раскрывающихся списках Левый операнд и Правый операнд укажите параметры поиска.
В зависимости от источника данных, выбранного в поле Правый операнд, могут отобразиться поля дополнительных параметров, с помощью которых вам нужно определить значение, которое будет передано в фильтр. Например, при выборе варианта активный лист потребуется указать название активного листа, ключ записи и поле ключа записи.
- В раскрывающемся списке оператор выберите нужный вам оператор.
Операторы фильтров
- = – левый операнд равен правому операнду.
- < – левый операнд меньше правого операнда.
- <= – левый операнд меньше или равен правому операнду.
- > – левый операнд больше правого операнда.
- >= – левый операнд больше или равен правому операнду.
- 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 – находятся ли в левом операнде элементы списка, указанные в списке в правом операнде.
- При необходимости установите флажок без учета регистра. В этом случае оператор игнорирует регистр значений.
Действие флажка не распространяется на операторы InSubnet, InActiveList, InCategory, InActiveDirectoryGroup.
По умолчанию флажок снят.
- Если вы хотите добавить отрицательное условие, в раскрывающемся списке Если выберите Если не.
- Вы можете добавить несколько условий или группу условий.
- Если вы добавили несколько условий или групп условий, выберите условие отбора (и, или, не), нажав на кнопку И.
- Если вы хотите добавить уже существующие фильтры, которые выбираются в раскрывающемся списке Выберите фильтр, нажмите на кнопку Добавить фильтр.
Параметры вложенного фильтра можно просмотреть, нажав на кнопку .
Фильтрация по данным из поля события 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_Подозрительное создание файлов в директории автозапуска.
Вкладка Действия
В правиле типа standard может быть несколько триггеров.
- На первом срабатывании правила – этот триггер срабатывает, когда контейнер регистрирует первое в течение срока своей жизни срабатывание селектора.
- На последующих срабатываниях правила – этот триггер срабатывает, когда контейнер регистрирует в течение срока своей жизни второе и последующие срабатывания селектора.
- На каждом срабатывании правила – этот триггер срабатывает каждый раз, когда контейнер регистрирует срабатывание селектора.
- По истечении времени жизни контейнера – этот триггер срабатывает по истечении времени жизни контейнера и используется в связке с селектором с установленным флажком Обнуление. То есть триггер срабатывает, если в течение заданного времени ситуация, обнаруженная правилом корреляции, не разрешается.
Каждый триггер представлен в виде группы настроек со следующими доступными параметрами:
Вкладка Корреляторы
- Добавить – используется при редактировании созданного корреляционного правила. С помощью кнопки Добавить вы можете выбрать коррелятор из списка в открывшемся окне Корреляторы. После того как вы нажмете ОК, правило будет привязано к выбранному коррелятору. Вы можете выбрать одновременно несколько корреляторов. Правило будет добавлено последним в очередь для выполнения. Если вы хотите поднять правило в очереди выполнения, перейдите в Ресурсы - Коррелятор - <выбранный коррелятор> - Редактирование коррелятора - Корреляция, установите флажок рядом с нужным правилом и воспользуйтесь кнопками Поднять или Опустить, чтобы установить желаемый порядок выполнения правил.
- Удалить – используется, чтобы отвязать корреляционное правило от коррелятора.
В начало