Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Secure Software Supply Chain #26

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

arsulegai
Copy link
Member

  1. Introduce governance mechanism for secure software supply chain in LFDT.
  2. Introduce a mandatory scorecard badge.
  3. Introduce governance mechanism for release artifacts signing and verification.

title: Release Signing
parent: Governing Documents
grand_parent: LF Decentralized Trust TAC
nav_order: 1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
nav_order: 1
nav_order: 10

Not sure the right number, but I am guessing 10 is close.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you think there's a possibility for us to improve the structure with sub-folders? For instance, project reports may have annual report and quarterly report in them. Security may have governing documents related to software supplychain, the other process related to having a representative from the project.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would like to avoid sub-folders as that results in too many clicks.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 for trying to avoid too many/too deep folder structures in general


LFDT has a holistic approach to governing the security of projects and implements the highest levels of standards. The objective is to establish a consistent and secure approach to signing artifacts, leveraging industry-standard tools and practices while allowing flexibility for individual project implementations. Software verification processes are made available to ensure the integrity and authenticity of all artifacts throughout their lifecycle. A monitoring framework is introduced to score the project, rating the release process.

This initiative aligns with efforts to establish a secure software supply chain for LFDT projects and achieve full [SLSA (Supply Chain Levels for Software Artifacts) compliance](https://slsa.dev/spec/v1.0/levels) in the release process.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This initiative aligns with efforts to establish a secure software supply chain for LFDT projects and achieve full [SLSA (Supply Chain Levels for Software Artifacts) compliance](https://slsa.dev/spec/v1.0/levels) in the release process.
This policy aligns with efforts to establish a secure software supply chain for LFDT projects and achieve full [SLSA (Supply Chain Levels for Software Artifacts) compliance](https://slsa.dev/spec/v1.0/levels) in the release process.

## LFDT Project Compliance

1. The LFDT Technical Advisory Committee (TAC) standardizes the signing of artifacts using tools from the Linux Foundation’s digital signing project, [OpenSSF Sigstore](https://openssf.org/projects/sigstore/).
2. Each project must document the process of verifying the artifacts using [OpenSSF Sigstore](https://openssf.org/projects/sigstore/). The project must have a file called `RELEASE.md`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
2. Each project must document the process of verifying the artifacts using [OpenSSF Sigstore](https://openssf.org/projects/sigstore/). The project must have a file called `RELEASE.md`.
2. Each project must document the process of signing and verifying the artifacts using [OpenSSF Sigstore](https://openssf.org/projects/sigstore/) in a file called `RELEASE.md`.


1. The LFDT Technical Advisory Committee (TAC) standardizes the signing of artifacts using tools from the Linux Foundation’s digital signing project, [OpenSSF Sigstore](https://openssf.org/projects/sigstore/).
2. Each project must document the process of verifying the artifacts using [OpenSSF Sigstore](https://openssf.org/projects/sigstore/). The project must have a file called `RELEASE.md`.
3. Each project must enable and apply for a Sigstore's scorecard. The project must capture the scorecard's result and generate a badge visible on the README.md file.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
3. Each project must enable and apply for a Sigstore's scorecard. The project must capture the scorecard's result and generate a badge visible on the README.md file.
3. Each project must enable and apply for an [OpenSSF's scorecard](https://openssf.org/projects/scorecard/). The project must capture the scorecard's result and generate a badge visible on the `README.md` file.


## LFDT Project Compliance

1. The LFDT Technical Advisory Committee (TAC) standardizes the signing of artifacts using tools from the Linux Foundation’s digital signing project, [OpenSSF Sigstore](https://openssf.org/projects/sigstore/).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. The LFDT Technical Advisory Committee (TAC) standardizes the signing of artifacts using tools from the Linux Foundation’s digital signing project, [OpenSSF Sigstore](https://openssf.org/projects/sigstore/).
1. The LFDT Technical Advisory Committee (TAC) standardizes the signing of artifacts and confirmation of signing using tools from the Linux Foundation’s Open Source Security Foundation (OpenSSF) -- [OpenSSF Sigstore](https://openssf.org/projects/sigstore/) and [OpenSSF Scorecard](https://openssf.org/projects/scorecard/), respectively.

1. The LFDT Technical Advisory Committee (TAC) standardizes the signing of artifacts using tools from the Linux Foundation’s digital signing project, [OpenSSF Sigstore](https://openssf.org/projects/sigstore/).
2. Each project must document the process of verifying the artifacts using [OpenSSF Sigstore](https://openssf.org/projects/sigstore/). The project must have a file called `RELEASE.md`.
3. Each project must enable and apply for a Sigstore's scorecard. The project must capture the scorecard's result and generate a badge visible on the README.md file.
4. An LFDT incubation project will follow at least SLSA Level 1, while graduated projects will meet at least SLSA Level 2.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
4. An LFDT incubation project will follow at least SLSA Level 1, while graduated projects will meet at least SLSA Level 2.
4. An LFDT incubation project must meet at least SLSA Level 1, while graduated projects must meet at least SLSA Level 2.

Copy link
Contributor

@denyeart denyeart Oct 24, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've gone back and forth on whether graduated projects MUST sign artifacts, but after discussion at the TAC meeting I'm fine with it if there is a reference example of signing using Github Actions that we can point projects to.

- **Project Team:**
- Add a `RELEASE.md` file containing the build and release process of artifacts. Capture the information such as versioning followed, steps to reproduce the build, current release process, resources for verifying the signed artifacts at the least.
- Generate the scorecard and upload as a badge on `README.md` file.
- Each project will be responsible for the technical integration of Sigstore's cosign and scorecard into its build process. This approach allows projects to adapt the implementation to their specific needs while adhering to the overarching governance framework.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Each project will be responsible for the technical integration of Sigstore's cosign and scorecard into its build process. This approach allows projects to adapt the implementation to their specific needs while adhering to the overarching governance framework.
- Each project will be responsible for the technical integration of Sigstore's cosign and OpenSSF's scorecard into its build process. This approach allows projects to adapt the implementation to their specific needs while adhering to the overarching governance framework.

Copy link
Contributor

@petermetz petermetz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM as long as the pending topics are resolved as well.


## Responsibilities
- **Project Team:**
- Add a `RELEASE.md` file containing the build and release process of artifacts. Capture the information such as versioning followed, steps to reproduce the build, current release process, resources for verifying the signed artifacts at the least.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We use a RELEASING.md file in Fabric. I think this is typical when the file describes the process of creating a release.

1. The LFDT Technical Advisory Committee (TAC) standardizes the signing of artifacts using tools from the Linux Foundation’s digital signing project, [OpenSSF Sigstore](https://openssf.org/projects/sigstore/).
2. Each project must document the process of verifying the artifacts using [OpenSSF Sigstore](https://openssf.org/projects/sigstore/). The project must have a file called `RELEASE.md`.
3. Each project must enable and apply for a Sigstore's scorecard. The project must capture the scorecard's result and generate a badge visible on the README.md file.
4. An LFDT incubation project will follow at least SLSA Level 1, while graduated projects will meet at least SLSA Level 2.
Copy link
Contributor

@denyeart denyeart Oct 24, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've gone back and forth on whether graduated projects MUST sign artifacts, but after discussion at the TAC meeting I'm fine with it if there is a reference example of signing using Github Actions that we can point projects to.

@tkuhrt
Copy link
Contributor

tkuhrt commented Dec 2, 2024

@arsulegai : Could you please update this pull request so that we may get it approved and checked in?

- The LFDT staff will maintain and secure the signing keys and the relevant infrastructure necessary for managing these keys. This centralization ensures a high level of security and reliability for key management practices.
- Scan for SBOM compliance.

## General Recommendations
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The document is called "Release Signing" but contains much more content. Maybe we extract the "General Recommendations" in a doc on the same level and name it "SLSA guidance" or something similar.

1. Introduce governance mechanism for secure software supply
chain in LFDT.
2. Introduce a mandatory scorecard badge.
3. Introduce governance mechanism for release artifacts signing
and verification.

Signed-off-by: S m, Aruna <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants