Support for SPDX BOMs #1222
-
After reading this, I know this might be a sensitive topic But I am currently having the problem that SPDX is on the way of getting the major SBOM format in my company, because of several reasons:
As the usage of SPDX will not go away this leaves me with this alternatives:
I am interested how this is handled for other people using dependency track and SBOMs, does anybody else having these problems? Are there any suggestions how to solve this? As the removal of SPDX is politically driven not technically I am asking you to consider this decision which is imparing the usage and interoperability of Dependency Track. |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 5 replies
-
ISO now has two SBOM standards that cannot achieve the majority of cybersecurity use cases today. CycloneDX is an OWASP standard that achieves the majority of cybersecurity use cases and supports the most widely requested license use cases.
SBOM is driven primarily by cybersecurity use cases, not legal ones. If license use cases were not possible, SBOM would still be a requirement of Executive Order 14028. The NTIA minimum elements for SBOM do not contain any fields related to license, but do contain identity fields used for vulnerability analysis use cases including purl, CPE, and SWID. If your organization is driving SBOM adoption purely based on license requirements, that's an interesting situation and not representative of the software industry as a whole.
That's unfortunate. Most open source and commercial security tools that support SBOM, support CycloneDX. Some also support SPDX. It's not until you get out of the security industry and into license/IP specific tools that SPDX becomes the predominate format. It should be noted however, that CycloneDX SBOMs can be used as an OpenChain compliance artifact. So it's in that tools best interest to support CycloneDX.
There are a few open source and commercial tools available that are starting to compete with Dependency-Track. Competition is good. However, DT has been around since 2013 and these newer tools have a bit of catching up to do, which they eventually will. NCSC (Netherlands) refers to Dependency-Track as a reference implementation for SBOM cybersecurity use cases. So it may be difficult to find a replacement that can achieve what DT does today, but in time, there will be many options available.
That's possible, although, I haven't seen any good tools that do this. An alternative may be to standardize on CycloneDX because the CycloneDX CLI can export into SPDX 2.1 and 2.2 formats. We realize there's legacy tooling that only supports SPDX file formats, so the CLI supports them to make interop more accessible.
Removal of SPDX was expedited by LF behavior and plagiarism. Removal of SPDX was already planned as the standard does not support any of the use cases that DT is advancing in the v4.x series. If you refer to the DT 4.0 Preview video on YouTube, DT 3.x was about trying to achieve SCA-like things with SBOMs and not relying on SCA. This was a huge success and had never been done before. DT v4.x is about doing what SCA cannot achieve. So we're focused on services, have implemented and will be advancing SWID, will be integrating with ZAP for DAST analysis of services defined in SBOMs, will be versioning SBOMs based on changes, better supporting hardware, dynamically creating dataflow diagrams for threat modeling, etc, etc, etc. None of these are remotely possible with SPDX. It didn't make sense to drag along a format that cannot achieve any of these use cases today. So removal was already planned, but was certainly expedited by their own actions. On a purely technical level, SPDX supports external references. These are essentially aliases of what a component is identified as. It supports multiple Maven coordinates, multiple purls, multiple CPEs, etc. This isn't possible in the real world. A component can only have a single identity. If you change that identity, you change other information about that component (e.g. changing a Maven coordinate alters the hash value of that component). Unfortunately, SPDX cannot state what something is, only what something could be. It does this though supporting zero or more external references of every component. This is an interesting capability but not a feature you'd want in a bill of materials format. The Dependency-Track project also removed support for importing Dependency-Check XML reports a long while ago - for the same reason. Any file format that relies purely on evidence rather than stating factually what a component is, isn't a good fit for Dependency-Track. |
Beta Was this translation helpful? Give feedback.
-
Thanks for your very detailed and comprehensive answer. I will accept this as an answer although I am still not happy with the outcome of removing SPDX. We currently decided to keep Dependency Track and chose my least favorite option of doing SBOM in two different formats, so we will keep SPDX and also create CycloneDX exclusively for DT. At least they are based on the same data source, so I hope we can minimize any side effects. As for the driver for SBOM, I think in most larger companies there is an even stronger driver than security and that is (legal) compliance. In your linked documents for the executive order, I cannot find any reference, that security fields like PURL or CPE are a requirement, the possible SBOM formats that are listed include SPDX, CycloneDX and SWID. Only the identification of the software by name and version are the most important fields and that should be fulfilled by all three formats. This is how Microsoft fulfills the requirement by SPDX: As a security person I see the value in CycloneDX, but being a standard now this will drive SPDX adoption. The best thing to hope for as a user is, that the product will support both formats, but then there will be products only supporting one (like DT) which makes adoption of SBOM harder in the end. |
Beta Was this translation helpful? Give feedback.
ISO now has two SBOM standards that cannot achieve the majority of cybersecurity use cases today. CycloneDX is an OWASP standard that achieves the majority of cybersecurity use cases and supports the most widely requested license use cases.
SBOM is driven primarily by cybersecurity use cases, not legal ones. If license use cases were not possible, SBOM would still be a requirement of Executive Order 14028. The NTIA minimum elements for SBOM do not contain any fields related to license, but do contain identity fields used for vulnerability analysis use cases including purl, CPE…