BitBootcampBitBootcamp ← all explainers 🔄 Review ⚙ Settings

Drill 45 — The Vendor's Bad Week

Theme: Security & Trust Boundaries · Format: 20-min drill · Difficulty: core

The story

Your document-processing vendor — the one every applicant's bank statements pass through — discloses a breach: an attacker had access to their logging environment for three weeks. Their logs, it turns out, contained full request payloads. Your customers' financial documents were in someone else's logs, and now in someone else's hands. Your name is on the breach notification letters, not theirs.

⏸ Stop here and ask the room: what should have been asked before the contract was signed, and what do you do this week?

Run it — facilitator script

Timing for a 20-minute session: 2 min story · 10 min staged questions · 3 min reveal · 5 min transfer.

What data minimization was possible? (Did the vendor need full statements?)

What did the security questionnaire actually verify vs. record?

What's the incident plan when the incident is inside a vendor?

The reveal

The vendor's SOC 2 report was current and clean. It attested to their controls' design — not to what their debug logging did under pressure last quarter.

Why this happens — the mechanics

Your obligations travel with the data; your controls don't. The moment full statements cross the wire, they're governed by the vendor's logging defaults, debug habits, and retention hygiene — and vendors log full payloads for the same innocent reason your own teams do: debugging is easier with everything. Nothing in a standard integration ever surfaces what the vendor's logs contain, so the gap between "what we sent them" and "what they're storing, where, for how long" stays invisible until someone hostile finds it first.

Attestation gaps are structural, not scandalous. A SOC 2 (Service Organization Control 2) report is an auditor's snapshot of control design and operation over a window — it cannot see the debug flag an engineer enabled under incident pressure after the audit closed, and it was never designed to. The failure isn't that the certificate lied; it's that the buyer read a snapshot as a live feed. Questionnaires compound this: they record what the vendor says, and almost never ask the one question that mattered here — what do your logs contain when a request fails?

And accountability doesn't outsource. Customers handed their statements to you; regulators licensed you; the notification letters carry your name, because from the outside there is no vendor — there is only your promise about the data, kept or broken. That's why minimization is the load-bearing control: it's the only one that keeps working when everything on the vendor's side of the boundary fails at once.

Diagrams

Problem — how the failure unfolds:

sequenceDiagram
    autonumber
    participant YOU as You
    participant VN as Vendor
    participant LG as Vendor logs
    participant AT as Attacker
    participant CU as Your customers
    YOU->>VN: Full bank statements sent<br/>for processing
    VN->>LG: Full request payloads<br/>logged (silent)
    AT->>LG: Inside the logging<br/>environment for three<br/>weeks (silent)
    Note over AT,LG: Customers' financial<br/>documents exfiltrated
    VN->>YOU: Breach disclosed - SOC 2<br/>was current and clean
    Note over YOU: Attestation covered design,<br/>not behavior under pressure
    YOU->>CU: Breach notification letters -<br/>your name on them

Solution — where the guardrails go:

flowchart TD
    A["Document needs vendor<br/>processing"] --> B["Data minimization: redact<br/>and tokenize before<br/>transmission"]
    B --> C["Vendor receives only the<br/>fields it actually needs"]
    D["Contract: log-handling and<br/>breach-notification terms<br/>with teeth"] --> C
    C --> E["Vendor breach happens anyway"]
    E --> F["Upstream-breach incident<br/>runbook triggers"]
    F -.-> M["Exposure scoped fast:<br/>tokens leaked, not<br/>statements"]
    F --> G["Exit and rotation plan per<br/>critical vendor, ready in<br/>advance"]

What good looks like

The lesson

Your trust boundary includes every vendor that touches your data — customers don't distinguish, and neither do regulators. Practical controls: send the minimum (redact/tokenize before transmission), contractual breach-notification and log-handling terms with teeth, an exit/rotation plan per critical vendor, and your own incident runbook for "the breach is upstream" — because certification is a snapshot, not a guarantee (Drill 39's dependency lesson, at maximum stakes).

Named concepts: third-party risk, data minimization, vendor security posture vs. attestation, supply-chain incident response.

Real-world echoes

MOVEit, 2023 — a vulnerability in Progress Software's MOVEit Transfer tool was exploited at scale, and hundreds of downstream organizations — many in financial services — sent breach letters for customer data that had been sitting in a vendor's file-transfer layer. Most affected customers had never heard of MOVEit; the letters carried names they had heard of. Same shape as this drill: the breach was upstream, the accountability wasn't.

Transfer

For our top three data-touching vendors: exactly what fields do we send, and could any be tokenized or dropped without breaking the integration?

Make it a ticket: For our single most data-heavy vendor, produce the exact field inventory we transmit and mark each field keep / tokenize / drop — the deliverable is the redaction change request, filed against the integration.

Related