Skip to content

Supply-Chain Risk and Software Dependencies

Software supply-chain risk arises when an organisation's security posture is undermined by vulnerabilities in the third-party libraries, open-source packages, or vendor components it depends on. This topic covers how supply-chain attacks work, what a Software Bill of Materials provides, and the audit controls that detect compromised or outdated components within a third-party risk programme.

Last updated:

Share

Supply-chain risk in software arises when an organisation's security posture is undermined not by a direct attack on its own systems but by a vulnerability or compromise introduced through the third-party libraries, open-source packages, commercial components, or development tooling it depends on. When an attacker corrupts a widely used library or build tool, every organisation that pulls that component into production inherits the compromise automatically. The 2020 SolarWinds Orion attack, which inserted a backdoor into a signed software update delivered to roughly 18,000 organisations including multiple US federal agencies, and the 2021 Log4Shell vulnerability in the Apache Log4j logging library, which exposed hundreds of millions of systems within days of disclosure, are the reference incidents that made executive teams pay attention to this category of risk.

The core problem is visibility: most organisations do not have an accurate, current inventory of every software component running in their environment. A single application may pull in hundreds of transitive dependencies, meaning libraries that their direct dependencies depend on, and a vulnerability in any one of those can be exploited. A Software Bill of Materials (SBOM) is the structured answer to the visibility problem: a machine-readable inventory of every component, its version, its licence, and its relationship to other components. Regulatory frameworks in the United States, the European Union, and India are increasingly requiring SBOMs as a baseline procurement condition, particularly for critical infrastructure and government suppliers.

From an audit perspective, supply-chain risk sits at the intersection of the third-party risk programme, the vulnerability management process, and the software development lifecycle controls. Auditors assess whether the organisation maintains component inventories, whether it has a process for evaluating the security posture of vendors and open-source projects before adoption, whether it scans for known vulnerabilities in dependencies as part of continuous integration, and whether it has contractual and monitoring controls that extend security obligations into the supply chain. These controls map to ISO 27001:2022 Annex A controls 5.19 to 5.22, NIST SP 800-161r1 on supply-chain risk management, and CIS Control 16.

By the end of this topic you will be able to:

  • Explain the main attack vectors in software supply chains and distinguish direct dependency attacks from transitive dependency and build-pipeline attacks.
  • Describe what an SBOM contains, which standard formats exist, and why regulators and procurement bodies are requiring them.
  • Identify the audit controls used to assess supply-chain risk, including Software Composition Analysis, dependency pinning, and vendor due diligence.
  • Map supply-chain controls to ISO 27001:2022 Annex A, NIST SP 800-161r1, and CIS Control 16.
  • Describe how incident-response preparedness applies specifically to supply-chain compromise scenarios, including rapid component isolation and emergency patching.
Key terms
Software Bill of Materials (SBOM)
A structured, machine-readable inventory of the software components in a product or system. Captures component names, versions, licences, and dependency relationships. Standard formats include SPDX (ISO/IEC 5962:2021) and CycloneDX. US Executive Order 14028 (2021) mandated SBOMs for federal software suppliers.
Software Composition Analysis (SCA)
A category of security tooling that scans source code, build manifests, and container images to identify open-source and third-party components, match them against vulnerability databases (CVE, OSV, GHSA), and flag licence compliance issues. SCA is the primary automated control for supply-chain dependency risk.
Transitive dependency
A software library that an application does not import directly but is pulled in automatically because a direct dependency requires it. Transitive dependencies can multiply to hundreds of components in a modern application and are the most common source of undetected vulnerability exposure.
Dependency confusion
An attack technique in which an attacker publishes a public package with the same name as an organisation's internal private package at a higher version number. Package managers that check public registries before private ones will download the attacker's version, executing malicious code in the victim's build environment.
NIST SP 800-161r1
The US National Institute of Standards and Technology publication 'Cybersecurity Supply Chain Risk Management Practices for Systems and Organizations' (Revision 1, 2022). The primary US government guidance document for C-SCRM, providing a tiered set of practices aligned with the NIST Cybersecurity Framework.
Vendor due diligence
The pre-procurement and ongoing process of assessing a supplier's security practices before and during a commercial relationship. In supply-chain risk management, due diligence includes reviewing the supplier's SBOM, secure development practices, incident response capability, and subcontractor controls.

