Skip to content

Evidence store for your Software Supply Chain attestations, SBOMs, VEX, SARIF, QA reports, etc. With Chainloop, Security and Compliance teams can define policies, what evicence to receive and where to store it. Developers are shielded from this complexity by getting simple instructions on what to provide when instrumenting their CI/CD pipeline

License

Notifications You must be signed in to change notification settings

chainloop-dev/chainloop

Chainloop

OpenSSF Scorecard Go Report Card Test passing Chat on Slack License: Apache-2.0

Chainloop is under active development and you should expect breaking changes before the first stable release. If you are interested in contributing, please take a look at our contributor guide.

What is it?

Chainloop is an open-source evidence store for your Software Supply Chain attestations, Software Bill of Materials (SBOMs), VEX, SARIF, QA reports, and more. With Chainloop, Security, Compliance, and Risk management teams can define security and compliance policies, what evidence and artifacts they want to receive, and where to store them. On the other hand, developers are shielded from all this complexity by being given simple instructions on what to provide when instrumenting their CI/CD pipelines.

To learn more about the project motivation please look at our documentation and see it in action in this video.

How does it work?

Compliant Single Source of Truth

Craft and store attestation metadata and artifacts via a single integration point regardless of your CI/CD provider choice.

Chainloop Overview

The result is having a SLSA level 3 compliant single Source of truth for metadata, artifacts and attestations built on OSS standards such as Sigstore, in-toto, SLSA and OCI.

Chainloop also makes sure the crafting of artifacts and attestation follows best practices and meets the requirements declared in their associated Workflow Contract.

Declarative, contract-based attestation

One key aspect is that in Chainloop, CI/CD integrations are declared via Workflow Contracts.

A Workflow Contract gives Compliance and Security teams full control over what kind of data (build info, materials) must be received as part of the attestation and the environment where these workflows must be executed at. This enables an easy, and maintainable, way of propagating and enforcing requirements downstream to your organization.

You can think of it as an API for your organization's Software Supply Chain that both parties, development and Compliance and Security teams can use to interact effectively.

Chainloop Contracts

Policy as code

Compliance and Security teams can craft Rego policies, and attach them to workflow contracts. Those policies will be automatically evaluated, and their results will be added to the attestation before signing and storage.

We meet you where you are with third-party integrations

Operators can set up third-party integrations such as Dependency-Track, or Guac for SBOM analysis or a storage backend such as an OCI registry, or cloud blob storage to place the received artifacts, pieces of evidence and attestation metadata.

Chainloop Overview

Compliance and Security teams can mix and match with different integrations while not requiring developers to make any changes on their side!

To learn more and to find the list of available integrations, check our integrations page.

Role-tailored experience

Chainloop makes sure to clearly define the responsibilities, experience and functional scope of the two main personas, Compliance/Security and Development teams.

Compliance and Security teams are the ones in charge of defining the Workflow Contracts, crafting policies, setting up third-party integrations, or having access to the control plane where all the Software Supply Chain Security bells and whistles are exposed.

Development teams on the other hand, just need to integrate Chainloop's jargon-free crafting tool and follow the steps via a familiar DevExp to make sure they comply with the Workflow Contract defined by the SecOps team. No need to learn in-toto, signing, SLSA, OCI, APIs, nada :)

Supported Pieces of Evidence / Materials

During the attestation process, you can attach different pieces of evidence and artifacts that will get uploaded to the Content Addressable Storage (if applicable) and referenced in a signed in-toto attestation.

Chainloop supports the collection of the following list of evidence types. For the full list please refer to this page

Getting started

See the getting started guide for detailed information on a) how to download and configure the Chainloop CLI and b) how to deploy Chainloop on your Kubernetes Cluster.

Command Line Interface (CLI) installation

Alternatively, you can download the CLI from the releases pages or build it from source.

To install the latest version for macOS, Linux or Windows (using WSL) just choose one of the following installation methods.

curl -sfL https://raw.githubusercontent.com/chainloop-dev/chainloop/main/docs/static/install.sh | bash -s

you can retrieve a specific version with

curl -sfL https://raw.githubusercontent.com/chainloop-dev/chainloop/main/docs/static/install.sh | bash -s -- --version v0.8.95

and customize the install path (default to /usr/local/bin)

curl -sfL https://raw.githubusercontent.com/chainloop-dev/chainloop/main/docs/static/install.sh | bash -s -- --path /my-path

if cosign is present in your system, in addition to the checksum check, a signature verification will be performed. This behavior can be enforced via the --force-verification flag.

curl -sfL https://raw.githubusercontent.com/chainloop-dev/chainloop/main/docs/static/install.sh | bash -s -- --force-verification

Deploy Chainloop (optional)

Downloading the CLI is everything you need to give Chainloop a try, since, by default, it points to a running instance of Chainloop.

You can also run your own Chainloop instance on your Kubernetes cluster by leveraging this Helm Chart.

Configure CLI (optional)

If you are running your own instance of the Control Plane. You can make the CLI point to your instance by using the chainloop config save command.

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

Authentication

Authenticate to the Control Plane by running

$ chainloop auth login

Finishing the setup

Once you've been logged in, follow these instructions to learn how to set up your account.

Documentation

To learn more, please visit the Chainloop project's documentation website, https://docs.chainloop.dev where you will find a getting started guide, FAQ, examples, and more.

Community / Discussion / Support

Chainloop is developed in the open and is constantly improved by our users, contributors and maintainers. Got a question, comment, or idea? Please don't hesitate to reach out via:

Contributing

Want to get involved? Contributions are welcome.

If you are ready to jump in and test, add code, or help with documentation, please follow the instructions on our Contribution page. At all times, follow our Code of Conduct.

See the issue tracker if you're unsure where to start, especially the Good first issue label.

Changelog

Take a look at the list of releases to stay tuned for the latest features and changes.

License

Chainloop is released under the Apache License, Version 2.0. Please see the LICENSE file for more information.

About

Evidence store for your Software Supply Chain attestations, SBOMs, VEX, SARIF, QA reports, etc. With Chainloop, Security and Compliance teams can define policies, what evicence to receive and where to store it. Developers are shielded from this complexity by getting simple instructions on what to provide when instrumenting their CI/CD pipeline

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages