Хронология
Вычисляет информацию о характерном, исторически сложившемся, поведении объекта в определенный промежуток времени. Используется для обнаружения аномалий, таких как:
- данное время входа необычно для пользователя
- данное время подключения необычно для пользователя.
Описание алгоритма
- К данным индексов источников применяется общий и временной фильтры.
- Каждая запись данных приводится к общему виду согласно настройкам обрабатываемых полей.
- Данные разбиваются по уникальным сочетаниям значений обрабатываемых полей.
- Каждая часть данных полученная на шаге 3 разбивается на сегменты в рамках периода расчета, каждому сегменту назначается идентификатор.
- Для каждого сегмента считается количество событий.
- По всем сегментам с одним идентификатором считается статистика.
Входные параметры
Фильтр - общий фильтр источников.
Индекс для результатов - индекс в который записываются результаты выполнения.
Обрабатываемые поля - маппинг полей источников на поля результата.
Период расчета - основной временной диапазон, в котором будут рассматриваться определенные сегменты.
Сегмент - сегмент временного интервала, в течении которого будет произведен расчет метрик.
Пропускать интервалы без данных - пустые интервалы не учитываются в расчете статистики.
Настройка обрабатываемого поля
Название - название поля в результате.
Шаблон индекса / Название поля в источнике - список шаблонов индексов и соответствующих полей в них,
которые будут извлекаться в результат.
Входные данные
Входные данные определяются индексами и временным интервалом в общих настройках.
Выходные данные
В результате выполнения алгоритма в индексе результатов появляется несколько записей. Каждая запись содержит статистику по всем интервалам времени для обрабатываемых полей.
_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"
}
}
}
}