Разработка UEBA-системы аналитики поведения пользователей

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

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    997
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1264
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1002

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

Что именно анализирует 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-доступа.

Из таблицы видно, что ML-модели в 1.9 раза точнее rule-based: precision 0.85 против 0.45.

Метод Точность (Precision) Recall F1
Rule-based 0.45 0.60 0.51
ML (наша UEBA) 0.85 0.82 0.83

Как детектируется data exfiltration?

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

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

Технический стек для эксфильтрации включает DLP-агенты с OCR, анализ сетевого трафика, прокси-логи, а также детектирование DNS-туннелирования и base64-encoded запросов. Интеграция с CASB и облачными провайдерами.

Практический кейс: как мы предотвратили кражу клиентских данных

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

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

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

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

Этапы и сроки разработки

Обычно проект проходит следующие этапы. Средняя экономия от предотвращения одного инцидента может составлять от $10k–50k в год. Стоимость разработки рассчитывается индивидуально и обычно находится в диапазоне от $10k–30k при базовом решении. Пример: для производственной компании с 5000 пользователей экономия составила $40k–58k в первый год.

Этап Длительность
Аудит источников данных и инфраструктуры 1 неделя
Проектирование архитектуры и выбор стека 1 неделя
Разработка baseline-моделей и risk scoring 3-4 недели
Интеграция с SIEM и SOAR 2 недели
Документация и обучение 1 неделя

Что входит в разработку UEBA-системы?

Мы предоставляем полный цикл: аудит источников данных и инфраструктуры, проектирование архитектуры и выбор стека, разработка baseline-моделей и risk scoring, интеграция с SIEM и SOAR, документация, обучение команды безопасности, пост-продакшн поддержка и дообучение моделей. Статистическую обработку и ML-моделирование выполняем на стеке PyTorch и LangChain, используем vLLM для инференса. Наши сертифицированные ML-инженеры гарантируют соответствие моделей вашим данным.

Закажите разработку UEBA-системы — начните защиту от инсайдеров уже сегодня. Обратитесь к нашим инженерам для аудита вашей инфраструктуры.