13 KiB
13 KiB
Software Bill of Material (SBOM)
Work order
Description
When: evaluating and selecting Software Bill of Materials (SBOM) tools for integration into our workflows,
As: a DevSecOps Engineer Team Lead,
I want:
- To conduct a market overview of available SBOM tools.
- Test and evaluate SBOM solutions through demos within our Azure DevOps environment.
- Build and document reusable pipeline templates for SBOM generation and validation.
This ensures:
- Compliance with increasing customer demands for SBOM capabilities.
- Streamlined implementation of SBOM generation in our DevOps pipelines.
- Improved security and transparency of our software supply chain. (insofern wir selber Software bereitstellen)
Acceptance Criteria
-
Market Overview:
- A comprehensive list of SBOM tools and their key features, including license and approx costs (free, open source, payed, enterprise size costs > kostenlos, vertretbar, arschteuer)
- git repo docs-onboarding, neue sbom.md datei
-
Testing & Evaluation:
- Successful deployment and execution of SBOM tools in our Azure DevOps environment.
- Demos conducted for at least 3 shortlisted SBOM solutions.
-
Pipeline Templates:
- Creation of reusable pipeline templates for SBOM generation in Azure DevOps.
- Inclusion of relevant metadata, such as Licenses, CVEs etc.
- git repo cicd-pipeline-library, new sub-folder "sbom", ment-bold.yml verschieben in den neuen Ordner
-
Documentation:
- Step-by-step guide for integrating selected SBOM tools in Azure DevOps pipelines alongside cicd template
- Example configurations if possible
-
Training and Adoption:
- Team participation in at least one SBOM-related training webinar (e.g., Cybellum Technologies SBOM Webinar) > schau mal, ob du 2 oder 3 Webinars findest, die sinnvoll sind und an denen wir teilnehmen können
- Internal presentation summarizing findings and providing guidance for SBOM adoption > Präsentation bei einer der kommenden XWare GLs im Bereich Know How zu Beginn
Market Overview
Most used from this list: https://spdx.dev/use/spdx-tools/
| Name and Link | Key Features | License | Approx Costs |
|---|---|---|---|
| Microsoft's SBOM Tool |
|
MIT | Open Source |
| Syft |
|
Apache-2.0 | Open Source |
| ScanCode Toolkit |
|
Apache-2.0 | Open Source |
| SCANOSS |
|
Proprietary | Free, $35K/year, Custom |
| Vigilant Ops |
|
Proprietary | Unknown |
| Threatrix |
|
Proprietary | Unknown |
| Black Duck |
|
Proprietary | Unknown |
| OSS Review Toolkit |
|
Apache-2.0 | Open Source |
| Manifest |
|
Proprietary | Unknown |
| Lib4SBOM |
|
Apache-2.0 | Open Source |
| GUAC |
|
Apache-2.0 | Open Source |
| FOSSology |
|
GPL-2.0 / LGPL-2.1 | Open Source |
| DISTRO2SBOM |
|
Apache-2.0 | Open Source |
| CycloneDX |
|
Apache-2.0 | Open Source |
| CAST SBOM Manager |
|
Proprietary | Free |
| Dependency Track |
|
Apache-2.0 | Open Source |
| Trivy |
|
Apache-2.0 | Open Source |
| Parlay |
|
Apache-2.0 | Open Source |
| Finite State |
|
Proprietary | Unknown |
| Checkmarx |
|
Proprietary | Unknown |
| Qwiet |
|
Proprietary | Unknown |
| Snyk |
|
Proprietary | Unknown |
| SBOM Observer |
|
Proprietary | €49/user/month, €69/user/month, Custom |
| SOOS |
|
Proprietary | $0/month, $90/month, Custom |
Testing & Evaluation
| Name and Link | Result |
|---|---|
| Microsoft's SBOM Tool | Simple and easy to install and use. Very good result. Every package recognized including licenses and vulnerabilities information. With SBOM Tool Azure DevOps Extension very nice graphical processing what is directly integradted in pipline log. |
| Syft | Simple and easy to install and use. Poor result. Packages not recognized but binaries. Multiple duplicates. Difficult to evaluate the result. No license information. No graphical processing provided. |
| ScanCode Toolkit | Simple and easy to install and use. Poor result. Packages not recognized but binaries. No licenses and vulnerabilities information. Difficult to evaluate the result. Graphical processing provided with external tool. |
Further tests are therefore carried out with Microsoft's SBOM Tool.
Pipeline Templates
With SBOM Tool Azure DevOps Extension a simple call as task with all needed parameters already exists. Therefore no template is required.
Documentation
Install Extension
Appropriate permissions or an authorization are required for the installation of SBOM Tool Azure DevOps Extension.
Use in pipeline
After installation a task in the pipeline can look like the following example:
- task: sbom-tool@1
displayName: 'Generate SBOM Manifest'
inputs:
command: 'generate'
buildSourcePath: '$(Build.SourcesDirectory)'
buildArtifactPath: '$(Build.ArtifactStagingDirectory)'
enableManifestSpreadsheetGeneration: true
enableManifestGraphGeneration: true
enablePackageMetadataParsing: true
fetchLicenseInformation: true
fetchSecurityAdvisories: true
gitHubConnection: 'GitHubForSandbox'
packageSupplier: 'MyOrganisation'
packageName: 'MyPackage'
packageVersion: '$(Build.BuildNumber)'
A complete example:
jobs:
- job: publish
steps:
- task: DotNetCoreCLI@2
displayName: 'Publish project'
inputs:
command: 'publish'
publishWebProjects: true
arguments: '--output "$(Build.ArtifactStagingDirectory)"'
- task: sbom-tool@1
displayName: 'Generate project SBOM manifest'
inputs:
command: 'generate'
buildSourcePath: '$(Build.SourcesDirectory)'
buildArtifactPath: '$(Build.ArtifactStagingDirectory)'
enableManifestSpreadsheetGeneration: true
enableManifestGraphGeneration: true
enablePackageMetadataParsing: true
fetchLicenseInformation: true
fetchSecurityAdvisories: true
gitHubConnection: 'GitHub Advisory Database Connection'
packageSupplier: 'MyOrganisation'
packageName: 'MyPackage'
packageVersion: '$(Build.BuildNumber)'
- task: PublishBuildArtifacts@1
displayName: 'Publish artifacts'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
Training and Adoption
Possible Webinars:
- https://jfrog.com/webinar/creation-of-your-software-bill-of-materials-sbom/
- https://www.mend.io/resources/webinars/sboms-a-critical-tool-for-modern-organizations/
- https://www.medcrypt.com/private/webinars-conferences/i-have-an-sbom-now-what
- https://openchainproject.org/news/2024/10/01/coming-soon-webinar-on-sbom-visualization
- https://www.cybeats.com/blog/5-key-takeaways-from-microsoft-and-googles-webinar-on-sbom