In December 2020, thousands of organizations that had never made a single security mistake were breached anyway. They had patched their servers, trained their staff, segmented their networks, and bought good tools. None of it mattered, because the...
Prerequisites
- 27
- 28
- 12
- 23
Learning Objectives
- Run a third-party risk management lifecycle — assess, contract, monitor, and offboard — and tier vendors by the risk they carry into your environment.
- Explain software supply chain risk and read a software bill of materials (SBOM) to find a known-bad component before it finds you.
- Score a vendor security questionnaire into a defensible risk rating, and translate gaps into contractual security requirements.
- Respond to a vendor breach with a structured playbook, and reason about fourth-party and concentration risk.
- Use SolarWinds and Log4Shell as the two canonical supply chain lessons, and apply provenance/SLSA thinking to what you didn't build.
In This Chapter
- Overview
- Learning Paths
- 29.1 Your risk includes their risk
- 29.2 The TPRM lifecycle
- 29.3 The software supply chain and the SBOM
- 29.4 Setting vendor requirements: from questionnaire to contract
- 29.5 Monitoring and vendor-breach response
- 29.6 Meridian's core-banking vendor and the SBOM rollout
- Project Checkpoint
- Summary
- Spaced Review
- What's Next
Chapter 29: Third-Party and Supply Chain Risk Management: Vendor Risk, SBOMs, and Trusting What You Didn't Build
"Trust, but verify." — a proverb adopted into security practice
Overview
In December 2020, thousands of organizations that had never made a single security mistake were breached anyway. They had patched their servers, trained their staff, segmented their networks, and bought good tools. None of it mattered, because the attacker did not come through their front door. The attacker came through an update — a routine, digitally signed software update from SolarWinds, a network-monitoring vendor those organizations had trusted for years. The malicious code was inside the vendor's own build before it was signed, so it arrived wearing the vendor's legitimate signature, and the organizations installed it the way they installed every other update: automatically, with administrative privileges, deep inside their networks. A nation-state actor had compromised something none of the victims controlled — the place where their trusted software was made — and from there walked into all of them at once.
That is the problem this chapter is about, and it is the problem that keeps modern CISOs awake. You can secure everything you build and operate, and still be breached through something you bought, or something that thing depends on, or a contractor's laptop, or an open-source library buried six levels deep in an application you have never read. Your attack surface is not just yours. It is the union of your own surface and the surface of everyone you trust — and in a modern organization, you trust hundreds of vendors, and those vendors trust hundreds more. Your risk includes their risk. A defender who has not internalized that is defending half the building.
This chapter takes the risk and compliance machinery you built in Chapters 27 and 28 and points it outward, at the people and code you did not write. We will run the full third-party risk management lifecycle — how you assess a vendor before you sign, what you put in the contract, how you watch the vendor after it is in production, and how you cut it loose safely when the relationship ends. We will go deep on the software supply chain specifically — how Log4Shell put a single open-source logging library on every incident-response whiteboard on Earth, and how a software bill of materials turns "do we even use that?" from a week of frantic grep into a one-line lookup. And we will get concrete and practical throughout: you will score a real vendor questionnaire, read an SBOM, write the security clauses that go in a contract, and walk a vendor-breach playbook. By the end, Meridian's security program will have a TPRM process and an SBOM requirement, and your bluekit toolkit will gain a vendor_risk() function that turns a vendor's answers into a tier.
In this chapter, you will learn to:
- Define third-party, supply chain, fourth-party, and concentration risk, and explain why each is a distinct failure mode you must manage separately.
- Run the TPRM lifecycle (assess → contract → monitor → offboard) and tier vendors so your finite review capacity goes where the risk is.
- Read and reason about an SBOM, and use software provenance and the SLSA framework to ask "where did this come from, and can I prove it?"
- Build a vendor security questionnaire, score it defensibly, and convert findings into contractual security requirements with teeth.
- Respond to a vendor breach with a structured playbook, using SolarWinds and Log4Shell as the patterns you will see again.
Learning Paths
This is a Part VI governance chapter, and its center of gravity is the GRC track — but the software supply chain half is squarely an engineering problem, so two audiences should read it closely.
🛡️ SOC Analyst: You will not own the vendor program, but you will work a vendor breach (§29.5) and you will be the one asked "are we exposed to that library?" at 7 a.m. Read §29.3 (SBOM) and §29.5 (vendor-breach response) carefully; they are operational, not paperwork. 🏗️ Security Engineer: §29.3 (software supply chain, SBOM, provenance/SLSA) and §29.4 (turning requirements into something testable) are your sections. You will generate and consume SBOMs and bake supply chain controls into the pipeline (which Chapter 31 builds on directly). 📋 GRC: This is your chapter end to end. The TPRM lifecycle (§29.2), questionnaire scoring (§29.4), contractual requirements, and concentration risk (§29.1, §29.5) are core GRC competencies and core exam material. Elena Vasquez owns this program at Meridian, and you are Elena. 📜 Certification Prep: Security+ tests third-party/supply chain risk, SBOMs, and right-to-audit clauses; CISSP tests third-party governance, acquisition risk, and minimum security requirements in Domains 1 and 8. The crosswalk is in
key-takeaways.md.
29.1 Your risk includes their risk
Start with a number you can feel. A mid-size organization like Meridian Regional Bank does business with somewhere between three hundred and a thousand vendors — the core-banking platform, the cloud providers, the email security gateway, the marketing analytics tool, the HVAC contractor with a remote-maintenance account, the law firm holding loan documents, the payroll processor, the document-shredding company, the print shop that mails statements. Each of those is a relationship in which Meridian has handed over something — data, access, or a dependency on the vendor staying up. And each of those vendors has its own vendors. Meridian's payroll processor uses a cloud provider; the cloud provider uses a CDN; the CDN uses an open-source TLS library. Meridian trusts the payroll processor; therefore, whether it knows it or not, Meridian is exposed to that open-source TLS library too.
Third-party risk is the risk an organization takes on through its direct relationships with external parties — vendors, suppliers, service providers, contractors, partners — that have access to its data, systems, or facilities, or that it depends on to operate. Third-party risk management (TPRM) is the structured, lifecycle discipline of identifying, assessing, mitigating, and monitoring that risk across all of those relationships. It is the natural extension of the enterprise risk management you built in Chapter 27: the same likelihood-times-impact reasoning, the same risk register, the same treatment options (mitigate, transfer, avoid, accept) — but applied to risks you can only influence at arm's length, through assessment and contract, because the actual controls live inside someone else's company.
That arm's-length quality is what makes third-party risk hard, and it is worth sitting with. When Sam Whitfield hardens a Meridian server, he can verify the result: he runs the baseline check, reads the config, confirms the patch level. When Elena Vasquez assesses Meridian's payroll vendor, she cannot walk into the vendor's data center and read its configs. She can ask the vendor questions and hope the answers are true. She can demand an independent audit report (a SOC 2 — Chapter 28) and trust the auditor. She can write requirements into the contract and trust that they are honored. But the gap between what the vendor says and what the vendor does is a gap she manages with paper and trust, not with a config check. TPRM is, in large part, the art of shrinking that gap as much as paper and trust allow — and knowing exactly how big it still is.
Three flavors of "their risk"
"Their risk becomes your risk" actually splits into three distinct mechanisms, and good defenders keep them separate because each is detected and treated differently.
The first is data and access risk: the vendor holds your data or has access to your systems, so a breach of the vendor exposes you. The payroll processor holds employee Social Security numbers; if it is breached, your employees' data is breached, and you — not just the vendor — owe the notifications and carry the reputational damage. The HVAC contractor with a VPN account into your building-management network is a path into your environment; if the contractor is compromised, that path is open. This is the most intuitive flavor and the one TPRM programs historically focused on first.
The second is supply chain risk, and it is the one that has reshaped the field. Supply chain risk is the risk that a component, product, or service you incorporate into your own systems is compromised, tampered with, or fundamentally flawed before it reaches you — so that by trusting and deploying it, you import the attacker's foothold or the defect directly into your environment. This is SolarWinds: the danger was not that SolarWinds held Meridian's data, but that Meridian ran SolarWinds' code with high privileges, and the code itself had been weaponized at the source. It is also Log4Shell: a flaw in an open-source library, incorporated into thousands of products, became a flaw in every one of those products simultaneously. Supply chain risk is different from data risk because the threat rides in on something you deliberately installed and trusted.
The third is fourth-party (and beyond) risk. Fourth-party risk is the risk introduced by your vendors' vendors — the subcontractors, sub-processors, and dependencies that your direct third parties rely on, which you have no contract with and often cannot even enumerate. Meridian has a contract with its payroll processor (a third party). The payroll processor runs on AWS (a fourth party, from Meridian's seat). If AWS has an outage, Meridian's payroll fails, even though Meridian never signed anything with AWS for that service. Fourth-party risk is hard because your leverage drops to almost nothing — you cannot audit a company you have no relationship with — and your visibility drops with it. The best you can usually do is require your third parties to manage their third parties to your standard, and contractually flow your requirements down the chain.
MERIDIAN (you)
│ contracts with, hands data/access to
┌─────────┼───────────────┬──────────────┐
▼ ▼ ▼ ▼
Payroll Core-banking Email security SolarWinds-style
processor vendor gateway monitoring tool
(3rd party) (3rd party) (3rd party) (3rd party)
│ │ │ │ ← you RUN this code
▼ ▼ ▼ ▼ with high privilege
AWS data-center threat-intel its BUILD SYSTEM
(4th) colo (4th) feed (4th) (where Sunburst was injected)
│
▼
open-source TLS library ← a flaw here (Log4Shell-style) is a flaw
(Nth party) in everything above it, all at once
Your attack surface = your own surface ∪ every box below you.
TPRM is how you manage the part of the surface you do not control.
Figure 29.1 — The trust chain. Direct vendors (third parties) are visible and contractable; their dependencies (fourth and Nth parties) are progressively less visible and less controllable. Supply chain risk rides up this chain — a compromise low in the tree (a build system, a shared library) can reach everything above it.
🚪 Threshold Concept: Your security is bounded above by the security of everything you trust. You can build a perfect fortress and still fall, because you do not occupy the fortress alone — you occupy it with hundreds of vendors and their code, and the wall is only as strong as the most trusted thing that runs inside it. Once you see this, "secure the perimeter" stops meaning "secure our perimeter" and starts meaning "manage the entire web of trust we depend on." That reframing is the whole reason TPRM exists.
Concentration risk: the eggs-in-one-basket problem
There is a fourth idea that is not about any single vendor's security at all, and it catches programs that focus only on per-vendor assessment. Concentration risk is the risk that arises when an organization — or an entire sector — depends heavily on a single vendor, product, or provider, so that one failure or compromise of that provider has outsized, systemic impact. Each individual reliance might be perfectly well-managed; the aggregate dependence is the hazard.
Meridian's core-banking platform is a concentration risk: if that one vendor has a multi-day outage, the bank cannot process transactions, and there is no quick substitute — you do not swap core-banking platforms in an afternoon. Meridian running everything in a single AWS region is a concentration risk: one region's failure takes down the bank. At the sector level, the fact that most U.S. banks rely on a small number of core-banking providers means a compromise of one of those providers is a national-scale event, which is exactly why bank regulators (the FFIEC, the OCC) now examine concentration in third-party relationships specifically. Concentration risk is not solved by assessing the vendor harder — a perfectly secure vendor can still have an outage, and a perfectly secure single point of failure is still a single point of failure. It is treated with diversification, contractual resilience requirements, and exit plans: can you move off this vendor at all, and how long would it take?
🔗 Connection: This builds directly on the risk-treatment options from Chapter 27. Concentration risk is usually treated by avoidance (don't single-source the critical thing), mitigation (require the vendor to be resilient; keep a tested exit plan), or conscious acceptance (sometimes there genuinely is only one viable core-banking vendor, and you accept the concentration with eyes open and document it). What you must not do is fail to see it, which is what happens when a TPRM program scores each vendor in isolation and never sums the dependence.
🔄 Check Your Understanding: 1. Distinguish third-party risk, supply chain risk, and fourth-party risk in one sentence each, using a concrete Meridian example for each. 2. Why can't you reduce concentration risk by performing a more thorough security assessment of the vendor?
Answers
- Third-party risk: a direct vendor (e.g., Meridian's payroll processor) is breached and exposes the data or access Meridian gave it. Supply chain risk: a product Meridian deploys (e.g., a monitoring tool) is compromised at its source before delivery, importing the threat into Meridian's environment. Fourth-party risk: a vendor's vendor (e.g., the AWS region the payroll processor runs on) fails or is breached, affecting Meridian indirectly with no direct contract to lean on. 2. Concentration risk is about aggregate dependence, not the vendor's control quality — even a perfectly secure single vendor is still a single point of failure whose outage or compromise has systemic impact. It is treated with diversification, resilience requirements, and exit plans, not with a better questionnaire.
29.2 The TPRM lifecycle
A vendor is not a one-time decision; it is a relationship with a beginning, a long middle, and an end, and the risk profile changes at each stage. A mature TPRM program is therefore a lifecycle, not a gate you pass once at signing. The classic phases are due diligence and assessment (before you commit), contracting (where you lock in obligations), onboarding (provisioning access with least privilege), ongoing monitoring (the long middle, where most programs fail), and offboarding (the end, where most data leaks). Let us walk it, because each stage has a characteristic failure mode you can design against.
Stage 0 — Inventory: you cannot manage what you cannot see
Before any of that, there is a precondition that programs skip and then regret: you need a vendor inventory — a complete, current list of who your third parties actually are. This sounds trivial and is not. Vendors enter an organization through procurement, but also through a manager expensing a SaaS subscription, through a developer signing up for an API with a corporate card, through an acquisition that brought its own vendor stack. "Shadow vendors" — third parties the security team has never assessed because no one told them — are the third-party equivalent of shadow IT. At Meridian, Elena's first TPRM task was not assessing vendors; it was finding them, by cross-referencing accounts payable, the SSO application list, and expense reports. You cannot tier, assess, or monitor a vendor you do not know exists.
Stage 1 — Due diligence and assessment: tier first, then dig
You will never have the capacity to deeply assess every vendor, so the first real move is tiering — sorting vendors by the risk they carry so that your finite review effort is spent where it matters. The variables that drive a vendor's tier are: what data they touch (regulated PII and cardholder data are top-tier; public marketing copy is not), what access they have (a VPN into your network is top-tier; a one-way file drop is not), how critical they are to operations (core-banking is top-tier; the office-snacks supplier is not), and how integrated they are (code that runs inside your products is top-tier; a standalone website is not).
A simple, defensible three-tier scheme:
| Tier | Definition (any one qualifies) | Assessment depth | Re-assess |
|---|---|---|---|
| Tier 1 (Critical) | Regulated data (PII, PHI, cardholder), privileged/network access, business-critical, or code running in your products | Full security questionnaire + SOC 2/ISO 27001 evidence + right-to-audit + (for software) SBOM | Annually + on major change |
| Tier 2 (Moderate) | Internal but non-regulated data, limited access, important-but-replaceable | Standard questionnaire + attestation/certification review | Every 1–2 years |
| Tier 3 (Low) | Public/no sensitive data, no system access, easily replaced | Lightweight checklist or self-attestation | At onboarding; ad hoc after |
Tiering is the single highest-leverage decision in TPRM, because it determines where your scarce assessment time goes. A program that assesses every vendor with the same 300-question survey will either drown (if it tries to mean it) or rubber-stamp (if it doesn't). A program that tiers first sends its senior analysts at the core-banking vendor and sends a one-page checklist at the snack supplier — which is exactly right.
For Tier 1 and 2 vendors, the heart of the assessment is the vendor security assessment: the structured evaluation of a prospective or current vendor's security posture, typically combining a security questionnaire, a review of independent audit evidence (SOC 2 Type II reports, ISO 27001 certificates, penetration-test summaries), and — increasingly — external signals like a security-rating service or the vendor's published SBOM. The questionnaire is the workhorse, and we will score one in detail in §29.4. The key discipline at this stage is to treat the questionnaire as the start of a conversation, not the end of one: a "yes, we encrypt data at rest" is a claim to be corroborated by the SOC 2 report, not a box to tick and forget.
⚠️ Common Pitfall: Treating the SOC 2 report as a magic pass. A SOC 2 Type II report (Chapter 28) is genuinely valuable, but it has a scope and a date, and both are routinely ignored. The scope might cover the vendor's flagship product and not the specific service you are buying. The report covers a past audit window and says nothing about the vendor's posture today. And the auditor's opinion can be "qualified" with exceptions buried in the body that a checklist reviewer never reads. Open the report. Check the scope matches your use. Read the exceptions. A SOC 2 you didn't actually read is theater.
Stage 2 — Contracting: where assessment becomes obligation
Assessment tells you what the vendor's posture is. The contract is where you make the vendor's posture binding — where "they say they encrypt data" becomes "they are contractually required to encrypt data, and here is what happens if they don't." We devote §29.4 to the substance of these clauses; for the lifecycle, the point is structural: assessment without contracting is advice; contracting without assessment is guesswork. You assess to learn what to require, and you contract to make the requirements enforceable. The two stages are a pair.
Stage 3 — Onboarding: least privilege for vendors too
When a vendor is approved and signed, onboarding provisions whatever access the relationship needs — and the discipline here is the same least privilege you apply to employees (Chapter 3, owned there), applied to outsiders. The HVAC contractor's remote account should reach the building-management system and nothing else, on a segmented network, with MFA, and ideally only during scheduled maintenance windows. The reporting vendor that needs read access to one database should have read access to one database, not a broad role. Vendor access is a common breach path precisely because it is often over-provisioned and under-monitored — granted broadly "to be safe" and then never reviewed.
Stage 4 — Ongoing monitoring: the stage everyone skips
Here is where most TPRM programs quietly fail. The assessment happens at signing, the contract gets filed, and then the vendor sits in production for seven years while its security posture drifts, its sub-processors change, it gets acquired, it has a breach you never hear about — and nobody looks again until the next contract renewal, if then. Continuous vendor monitoring is the practice of keeping a vendor's risk picture current throughout the relationship, not just at onboarding — through periodic re-assessment, security-rating feeds, breach and news monitoring, attestation refreshes, and (for software) ongoing SBOM and vulnerability tracking. We treat the mechanics in §29.5. The lifecycle lesson is simply that a vendor assessed once and never again is a vendor whose risk you stopped managing the day you signed — and risk does not hold still.
Stage 5 — Offboarding: the leak at the end
When a vendor relationship ends — contract expires, you switch providers, the vendor goes out of business — there is a final, frequently-botched stage: getting your data back or destroyed, revoking all access, and confirming both. Offboarding failures are a major source of breaches that surface years after a relationship ended: the vendor still had a copy of your customer data on a backup it forgot to delete, or the API key you issued in 2019 was never revoked and still works. Offboarding requires a checklist — terminate all accounts and keys, confirm data return/destruction in writing (the contract should have required a destruction certificate), remove network paths, and update the inventory — executed as deliberately as onboarding.
📟 War Story: A constructed but representative example. A regional insurer switched marketing-analytics vendors and considered the old vendor "gone." Eighteen months later, the old vendor suffered a breach, and the insurer's customer email list — which the old vendor had never deleted, because no one ever asked and the contract never required it — was in the dump. The insurer owed the notifications for data held by a company it no longer paid, for a relationship it thought had ended. The fix was a single offboarding clause and a single checklist item: a written certificate of data destruction, verified, before the relationship is marked closed.
🔄 Check Your Understanding: 1. Name the five lifecycle stages of TPRM after inventory, and the characteristic failure mode of the monitoring and offboarding stages. 2. Why is tiering the highest-leverage step in vendor assessment?
Answers
- Due diligence/assessment → contracting → onboarding → ongoing monitoring → offboarding. Monitoring fails because programs assess once at signing and never look again while the vendor's posture drifts for years. Offboarding fails because data is not confirmed returned/destroyed and access is not fully revoked, producing breaches that surface years later from a relationship thought to be over. 2. Because assessment capacity is finite; tiering sends your scarce deep-review effort at the vendors that carry real risk (regulated data, network access, business-criticality, embedded code) and a lightweight checklist at the rest — preventing both drowning and rubber-stamping.
29.3 The software supply chain and the SBOM
Everything so far applies to vendors in general. Now we zoom into the kind of third-party risk that has changed the most and frightens defenders the most: the software supply chain. The reason it deserves its own treatment — and the reason Chapter 23 only introduced the SBOM while this chapter owns it in full — is that software is not assessed like a service. A payroll vendor you evaluate as a company. A piece of software you must evaluate as a bill of materials: a list of every component inside it, most of which the vendor did not write either.
The problem: you don't know what's in your software
Modern software is assembled, not authored. A typical application's own code is a thin shell over a deep stack of dependencies: open-source libraries, which depend on other libraries (transitive dependencies), which depend on still others, often dozens or hundreds deep. The developer who builds Meridian's loan-origination web app writes maybe 5% of the code that ships; the other 95% is pulled in automatically by the build system from public package repositories. Software supply chain risk is the risk that any component in that assembled stack — direct or transitive, open-source or commercial — is vulnerable, malicious, tampered with, or unmaintained, and that by shipping the application you ship the problem.
The defining lesson here is Log4Shell. In December 2021, a critical vulnerability — CVE-2021-44228, CVSS 10.0 (Critical) — was disclosed in Apache Log4j, an open-source Java logging library. Logging is so mundane that most developers never think about which library does it, and Log4j was one of the most widely used logging libraries in the world. The flaw allowed an attacker to achieve remote code execution simply by getting a crafted string logged — and applications log nearly everything, so the attack surface was enormous and trivially reachable. Overnight, every organization on Earth faced the same question, and it turned out to be a shockingly hard one to answer: "Are we running Log4j, and where?"
The reason that question was hard is the whole point of this section. Log4j was rarely a dependency anyone chose. It was a transitive dependency — library A that a team deliberately used depended on library B that depended on Log4j — buried inside commercial products whose vendors had to scramble to tell customers whether their product was affected, embedded in appliances and Java applications nobody had touched in years. Teams spent days and weeks doing archaeology: grepping file systems for log4j JAR files, querying vendors, hoping they'd found every instance. The organizations that could answer "where is Log4j?" in minutes instead of weeks had one thing the others lacked: a software bill of materials.
The solution: a software bill of materials
A software bill of materials (SBOM) is a formal, machine-readable inventory of the components that make up a piece of software — every library and module, with its name, version, supplier, and dependency relationships — analogous to the ingredient list on a food label or the bill of materials in manufacturing. It answers, instantly and authoritatively, the question Log4Shell made everyone ask: what is actually inside this thing? If you have an SBOM for every application and product in your environment, then when the next Log4Shell drops, "are we exposed, and where?" becomes a query, not an expedition.
SBOMs come in two dominant standard formats, and you should recognize both: SPDX (Software Package Data Exchange, an ISO/IEC standard, originally from the Linux Foundation) and CycloneDX (from OWASP, designed with security use cases front-of-mind). Both express the same essential facts; CycloneDX is common in security tooling, SPDX in licensing and compliance. The U.S. National Telecommunications and Information Administration (NTIA) defined the minimum elements an SBOM should contain, and they are worth knowing because they tell you what an SBOM is for: supplier name, component name, version, unique identifiers, dependency relationships, the SBOM author, and a timestamp. Notice what each minimum element enables — version and identifier let you match against a vulnerability feed; dependency relationships let you see the transitive tree; supplier and author let you assign accountability.
Here is a small, annotated excerpt of a CycloneDX-style SBOM for a fragment of Meridian's loan-origination app. It is illustrative (Tier 3), trimmed for readability:
{
"bomFormat": "CycloneDX",
"specVersion": "1.5",
"metadata": {
"timestamp": "2026-02-10T14:00:00Z",
"component": { "name": "loan-origination-web", "version": "3.4.1" }
},
"components": [
{
"type": "library",
"name": "spring-web",
"version": "5.3.31",
"purl": "pkg:maven/org.springframework/spring-web@5.3.31"
},
{
"type": "library",
"name": "log4j-core",
"version": "2.14.1",
"purl": "pkg:maven/org.apache.logging.log4j/log4j-core@2.14.1"
},
{
"type": "library",
"name": "jackson-databind",
"version": "2.13.4.2",
"purl": "pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.13.4.2"
}
],
"dependencies": [
{ "ref": "loan-origination-web", "dependsOn": ["spring-web", "jackson-databind"] },
{ "ref": "spring-web", "dependsOn": ["log4j-core"] }
]
}
Read that SBOM the way a defender reads it during an incident. The application is loan-origination-web 3.4.1. Its direct dependencies are spring-web and jackson-databind. But look at the dependencies block: spring-web dependsOn log4j-core. So log4j-core 2.14.1 is in this application as a transitive dependency — nobody on the loan-app team chose it; it rode in under Spring. And 2.14.1 is a vulnerable version: it is below the 2.17.x line that fixed CVE-2021-44228. Without this SBOM, finding that buried Log4j meant grepping the deployed artifact and hoping. With it, the exposure is right there in the dependency graph, discoverable by a script in milliseconds — which is exactly what we will write in this chapter's code/ examples. The purl (package URL) on each component is the standardized identifier that lets a tool match the component against a vulnerability database automatically.
🛡️ Defender's Lens: The SBOM only has value if it feeds a matching process. An SBOM sitting in a folder is an ingredient list nobody compared against the recall notices. The operational pattern is: (1) generate or obtain an SBOM for every application and product, (2) store them centrally, (3) continuously match every component+version against vulnerability feeds — the CVE/NVD database, CISA's Known Exploited Vulnerabilities catalog (Chapter 23), and the OSV.dev open-source vulnerability database — and (4) alert when a match appears. Done right, when the next Log4Shell is disclosed, your tooling tells you which applications contain it before you've finished reading the advisory. The SBOM is the inventory; the continuous match against feeds is what turns the inventory into early warning.
Provenance and SLSA: not just what, but where from
An SBOM tells you what is in your software. It does not, by itself, tell you whether what is in your software is what was supposed to be in your software — whether the component you think you have is the genuine one, built from the source you expect, by a build process nobody tampered with. That question — software provenance, the verifiable record of where a software artifact came from, what source it was built from, by what build process, and that it has not been altered since — is the question SolarWinds turned from academic to urgent.
Recall what actually happened in the SolarWinds Sunburst attack from this angle. The attacker did not exploit a known vulnerability in SolarWinds' product. The attacker compromised SolarWinds' build system — the pipeline that compiles source code into the shipped product — and injected malicious code during the build, after the legitimate source was written but before the artifact was signed. The result was catastrophic precisely because every downstream defense was satisfied: the artifact was correctly signed with SolarWinds' real key (the malice was inside before signing), it matched the version customers expected, and it came through the normal update channel. An SBOM would not have caught it, because the SBOM would have listed the legitimate components — the tampering was in the build, not the ingredient list. What was missing was provenance: cryptographic assurance that the artifact was built from the expected source by an untampered build process.
This is the gap that SLSA (Supply-chain Levels for Software Artifacts, pronounced "salsa") addresses. SLSA is a security framework — a graduated set of levels — for establishing and verifying the integrity of the software supply chain, focused on build provenance: proving that an artifact was produced from a specific source by a specific, hardened build process, and that the chain from source to deployment is tamper-evident. Higher SLSA levels require things like a build service that generates signed, verifiable provenance metadata, isolation of builds so one cannot poison another, and source/build steps that resist a single insider. You do not need to memorize the levels; you need to internalize the idea: provenance answers "can I prove this artifact is what I think it is?" — the question SolarWinds proved we couldn't answer. Chapter 31 takes this into the build pipeline itself and shows how artifact signing and pipeline integrity implement provenance in practice; for now, lodge SLSA next to SBOM as the two halves of software supply chain assurance — SBOM for what's inside, SLSA/provenance for where it came from and whether it was tampered with.
🔗 Connection: Log4Shell and SolarWinds are the two canonical supply chain failures and they fail in different ways, which is why we keep them paired. Log4Shell is a known-vulnerability-in-a-dependency problem: the component was legitimate, but it had a flaw, and you couldn't find where you ran it — the SBOM is the answer. SolarWinds is a tampered-build / malicious-by-design problem: the component was malicious, signed legitimately, and an SBOM wouldn't flag it — provenance/SLSA is the answer. A complete software supply chain program needs both, because a defender who only has SBOMs is blind to SolarWinds-class attacks, and a defender who only has provenance still can't answer "where's the vulnerable Log4j?"
🔄 Check Your Understanding: 1. Why was "are we running Log4j, and where?" so hard to answer in December 2021, and how does an SBOM make it easy? 2. An SBOM would not have detected the SolarWinds Sunburst compromise. Why not, and what supply chain control addresses that gap?
Answers
- Log4j was usually a transitive dependency buried inside other libraries and commercial products, so it wasn't on anyone's list of chosen components; finding it meant grepping artifacts and querying vendors. An SBOM enumerates every component including transitive ones, so "where is Log4j?" becomes a query against the stored dependency graphs rather than an investigation. 2. The Sunburst code was injected into SolarWinds' build system, so the shipped components looked legitimate and were correctly signed — an SBOM lists what's there, not whether the build was tampered with. The gap is addressed by software provenance and frameworks like SLSA, which prove an artifact was built from expected source by an untampered build process (and by build-pipeline integrity, Chapter 31).
29.4 Setting vendor requirements: from questionnaire to contract
Assessment is not an end in itself; it exists to decide something — approve the vendor, reject it, or approve it conditional on fixing gaps — and to require something in the contract. This section is the practical core for the GRC reader: how you turn a vendor's answers into a defensible rating, and how you turn the gaps into contract clauses with teeth.
Scoring a vendor questionnaire
A vendor security questionnaire is a structured set of questions covering the domains you care about — typically governance, access control, encryption, vulnerability and patch management, incident response, business continuity, data handling, and (for software) secure development and supply chain practices. Standardized questionnaires exist so you are not reinventing them every time: the SIG (Standardized Information Gathering) questionnaire from Shared Assessments, the CAIQ (Consensus Assessments Initiative Questionnaire) from the Cloud Security Alliance, and vendor-specific subsets. The skill is not writing the questions; it is scoring the answers into a decision.
Here is a worked example. Meridian is assessing a mid-tier vendor — a document-management SaaS that will hold scanned loan files (regulated PII, so this is heading toward Tier 1). Elena sends a questionnaire; the vendor responds. We score each answer, weight by importance, and roll up to a rating. A defensible scoring scheme assigns each control a weight (how much it matters for this vendor's risk) and each answer a score (how well the vendor meets it), then computes a weighted result and — crucially — flags any critical-control failures that cap the rating regardless of the average.
| # | Control area | Weight | Vendor's answer | Score (0–4) | Note |
|---|---|---|---|---|---|
| Q1 | MFA on all admin access | 3 (critical) | "Yes, FIDO2 for admins" | 4 | Strong |
| Q2 | Encryption of data at rest | 3 (critical) | "Yes, AES-256, customer-managed keys optional" | 4 | Strong |
| Q3 | Encryption in transit | 2 | "TLS 1.2+ enforced" | 3 | Adequate (1.3 preferred) |
| Q4 | Documented vuln-mgmt / patch SLA | 2 | "We patch criticals within 30 days" | 1 | 30 days is slow for criticals |
| Q5 | Independent audit (SOC 2 Type II) | 3 (critical) | "SOC 2 Type II, current, scope covers this service" | 4 | Verified report scope |
| Q6 | Documented incident-response plan + breach notification | 3 (critical) | "IR plan yes; will notify within 72 hours" | 3 | 72h acceptable; want it in contract |
| Q7 | Sub-processor (fourth-party) disclosure | 2 | "List available on request" | 2 | Should be proactive/contractual |
| Q8 | Secure SDLC / dependency scanning | 1 | "We run SCA on builds" | 3 | Good for a SaaS |
| Q9 | Data return/destruction on termination | 2 | "On request, within 90 days" | 2 | Slow; tighten in contract |
| Q10 | Right to audit / security review | 1 | "Case by case" | 1 | Want a firm clause |
Now the scoring discipline. The raw weighted score is $\sum (\text{weight} \times \text{score})$ divided by the maximum possible $\sum (\text{weight} \times 4)$. The weights sum to $3+3+2+2+3+3+2+1+2+1 = 22$, so the maximum possible is $22 \times 4 = 88$. The achieved is $(3{\cdot}4)+(3{\cdot}4)+(2{\cdot}3)+(2{\cdot}1)+(3{\cdot}4)+(3{\cdot}3)+(2{\cdot}2)+(1{\cdot}3)+(2{\cdot}2)+(1{\cdot}1) = 12+12+6+2+12+9+4+3+4+1 = 65$. So the weighted result is $65/88 \approx 0.74$, or 74%.
But — and this is the part beginners miss — a percentage alone is a dangerous summary, because it lets strong answers on low-stakes questions paper over weak answers on critical ones. The vendor scored a 1 on Q4 (a 30-day critical-patch SLA is genuinely slow for a system holding regulated PII) and a 1 on Q10 (no firm right-to-audit). Neither is fatal, but both are gaps that must be remediated or accepted explicitly, not averaged away. The right output of scoring is therefore not "74% — pass," but a structured verdict:
- Overall: 74% weighted — Conditional approval, contingent on remediation of the two flagged gaps.
- Required before signing (or as contract commitments): tighten critical-patch SLA to ≤14 days (Q4); add a firm right-to-audit / annual security-review clause (Q10); make sub-processor disclosure proactive and contractual (Q7); reduce data-destruction window to ≤30 days with a destruction certificate (Q9).
- Residual risk if approved with those fixes: moderate; document and route to Elena's risk register with an annual re-assessment.
This is the vendor_risk() logic you will encode in this chapter's checkpoint: weighted scoring, plus a hard rule that any critical control scoring below a threshold caps the tier no matter how good the average looks. A vendor that fails MFA on admin access (Q1) does not get a "B" because everything else was fine; it gets flagged, because that one failure is a likely breach path.
⚠️ Common Pitfall: Self-attestation taken at face value. A questionnaire is the vendor grading its own homework. Most vendors answer honestly, but "honestly" is doing a lot of work — vendors interpret questions charitably, describe aspirations as practices, and answer for their best product when you're buying a different one. The mitigation is corroboration: require evidence for critical claims (the SOC 2 report, a penetration-test summary, a screenshot of the MFA policy), and weight a corroborated "yes" above an unverified one. Trust, but verify — verification is the right-to-audit clause and the evidence request, not a leap of faith.
Contractual security requirements: making it stick
Findings that aren't in the contract are suggestions. Contractual security requirements are the binding security obligations written into the vendor agreement — the clauses that convert "the vendor should" into "the vendor must, or there are consequences." The specific clauses every Tier 1 vendor contract should contain:
- Minimum security controls — encryption standards, MFA, patching SLAs, access controls — stated as requirements, ideally referencing a standard (e.g., "controls consistent with ISO 27001 / SOC 2") rather than re-listing everything.
- Right to audit — your right to assess the vendor's security, request evidence, or commission an independent audit, at a defined cadence. This is the clause that keeps the relationship from going dark after signing.
- Breach notification — the vendor must notify you of a security incident affecting your data within a defined, short window (e.g., 72 hours, or sooner — and note this should be tighter than regulatory minimums, because your notification clock to your regulators and customers starts when you learn of it).
- Data handling and ownership — where your data may be stored (data-residency matters for GDPR — Chapter 28), that you own it, how it's protected, and that it is returned or destroyed on termination with a certificate of destruction.
- Sub-processor (fourth-party) controls — the vendor must disclose its sub-processors, flow your requirements down to them, and notify you of changes. This is how you reach fourth-party risk through a third-party contract.
- Liability and cyber-insurance — indemnification for breaches caused by the vendor's negligence, and a requirement that the vendor carry cyber-insurance. This is risk transfer (Chapter 27) — it doesn't prevent the breach, but it allocates the cost.
- SBOM and provenance (for software vendors) — the requirement that the vendor provide an SBOM for delivered software and, increasingly, support for verifying artifact provenance. We will make this Meridian's explicit new requirement in the checkpoint.
- Right to terminate — the ability to exit if the vendor materially fails its security obligations, which is also your concentration-risk and exit-plan lever.
🔗 Connection: Breach notification and liability clauses are risk transfer in the precise sense from Chapter 27 — you cannot prevent a vendor breach with a clause, but you can contractually shift its financial cost and obligate the information you'll need. The right-to-audit and minimum-controls clauses are risk mitigation. And the right-to-terminate clause is your avoidance exit. A vendor contract, read as a security document, is the four risk-treatment options written in legal language. The lesson from Chapter 28 also lands here: these clauses are the floor. A contract that says "comply with applicable law" requires only the minimum; a good security contract requires more than the law does, because compliance is the floor, not the ceiling.
🔄 Check Your Understanding: 1. A vendor scores 90% on a weighted questionnaire but answered "no" to MFA on administrative access. Why might you still reject or condition the vendor despite the high average? 2. Which contract clause most directly addresses fourth-party risk, and how?
Answers
- Because a high weighted average can hide a critical-control failure, and MFA on admin access is a likely breach path — a single failure there can negate everything else. Defensible scoring caps the rating when a critical control fails, rather than averaging it away; the right outcome is rejection or conditional approval contingent on fixing that specific gap. 2. The sub-processor (fourth-party) controls clause: it requires the vendor to disclose its sub-processors, flow your security requirements down to them, and notify you of changes — giving you reach into the fourth-party layer you have no direct contract with.
29.5 Monitoring and vendor-breach response
You have assessed, contracted, and onboarded. Now the vendor lives in production for years, and two operational disciplines keep it from becoming a silent liability: continuous monitoring (watching the vendor's risk drift) and vendor-breach response (what you do when the vendor — not you — gets breached).
Continuous monitoring: keeping the picture current
A point-in-time assessment is a photograph; risk is a movie. Continuous vendor monitoring keeps the picture current through several complementary signals, none sufficient alone:
- Periodic re-assessment — the questionnaire and evidence refresh on the tier's cadence (annually for Tier 1). This catches slow drift and changes the vendor didn't volunteer.
- Security-rating services — third-party services (BitSight, SecurityScorecard, and similar) that continuously score a vendor's externally observable posture: expired certificates, exposed services, leaked credentials, breach history. Useful as an early-warning tripwire, with the caveat that they see only the outside and can be noisy — a falling score is a prompt to ask the vendor, not a verdict.
- Breach and news monitoring — watching for public disclosure that a vendor (or a vendor's vendor) has been compromised. The SolarWinds disclosure was a news event before it was a personal alert for most victims; the organizations that reacted fastest were watching for exactly this.
- Attestation and certificate refresh — confirming the SOC 2 / ISO 27001 hasn't lapsed and the scope still covers your service.
- SBOM and vulnerability tracking (for software) — continuously matching stored SBOMs against vulnerability feeds, so a newly disclosed CVE in a component you run anywhere generates an alert. This is the operationalized Log4Shell defense from §29.3.
The art is calibrating intensity to tier. Tier 1 vendors get all of the above; Tier 3 vendors get news monitoring and a periodic re-check. A program that tries to continuously monitor every vendor at full intensity will burn out; a program that monitors none will be surprised.
Vendor-breach response: the playbook for someone else's incident
When a vendor is breached, you are running an incident you did not cause, with information you do not control, on a timeline someone else set. This is genuinely different from the incident response of Chapter 24 — you cannot pull the vendor's logs, isolate the vendor's hosts, or directly contain anything. Your levers are your side of the relationship: your data at the vendor, your access to/from the vendor, and your obligations to your customers and regulators. A structured vendor-breach playbook:
- Confirm and scope — what of ours is affected? Establish what the vendor holds or accesses that's in scope, and what the breach actually touched. This is where the inventory and data-mapping from §29.2 pay off: if you don't know what data you gave this vendor, you cannot scope your exposure, and you will be at the mercy of the vendor's (often slow, often minimizing) disclosures.
- Contain your side. You can't contain the vendor, but you can cut the vendor's access into your environment (revoke API keys, disable the VPN account, rotate any shared credentials) and restrict your systems' reliance on the vendor if the integration is itself a risk. For SolarWinds-class events, this meant disconnecting or isolating the compromised product from the network immediately — you remove the trusted-but-now-dangerous thing.
- Hunt for the blast radius in your telemetry. If the vendor's product ran in your environment (SolarWinds) or had access to it, treat your own network as potentially compromised: hunt for the published indicators of compromise (Chapter 22), check for lateral movement from the vendor's access path, review what the vendor's account did. A vendor breach can be your breach the moment the attacker uses the vendor's foothold to move into you.
- Invoke the contract. Demand the breach details the contract entitles you to, the notification within the contracted window, and the vendor's remediation plan. The clauses from §29.4 are what you cash in here.
- Meet your obligations. Your regulatory and customer-notification duties (GLBA, state breach laws, GDPR) are triggered by your knowledge of a breach affecting your data — even though the breach happened at a vendor. You owe the notifications; the vendor's breach does not transfer that duty. This is why the breach-notification clause's timeliness matters so much: your clock may start when the vendor tells you.
- Reassess the relationship. After the dust settles: re-tier the vendor, decide whether to continue, demand contractual improvements, and feed the lessons into the program. A vendor breach is also a test of your TPRM program — it reveals exactly which assumptions were wrong.
🛡️ Defender's Lens — SolarWinds from the blue-team seat. Replay Sunburst as a vendor-breach response and notice how every step above maps to a real defensive action. Confirm and scope: which of your systems run the affected SolarWinds Orion versions, and what could they reach? Contain your side: isolate the Orion servers from the network immediately — they were the foothold. Hunt the blast radius: the attacker used Orion's access to move laterally and reach email and cloud identity, so you hunt for that lateral movement and for the published Sunburst indicators across your environment, assuming the trusted tool was an entry point. Invoke the contract and meet obligations: notify regulators and affected parties per your duties. The lesson that reorganizes a program: a vendor breach is not a paperwork exercise to be handled by procurement — for a vendor whose product runs inside your network with privilege, a vendor breach is a full incident response in your own environment, and your IR plan (Chapter 24) must explicitly include the "our trusted vendor was compromised" scenario. We analyze SolarWinds end-to-end from this defender's seat in Case Study 2.
⚖️ Authorization & Ethics: Throughout vendor-breach response, you investigate your environment, your logs, and your data — for which you have authority. You do not probe, scan, or "test" the vendor's systems to learn more, however tempting; that is unauthorized access to someone else's network, the same crime regardless of your good intentions, and the right-to-audit clause is the lawful channel for learning about the vendor's side. Stay on your side of the line: hunt your telemetry, invoke your contract, meet your obligations.
🔄 Check Your Understanding: 1. In a vendor breach, you cannot contain the vendor's systems. Name two things on your side you can contain or control immediately. 2. A vendor holding your customers' data is breached. The vendor is slow to disclose details. Why is your data inventory the thing that saves you, and why does your regulatory notification duty not simply transfer to the vendor?
Answers
- You can cut the vendor's access into your environment (revoke API keys, disable VPN/remote accounts, rotate shared credentials) and isolate/disconnect the vendor's product from your network if it runs there; you can also hunt your own telemetry for indicators and lateral movement from the vendor's access path. 2. Your data inventory lets you scope your exposure independently of the vendor's slow disclosure — you know what data you gave them, so you can begin notifications and containment without waiting. The notification duty doesn't transfer because regulations (GLBA, state laws, GDPR) place the obligation on you as the data controller/owner once you know your data was breached; the vendor's breach is the trigger, not a transfer of your legal duty.
29.6 Meridian's core-banking vendor and the SBOM rollout
Let us put it all together where the stakes are highest for Meridian: the core-banking vendor. The core-banking platform is the system of record for every account balance and transaction — the bank's ledger. It is a Tier 1 vendor by every criterion at once: it holds the most regulated data, it is the most business-critical system (a multi-day outage stops the bank), and it is a textbook concentration risk (there is no quick substitute). Elena Vasquez owns the assessment; Sam Whitfield owns the technical side of the SBOM requirement; Dana Okafor owns the board narrative. Here is how the chapter's machinery applies.
Tiering and concentration. The core-banking vendor is Tier 1, full stop, and it is flagged additionally for concentration risk. Elena's assessment therefore can't end at "is the vendor secure?" It must also ask "what happens if this vendor fails or is compromised, and can we survive it?" That second question drives a resilience and exit analysis: contractual uptime and recovery commitments, the vendor's own business-continuity posture, and a sober estimate of how long it would take Meridian to migrate to an alternative (the honest answer: years). The concentration is accepted — there genuinely is no realistic single-quarter alternative — but accepted explicitly, documented in the risk register, with mitigations (resilience clauses, a tested communication plan for vendor outages) rather than pretended away.
Assessment and contract. Elena runs the full Tier 1 process: a comprehensive questionnaire, the vendor's SOC 2 Type II report (scope confirmed to cover the actual core-banking service Meridian uses, exceptions read), penetration-test summaries, and a sit-down on the gaps. The contract carries every Tier 1 clause from §29.4 — minimum controls, a firm right to audit at an annual cadence, breach notification within 72 hours (tighter where negotiable), data ownership and residency, sub-processor disclosure and flow-down, liability and cyber-insurance, and a right to terminate for material security failure. For a regulated bank, several of these aren't optional niceties; the GLBA Safeguards Rule explicitly requires overseeing service providers by contract and by ongoing monitoring, and FFIEC examiners will ask to see exactly this.
The new requirement: SBOMs for delivered software. Meridian's program increment this chapter is to add an SBOM requirement to its software-vendor contracts and procurement standard, starting with the highest-risk software. The core-banking vendor delivers software that runs in Meridian's data center; under the new requirement, the vendor must provide a current SBOM (CycloneDX or SPDX) for each release. Sam wires the consuming side: SBOMs are stored centrally and continuously matched against vulnerability feeds (NVD, CISA KEV, OSV). The payoff is the Log4Shell payoff — the next time a critical CVE drops in a buried dependency, Meridian queries its SBOM store and knows, in minutes, whether the core-banking platform (and every other catalogued application) is exposed, instead of waiting days for the vendor to investigate and respond. This requirement is also where Meridian operationalizes the lesson of both anchors: SBOMs answer the Log4Shell question, and the same contract language begins to require provenance/build-integrity attestations (the SolarWinds question) for the highest-risk software, pointing forward to the secure-pipeline work in Chapter 31.
The board framing. Dana's job is to make this legible to the Audit Committee. Her framing: "Our largest single technology risk is a vendor we cannot easily replace. We can't eliminate that concentration, but we now manage it — we assess this vendor to our standard, our contract obligates them to it and lets us verify it, we monitor them continuously, and we have, for the first time, an inventory of what's inside the software we run, so the next industry-wide vulnerability is a one-hour query instead of a two-week fire drill." That is the whole chapter in a sentence a board can act on: third-party risk is real and unavoidable, but it is manageable, and Meridian now manages it deliberately.
Project Checkpoint
This chapter adds Meridian's third-party risk management process and SBOM requirement to the security program, and extends bluekit's compliance.py with vendor_risk().
Program increment — the TPRM process + SBOM requirement. You will write a one-to-two-page TPRM standard for Meridian's program binder containing: (1) the vendor inventory requirement and how vendors are discovered (procurement, AP, SSO app list); (2) the three-tier classification scheme from §29.2 with its criteria; (3) the lifecycle stages (assess → contract → monitor → offboard) and what each tier requires at each stage; (4) the contractual security requirements checklist from §29.4 for Tier 1/2 vendors; (5) the new SBOM requirement for software vendors, with the consuming-side process (store centrally, match against NVD/KEV/OSV feeds); and (6) the vendor-breach playbook from §29.5. Template lives in Appendix I; this slots between the compliance mapping (Chapter 28) and the awareness program in the binder, and the concentration-risk note feeds the enterprise risk register from Chapter 27.
bluekit increment — compliance.py gains vendor_risk(answers). We extend the compliance.py module (begun in Chapter 26, extended in Chapter 28) with the questionnaire-scoring logic from §29.4: a weighted score plus a critical-control override that caps the tier when a critical control fails — because, as we saw, a high average must never hide a missing MFA. As always, the code is illustrative and never executed during authoring; the expected output is hand-traced in a comment.
# bluekit/compliance.py — Chapter 29 increment (extends Ch.26/28: policy_coverage, crosswalk)
CRITICAL = "critical" # mark controls whose failure caps the tier regardless of average
def vendor_risk(answers):
"""Score a vendor questionnaire into a tier.
answers: list of (weight:int, score:0-4, kind) where kind == CRITICAL flags
a control whose sub-threshold score (< 2) forces a HIGH-RISK tier no matter
the weighted average. Returns (pct:int, tier:str, flags:list).
"""
earned = sum(w * s for (w, s, _kind) in answers)
possible = sum(w * 4 for (w, s, _kind) in answers)
pct = round(100 * earned / possible) if possible else 0
flags = [i for i, (w, s, kind) in enumerate(answers, 1)
if kind == CRITICAL and s < 2] # failed critical controls
if flags:
tier = "HIGH-RISK (critical control failed)"
elif pct >= 85:
tier = "LOW-RISK"
elif pct >= 70:
tier = "MODERATE-RISK (remediate gaps)"
else:
tier = "HIGH-RISK"
return pct, tier, flags
if __name__ == "__main__":
# The §29.4 document-management vendor: weights/scores from that table.
doc_vendor = [(3, 4, CRITICAL), (3, 4, CRITICAL), (2, 3, ""), (2, 1, ""),
(3, 4, CRITICAL), (3, 3, CRITICAL), (2, 2, ""), (1, 3, ""),
(2, 2, ""), (1, 1, "")]
print(vendor_risk(doc_vendor))
# A vendor that fails MFA (a CRITICAL control) despite a high average:
no_mfa = [(3, 0, CRITICAL), (3, 4, CRITICAL), (2, 4, ""), (2, 4, ""), (1, 4, "")]
print(vendor_risk(no_mfa))
# Expected output:
# (74, 'MODERATE-RISK (remediate gaps)', [])
# (73, 'HIGH-RISK (critical control failed)', [1])
Trace the second case by hand to see the override earn its keep. The no_mfa vendor earns $(3{\cdot}0)+(3{\cdot}4)+(2{\cdot}4)+(2{\cdot}4)+(1{\cdot}4) = 0+12+8+8+4 = 32$ out of a possible $(3+3+2+2+1)\times4 = 11\times4 = 44$, so $32/44 \approx 73\%$ — a respectable-looking average. But control #1 is CRITICAL and scored 0 (below the threshold of 2), so it lands in flags, and the tier is forced to HIGH-RISK regardless. That single rule is the §29.4 lesson in four lines of code: a vendor that can't get administrative MFA right does not earn a passing grade because the rest of the survey was tidy. You have given Meridian a tool that scores vendors the way a defender actually thinks — by the average and by the deal-breakers.
Summary
This chapter pointed your risk and compliance machinery at the people and code you did not build.
- Your risk includes their risk. Your attack surface is the union of your own and that of everyone you trust. Third-party risk management (TPRM) is the lifecycle discipline of managing it at arm's length, through assessment and contract, because the controls live in someone else's company.
- Three flavors of "their risk," treated differently: data/access risk (the vendor holds your data or reaches your systems), supply chain risk (a component you deploy is compromised or flawed before it reaches you), and fourth-party risk (your vendors' vendors). Plus concentration risk — outsized dependence on one provider — which a better assessment can't fix; it needs diversification, resilience, and exit plans.
- The TPRM lifecycle: inventory → tier → assess (questionnaire + audit evidence) → contract → onboard (least privilege) → monitor continuously (the stage everyone skips) → offboard (confirm data destruction — the leak at the end). Tier first: it sends finite assessment capacity where the risk is.
- The software supply chain is the highest-stakes flavor. Log4Shell (CVE-2021-44228, CVSS 10.0) showed that the hard question is "are we running this, and where?" — because dangerous components are usually transitive dependencies. A software bill of materials (SBOM) — a machine-readable inventory of every component (SPDX or CycloneDX) — turns that question from a two-week expedition into a query, if it's continuously matched against vulnerability feeds (NVD, CISA KEV, OSV).
- SolarWinds showed SBOMs aren't enough: the build system was compromised, so components looked legitimate and were correctly signed. Software provenance and SLSA answer "can I prove this artifact is what I think it is?" SBOM = what's inside; provenance/SLSA = where it came from and whether it was tampered with. A complete program needs both.
- Scoring a questionnaire: weighted score plus a critical-control override — a high average must never hide a missing MFA. Turn gaps into contractual security requirements: minimum controls, right to audit, breach notification (tighter than the regulatory minimum), data ownership/residency/destruction, sub-processor flow-down (your reach into fourth-party risk), liability/cyber-insurance (risk transfer), SBOM/provenance for software, and right to terminate.
- Vendor-breach response is an incident you didn't cause: confirm and scope your exposure (your data inventory saves you), contain your side (revoke the vendor's access, isolate its product), hunt your telemetry for the blast radius, invoke the contract, meet your notification duties (they don't transfer to the vendor), and reassess. For a product that runs inside your network with privilege, a vendor breach is a full IR event in your environment.
Spaced Review
Retrieval practice from earlier chapters, plus this one. Answer before scrolling.
- (Chapter 28) What is a control crosswalk, and why does mapping one framework's controls to another's reduce the work of satisfying multiple compliance regimes at once? How does that idea help when a single vendor contract must satisfy both PCI-DSS and GLBA expectations?
- (Chapter 23) You learned that CVSS alone isn't priority — you fold in EPSS and the CISA KEV catalog. When a newly disclosed CVE matches a component in one of your stored SBOMs, which of those signals tells you whether attackers are already exploiting it in the wild, and how does that change your patch urgency?
- (Chapter 28) "Compliance is the floor, not the ceiling." Apply it to a vendor contract: give one example of a security clause that goes beyond what regulation strictly requires, and why a mature program includes it anyway.
- (This chapter) Explain why an SBOM would not have detected the SolarWinds Sunburst compromise, and name the supply chain control that addresses that gap.
Answers
1. A crosswalk maps equivalent or overlapping controls across frameworks so a single control implementation (and its evidence) satisfies multiple regimes at once — you implement once and demonstrate against many. For a vendor, you can require controls "consistent with SOC 2 / ISO 27001" and let that one requirement carry both PCI-DSS and GLBA expectations, rather than re-listing each regime's controls separately. 2. The **CISA KEV catalog** tells you the vulnerability is being *actively exploited in the wild*; a KEV match (or a high EPSS probability) sharply raises patch urgency — you treat an SBOM hit that's also on KEV as an emergency, not a routine 30-day patch. 3. A breach-notification window tighter than the regulatory minimum (e.g., 72 hours or less), or a critical-patch SLA shorter than "applicable law" implies — included because *your* notification clock and *your* exposure don't wait for the legal floor, and real security needs faster information than compliance demands. 4. The Sunburst code was injected into SolarWinds' *build system*, so the shipped components were legitimate and correctly signed — an SBOM lists what's there, not whether the build was tampered with. *Software provenance* / SLSA (and build-pipeline integrity, Chapter 31) address it by proving an artifact was built from expected source by an untampered process.What's Next
You now manage the risk of what you bought and what it's built from — but the single most expensive and least controllable third party of all is the human being. Chapter 30 turns to security awareness training: why phishing still works after thirty years of "don't click the link," how to build a program that changes behavior rather than just checking a box, how to run phishing simulations ethically and measure them honestly, and how to turn an entire workforce from the weakest link into a human firewall. It closes the loop on the Meridian story we opened the book with — the near-miss phishing email of Chapter 1 — by turning that incident into the program that makes the next click a reported email instead of a breach. After that, Part VII takes everything you've built and pushes it to the edge: DevSecOps and the secure pipeline (Chapter 31, which carries this chapter's supply chain lessons directly into the build), zero trust, operational technology, AI in security, and the emerging threats — including supply chain attacks, next generation (Chapter 35) — that will define the next decade of defense.