Evidencia y auditoría
Demuestre cada decisión. Vuelva a reproducirlo meses después.
Las cápsulas de decisión sellan la evidencia para que los auditores puedan verificar cualquier liberación, fuera de línea, de forma independiente, idéntica bit por bit.
Vista del auditor: lo que recibes
Exportar una cápsula de decisión produce un bundle firmado y direccionado por contenido con las entradas y salidas exactas usadas para la decisión de release.
- SBOM exacto usado para el escaneo
- Snapshots congelados de feeds de vulnerabilidades (NVD, OSV, avisos de proveedores)
- Evidencia de alcanzabilidad (artefactos de grafos de llamadas estáticos y trazas en runtime)
- Versión de la política y reglas lattice usadas para el gate
- Declaración VEX derivada con justificaciones
- Firmas DSSE que cubren el contenido de la cápsula
¿Qué es un paquete de evidencia?
Contenido
Cada Cápsula de Decisión agrupa el SBOM exacto, feeds de vulnerabilidades congelados, grafos de alcanzabilidad, versión de política, VEX derivado y metadatos de aprobación.
Firma
Las firmas DSSE/in-toto hacen los paquetes a prueba de manipulaciones. Elige perfiles criptográficos FIPS-140-3, GOST R 34.10, SM2/SM3 o eIDAS.
Exportar
Exporta cápsulas en cualquier paso de promoción. Almacena en Evidence Locker con semántica WORM para períodos de retención de cumplimiento.
Reproducir
Vuelve a ejecutar cualquier decisión histórica con stella replay. Mismas entradas, mismas salidas, offline u online.
Estructura de cápsula de muestra
Cada Decision Capsule es un directorio autónomo con artefactos firmados:
decision-capsule-20260126-prod-a1b2/ ├── manifest.json # Metadatos de la cápsula + firmas ├── sbom.cdx.json # SBOM CycloneDX 1.7 ├── sbom.cdx.json.sig # Firma DSSE ├── reachability/ │ ├── analysis.json # Veredictos de alcanzabilidad │ ├── call-graph.json # Prueba de análisis estático │ └── analysis.json.sig # Firma DSSE ├── policy/ │ ├── rules.rego # Snapshot de la política │ └── verdict.json # Decisión del gate + justificación ├── approvals/ │ └── jsmith.sig # Firma de aprobación humana └── feeds/ └── snapshot.json # Estado congelado de CVE/avisos
Extracto del manifiesto de la cápsula
El manifiesto fija cada entrada y salida por digest para que la decisión pueda reproducirse más tarde.
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" Cadena de evidencia
Qué contiene una Cápsula de Decisión
Digest del artefacto
Dirección de contenido SHA-256
Snapshot de SBOM
CycloneDX 1.7 / SPDX 3.0
Evidencia de alcanzabilidad
Grafo + atestaciones de aristas
Estado VEX
Veredicto resuelto en lattice
Versión de política
Rego/DSL con dirección de contenido
Aprobaciones
Registros de aprobación firmados
Flujo de trabajo de cumplimiento
- 1
El auditor pregunta
"Muéstrame prueba de que esta CVE fue manejada correctamente en el release de enero."
- 2
El operador exporta
stella cápsula exportar jan-release-capsule.yaml --formato paquete de auditoría - 3
El paquete verifica
El auditor ejecuta
stella capsule verify jan-release-capsule.yaml— las firmas verifican, los digests coinciden. - 4
La reproducción confirma
stella replay jan-release-capsule.yamlproduce un veredicto idéntico con entradas congeladas.
Reproducción determinista
Ejecute la misma decisión 6 meses después: las mismas entradas congeladas producen un veredicto idéntico. No se requiere red, no hay deriva de estado, no hay ambigüedad.
- Verifica las firmas de la cápsula con claves fijadas.
- Confirma que los digests del SBOM y del feed coinciden con el manifiesto.
- Repite con el mismo bundle de políticas y entradas de alcanzabilidad.
- Exporta el bundle de auditoría con veredicto, VEX y pruebas.
$ stella replay capsule.json --verify
Reproduciendo decisión de 2025-07-15T14:32:00Z...
Versión de la política: sha256:e5f6g7h8... (coincide)
Snapshot del feed: sha256:i9j0k1l2... (coincide)
Veredicto: ALLOW (idéntico al original)
Chequeo de determinismo: PASS Formatos e interoperabilidad
SBOM
CycloneDX 1.7 y SPDX 3.0.1. Importe desde Trivy, Grype, Syft o genere de forma nativa.
VEX
OpenVEX y CSAF 2.0. Resolución de celosía de múltiples emisores con detección de conflictos.
SARIF
Exportación de formato de intercambio de resultados de análisis estático para integración IDE y CI.
Verificación con espacio libre
Los auditores verifican las firmas, verifican la integridad del resumen y reproducen decisiones sin ningún acceso a la red. Todo el material criptográfico viaja con la cápsula.
$ stella capsule verify decision-capsule.yaml --offline
Verificación de firma: PASS (ECDSA-P256)
Coincidencia de digest: PASS (sha256:abc123...)
Versión de la política: VALID (v3.2.1)
Integridad de evidencias: TODOS LOS COMPONENTES FIRMADOS
Veredicto: ALLOW — no se requiere red ¿Listo para hacer los releases auditables?
Leer la especificación de Cápsulas de Decisión · Ver todas las características
