skip to content

Recurring Threats, Platform Controls

Reading a portfolio of models for the threat that repeats, then moving that control into the platform so later models inherit and verify it. Interviewers ask what twenty identical findings change.

on this pageshow

questions

3

When one threat recurs across thirty-eight threat models, what changes about how you fix it?

level: middleimportance: must knowfreq 60%

answer

  1. the repetition is itself the finding
  2. count models, not tickets
  3. one missing capability underneath all of them
  4. fix once where everyone inherits it
  5. relocated control still needs owner and test

basics

~20 s

A threat repeating across nearly every model is a missing platform capability, not thirty-eight product defects. Build the control once where every service inherits it, then each model names that control instead of carrying its own ticket.

solid answer

~50 s

Reading models one at a time hides this; reading the portfolio surfaces it. When thirty-eight models across an insurance group all raise 'service-to-service calls inside the private network are unauthenticated', filing thirty-eight tickets buys thirty-eight inconsistent implementations, thirty-eight reviews, and a gap that reopens the moment a thirty-ninth service ships. The recurrence is the finding: the platform issues no workload identity, so every team is being asked to invent caller authentication. I would fix it once — platform-issued workload identity that services receive by default — and rewrite each model to name that control as the mitigation. Two conditions come with it. The threats must genuinely match: same attacker position (any compromised low-privilege workload), same asset (credentials and lateral reach). And the platform control needs its own owner and its own test, or I have merely moved thirty-eight risks into one place nobody watches.

go deeper

for a junior

Be ready to say what it means when the same threat shows up in many models: it usually points at something missing beneath all of them rather than a mistake each team made independently.

for a middle

An interviewer expects the mechanics: how you normalise threat wording so recurrence becomes visible at all, and why one control that every service receives by default beats thirty-eight hand-rolled versions of it.

for a senior

Show the judgment. Confirm the threats really match on attacker position and asset before merging, name an owner and a test for the relocated control, and say what each product team must still do in the window before it lands.

for a principal

Own the tradeoff: a platform control concentrates both the benefit and the blast radius, and it moves work and accountability off product teams onto one that must now be funded to run it. Argue when that trade is worth making and when it is not.

