chainloop-dev/chainloop
GitHub: chainloop-dev/chainloop
软件供应链证据存储与策略引擎,帮助安全团队定义合规契约,让开发人员在 CI/CD 中轻松提交 SBOM、证明等证据,实现供应链可追溯与合规自动化。
Stars: 529 | Forks: 47
# Chainloop
[](https://insights.linuxfoundation.org/project/chainloop)
[](https://securityscorecards.dev/viewer/?uri=github.com/chainloop-dev/chainloop)
[](https://goreportcard.com/report/github.com/chainloop-dev/chainloop)

[](https://join.slack.com/t/chainloop-community/shared_invite/zt-2k34dvx3r-u85uGP_KiLC6ic5Wy4aRnQ)
[](https://github.com/chainloop-dev/chainloop/blob/main/LICENSE.md)
## 它是什么?
[Chainloop](https://github.com/chainloop-dev/chainloop) 是一个用于存储软件供应链证明、软件物料清单 (SBOM)、VEX、SARIF、QA 报告等的开源证据存储库。借助 Chainloop,安全、合规和风险管理团队可以定义安全和合规策略,明确他们希望接收哪些证据和工件,以及将其存储在何处。另一方面,开发人员通过获得关于如何在 CI/CD 流水线中进行插桩时提供所需内容的简单指示,从而免受所有这些复杂性的困扰。
欲了解更多关于项目动机的信息,请查看[我们的文档](https://docs.chainloop.dev)。
## 它是如何工作的?
### 合规的单一事实来源
无论您选择哪种 CI/CD 提供商,都可以通过单一的集成点制作并存储证明元数据和工件。

其结果是拥有一个符合 SLSA 第 3 级标准的、用于元数据、工件和证明的单一事实来源,该来源构建于 [Sigstore](https://www.sigstore.dev/)、[in-toto](https://in-toto.io/)、[SLSA](https://slsa.dev) 和 [OCI](https://github.com/opencontainers/image-spec/blob/main/spec.md) 等 OSS 标准之上。
Chainloop 还确保工件和证明的制作遵循**最佳实践,并满足**其相关工作流契约中声明的要求。
### 声明式的、基于契约的证明
Chainloop 的一个关键方面是,CI/CD 集成是通过[**工作流契约**](https://docs.chainloop.dev/concepts/contracts)声明的。
工作流契约赋予合规和安全团队**完全控制权,以决定必须接收哪些类型的数据(构建信息、材料)作为证明的一部分,以及这些工作流必须在何种环境中执行**。这提供了一种简单且可维护的方式,将需求向下传播并在组织内强制执行。
您可以将其视为**组织软件供应链的 API**,开发团队与合规及安全团队双方都可以利用它进行有效的交互。

### 策略即代码
合规和安全团队可以[编写](https://docs.chainloop.dev/guides/custom-policies) [Rego](https://www.openpolicyagent.org/docs/latest/policy-language/) 策略,并将其[附加](https://docs.chainloop.dev/concepts/policies)到工作流契约中。这些策略将被自动评估,其结果将在签名和存储之前添加到证明中。
### 通过第三方集成满足您的需求
运维人员可以设置第三方集成,例如用于 SBOM 分析的 [Dependency-Track](https://docs.chainloop.dev/guides/dependency-track) 或 [Guac](https://docs.chainloop.dev/guides/guac/),或者使用存储后端(如 OCI 注册表或云对象存储)来存放接收到的工件、证据和证明元数据。

合规和安全团队可以混合搭配不同的集成,同时**无需开发人员在其端进行任何更改**!
欲了解更多信息并查找可用集成列表,请查看我们的[集成页面](./devel/integrations.md)。
### 角色定制体验
Chainloop 确保明确定义**两个主要角色(合规/安全团队和开发团队)**的职责、体验和功能范围。
合规和安全团队负责定义工作流契约、制定策略、设置第三方集成,或访问展示所有软件供应链安全细节的控制平面。
另一方面,开发团队只需要集成 Chainloop 无术语的[制作工具](https://docs.chainloop.dev/concepts/attestations#attestation-lifecycle),并通过熟悉的 DevExp 遵循步骤,以确保他们符合 SecOps 团队定义的工作流契约。无需学习 in-toto、签名、SLSA、OCI、API 等等 :)
## 支持的证据 / 材料
在证明过程中,您可以附加不同的证据和工件,这些证据和工件将被上传到[内容寻址存储](https://docs.chainloop.dev/concepts/cas-backend)(如适用),并在已签名的 in-toto 证明中被引用。
Chainloop 支持收集以下证据类型列表。完整列表请参考[此页面](https://docs.chainloop.dev/concepts/material-types)
- [CycloneDX SBOM](https://github.com/CycloneDX/specification)
- [SPDX SBOM](https://spdx.dev/specifications/)
- [OpenVEX](https://github.com/openvex)
- [SARIF](https://docs.oasis-open.org/sarif/sarif/v2.1.0/)
- [Container Image Reference](https://github.com/opencontainers/image-spec)
- [Helm Chart](https://helm.sh/docs/topics/charts/)
- [BlackDuck SCA](https://www.blackduck.com/software-composition-analysis-tools/black-duck-sca.html)
- [ZAP DAST](https://github.com/marketplace/actions/zap-baseline-scan)
- [PrismaCloud Twistcli Scan](https://docs.prismacloud.io/en/compute-edition/30/admin-guide/tools/twistcli-scan-images)
- [CSAF Security Incident Report](https://docs.oasis-open.org/csaf/csaf/v2.0/os/csaf-v2.0-os.html#42-profile-2-security-incident-response)
- [CSAF Informational Advisory](https://docs.oasis-open.org/csaf/csaf/v2.0/os/csaf-v2.0-os.html#43-profile-3-informational-advisory)
- [CSAF Security Advisory](https://docs.oasis-open.org/csaf/csaf/v2.0/os/csaf-v2.0-os.html#44-profile-4-security-advisory)
- [CSAF VEX](https://docs.oasis-open.org/csaf/csaf/v2.0/os/csaf-v2.0-os.html#45-profile-5-vex)
- [Gitlab Security report](https://docs.gitlab.com/ee/user/application_security/)
- [JUnit](https://www.ibm.com/docs/en/developer-for-zos/14.1?topic=formats-junit-xml-format)
- [JaCoCo XML Coverage Reports](https://www.jacoco.org/jacoco/trunk/doc/)
- [SLSA Provenance files](https://slsa.dev/spec/v1.1/provenance)
- Attestation: 现有的 Chainloop 证明。
- Artifact Type: 代表一个软件工件。
- Custom Evidence Type: 不适合任何其他类别的自定义证据,例如 json 格式的审批报告等。
- Key-Value 元数据对
## 开始使用
按照[快速入门](https://docs.chainloop.dev/quickstart)或[入门指南](https://docs.chainloop.dev/get-started)获取有关 a) 如何下载和配置 Chainloop CLI 以及 b) 如何在您的 Kubernetes 集群上部署 Chainloop 的详细信息。
### 命令行界面 (CLI) 安装
要为 macOS、Linux 或 Windows(使用 [WSL](https://learn.microsoft.com/en-us/windows/wsl/install))**安装最新版本**,只需选择以下安装方法之一。
```
curl -sfL https://dl.chainloop.dev/cli/install.sh | bash -s
```
您可以使用以下命令检索特定版本
```
curl -sfL https://dl.chainloop.dev/cli/install.sh | bash -s -- --version v1.7.0
```
并自定义安装路径(默认为 /usr/local/bin)
```
curl -sfL https://dl.chainloop.dev/cli/install.sh | bash -s -- --path /my-path
```
如果您的系统中存在 [`cosign`](https://docs.sigstore.dev/cosign),除了校验和检查外,还将执行签名验证。可以通过 `--force-verification` 标志强制执行此行为。
```
curl -sfL https://dl.chainloop.dev/cli/install.sh | bash -s -- --force-verification
```
### 部署 Chainloop(可选)
下载 CLI 是您试用 Chainloop 所需的全部操作,因为默认情况下,它指向一个[正在运行的 Chainloop 实例](https://app.chainloop.dev)。
您也可以利用[此 Helm Chart](./deployment/chainloop/)在您的 Kubernetes 集群上**运行您自己的 Chainloop 实例**。
### 配置 CLI(可选)
如果您正在运行控制平面的[自有实例](https://github.com/chainloop-dev/chainloop)。您可以使用 `chainloop config save` 命令让 CLI 指向您的实例。
```
chainloop config save \
--control-plane my-controlplane.acme.com \
--artifact-cas cas.acme.com
```
### 认证
通过运行以下命令向控制平面进行认证
```
$ chainloop auth login
```
### 完成设置
登录后,请按照[这些说明](https://docs.chainloop.dev/get-started/setup)了解如何设置您的账户。
## 文档
欲了解更多信息,请访问 Chainloop 项目的文档网站 https://docs.chainloop.dev,您将在那里找到入门指南、常见问题解答、示例等。
## 社区 / 讨论 / 支持
Chainloop 是开源开发的,并由我们的用户、贡献者和维护者不断改进。有问题、评论或想法?请不要犹豫,通过以下方式联系我们:
- GitHub [Issues](https://github.com/chainloop-dev/chainloop/issues)
- [Slack](https://join.slack.com/t/chainloop-community/shared_invite/zt-2k34dvx3r-u85uGP_KiLC6ic5Wy4aRnQ)
- Youtube [Channel](https://www.youtube.com/channel/UCISrWrPyR_AFjIQYmxAyKdg)
## 更新日志
查看[版本](http://github.com/chainloop-dev/chainloop/releases)列表以了解最新的功能和变更。
## 许可证
Chainloop 是在 Apache License, Version 2.0 下发布的。更多信息请参见 [LICENSE](./LICENSE.md) 文件。
标签:Attestation, Cloud Native, DevSecOps, EVTX分析, EVTX分析, EVTX分析, Go, LNA, QA报告, Ruby工具, SARIF, SBOM, SDLC, SLSA, VEX, 上游代理, 中间件漏洞, 人工智能安全, 元数据管理, 制品管理, 合规性, 子域名突变, 安全策略, 开源, 提示词设计, 日志审计, 源-of-Truth, 硬件无关, 策略引擎, 结构化提示词, 网络安全挑战, 证据存储, 跌倒检测, 软件供应链, 软件物料清单