Регистрация событий безопасности

Архитектура журналирования, классификация событий, атрибуты, хранение, интеграция с SIEM
ООО «Рапид.Исследовательские системы»
Версия: 1.1.2
Дата: март 2026

1. Назначение

Документ описывает подсистему регистрации и учёта событий безопасности платформы Rapeed BI: архитектуру сбора, классификацию событий, атрибутный состав, хранение, интеграцию с внешними системами мониторинга и механизмы защиты журналов.

2. Архитектура подсистемы журналирования

Подсистема состоит из четырёх уровней:

Компоненты stdout / stderr Vector сбор + обогащение VictoriaLogs Security Logs SIEM (TCP) Grafana визуализация Генерация Обработка Хранение / передача Просмотр Все события Только ИБ Внешняя система
УровеньКомпонентФункция
ГенерацияВсе контейнеры платформыВывод событий в stdout/stderr в формате JSON
ОбработкаVectorСбор через Docker API, парсинг JSON, обогащение атрибутами безопасности, классификация
ХранениеVictoriaLogsДолгосрочное хранение всех событий и отдельного потока событий безопасности
ПередачаVector → SIEMОтправка обогащённых событий во внешнюю SIEM по TCP
ВизуализацияGrafanaЦентрализованный интерфейс для просмотра и поиска по журналам

3. Источники событий

ИсточникТипы событийФормат
KeycloakВход, выход, создание/изменение/удаление пользователей, изменение ролей и групп, ошибки аутентификацииJSON (Keycloak event log)
REST APIHTTP-запросы, действия администратора, экспорт данных, ошибки авторизацииJSON (структурированный лог)
МикросервисыHTTP-запросы, действия администратора, изменения настроекJSON (структурированный лог)
Reverse ProxyВсе HTTP/HTTPS запросы с метаданными (IP, метод, путь, статус)JSON (access log)
PostgreSQLПодключения, ошибки аутентификацииТекстовый лог
RabbitMQПодключения, ошибкиТекстовый лог
Аналитическое ядроЗапуск, остановка, ошибки обработкиТекстовый лог

4. Классификация событий безопасности

Vector автоматически классифицирует события, присваивая каждому уникальный идентификатор типа:

4.1. Аутентификация

КодСобытиеУсловие срабатывания
SEC-001Вход в системуKeycloak: событие LOGIN или LOGIN_ERROR
SEC-002Выход из системыKeycloak: событие LOGOUT или LOGOUT_ERROR

4.2. Управление пользователями

КодСобытиеУсловие срабатывания
SEC-005Создание пользователяKeycloak: событие REGISTER
SEC-006Изменение параметров пользователяKeycloak: события UPDATE_*
SEC-007Удаление пользователяKeycloak: событие DELETE_ACCOUNT

4.3. Управление ролями и группами

КодСобытиеУсловие срабатывания
SEC-008Изменение ролей пользователяKeycloak: события *ROLE*
SEC-009Изменение группKeycloak: события *GROUP*

4.4. Действия в приложении

КодСобытиеУсловие срабатывания
SEC-024Действие администратораHTTP-запрос к административным маршрутам API
SEC-025Экспорт данныхHTTP-запрос к маршрутам экспорта (Excel, CSV)
События безопасности отделены от общих системных событий. Они сохраняются в отдельный поток (Security Logs) и передаются в SIEM независимо от общего потока.

5. Атрибутный состав событий

Каждое событие безопасности содержит следующие атрибуты:

АтрибутОписаниеПример
timestampДата и время события (UTC)2026-03-24T10:15:30.123Z
vendorНаименование вендораRapeed
productНаименование продуктаRapeed Platform
product_versionВерсия продукта1.1.2
hostИмя хостаrapeed-prod-01
event_idУникальный идентификатор событияUUID v4
event_type_idКод типа событияSEC-001
event_type_nameНаименование типа событияUSER_LOGIN
ib_severityУровень важностиHIGH / MEDIUM / INFO
resultРезультат операцииSUCCESS / FAILURE
container_nameКомпонент-источник событияkeycloak, api, microservices
messageОписание событияТекст сообщения

Дополнительные атрибуты (при наличии в исходном событии):

АтрибутОписаниеИсточник
subjectСубъект операции (обезличенный)Keycloak, HTTP-заголовки
subject_ipIP-адрес субъектаKeycloak (ipAddress), Nginx (X-Real-IP)
objectОбъект операцииURL-путь, идентификатор ресурса
http_methodHTTP-метод запросаNginx access log
http_statusКод ответа HTTPNginx access log

6. Уровни важности

Vector автоматически определяет уровень важности на основе исходного уровня журнала:

