Шаг 3. Парсинг событий
Развернуть все | Свернуть все
Это обязательный шаг мастера установки. На вкладке мастера установки Парсинг событий следует выбрать или создать нормализатор, в параметрах которого будут определены правила преобразования сырых событий в нормализованные. В нормализатор можно добавить несколько правил парсинга событий, реализуя таким образом сложную логику обработки событий. Вы можете протестировать работу нормализатора, используя тестовые события.
При создании нового нормализатора в мастере установки по умолчанию он будет сохранен в наборе ресурсов для коллектора и не сможет быть использован в других коллекторах. С помощью флажка Сохранить нормализатор вы можете создать нормализатор в виде отдельного ресурса, в таком случае нормализатор будет доступен для выбора в других коллекторах тенанта.
Если вы, меняя параметры набора ресурсов коллектора, измените или удалите преобразования в подключенном к нему нормализаторе, правки не сохранятся, а сам нормализатор может быть поврежден. При необходимости изменить преобразования в нормализаторе, который уже является частью сервиса, вносите правки непосредственно в нормализатор в разделе веб-интерфейса Ресурсы → Нормализаторы.
Добавление нормализатора
Чтобы добавить в набор ресурсов существующий нормализатор:
- Нажмите на кнопку Добавить парсинг событий.
Откроется окно Основной парсинг событий с параметрами нормализатора и активной вкладкой Схема нормализации.
- В раскрывающемся списке Нормализатор выберите нужный нормализатор. В раскрывающемся списке доступны нормализаторы, принадлежащие тенанту коллектора и Общему тенанту.
В окне Основной парсинг событий отобразятся параметры выбранного нормализатора.
Если вы хотите отредактировать параметры нормализатора, в раскрывающемся списке Нормализатор нажмите на значок карандаша рядом с названием нужного нормализатора. Откроется окно Редактирование нормализатора с темным кружком. Если вы нажмете на темный кружок, откроется окно Основной парсинг событий и параметры нормализатора будут доступны для редактирования.
Если вы хотите настроить параметры дополнительного парсинга, наведите курсор на темный кружок и нажмите на появившийся значок плюса, откроется окно Дополнительный парсинг событий. Подробнее о настройке расширенного анализа событий см. инструкцию ниже.
- Нажмите на кнопку ОК.
На вкладке мастера установки Основной парсинг событий отображается нормализатор в виде темного кружка. Можно нажать на кружок, чтобы открыть параметры нормализатора для просмотра.
Чтобы создать в коллекторе новый нормализатор:
- На шаге Парсинг событий на вкладке Схемы парсинга нажмите на кнопку Добавить парсинг событий.
Откроется окно Основной парсинг событий с параметрами нормализатора и активной вкладкой Схема нормализации.
- Если хотите сохранить нормализатор в качестве отдельного ресурса, установите флажок Сохранить нормализатор - таким образом сохраненный нормализатор будет доступен для использования в других коллекторах тенанта. По умолчанию флажок снят.
- Введите в поле Название уникальное имя для нормализатора. Название должно содержать от 1 до 128 символов Юникода.
- В раскрывающемся списке Метод парсинга выберите тип получаемых событий. В зависимости от выбора можно будет воспользоваться преднастроенными правилами сопоставления полей событий или задать свои собственные правила. При выборе некоторых методов парсинга могут стать доступны дополнительные параметры, требующие заполнения.
Доступные методы парсинга:
- json
Этот метод парсинга используется для обработки данных в формате JSON, в которых каждый объект, включая его вложенные объекты, занимает одну строку файла.
При обработке файлов с иерархически выстроенными данными можно обращаться к полям вложенных объектов, поочередно через точку указывая названия параметров. Например, к параметру username
из строки "user":{"username":"system:node:example-01"}
можно обратиться с помощью запроса user.username
.
Файлы обрабатываются построчно. Многострочные объекты с вложенными структурами могут быть нормализованы некорректно.
В сложных схемах нормализации, где используются дополнительные нормализаторы, все вложенные объекты обрабатываются на первом уровне нормализации за исключением случаев, когда условия дополнительной нормализации не заданы и, следовательно, в дополнительный нормализатор передается обрабатываемое событие целиком.
В качестве разделителя строк могут выступать символы \n
и \r\n
. Строки должны быть в кодировке UTF-8.
Если вы хотите передавать сырое событие для дополнительной нормализации, на каждом уровне вложенности в окне Дополнительный парсинг события выберите в раскрывающемся списке Использовать сырое событие значение Да.
- cef
Этот метод парсинга используется для обработки данных в формате CEF.
При выборе этого метода можно воспользоваться преднастроенными правилами преобразования событий в формат KUMA, нажав на кнопку Применить сопоставление по умолчанию.
- regexp
Этот метод парсинга используется для создания собственных правил обработки данных в формате с использованием регулярных выражений.
В поле блока параметров Нормализация добавьте регулярное выражение (синтаксис RE2) с именованными группами захвата. Имя группы и ее значение будут интерпретироваться как поле и значение необработанного события, которое может быть преобразовано в поле события в формате KUMA.
Чтобы добавить правила обработки событий:
- Скопируйте в поле Примеры событий пример данных, которые вы хотите обработать. Это необязательный, но рекомендуемый шаг.
- В поле блока параметров Нормализация добавьте регулярное выражение c именованными группами захвата в синтаксисе RE2, например "(?P<name>regexp)". Регулярное выражение, добавленное в параметр Нормализация, должно полностью совпадать с событием. Также при разработке регулярного выражения рекомендуется использовать специальные символы, обозначающие начало и конец текста: ^, $.
Можно добавить несколько регулярных выражений с помощью кнопки Добавить регулярное выражение. Если нужно удалить регулярное выражение, нажмите на кнопку
.
- Нажмите на кнопку Перенести названия полей в таблицу.
Имена групп захвата отображаются в столбце Поле KUMA таблицы Сопоставление. Теперь вы можете выбрать соответствующее поле KUMA в столбце рядом с каждой группой захвата. Если вы назвали группы захвата в соответствии с форматом CEF, вы можете использовать автоматическое сопоставление CEF, установив флажок Использовать синтаксис CEF для нормализации.
Правила обработки событий добавлены.
- syslog
Этот метод парсинга используется для обработки данных в формате syslog.
При выборе этого метода можно воспользоваться преднастроенными правилами преобразования событий в формат KUMA, нажав на кнопку Применить сопоставление по умолчанию.
- csv
Этот метод парсинга используется для создания собственных правил обработки данных в формате CSV.
При выборе этого метода необходимо в поле Разделитель указать разделитель значений в строке. В качестве разделителя допускается использовать любой однобайтовый символ ASCII.
- kv
Этот метод парсинга используется для обработки данных в формате ключ-значение.
При выборе этого метода необходимо указать значения в следующих обязательных полях:
- Разделитель пар – укажите символ, которые будет служит разделителем пар ключ-значение. Допускается указать любое односимвольное (1 байт) значение при условии, что символ не будет совпадать с разделителем значений.
- Разделитель значений – укажите символ, который будет служить разделителем между ключом и значением. Допускается указать любое односимвольное (1 байт) значение при условии, что символ не будет совпадать с разделителем пар ключ-значение.
- xml
Этот метод парсинга используется для обработки данных в формате XML, в которых каждый объект, включая его вложенные объекты, занимает одну строку файла. Файлы обрабатываются построчно.
Если вы хотите передавать сырое событие для дополнительной нормализации, на каждом уровне вложенности в окне Дополнительный парсинг события выберите в раскрывающемся списке Использовать сырое событие значение Да.
При выборе этого метода в блоке параметров Атрибуты XML можно указать ключевые атрибуты, которые следует извлекать из тегов. Если в структуре XML в одном теге есть атрибуты с разными значениями, можно определить нужное значение, указав ключ к нему в столбце Исходные данные таблицы Сопоставление.
Чтобы добавить ключевые атрибуты XML,
Нажмите на кнопку Добавить поле и в появившемся окне укажите путь к нужному атрибуту.
Можно добавить несколько атрибутов. Атрибуты можно удалить по одному с помощью значка с крестиком или все сразу с помощью кнопки Сбросить.
Если ключевые атрибуты XML не указаны, при сопоставлении полей уникальный путь к значению XML будет представлен последовательностью тегов.
Нумерация тегов
Начиная с версии KUMA 2.1.3 доступна Нумерация тегов. Опция предназначена для выполнения автоматической нумерации тегов в событиях в формате XML, чтобы можно было распарсить событие с одинаковыми тегами или неименованными тегами, такими как <Data>.
В качестве примера мы используем функцию Нумерация тегов для нумерации тегов атрибута EventData события Microsoft Windows PowerShell event ID 800.
Чтобы выполнить парсинг таких событий необходимо:
- Настроить нумерацию тегов.
- Настроить мапинг данных для пронумерованных тегов с полями события KUMA.
KUMA 3.0.x поддерживает одновременное использование параметров XML-атрибутов и Нумерация тегов в одном дополнительном нормализаторе. Если атрибут содержит неименованные теги или одинаковые теги, рекомендуется использовать функцию Нумерация тегов. Если атрибут содержит только именованные теги, используйте Атрибуты XML. Чтобы использовать эту функциональность в дополнительных нормализаторах, вам нужно последовательно включить параметр "Сохранить сырое событие" в каждом дополнительном нормализаторе на пути, по которому событие следует к целевому дополнительному нормализатору, и в самом целевом дополнительном нормализаторе.
В качестве примера использования этой функции вы можете обратиться к нормализатору MicrosoftProducts, параметр "Сохранить сырое событие" включен последовательно в дополнительных нормализаторах "AD FS" и "424".
Чтобы настроить парсинг событий с тегами, содержащими одинаковое название или теги без названия:
- Создайте новый нормализатор или откройте существующий нормализатор для редактирования.
- В окне нормализатора Основной парсинг событий в раскрывающемся списке Метод парсинга выберите значение xml и в поле Нумерация тегов нажмите Добавить поле.
В появившемся поле укажите полный путь к тегу, элементам которого следует присвоить порядковый номер. Например, Event.EventData.Data. Первый номер, который будет присвоен тегу – 0. Если тег пустой, например, <Data />, ему также будет присвоен порядковый номер.
- Чтобы настроить мапинг данных, в группе параметров Сопоставление нажмите Добавить строку и выполните следующие действия:
- В появившейся строке в поле Исходные данные укажите полный путь к тегу и его индекс. Для события Microsoft Windows из примера выше полный путь с индексами будет выглядеть следующим образом:
- Event.EventData.Data.0
- Event.EventData.Data.1
- Event.EventData.Data.2 и так далее
- В раскрывающемся списке Поле KUMA выберите поле в событии KUMA, в которое попадет значение из пронумерованного тега после выполнения парсинга.
- Чтобы сохранить изменения:
- Если вы создали новый нормализатор, нажмите Сохранить.
- Если вы редактировали существующий нормализатор, нажмите Обновить параметры в коллекторе, к которому привязан нормализатор.
Настройка парсинга завершена.
- netflow5
Этот метод парсинга используется для обработки данных в формате NetFlow v5.
При выборе этого метода можно воспользоваться преднастроенными правилами преобразования событий в формат KUMA, нажав на кнопку Применить сопоставление по умолчанию. Если тип netflow5 выбран для основного парсинга, дополнительная нормализация недоступна.
В правилах сопоставления по умолчанию для типа netflow5 тип протокола не указывается в полях событий KUMA. При парсинге данных в формате NetFlow на вкладке нормализатора Обогащение следует создать правило обогащения данных типа constant, добавляющее значение netflow
в целевое поле DeviceProduct
.
- netflow9
Этот метод парсинга используется для обработки данных в формате NetFlow v9.
При выборе этого метода можно воспользоваться преднастроенными правилами преобразования событий в формат KUMA, нажав на кнопку Применить сопоставление по умолчанию. Если тип netflow9 выбран для основного парсинга, дополнительная нормализация недоступна.
В правилах сопоставления по умолчанию для типа netflow9 тип протокола не указывается в полях событий KUMA. При парсинге данных в формате NetFlow на вкладке нормализатора Обогащение следует создать правило обогащения данных типа constant, добавляющее значение netflow
в целевое поле DeviceProduct
.
- sflow5
Этот метод парсинга используется для обработки данных в формате sflow5.
При выборе этого метода можно воспользоваться преднастроенными правилами преобразования событий в формат KUMA, нажав на кнопку Применить сопоставление по умолчанию. Если тип sflow5 выбран для основного парсинга, дополнительная нормализация недоступна.
- ipfix
Этот метод парсинга используется для обработки данных в формате IPFIX.
При выборе этого метода можно воспользоваться преднастроенными правилами преобразования событий в формат KUMA, нажав на кнопку Применить сопоставление по умолчанию. Если тип ipfix выбран для основного парсинга, дополнительная нормализация недоступна.
В правилах сопоставления по умолчанию для типа ipfix тип протокола не указывается в полях событий KUMA. При парсинге данных в формате NetFlow на вкладке нормализатора Обогащение следует создать правило обогащения данных типа constant, добавляющее значение netflow
в целевое поле DeviceProduct
.
- sql – этот метод становится доступным, только при использовании коннектора типа sql
Нормализатор использует этот метод для обработки данных, полученных с помощью выборки из базы данных.
- В раскрывающемся списке Сохранить сырое событие укажите, надо ли сохранять сырое событие во вновь созданном нормализованном событии. Доступные значения:
- Не сохранять – не сохранять сырое событие. Это значение используется по умолчанию.
- При возникновении ошибок – сохранять сырое событие в поле
Raw
нормализованного события, если в процессе парсинга возникли ошибки. Это значение удобно использовать при отладке службы. В этом случае каждый раз, когда у события есть непустое поле Raw
, это означает, что возникла проблема.Если поля с названиями *Address
или *Date*
не соответствуют правилам нормализации, такие поля игнорируются. При этом не возникает ошибка нормализации и значения полей не попадают в поле Raw
нормализованного события, даже если был указан параметр Сохранить сырое событие → При возникновении ошибок.
- Всегда – сохранять сырое событие в поле
Raw
нормализованного события.
- В раскрывающемся списке Сохранить дополнительные поля выберите, требуется ли сохранять поля сырого события в нормализованном событии, если для них не были настроены правила сопоставления (см. ниже). Данные сохраняются в поле события
Extra
. Нормализованные события можно искать и фильтровать по данным, хранящимся в поле Extra
.Фильтрация по данным из поля события Extra
Условия для фильтров по данным из поля события Extra:
- Условие – Если.
- Левый операнд – поле события.
- В поле события вы можете указать одно из следующих значений:
- Поле Extra.
- Значение из поля Extra в следующем формате:
Extra.<название поля>
Например, Extra.app
.
Значение этого типа указывается вручную.
- Значение из массива, записанного в поле Extra, в следующем формате:
Extra.<название поля>.<элемент массива>
Например, Extra.array.0
.
Нумерация значений в массиве начинается с 0.
Значение этого типа указывается вручную.
Чтобы работать со значением из поля Extra на глубине 3 и ниже, следует использовать кавычки ``. Например, `Extra.lev1.lev2.lev3`.
- Оператор – =.
- Правый операнд – константа.
- Значение – значение, по которому требуется фильтровать события.
По умолчанию поля не сохраняются.
- Скопируйте в поле Примеры событий пример данных, которые вы хотите обработать. Это необязательный, но рекомендуемый шаг.
- В таблице Сопоставление настройте сопоставление полей сырого события с полями событий в формате KUMA:
- В столбце Исходные данные укажите название поля сырого события, которое вы хотите преобразовать в поле события KUMA.
Подробнее о формате полей см. в статье Модель данных нормализованного события. Описание сопоставления см. в статье Сопоставление полей предустановленных нормализаторов.
Если рядом с названиями полей в столбце Исходные данные нажать на кнопку
, откроется окно Преобразование, в котором при нажатии на кнопку Добавить преобразование можно создать правила изменения исходных данных перед тем, как они будут записаны в поля событий KUMA.
Доступные преобразования
Преобразования – это изменения, которые можно применить к значению до того, как оно будет записано в поле события. Тип преобразования выбирается в раскрывающемся списке.
Доступные преобразования:
- lower – используется для перевода всех символов значения в нижний регистр
- upper – используется для перевода всех символов значения в верхний регистр
- regexp – используется для преобразования значения с помощью регулярного выражения RE2. Поле, в которое следует добавить регулярное выражение, появляется, когда выбран этот тип преобразования.
- substring – используется для извлечения символов в диапазоне позиций, указанном в полях Начало и Конец. Эти поля появляются, когда выбран данный тип преобразования.
- replace – используется для замены указанной последовательности символов на другую последовательность символов. Когда выбран этот тип преобразования, появляются новые поля:
- Символы на замену – в этом поле вы можете указать последовательность символов, которую следует заменить.
- Чем заменить – в этом поле вы можете указать последовательность символов, которая должна использоваться вместо заменяемой последовательности символов.
- trim – используется для удаления одновременно с начала и с конца значения поля события символов, указанных в поле Символы. Это поле появляется при выборе данного типа преобразования. Например, если для значения
Microsoft-Windows-Sysmon
выполнить преобразование trim со значением Micromon
, то получается значение soft-Windows-Sys
. - append – используется для добавления в конец значения поля события символов, указанных в поле Константа. Это поле появляется при выборе данного типа преобразования.
- prepend – используется для добавления к началу значения поля события символов, указанных в поле Константа. Это поле появляется при выборе данного типа преобразования.
- replace with regexp – используется для замены результатов регулярного выражения RE2 на последовательность символов.
- Выражение – в этом поле вы можете указать регулярное выражение, результаты которого следует заменить.
- Чем заменить – в этом поле вы можете указать последовательность символов, которая должна использоваться вместо заменяемой последовательности символов.
- Конвертация закодированных строк в текст:
- decodeHexString – используется для конвертации HEX-строки в текст.
- decodeBase64String – используется для конвертации Base64-строки в текст.
- decodeBase64URLString – используется для конвертации Base64url-строки в текст.
При конвертации поврежденной строки или при ошибках конвертации в поле события могут быть записаны поврежденные данные.
При обогащении событий, если длина закодированной строки превышает размер поля нормализованного события, такая строка будет обрезана и не будет раскодирована.
Если длина раскодированной строки превышает размер поля события, в которое должно быть помещено раскодированное значение, такая строка будет обрезана до размера этого поля события.
Преобразования при использовании расширенной схемы событий
Возможность использования преобразования зависит от типа используемого поля расширенной схемы событий:
- Для дополнительного поля с типом
Строка
доступны все типы преобразований. - Для полей с типами
Число
, Число с плавающей точкой
доступны следующие виды преобразований: regexp, substring, replace, trim, append, prepend, replaceWithRegexp, decodeHexString, decodeBase64String, decodeBase64URLString. - Для полей с типами
Массив строк
, Массив чисел
и Массив чисел с плавающей точкой
доступны следующие виды преобразований: append, prepend.
В окне Преобразования добавленные правила можно менять местами, перетягивая их за значок
, а также удалять с помощью значка
.
- В столбце Поле KUMA в раскрывающемся списке выберите требуемое поле события KUMA. Поля можно искать, вводя в поле их названия.
Рекомендации для полей столбцов KUMA
Рекомендуется настроить сопоставление для следующих полей KUMA. Иначе вы не сможете просматривать наблюдаемые объекты в деталях алертов и инцидентов.
Рекомендуемые поля KUMA зависят от типов наблюдаемых объектов:
- Для наблюдаемых объектов типа MD5 и SHA256:
- Для наблюдаемых объектов типа URL:
- Для наблюдаемых объектов типа IP-адреса:
- DeviceCustomIPv6Address1
- DeviceCustomIPv6Address2
- DeviceCustomIPv6Address3
- DeviceCustomIPv6Address4
- DestinationTranslatedAddress
- DeviceTranslatedAddress
- DestinationAddress
- DeviceAddress
- SourceTranslatedAddress
- SourceAddress
- Для наблюдаемых объектов типа Доменное имя:
- DestinationDnsDomain
- DeviceDnsDomain
- DeviceNtDomain
- DestinationNtDomain
- SourceDnsDomain
- SourceNtDomain
- Для наблюдаемых объектов типа UserName:
- DestinationUserName
- SourceUserName
- Для наблюдаемых объектов типа HostName:
- DestinationHostName
- DeviceHostName
- SourceHostName
- Если название поля события KUMA, выбранного на предыдущем шаге, начинается с
DeviceCustom*
и Flex*
, в поле Подпись можно добавить уникальную пользовательскую метку.
Новые строки таблицы можно добавлять с помощью кнопки Добавить строку. Строки можно удалять по отдельности с помощью кнопки
или все сразу с помощью кнопки Очистить все.
Чтобы KUMA могла выполнить обогащение событий данными про активы, и данные об активах были доступны в карточке алерта при срабатывании корреляционного правила, в таблице Сопоставление вам необходимо настроить сопоставление полей для адреса устройства и имени устройства в зависимости от назначения актива. Например, сопоставление для SourceAddress и SourceHostName, или DestinationAddress и DestinationHostName. В результате обогащения в карточке события появится поле SourceAssetID или DestinationAssetID и ссылка, по которой можно будет перейти в карточку актива. Также в результате обогащения сведения об активе будут доступны в карточке алерта.
Если вы загрузили данные в поле Примеры событий, в таблице отобразится столбец Примеры с примерами значений, переносимых из поля сырого события в поле события KUMA.
Если размер поля события KUMA оказывается меньше длины помещаемого в него значения, значение обрезается до размера поля события.
- Нажмите на кнопку ОК.
На вкладке мастера установки Парсинг событий отображается нормализатор в виде темного кружка. Если вы хотите открыть параметры нормализатора для просмотра, нажмите на темный кружок. При наведении курсора мыши на кружок отображается знак плюса. Нажмите на значок "плюс", чтобы добавить правила парсинга событий (см. инструкцию ниже).
Обогащение нормализованного события дополнительными данными
В только что созданные нормализованные события можно добавлять дополнительные данные, создавая в нормализаторе правила обогащения. Эти правила хранятся в нормализаторе, в котором они были созданы. Правил обогащения может быть несколько.
Чтобы добавить правила обогащения в нормализатор:
- Выберите основное или дополнительное правило нормализации, а затем в открывшемся окне перейдите на вкладку Обогащение.
- Нажмите на кнопку Добавить обогащение.
Появится блок параметров правила обогащения. Блок параметров можно удалить, нажав на кнопку
.
- В раскрывающемся списке Тип источника выберите тип обогащения. В зависимости от выбранного типа отобразятся дополнительные параметры, которые требуется заполнить.
Доступные типы источников обогащения:
- константа
Этот тип обогащения используется, если в поле события необходимо добавить константу. Параметры этого типа обогащения:
- В поле Константа укажите значение, которое следует добавить в поле события. Значение должно состоять не более чем из 255 символов Юникода. Если оставить это поле пустым, существующее значение поля события будет удалено.
- В раскрывающемся списке Целевое поле выберите поле события KUMA, в которое следует поместить данные.
Если вы используете функции обогащения событий для полей расширенной схемы с типом Строка
, Число
или Число с плавающей точкой
с помощью константы, в поле будет добавлена константа.
Если вы используете функции обогащения событий для полей расширенной схемы с типом Массив строк
, Массив чисел
или Массив чисел с плавающей точкой
с помощью константы, константа будет добавлена к элементам массива.
- dictionary
Этот тип обогащения используется, если в поле события необходимо добавить значение из словаря типа Словарь.
Когда в раскрывающемся списке Название словаря выбран этот тип обогащения, вам нужно выбрать словарь, который предоставит значения. В блоке параметров Ключевые поля вам нужно нажать на кнопку Добавить поле и выбрать поля событий, значения которых будут использоваться для выбора записи словаря.
Если вы используете обогащение событий, у которого в качестве параметра Тип источника данных выбран тип "Словарь", а в параметре Ключевые поля обогащения указано поле-массив, при передаче массива в качестве ключа словаря массив будет сериализован в строку согласно правилам сериализации одного значения в формате TSV.
Пример: В параметре Ключевые поля обогащения используется поле расширенной схемы SA.StringArrayOne. Поле расширенной схемы SA.StringArrayOne, содержит 3 элемента "a", "b" и "c". В качестве ключа в словарь будет передано значение: ['a','b','c'].
Если в параметре Ключевые поля обогащения используется поле-массив расширенной схемы и обычное поле схемы событий, значения полей при обращении в словарь будут разделены символом "|".
Пример: В параметре Ключевые поля обогащения используются два поля: поле расширенной схемы SA.StringArrayOne и поле Code. Поле расширенной схемы SA.StringArrayOne, содержит 3 элемента "a", "b" и "c", строковое поле Code, содержит последовательность символов "myCode". В качестве ключа в словарь будет передано значение: ['a','b','c']|myCode.
- table
Этот тип обогащения используется, если в поле события необходимо добавить значение из словаря типа Таблица.
Когда этот тип обогащения выбран в раскрывающемся списке Название словаря, выберите словарь, который предоставит значения. В группе параметров Ключевые поля нажмите на кнопку Добавить поле и выберите поля событий, значения которых используются для выбора записи словаря.
Также в таблице Сопоставление необходимо настроить, из каких полей словаря и в какие поля события будут передаваться данные:
- В столбце Поле словаря необходимо выбрать поле словаря. Доступные поля зависят от выбранного ресурса словаря.
- В столбце Поле KUMA необходимо выбрать поле события, в которое следует записать значение. Для некоторых выбранных полей (
*custom*
и *flex*
) в столбце Подпись можно задать название для помещаемых в них данных.
Строки в таблицу можно добавлять с помощью кнопки Добавить элемент. Столбцы можно удалить, нажав на кнопку
.
- событие
Этот тип обогащения используется, если в поле события необходимо записать значение другого поля события. Параметры этого типа обогащения:
- В раскрывающемся списке Целевое поле выберите поле события KUMA, в которое следует поместить данные.
- В раскрывающемся списке Исходное поле выберите поле события, значение которого будет записано в целевое поле.
- Если нажать на кнопку
, откроется окно Преобразование, в котором с помощью кнопки Добавить преобразование можно создать правила изменения исходных данных перед тем, как они будут записаны в поля событий KUMA.Доступные преобразования
Преобразования – это изменения, которые можно применить к значению до того, как оно будет записано в поле события. Тип преобразования выбирается в раскрывающемся списке.
Доступные преобразования:
- lower – используется для перевода всех символов значения в нижний регистр
- upper – используется для перевода всех символов значения в верхний регистр
- regexp – используется для преобразования значения с помощью регулярного выражения RE2. Поле, в которое следует добавить регулярное выражение, появляется, когда выбран этот тип преобразования.
- substring – используется для извлечения символов в диапазоне позиций, указанном в полях Начало и Конец. Эти поля появляются, когда выбран данный тип преобразования.
- replace – используется для замены указанной последовательности символов на другую последовательность символов. Когда выбран этот тип преобразования, появляются новые поля:
- Символы на замену – в этом поле вы можете указать последовательность символов, которую следует заменить.
- Чем заменить – в этом поле вы можете указать последовательность символов, которая должна использоваться вместо заменяемой последовательности символов.
- trim – используется для удаления одновременно с начала и с конца значения поля события символов, указанных в поле Символы. Это поле появляется при выборе данного типа преобразования. Например, если для значения
Microsoft-Windows-Sysmon
выполнить преобразование trim со значением Micromon
, то получается значение soft-Windows-Sys
. - append – используется для добавления в конец значения поля события символов, указанных в поле Константа. Это поле появляется при выборе данного типа преобразования.
- prepend – используется для добавления к началу значения поля события символов, указанных в поле Константа. Это поле появляется при выборе данного типа преобразования.
- replace with regexp – используется для замены результатов регулярного выражения 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. В результате выполнения операции в поле SA.StringArrayTwo будут находиться значения "string1", "string2", "string3".
- шаблон
Этот тип обогащения используется, если в поле события необходимо записать значение, полученное при обработке шаблонов Go. Параметры этого типа обогащения:
- В поле Шаблон поместите шаблон Go.
Имена полей событий передаются в формате {{.EventField}}
, где EventField
– это название поля события, значение которого должно быть передано в скрипт.
Пример: Атака на {{.DestinationAddress}} со стороны {{.SourceAddress}}
.
- В раскрывающемся списке Целевое поле выберите поле события KUMA, в которое следует поместить данные.
Чтобы преобразовать данные в поле массива в шаблоне в формат TSV, вам нужно использовать функцию toString.
Если вы используете обогащения событий, у которого в качестве параметра Тип источника данных выбран тип Шаблон, в котором целевым полем является поле с типом Строка
, а исходным полем является поле расширенной схемы событий, содержащее массив строк, в шаблоне может быть использован один из примеров, приведенных далее.
Пример:
{{.SA.StringArrayOne}}
Пример:
{{- range $index, $element := . SA.StringArrayOne -}}
{{- if $index}}, {{end}}"{{$element}}"{{- end -}}
- В раскрывающемся списке Целевое поле выберите поле события KUMA, в которое следует поместить данные.
Этот параметр недоступен для типа источника обогащения таблица.
- Если вы хотите включить детализацию в журнале нормализатора, переведите переключатель Отладка в активное положение. По умолчанию детализация отключена.
- Нажмите на кнопку ОК.
В нормализатор, в выбранное правило парсинга, добавлены правила обогащения событий дополнительными данными.
Настройка парсинга с привязкой к IP-адресам
Вы можете направить события с нескольких IP-адресов, от источников разных типов в один коллектор, и коллектор применит соответствующие заданные нормализаторы.
Такой способ доступен для коллекторов с коннектором типа UDP, TCP, HTTP. Если в коллекторе на шаге Транспорт указан коннектор UDP, TCP, HTTP, на шаге Парсинг событий на вкладке Настройки парсинга вы можете задать несколько IP-адресов и указать, какой нормализатор следует использовать для событий, поступающих с заданных адресов. Доступны следующие типы нормализаторов: json, cef, regexp, syslog, csv, kv, xml.
Если в коллекторе с настроенными нормализаторами с привязкой к IP-адресам вы измените тип коннектора на какой-либо, кроме UDP, TCP, HTTP, вкладка Настройки парсинга исчезнет и на шаге Парсинг будет указан только первый нормализатор из указанных прежде. Вкладка исчезает в веб-интерфейсе сразу, изменения будут применены после сохранения ресурса. Если вы хотите вернуться к прежним параметрам, выйдите из мастера установки коллектора без сохранения.
Для нормализаторов типа Syslog и regexp допускается использование цепочки нормализаторов: вы можете задать дополнительные условия нормализации в зависимости от значения поля DeviceProcessName. Отличие от дополнительной нормализации: вы можете указывать общедоступные нормализаторы.
Чтобы настроить парсинг с привязкой к IP-адресам:
- На шаге Парсинг событий перейдите на вкладку Настройки парсинга.
- В поле IP-адрес(-а) укажите один или несколько IP-адресов, с которых будут поступать события. Вы можете указать несколько IP-адресов через запятую. Доступный формат: IPv4. Длина списка адресов не ограничена, при этом рекомендуется указывать разумное количество адресов для соблюдения баланса нагрузки на коллектор. Поле обязательно для заполнения, если вы хотите применять несколько нормализаторов в одном коллекторе.
Ограничение: IP-адрес должен быть уникальным для каждой комбинации IP + нормализатор. KUMA выполняет проверку уникальности адресов. Если вы укажете один и тот же IP-адрес для разных нормализаторов, отобразится сообщение "Поле должно быть уникальным".
Если вы планируете отправлять все события в один нормализатор без указания IP-адресов, рекомендуется создать отдельный коллектор. Также рекомендуется создать отдельный коллектор с одним нормализатором, если вы хотите применить один нормализатор к событиям с большого количества IP-адресов - в таком варианте производительность будет выше.
- В поле Нормализатор создайте или выберите в раскрывающемся списке существующий нормализатор. Стрелка рядом с раскрывающимся списком позволяет выполнить переход на вкладку Схемы парсинга.
Нормализация будет срабатывать если у вас настроен тип коннектора: UDP, TCP, HTTP, при этом для HTTP должен быть указан header источника событий.
С учетом доступных коннекторов, следующие типы нормализатора доступны для автоматического распознавания источников: json, cef, regexp, syslog, csv, kv, xml.
- Если вы выбрали тип нормализатора Syslog или regexp, вы можете Добавить условную нормализацию. Условная нормализация будет доступна, если в основном нормализаторе настроено Сопоставление полей для DeviceProcessName. В группе параметров Условие укажите имя процесса в поле DeviceProcessName и создайте или выберите из раскрывающегося списка существующий нормализатор. Вы можете указать несколько комбинаций DeviceProcessName + нормализатор, нормализация будет выполняться до первого совпадения.
Настройка парсинга с привязкой к IP-адресам выполнена.
Создание структуры правил нормализации событий
Для реализации сложной логики обработки событий в нормализатор можно добавить более одного правила парсинга событий. События передаются между правилами парсинга в зависимости от заданных условий. Последовательность создания правил парсинга важна. Событие обрабатывается последовательно, путь к нему отображается стрелками.
Чтобы создать дополнительное правило парсинга:
- Создайте нормализатор (см. инструкцию выше).
Созданный нормализатор отобразится в окне в виде темного кружка.
- Наведите указатель мыши на кружок и нажмите на появившуюся кнопку со значком плюса.
- В открывшемся окне Дополнительный парсинг события задайте параметры дополнительного правила парсинга события:
- Вкладка Условия дополнительной нормализации:
Если вы хотите передавать сырое событие для дополнительной нормализации, в раскрывающемся списке Использовать сырое событие выберите значение Да. По умолчанию указано значение Нет. Рекомендуется передавать сырое событие в нормализаторы типа json и xml. Если вы хотите передавать сырое событие для дополнительной нормализации на второй, третий и далее уровень вложенности, последовательно на каждом уровне вложенности в раскрывающемся списке Использовать сырое событие выберите значение Да.
Если вы хотите отправлять в дополнительный нормализатор только события с определенным полем, укажите его в поле Поле, которое следует передать в нормализатор.
На этой вкладке вы также можете определить другие условия. При выполнении этих условий событие отправляется на дополнительный анализ.
- Вкладка Схема нормализации:
На этой вкладке можно настроить правила обработки событий, по аналогии с параметрами основного нормализатора (см. инструкцию выше). Параметр Сохранить сырое событие недоступен. В поле Примеры событий отображаются значения, указанные при создании начального нормализатора.
- Вкладка Обогащение:
На этой вкладке можно настроить правила обогащения событий (см. инструкцию выше).
- Нажмите на кнопку ОК.
Дополнительное правило парсинга добавлено в нормализатор и отображается в виде темного блока, на котором указаны условия, при котором это правило будет задействовано. Параметры дополнительного правила парсинга можно изменить, нажав на него. Если навести курсор мыши на правило дополнительного парсинга, отобразится кнопка с плюсом. Вы можете нажать на эту кнопку, чтобы создать дополнительное правило парсинга. С помощью кнопки со значком корзины нормализатор можно удалить.
В верхнем правом углу окна располагается окно поиска, где можно искать правила парсинга по названию.
Перейдите к следующему шагу мастера установки.
В начало