Эта статья была написана совместно с Виктором Карташовым и Даниэлем Небенцалем.
Лакмусовая бумажка аудитора: можете ли вы доказать качество своих построек?
«Можете ли вы окончательно доказать, что каждое отправленное вами изображение контейнера было построено именно так, как вы утверждаете?»
Большинство аудиторов ожидают быстрого и уверенного ответа, а не недель лихорадочного рефакторинга YAML. Фреймворк SLSA (уровни цепочки поставок для программных артефактов) предоставляет основу для такого доказательства: структурированное, защищённое от несанкционированного доступа подтверждение происхождения.
Но вот в чем загвоздка: традиционное подключение генератора происхождения к каждому рабочему процессу CI быстро превращается в игру «Бей крота»:
- Десятки репозиториев? Это означает необходимость рассмотрения и объединения бесчисленных PR-запросов.
- Изменения в конвейере? Постоянное ручное обслуживание.
- Исторические постройки? Не существует простого способа воссоздать доказательства для прошлых выпусков.
Scribe Security устраняет это противоречие с помощью SLSA on Scale. Работает на основе наших более высокого уровня Платформы CLI, он интеллектуально собирает существующие журналы CI, автоматически обнаруживает каждую сборку образа и выдает полную информацию о происхождении (неподписанную для SLSA уровня 1 или подписанную для SLSA уровня 2) — и все это с помощью одной команды, не требующей предварительной настройки.
Платформы CLI: Изменение парадигмы бесконтактного взаимодействия в провенансе
Традиционный подход | Интерфейс командной строки Scribe Platforms |
Встроить шаг генератора в каждое задание CI | Никаких правок в конвейере — анализирует логи после сборка завершена |
Трудно засыпать старые постройки | Ретроактивно создает происхождение из прошлых запусков рабочего процесса |
Линейные усилия на репо | Одна команда масштабирует до 10 → 1,000+ репозиториев |
Как творится волшебство: автоматизация доверия
Интерфейс командной строки Scribe Platforms выполняет сложную работу за кулисами, обеспечивая автоматизированное определение происхождения SLSA, и все это без вмешательства в ваши существующие сборки:
- Он собирает бревна: Scribe подключается к вашей системе CI/CD (в настоящее время GitHub Actions, поддержка GitLab и Jenkins появится в ближайшее время) для извлечения журналов сборки.
- Он обнаруживает каждую сборку: Без какой-либо специальной настройки конвейеров Scribe интеллектуально распознает команды Docker, Podman или Buildah, чтобы точно определить создание каждого образа.
- Извлекает ключевые метаданные: Важнейшие данные, такие как теги изображений, криптографические дайджесты, идентификаторы исполнителей, аргументы сборки и временные метки, извлекаются непосредственно из этих журналов.
- Он генерирует связанные SBOM: Для полной прослеживаемости Scribe автоматически создает оба источник Спецификация материалов программного обеспечения (SBOM) и изображение SBOM, связывая их напрямую с происхождением постройки.
- Изготовлено по технологии SLSA. Используя эти обширные данные, Scribe затем создает для каждого изображения полностью соответствующее всем требованиям SLSA заявление о происхождении.
- Расписывается (необязательно) для уровня 2: Просто добавив флаг, Scribe интегрируется с вашими возможностями подписи (X509, Pub-Priv, Sigstore или предпочитаемый вами KMS) для криптографического подписания источника, повышая его до уровня SLSA 2.
- Проверяет и сообщает: Важно то, что Scribe автоматически запускает предопределенные СЛСА.l1 or СЛСА.l2 инициативы против доказательств. Это подтверждает их целостность и выдает полный отчет SARIF, который также подтверждает соответствие требованиям уровня 2.
Все сгенерированные артефакты могут оставаться локальными или безопасно загружаться в Scribe Hub для долгосрочного хранения с защитой от несанкционированного доступа.
За пределами поколения: подтверждение соответствия политике как кодексу
Генерация подтверждения происхождения — это основа, но именно подтверждение его соответствия требованиям — вот что действительно удовлетворяет аудиторов. Сразу после того, как Scribe генерирует подтверждение происхождения SLSA, он автоматически выполняет необходимые действия на основе этого подтверждения.
Эти инициативы действуют как автоматизированные аудиторы, проверяя такие вещи, как:
- Является ли происхождение правильным и полным?
- Все ли необходимые поля присутствуют и точны?
- Являются ли связанные SBOM действительными и доступными?
- Было ли происхождение криптографически подписано ожидаемыми личностями?
Результат? Подробный отчёт SARIF с подробным описанием вашего статуса соответствия. Для Уровня 2 этот отчёт также подписан, предоставляя любому аудитору предельно чёткий, машиночитаемый и проверяемый ответ.
Быстрый пример: получение подтверждения происхождения SLSA с помощью Scribe-Security 🚀
Интерфейс командной строки Platforms CLI от Scribe-Security упрощает создание сертификатов SLSA для ваших сборок, предлагая унифицированную команду для обеспечения как уровня 1 (без подписи), так и уровня 2 (с подписью). Ключевым отличием является наличие аргумента –valint.sign.
Чтобы получить источник SLSA для всех сборок на основе тегов в вашем репозитории scribe-security/valint на GitHub, выполните следующую команду:
Колотить
Затем в дело вступает Scribe: он сканирует последние рабочие процессы GitHub, интеллектуально обнаруживает сборки ваших образов, собирает все необходимые данные и записывает полную информацию о происхождении SLSA со связанными SBOM.
–valint.sign: Ваш переход на SLSA уровня 1 или 2 🔑
Команда –valint.sign флаг действует как простой переключатель:
- не указывать –valint.sign для SLSA уровня 1 (без подписи): Scribe создает базовую неподписанную информацию о происхождении для базовой прослеживаемости.
- Включают –valint.sign для SLSA уровня 2 (подпись): Scribe криптографически подписывает файлы происхождения и отчет о соответствии SARIF, обеспечивая более высокий уровень проверяемой гарантии.
Эта унифицированная команда, управляемая одним флагом, упрощает достижение надежного соответствия SLSA в любом масштабе без изменения существующих конвейеров CI/CD.
Генерация происхождения SLSA с открытым исходным кодом
Генерация источников SLSA не ограничивается частными репозиториями. Многие проекты с открытым исходным кодом имеют публичные журналы CI/CD, что позволяет генерировать данные о происхождении для их сборок. Хотя эти записи о происхождении изначально могут содержать менее подробную информацию (например, секреты репозитория и организации), будущие улучшения, возможно, через Источник СБОМ, могли бы решить эту проблему.
Например, вы можете легко создать источник SLSA уровня 1 для go-gitea/gitea проект с использованием платформы открывают команда:
После выполнения этой команды вы увидите журнал, содержащий запрос SLSA, и таблицу, в которой обобщены обнаруженные сборки изображений и их происхождение:
Как видите, на момент написания статьи последней найденной версией `gitea/gitea` была **v1.24.2**. Два изображения, для которых были выданы данные о происхождении SLSA и соответствующие доказательства, — это `gitea/gitea:1.24.2` и `gitea/gitea:1.24.2-rootless`. Например, данные о происхождении SLSA можно найти в следующем примере: ссылке.,
В рамках нашей услуги мы управляем жизненным циклом фреймворка и доказательств, чтобы обеспечить четкое представление о ваших продуктах и активах.
Этот контент предоставлен вам Scribe Security, ведущим поставщиком комплексных решений для обеспечения безопасности цепочки поставок программного обеспечения, обеспечивающим современную безопасность артефактов кода, а также процессов разработки и доставки кода по всей цепочке поставок программного обеспечения. Подробнее.