SBOM без provenance оставляет слепую зону релиза
Синтетический research-shot: схема проблемы, контроля, evidence и ретеста в фирменной лабораторной стилистике Virusologia.
Коротко: Наличие SBOM ещё не означает доверие к релизу. Полезная цепочка включает digest, provenance, signed attestations, policy decision и понятный verification step перед deploy.

Проблема

Команда может отлично видеть CVE в образе, но не понимать, кто и где его собрал, какой workflow породил этот digest и соответствует ли релиз ожидаемому source state.

Если provenance не проверяется автоматически, то security быстро превращается в набор красивых artefacts 'для галочки': файлы есть, но deploy их не читает.

Решение

Нужно рассматривать release trust как pipeline-контракт: digest pinning, provenance/attestation, verification gate, policy exceptions и запись решения.

Хорошая практика - явно отделить 'SBOM generated' от 'artifact verified for deployment'. Тогда команда видит, что inventory и trust chain - это соседние, но разные задачи.

Что проверить руками

  • Проверить, что deploy использует digest, а не плавающий tag.
  • Проверить, где и как генерируется provenance/attestation и кто её валидирует.
  • Сравнить CI happy path и emergency/manual release path.
  • Записать, что происходит при отсутствии attestation: block, warn или manual approval.

Типичные ошибки

  • Считать signed artifact автоматически проверенным artifact.
  • Не тестировать verify step как обязательную часть deploy path.
  • Оставлять emergency path без тех же trust checks, что и основной pipeline.

Defensive checklist

  • Deploy использует digest pinning.
  • Есть verification gate для provenance/attestation.
  • Exceptions оформляются явно, а не молча обходят pipeline.
  • Retest повторяет не только build, но и actual deploy verification path.

Безопасный пример кода

Проверка attestation перед релизом. Пример рассчитан на owned/lab-среду и показывает инженерную логику проверки, а не эксплуатационную цепочку.

IMAGE="registry.example/app@sha256:REPLACE_ME"

# verify the image signature
cosign verify "$IMAGE"

# verify attached attestations / provenance
cosign verify-attestation "$IMAGE"

# optional: require annotations or policy claims
cosign verify-attestation -a env=production "$IMAGE"

Как это должно попасть в отчёт

  • Release trust chain: source, workflow, digest, attestation, policy decision.
  • Evidence: verified digest, verification output, exception path, owner.
  • Retest: unsigned or mismatched artifact fails the same deploy gate.
Этическая рамка: материал предназначен для defensive security, исследования собственных систем, controlled labs и подготовки remediation. Здесь нет вредоносных payload-цепочек, persistence-инструкций и шагов для несанкционированного доступа.