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

Apply for SLSA graduation #415

Draft
wants to merge 5 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ The following Technical Initiatives have been approved by the TAC. You may learn
| Security Insights Spec | https://github.com/ossf/security-insights-spec | [Meeting Notes](https://docs.google.com/document/d/14_ILDhSK3ymKqUTQeQBRgJKgfiy_ePoGZIe8s7p3K5E/edit?usp=sharing) | Metrics & Metadata WG | TBD |
| Security Metrics | https://github.com/ossf/Project-Security-Metrics | [Meeting Notes](https://docs.google.com/document/d/14_ILDhSK3ymKqUTQeQBRgJKgfiy_ePoGZIe8s7p3K5E/edit#heading=h.apj7ueyomk4r) | Metrics & Metadata WG | Archived |
| Sigstore | https://github.com/sigstore | [Meeting Notes](https://docs.google.com/document/d/1bsl-Y0KulSD7O_nTekad1sAKOVRb80wyGb-Q5x-zdg0/edit) | OpenSSF TAC | [Graduated](process/project-lifecycle-documents/sigstore_graduated_stage.md) |
| SLSA | https://github.com/slsa-framework/slsa | [Meeting Notes](https://docs.google.com/document/d/1PwhekVB1iDpcgCQRNVN_aesoVdOiTruoebCs896aGxw/edit#heading=h.gjdgxs) | Supply Chain Integrity WG | TBD |
| SLSA | https://github.com/slsa-framework/slsa | [Meeting Notes](https://docs.google.com/document/d/1PwhekVB1iDpcgCQRNVN_aesoVdOiTruoebCs896aGxw/edit#heading=h.gjdgxs) | Supply Chain Integrity WG | [Graduated](process/project-lifecycle-documents/SLSA_graduated_stage.md) |
| SLSA Tooling | https://github.com/ossf/wg-supply-chain-integrity/blob/main/slsa-tooling.md | [Meeting Notes](https://docs.google.com/document/d/18oj3CLJQhZj1dMHKDTq_1kKg0syysKCS7pLyXlw1SRc/edit#heading=h.yfiy9b23vayj) | Supply Chain Integrity WG | TBD |
| Zarf | https://github.com/defenseunicorns/zarf | [Meeting Notes](https://docs.google.com/document/d/1Ww5XOICluxIY_bAsyVieLe9GU9FpXJ3LwSCZxqOSLaM/edit#heading=h.wq25h5ks8vsu) | Supply Chain Integrity WG | [Sandbox](process/project-lifecycle-documents/zarf_sandbox_stage.md) |

Expand Down
72 changes: 72 additions & 0 deletions process/project-lifecycle-documents/SLSA_graduation_stage.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
## Project graduation application

### Project has met all Incubating requirements
* Yes, all relevant information is included below.

### List of project maintainers
The project must have maintainers with a minimum of five different contributors from three different organizational affiliations.

* SLSA has active maintainers across many different organizations including Datadog, GitHub, Google, IBM, Intel, Kusari, New York University, Red Hat.
See https://github.com/slsa-framework/slsa/blob/main/MAINTAINERS.md

