Find threats with STRIDE
The Assistant threat-models a view with STRIDE, starting from the flows that cross a trust boundary. You get threats tied to elements and flows, a coverage line for the crossing flows, and one click to add them to the review as findings.
On this page
Before you start
- A data-flow view in a diagram you can edit. Trust boundaries come from the trust zones the view draws; an external element outside every zone stands for the internet. Add one with Add a view if the diagram has none.
- Flows with their facts, as far as you know them: protocol, encryption, authentication, personal data. The more the flows state, the more precise the threats.
- Credits left: the threat model runs with AI. Its starting points are computed for free.
Run a threat model on a view
- Open the view and ask
Open the data-flow view, press Ctrl J and ask: “Threat-model the claim submission flow.” You can also select an element and ask for the threats of its flows.
The job shows as Threat model. Its options name the View to threat-model and take an optional focus: What to focus on (optional): the payment flows, personal data…
- Start it
Select Threat-model. While it works, the panel says it is looking at the flows that cross a trust boundary.
- Read the threats
The card opens with a line such as 6 threats on 5 elements and flows, 2 of them high. Each threat names its STRIDE category, the elements or flows it is about, and the controls that answer it, written as NIST CSF 2.0 or OWASP identifiers.
Then the coverage: Every flow that crosses a trust boundary is covered., or how many are, and what to check on the others.
- Add them to the review
Select Add to the review. The threats become findings of the diagram's review, next to those of the checks.
The review lists the new threats as open findings, each pinned to its element or flow on the canvas.
To act on them, select Propose fixes for these threats: the fixes come as a proposal you check and apply, like any change. See Ask, review, apply.
STRIDE in one table
STRIDE names six kinds of threat. Each applies to some parts of a data-flow view only:
| Letter | Threat | Applies to |
|---|---|---|
| S | Spoofing | external entities, processes |
| T | Tampering | processes, data stores, flows |
| R | Repudiation | external entities, processes, data stores |
| I | Information disclosure | processes, data stores, flows |
| D | Denial of service | processes, data stores, flows |
| E | Elevation of privilege | external entities, processes |
A threat counts as covering a crossing flow when it names that flow, or both its ends, with a category that applies to a flow. A blanket threat on every element covers nothing.
Without AI: the starting points
Before any AI call, iyedy computes the STRIDE starting points of the view in your browser: the flows, how many cross a trust boundary, the elements and the candidate threats. They are free and nothing is sent. Use them to check a view before you spend credits, or when the Assistant cannot run on this diagram. See Instant answers, free and without AI.
Variants and limits
- A view that is not a data-flow view works too: its boundaries come from the trust zones of its elements.
- Threats stay open until the model changes: a later threat model that leaves a threat out keeps it open; a threat whose elements left the model is resolved.
- Framework references other than NIST CSF 2.0 and OWASP are removed from the answer.
If it doesn't work
“This model has no view to threat-model yet.”
Add a data-flow view: it draws the trust boundaries the threat model starts from. See Add a view.
Few threats, or flows not covered
The flows state too little. Fill in protocol, encryption and authentication on the flows that cross a boundary, then run it again.
“No threat was found on this view.”
Threats start from the flows that cross a trust boundary. Check that the view draws its trust zones and that external elements sit outside them, then run it again.
More symptoms: Assistant troubleshooting.
Was this page helpful?Your answer is anonymous and counts only if you accepted measurement.
What went wrong?
Don't write personal data.