Building a Data Flow Diagram
Learn the standard Data Flow Diagram notation threat modeling runs on top of, draw one for a real checkout flow in OWASP Threat Dragon, mark its trust boundaries, and build the identical model as code using OWASP pytm.
STRIDE tells you *what* to look for. The Data Flow Diagram (DFD) tells you *where* to look — it's the standard visual notation for showing how data moves through a system, and it's the artifact every serious threat modeling technique (STRIDE-per-element, STRIDE-per-interaction, attack trees later in this roadmap) gets applied on top of. A DFD isn't a network diagram or a UML class diagram — it deliberately strips away implementation detail to show exactly four kinds of things: what data flows where, and across what trust boundaries.
This project builds one for a slightly more realistic system than the three-box example from the previous project: a simple e-commerce checkout — a browser client, a web/API server, a payment processor the server calls out to, and a database — because a system with an external third party (the payment processor) is exactly what makes trust boundaries stop being an abstract concept and start being obviously necessary.
Step 1 — The four DFD symbols, and what each one means
Step 2 — Draw the checkout flow in Threat Dragon
Step 3 — Mark the trust boundaries
Step 4 — The same model as code, with pytm
Secret Mission: model a real system two ways
Before You Go
Test what you just learned
Self-testing is one of the best ways to retain new skills. Unlock project quizzes to check your understanding.
Log in to unlock0 / 7 complete
