The final lesson, and why it is a project
The previous forty-four lessons taught you to recognise and fix bug classes. This one differs in kind: it teaches nothing new, it asks you to produce something usable at work.
That is why it is a project rather than a challenge. A challenge has an answer you can compare against; a project has an artefact whose value lies in applying to your own system — and nobody but you can verify that.
What to produce: a one-page threat model for a real feature in your project.
Three criteria for choosing the feature, and the third is the important one:
- It is being designed, or coding just started. Threat modeling after the code exists turns every finding into a refactor rather than a decision — as
stride-in-practiceargued. - It touches money, permissions, or several customers' data. A feature that changes a UI colour has nothing to threat model.
- You are the person who will write its code. This criterion decides the value:
abuse-casesargued that for business-logic bugs the person building the feature is the best finder, being the only one who knows which behaviour is correct for the business.
Rubric — six criteria, and 5 and 6 are what separate a good threat model:
| # | Criterion | Passing means |
|---|---|---|
| 1 | Data flow | A diagram exists, hand-drawn is fine. Four boxes and four arrows suffice |
| 2 | Trust boundaries | Marked on the arrows, including boundaries that do not go over HTTP |
| 3 | Six STRIDE letters | All six considered, R and D included |
| 4 | Tickets | Each "fix" threat has a real, numbered ticket |
| 5 | Accepted risks | With a reason, a decision-maker and a review date |
| 6 | What you cannot stop | Stated explicitly, not left silent |
Criterion 6 is the path's final one and the most worth carrying: every fix step in the previous forty-four lessons ended with the question "what does this patch not stop". That is not a presentational convention — it is a skill a tech lead recognises in somebody immediately, and it is what separates a usable security report from one that produces a feeling of safety.
Comments
Commenting needs an account with at least one completed lesson. That condition is what keeps this thread worth reading: every point belongs to someone who can be asked back, and reputation accrues over time.
You can still read every comment below without an account. Signing in brings you back to this exact spot, not to the top of the page.
Loading comments…