How supply-chain attacks work

A software supply-chain attack exploits the trust relationships between an organisation and the external components it incorporates into its own systems. The attacker does not need to breach the target organisation's perimeter directly; instead, they compromise something the organisation already trusts and uses. There are four main attack vectors, and understanding them shapes how controls are designed.

Attack vectorMechanismExample
Compromised open-source packageAttacker gains maintainer credentials or submits malicious code to a popular libraryevent-stream npm package (2018): attacker added a cryptocurrency-stealing payload
Dependency confusionAttacker publishes a public package with the same name as a private internal package at a higher versionAlex Birsan's 2021 proof-of-concept compromised internal build pipelines at Apple, Microsoft, and others
TyposquattingAttacker registers a package name closely resembling a popular one, waiting for developer mistypingMultiple incidents in PyPI and npm registries; 'colourama' mimicking 'colorama'
Compromised build or update pipelineAttacker inserts malicious code into the build system, CI/CD pipeline, or signed software updateSolarWinds Orion (2020): Sunburst backdoor inserted into production build process, delivered via signed update

The SolarWinds attack is instructive because the backdoor was inserted into the build environment rather than the source repository itself. The resulting binary was code-signed by SolarWinds, which meant standard integrity controls such as signature verification provided no protection. This attack vector, targeting the build and delivery pipeline rather than the code, is addressed by controls in the SLSA (Supply-chain Levels for Software Artefacts) framework published by Google and now maintained by the OpenSSF.

Log4Shell demonstrated a different mechanism: a vulnerability in a transitive dependency. Log4j was embedded in thousands of products and services, often without the vendors knowing it was present. The absence of component inventory made rapid response nearly impossible for many organisations. Those with current SBOMs could query them immediately to determine exposure; those without faced days of manual investigation.

Software Bill of Materials: structure and regulation

An SBOM is a formal record of every software component in a product: the component name, version, supplier, unique identifier, dependency relationships, and licence. It functions as the software equivalent of an ingredient list on a food package. When a vulnerability is disclosed in a component, an organisation with an accurate SBOM can determine within minutes whether it is exposed; an organisation without one may take days or weeks.

Two SBOM formats have emerged as standards. SPDX (Software Package Data Exchange), published as ISO/IEC 5962:2021, originated in the Linux Foundation and is widely used in open-source tooling. CycloneDX, maintained by OWASP, has gained significant adoption in commercial security tooling and is particularly strong for vulnerability tracking because it integrates directly with vulnerability disclosure formats. Both formats are machine-readable (JSON, XML, or tag-value) and can be generated automatically by SCA tools during the build process.

NTIA (US National Telecommunications and Information Administration) identified seven minimum data fields for an SBOM: supplier name, component name, version, other unique identifiers, dependency relationships, author of the SBOM data, and timestamp. Beyond these minimums, effective SBOMs include cryptographic hashes of components (to verify integrity), licence identifiers (for compliance), and a pedigree field tracing how the component was obtained. SBOMs should be machine-readable, automatically generated as part of the build process, and updated on every release rather than maintained manually.

Audit controls for software dependency risk

The auditor assessing supply-chain risk evaluates whether the organisation has implemented controls across the full lifecycle of a software dependency: selection and approval, ongoing monitoring, and incident response. Controls fall into four categories.

Software Composition Analysis (SCA) integrated into CI/CD is the primary automated detective control. SCA tools such as OWASP Dependency-Check, Snyk, Black Duck, or GitHub Dependabot scan build manifests (package.json, requirements.txt, pom.xml, go.mod) and container image layers, match identified components against vulnerability databases including the NVD (National Vulnerability Database), OSV, and vendor-specific advisory feeds, and report findings with CVSS severity scores. Audit evidence should include scan results, defect tracking integration showing how findings are actioned, and SLA metrics for remediation time by severity.

Dependency pinning and integrity verification are preventive controls. Pinning specifies exact versions of dependencies (rather than accepting any compatible version) so that updates cannot be introduced without a deliberate change. Lockfiles in npm (package-lock.json), Python (poetry.lock), and Go (go.sum) serve this purpose. Subresource Integrity (SRI) checks on CDN-hosted assets extend the same principle to the browser. Cryptographic verification of packages via package-manager trust chains or cosign-signed artefacts addresses the build-pipeline attack vector.

Open-source component governance policies define which packages may be used, from which registries, and under which licence types. Many organisations maintain an approved component list and require security review before new open-source libraries are added to a project. Automated policy enforcement via SCA tooling can block builds that include unapproved packages or components with vulnerabilities above a defined severity threshold.

Framework mapping: ISO 27001, NIST, and CIS

Supply-chain security controls appear across the major frameworks, but each frames the requirement differently. Understanding the mapping helps auditors assess against whichever framework applies to their engagement and helps practitioners satisfy multiple requirements with a single control implementation.

FrameworkRelevant control(s)Requirement scope
ISO 27001:2022A.5.19 Information security in supplier relationships; A.5.20 Addressing security in supplier agreements; A.5.21 Managing ICT supply chain; A.5.22 Monitoring and review of supplier servicesSecurity requirements in contracts, due diligence, monitoring of supplier performance, managing change in the supply chain
NIST CSF 2.0GV.SC (Supply Chain Risk Management function); ID.SC (Identify: Supply Chain Risk); PR.SC (Protect: Supply Chain Risk)Organisational understanding of supply-chain dependencies, risk-based supplier vetting, monitoring of supplier cybersecurity practices
NIST SP 800-161r1Full C-SCRM practice catalogue: organisational, mission/business, and system levelsTiered C-SCRM programme from board-level policy through to system-specific controls; SBOM and provenance requirements for federal suppliers
CIS Controls v8Control 16: Application Software Security (Safeguard 16.1: inventory of authorised software; 16.2: evaluate software before use)Maintaining an inventory of authorised software, SCA integration, secure development practices, third-party component evaluation
EU Cyber Resilience ActArticle 13 (obligations for manufacturers); Annex I (security requirements)SBOM generation, vulnerability disclosure, security updates for product lifetime, supply-chain due diligence

For organisations pursuing ISO 27001 certification, the supply-chain controls in Annex A are often under-evidenced. Auditors frequently find that organisations have supplier contracts but have not specified information security requirements in those contracts in the way A.5.20 requires, or that they monitor service-level metrics but not security-specific indicators such as patch cadence, incident notification obligations, or SBOM update schedules. The ISMS Scope and Implementation topic covers how to incorporate supply-chain risk into the ISMS boundary definition.

Third-party risk programme integration

Software supply-chain risk is a subset of the broader third-party risk programme. A mature programme addresses vendor risk across the full lifecycle: pre-procurement due diligence, contract security requirements, onboarding controls, ongoing monitoring, and off-boarding. Supply-chain-specific additions to each phase are well-defined and auditable.

Pre-procurement due diligence for software vendors should include a review of the vendor's SBOM (or confirmation that one can be provided), their vulnerability disclosure and patch policy, their secure software development lifecycle (S-SDLC) practices, whether they hold relevant certifications such as ISO 27001 or SOC 2 Type II, and whether they have experienced supply-chain incidents in the past and how they responded. Vendors who cannot provide basic transparency about their software components are a higher risk category and should be treated accordingly.

Contract security requirements for software suppliers should specify: minimum patch turnaround times by severity class, an obligation to notify the customer of supply-chain incidents that affect components delivered under the contract, the right to audit the supplier's SBOM and secure development practices, and obligations on the supplier to flow down equivalent requirements to their own sub-suppliers. These flow-down requirements address the 'fourth-party risk' problem: a vendor who is themselves compliant but who relies on sub-suppliers who are not.

Ongoing monitoring should include automated alerts from SCA tooling when new CVEs are published against components in use, periodic SBOM refresh requests from key vendors, and review of vendor security advisories and incident notifications. Where a vendor participates in a sector-specific information sharing arrangement such as the US FS-ISAC (Financial Services), UK NCSC early warning service, or India's CERT-In advisory feeds, monitoring can be partially delegated to those channels.

Incident response for supply-chain compromise

Supply-chain compromises have distinctive characteristics that standard incident-response playbooks often do not account for. The organisation may be a victim rather than the initial target, the scope of exposure may be uncertain for days, and the remediation action (removing or patching a component) may require coordinated action across dozens of applications and teams. Incident-response preparedness for supply-chain scenarios is a specific audit area.

