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

Безопасность как инвариант, а не как фича.

Граница мультитенантности на уровне AST. Агенты по mTLS с авторотацией. Неизменяемый audit log. Детали — ниже.

Архитектурные инварианты

  • Каждый запрос к TSDB проходит через инжекцию organization_id. composeQuery и rewritePromQL добавляют organization_id обязательным матчером. Сырого пути для пользовательского запроса нет — утечка данных между тенантами структурно невозможна.
  • Модель embed-JWT. API-ключи выпускают короткоживущие JWT с обязательными фильтрами в claims. Обработчики берут фильтры из claims, а не из URL. Подмена через подделанный URL невозможна.
  • Секреты через SecretBox (AES-256-GCM). OAuth-токены, ключи подписи каналов и embed хранятся зашифрованными мастер-ключом. Открытый текст не попадает в логи.
  • Идентичность агента = проверенный клиентский сертификат. Не заголовок и не тело запроса. Валидация mTLS на уровне TLS-конфигурации сервера, а не в коде приложения.
  • Ключи JWT ротируются с заголовком kid. Несколько ключей подписи одновременно в памяти при ротации. KeyRevocator досрочно отзывает выпущенные токены при необходимости.
  • Токены публичных дашбордов не принимают org_id из URL. Org_id резолвится на сервере из строки токена — подделанный URL не переключит организацию.

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

  • Cookie-сессии с CSRF double-submit
  • Пароль + bcrypt
  • TOTP 2FA (RFC 6238)
  • WebAuthn / passkeys
  • OAuth: GitHub, Google, Apple
  • Magic-link для passwordless
  • SCIM 2.0 для автопровизионинга из IdP

Транспортная безопасность

  • Кабинет по HTTPS — TLS 1.2+, HSTS в production
  • mTLS-ingest — отдельный listener, обязательная клиентская аутентификация
  • Сертификаты агентов — TTL 24 часа, авторотация
  • Встроенный CA для агентов, не публичный

Данные на диске

  • Postgres — шифрование на уровне диска (managed) или приложения (SecretBox для секретов)
  • TSDB — шифрование на уровне диска (LUKS / cloud KMS)
  • Бэкапы — шифруются вашим собственным ключом, не общим

Политика раскрытия уязвимостей

Нашли уязвимость — напишите на [email protected]. PGP-отпечаток по запросу. Отвечаем в течение 48 часов.

  • Critical / RCE / утечка данных / обход авторизации — патч за 7 дней
  • High — патч за 30 дней
  • Medium — патч за 90 дней
  • Low — в ближайшем релизе

Публичное раскрытие — после выпуска исправления, с указанием вашего авторства, если хотите. За серьёзные находки платим вознаграждение.

Субпроцессоры

Managed-вариант использует перечисленные субпроцессоры. Полный список с назначением и объёмом данных — в документе DPA.

  • Облачный хостинг — инфраструктура (регионы US, EU)
  • Глобальный платёжный провайдер — обработка платежей
  • Транзакционная почта
  • CDN + защита от DDoS