### Sponsor
Most projects will report to an existing OpenSSF Working Group, although in some cases a project may report directly to the TAC. The project commits to providing quarterly updates on progress to the group they report to.
* [Supply Chain Integrity WG](https://github.com/ossf/wg-supply-chain-integrity/tree/main)

### Mission of the project
The project must be aligned with the OpenSSF mission and either be a novel approach for existing areas, address an unfulfilled need, or be code needed to deliver OpenSSF WG work. It is preferred that extensions of existing OpenSSF projects collaborate with the existing project rather than seek a new project.
* SLSA (pronounced "salsa") is a security framework, a checklist of standards and controls to prevent tampering, improve integrity, and secure packages and infrastructure. It’s how you get from "safe enough" to being as resilient as possible, at any link in the software supply chain.
* The SLSA specification is useful for both software producers and consumers: producers can follow SLSA’s guidelines to make their software supply chain more secure, and consumers can use SLSA to make decisions about whether to trust a software package.

### Project adoption
The project must be able to show adoption by multiple parties, which could be production deployments or substantial use by established open source communities, and demonstrate the value of that adoption to either the end users or the open source community.
* Since the release of SLSA 1.0 in April 2023, evidence of its adoption keeps growing. This includes support in build platform offerings from companies like [Google](https://cloud.google.com/build/docs/overview), [IBM](https://cloud.ibm.com/docs/devsecops?topic=devsecops-cd-devsecops-slsa), and [Red Hat](https://developers.redhat.com/products/trusted-software-supply-chain/overview), as well as support for [npm package provenance in GitHub](https://github.blog/security/supply-chain-security/introducing-npm-package-provenance/) and the [build provenance artifact attestation GitHub action](https://docs.github.com/en/actions/security-for-github-actions/using-artifact-attestations/using-artifact-attestations-to-establish-provenance-for-builds), support in [Tekton Chains](https://tekton.dev/docs/chains/slsa-provenance/#how-to-configure-tekton-chains), and integration with [Sigstore](https://www.sigstore.dev) among others.

### Release cadence
The project must be able to show a consistent release cadence.
* https://github.com/slsa-framework/slsa/tags

### Governance
Projects must have documented project governance and be able to demonstrate that governance in action.
* https://github.com/slsa-framework/governance

Have a defined and documented roadmap and annual goals for the project
* https://github.com/slsa-framework/slsa/projects?query=is%3Aopen
Copy link
Member

Choose a reason for hiding this comment

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

At first I was skeptical, but this is actually not a bad way to indicate the high-level workstreams a TI is undertaking, especially for a larger project like SLSA!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think one could argue that we are missing specific target dates. We are aiming for SLSA 1.1 to be out by the end of the year but this isn't captured here but otherwise I think it's a pretty good view of what's going on.

Copy link
Member

Choose a reason for hiding this comment

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

Should it be captured here just to meet the metric? The case is strong for graduated status, but we do want to make sure the "I"s are dotted, and "T"s are crossed.

Copy link
Contributor

@marcelamelara marcelamelara Dec 10, 2024

Choose a reason for hiding this comment

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

One way we might track our roadmap is by using GitHub milestones, as we've done in the past. These specifically allow us to set due dates, and to associate specific issues and PR with a milestone to track progress.


Project has met at least 4 times over a period of at least 2 months since becoming incubating
* The SLSA project has basically been meeting every Monday since 2022! See https://slsa.dev/notes/community

Implements, practices, and refines mature software development and release practices, such as adherence to semantic versioning, and having a declared policy for stable releases and backported fixes.
* The SLSA project follows the Community Specification Development Process and has a clearly documented policy about version management:
* https://github.com/slsa-framework/governance/blob/main/5._Governance.md
* https://github.com/slsa-framework/slsa/blob/main/CONTRIBUTING.md#slsa-versions-management

Projects should harden their build systems in accordance with the SLSA Framework
* Not Applicable but we do use features such as branch protection, Dependabot, and Mend Renovate bot.
Copy link
Contributor

Choose a reason for hiding this comment

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

Should we be looking how to apply SLSA in the builds of our reference implementations (e.g. slsa-github-generator)?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes but these are in a different project: SLSA Tooling project so we can deal with those separately.

Copy link
Contributor

Choose a reason for hiding this comment

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

Yes, per our discussion on Slack yesterday, I agree that we ought to handle those separately.


### Security audit
When applicable, projects must have completed a security audit through a third party and addressed audit findings and recommendations.
* Not Applicable.

### Security Baseline

The project meets all applicable Security Baseline requirements:
Copy link
Contributor

Choose a reason for hiding this comment

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

Do these requirements need to be applied to our demos and reference implementations?

Copy link
Contributor

Choose a reason for hiding this comment

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

This something that I think we should clarify. I think in SLSA's case it's the spec and the SLSA GitHub generator.

Copy link
Contributor

Choose a reason for hiding this comment

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

I'd say that the SLSA Jenkins generator is another tool that needs to be included, only if for the relatively wide use of Jenkins.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This application merely refers to the SLSA specification work, the rest is currently in a different project: SLSA Tooling project. The separation dates from when the SLSA spec group was a SIG and it may actually make sense to regroup these into a single project moving forward but I'd rather not delay getting this application processed so let's keep them separated for now.

* [ ] [Security Baseline - Once Sandbox](https://github.com/ossf/tac/blob/main/process/security_baseline.md#security-baseline---once-sandbox)
* [ ] [Security Baseline - To Become Incubating](https://github.com/ossf/tac/blob/main/process/security_baseline.md#security-baseline---to-become-incubating)
* [ ] [Security Baseline - Once incubating](https://github.com/ossf/tac/blob/main/process/security_baseline.md#security-baseline---once-incubating)
* [ ] [Security Baseline - To Become Graduated](https://github.com/ossf/tac/blob/main/process/security_baseline.md#security-baseline---to-become-graduated)

### Project References
The project must provide a list of existing resources with links to the repository, website, a roadmap, contributing guide, demos and walkthroughs, and any other material to showcase the existing breadth, maturity, and direction of the project.

Reference | URL |
|-----------------------|-----|
| Repo | https://github.com/slsa-framework/slsa |
| Website | https://slsa.dev |
| Contributing guide | https://github.com/slsa-framework/slsa/blob/main/CONTRIBUTING.md |
| Security.md | |
| Roadmap | |
| Demos | |
| Best Practices Badge | |
| Scorecard integration | |
| Other | |