AI UEBA User and Entity Behavior Analytics System Development

We design and deploy artificial intelligence systems: from prototype to production-ready solutions. Our team combines expertise in machine learning, data engineering and MLOps to make AI work not in the lab, but in real business.
Showing 1 of 1 servicesAll 1566 services
AI UEBA User and Entity Behavior Analytics System Development
Complex
~2-4 weeks
FAQ
AI Development Areas
AI Solution Development Stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1212
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    852
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1041
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    822

AI UEBA — аналитика поведения пользователей и объектов

Insider threat и скомпрометированные аккаунты — это атаки, которые по определению используют легитимные учётные данные. Подписи вредоносного ПО здесь не помогают. UEBA (User and Entity Behavior Analytics) работает с другим принципом: не «это известная угроза», а «это аномальное поведение для конкретного субъекта».

Что анализирует UEBA

User behavior. Паттерны работы конкретного сотрудника: в какое время работает, к каким системам обращается, какой объём данных перемещает, с каких устройств/локаций. Логин в 3 часа ночи из Дублина при том, что человек работает в Москве и никогда не бывал в Ирландии — это аномалия. Логин в нерабочее время на следующий день после получения уведомления об увольнении — высокоприоритетная.

Entity behavior. Поведение не-человеческих субъектов: серверов, IoT-устройств, сервисных аккаунтов, API-ключей. Сервер приложений, который внезапно начинает сканировать внутреннюю сеть — скомпрометирован.

Peer group analysis. Сравнение поведения пользователя с его «группой сверстников» (коллеги в том же отделе, той же должности). Доступ к 500 файлам в день при норме в группе 30 — аномалия, даже если абсолютная цифра не триггерит правило.

Построение поведенческого baseline

Baseline — это не простое «среднее за последние 30 дней». Нужно учитывать:

  • Сезонность. Бухгалтер обрабатывает больший объём данных в период отчётности — это норма, не аномалия.
  • День недели. Активность в пятницу вечером для большинства ниже, чем в среду.
  • Роль. DevOps регулярно обращается к production-серверам, рядовой менеджер — нет.
  • Эволюция. Новый сотрудник осваивает системы — базовая активность растёт первые 2–3 месяца.

Технически: ARIMA + Seasonal Decomposition для временных рядов. Отдельные baseline'ы по каждому пользователю и каждому типу активности. Exponentially weighted moving average для адаптации к изменениям паттернов.

class UserBehaviorBaseline:
    def __init__(self, lookback_days=90, min_data_points=30):
        self.models = {}
        self.lookback = lookback_days

    def build_baseline(self, user_id: str, activity_type: str,
                        events: pd.Series) -> None:
        # Seasonal decomposition (недельный период)
        decomposition = seasonal_decompose(
            events, model='additive', period=7, extrapolate_trend='freq'
        )
        # Robust statistics для устойчивости к выбросам
        mad = median_abs_deviation(decomposition.resid.dropna())
        self.models[(user_id, activity_type)] = {
            'trend': decomposition.trend,
            'seasonal': decomposition.seasonal,
            'mad': mad,
            'median_resid': np.median(decomposition.resid.dropna())
        }

    def anomaly_score(self, user_id: str, activity_type: str,
                       value: float, timestamp: datetime) -> float:
        baseline = self.models.get((user_id, activity_type))
        if not baseline:
            return 0.5  # unknown user — medium risk
        expected = baseline['trend'].iloc[-1] + self._seasonal_component(baseline, timestamp)
        deviation = abs(value - expected) / (baseline['mad'] + 1e-8)
        return min(1.0, deviation / 10.0)  # нормализация в [0, 1]

Risk scoring и приоритизация

Единичная аномалия — шум. Реальный инцидент — паттерн. UEBA агрегирует anomaly scores по нескольким измерениям в единый risk score:

  • Аномальная активность по доступу к файлам: +0.3
  • Аномальный объём исходящего трафика: +0.4
  • Логин с нового устройства: +0.2
  • Доступ к HR-данным (новая категория для этого пользователя): +0.5
  • Composite risk score: 0.87 → HIGH priority alert

Важно: риск-скор учитывает контекст. Тот же сотрудник в период онбординга нового сотрудника (HR-процесс) — базовый риск ниже для HR-доступа.

Детекция data exfiltration

Один из ключевых UEBA use cases для insider threats. Признаки предстоящего ухода с кражей данных:

  • Резкий рост объёма загружаемых на USB/облако файлов за 1–4 недели до увольнения
  • Доступ к данным вне обычного рабочего scope (клиентские базы при работе в технической роли)
  • Поиск по ключевым словам типа «confidential», «secret», «customer list»
  • Массовое скачивание в нерабочее время

Практический кейс

Юридическая фирма, 200 сотрудников, чувствительные клиентские дела. Проблема: уволился партнёр, унёс данные по 40 клиентам. Обнаружили через 3 недели.

UEBA внедрили через 2 месяца после инцидента. Через 4 месяца:

  • Система детектировала сотрудника, который за 2 недели до подачи заявления об уходе загрузил 8 GB на личный Dropbox (при норме 200 MB/месяц)
  • Риск-скор за неделю: 0.91 (max)
  • Немедленное уведомление CISO
  • Данные не покинули компанию — USB заблокирован, Dropbox sync остановлен до расследования

Ключевой insight: поведение начало меняться за 3 недели до формального уведомления об уходе. Без UEBA это было бы незаметно.

Сроки: 6–10 недель для базового UEBA с готовыми baseline-моделями, 3–5 месяцев для кастомного решения с domain-specific признаками и интеграцией в существующий SIEM.