Chainloop: защита цепочки поставок ПО с SLSA 3

Что это такое?

Chainloop — это хранилище свидетельств (evidence store) с открытым исходным кодом для аттестаций цепочки поставок программного обеспечения (Software Supply Chain), спецификаций программного обеспечения (Software Bill of Materials, SBOM), VEX, SARIF, отчётов по контролю качества и многого другого. С помощью Chainloop команды по безопасности, соответствию требованиям и управлению рисками могут определять политики безопасности и соответствия, указывать, какие свидетельства и артефакты они хотят получать и где их хранить. Разработчики при этом избавлены от всей этой сложности: им достаточно следовать простым инструкциям о том, что нужно предоставить при инструментировании CI/CD-конвейеров.

Чтобы узнать больше о мотивации проекта, обратитесь к нашей документации.

Как это работает?

Единый соответствующий требованиям источник истины

Создавайте и храните метаданные аттестаций и артефакты через единую точку интеграции — независимо от того, какой CI/CD-провайдер вы используете.

Общий обзор архитектуры Chainloop

В результате формируется единый источник истины, соответствующий уровню SLSA 3, для метаданных, артефактов и аттестаций, построенный на открытых стандартах: Sigstore, in-toto, SLSA и OCI.

Chainloop также следит за тем, чтобы создание артефактов и аттестаций соответствовало лучшим практикам и требованиям, заявленным в связанном контракте рабочего процесса (Workflow Contract).

Декларативная аттестация на основе контрактов

Ключевая особенность Chainloop состоит в том, что интеграции с CI/CD описываются через контракты рабочих процессов (Workflow Contracts).

Контракт рабочего процесса даёт командам по соответствию требованиям и безопасности полный контроль над тем, какие данные (информация о сборке, материалы) должны поступать в рамках аттестации, и над средой, в которой эти рабочие процессы должны выполняться. Это обеспечивает простой и удобный в сопровождении способ распространения и применения требований во всей организации.

Можно представить это как API для цепочки поставок программного обеспечения вашей организации — инструмент, с помощью которого обе стороны, команды разработки и команды по соответствию требованиям и безопасности, могут эффективно взаимодействовать.

Схема контрактов Chainloop

Политики как код

Команды по соответствию требованиям и безопасности могут создавать политики на языке Rego и привязывать их к контрактам рабочих процессов. Эти политики будут автоматически оцениваться, а их результаты добавятся в аттестацию до подписания и сохранения.

Интеграция с инструментами, которые вы уже используете

Операторы могут настраивать интеграции со сторонними инструментами: например, Dependency-Track или Guac для анализа SBOM, а также использовать в качестве бэкенда хранилища реестр OCI или облачное хранилище объектов — для размещения полученных артефактов, свидетельств и метаданных аттестаций.

Обзор интеграций Chainloop

Команды по соответствию требованиям и безопасности могут свободно комбинировать различные интеграции, не требуя от разработчиков никаких изменений с их стороны!

Чтобы узнать больше и ознакомиться со списком доступных интеграций, посетите ./devel/integrations.md[страницу интеграций].

Опыт, адаптированный под роли

Chainloop чётко разграничивает зоны ответственности, пользовательский опыт и функциональный охват двух основных ролей: команд по соответствию/безопасности и команд разработки.

Команды по соответствию требованиям и безопасности отвечают за определение контрактов рабочих процессов, создание политик, настройку интеграций со сторонними инструментами и имеют доступ к плоскости управления (control plane), где сосредоточены все инструменты безопасности цепочки поставок.

Команды разработки, в свою очередь, должны лишь подключить понятный инструмент создания аттестаций и следовать привычному рабочему процессу, чтобы убедиться в соответствии контракту, определённому командой SecOps. Никакого изучения in-toto, подписания, SLSA, OCI, API — ничего лишнего :)

Поддерживаемые типы свидетельств и материалов

В процессе аттестации можно прикреплять различные свидетельства и артефакты, которые будут загружены в адресуемое по содержимому хранилище (Content Addressable Storage, CAS) — там, где это применимо — и включены в подписанную аттестацию in-toto.

Chainloop поддерживает сбор следующих типов свидетельств. Полный список доступен на этой странице:

Начало работы

Следуйте руководству по быстрому старту или подробному руководству по началу работы — там описано, как скачать и настроить Chainloop CLI и как развернуть Chainloop в кластере Kubernetes.

Установка интерфейса командной строки (CLI)

Примечание

Также можно скачать CLI со страницы релизов или собрать из исходного кода.

Чтобы установить последнюю версию для macOS, Linux или Windows (через WSL), выберите один из следующих способов установки.

curl -sfL https://dl.chainloop.dev/cli/install.sh | bash -s -- --oss
Примечание

Чтобы установить корпоративную версию, опустите флаг --oss.

Можно установить конкретную версию:

curl -sfL https://dl.chainloop.dev/cli/install.sh | bash -s -- --oss --version v1.7.0

А также задать путь установки (по умолчанию /usr/local/bin):

curl -sfL https://dl.chainloop.dev/cli/install.sh | bash -s -- --oss --path /my-path

Если в системе установлен cosign, помимо проверки контрольной суммы будет выполнена верификация подписи. Это поведение можно принудительно включить с помощью флага --force-verification.

curl -sfL https://dl.chainloop.dev/cli/install.sh | bash -s -- --oss --force-verification

Развёртывание Chainloop (необязательно)

Чтобы попробовать Chainloop, достаточно скачать CLI — по умолчанию он указывает на уже запущенный экземпляр Chainloop.

Вы также можете развернуть собственный экземпляр Chainloop в кластере Kubernetes с помощью этого Helm-чарта.

Настройка CLI (необязательно)

Если вы используете собственный экземпляр плоскости управления, укажите CLI на него с помощью команды chainloop config save.

chainloop config save \
  --control-plane my-controlplane.acme.com \
  --artifact-cas cas.acme.com

Аутентификация

Для аутентификации в плоскости управления выполните:

$ chainloop auth login

Завершение настройки

После входа в систему следуйте этим инструкциям, чтобы настроить свою учётную запись.

Документация

Чтобы узнать больше, посетите сайт документации проекта Chainloop: https://docs.chainloop.dev — там вы найдёте руководство по началу работы, ответы на часто задаваемые вопросы, примеры и многое другое.

Сообщество, обсуждения и поддержка

Chainloop разрабатывается открыто и постоянно улучшается благодаря нашим пользователям, участникам и сопровождающим. Есть вопрос, комментарий или идея? Не стесняйтесь обращаться через:

Участие в разработке

Хотите присоединиться? Мы рады вкладу от всех желающих.

Если вы готовы тестировать, писать код или помогать с документацией, следуйте инструкциям на странице Contributing. Соблюдайте наш Кодекс поведения.

Если не знаете, с чего начать, загляните в трекер задач — особенно в задачи с меткой Good first issue.

Журнал изменений

Следите за списком релизов, чтобы быть в курсе последних возможностей и изменений.

Лицензия

Chainloop распространяется под лицензией Apache License, Version 2.0. Подробнее см. в файле LICENSE.

© 2026 meganuke