SBOMs and the importance of inventory
Can a Software Bill of Materials (SBOM) provide organisations with better insight into their supply chains?

Software supply chains are big, complex, and are an enticing target for a cyber attack (as the high-profile SolarWinds compromise illustrated). This is why having a software inventory, knowing what it contains (and therefore knowing what you must secure) is such a vital security measure.
One tool that can help you do this is a Software Bill of Materials, or SBOM. An SBOM is an often-cited tool which lists the component parts and software dependencies of a software package, and is designed to help vendors and developers better understand the open source and third party components it may contain. This should be an exhaustive list which includes open-source libraries, proprietary software, and licensed dependencies. Some may also include the tools used to produce the software, along with other provenance information.
The NCSC recognises that SBOMs are being increasingly used in many settings. The White House’s 2021 Executive Order on Improving the Nation’s Cybersecurity put SBOMs in the limelight and made them mandatory if software is used in federal IT systems. In 2022, the EU proposed the Cyber Resilience Act (CRA), in which one of the specific goals is “To increase transparency into the range of software’s range of exploitable vulnerabilities and associated security elements”, with SBOMs referenced as a way to “provide those who manufacture, purchase, and operate software with information that enhances their understanding of the supply chain, which has multiple benefits, in particular it helps manufacturers and users to track known newly emerged vulnerabilities and cybersecurity risks.”
However, SBOMs have only become mainstream recently, and thus the tools are still maturing and an understanding of how to use them is still evolving. This blog discusses the importance of keeping track of your software inventory, how (and where) SBOMs can be used, and also points out their limitations.
It’s important to note that this blog is neither an endorsement nor a rejection of SBOM technologies. The value of any SBOM implementation will depend upon a number of factors, including your wider software development processes and practices, the experience of your staff, and your organisation’s risk appetite. Perhaps most importantly, the mere presence of a SBOM does not guarantee that a supply chain is secure, and is not the answer to resolving all your supply chain risks.
Note:
For detailed information about how to assess and gain confidence in your supply chain cyber security, please refer to the NCSC’s Supply Chain Guidance.
How can SBOMs help?
Software producers need to understand what components their products are built from, and which of those are known to be vulnerable. SBOMs are a mechanism for recording this component inventory, which can be used with other tools to identify software in the supply chain with known vulnerabilities.
SBOMs are a standardised way of listing the component parts and software dependencies involved in the development and delivery of an application. This doesn’t make SBOMs a cyber security tool per se; although the inability to produce an SBOM is a red flag. However, SBOMs can be paired with tools such as vulnerability scanners to identify vulnerabilities that may be present in the software being analysed. This visibility allows developers and vendors be aware of what could affect their software, and take any actions necessary to mitigate risks.
SBOMs should be cryptographically signed, ideally at the same time and using the same certificate used to sign the associated software. A signed SBOM gives you the confidence that the SBOM has not been modified and belongs to the software it is attached to. Unsigned SBOMs cannot do this and offer no level of trust or verification, like how unsigned software could have been modified without being known.
Once there is a process for generating SBOMs for software, a new SBOM should be generated every time the software is built. Therefore having a dynamic SBOM, where a new up-to-date version is produced with every new version update of the software is preferred, as inaccuracies in SBOMs greatly decrease their effectiveness. In this sense, an inaccurate SBOM offers false assurance, which in turn leads to a higher chance of being at risk.
Developer considerations
If a third party generates an SBOM for software, one would have to trust that third party to create it (and maintain it). SBOMs are next to useless if they cannot be trusted, which means they should be created by developers of the software. Likewise, vendors should know what they are selling/distributing.
Whilst there is a lot of talk about the uses of SBOMs and whether they help, it is important to consider how and when SBOMs are generated. Ideally, an SBOM would start being generated during the development phase of the software life cycle using automation, and this should be encouraged if SBOMs are required. The earlier in the development cycle this occurs, the easier it can be to generate an accurate and complete SBOM.
Since the US Executive Order in 2021, there has been a growing number of tools which allow the creation of SBOMs. For developers, perhaps an important development is tools which have been developed which can generate SBOMs at time of building software, which means they can be as up-to-date as the software they are packaged with.
SBOMs for end users
Organisations most likely to benefit from SBOMs as a tool to increase their understanding of risk across their supply chain would need an existing level of technical expertise within an established, mature approach to cyber security. The existence of an SBOM alone does not improve cyber security in itself; it would have to be combined with other tools and techniques (such as vulnerability scanners) in order to improve an organisation's security.
Users of software may gain more confidence in a product if the vendor has produced an SBOM. That confidence may come from the idea that by the vendors or developer have considered the components of their product. For end users of software, the utility of the SBOM will be depend upon their own understanding of the cyber risk, and their technical expertise. As far as reassuring the end user is concerned, the time and effort taken by an organisation to create and maintain SBOMs would likely be better spent on other cyber security practices.
Further considerations on the use of SBOMs
As previously mentioned, SBOMs do not provide standalone security; they are a tool which can increase transparency. As a source of information about software, SBOMs must be stored securely themselves as they could be useful for an attacker. Protecting the SBOM itself is therefore another security overhead organisations must consider.
An incomplete or inaccurate SBOM makes it harder to understand the true risk associated with the software. An SBOM that cannot be trusted can be effectively useless, which would raise the risk of using the associated software.
SBOMs can have limitations when it comes to custom and proprietary libraries. When combining a vulnerability scanner with an SBOM for proprietary software, vulnerabilities in the proprietary software will not be found, nor do they help to identify zero-days. SBOMs paired with vulnerability scanners will only show results for known vulnerabilities.
A company with legacy systems may be seeking to use SBOMs but may have large complex systems with legacy software where SBOMs need to be generated. It may be difficult to generate an SBOM for legacy software, especially if the code is no longer supported. Maintaining many SBOMs for complex systems may also become resource intensive, especially when creating them retroactively.
No silver bullet
To reiterate, an SBOM does not guarantee that your software supply chain is secure. It is simply a tool which, if used correctly, can help create the transparent inventory needed to help secure the supply chain. An SBOM should be viewed as simply one option within your secure development practices, and as such it is not the answer to addressing all of your supply chain risks.
Harrison L
Research Lead for Software Supply Chain Security


