Software-as-a-Service BOM (SaaSBOM)

 

I'm a circle
Software Bill of Materials
Software-as-a-Service BOM
Vulnerability Exploitability Exchange
Manufacturing Bill of Materials
Operations Bill of Materials
Bill of Vulnerabilities
Javascript Object Notation
Extensible Markup Language
Protocol Buffers

Modern software often relies on external services, or is made up entirely of services. CycloneDX is capable of describing any type of service including:

  • Microservice Architecture
  • Service Orientated Architecture (SOA)
  • Function as a Service (FaaS)
  • n-Tier Architecture
  • Actor model
  • System of Systems

SaaSBOMs compliment Infrastructure-as-Code (IaC) by providing a logical representation of a complex system, complete with inventory of all services, their reliance on other services, endpoint URLs, data classifications, and the directional flow of data between services. Optionally, SaaSBOMs may also include the software components that make up each service.

CycloneDX is protocol agnostic and is capable of describing services over HTTP(S), REST, GraphQL, MQTT, and intra-process communication. The specification provides enough information about services to automatically generate dataflow diagrams useful in security and privacy threat modeling. Refer to Use Cases for details on services.

Use of CycloneDX SaaSBOMs is recommended by the Cloud Security Alliance.

Independent SBOM and SaaSBOM

The inventory of services and software components may be combined into a single BOM, or may have independent BOMs. Inventory described in an SBOM will typically remain static until such time the inventory changes. However, deployment information is much more dynamic and subject to change. Therefore, it is recommended to decouple the SaaSOMs from the SBOMs for large systems. This allows service information to be updated without having to create and track additional SBOMs.

Independent BOM and VEX Document

When SaaSBOMs are decoupled from SBOMs, it is possible for every service defined in an SaaSBOM to reference its corresponding SBOM. In the case of large microservice architectures, this would typically result in a one to many relationship with a single SaaSBOM and many SBOMs. Each service in the SaaSBOM would reference its corresponding SBOM.

With CycloneDX, it is possible to reference a component, service, or vulnerability inside a BOM from other systems or other BOMs. This deep-linking capability is referred to as BOM-Link and is a formally registered URN.

Learn more about how CycloneDX makes use of BOM-Link.

SBOM With Embedded Services

BOM With Embedded VEX

CycloneDX also supports embedding services information inside a BOM. There are several uses for embedding services including:

  • Organizations with a shared responsibility model for software development and deployment
  • SBOMs containing components that may rely on external services with the goal of augmenting the SBOM with these services

High-Level Object Model

CycloneDX Object Model Swimlane

Examples

BOMs demonstrating SaaSBOM capabilities can be found at https://github.com/CycloneDX/sbom-examples

CycloneDX Supporters

Apiiro
Contrast Security
IonChannel
Lockheed Martin
NowSecure
OWASP
Rezilion
Sonatype
Vdoo
Xperi