Правовое
Политика безопасности
Действует с 15 мая 2026
Кратко: Безопасность спроектирована с первого дня, а не прикручена потом. Ниже — конкретные меры, без маркетинга.
1. Принципы
- Defense in depth. Каждое ограничение продублировано минимум на двух уровнях: фронт, бэкенд, база данных. Сбой одного слоя не вскрывает данные.
- Принцип наименьших привилегий. Каждая роль видит только то, что необходимо для работы. Service-role ключи доступны только серверному коду, никогда — браузеру.
- Fail closed. Если RLS-политики нет — таблица недоступна. Не существует «дефолтно открыто».
- Логика в базе данных, не в клиенте. Критичные проверки (видимость, скоуп ролей, валидные переходы статусов) живут в Postgres. Это страховка от багов клиента и подготовка к нативному приложению.
2. Технические меры
2.1. Многотенантность
- Row-Level Security на каждой таблице (всего 30 таблиц). Ни одна из них не доступна без прохождения RLS-политик.
- Helper-функции в БД — единый источник истины для проверки прав (
is_member,has_role,can_see_object,can_see_subdivisionи др.). - Audit log — INSERT-only, REVOKE UPDATE/DELETE для всех ролей. Историю критичных действий нельзя подделать ни нам, ни вам.
2.2. Аутентификация
- Supabase Auth, email + пароль. Пароли хешируются bcrypt.
- Минимум 10 символов, требование заглавная+строчная+цифра+спецсимвол. Проверка по базе утечек HaveIBeenPwned через k-anonymity API.
- Cookies авторизации —
httpOnly + secure + sameSite=lax. JS не может прочитать токен из браузера. - JWT TTL: 1 час access-token, 30 дней refresh-token с ротацией.
2.3. Storage (фото)
- Все buckets с фото — приватные. Никаких публичных URL.
- Signed URLs для просмотра живут 15 минут. После — перевыпускаются.
- Лимиты загрузки: 10 MB на файл, whitelist MIME-типов (
image/jpeg,image/png,image/webp,application/pdf). - Path-based RLS:
<company_id>/<entity_id>/file. Файлы чужой компании физически недоступны через API.
2.4. Сетевая безопасность
- HTTPS принудительно через HSTS preload.
- Content Security Policy против XSS и injection. Запрет inline scripts, ограничение источников шрифтов/изображений/connect.
- X-Frame-Options: DENY — защита от clickjacking.
- Referrer-Policy: strict-origin-when-cross-origin.
- Permissions-Policy: ограничены camera, geolocation, microphone.
2.5. Шифрование
- На лету — TLS 1.3 на всех соединениях.
- В покое — Supabase шифрует диски AES-256.
- Бэкапы — также шифруются.
3. Организационные меры
3.1. Доступ команды
- Сотрудники Lumio не имеют прямого доступа к данным клиентов.
- Режим impersonation для саппорта — только в read-only, требует согласия владельца компании, каждое действие фиксируется в audit log с временем и причиной.
- Production-ключи Supabase — только у владельца продукта в менеджере паролей, ротация при каждой смене состава команды.
3.2. Бэкапы и восстановление
- Daily Point-in-Time Recovery на 7 дней (Supabase platform).
- Еженедельные снапшоты в S3 другого региона, retention 90 дней.
- Тест восстановления — раз в квартал на стейджинге.
3.3. Управление инцидентами
- Sentry с автоматическим PII scrubbing — никаких имён, email или сумм в стек-трейсах.
- Алерты на 401/403-flood, всплеск 5xx, активность impersonation, аномальные паттерны загрузки.
- Уведомление пользователей об инцидентах безопасности в течение 72 часов с момента обнаружения.
4. Responsible Disclosure
Если вы нашли уязвимость — спасибо, сообщите нам.
Email: security@lumio.com.kz — отвечаем в течение 48 часов.
4.1. Что мы просим
- Опишите шаги воспроизведения, влияние, по возможности — proof of concept.
- Дайте нам разумное время на фикс перед публикацией (обычно 90 дней).
- Не пытайтесь получить доступ к данным других пользователей, не нарушайте работу сервиса, не запускайте DoS.
4.2. Что мы делаем в ответ
- Подтверждаем получение в течение 48 часов.
- Оцениваем severity (critical / high / medium / low), сообщаем ETA фикса.
- После фикса — упоминаем вас в CHANGELOG (если вы хотите быть упомянутыми).
- Bug bounty programme пока не запущена — стартует после первых 50 платящих клиентов.
4.3. Машиночитаемая версия
Контакты в формате RFC 9116: /.well-known/security.txt.
5. Что мы НЕ закрываем в MVP
Честно фиксируем то, чего пока нет, чтобы вы понимали зрелость продукта:
- 2FA / TOTP — добавляем в v1.5 для владельцев, обязательно.
- WebAuthn / Passkeys — после 2FA.
- SOC 2 / ISO 27001 сертификация — на горизонте 12-18 месяцев.
- Bug bounty с денежным вознаграждением — после набора первой когорты клиентов.
6. История изменений
- 15 мая 2026: v1.0 — первая публичная версия политики, синхронизирована с внутренним SECURITY_PLAN v1.0.