## The finding you can only see across models A threat model is normally read alone: one design, one set of trust boundaries, one threat list, one set of tickets. Reading the **portfolio** — every model the organisation holds — surfaces a class of finding no single model can show. When the same statement appears in thirty-eight models across an insurance group's estate — *service-to-service calls inside the private network are unauthenticated, so any workload that gains a foothold can call any other* — the repetition itself is the finding, and it is a finding about the **platform**, not about any of the thirty-eight products. Note the attacker and the asset, because they are what make the threat one threat rather than thirty-eight. The attacker is any compromised low-privilege workload: a container running a vulnerable library, a job that processes attacker-supplied input, a service a contractor can deploy to. The asset is credentials and lateral reach — the ability to call the claims service, the payments service, the identity service as if you were a peer. No product team owns that shape. Every product team inherits it from the network they were handed. ## Why thirty-eight tickets is the wrong shape of answer Filing one ticket per model looks diligent and is expensive in ways that do not show up in the tracker: - **Thirty-eight implementations.** Some teams will ship mutual authentication, some a shared secret in an environment variable, some an allow-list of source addresses. You now own thirty-eight designs to review and thirty-eight ways to be wrong. - **Thirty-eight negotiations.** Each ticket competes with that team's roadmap. Most will slip; a few will never start. - **No coverage for what arrives next.** Service thirty-nine ships next quarter with the same gap, and the practice has no memory. - **The work is misplaced.** You are asking product engineers to solve an infrastructure problem they cannot solve well, because they do not control the identity plane. ## Relocating the control The alternative is to move the control to where the threat actually lives. The platform issues each workload a short-lived, verifiable identity; callers present it, callees verify it, and a service gets this by being deployed rather than by writing code. One control, built once, answers the threat everywhere — including in services that do not exist yet, which is the part thirty-eight tickets can never buy. The same reasoning covers a different attacker and a different asset. A customer-support console whose agents can open any account appears in most product models as *an agent with legitimate access reads records for customers they are not helping* — a malicious insider, personal data at stake. Thirty-eight redaction projects inside thirty-eight products is the tickets answer. The relocated answer is a platform grant service: an agent requests access to a specific account for a stated reason, receives a grant that expires, and every product console reads through it. Same move, different layer. ## What has to be true before you merge threats Recurrence is a hypothesis, not a fact. Two models can use identical words for different threats: | What to compare | Why it decides the merge | | --- | --- | | Attacker position | An anonymous internet caller reaching an internal port is not a compromised peer workload; one control will not answer both | | Asset at stake | Lateral reach differs from bulk data export, and the proportionate control differs with it | | Boundary crossed | The same words can describe a hop the platform mediates and a hop it never sees | | The control that would stop it | If one control stops both, they are one threat; if not, they are two wearing the same label | Normalising threat wording across models is what makes the pattern visible in the first place; confirming the underlying flows is what makes merging safe. Matching strings is how you produce a confident, wrong consolidation. ## What the platform control owes you Moving a threat into the platform concentrates it. Thirty-eight moderate risks become one risk that matters a great deal, so the control must carry the weight: - **A named owner** — a team that is funded to run it, not a project that ended. - **A test** that exercises the property, so a change to the platform that weakens the control fails visibly rather than silently. - **A reference each product model can point at**, so the threat is still recorded in every model, now with a mitigation that lives elsewhere. - **An honest interim answer** for the window before it lands, because the threat is live now. The threat does not disappear from the thirty-eight models. It is still there — what changes is that the mitigation column stops saying *team to implement caller authentication* and starts naming a control with an owner and evidence behind it. ## When the tickets answer is still right Relocation is not free and not always correct. Keep the work distributed when the threats only look identical; when the platform team cannot own the control on any credible timeline and exposure is live; when the right control genuinely differs by service because data sensitivity or caller population differs; or when centralising creates a single component whose failure hands an attacker everything at once. The mature answer is often both: a per-service mitigation now, and a platform control in flight that lets you delete those mitigations later.

  • How do you tell a genuinely recurring threat from several different threats that happen to share a label?
    Compare four things: the attacker position, the asset at stake, the boundary crossed, and the control that would stop it. Two models may both say 'unauthenticated internal call' while one means an anonymous internet caller reaching an internal port and the other means a compromised peer workload — one platform control will not answer both. Treat the merge as a hypothesis you confirm by reading the underlying flows, not by matching wording.
  • Take the support console case — agents can open any customer account, and it appears in most product models. What does relocating that control look like?
    Instead of thirty-eight redaction projects inside thirty-eight products, the platform provides a grant service: an agent requests access to a specific account for a stated reason and receives a grant that expires, and every product console reads through it. The attacker is a malicious insider with legitimate access and the asset is personal data, so the grant plus its trail answers the threat across the estate at once.
  • When is filing the thirty-eight tickets actually the right call?
    When the threats only look identical; when no platform team can own the control on a credible timeline while the exposure is live; when the proportionate control genuinely differs by service because the data class or the caller population differs; or when one central control would create a component whose compromise hands an attacker every service at once. Often the answer is both: mitigate per service now, land the platform control after.

Thirty-eight tenants each fitting their own lock to the same shared corridor door. The corridor belongs to the landlord; the fix is one door that locks, not thirty-eight locks on it.

saying these in an interview costs you the question

  • Files one ticket per model and calls that thorough
  • Assumes identical wording means an identical threat
  • Declares the platform control done with no owner
  • Never reads across models, so patterns stay invisible
  • Claims a central fix removes the need for any test
  • Ignores that centralising concentrates blast radius

context

open as a page

Twenty threat models all assume CI runners cannot reach production databases, and nobody has tested it. What do you do?

level: seniorimportance: should knowfreq 44%

basics

~20 s

Turn the repeated assumption into a test the platform owns and runs continuously. An unverified inherited control is a shared belief, not a control, and twenty models depend on it, so one wrong belief invalidates all twenty at once.

open as a page

A team's threat model for a new service covers only its two bespoke flows and inherits the platform by reference — when is that delta model legitimate?

level: principalimportance: nice to knowfreq 27%

basics

~20 s

Legitimate when the inherited part is named control by control, each of those controls has evidence behind it, and the team can show why its two flows fall outside the inherited pattern. Lazy when 'the platform handles it' names nothing.

open as a page