Chainloop представляет собой хранилище доказательств с открытым исходным кодом, предназначенное для управления цепочкой поставок программного обеспечения. Инструмент командной строки функционирует в рамках конвейеров GitHub Actions, GitLab, Jenkins или Dagger. Он собирает результаты сборки, загружает файлы в хранилище, адресуемое по содержимому, и создает подписанное свидетельство in-toto для каждого артефакта. Спецификация in-toto фиксирует информацию о том, кто выполнил каждый этап сборки, что позволяет впоследствии проверить эту информацию.
Группы по соответствию нормативным требованиям и безопасности получают плоскость управления, где все доказательства поступают в подписанном виде, независимо от того, какой поставщик непрерывной интеграции их создал.
Решение проблемы фрагментации
Проблема становится очевидной при анализе конвейера без такого решения. Сборка производит множество артефактов: перечень компонентов, отчет анализатора, отчет о покрытии кода, ссылку на контейнер и результаты сканирования от различных инструментов безопасности. Каждый файл хранится в разном месте, и ничто не связывает их между собой с коммитом, который их создал. Это затрудняет ответ на вопросы о версиях использованных библиотек спустя месяцы после выпуска.
Контракты обеспечивают контроль
Контракт рабочего процесса определяет, какие материалы и информацию должна предоставить сборка, а также в какой среде она должна выполняться. Группы безопасности и соответствия разрабатывают контракты, а Chainloop проверяет их соблюдение. Политики, написанные на языке Open Policy Agent (Rego), автоматически оцениваются и их результаты встраиваются в подписанное свидетельство, поэтому решение о сборке остается неизменным в подписанной записи.
Платформа обеспечивает первоклассную поддержку семнадцати форматов доказательств: CycloneDX и SPDX, OpenVEX, документы CSAF, SARIF, результаты ZAP и BlackDuck, отчеты GitLab, результаты JUnit, покрытие JaCoCo, диаграммы Helm и ссылки на образы контейнеров. Прочие форматы можно добавлять как пользовательские типы доказательств или пары ключ-значение.
Подпись может выполняться через Sigstore или через собственную инфраструктуру открытых ключей организации, включая AWS KMS или Keyfactor, что важно для организаций, требующих хранения ключей на месте.
Интеграция для разных аудиторий
Артефакты и доказательства можно направлять в реестр OCI или облачное хранилище, отправлять в Dependency-Track или Guac для анализа компонентов, а также уведомлять о них через Jira, Discord или Slack. Команды разработки взаимодействуют только с инструментом создания артефактов, в то время как группы безопасности управляют контрактами, политиками и интеграциями через плоскость управления.
Соответствие нормативным требованиям
Платформа помогает соответствовать требованиям FedRamp, Executive Order 14028, Закона ЕС о кибероустойчивости и Закона об оперативной устойчивости цифровых технологий. Проект предоставляет руководства по соответствию SLSA уровня 3 и готовит руководство по FedRamp.
Инструмент по умолчанию работает с облачным экземпляром Chainloop, что удобно для тестирования. Для локального развертывания можно использовать Helm-диаграмму на собственном кластере Kubernetes.
Chainloop распространяется бесплатно на GitHub.
