Skip to content

Integrate SLSA ("Supply-chain Levels for Software Artifacts") support #12661

@rugk

Description

@rugk

Problem

Any software can introduce vulnerabilities into a supply chain. As a system gets more complex, it’s critical to already have checks and best practices in place to guarantee artifact integrity, that the source code you’re relying on is the code you’re actually using. Without solid foundations and a plan for the system as it grows, it’s difficult to focus your efforts against tomorrow’s next hack, breach or compromise.

from https://slsa.dev/

Proposed Solution

SLSA is in essence a framework/specification/ for software supply chain security.

SLSA seems to be a big industry effort on getting to deal with supply-chain security, which has never been done before in that essence AFAIK: https://openssf.org/press-release/2023/04/19/openssf-announces-slsa-version-1-0-release/

There is a big theory block to unpack, and I also have not yet gotten it all and also think this is quite… huge…, but in general it makes sense: There are many risks associated and we of course target the OSS use case here though in general.

(mostly copied from another project)

Notes

There has been previous discussion here about that. But I wanted to raise it as an issue, as it seems(?) to be getting the most popular or (currently) the one that is working best right now.

This is heavily related to rust-lang/crates.io#75 / sigstore/community#25

To get to this topic more easily the first step may actually not be cargo integration, but…

  • writing a builder for rust projects, so they can publish provenance outside of that world.
  • actually getting the cargo build to publish provenance in the first step (which is a different issue IMHO, so feel free to track it in a different issue)

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-registriesArea: registriesA-securityArea: securityC-feature-requestCategory: proposal for a feature. Before PR, ping rust-lang/cargo if this is not `Feature accepted`S-needs-team-inputStatus: Needs input from team on whether/how to proceed.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions