Хронология
Вычисляет информацию о характерном, исторически сложившемся, поведении объекта в определенный промежуток времени. Используется для обнаружения аномалий, таких как:
- данное время входа необычно для пользователя
- данное время подключения необычно для пользователя
Описание алгоритма
- К данным индексов источников применяется общий и временной фильтры
- Каждая запись данных приводится к общему виду согласно настройкам обрабатываемых полей
- Данные разбиваются по уникальным сочетаниям значений обрабатываемых полей
- Каждая часть данных полученная на шаге 3 разбивается на сегменты в рамках периода расчета, каждому сегменту назначается идентификатор.
- Для каждого сегмента считается количество событий.
- По всем сегментам с одним идентификатором считается статистика.
Входные параметры
- Фильтр - общий фильтр источников (используются выражения из команды search)
- Индекс для результатов - индекс в который записываются результаты выполнения
- Обрабатываемые поля - маппинг полей источников на поля результата
- Период расчета - основной временной диапазон, в котором будут рассматриваться определенные сегменты
- Сегмент - сегмент временного интервала, в течении которого будет произведен расчет метрик
Примеры заполнения периода расчетов и сегмента:примечание
Период расчетов
рекомендуется задавать кратнымСегменту
. Чтобы избежать не полных сегментов на границах периода расчетов.1y
год,1M
месяц,1d
день,1H
час,1m
минута,1s
секунда - Пропускать интервалы без данных - пустые интервалы не учитываются в расчете статистики
Настройка обрабатываемого поля
- Название - название поля в индексе с результатами
- Шаблон индекса / Название поля в источнике - список шаблонов индексов и соответствующих полей в них, которые будут извлекаться в результат
Входные данные
Входные данные определяются индексами и временным интервалом в общих настройках.
Выходные данные
В результате выполнения алгоритма в индексе результатов появляется несколько записей. Каждая запись содержит статистику по одному из сегментов по всем периодам расчетов.
_meta.calculation.id
- идентификатор настройки алгоритма в политике профилирования_meta.calculation.type
- тип алгоритма_meta.calculation.start_time
- левая граница временного фильтра источников данных на момент запуска_meta.calculation.end_time
- правая граница временного фильтра источников данных на момент запуска_meta.execution.start_time
- время запуска политики профилирования_meta.execution.id
- идентификатор запуска политики профилирования_meta.object.identity
- массив идентификаторов UBA объекта_meta.object.id
- технический идентификатор UBA объекта_calculation.extended_stats
- расширенная статистика по всем интервалам_calculation.percentiles
- процентиль по всем интервалам_calculation.big_span
- величина периода расчета_calculation.small_span
- величина сегмента в периоде расчета_calculation.small_span_id
- идентификатор сегмента в периоде расчета_calculation.by_fields
- сочетание значений обрабатываемых полей для которых рассчитана статистика
Пример json-объекта результата
{
"_index": "uba-temporal-event-code-by-host-10m-per-hour",
"_id": "lwCOmY4BcdU8iNUUPAhd",
"_score": 4.820416,
"_source": {
"_meta": {
"calculation": {
"start_time": "2024-03-25T12:06:58.400Z",
"end_time": "2024-04-01T12:06:58.400Z",
"id": "ETf5gI4B6hVcVe8zFzxS",
"type": "temporal"
},
"execution": {
"start_time": "2024-04-01T12:06:58.380Z",
"id": "kQCOmY4BcdU8iNUUOAhM"
},
"object": {
"identity": [
"ACME-001"
],
"id": "ecac9328ce53b5405729ff983dff22a6adde6ab4"
}
},
"_calculation": {
"extended_stats": {
"count": 169,
"min": 0,
"max": 1,
"avg": 0.04142011834319527,
"sum": 7,
"sum_of_squares": 7,
"variance": 0.03970449213963097,
"variance_population": 0.03970449213963097,
"variance_sampling": 0.03994082840236687,
"std_deviation": 0.19925986083411523,
"std_deviation_population": 0.19925986083411523,
"std_deviation_sampling": 0.19985201625794738,
"std_deviation_bounds": {
"upper": 0.4399398400114257,
"lower": -0.3570996033250352,
"upper_population": 0.4399398400114257,
"lower_population": -0.3570996033250352,
"upper_sampling": 0.44112415085909,
"lower_sampling": -0.3582839141726995
}
},
"percentiles": {
"values": {
"1.0": 0,
"5.0": 0,
"25.0": 0,
"50.0": 0,
"75.0": 0,
"95.0": 0,
"99.0": 1
}
},
"small_span": "10m",
"big_span": "1h",
"small_span_id": "4",
"by_fields": {
"event_code": "4723"
}
}
}
}