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

Сквозной пример настройки UBA

В примере настраивается выявление входа пользователя с нового IP-адреса. Значения можно использовать как шаблон, заменив имена индексов, полей и справочника на значения своей среды.

Что входит в пример

Работающий сценарий UBA состоит не из одной конфигурации. Необходимо согласованно настроить тип объекта, заполнение списка объектов, политику профилирования, задание выявления аномалий с начислением риск-балла и расчет скоринга.

Исходные данные​

В примере используются следующие источники:

ИсточникПоляТребование
directory-events-*@timestamp, user_id, full_name, department, statusисходные данные для формирования справочника
employees-currentuser_id, full_name, department, statusодна актуальная запись на пользователя
auth-events-*@timestamp, user_id, source.ip, event.actionсобытия успешных и неуспешных входов

В этом примере directory-events-* — исходный индекс с данными о пользователях. На его основе формируется актуальный справочник employees-current, который используется как источник для заполнения списка объектов UBA. Значение user_id должно иметь одинаковый формат в обоих источниках.

Для регулярного обновления справочника создайте задание, которое выполняет запрос:

source directory-events-*
| search user_id=="*" AND status=="active"
| dedup user_id sortby - @timestamp
| table user_id, full_name, department, status
| outputlookup employees-current

Команда outputlookup сохраняет подготовленный набор записей в employees-current. Настройте расписание задания в соответствии с требуемой частотой обновления данных.

1. Тип объекта и тип скоринга​

Создайте тип объекта со следующими параметрами:

ПараметрЗначение
название типаПользователь
базовые поляuser_id
дополнительные поляfull_name, department
тип скорингаUBA risk

Создайте тип скоринга UBA risk, включите совместимость с UBA и привяжите его к типу объекта Пользователь. Поле user_id должно быть базовым и уникальным, а full_name и department могут повторяться.

Подробнее о настройке сущностей см. в разделе Основные сущности.

2. Конфигурация заполнения объектов​

Создайте конфигурацию в разделе Навигационное меню - User Behavior Analytics - Конфигурации заполнения объектов.

РазделПараметрЗначение
ОсновныеНазваниеUBA: активные пользователи
РасписаниеТипИнтервал, каждые 24 часа
ФильтрацияИндексemployees-current
ФильтрацияВременной интервал и поле временине задавать для актуального снимка
ФильтрацияФильтрuser_id=="*" AND status=="active"
Настройки объектаТип объекта UBAПользователь
Настройки объектаПоле идентификатора объектаuser_id
Настройки объектаБазовое полеuser_id → user_id
Настройки объектаДополнительные поляfull_name → full_name; department → department
Дополнительные настройкиМаксимальное количество объектовзначение не меньше ожидаемого числа пользователей и в пределах лицензии
Дополнительные настройкиДлительность блокировки60 секунд
Дополнительные настройкиЗапуск конфигурациивключен

Нажмите Предпросмотр. В результате должна отображаться одна строка на каждый user_id, без пустых идентификаторов и дубликатов базового поля. Затем нажмите Заполнить и сохраните конфигурацию.

Подробное описание фильтрации и дедупликации приведено в разделе Заполнение списка объектов.

3. Политика профилирования​

Создайте политику в разделе Навигационное меню - User Behavior Analytics - Политики профилирования.

Основные настройки политики​

ПараметрЗначение
ИмяUBA: IP-адреса входа пользователей
Тип объектаПользователь
Индексыauth-events-*
Поля для идентификации объекта в индексахuser_id
Игнорирование регистравыключено, если user_id заранее нормализован
Временной интервалот now-30d до now
Поле, содержащее метку времени@timestamp
РасписаниеИнтервал, каждые 24 часа
Длительность блокировки7200 секунд
Количество потоков4
Документов в одной итерации записи500

Алгоритм Словарь​

ПараметрЗначение
Фильтрevent.action=="login" AND source.ip=="*"
Индекс для результатовuba_profile_users_login_source_ip_dictionary
Название обрабатываемого поляsource_ip
Паттерн индексаauth-events-*
Поле в источникеsource.ip
Частичное обновлениевыключено, чтобы ежедневно перестраивать профиль за последние 30 дней

Сохраните политику, выполните первый запуск вручную и дождитесь успешного завершения. В профильном индексе для каждого пользователя должны появиться известные сочетания user_id и source_ip. До успешного первого запуска переходить к выявлению аномалий не следует: задание не сможет сравнить события с пустым профилем.

4. Справочник профильного индекса​

Создайте lookup для индекса uba_profile_users_login_source_ip_dictionary. Для сопоставления потребуются поля:

НазначениеПоле профильного индекса
идентификатор пользователя_meta.object.identity
известный IP-адрес_calculation.source_ip
признак найденного профиля_meta.object.id

В примере далее используется имя справочника uba_users_login_source_ip. Настройки lookup должны обеспечивать точное сопоставление пары user_id + source.ip.

5. Задание выявления аномалий​

Создайте задание, которое запускается каждые 5 минут и анализирует последние 10 минут. Базовый поисковый запрос:

source auth-events-*
| search event.action=="login" AND user_id=="*" AND source.ip=="*"
| lookup uba_users_login_source_ip _meta.object.identity AS user_id _calculation.source_ip AS source.ip OUTPUT _meta.object.id AS profile_object_id
| where isnull(profile_object_id)

Запрос оставляет входы, для которых в профиле пользователя отсутствует текущий IP-адрес. Если поля lookup настроены под другими именами, скорректируйте их в команде. Подробнее о синтаксисе см. в разделе lookup.

Добавьте активное действие начисления риск-балла:

ПараметрЗначение
Балл20
Индексuba_scoring_users_login_new_ip
Тип скорингаUBA risk
Объект UBAuser_id из результата поиска
Тип объекта UBAПользователь
Срок жизни24 часа
ДетализацияПоиск

Перед включением задания выполните тестовый поиск. Он не должен возвращать события с IP-адресами, уже присутствующими в профиле.

6. Расчет скоринга​

Создайте расчет в разделе Навигационное меню - User Behavior Analytics - Расчеты скоринга.

ПараметрЗначение
Тип объектаПользователь
Тип скорингаUBA risk
ОписаниеСуммарный риск пользователей по аномалиям входа
Индексыuba_scoring_users_*
Временной интервалне меньше максимального срока жизни начисляемых баллов
Поле, содержащее метку времениполе времени начисления из документов скоринга
РасписаниеИнтервал, каждые 5 минут
Использовать функцию расчетавыключено для линейной суммы
Цветовые диапазоны0–19 — норма; 20–39 — предупреждение; 40 и выше — тревога
Длительность блокировки60 секунд
Количество потоков1
Документов в одной итерации записи1000

Включите расчет после того, как задание создаст хотя бы одно тестовое начисление.

7. Проверка полного цикла​

  1. Убедитесь, что объект пользователя присутствует в списке UBA только один раз
  2. Проверьте успешный запуск политики и наличие source_ip в результатах алгоритма Словарь
  3. Выполните поисковый запрос задания на событии с известным IP-адресом — событие не должно считаться аномалией
  4. Повторите проверку с новым IP-адресом — запрос должен вернуть событие
  5. Убедитесь, что активное действие создало начисление в uba_scoring_users_login_new_ip
  6. Запустите расчет скоринга и откройте профиль объекта
  7. Проверьте итоговый балл, историю начисления и детализацию события

Если профиль не находится, сначала сопоставьте значения user_id в объекте UBA, событиях и lookup. Наиболее частые причины — различия регистра, доменный префикс и использование разных полей идентификации.