Skip to main content

Claude/ChatGPT Prompt to Build a STRIDE Threat Model for a Feature

Lightweight STRIDE threat model for a new feature: data-flow diagram, trust boundaries, per-category threats, ranked mitigations, and residual risk.

Vul de plaatshouders in

Edit the values, then copy your finished prompt.

Jouw Prompt
prompt.txt

                                

What this prompt does

This prompt runs a one-hour STRIDE threat-modeling session on a single feature and keeps it concrete: every threat must tie to a real trust boundary in that feature, not a generic checklist. The model draws an ASCII data-flow diagram with boundaries marked, lists assets and actors, walks all six STRIDE categories per boundary with an example threat each, then ranks mitigations by effort versus risk reduced and names the three threats to fix before launch.

The variables anchor the session. [feature] defines the scope — a file upload to S3 has very different boundaries than a payments flow. [data_sensitivity] raises or lowers the stakes on information-disclosure threats. [trust_assumptions] is the most revealing input: stating what the feature currently trusts (say, a client-supplied filename and content-type) tells the model exactly where to probe, because trusted-but-unverified input is where real threats hide.

When to use it

  • You are about to build a feature and want a fast, structured threat model before code
  • You want STRIDE applied to actual trust boundaries, not an abstract list
  • A background job or webhook trusts input it probably should not
  • You need mitigations ranked by effort versus risk so you can pick what fits the timeline
  • You want residual risks written down with explicit acceptance criteria
  • You want a clear shortlist of the threats to fix before launch

Example output

The model returns an ASCII data-flow diagram with trust boundaries drawn in, a list of assets and actors, then a STRIDE threat table per boundary with a concrete example for each of the six categories. After that comes a mitigation list ranked by effort against risk reduced, a residual-risk section with acceptance criteria, and a final pick of the three threats to address before you ship.

Pro tips

  • Make [trust_assumptions] honest and specific — naming what you currently trust (client filename, content-type) is what points the model at the real threats
  • Scope [feature] to one feature so the session stays inside an hour and actually happens
  • Set [data_sensitivity] accurately; PII or financial data should pull information-disclosure threats up the ranking
  • Read the data-flow diagram out loud and check each boundary — the threats you skip are usually the ones you cannot see
  • Watch for the forgotten boundary, often a background job or webhook trusting upstream input
  • Use the effort-versus-risk ranking to negotiate scope, and record any accepted residual risk so the decision is explicit later
  • Name internal actors as well as external ones in the assets-and-actors step; insider and service-to-service paths produce threats an external-only view misses
  • Revisit the model when the feature changes; a new data flow or integration can introduce a boundary the original session never covered

Frequently Asked Questions

What does the trust_assumptions variable change in the output?
It tells the model what your feature currently trusts, like a client-supplied filename or content-type. Those trusted-but-unverified inputs are where most real threats live, so stating them accurately directs the STRIDE walk toward the boundaries that actually matter.
Why is this scoped to one hour?
The prompt frames it as a one-hour session deliberately so the threat model actually gets done rather than being endlessly deferred. Keeping `[feature]` narrow is what makes that timebox realistic and produces a focused, actionable result instead of a sprawling document.
Does it tell me what to prioritize, or just list everything?
Both. It walks every STRIDE category per boundary, but it also ranks mitigations by effort versus risk reduced and names the three threats to fix before launch. That gives you a clear starting point instead of an undifferentiated list of risks.
What happens to risks I choose not to mitigate?
Deliverable 5 captures residual risks with explicit acceptance criteria. That means any risk you decide not to address is written down with the conditions under which you accept it, so the decision is documented rather than silently forgotten.
Engr Mejba Ahmed

Need this built for real?

Engr Mejba Ahmed

AI Developer · Software Engineer

I'm Mejba — I design and ship production AI systems, automations, and full-stack apps. If you want this turned into a working solution for your team, let's talk.

Meer in Cybersecurity Prompts

Engr Mejba Ahmed

Engr Mejba Ahmed

Claude Code Expert · Online

👋

Hey there!

Quick Actions

WhatsApp Instant reply

Chat on WhatsApp

+880 1723 741224 · Instant reply

Popular Questions

Engr Mejba Ahmed is connected
Engr Mejba Ahmed is typing...
Engr Mejba Ahmed avatar

✉ Want me to follow up? Drop your email

Engr Mejba Ahmed avatar

📞 Connect Directly

Choose how you'd like to reach me

WhatsApp

+880 1723 741224

Email

[email protected]

✓ Details sent! I'll get back to you shortly.

Powered by OpenAI

335+

Blog Posts

25

AI Courses

63

Projects

Services & Expertise

Pricing & Process

Learning & Resources

Connect & Support