-
Notifications
You must be signed in to change notification settings - Fork 499
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
Feature: Detect if SBOMs generated #1476
Comments
@david-a-wheeler I am interested in this feature for a set of open-source tools we are building to improve the current state of available SBOMs (Quality scoring tool sbomqs released, others in the pipeline). For our needs, we need a set of conventions for :
I suspect there are other considerations, such as how the presence of an SBOM interacts with existing Security policies / Advisories. Please let me know where I can follow the discussion on this feature, and I am happy to participate as well. |
Hmm, larger questions. I think the SPDX community would be the right place for that, and similarly the CycloneDX developers for that. @kestewart - can you tell us more re: SPDX? For some of the declarations that may be more a work in progress. I think SLSA, S2C2F, and security-insights.yml might be relevant OpenSSF projects at least. There's a paper about-to-be-released that talks about different types of SBOMs (e.g., source SBOMs vs. build SBOMs and so on). |
There's going to be a lot of commonality on how SBOMs are generated irrespective of format. For example:
IMO, there are too many variables to be able to capture all possible ways SBOMs are generated. What we may want to focus on is not whether or not its generated, but whether or not its published. Would could theoretically identify publishing to:
Both CycloneDX and SPDX have conventions, so I think it would be easy to write something to identify the existence of files that meet those conventions to determine if the project produced an SBOM or not. My two cents. |
@stevespringett - I completely agree, focusing on SBOMs that are published is what matters, and there are already existing conventions. I think it's okay to start with a few common conventions, then expand as we learn of others if they become common and/or recommended. |
It would be great to detect that SBOMs are published, but we also need to be able to verifiably link them to the published artifact. That could be something that the SLSA provenances generated by the same release pipeline can attest to. |
re: SLSA-attested SBOMs: We're working with anchor for this @wagoodman and we have a SLSA3-compliant sbom builder PoC at https://github.com/laurentsimon/sbom-action/blob/feat/slsa-trw/.github/workflows/slsa3.yml |
Note: this is related to issue #2605 |
FWIW - There is very little SBOM present in repositories and very little consistency in where in the repository it is being published: https://docs.google.com/spreadsheets/d/1Ok4JupcLrTvoLbaIJ0wSfD7wKx6hgE5V1SQrqfRyPss/edit?usp=sharing IMHO, SBOM can be thought of representation of a specific state of the |
I don't expect SBOMs to become prevalent in repositories (even for their releases), since most repositories are libraries with unresolved library versions. What are the applications of SBOMs for a main branch? Is it to cover binaries present in the repo or for the source code itself? |
👍 |
Agree. However, it is worth keeping in mind that majority of conventions naturally gets copied over to closed source ecosystem as well. Therefore any convention developed here help OSS tools such as scorecard as well as other commercial tools look for SBOM in a consistent location across both open and closed repositories.
It's to cover the source code. A typical development pattern is to keep
So SBOM on |
Thanks for the info. My worry on the source SBOM is that it's additional work for maintainers, will require pre-submit / tooling, and often times it provides little to no benefits to existing manifest files already present in source code - package.json, etc. From a maintainer's perspective, this feels like duplicate work. Source-code manifest files are already used for vuln scanning and work well (except for certain ecosystems - see https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/using-the-dependency-submission-api). I understand these manifest files don't cover other information like license information, but arguably this could be handled by other tools. I'm not against source code SBOMs, but it would be useful to understand its benefits and the usability implications for maintainers.
|
I should clarify. My expectation is to see a set of conventions around publishing SBOM for |
If we're able to tell that a project is an "application", then this works fine. This is not always obvious, is my worry... and it could lead to a lot of false positives. I'm open for suggestions how to tackle this |
I think we need a way for scorecard to indicate "something to look at / think about", instead of a results that penalizes projects. Today. I think we could do that thru an As part of the work on #1874, I'll keep this in mind that we need a better way to indicate more than just "positive", "negative" results. Any ideas / feedback on what we could call this kind of results? "recommendation" still feels like we're asking users to do something. |
That's exactly it! I wasn't aware of
Thoughts on 'Voluntary' / 'Desirable' / 'Preferred' / 'Improvement'? |
I have created an issue at secure-repo to transform specific GitHub Actions workflows/ configuration files to generate SBOM. Many maintainers use secure-repo to apply security best practices to get a higher Scorecard score. The SBOM related issue has two easy scenarios 1. Please let me know if you have any feedback about this. |
This issue is stale because it has been open for 60 days with no activity. |
Is your feature request related to a problem? Please describe.
Past problems, including the
log4j vulnerability Log4Shell, have made it abundantly clear to many people that it's important
to be able to quickly figure out what is included in some software.
It's be good to be able report on whether or not a project provides a software bill of material (SBOM),
because that tells potential users that the developers are trying to help by providing this info.
We might even look at the White House Executive Order on Cybersecurity to see
if there are other things projects could provide to help users respond to a problem.
Describe the solution you'd like
Detect if SBOMs are present for all the dependencies in use.
I'm sure there are many options, let's talk about those in the comments.
I just want to record the idea so we can discuss it.
The text was updated successfully, but these errors were encountered: