Skip to content

Latest commit

 

History

History
134 lines (114 loc) · 26.7 KB

Compliance.md

File metadata and controls

134 lines (114 loc) · 26.7 KB

Compliance Reports

sbomqs helps generating compliance reports for your SBOMs. We support industry standard regulations/guidelines like NTIA minimum elements, BSI TR-03183 v1.1/v2.0 and Openchain Telco. The goal of compliance reports is to verify if the sbom file adheres to these standard, before they are distributed.

Below is how we map the various requirements to SBOM's of CycloneDX & SPDX formats

TR-03183: SBOM Technical Guidelines by BSI

BSI guidelines follows a transitional system, to comply with the Technical Guideline, SBOMs must be generated using the most recent version, though the previous version is allowed for six months after an update, and SBOMs remain compliant based on the guideline valid at their delivery date.

TR-03183-2 TR-03183-2 field CycloneDx SPDX(2.2.1) SPDX(3.0) Notes
3.1 Definition of SBOM vuln vulnerabilities non-deterministic TBD Presence of Vuln Info is non-compliant, for SPDX package->externalReference->comment could be used, but non-determinstic
4. SBOM formats specification BomFormat SPDXversion TBD CycloneDX and SPDX only
specification version SpecVersion SPDXversion TBD CycloneDX 1.5 and above, SPDX 2.2.1 and above
5.1 Level of Detail Build SBOM metadata->lifecycles no-deterministic-field TBD
Depth dependencies, compositions relationships TBD A complex topic, mostly resolved via attestations via compositions for CDX. For SPDX relationship comments is an option, but non-deterministic
5.2.1 Required SBOM fields creator metadata->(authors/supplier/manufacturer) creator->(Person/Organization) TBD Email or url only, if the name exists but email/url missing its deemed non-compliant
timestamp metadata->timestamp created TBD Non conformant time format is deemed non-compliant
5.2.2 Required Component fields creator component(supplier/authors) packageSupplier, packageOriginator TBD Looking for email or url, for spdx, we check supplier then originatior(manufacturer)
name component->name package->name TBD
version component->version package->version TBD
filename component->type(file), name PackageFileName TBD For CycloneDX properties could be used
dependencies dependencies, compositions relationships TBD cdx we look for attestations via compositions, spdx nothing exists
associated license component->license->Expression packageConcluded TBD we lookup sdpx,spdx-exceptions,aboutcode, and licenseRef-
hash component->hashes package->checksums TBD we only look for sha-256
executable TBD Open to suggestions
archive TBD Open to suggestions
structured TBD Open to suggestions
5.3.1 Additional SBOM fields SBOM-URI serialNumber, version namespace TBD for cdx bom-link is considered a URN
5.3.2 Additional Component fields source code uri component->externalReferences->type (vcs) no-deterministic-field TBD
URI of the executable form component->externalReferences->type (distribution/distribution-intake) PackageDownloadLocation TBD
hash of source code no-deterministic-field package->PackageVerificationCode TBD
other uniq identifiers component->cpe, component->purl externalReference->security->cpe, externalReference->package_manager->purl TBD
concluded licenses license->acknowlegement(1.6+) PackagConcluded TBD For cyclonedx only 1.6+ spec, it can be determined.
5.4.1 Optional data fields for each component Declared licences comp->license->acknowledgement(1.6+) PackageDeclared TBD For cyclonedx only 1.6+ spec, it can be determined
Sourcecode Hash non-deterministic packageVerificationCode TBD
8.1.11 Optional Digital Signature signature signature non-deterministic TBD DPX would normally provide this externally to the SBOM
8.1.12 Optional Bom Links bomlinks externalReference->Type(Bom) externalDocumentRefs TBD SPDX if packages are prefixed with external Doc, those should be referenced. In both specs, sbomqs will check existence via url & localfile

TR-03183-2 TR-03183-2 field CycloneDx SPDX(2.3) Notes
4. SBOM formats specification BomFormat SPDXversion CycloneDX and SPDX only
specification version SpecVersion SPDXversion CycloneDX 1.4 and above, SPDX 2.3 and above
5.1 Level of Detail Build SBOM metadata->lifecycles (1.5 and above) no-deterministic-field
Depth dependencies, compositions relationships A complex topic, mostly resolved via attestations via compositions, but spdx lacks that field now
5.2.1 Required SBOM fields creator metadata->authors, metadata->supplier creator We are primarily looking for email or url from these fields, if the name exists but email/url missing its deemed non-compliant
metadata->manufacturer
timestamp metadata->timestamp created
5.2.2 Required Component fields creator component->supplier packageSupplier, packageOriginator Looking for email or url, for spdx, we check supplier then originatior(manufacturer)
name component->name package->name
version component->version package->version
dependencies dependencies, compositions relationships cdx we look for attestations via compositions, spdx nothing exists
license component->license packageConcluded, packageDeclated we lookup sdpx,spdx-exceptions,aboutcode, and licenseRef-
hash component->hashes package->checksums we only look for sha-256
5.3.1 Additional SBOM fields SBOM-URI serialNumber, version namespace for cdx bom-link is considered a URN
5.3.2 Additional Component fields source code uri component->externalReferences->type (vcs) no-deterministic-field
URI of the executable form component->externalReferences->type (distribution/distribution-intake) PackageDownloadLocation
hash of source code no-deterministic-field package->PackageVerificationCode
other uniq identifiers component->cpe, component->purl package->externalReference->security (cpe/purl)

OpenChain Telco: SBOM Requirements

The OpenChain Telco specifies mandatory properties for an SBOM. Below is how we have derived all the values.

OpenTelco Section ID OpenTelco field SPDX(2.3) Notes
DataFormat 3.1 SBOM data format specs SPDX2.2 and SPDX2.3 only
SPDX elements 3.2 SBOM info SBOM type SPDX only
3.2.2 spec version field SPDXVersion SPDX 2.3 and above
3.2.3 SBOM license field DataLicense
3.2.4 spec identifier field SPDXID
3.2.5 SBOM name field DocumentName
3.2.6 SBOM namespace field DocumentNamespace
3.2.7 SBOM Creator field creator Tools and Organization must be present
3.2.8 SBOM Created field created Time at which document was created.
3.2.9 SBOM Creator comment field comment Some comment from the document creators
3.2.10 Package Info package info
3.2.11 Package name field PackageName
3.2.12 Package SPDX identifier field SPDXID
3.2.13 Package version field PackageVersion
3.2.14 Package supplier field PackageSupplier
3.2.15 Package download location field PackageDownloadLocation
3.2.16 Files analyzed field FilesAnalyzed
3.2.17 Package checksum field PackageChecksum we only look for sha-256
3.2.18 Concluded license field PackageLicenseConcluded
3.2.19 Declared license field PackageLicenseDeclared
3.2.20 Copyright text field PackageCopyrightText
3.2.21 External reference field ExternalRef
Machine Readable Data Format 3.3 SBOM machine readable format specs SPDX data-format in Tag-value or JSON
Human Readable Data Format 3.4 SBOM human readable format SBOM file format Tag:Value or JSON
SBOM Build Information 3.5 SBOM Creator field SBOM creator It must contain tool name, tool version and Organization
Timing of SBOM delivery 3.6 SBOM delivery time delivery time
Method of SBOM delivery 3.7 SBOM delivery method delivery method
SBOM Scope 3.8 SBOM scope sbom scope

NTIA minimum elements: SBOM Requirements for NTIA

The NTIA specifies mandatory properties for an SBOM. Below is how we have derived all the values.

  • Released:
  • Contact:
NTIA minimum elements Section ID NTIA Fields CycloneDX SPDX(2.3) Notes
Automation Support 1.1 Machine Readable Format BomFormat & data forrmat SPDXversion & data forrmat optional
SBOM Data Fields 2.1 SBOM Authors metadata->authors, metadata->supplier creator->Person, creator->organization or creator->tool Mandatory
2.2 SBOM Timestamp metadata->timestamp created Mandatory
2.3 SBOM Dependencies dependencies relationships Mandatory(number of dependencies primary comp have)
Package Data Fields 2.4 Component Name component->name package->name Mandatory
2.3 Component Dependencies dependencies relationships Optional(Component to component dependencies)
2.6 Component Supplier Name component->supplier packageSupplier, packageOriginator Mandatory
2.7 Component Version component->version package->version Mandatory
2.8 Component with Uniq IDs component->cpe, component->purl externalRef->cpe, externalRef->purl Mandatory
Practices and Processes 3.1 Depth dependencies, compositions relationships optional
3.2 Known Unknowns optional