Перейти к основному содержанию

Безопасность

Около 3 мин

Информационная безопасность

StormBPMN Enterprise обеспечивает высокий уровень информационной безопасности через многоуровневую систему защиты, включающую регулярное обновление зависимостей, сканирование уязвимостей и гибкие настройки доступа.

Принципы безопасности

  • Минимальные привилегии - только необходимые права
  • Глубокая защита - многоуровневая система безопасности
  • Аудит всех действий - полное логирование операций
  • Шифрование данных - защита паролей и конфиденциальной информации


Переменные окружения безопасности

Базовые настройки безопасности задаются через ENV переменные:

ПеременнаяОписаниеПример значенияПо умолчанию
STORM_ALLOWED_ORIGINSРазрешенные источники запросов (CORS)https://stormbpmn.company.com*
STORM_DISABLE_SIMPLE_AUTHОтключить встроенную авторизациюtruefalse
STORM_DISABLE_ENV_IN_UIСкрыть ENV переменные в админкеtruefalse
STORM_DISABLE_ANON_SHARINGЗапретить анонимный доступ к диаграммамtruefalse
JWTSECRETСоль для шифрования паролейМинимум 15 случайных символов-
SESSION_EXPIRATIONСрок жизни сессии8640000086400000

Рекомендации по безопасности

  • STORM_ALLOWED_ORIGINS: Обязательно укажите конкретные домены вместо * в production
  • JWTSECRET: Используйте криптографически стойкую случайную строку
  • STORM_DISABLE_ENV_IN_UI: Включите в production для скрытия конфиденциальных данных


Настройки в административной панели

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

ПараметрОписаниеРекомендация для production
showRegistrationПоказать форму регистрации❌ Отключить
showBasicLoginПоказать поля логин/пароль❌ При использовании OAuth2
showCustomLoginButtonNameКастомный текст кнопки входаПо требованию
customLoginButtonNameТекст на кнопке входа"Войти через корпоративный аккаунт"

Публичный доступ

ПараметрОписаниеРекомендация для production
enableAnonSearchPageПоиск для неавторизованных❌ Отключить
allDiagramsAnonAccessАнонимный доступ ко всем диаграммам❌ Отключить

Корпоративные настройки

ПараметрОписаниеРекомендация
enableCommonAssetsОбщие элементы архитектуры для всех команд✅ Включить для больших компаний
enableCommonRolesОбщие роли для всех команд✅ Включить для унификации
enableCommonUsersОбщая оргструктура для всех команд✅ Включить для централизации


SIEM-логирование

StormBPMN поддерживает полное аудит-логирование всех действий пользователей с отправкой в системы SIEM.

Возможности

  • Полное логирование всех авторизованных операций
  • Маскирование паролей и авторизационных заголовков
  • Фильтрация больших данных (содержимое диаграмм не логируется)
  • Поддержка Syslog по протоколу TCP (RFC 3164 / RFC 5424)
  • Уникальные ID сессий для трассировки действий

Настройка Syslog

ПеременнаяОписаниеПример значенияОбязательно
AUDIT_ENABLEDВключение аудита запросовtrue
AUDIT_CHANNELКанал аудит-логовsyslog
SYSLOG_SERVERSСписок syslog серверовlocalhost:514,192.168.78.53:601
SYSLOG_SOURCEНазвание приложения в логахstormbpmn🔧
SYSLOG_MESSAGE_FORMATФормат логовRFC_5424 / RFC_3164🔧

Оригинальный IP-адрес пользователя

Для отображения оригинального IP-адреса нужно передать в контейнер заголовок X-Forwarded-For от вышестоящего прокси.

Структура лог-записи

{
  "timestamp": "2007-12-03T10:15:30:55.000000",
  "sessionId": "ergjieor-ergjniuo-qjwer",
  "source": "stormbpmn",
  "subject": "kotov@bpmn2.ru",
  "subjectIP": "192.168.0.1",
  "object": "uaerhgae-aerj3234-egerg",
  "resource": "diagram",
  "action": "CHANGE",
  "payload": {
    "method": "POST",
    "url": "/api/v1/diagram",
    "request": { "..." },
    "response": { "..." }
  },
  "result": "SUCCESSFUL"
}

Типы событий

ДействиеОписание
GETПросмотр объекта
CREATEСоздание объекта
CHANGEИзменение объекта
DELETEУдаление объекта
РезультатОписание
SUCCESSFULУспешная операция
CLIENT_ERRORОшибка клиента
SERVER_ERRORОшибка сервера

Включение / исключение методов из аудита

Дополнительная настройка фильтрации URL для аудит-логирования:

ПеременнаяОписаниеПример значения
AUDIT_INCLUDE_UNAUTH_PATHRegExp через запятую - URL методов для включения в аудит.*/auth/signin$
AUDIT_EXCLUDE_AUTH_PATHRegExp через запятую - URL методов для исключения из аудита.*/heartbeat$,.*/diagram/.*/autosave$

Примеры использования

  • Включить неавторизованные запросы: AUDIT_INCLUDE_UNAUTH_PATH=.*/auth/signin$
  • Исключить служебные запросы: AUDIT_EXCLUDE_AUTH_PATH=.*/heartbeat$,.*/health$,.*/diagram/.*/autosave$


Система авторизации

Корпоративная авторизация (OAuth2, Keycloak, Microsoft ADFS), проверка claims и встроенный вход вынесены в отдельную статью — Система авторизации.


Добавление собственных SSL-сертификатов

Проблема

Если вы используете свой MinIO, S3 или другой HTTPS-сервис с самоподписанным сертификатом, Java внутри контейнера может не доверять ему. Это приведёт к ошибке:

javax.net.ssl.SSLHandshakeException: PKIX path building failed

Решение

Необходимо смонтировать свой truststore.jks, заменив стандартный truststore Java.

Шаг 1. Создание truststore.jks

Если у вас есть файл сертификата (например, minio-ca.crt), выполните:

keytool -importcert \
  -file minio-ca.crt \
  -alias my-root-ca \
  -keystore truststore.jks \
  -storepass changeit \
  -noprompt

Пароль truststore

Пароль changeit — стандартный для Java truststore. Можно использовать другой, но он должен совпадать в команде и при запуске.

Шаг 2. Путь к truststore в контейнере

Контейнер StormBPMN использует образ eclipse-temurin:11-jre-alpine. Путь к стандартному truststore:

/opt/java/openjdk/lib/security/cacerts

Проверка пути

Если монтирование не работает, проверьте актуальный путь командой:

docker run --rm eclipse-temurin:11-jre-alpine find /opt -name "cacerts" 2>/dev/null

Шаг 3. Запуск с заменой truststore

В docker-compose.yml:

services:
    stormbpmn:
        image: _ваш_образ_
        volumes:
            - ./truststore.jks:/opt/java/openjdk/lib/security/cacerts:ro

Или в командной строке:

docker run \
  -v $(pwd)/truststore.jks:/opt/java/openjdk/lib/security/cacerts:ro \
  _ваш_образ_

Результат

Java в контейнере будет использовать ваш truststore и доверять указанным сертификатам. Никаких изменений в переменных окружения не требуется.


Чек-лист безопасности

Обязательные настройки

Дополнительные меры



Связанная документация

Нужна помощь?

По вопросам безопасности обращайтесь к help@stormbpmn.com или вашему менеджеру.