When a supply-chain compromise is disclosed, the immediate question is: are we affected? Without an SBOM or SCA tooling, answering that question requires manual inventory work across every application. With an SBOM and tooling, the question can be answered in minutes by querying the component inventory for the affected package and version. The Log4Shell response in December 2021 illustrated this difference sharply: organisations with mature SCA practices could assess and begin remediation within hours, while others were still discovering affected systems weeks later.

The incident-response plan should include supply-chain-specific playbooks covering: how to rapidly assess exposure using the SBOM, who has authority to approve emergency dependency updates outside the normal change management process, how to coordinate with the affected vendor and with sector peers through information-sharing channels, and how to communicate to customers if the compromise affects software or services the organisation delivers to others. See the Incident Response and Management subject for detailed coverage of those planning and execution disciplines.

Check your understanding
Question 1 of 4· 0 answered

An attacker publishes a package called 'mycompany-auth' to a public package registry at version 9.0.0. The victim organisation uses an internal package called 'mycompany-auth' at version 2.1.0. Which attack technique does this describe?

Key Takeaways

  • Supply-chain attacks target the components, libraries, build tools, and update mechanisms that an organisation already trusts. The SolarWinds and Log4Shell incidents demonstrated that both commercial and open-source supply chains are viable attack surfaces at scale.
  • An SBOM is a structured, machine-readable inventory of software components and their dependencies. Formats SPDX and CycloneDX are the standards; US EO 14028 and the EU Cyber Resilience Act are the primary regulatory drivers requiring SBOMs in procurement.
  • Software Composition Analysis integrated into CI/CD is the primary automated control. It must be configured to traverse the full dependency tree, including transitive dependencies, to provide accurate vulnerability coverage.
  • Supply-chain controls map across frameworks: ISO 27001:2022 Annex A 5.19 to 5.22, NIST SP 800-161r1, NIST CSF 2.0 GV.SC, and CIS Control 16. Supplier contracts must specify security requirements, patch obligations, and incident notification timelines, not just general service levels.
  • Incident-response plans should include supply-chain-specific playbooks covering rapid SBOM-based exposure assessment, emergency change management for dependency patches, and regulatory notification obligations under GDPR, the DPDP Act 2023, and HIPAA where personal data is involved.
What is a software supply-chain attack?
A software supply-chain attack targets the tools, libraries, or update mechanisms that an organisation relies on rather than attacking the organisation directly. The attacker compromises an upstream component so that every downstream consumer inherits the malicious code. The 2020 SolarWinds compromise and the 2021 Log4Shell vulnerability are two prominent examples.
What is a Software Bill of Materials (SBOM)?
An SBOM is a structured inventory of every software component in a product or system, including open-source libraries, their versions, licensing terms, and the relationships between them. Formats include SPDX and CycloneDX. The US Executive Order 14028 (2021) mandated SBOMs for software sold to federal agencies, and many other procurement regimes are following suit.
How does dependency confusion differ from typosquatting?
Typosquatting registers a package name that looks like a legitimate popular package (for example, 'reqests' instead of 'requests') hoping developers mistype it. Dependency confusion exploits package manager resolution logic: an attacker publishes a public package with the same name as a private internal package at a higher version number, causing the package manager to fetch the attacker's version instead of the internal one.
What controls does ISO 27001 require for supplier relationships?
ISO 27001:2022 Annex A control 5.19 requires that supplier relationships address information security risks in supplier agreements. Controls 5.20 through 5.22 cover managing and monitoring those agreements and addressing changes within the supply chain. Organisations must define policies, conduct due diligence, specify security requirements in contracts, and monitor supplier performance.
What is the difference between SCA and DAST in supply-chain auditing?
Software Composition Analysis (SCA) scans source code and build manifests to identify open-source and third-party components, flag known vulnerabilities (CVEs), and check licence compliance. Dynamic Application Security Testing (DAST) tests a running application from the outside. SCA is the primary tool for supply-chain risk because it operates on the dependency graph before deployment, while DAST finds runtime behaviour issues.

Test yourself on Information Security Audit and Compliance with free, timed mocks.

Practice Information Security Audit and Compliance questions

Found this useful? Pass it along.

Share

Spotted an error in this page? Report a correction or read our editorial standards.

Your journey to becoming a forensic professional starts here.

Practice with mock tests, learn from structured notes, and get your questions answered by a global forensic community, all in one place.