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

[SSDF Epic] PS: Protect software #123

Open
jiekang opened this issue Feb 28, 2022 · 6 comments
Open

[SSDF Epic] PS: Protect software #123

jiekang opened this issue Feb 28, 2022 · 6 comments
Assignees
Labels

Comments

@jiekang
Copy link

jiekang commented Feb 28, 2022

This issue tracks the PS SSDF items and will also contain more detail for them:

Work that addresses these items can reference this epic issue.

  • PS.1.1: Store all forms of code, including source code, executable code, and configuration-as-code, based on the principle of least privilege so that only authorized personnel, tools, services, etc. have access
    1. All repositories used to store source code and binary artifacts used in Adoptium offerings must be disclosed as part of Adoptium's internal security assessment and determined to meet all security standards outlined in Adoptium's security repository controls
  • PS.2.1: Make software integrity verification information available to all users
    1. All Adoptium offerings must adhere to the Adoptium signing process
      (provide (gpg ?) signed releases temurin-build#1275)
  • PS.3.1: Securely archive the necessary files and supporting data (e.g., integrity verification information, provenance data) to be retained for each software release.
    1. All offerings must store all release files in a secure internal repository and restrict access to them. Each offering will maintain process documentation detailing, Source Code Management (SCM) information (repositories used, repository configurations/settings, version control logging, Risk-based Access Control (RBAC) & Access Control List (ACL) details).
  • PS.3.2: Collect, safeguard, maintain, and share provenance data for all components of each software release via a software bill of materials [SBOM]
    1. Generate a machine-readable software bill of materials (SBOM) for each released version of all offerings that contains the following data elements at a minimum and provide this information to customers: Supplier, Component Name, Unique Identifier, Version, Component Hash, Relationship (i.e CONTAINS), SBOM Author
@smlambert
Copy link
Contributor

smlambert commented May 3, 2022

I will be focussing on PS 3.2.

PS.3.2: Collect, safeguard, maintain, and share provenance data for all components of each software release via a software bill of materials [SBOM]
Generate a machine-readable software bill of materials (SBOM) for each released version of all offerings that contains the following data elements at a minimum and provide this information to customers: Supplier, Component Name, Unique Identifier, Version, Component Hash, Relationship (i.e CONTAINS), SBOM Author

There are already several issues opened related to this work, which I will assign myself.
adoptium/temurin-build#2900
adoptium/temurin-build#2813

@andrew-m-leonard
Copy link
Contributor

I will look into PS.3.1: Securely archive the necessary files and supporting data (e.g., integrity verification information, provenance data) to be retained for each software release.

@andrew-m-leonard
Copy link
Contributor

andrew-m-leonard commented May 5, 2022

Initial comments:

PS.3.1: Securely archive the necessary files and supporting data (e.g., integrity verification information, provenance data) to be retained for each software release.

  1. Might depend on what they mean by "release files" ? Suspecting they are talking about "source code release files", ie.the "source", not the "binaries"

  2. Need to gather and maintain:

  • List of repositories used, eg. skara mirror github repo, temurin-build repo
  • To each repo, snapshot: Merged PRs since last release, "Write" access Adoptium Team members for each repo
  1. Does "archive" mean "take a copy"? Do we currently archive/backup our github repos?

=================================

  • We could argue simply having these files and supporting PR provenance in github.com repos, is sufficient, ie.by simply querying the github for the release in question gives you all the necessary files and provenance: eg.https://github.com/adoptium/jdk17u/commits/release
  • And for access control these are "public" repos, so recording the "write" access Adoptium github Team information.
  • Provenance is an interesting question, as essentially the source provenance is from OpenJDK and "everyone" who submits PRs to that upstream repository. Those PRs are recorded in the commits in the github repo, as to who each contributor is finding their github "profile" is about as far as it goes.

@steelhead31
Copy link
Contributor

steelhead31 commented May 5, 2022

Im focussing on PS1.1, currently identifying and dcoumenting, the 46 GH repos in the adoptium project, breaking them into functional areas, and once that is completed, documenting the current access control mechanisms, and evaluating whether that meets the security standards detailed below.
'
PS.1.1: Store all forms of code, including source code, executable code, and configuration-as-code, based on the principle of least privilege so that only authorized personnel, tools, services, etc. have access
All repositories used to store source code and binary artifacts used in Adoptium offerings must be disclosed as part of Adoptium's internal security assessment and determined to meet all security standards outlined in Adoptium's security repository controls'

Currently being worked on in issue #143

@steelhead31
Copy link
Contributor

@tellison
Copy link
Contributor

PS1.1 Documentation can be found on this https://docs.google.com/document/d/1NtG03VDr20DN8KX-wbdGr-lplMaXaSHfZQUMlDm7sCk/edit#heading=h.lwt7k16quujk

Thanks for this. Comments directly in the doc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: No status
Development

No branches or pull requests

6 participants