Безопасность
Безопасность как инвариант, а не как фича.
Граница мультитенантности на уровне 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