Diagrams
Different diagram types are useful in different threat modelling contexts. Diagrams should:
- Show the events that drive the system.
- Show the processes that are driven.
- Determine what responses each process will generate and send.
- Identify data sources for each request and response.
- Identify the recipient of each response.
- Ignore the inner workings, focus on scope.
- Ask if something will help you think about what goes wrong, or what will help you find threats.
Think of them as interchangeable tools: choose the one that best fits the system and the conversation you need to have.
All diagrams serve the same goal: establish a shared understanding of how the system works.
Disagreements about diagrams often reveal hidden misunderstandings about the system. Those misunderstandings frequently surface security issues.
Validating Diagrams
Validating a system diagram ensures it is both accurate and useful for threat modelling.
A good threat modeling diagram is one that is accurate, complete enough for security analysis, and actively used to align understanding across the team.
Accuracy
A diagram is accurate if it reflects reality:
- All important components are included
- No non-existent components or flows are shown
- All significant data flows are represented
- You can explain the system without mentally “fixing” the diagram
If you need to mentally edit the diagram to tell the system story, it is not accurate.
Usefulness (“Goodness”)
A useful diagram highlights what matters for security:
- Focus on elements that affect security outcomes
- Include edge cases and conditional behavior (“sometimes”, “also”)
- Expand details when they affect security decisions
- Capture disagreement about system design explicitly
Experience is key: knowing what is “important” improves with practice.
How to Validate a Diagram
Validation is best done collaboratively with system experts:
- Walk through key use cases using the diagram
- Ensure the story can be told end-to-end
- Avoid needing external or missing information
- Ensure no diagram changes are required to explain behavior
Tips:
- Clarify ambiguity: expand “sometimes/also” cases into explicit flows
- Show security-relevant detail when needed
- Label trust boundaries clearly
- Include disagreement points to align team understanding
- No data sinks: show where data is used
- Show data movement explicitly (no implicit transfers)
- Show all entry and exit flows for processes
- Include control mechanisms (e.g. firewalls, permissions)
- Avoid cramming: split your diagram into sub-processes if necessary.
- Keep labels short and descriptive, while helping to tell the overarching story. Avoid verbs, favour nouns.
- Use colors intuitively (e.g., green for safe, red for compromised).