Перейти к основному содержимому
Версия: 4.1

Хронология

Вычисляет информацию о характерном, исторически сложившемся, поведении объекта в определенный промежуток времени. Используется для обнаружения аномалий, таких как:

  • данное время входа необычно для пользователя
  • данное время подключения необычно для пользователя

Описание алгоритма

  1. К данным индексов источников применяется общий и временной фильтры
  2. Каждая запись данных приводится к общему виду согласно настройкам обрабатываемых полей
  3. Данные разбиваются по уникальным сочетаниям значений обрабатываемых полей
  4. Каждая часть данных полученная на шаге 3 разбивается на сегменты в рамках периода расчета, каждому сегменту назначается идентификатор.

  1. Для каждого сегмента считается количество событий.
  2. По всем сегментам с одним идентификатором считается статистика.

Входные параметры

  • Фильтр - общий фильтр источников (используются выражения из команды 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"
}
}
}
}