Pick a depth. Each prompt opens in your AI pre-loaded with the lesson. Click a row to preview the prompt.
A threat model is worthless if it doesn't change the code. Every identified threat must either get a concrete control (validation, rate limit, encryption, audit log) or get explicitly accepted with a written justification. The discipline of mapping threats → controls → tickets is what separates security theatre from real engineering.
Threat: 'attacker brute-forces login credentials'. Possible controls: rate limit per IP (cheap, partial), rate limit per account (better, harder), CAPTCHA after N failures (annoying, effective), WebAuthn for high-value accounts (slow rollout, gold standard). Decision: ship the first two now, plan the next two.