Докази та аудит
Доведіть кожне рішення. Повторіть це через кілька місяців.
Капсули рішень запечатують докази, щоб аудитори можуть перевірити будь-який випуск — офлайн, незалежно, порозрядно ідентичний.
Погляд аудитора: що ви отримуєте
Експорт капсули рішень створює підписаний пакет з адресацією за вмістом і точними входами та виходами рішення релізу.
- Точний 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 capsule export 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 — мережа не потрібна Готові зробити релізи аудитованими?
Читати специфікацію Капсули рішення · Переглянути всі можливості
