Перейти к содержимому

Модель угроз (STRIDE / DFD)

Olivares AI — это продукт безопасности, который работает на ваших собственных хостах и строит карту того, до чего может дотянуться каждый агент. Это делает изъян вендора эквивалентным компрометации клиента — поэтому продукт спроектирован так, чтобы проходить корпоративный пентест с первого дня, а модель угроз публикуется, а не скрывается.

Модель использует STRIDE (Spoofing, Tampering, Repudiation, Information disclosure, Denial of service, Elevation of privilege) над диаграммой потока данных (DFD) с её границами доверия. Перечисленные здесь митигации проверены относительно внутренней матрицы упрочнения продукта; эта страница публикует позицию (posture), а не доказательства на уровне кода.

  • Наблюдение вне пути данных. Карта доступа наблюдает логи, OpenTelemetry и eBPF. Отказ коллектора наблюдений создаёт пробел в видимости, не ограничивая трафик агента.
  • Принуждение в пути выполнения по принципу deny-closed. Хуки вызовов инструментов в управляемом Claude Code обращаются к PEP движка, подключённому по умолчанию. Отказ или перезапуск движка, делающий PEP недоступным, запрещает каждый управляемый вызов инструмента. Встроенный inference-прокси, шлюз MCP tools/call и шлюз делегирования A2A применяются к направленному через них трафику; вызовы моделей в сессиях по умолчанию не используют inference-прокси.
  • Минимальные данные. Граф хранит отношения — инициатор → ресурс, чтение/запись, источник сигнала, уверенность, временную метку — никогда полезные нагрузки, тела SQL, секреты или PII. Что не хранится, то не утечёт.
  • Self-hosted = поставщика нет на пути данных. Обязательной телеметрии нет, исходящий трафик управляющей плоскости по умолчанию отсутствует, а поставщик находится вне путей наблюдения и принуждения. К поставщику обращаются только тогда, когда вы сами что-то у него запрашиваете — olivares upgrade или загрузка коммерческих модулей и их обновлений по подписке, — но никогда как побочный эффект работы. И olivares upgrade --endpoint направляет даже это на ваше собственное зеркало. За периметр клиента выходит только то, что сам клиент настроил для передачи наружу: обращения к API его моделей, подключённые им выходы SIEM/webhook и внешний поставщик эмбеддингов, если клиент его настроил. Это выбранные клиентом третьи стороны; утверждение о поставщике относится к Olivares AI, а не к ним.
Актив Почему он чувствителен
Граф доступа Карта того, до чего может дотянуться каждый агент. Самый чувствительный актив — он управляется соответственно (см. митигации).
Доступ коллектора к хосту Он читает логи/OTEL/eBPF на продакшн-хостах; компрометация была бы плацдармом для разворота (pivot).
Журнал доказательств / аудита Если тихо изменён, продукт стал бы лгать. Целостность — это всё.
Лицензионные ключи Подделка обошла бы коммерческий ограничитель.
Учётные данные панели Доступ означает видеть всю среду агентов клиента.

Поскольку граф доступа — самый чувствительный актив, его просмотр — привилегированное действие — предоставляемое с роли editor и выше, никогда низшей роли viewer — ограниченное арендатором (tenant), и каждое чтение аудируется. Защита многослойна: привилегия, изоляция арендаторов и самоаудит.

Существует четыре границы доверия:

  1. host sources → collector
  2. collector → core (сетевая граница)
  3. user → panel
  4. core → store
CUSTOMER INFRASTRUCTURE CONTROL PLANE (self-hosted or managed)
┌─ Collectors (edge) ───────────────┐ ┌─ Engine (Go) ───────────────────────────┐
│ • OTLP receiver (agents) │ │ Ingest + event bus │
│ • MCP / skills introspection │ ──mTLS──▶ │ Connector SDK · Module runtime │
│ • Tail audit (pgAudit/CloudTrail) │ gRPC │ Multi-tenant data model │
│ • eBPF backstop (Tetragon) │ +bearer │ REST/gRPC API · AuthN/Z │
└───────────────────────────────────┘ │ Append-only, hash-chained audit │
(1) host sources → collector └──────────────┬───────────────────────────┘
(2) collector → core (network) │ go:embed (4) core → store
┌────────────▼─────────┐ ┌──────────────────┐
(3) user ───▶ │ Web panel (React) │ │ Access-graph │
→ panel └──────────────────────┘ │ store + ledger │
└──────────────────┘

Плоскость данных (коллекторы) всегда работает на инфраструктуре клиента. Коллекторы push’ат в ядро; они не выставляют никакого входящего слушателя.

STRIDE — основная угроза и митигация по каждому компоненту

Заголовок раздела «STRIDE — основная угроза и митигация по каждому компоненту»

Модель фиксирует основную угрозу(-ы) для каждого компонента и митигацию, которая её адресует (не исчерпывающую сетку).

Компонент Основная угроза Митигация
Collector Elevation (eBPF требует возможностей ядра), Tampering бинарника минимальные возможности (CAP_BPF/CAP_PERFMON, не полный root); подписанный бинарник; нет входящего слушателя (push-модель)
Collector → core Information disclosure, Spoofing TLS ≥ 1.2 по умолчанию, без отката на cleartext (fail-closed) + bearer-токен; AutoMTLS на локальном плагин-канале; опциональный mTLS с проверенным клиентским сертификатом для удалённых коллекторов
Access-graph store Information disclosure в покое шифрование в покое, предоставляемое развёртыванием (LUKS/FS/TDE); маскирование/хеш чувствительных значений, принуждаемое на стороне движка на пути записи
Evidence ledger Tampering, Repudiation append-only + hash-chain (+ контрольные точки, подписанные Ed25519); экспорт во внешнюю копию WORM/SIEM
Panel Spoofing, Elevation нет учётных данных по умолчанию; одноразовый токен настройки при первом запуске; RBAC; защищённые сессии; самоаудит (кто что просматривал/менял)
License key Spoofing подпись Ed25519, офлайн-валидация; отзыв через истечение подписки

Честность о краях модели — часть модели:

  • Root хоста / суперпользователь базы данных может изменить локальный журнал на диске. Hash-chain делает переписывания до контрольной точки криптографически обнаружимыми, но реальный контроль защиты от подделки — это экспорт журнала во внешнюю копию WORM/SIEM, до которой локальный оператор не может дотянуться. Включите его.
  • Шифрование хранилища в покое — ответственность оператора — продукт маскирует/хеширует чувствительные значения, но шифрование диска/FS/TDE обеспечивает развёртывание.
  • Покрытие карты доступа многоуровневое (чистое на аудируемых хранилищах, с потерями на некоторых, невозможное для пассивной реконструкции на других). Отсутствующее ребро не является доказательством того, что доступа не было — читайте Честность и пределы.
  • Скомпрометированный хост коллектора — серьёзное событие; коллектор работает только на чтение с минимальными привилегиями и без входящего слушателя, чтобы сжать этот радиус поражения, но компрометация хоста находится вне того, что плоскость управления сама по себе может предотвратить.