Таблицы обогащения
В данном разделе освещается концепция таблиц обогащения в R-Vision SIEM, включая описание их назначения, принципы работы и процесса интеграции в процесс обработки событий. Управление таблицами обогащения происходит в разделе Экспертиза.
О таблицах обогащения
Таблица обогащения в системе R-Vision SIEM представляет собой структурированный набор данных, используемый для дополнения и уточнения информации по событиям безопасности. Они служат для обогащения событий дополнительными данными, не содержащимися непосредственно в событиях, но позволяющими улучшить анализ и интерпретацию событий.
Структура таблиц обогащения включает в себя определения полей и типов данных, которые должны содержаться в каждой записи таблицы. Каждая запись в таблице обогащения может включать такие данные, как идентификаторы устройств, IP-адреса, имена пользователей, географические данные, данные о приложениях и любую другую информацию, которая может быть использована для обогащения событий.
Процесс обогащения событий с использованием таблиц обогащения заключается в сопоставлении данных из событий с записями в таблицах по определенным ключам. Это может быть выполнено автоматически системой во время обработки событий, когда обнаруживается совпадение по ключу, и дополнительные данные из таблицы включаются в информацию о событии.
Таблицы обогащения позволяют выполнить следующие задачи:
-
Дополнение событий информацией, недоступной в исходных данных, для улучшения понимания контекста события.
-
Уточнение и классификация событий на основе дополнительных параметров, содержащихся в таблицах.
-
Повышение точности корреляции событий за счет дополнительных данных для сопоставления.
Для управления таблицами обогащения предусмотрены функции обогащения для получения и добавления записей, а также механизмы для автоматического обновления данных в таблицах с использованием внешних источников.
Работа с таблицей обогащения
Доступные операции над таблицей обогащения:
Создание таблицы обогащения
Чтобы добавить таблицу обогащения:
-
Перейдите в раздел Экспертиза. Система отобразит сведения об имеющихся элементах экспертизы, в том числе их текущий статус (включен/выключен).
-
На панели инструментов нажмите на кнопку Создать и выберите из выпадающего опцию Таблица обогащения. Система отобразит окно создания таблицы обогащения.
При создании элемента экспертизы поля его структуры заполняются значениями по умолчанию. Для быстрой настройки структуры в системе доступны предустановленные примеры. Чтобы заполнить поля элемента экспертизы с помощью примера, нажмите на кнопку Примеры и выберите требуемый пример из выпадающего списка. -
Заполните поля таблицы обогащения, чтобы определить логику ее работы.
Строки, начинающиеся с символа $
($foo
), интерпретируются в VRL-блоках элементов экспертизы как переменные окружения. Чтобы избежать этого, экранируйте такие строки символом$
($$foo
). -
Нажмите на кнопку Опубликовать версию, чтобы сохранить изменения и опубликовать созданную таблицу обогащения. Система отобразит уведомление об успешном создании таблицы обогащения. Новая таблица обогащения отобразится в таблице раздела Экспертиза.
Чтобы таблица обогащения стала доступна в конвейерах событий, ее необходимо включить. Вы можете создать таблицу обогащения без ее публикации (в виде черновика) с помощью кнопки Сохранить черновик. Система отобразит уведомление об успешном создании черновика таблицы. Черновик отобразится в таблице раздела Экспертиза.
Изменение таблицы обогащения
Чтобы изменить таблицу обогащения:
-
Перейдите в раздел Экспертиза. Система отобразит сведения об имеющихся элементах экспертизы, в том числе их текущий статус (включен/выключен).
-
Нажмите на строку таблицы обогащения в списке. Система отобразит в правой части экрана карточку этой таблицы с подробной информацией о ней.
-
Выберите опцию Изменить в выпадающем меню Действия () в верхней части карточки таблицы обогащения. Отобразится окно настроек таблицы.
Вы также можете открыть окно настроек с помощью кнопки в нижней части карточки:
-
Для опубликованной версии: нажмите на кнопку Просмотр в нижней части карточки. Система отобразит окно просмотра настроек элемента экспертизы. Нажмите на кнопку Изменить в правом нижнем углу окна.
-
Для черновика: нажмите на кнопку Изменить в нижней части карточки.
-
-
Внесите требуемые изменения в конфигурацию таблицы обогащения.
-
Нажмите на кнопку Обновить версию. Новая версия таблицы обогащения с измененной конфигурацией будет опубликована.
При публикации новой версии элемента экспертизы требуется увеличить его текущую версию в поле version
.Вы можете сохранить измененную конфигурацию таблицы обогащения без публикации (в виде черновика) с помощью кнопки Сохранить черновик. Конфигурация будет сохранена для дальнейшего редактирования. В этом случае в верхней части карточки таблицы будет отображаться предупреждение о наличии неопубликованных изменений.
Удаление таблицы обогащения
Удаление доступно только для элементов экспертизы с типом создания Пользовательский. |
Удаление недоступно для элементов экспертизы, используемых в других сущностях системы.
Чтобы удалить таблицу обогащения:
-
Перейдите в раздел Экспертиза. Система отобразит сведения об имеющихся элементах экспертизы, в том числе их текущий статус (включен/выключен).
-
Нажмите на строку таблицы обогащения в списке. Система отобразит в правой части экрана карточку этой таблицы с подробной информацией о ней.
-
Выберите опцию Удалить в выпадающем меню Действия () в верхней части карточки таблицы обогащения. Отобразится окно подтверждения удаления таблицы.
-
Нажмите на кнопку Удалить. Система отобразит уведомление об удалении таблицы обогащения, и таблица будет удалена из списка элементов экспертизы.
Вы также можете удалить группу элементов экспертизы. Для этого:
|
Структура таблицы обогащения
Поле | Описание | Тип данных | Обязательное поле |
---|---|---|---|
|
Уникальный идентификатор таблицы обогащения. |
строка |
да |
|
Название таблицы обогащения. Допустимы строчные и прописные буквы латинского алфавита (a–z, A-Z), цифры (0–9), точки (.), подчеркивания (_) и дефис (-) без пробелов. |
строка |
да |
|
Тип элемента. Всегда имеет значение |
строка |
да |
|
Версия таблицы обогащения, представленная в формате Semantic Versioning. |
строка |
да |
|
Имя и контактные данные автора таблицы обогащения. |
строка |
нет |
|
Описание таблицы обогащения, содержащее дополнительную информацию о ее назначении и функциональности. |
строка |
нет |
|
Список тегов, присвоенных таблице обогащения для классификации и быстрого поиска. |
массив строк |
нет |
|
Тип хранилища таблицы обогащения, указывающий на формат ( |
строка |
да |
|
Способ коммуникации с хранилищем таблицы обогащения ( |
строка |
да |
|
Схема, описывающая поля таблицы обогащения и их типы данных. Поддерживаются типы |
объект |
да |
|
Содержимое таблицы для режима |
массив объектов |
условно (требуется только для |
|
Частота обновления данных в минутах для режимов, отличных от |
число |
условно (для |
|
Расположение файла или источника данных. |
строка |
условно (для |
Структура tests
:
Поле | Описание | Тип данных | Обязательное поле |
---|---|---|---|
|
Название теста, которое позволяет уникально идентифицировать его результаты в выводе тестирования. |
строка |
да |
|
Набор тестовых событий, имитирующих входные данные, которые будут обрабатываться правилом. Это позволяет проверить реакцию правила на разнообразные ситуации. |
массив |
да |
|
Блок утверждений на языке VRL, применяемых к результатам обработки тестовых событий правилом. Функции |
строка |
да |
Эта структура позволяет определить тесты для проверки функциональности таблицы обогащения, включая корректность обработки данных и соответствие результатов обогащения заданным условиям.
Составление таблицы обогащения
Управление таблицами обогащения в системе R-Vision SIEM осуществляется в разделе Экспертиза. |
Для создания таблицы обогащения в системе R-Vision SIEM необходимо определить её ключевые элементы структуры. Эти элементы охватывают как метаданные таблицы, так и параметры, определяющие содержание и методы доступа к данным.
-
Определите метаданные таблицы:
-
id
: уникальный идентификатор таблицы обогащения. -
name
: название таблицы обогащения. Допустимы строчные и прописные буквы латинского алфавита (a–z, A-Z), цифры (0–9), точки (.), подчеркивания (_) и дефис (-) без пробелов. -
version
: версия таблицы, следующая стандартам Semantic Versioning. -
type
: тип элемента, указываемый какenrichment_table
. -
author
(опционально): имя и контактные данные автора таблицы. -
description
(опционально): краткое описание назначения и функциональности таблицы. -
tags
(опционально): теги для классификации и поиска таблицы.
-
-
Настройте параметры доступа и структуру данных:
-
kind
: тип хранилища данных (например,table
,maxmind
). -
location
: метод доступа к данным (например,file
,embedded
). -
schema
: схема данных, определяющая структуру и типы полей таблицы. -
content
(дляembedded
): содержимое таблицы, предоставленное непосредственно в конфигурации для встроенного хранения.
-
-
Установите параметры обновления данных (для режимов, отличных от
embedded
):-
update_frequency_min
: частота обновления данных в минутах. -
uri
(дляfile
): расположение файла или источника данных.
-
Поля метаданных
Метаданные служат для идентификации и описания таблицы обогащения в системе. Заполнение метаданных должно производиться в соответствии со следующими указаниями:
-
id
: присвойте уникальный идентификатор таблицы обогащения. Идентификатор должен быть уникальным в пределах системы. -
name
: укажите название таблицы обогащения. Допустимы строчные и прописные буквы латинского алфавита (a–z, A-Z), цифры (0–9), точки (.), подчеркивания (_) и дефис (-) без пробелов. -
version
: определите версию таблицы, следуя принципам Semantic Versioning (например, 1.0.0). -
type
: укажите тип элемента какenrichment_table
. -
author
(опциональное): укажите имя и контактные данные автора таблицы. -
description
(опциональное): предоставьте краткое описание целей и функционала таблицы обогащения. -
tags
(опциональное): добавьте теги для удобства классификации и поиска таблицы в системе.
Поле kind
Поле kind
в таблицах обогащения R-Vision SIEM определяет тип источника данных, используемого для обогащения информации. Это поле позволяет системе определить, каким образом должны быть загружены и обработаны данные, а также какие операции поддерживаются для данного типа таблицы. Важность этого поля заключается в его влиянии на методы доступа к данным и способы их использования в процессе обогащения.
Типы источников данных
-
table
: указывает, что данные для обогащения хранятся в структурированной таблице, которая может быть загружена из файла, получена через API или встроена непосредственно в конфигурацию. -
maxmind
: определяет использование специализированных геолокационных баз данных MaxMind для обогащения данных, например, для определения местоположения по IP-адресу.
Выбор типа источника данных
Выбор между table
и maxmind
зависит от конкретных задач обогащения и доступности данных. Для геолокационного обогащения чаще всего используется тип maxmind
, тогда как для других видов обогащения может быть выбран тип table
.
-
Пример использования поля
kind
:
kind: table
или
kind: maxmind
Выбор типа kind должен соответствовать целям обогащения и типу обрабатываемых данных. Важно учитывать, что выбор типа источника данных влияет на конфигурацию таблицы обогащения и её дальнейшее использование в системе.
|
При планировании использования таблиц обогащения рекомендуется заранее определить требуемый тип источника данных, чтобы обеспечить оптимальную конфигурацию и эффективность процесса обогащения. |
Поле location
Поле location
в таблицах обогащения R-Vision SIEM указывает на метод хранения и доступа к данным таблицы обогащения. Этот параметр критически важен для определения того, как система будет взаимодействовать с данными, включая их загрузку, обновление и использование в процессе обогащения.
Значения поля location
и их описание
-
file
: данные таблицы обогащения располагаются в файле. Система обращается к файлу для чтения данных. Путь к файлу указывается отдельно в конфигурации.
-
embedded
: данные встроены непосредственно в конфигурацию таблицы обогащения. Этот метод подходит для статических данных, которые не требуют регулярных обновлений.
Выбор метода location
Пример:
location: file
или
location: embedded
Поле schema
Поле schema
в таблицах обогащения определяет структуру данных, которая будет использоваться в таблице. Оно задает типы данных для каждого поля в таблице обогащения, обеспечивая корректную обработку и интерпретацию данных при их использовании.
Определите поля данных. Каждое поле в schema
должно иметь указание своего типа данных, что позволяет системе правильно обрабатывать входящие значения.
Доступные типы данных:
-
string
— для текстовой информации, -
bool
— для булевых значений (истина/ложь), -
float
— для чисел с плавающей точкой, -
integer
— для целочисленных значений, -
date
— для дат, -
timestamp
— для меток времени.
Пример:
schema: user_id: integer user_email: string login_time: timestamp is_active: bool
Используйте schema
для точного определения ожидаемых данных. Это включает в себя не только типы полей, но и их назначение. Например, поле user_email
должно содержать адрес электронной почты пользователя, а login_time
— временную метку его последнего входа в систему.
Поле content
Поле content
используется для хранения данных непосредственно в конфигурации таблицы, когда выбран режим location: embedded
. Это поле позволяет интегрировать статические данные в таблицу обогащения без необходимости их загрузки из внешних источников. content
обеспечивает немедленный доступ к данным для обогащения без задержек, связанных с их извлечением или обновлением.
Структура и заполнение поля content
content
является массивом объектов, где каждый объект представляет собой запись данных в таблице. Структура каждого объекта должна соответствовать схеме, определенной в поле schema
.
Пример:
content: - id: 1 name: "Example Name 1" type: "Type1" - id: 2 name: "Example Name 2" type: "Type2"
Использование content требует тщательного планирования структуры данных и их соответствия схеме таблицы. Данные должны быть актуальными и достоверными, поскольку они будут встроены в таблицу без возможности динамического обновления (за исключением ручного изменения конфигурации).
content подходит для данных, которые не изменяются или обновляются редко, таких как списки контрольных значений, статические справочники и прочие.
|
Рекомендации по заполнению
-
Перед включением данных в
content
убедитесь, что они точно соответствуют определенной вschema
структуре. Некорректно структурированные данные могут привести к ошибкам при их обработке. -
Для удобства управления и возможного обновления рассмотрите возможность разделения больших объемов данных на несколько таблиц обогащения, особенно если данные относятся к различным категориям или имеют разное назначение.
Включение данных в content увеличивает независимость от внешних источников и сетевой инфраструктуры, однако требует аккуратности в подготовке и проверке этих данных для обеспечения корректности обогащения.
|
Поле update_frequency_min
Поле update_frequency_min
определяет периодичность обновления данных в таблице обогащения в минутах. Этот параметр актуален для таблиц, метод доступа к данным которых определён как file
в поле location
. Значение поля позволяет настроить частоту, с которой система будет инициировать процесс обновления данных, чтобы поддерживать их актуальность.
Принципы использования
-
Значение
update_frequency_min
должно быть выбрано с учетом баланса между необходимостью актуальности данных и минимизацией нагрузки на системные ресурсы. -
Для данных, подверженных частым изменениям, рекомендуется устанавливать меньшее значение, обеспечивая тем самым их своевременное обновление.
-
Для статических данных, которые изменяются редко, целесообразно выбирать большее значение интервала обновления.
Пример:
update_frequency_min: 30
В данном примере данные в таблице обогащения будут обновляться каждые 30 минут.
Рекомендации по заполнению
-
Оцените частоту изменений в данных источника и потребности бизнес-процессов в актуальной информации при настройке
update_frequency_min
. -
Учитывайте возможности инфраструктуры и избегайте чрезмерной нагрузки на систему, оптимизируя частоту обновлений.
Настройка update_frequency_min для каждой таблицы обогащения отдельно позволяет точнее контролировать актуальность данных в соответствии с их спецификой и обновлениями. Использование разных интервалов обновления дает возможность более гибкого реагирования на потребности в данных, оптимизируя ресурсы и улучшая эффективность обогащения.
|
Поле uri
Поле uri
в таблицах обогащения указывает на расположение файла или источника данных, из которого таблица будет получать обновления. Это поле обязательно для метода доступа file
, поскольку оно определяет, где именно хранятся данные и как они будут извлекаться.
Пример:
http://minio:9000/object-storage/test.csv
Функции обогащения
Функции обогащения используются для поиска и извлечения данных из таблиц обогащения. Эти функции позволяют обогатить события безопасности дополнительной информацией, не содержащейся непосредственно в событиях. Взаимодействие с таблицами обогащения может быть настроено в любом поле, использующем язык VRL.
Для взаимодействия с таблицами обогащения предусмотрены VRL функции поиска значений в таблице обогащения find_enrichment_table_records
и извлечения значения из таблицы обогащения get_enrichment_table_record
.
find_enrichment_table_records(таблица: <строка>, условие: <объект>, [select: <массив>, case_sensitive: <логическое значение>]) :: <массив>
Поиск записей в таблице обогащения, которые соответствуют заданным условиям. Возвращает массив объектов, соответствующих критериям поиска.
get_enrichment_table_record(table: <строка>, condition: <объект>, [select: <массив>, case_sensitive: <логическое значение>]) :: <объект>, <ошибка>
Извлекает единственную запись из таблицы обогащения, точно соответствующую указанным условиям. В случае, если запись не найдена или найдено более одной записи, возвращается ошибка.
Функция | Описание | Возвращаемый тип |
---|---|---|
|
Поиск множества записей в таблице обогащения по заданным критериям. |
Массив объектов |
|
Поиск одной конкретной записи, точно соответствующей условиям поиска. |
Объект или ошибка |
find_enrichment_table_records
:find_enrichment_table_records("geoip", {"ip": .source_ip})
Данная функция ищет записи в таблице обогащения geoip
, соответствующие IP-адресу источника. Возвращает массив объектов, каждый из которых содержит информацию о геолокации по IP-адресу.
get_enrichment_table_record
:get_enrichment_table_record("user_profiles", {"user_id": .user_id})
Функция ищет в таблице обогащения user_profiles
запись, точно соответствующую идентификатору пользователя. Возвращает объект с профилем пользователя или ошибку, если запись не найдена или найдено несколько записей.
on_correlate
:on_correlate: !vrl | let geo_info = find_enrichment_table_records("geoip", {"ip": .source_ip}, select: ["country_name", "city_name"]) if !geo_info.is_empty() { .source_country = geo_info[0].country_name .source_city = geo_info[0].city_name } let threat_info = get_enrichment_table_record("threat_intelligence", {"ip": .source_ip}, select: ["category", "score"]) if !is_null(threat_info) { .threat_category = threat_info.category .threat_score = threat_info.score }
В этом примере:
-
Выполняется поиск геолокационной информации по IP-адресу источника события в таблице
geoip
, и результаты добавляются к событию как.source_country
и.source_city
. -
Затем производится запрос к таблице
threat_intelligence
для извлечения информации о категории угрозы и оценке уровня угрозы, ассоциированных с IP-адресом источника. Эти данные добавляются к событию как.threat_category
и.threat_score
.
Пример таблицы обогащения
# Уникальный идентификатор таблицы обогащения. id: security/ddos_suspicious_patterns # Название таблицы обогащения. name: DDoSSuspiciousPatterns # Тип элемента экспертизы. type: enrichment_table # Версия таблицы. version: 1.0.0 # Описание назначения таблицы. description: Содержит список подозрительных паттернов запросов и IP-адресов, ассоциированных с DDoS атаками. # Имя и контактные данные автора таблицы. author: John Doe <johndoe@rvision.ru> # Теги, связанные с таблицей. tags: - ddos - security # Способ коммуникации с хранилищем таблицы. location: embedded # Тип хранилища таблицы. kind: table # Схема описывает поля таблицы обогащения. schema: ip_address: string pattern: string risk_level: integer # Содержимое таблицы для `embedded` режима. content: - ip_address: "192.168.1.1" pattern: "/api/highload" risk_level: 5 - ip_address: "192.168.100.100" pattern: "/api/highload" risk_level: 5 - ip_address: "172.16.0.2" pattern: "/contact" risk_level: 2 - ip_address: "192.168.100.132" pattern: "/api/highload" risk_level: 5
Интерпретация
Метаданные таблицы обогащения:
-
id
: "security/ddos_suspicious_patterns" – уникальный идентификатор, позволяющий идентифицировать таблицу в системе. -
name
: "DDoSSuspiciousPatterns" – название таблицы, отражающее её предназначение для хранения данных о подозрительных паттернах запросов, связанных с DDoS атаками. -
type
: "enrichment_table" – указывает на тип объекта в системе, подтверждая его принадлежность к таблицам обогащения. -
version
: "1.0.0" – версия таблицы обогащения, следует принципам Semantic Versioning, обеспечивая управление изменениями и совместимостью. -
description
: описывает назначение таблицы, в данном случае содержание списка подозрительных паттернов запросов и IP-адресов, ассоциированных с DDoS атаками. -
author
: "John Doe <johndoe@rvision.ru>" – информация об авторе таблицы, включая контактные данные. -
tags
: ["ddos", "security"] – теги, упрощающие поиск и классификацию таблицы в системе.
Параметры доступа и хранения данных:
-
location: embedded
– указывает на то, что данные таблицы встроены непосредственно в конфигурацию, что упрощает доступ к ним и ускоряет процесс обогащения. -
kind
: "table" – подтверждает, что данные организованы в виде структурированной таблицы, подходящей для поиска и обработки информации.
Структура данных (схема и содержимое):
-
schema
описывает структуру данных в таблице, включая поляip_address
(строка),pattern
(строка) иrisk_level
(целое число), что позволяет систематически хранить информацию о подозрительных IP-адресах, соответствующих паттернах запросов и уровне риска. -
content
содержит конкретные записи данных, например, IP-адреса с ассоциированными с ними паттернами запросов и уровнем риска, демонстрируя реальные примеры данных, используемых для обогащения событий.
Обогащение событий:
-
Когда событие содержит IP-адрес или паттерн запроса, система проверяет наличие соответствующих записей в таблице "DDoSSuspiciousPatterns".
Сопоставление событий с записями в таблице:
-
Для каждого события система ищет записи в таблице, где
ip_address
совпадает с IP-адресом источника события илиpattern
совпадает с паттерном запроса, указанным в событии. -
Если сопоставление успешно, информация о
risk_level
из таблицы добавляется к событию, указывая на уровень риска, связанный с обнаруженным IP-адресом или паттерном запроса.