Мультитенантность
Мультитенантность (мультиарендность) --- архитектурный подход, при котором один экземпляр KOMRAD Enterprise SIEM обслуживает несколько независимых организаций (тенантов). Все тенанты используют общую инфраструктуру, при этом данные и конфигурация каждого из них надёжно изолированы.
Мультитенантная архитектура позволяет операторам SOC и MSSP-провайдерам централизованно управлять мониторингом безопасности для нескольких клиентов, сохраняя полную изоляцию данных между ними.
Принципы
- Анализ требований клиентов. Перед выбором архитектуры необходимо определить, какие данные и процессы требуют изоляции. Например, финансовые организации, как правило, предъявляют максимальные требования к защите и разделению данных.
- Учёт специфики бизнес-процессов. Следует определить, какие ресурсы (базы данных, оперативная память, вычислительные мощности) должны быть разделены между тенантами.
- Гибкость системы. Система должна адаптироваться к изменениям требований по мере роста организации.
Архитектурные решения
Логическое разделение тенантов
- Каждая организация (клиент) получает собственное пространство имён и уникальный идентификатор (
TenantID). - Все объекты и данные помечены метаданными, позволяющими однозначно определить их владельца.
Физическое разделение баз данных
- Каждому клиенту выделяется отдельная база данных или экземпляр СУБД.
- Этот метод повышает производительность и улучшает изоляцию данных, снижая риски несанкционированного доступа.
Многослойная модель доступа
- Используется многоуровневая модель доступа, включающая RBAC (Role-Based Access Control) и ABAC (Attribute-Based Access Control).
- Администраторы задают ограничения доступа для каждой категории пользователей и ролей.
Компоненты мультитенантной архитектуры
Пространства имён (Namespaces)
Каждая организация получает уникальное пространство имён, в котором размещаются все её данные. Это обеспечивает полную изоляцию данных одного клиента от другого.
Индексация и фильтрация
Для обеспечения эффективного поиска и извлечения данных применяется индексация. Специальные поля создаются для быстрого нахождения нужных записей. Индексы включают идентификаторы клиентов, временные отметки и другие критерии.
Политики хранения
Политики хранения данных настраиваются индивидуально для каждого тенанта. Для каждой организации можно установить различные сроки хранения, типы архивации и алгоритмы шифрования.
Профили анализаторов
Анализаторы представляют собой наборы правил и скриптов для обработки событий. Их можно настраивать отдельно для каждого клиента, создавая индивидуальные условия анализа и представления результатов.
Панели управления
Панель управления позволяет оперативно отслеживать состояние системы и реагировать на возникающие проблемы. Она предоставляет наглядную визуализацию происходящих событий и автоматизирует многие процессы.
Управление доступом
Система разграничения доступа контролирует, кому разрешено просматривать и изменять данные. Администраторы создают группы пользователей и назначают им конкретные роли и полномочия.
Резервное копирование
Модуль резервного копирования обеспечивает регулярное сохранение копий данных тенантов. Это необходимо для восстановления информации в случае сбоев.
Распределение объектов между тенантами
В таблице ниже описаны возможные варианты размещения объектов системы:
| Объект | На стороне тенанта | На центральном узле | Гибридный подход |
|---|---|---|---|
| Агенты коллектора SNMP | Управляются и развёртываются тенантом | --- | --- |
| Активы | Инвентаризация ресурсов тенанта | --- | --- |
| Аудит | Журналы аудита действий внутри тенанта | --- | --- |
| Виджеты | Персональные панели виджетов тенанта | Шаблоны панелей виджетов | Настройка виджетов под нужды тенанта |
| ГосСОПКА | --- | Единая интеграция для всех тенантов | --- |
| Динамические списки | Списки, специфичные для бизнес-логики тенанта | --- | --- |
| Директивы | Оптимизированные под тенант | Общекорпоративные политики | Комбинация центральных и тенант-специфичных правил |
| Инциденты | Инциденты, зарегистрированные в рамках тенанта | --- | --- |
| Коллекторы | --- | Ядро системы сбора данных | Комбинация центральной и тенант-специфичной частей |
| Пакеты экспертиз | Наборы правил, выбранные тенантом | Общая база пакетов экспертиз | --- |
| Политики доступа | --- | Глобальные правила контроля доступа | --- |
| Пользователи | Учётные записи пользователей тенанта | --- | --- |
| Поля событий | Кастомные поля тенанта | Стандартные поля (время, источник, тип) | Комбинация центральной и тенант-специфичной частей |
| Правила уведомлений | Настройки оповещений для тенанта | Каналы доставки (email, SMS) | Комбинация центральной и тенант-специфичной частей |
| Роли | Ролевая модель доступа внутри тенанта | --- | --- |
| Секреты | --- | Централизованное хранилище ключей и паролей | --- |
| Сертификаты | --- | SSL/TLS-сертификаты для сервисов платформы | --- |
| События | Сырые и обработанные события тенанта | --- | --- |
| Фильтры | Фильтры событий тенанта | Базовые фильтры | Комбинация центральной и тенант-специфичной частей |
Корреляция в мультитенантной среде
KOMRAD поддерживает гибридную схему обработки событий, при которой первоначальная фильтрация и предварительная обработка выполняются на стороне тенанта.
| Критерий | Корреляция на стороне тенанта | Корреляция на центральном узле | Гибридный подход |
|---|---|---|---|
| Принцип работы | Каждое событие обрабатывается в изолированном пространстве клиента | Все события собираются в единую точку для централизованной обработки | Часть событий обрабатывается локально, часть --- централизованно |
| Изоляция данных | Естественная --- данные физически разделены | Требуется дополнительная настройка | Критичные данные остаются локально, общие паттерны анализируются централизованно |
| Обнаружение межклиентских атак | Ограничено | Высокоэффективно | Локальные аномалии выявляются на месте, глобальные --- централизованно |
| Масштабируемость | Ограниченная | Высокая (горизонтальное масштабирование) | Гибкое масштабирование всех компонентов |
| Нагрузка на сеть | Минимальная | Повышенная | Умеренная --- только релевантные данные передаются в центр |
Интерфейс
На общем интерфейсе для тенантов отображается выпадающий список с названиями всех доступных тенантов. Просмотр информации возможен как по одному тенанту, так и по нескольким одновременно. Каждому тенанту назначаются собственные виджеты, события и инциденты.
Права доступа
Права между тенантами разделяются атрибутом Окружение (TenantID).
- Общий администратор --- имеет доступ ко всем тенантам и управляет центральным узлом.
- Администратор тенанта --- дополнительная роль, ограничивающая доступ только данными своего тенанта. Эта роль не позволяет просматривать другие тенанты.
Уникальные роли и политики доступа могут описывать как общий администратор, так и администратор тенанта. Пользовательские данные о ролях и привилегиях привязаны к идентификатору тенанта.
Безопасность и шифрование
Данные клиентов защищены шифрованием на уровне базы данных и сети передачи данных. Аутентификация и авторизация пользователей осуществляются через стандартные протоколы: OAuth, LDAP и Kerberos.
Данные каждого тенанта размещаются в собственном кластере базы данных. Для обеспечения изоляции применяется контейнерная виртуализация или выделение отдельных серверов для каждой организации.
Модули KOMRAD с поддержкой мультитенантности
| Модуль | Описание |
|---|---|
| Интеграционная шина (komrad-bus) | Для каждой шины настраивается отдельный адрес с учётом TenantID |
| База данных (pg-preferences) | Данные размещаются в общем кластере с разделением по TenantID |
| Панели виджетов | Общие конфигурации, привязываемые к тенантам через идентификаторы |
| Сервис работы с активами | Для каждого тенанта создаётся отдельный экземпляр asset-keeper |
| Реакции на инциденты (komrad-reactor) | Настраивается индивидуально под каждый тенант |
| Управление доступом (pauth-server) | Общий сервер аутентификации с идентификаторами для каждого тенанта |
Проектирование мультитенантной инфраструктуры
Шаг 1. Определение типа мультитенантности
Выберите подходящий подход:
- Полный физический мультитенант --- полная физическая изоляция клиентов, отдельный кластер для каждого.
- Частичный мультитенант --- общая инфраструктура с поддержкой раздельных пространств для клиентов.
Выбор типа зависит от масштаба проекта и требуемого уровня изоляции.
Шаг 2. Проектирование инфраструктуры
Создайте многослойную структуру:
- Основной слой --- центральная платформа для сбора и первичной обработки событий.
- Средний слой --- распределённые узлы обработки данных для анализа и корреляции событий.
- Внешний слой --- точки входа и API-интерфейсы для взаимодействия с клиентами.
Шаг 3. Настройка разделения данных
Используйте встроенные механизмы KOMRAD для разделения данных:
- Настройте пространства имён и уникальные идентификаторы для каждого клиента.
- Примените специализированные индексы и фильтры для поиска данных.
Шаг 4. Оптимизация производительности
- Распределённое хранение данных с репликацией.
- Горизонтальное масштабирование узлов обработки.
- Кэширование для ускорения запросов.
Шаг 5. Подключение дополнительных сервисов
- Подключите средства идентификации и аутентификации пользователей.
- Используйте мониторинг состояния компонентов инфраструктуры.
- Интегрируйтесь с платформами DevOps для упрощения сопровождения.