Модель
Модель данных LogmuleGoModule
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| id | string |
Required | Идентификатор макроса |
| created_at | string time |
Required | Дата создания макроса в формате: date-time |
| updated_at | string time |
Required | Дата изменения макроса в формате: date-time |
| name | string |
Required | Название макроса |
| content | string |
Required | Код макроса |
| is_system | boolean |
Required | Флаг: является ли макрос системным |
| logmule_go_rules | Array<LogmuleGoRule> |
Optional | Список правил, использующих данный макрос |
| _relations | object |
Optional | Словарь, описывающий связанные модели через идентификаторы |
| _relations{logmule_go_rules} | Array<string> |
Optional | Список идентификаторов связанных правил |
Модель данных LogmuleGoRule
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| name | string |
Required | Название правила |
| frontend_data | Array<FrontendData> |
Optional | Данные визуального конструктора правила |
| test_data | Array<object> |
Optional | Список событий для тестирования правила (логлайны) |
| settings | Array<SettingRule> |
Required | Список настроек правила |
| active | boolean |
Required | Флаг активности правила |
| reload | boolean |
Required | Флаг перезагрузки правила после обновления |
| finding_id | string |
Required | Идентификатор инцидента |
| description | string |
Required | Описание правила |
| lua | string |
Required | Код правила в формате Lua |
| is_retro | boolean |
Required | Флаг: используется ли правило для ретроспективной корреляции |
| is_system | boolean |
Required | Флаг: системное ли правило |
| stats | object |
Optional | Статистика сработок и ошибок правила |
| stats{result_count} | integer |
Optional | Количество срабатываний правила |
| stats{error_count} | integer |
Optional | Количество ошибок правила |
| is_error | integer |
Required | Количество ошибок |
| running_at | string time |
Required | Дата и время запуска в формате date-time |
FrontendData
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| alert | Object<Alert> |
Required | Щаблон алерта |
| grouper | Object<Grouper> |
Required | Шаблон группера |
| actions | Array<Actions> |
Required | Действия, по результатам сработки правила |
| conditions | Array<Conditions> |
Required | Конструктор условий. Объекты в массиве могут отличаться в зависимости от типа условия: 1. Сравнение (“CompareCondition”). Структура меняется в зависимости от источника данных. - LoglineGetExpression - значение из события; - TableGetExpression, TableCountExpression или TableDefinitionExpression - значение из табличного списка; - ConstExpression - ручной ввод значения 2. Логическое выражение (“LogicalCondition”) |
| version | integer |
Required | Версия схемы конструктора правил |
Alert
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| id | string |
Required | ID шаблона алерта |
| trace_id | string |
Optional | Идентификатор трассировки действия пользователя для аудита |
| name | string |
Required | Название шаблона алерта |
| create_incident | boolean |
Required | Флаг: cоздавать ли инцидент в результате сработки правила |
| assign_to_customer | boolean |
Required | Флаг: назначить ли инцидент пользователю |
| risk_level | number |
Required | Уровень риска. Допустимые значения от 0 до 10. |
| asset_ip | string |
Required | IP-адрес актива |
| asset_hostname | string |
Required | Hostname актива |
| asset_fqdn | string |
Required | FQDN актива |
| asset_mac | string |
Required | MAC-адрес актива |
| first_and_last_logs | boolean |
Required | Флаг: записывать ли в журнал первое и последнее событие |
| trim_logs | integer |
Required | Количество событий для записи в журнал |
| template | string |
Required | Описание шаблона |
| mitre | string |
Optional | Описание техник Mitre. Обычно это идентификаторы техник, используемых киберпреступниками, которые описаны в базе знаний компании Mitre (подробнее см. Techniques - Enterprise | MITRE ATT&CK®) |
Grouper
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| id | string |
Required | ID шаблона группера |
| trace_id | string |
Optional | Идентификатор трассировки действия пользователя для аудита |
| name | string |
Required | Название шаблона группера |
| grouped_by | Array<string> |
Required | Поля для группировки |
| aggregated_by | Array<string> |
Required | Поля для агрегации |
| grouped_time_field | string |
Required | Время события (название поля) |
| grouped_time_type | string |
Required | Формат времени, одно из: “RFC3339Nano”, “RFC3339”, “ANSIC”, “UnixDate”, “RubyDate”, “RFC822”, “RFC822Z”, “RFC850”, “RFC850”, “RFC1123”, “RFC1123Z”, “Stamp”, “StampMilli”, “StampMicro”, “StampNano”, “UnixMilli”, “UnixMicro” |
| detection_windows | integer |
Required | Период группировки |
| detection_windows_unit | string |
Required | Единица измерения периода группировки. Допустимые значения: - ms - s - m - h |
| aggregate_count | integer |
Required | Порог количества событий для срабатывания |
| aggregate_unique | boolean |
Required | Флаг: активировать ли только уникальные события. |
Actions
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| TTL | string |
Optional | Время жизни события (логлайна) в минутах |
| key | object |
Optional | Ключ для действия |
| key{default} | object |
Required | Объект ключа по умолчанию |
| key{default}/type | string |
Optional | Тип ключа. Допустимые значения: - ”type” == “value” - Значение - ”type” == “field” - Поле события |
| key{default}/value | string |
Optional | Значение ключа |
| type | string |
Optional | Тип действия. Допустимые значения: - ”type” == “store-set” - Установка значения в табличном списке; - ”type” == “store-remove” - Удаление записи в табличном списке; - ”type” == “store-truncate” - Очистка табличного списка. |
| store | string |
Optional | Табличный список над которым совершается действие |
| value | string |
Optional | Значение |
| column | string |
Optional | Колонка |
Conditions
Любой из:
Сравнение
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| type | string |
Required | Тип условия |
| id | string |
Required | Идентификатор условия |
| parentId | string |
Optional | Идентификатор родительского условия |
| negation | boolean |
Required | Флаг: включить ли для функции сравнения отрицание |
| compareFn | string |
Optional | Функция сравнения. Допустимые значения:eq, streq, exist, in, substr, search, gt, gte, lt, lte, in_sub, in_pref, in_suf, pref, suf, table_search, table_check_ip, between |
| expressions | Array<Expressions> |
Required | Выражение. Массив может содержать разную структуру объекта, в зависимости от источника данных: - LoglineGetExpression - значение из события - TableGetExpression, TableCountExpression или TableDefinitionExpression - значение из табличного списка - ConstExpression - ручной ввод значения |
Expressions
Один из:
- LoglineGetExpression
- TableGetExpression
- TableCountExpression
- TableDefinitionExpression
- ConstExpression
LoglineGetExpression
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| type | string |
Required | Тип выражения |
| value | string |
Required | Значение |
TableGetExpression
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| type | string |
Required | Тип выражения |
| store | string |
Required | Источник данных (табличный список) |
| column | string |
Required | Колонка |
| key | object |
Required | Ключ |
| key{type} | string |
Required | Тип ключа. Допустимые значения: logline-get, const-string |
| key{value} | string |
Required | Значение ключа |
TableCountExpression
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| type | string |
Required | Тип выражения |
| store | string |
Required | Источник данных (табличный список) |
TableDefinitionExpression
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| type | string |
Required | Тип выражения |
| store | string |
Required | Источник данных (табличный список) |
| column | string |
Required | Колонка |
ConstExpression
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| type | string |
Required | Тип выражения. Допустимые значения:const-string, const-integer, const-double, const-boolean, const-ip, const-cidr, const-date, const-null, const-string-array |
| value | string |
Required | Значение. Параметр “value” принимает значения разных типов, в зависимости от значения “type”: - “type” == “const-string” => “value” == “string" - "type” == “const-integer” => “value” == “string" - "type” == “const-double” => “value” == “string" - "type” == “const-boolean” => “value” == “boolean" - "type” == “const-ip” => “value” == “string" - "type” == “const-cidr” => “value” == “string" - "type” == “const-date” => “value” == “string" - "type” == “const-null” => “value” == “null" - "type” == “const-string-array” => “value” == “array of strings” |
Логическое выражение
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| type | string |
Required | Тип условия |
| id | string |
Required | Идентификатор условия |
| parentId | string |
Optional | Идентификатор родительского условия |
| negation | boolean |
Required | Флаг: включить ли для функции сравнения отрицание |
| operator | string |
Required | Оператор. Допустимые значения: and, or |
SettingRule
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| function_metrics | boolean |
Optional | Флаг: собирать ли дополнительные метрики |
| is_constructor | boolean |
Optional | Флаг: создано ли правило с помощью визуального конструктора |
| max_alerts | integer |
Optional | Максимальное количество сработок |
| max_alerts_per_second | integer |
Optional | Максимальное количество сработок в секунду |
| max_rule_memory_mb | integer |
Optional | Ограничение памяти (Мб) |