Choose your situation

WHAT YOU WILL PRODUCE
  • Follow identity and sensitive data across every relevant path.
  • Apply STRIDE, and LINDDUN for personal data, to turn an attacker goal into a testable abuse case.
  • Record an owned design decision with residual uncertainty.

A boundary diagram, a prioritized abuse-case table built with STRIDE and an owned design decision record.

BEFORE YOU START
  • Recognize users, services, stores and queues in a simple diagram.
  • Use the tenant-isolation or mobile and native guide dossier; mark assumptions when facts are unavailable.
Example journey: Tenant isolation → trust boundaries → abuse cases
1

Draw the actual system

Create a diagram plus a data-flow table for one operation. Include the ordinary API, background worker, export or cache path, administrative route and any client-side bridge, and mark where identity is authenticated and where data changes audience. This answers the first of the four threat-modeling questions: what are we working on, what can go wrong, what are we going to do about it, and did we do a good enough job? Finish when each sensitive read or write has a caller, target and trust boundary, including paths missing from the happy-path diagram.

2

Challenge isolation

Walk each element and flow through STRIDE (spoofing, tampering, repudiation, information disclosure, denial of service and elevation of privilege), and through LINDDUN where personal data is involved. Trace one tenant or account identifier from entry to the final data access, separating authenticated identity from caller-supplied fields through queues, caches and support tools. Produce one candidate bypass with a stated precondition. Finish when you can name the exact component that must reject it and the evidence still missing.

3

Prioritize concrete failures

Write an abuse-case row with attacker goal, controllable input, preconditions, affected asset, expected forbidden effect and test oracle; draw an attack tree when one goal has several routes. Rank work using consequence and credible reachability, keeping uncertainty visible rather than inventing a likelihood score. Compare a partial repair with one that interrupts the actual path. Finish with a small set of material cases whose proposed controls can be falsified by specific inputs and observations.

4

Record decisions

Produce a decision record joining each selected control to an owner and acceptance evidence. Include the intended legitimate case, residual risks, unresolved dependencies and a reopening trigger such as a new queue consumer or privileged bridge method. A proposed decision remains proposed until the accountable role accepts it. Revisit the model after implementation to answer the last question: did we do a good enough job? Finish when implementation teams know what to build and reviewers know which observation would make them reject the design claim.

Practice

The steps use a connected exercise: IDOR lab: Repair an invoice authorization bug. To build the skills behind this job step by step, follow the learning path AppSec in practice.

Work products

Use the blank work product for your system. Compare its required evidence with a completed synthetic example.

Download blank work product Download completed example