УровеньИсходные значенияПримеры
HIGHERROR, CRITICAL, FATALОшибка аутентификации, сбой компонента, отказ подключения к БД
MEDIUMWARN, WARNINGПревышение лимита попыток входа, истечение сессии
INFOINFO, DEBUG, TRACEУспешный вход, экспорт данных, изменение настроек

7. Пример события

7.1. Вход в систему (успешный)

{ "timestamp": "2026-03-24T10:15:30.123Z", "vendor": "Rapeed", "product": "Rapeed Platform", "product_version": "1.1.2", "host": "rapeed-prod-01", "event_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "event_type_id": "SEC-001", "event_type_name": "USER_LOGIN", "ib_severity": "INFO", "result": "SUCCESS", "container_name": "keycloak", "subject": "iv****", "subject_ip": "192.168.1.100", "message": "User login successful" }

7.2. Неудачная попытка входа

{ "timestamp": "2026-03-24T10:16:05.456Z", "vendor": "Rapeed", "product": "Rapeed Platform", "product_version": "1.1.2", "host": "rapeed-prod-01", "event_id": "f9e8d7c6-b5a4-3210-fedc-ba0987654321", "event_type_id": "SEC-001", "event_type_name": "USER_LOGIN", "ib_severity": "HIGH", "result": "FAILURE", "container_name": "keycloak", "subject": "un****", "subject_ip": "10.0.0.55", "message": "Login failed: invalid credentials" }

7.3. Экспорт данных

{ "timestamp": "2026-03-24T14:30:00.789Z", "vendor": "Rapeed", "product": "Rapeed Platform", "product_version": "1.1.2", "host": "rapeed-prod-01", "event_id": "12345678-abcd-ef01-2345-678901abcdef", "event_type_id": "SEC-025", "event_type_name": "DATA_EXPORT", "ib_severity": "INFO", "result": "SUCCESS", "container_name": "api", "subject": "pe****", "subject_ip": "192.168.1.50", "object": "/api/get_excel_table", "http_method": "POST", "http_status": 200, "message": "Data export to Excel" }

8. Хранение и ротация

ПараметрЗначение
ХранилищеVictoriaLogs
Срок хранения90 дней
Максимальный объём на диске10 ГБ
РотацияАвтоматическая: при достижении лимита по времени или объёму удаляются самые старые записи
Разделение потоковВсе события и события безопасности хранятся в отдельных потоках (ProjectID)

8.1. Журналы контейнеров (Docker)

ПараметрЗначение
Драйверjson-file
Максимальный размер файла50 МБ
Количество файлов5
Итого на контейнердо 250 МБ

9. Интеграция с SIEM

Платформа поддерживает передачу событий во внешнюю систему мониторинга безопасности (SIEM).

ПараметрЗначение
ПротоколTCP
ФорматJSON (одно событие на строку)
НастройкаПеременная окружения SIEM_ADDRESS (адрес:порт)
ФильтрацияПередаются все обогащённые события
АктивацияПри наличии непустого значения SIEM_ADDRESS
При отсутствии переменной SIEM_ADDRESS отправка во внешнюю SIEM отключена. Все события продолжают сохраняться локально.

10. Интерфейс просмотра журналов

Журналы доступны через Grafana:

ИсточникНазначениеВозможности
VictoriaLogsЖурналы событийПолнотекстовый поиск, фильтрация по типу события, времени, компоненту, уровню важности
VictoriaMetricsМетрикиГрафики нагрузки, потребления ресурсов, времени отклика
TempoТрассировкаРаспределённая трассировка запросов между компонентами

10.1. Доступ

Доступ к интерфейсу журналов защищён двумя уровнями аутентификации:

  1. OAuth2 Proxy: проверка наличия действующей сессии Keycloak
  2. Проверка роли: только администраторы и аудиторы

11. Защита журналов

Мера защитыРеализация
Доступ к интерфейсу журналовОграничен ролями администратора и аудитора через OAuth2 Proxy
Хранилище журналовVictoriaLogs не имеет публичного порта; доступ только через reverse proxy с аутентификацией
Журналы контейнеровДоступ к файлам журналов на хосте ограничен правами операционной системы
НеизменяемостьVictoriaLogs работает в режиме append-only; удаление отдельных записей невозможно
Отделение от системных событийСобытия безопасности выделены в отдельный поток с собственным идентификатором

12. Обезличивание персональных данных

Имена пользователей в журналах обезличиваются: в лог записываются первые два символа и маска. Полное имя пользователя не сохраняется в журнале событий.

Исходное значениеВ журнале
ivanoviv****
petrovpe****
adminad****

13. Синхронизация времени

Все временные метки событий формируются на основе системного времени хоста. Для корректного отображения событий необходима синхронизация времени с единым доверенным источником через NTP.

Все события содержат временную метку в формате UTC (ISO 8601). Часовой пояс не влияет на сортировку и корреляцию событий.