Доказательства и аудит
Подтвердите каждое решение. Воспроизведите это несколько месяцев спустя.
Капсулы решений запечатывают доказательства, чтобы аудиторы могли проверить любую версию — в автономном режиме, независимо, полностью идентично.
Взгляд аудитора: что вы получаете
Экспорт капсулы решения создаёт подписанный пакет с адресацией по содержимому и точными входами и выходами решения релиза.
- Точный SBOM, использованный в сканировании
- Замороженные снимки фидов уязвимостей (NVD, OSV, advisories поставщиков)
- Доказательства достижимости (артефакты статических графов вызовов и runtime-трейсы)
- Версия политики и lattice-правила для gate
- Производное VEX-заявление с обоснованиями
- DSSE-подписи, покрывающие содержимое капсулы
Источник: Документация по капсулам решений
Что такое пакет доказательств?
Содержимое
Каждая Капсула решения объединяет точный SBOM, замороженные фиды уязвимостей, графы достижимости, версию политики, производный VEX и метаданные одобрений.
Подписание
Подписи DSSE/in-toto делают пакеты защищёнными от подделки. Выберите криптографические профили FIPS-140-3, ГОСТ Р 34.10, SM2/SM3 или eIDAS.
Экспорт
Экспортируйте капсулы на любом этапе продвижения. Храните в Evidence Locker с семантикой WORM для сроков хранения по требованиям соответствия.
Воспроизведение
Перезапустите любое историческое решение с помощью stella replay. Одинаковые входные данные дают одинаковые результаты, офлайн или онлайн.
Пример структуры капсулы
Каждая капсула решения представляет собой автономный каталог с подписанными артефактами:
decision-capsule-20260126-prod-a1b2/ ├── manifest.json # Метаданные капсулы + подписи ├── sbom.cdx.json # CycloneDX 1.7 SBOM ├── sbom.cdx.json.sig # DSSE-подпись ├── reachability/ │ ├── analysis.json # Вердикты достижимости │ ├── call-graph.json # Доказательство статического анализа │ └── analysis.json.sig # DSSE-подпись ├── policy/ │ ├── rules.rego # Снимок политики │ └── verdict.json # Решение gate + обоснование ├── approvals/ │ └── jsmith.sig # Подпись человеческого одобрения └── feeds/ └── snapshot.json # Замороженное состояние CVE/advisory
Фрагмент манифеста капсулы
Манифест фиксирует каждый вход и выход по дайджесту, чтобы решение можно было воспроизвести позже.
apiVersion: capsule.stellaops.dev/v1
metadata:
id: "cap-2025-12-11-abc123"
timestamp: "2025-12-11T14:30:00Z"
scan_id: "scan-xyz789"
inputs:
sbom:
format: "cyclonedx@1.6"
digest: "sha256:..."
feeds:
- name: "nvd"
snapshot: "2025-12-11"
digest: "sha256:..."
policy:
version: "corp-policy@2025-12-01"
digest: "sha256:..."
outputs:
vex:
format: "openvex"
digest: "sha256:..."
signatures:
- scheme: "DSSE"
profile: "FIPS-140-3"
signer: "build-ca@corp" Цепочка доказательств
Что содержит Капсула решения
Дайджест артефакта
SHA-256 адрес содержимого
Снимок SBOM
CycloneDX 1.7 / SPDX 3.0
Доказательства достижимости
Граф + аттестации рёбер
Состояние VEX
Решётчато-разрешённый вердикт
Версия политики
Rego/DSL с адресацией по содержимому
Одобрения
Подписанные записи одобрений
Рабочий процесс соответствия
- 1
Аудитор спрашивает
"Покажите мне доказательство, что эта CVE была обработана правильно в январском релизе."
- 2
Оператор экспортирует
stella капсула экспорт jan-release-capsule.yaml --format Audit-bundle - 3
Пакет верифицирует
Аудитор выполняет
stella capsule verify jan-release-capsule.yaml— подписи проверяются, дайджесты совпадают. - 4
Воспроизведение подтверждает
stella replay jan-release-capsule.yamlпроизводит идентичный вердикт с замороженными входными данными.
Детерминированный повтор
Выполните то же решение 6 месяцев спустя — те же замороженные входные данные выдадут идентичный вердикт. Сеть не требуется, нет дрейфа состояния, нет двусмысленности.
- Проверьте подписи капсулы с закреплёнными ключами.
- Подтвердите, что дайджесты SBOM и фида совпадают с манифестом.
- Воспроизведите с тем же policy bundle и входами достижимости.
- Экспортируйте аудиторский пакет с вердиктом, VEX и доказательствами.
$ stella replay capsule.json --verify
Воспроизведение решения от 2025-07-15T14:32:00Z...
Версия политики: sha256:e5f6g7h8... (совпадает)
Снимок фида: sha256:i9j0k1l2... (совпадает)
Вердикт: ALLOW (идентично оригиналу)
Проверка детерминизма: PASS Форматы и совместимость
SBOM
CycloneDX 1.7 и SPDX 3.0.1. Импортируйте из Trivy, Grype, Syft или создавайте самостоятельно.
VEX
OpenVEX и CSAF 2.0. Разрешение решетки с несколькими выпусками и обнаружение конфликтов.
SARIF
Экспорт формата обмена результатами статического анализа для интеграции IDE и CI.
Air-Gapped Проверка
Аудиторы проверяют подписи, проверяют целостность дайджеста и воспроизводят решения без доступа к сети. Весь криптографический материал перемещается вместе с капсулой.
$ stella capsule verify decision-capsule.yaml --offline
Проверка подписи: PASS (ECDSA-P256)
Совпадение дайджеста: PASS (sha256:abc123...)
Версия политики: VALID (v3.2.1)
Целостность доказательств: ВСЕ КОМПОНЕНТЫ ПОДПИСАНЫ
Вердикт: ALLOW — сеть не требуется 