VFLIN
ВойтиСкачать

docs · docs/60-policy/THREAT_MODEL.md · перевод от 2026-09-12 · с английской ревизии 92a91c8a48a3

Модель угроз

кто противники и до чего каждый может и не может дотянуться

Назначение: назвать, от кого и от чего мы защищаемся (дополняет SECURITY_POLICY.md, где сказано, что разрешено). Лёгкий проход в духе STRIDE; уточняется по мере роста системы.

1. Активы

  • Содержимое профилей (cookies, сессии, кошельки) — наивысшая ценность.
  • Секреты хранилища (учётки прокси, токены, секреты автоматизации).
  • Учётные данные пользователя / лицензионные токены.
  • Целостность журнала действий (для команд и комплаенса).
  • Целостность конвейера сборки патченого ядра (Phase 7+).

2. Против кого мы защищаемся

Актор Чем опасен
Удалённый сетевой атакующий перехватывает трафик синхронизации, подменяет блобы
Злонамеренный или любопытный инсайдер облака пытается прочитать содержимое профилей
Локальное вредоносное ПО / другой пользователь машины читает папки профилей, хранилище, локальный API
Вредоносный npm-модуль в автоматизации выносит секреты и данные
Тот, кто делится аккаунтом, или нарушитель лицензии обходит лимиты тарифа
Скомпрометированная зависимость или сборка отгружает приложение или ядро с закладкой

3. Защиты (соответствие)

Угроза (STRIDE) Защита
Spoofing (подмена) токен локального API на сессию; аутентификация + привязка к устройству; подписанные артефакты
Tampering (подделка) AEAD + подпись Ed25519 на блобах; журнал только на дозапись; TLS; проверка подписи ядра
Repudiation (отказ от авторства) журнал действий по актору, с режимом и результатом
Info disclosure (утечка) шифрование на клиенте с нулевым разглашением; сервер хранит только шифртекст; API на loopback; вычистка секретов
Denial of service (отказ в обслуживании) лимиты и квоты (облако); локальные операции деградируют мягко и работают офлайн
Elevation (повышение прав) режимы политики + повторная аутентификация для опасного; Node-sidecar с минимальными правами; контроль границы модулей

4. Явные остаточные риски (принятые, со смягчением)

  • Потеря ВСЕХ факторов ключа → потеря данных (цена нулевого разглашения). Смягчение (ADR-0008, несколько KEK): обязательный Recovery Key + необязательные passkey / связка ключей ОС / восстановление через org-KEK команды; явные предупреждения в интерфейсе.
  • Машина полностью скомпрометирована → живые профили читаемы. Полностью предотвратить — вне области; смягчаем шифрованием при хранении, связкой ключей ОС для мастер-ключа в простое, надёжным стиранием материализованной папки при pack/вытеснении и удержанием материализованного (открытого) окна минимальным (PROFILE_STORAGE_SYNC §6). materialize никогда не отдаёт сырой путь удалённым клиентам.
  • Потолок обнаруживаемости временного ядра (Phase 1-2) → задокументирован, оценён доверием, не скрыт.

5. Вне области (пока)

  • Локальное закрепление уровня государства; атаки на железо; защита рутованной или скомпрометированной ОС сверх разумных усилий.

Открытые вопросы

Интеграция со связкой ключей ОС для мастер-ключа в простое, технология песочницы для npm-sidecar (отдельный пользователь или контейнер?), резидентность блобов и комплаенс → OPEN_QUESTIONS.md.