jchraibi / supply-chain-pipelines

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Software Supply Chain Security

The following pipeline shows security features applied into a CI/CD pipelines:

image

  • Verify images deployed to target clusters using RHACS sigstore integration

Below are some high-level highlights of the security features implemented:

Scan Application code using CodeReady Dependency Analytics

Pipeline task: crda-scan

The CLI tool allows to scan application code and provide feedback about used libraries and dependencies, and provides a report similar to this:

image

The report is generated by a Red Hat hosted service, and a sample report can be accessed here: https://recommender.api.openshift.io/api/v2/stack-report/cb61da376e2b417a85d011818b6a45df

Generate an SBOM file using syft: https://github.com/anchore/syft

Pipeline task: syft-sbom

This task uses the syft cli to generate a SBOM based on the application code. Syft can also generate an SBOM from a container image.

Scan container images using Red Hat Advanced Security for Kubernetes (RHACS):

RHACS allow you to scan container images for security vulnerabilities and use the scan results as a gate within the pipeline to stop the execution in case of security issues. This is a sample report provided by RHACS: image

Sign all TaskRuns using TektonChains with the OpenShift Pipelines Operator

The OpenShift Pipelines Operator allows you to easily add Tekton Chains in your cluster through a simple configuration, and thus sign all TaskRuns and container images that are produced within the pipeline. Here is a sample of a signed TaskRun that is adding the signed payload as an annotation to the Tekton TaskRun:

image

Provide provenance attestations and store them in Rekor

The Rekor transparency log for the previous signed TaskRun can be found here: https://rekor.sigstore.dev/api/v1/log/entries?logIndex=2842400

There are still upcoming features such as:

  • Integrating with Hashicorp Vault to store secrets in a GitOps approach and mount them in the pipeline for Git usernames/password, Registry tokens, Application workloads, without having plain values stored in the Git repository.
  • Documentation of SLSA level compliance for each of the features

About